[ https://issues.apache.org/activemq/browse/CAMEL-1475?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=51047#action_51047 ]
Claus Ibsen commented on CAMEL-1475: ------------------------------------ Okay got this baby working now {code:java} from("direct:okay") // marks this route as transacted, and we dont pass in any parameters so we // will auto lookup and use the Policy defined in the spring XML file .transacted() .setBody(constant("Tiger in Action")).beanRef("bookService") .setBody(constant("Elephant in Action")).beanRef("bookService"); {code} And with the Spring XML below Camel will lookup beans with the type {{org.apache.camel.spi.Policy}} and if there are 1 policy defined it will use that as default. {code:xml} <!-- START SNIPPET: e1 --> <!-- datasource to the database --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="org.hsqldb.jdbcDriver"/> <property name="url" value="jdbc:hsqldb:mem:camel"/> <property name="username" value="sa"/> <property name="password" value=""/> </bean> <!-- spring transaction manager --> <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <!-- policy for required transaction used in our Camel routes --> <bean id="PROPAGATION_REQUIRED" class="org.apache.camel.spring.spi.SpringTransactionPolicy"> <property name="transactionManager" ref="txManager"/> </bean> <!-- bean for book business logic --> <bean id="bookService" class="org.apache.camel.spring.interceptor.BookService"> <property name="dataSource" ref="dataSource"/> </bean> <!-- END SNIPPET: e1 --> {code} Next step is to make it even easier, eg to be able to lookup the PlatformManager and if there is 1 single defined use that one and use REQUIRED by default. Then we can loose the PROPAGATION_REQUIRED bean. > transactionErrorHandler should be able to wrap routes with default policy if > no policy defined > ---------------------------------------------------------------------------------------------- > > Key: CAMEL-1475 > URL: https://issues.apache.org/activemq/browse/CAMEL-1475 > Project: Apache Camel > Issue Type: Bug > Components: camel-core, camel-spring > Affects Versions: 1.6.0 > Reporter: Claus Ibsen > Assignee: Claus Ibsen > Fix For: 2.0.0 > > > See TransactionalClientWithRollbackTest in camel-spring > The {{.policy(required)}} is needed in the routes even though we have a > global transaction error handler with a default policy set: > {code} > errorHandler(transactionErrorHandler(required)); > {code} > So Camel should fallback and use the global policy if the route itself does > not have a policy defined. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.