<?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"
	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">
 
 	<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="TransactionStorage" 
				class="at.gv.egovernment.moa.id.storage.DBTransactionStorage"/>

	<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="StatisticLogger" 
				class="at.gv.egovernment.moa.id.advancedlogging.StatisticLogger"/>

	<bean id="MOAReversionLogger" 
				class="at.gv.egovernment.moa.id.advancedlogging.MOAReversionLogger"/>
				
	<bean id="AuthenticationSessionCleaner" 
				class="at.gv.egovernment.moa.id.auth.AuthenticationSessionCleaner"/>								
				
<!-- 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>