<?xml version="1.0" encoding="UTF-8"?>
<beans default-lazy-init="false"
	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:util="http://www.springframework.org/schema/util" xmlns:jee="http://www.springframework.org/schema/jee"
	xsi:schemaLocation="
		http://www.springframework.org/schema/beans	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
	    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd
    	http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd">

	<bean class="org.springframework.context.support.ResourceBundleMessageSource"
		id="messageSource">
		<property name="basename" value="messages" />
	</bean>

	<!-- File upload - This must live in the root applicationContext and be named exactly
		'filterMultipartResolver' to integrate with Spring security - CPB -->
	<bean id="filterMultipartResolver"
		class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		 <!-- setting maximum upload size in bytes to 5Mb -->
		<property name="maxUploadSize" value="5242880" />
	</bean>


	<bean id="common.sharedTransactionAttributes"
		class="org.springframework.beans.factory.config.PropertiesFactoryBean">
		<!--
			Transactional attributes. If listed, default behavior is
			PROPAGATION_REQUIRED If not listed, default behavior is
			PROPAGATION_SUPPORTS
		-->
		<property name="properties">
			<props>
				<prop key="search*">PROPAGATION_SUPPORTS</prop>
				<prop key="find*">PROPAGATION_SUPPORTS</prop>
				<prop key="get*">PROPAGATION_SUPPORTS</prop>
				<prop key="merge*">PROPAGATION_SUPPORTS</prop>

				<!--
					Note that any Transactional method will rollback via logic in
					RollbackAdvice
				-->
				<prop key="generate*">PROPAGATION_REQUIRED</prop>
				<prop key="manage*">PROPAGATION_REQUIRED</prop>
				<prop key="process*">PROPAGATION_REQUIRED</prop>
				<prop key="update*">PROPAGATION_REQUIRED</prop>
				<prop key="log*">PROPAGATION_REQUIRED</prop>
				<prop key="save*">PROPAGATION_REQUIRES_NEW</prop>
				<prop key="schedule*">PROPAGATION_REQUIRED</prop>
				<prop key="add*">PROPAGATION_REQUIRED</prop>
				<prop key="insert*">PROPAGATION_REQUIRED</prop>
				<prop key="cancel*">PROPAGATION_REQUIRED</prop>
				<prop key="start*">PROPAGATION_REQUIRED</prop>
				<prop key="delete*">PROPAGATION_REQUIRED</prop>
				<prop key="create*">PROPAGATION_REQUIRED</prop>
				<prop key="persist*">PROPAGATION_REQUIRED</prop>
				<prop key="load*">PROPAGATION_REQUIRED</prop>
				<prop key="reconcile*">PROPAGATION_REQUIRED</prop>
				<prop key="purge*">PROPAGATION_REQUIRED</prop>
				<prop key="send*">PROPAGATION_REQUIRED</prop>
			</props>
		</property>
	</bean>


	<!--  Add an alias for the login manager for scheduled process -->
	<!--
		provide an alias for default publishing into the CommonEventQueue
	-->
	<alias name="loginManager" alias="LoginManager" />

</beans>
