<?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:aop="http://www.springframework.org/schema/aop"
		xmlns:tx="http://www.springframework.org/schema/tx"
		xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
				http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
				http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

	<aop:config>
		<aop:advisor pointcut="execution(* *..ITestBean.*(..))" advice-ref="txAdvice"/>
	</aop:config>

	<tx:advice id="txAdvice">
		<tx:attributes>
			<tx:method name="get*" read-only="true"/>
			<tx:method name="set*"/>
			<tx:method name="exceptional"/> 
		</tx:attributes>
	</tx:advice>
	
	<tx:advice id="txRollbackAdvice">
		<tx:attributes>
			<tx:method name="get*" rollback-for="java.lang.Exception"/>
			<tx:method name="set*" no-rollback-for="java.lang.RuntimeException"/>
		</tx:attributes>
	</tx:advice>

	<bean id="transactionManager" class="org.springframework.transaction.CallCountingTransactionManager"/>

	<bean id="testBean" class="org.springframework.beans.TestBean"/>

</beans>
