<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
	<bean id="matchAllWithPropReq" 
	      class="org.springframework.transaction.interceptor.MatchAlwaysTransactionAttributeSource">
	    <property name="transactionAttribute" value="PROPAGATION_REQUIRED,-java.lang.Exception"/>
	</bean>
	
	<bean id="matchAllTxInterceptor"
      class="org.springframework.transaction.interceptor.TransactionInterceptor">
    	<property name="transactionManager" ref="transactionManager"/>
    	<property name="transactionAttributeSource" ref="matchAllWithPropReq"/>
  	</bean>
	
 	<!-- One BeanNameAutoProxyCreator handles all beans where we want all methods to use 
       	PROPAGATION_REQUIRED -->

  	<bean id="autoProxyCreator" 
      		class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
		<property name="interceptorNames">
			<list>
        		<idref local="matchAllTxInterceptor"/>
			</list>
    	</property>
    	<property name="beanNames">
      		<!-- put here all service bean name for which all methods requires a transaction -->
      		<list>

      		</list>
    	</property>
  	</bean>
  	
</beans>
