<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:task="http://www.springframework.org/schema/task"
	xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
		http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd">
 
 	<task:annotation-driven executor="MOA-ID-Auth_TaskExecutor" scheduler="MOA-ID-Auth_Scheduler"/>
	<task:executor id="MOA-ID-Auth_TaskExecutor" pool-size="5"/>
	<task:scheduler id="MOA-ID-Auth_Scheduler" pool-size="10"/>
 
 	<bean id="processEngine" class="at.gv.egovernment.moa.id.process.ProcessEngineImpl">
		<property name="transitionConditionExpressionEvaluator">
			<bean class="at.gv.egovernment.moa.id.process.springweb.SpringWebExpressionEvaluator" />
		</property>
	</bean>
	
	<!-- import auth modules -->
	<import resource="classpath*:**/*.authmodule.beans.xml" />

	<bean id="moduleRegistration" class="at.gv.egovernment.moa.id.auth.modules.registration.ModuleRegistration" factory-method="getInstance" />
	
	<context:component-scan base-package="at.gv.egovernment.moa.id.auth.servlet" />
	<context:component-scan base-package="at.gv.egovernment.moa.id.protocols" />
 
	<bean id="MOAID_AuthenticationManager" 
				class="at.gv.egovernment.moa.id.moduls.AuthenticationManager"/>

	<bean id="AuthenticationDataBuilder" 
				class="at.gv.egovernment.moa.id.auth.builder.AuthenticationDataBuilder"/>

	<bean id="StartAuthentificationParameterParser" 
				class="at.gv.egovernment.moa.id.auth.parser.StartAuthentificationParameterParser"/>

	<bean id="MOAID_SSOManager" 
				class="at.gv.egovernment.moa.id.moduls.SSOManager"/>

	

	<bean id="AuthenticationSessionStoreage" 
				class="at.gv.egovernment.moa.id.storage.DBAuthenticationSessionStoreage"/>
				
	<bean id="RequestStorage" 
				class="at.gv.egovernment.moa.id.moduls.RequestStorage"/>
				
	<bean id="ProcessInstanceStoreage" 
				class="at.gv.egovernment.moa.id.process.dao.ProcessInstanceStoreDAOImpl"/>

	<bean id="MOAReversionLogger" 
				class="at.gv.egovernment.moa.id.advancedlogging.MOAReversionLogger"/>
				
	<bean id="AuthenticationSessionCleaner" 
				class="at.gv.egovernment.moa.id.auth.AuthenticationSessionCleaner"/>
				
	<bean id="MOAGarbageCollector" 
				class="at.gv.egovernment.moa.id.auth.MOAGarbageCollector"/>

<!-- 	<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
    <property name="corePoolSize" value="5" />
    <property name="maxPoolSize" value="10" />
    <property name="queueCapacity" value="25" />
	</bean>	 -->										
				
<!-- Authentication Process Tasks -->
	<bean id="GenerateBKUSelectionFrameTask" 
				class="at.gv.egovernment.moa.id.auth.modules.internal.tasks.GenerateBKUSelectionFrameTask"
				scope="prototype"/>
				
	<bean id="EvaluateBKUSelectionTask" 
				class="at.gv.egovernment.moa.id.auth.modules.internal.tasks.EvaluateBKUSelectionTask"
				scope="prototype"/>
				
	<bean id="RestartAuthProzessManagement" 
				class="at.gv.egovernment.moa.id.auth.modules.internal.tasks.RestartAuthProzessManagement"
				scope="prototype"/>				

	<bean id="FinalizeAuthenticationTask" 
				class="at.gv.egovernment.moa.id.auth.modules.internal.tasks.FinalizeAuthenticationTask"
				scope="prototype"/>
				
	<bean id="GenerateSSOConsentEvaluatorFrameTask" 
				class="at.gv.egovernment.moa.id.auth.modules.internal.tasks.GenerateSSOConsentEvaluatorFrameTask"
				scope="prototype"/>
				
	<bean id="EvaluateSSOConsentsTaskImpl" 
				class="at.gv.egovernment.moa.id.auth.modules.internal.tasks.EvaluateSSOConsentsTaskImpl"
				scope="prototype"/>		
				
	<beans profile="advancedLogOn">
		<bean id="StatisticLogger" 
				class="at.gv.egovernment.moa.id.advancedlogging.StatisticLogger"/>
	</beans>
	
	<beans profile="advancedLogOff">
		<bean id="StatisticLogger" 
				class="at.gv.egovernment.moa.id.advancedlogging.DummyStatisticLogger"/>
	</beans>
	
</beans>