Author: davsclaus
Date: Mon Mar 23 10:36:03 2009
New Revision: 757367

URL: http://svn.apache.org/viewvc?rev=757367&view=rev
Log:
A bit easier to setup Camel TransactionErrorHandler in Spring DSL. Fixed CS.

Added:
    
camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/JMSTransactionalClientWithRollbackTest.java
      - copied, changed from r757317, 
camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/JMSTransactionalClientTest.java
    
camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionalClientWithRollbackTest.xml
      - copied, changed from r757317, 
camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionalClientTest.xml
Modified:
    
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/LoggingExceptionHandler.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/model/RollbackDefinition.java
    
camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/EndpointMessageListener.java
    
camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/JmsResequencerTest-context.xml
    
camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/TransactionErrorHandlerRedeliveryDelayTest-context.xml
    
camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionalClientTest.xml
    
camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactionErrorHandlerBuilderAsSpringBeanTest.xml
    
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/SpringRouteBuilder.java
    
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java
    
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandlerBuilder.java
    
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/interceptor/TransactionalClientWithRollbackTest.java

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/LoggingExceptionHandler.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/LoggingExceptionHandler.java?rev=757367&r1=757366&r2=757367&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/LoggingExceptionHandler.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/LoggingExceptionHandler.java
 Mon Mar 23 10:36:03 2009
@@ -40,11 +40,23 @@
     }
 
     public void handleException(Throwable exception) {
-        if (exception instanceof RollbackExchangeException) {
+        if (isCausedByRollbackExchangeException(exception)) {
             // do not log stacktrace for intended rollbacks
             logger.log(exception.getMessage());
         } else {
             logger.log(exception.getMessage(), exception);
         }
     }
+
+    protected boolean isCausedByRollbackExchangeException(Throwable exception) 
{
+        if (exception instanceof RollbackExchangeException) {
+            return true;
+        } else if (exception.getCause() != null) {
+            // recursive children
+            return isCausedByRollbackExchangeException(exception.getCause());
+        }
+
+        return false;
+    }
+
 }

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/RollbackDefinition.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/RollbackDefinition.java?rev=757367&r1=757366&r2=757367&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/RollbackDefinition.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/RollbackDefinition.java
 Mon Mar 23 10:36:03 2009
@@ -18,16 +18,12 @@
 
 import java.util.Collections;
 import java.util.List;
-
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
 
-import org.apache.camel.CamelException;
 import org.apache.camel.Processor;
-import org.apache.camel.processor.ThrowFaultProcessor;
 import org.apache.camel.processor.RollbackProcessor;
 import org.apache.camel.spi.RouteContext;
 

Modified: 
camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/EndpointMessageListener.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/EndpointMessageListener.java?rev=757367&r1=757366&r2=757367&view=diff
==============================================================================
--- 
camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/EndpointMessageListener.java
 (original)
+++ 
camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/EndpointMessageListener.java
 Mon Mar 23 10:36:03 2009
@@ -25,6 +25,8 @@
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.Processor;
 import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.impl.LoggingExceptionHandler;
+import org.apache.camel.spi.ExceptionHandler;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.springframework.jms.core.JmsOperations;
@@ -42,6 +44,7 @@
  */
 public class EndpointMessageListener implements MessageListener {
     private static final transient Log LOG = 
LogFactory.getLog(EndpointMessageListener.class);
+    private ExceptionHandler exceptionHandler;
     private JmsEndpoint endpoint;
     private Processor processor;
     private JmsBinding binding;
@@ -96,7 +99,7 @@
             rce = wrapRuntimeCamelException(e);
         }
         if (rce != null) {
-            LOG.warn(endpoint + " consumer caught an exception while 
processing JMS message: " + message, rce);
+            getExceptionHandler().handleException(rce);
             throw rce;
         }
     }
@@ -133,6 +136,17 @@
         this.binding = binding;
     }
 
+    public ExceptionHandler getExceptionHandler() {
+        if (exceptionHandler == null) {
+            exceptionHandler = new LoggingExceptionHandler(getClass());
+        }
+        return exceptionHandler;
+    }
+
+    public void setExceptionHandler(ExceptionHandler exceptionHandler) {
+        this.exceptionHandler = exceptionHandler;
+    }
+
     public boolean isEagerLoadingOfProperties() {
         return eagerLoadingOfProperties;
     }
@@ -217,4 +231,14 @@
         }
         return destination;
     }
+
+    /**
+     * Handles the given exception using the {...@link #getExceptionHandler()}
+     *
+     * @param t the exception to handle
+     */
+    protected void handleException(Throwable t) {
+        getExceptionHandler().handleException(t);
+    }
+
 }

Copied: 
camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/JMSTransactionalClientWithRollbackTest.java
 (from r757317, 
camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/JMSTransactionalClientTest.java)
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/JMSTransactionalClientWithRollbackTest.java?p2=camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/JMSTransactionalClientWithRollbackTest.java&p1=camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/JMSTransactionalClientTest.java&r1=757317&r2=757367&rev=757367&view=diff
==============================================================================
--- 
camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/JMSTransactionalClientTest.java
 (original)
+++ 
camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/JMSTransactionalClientWithRollbackTest.java
 Mon Mar 23 10:36:03 2009
@@ -25,11 +25,11 @@
 /**
  * Simple unit test for transaction client EIP pattern and JMS.
  */
-public class JMSTransactionalClientTest extends SpringTestSupport {
+public class JMSTransactionalClientWithRollbackTest extends SpringTestSupport {
 
     protected ClassPathXmlApplicationContext createApplicationContext() {
         return new ClassPathXmlApplicationContext(
-            
"/org/apache/camel/component/jms/tx/JMSTransactionalClientTest.xml");
+            
"/org/apache/camel/component/jms/tx/JMSTransactionalClientWithRollbackTest.xml");
     }
 
     protected int getExpectedRouteCount() {
@@ -37,7 +37,6 @@
     }
 
     public void testTransactionSuccess() throws Exception {
-        // START SNIPPET: e1
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedMessageCount(1);
         mock.expectedBodiesReceived("Bye World");
@@ -47,21 +46,15 @@
         template.sendBody("activemq:queue:okay", "Hello World");
 
         mock.assertIsSatisfied();
-        // END SNIPPET: e1
     }
 
-    // START SNIPPET: e2
     public static class MyProcessor implements Processor {
         private int count;
 
         public void process(Exchange exchange) throws Exception {
-            if (++count <= 2) {
-                throw new IllegalArgumentException("Forced Exception number " 
+ count + ", please retry");
-            }
             exchange.getIn().setBody("Bye World");
-            exchange.getIn().setHeader("count", count);
+            exchange.getIn().setHeader("count", ++count);
         }
     }
-    // END SNIPPET: e2
 
-}
+}
\ No newline at end of file

Modified: 
camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/JmsResequencerTest-context.xml
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/JmsResequencerTest-context.xml?rev=757367&r1=757366&r2=757367&view=diff
==============================================================================
--- 
camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/JmsResequencerTest-context.xml
 (original)
+++ 
camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/JmsResequencerTest-context.xml
 Mon Mar 23 10:36:03 2009
@@ -23,6 +23,7 @@
 
     <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring";>
         <jmxAgent id="agent" disabled="true" />
+        <routeBuilder ref="routeBuilder"/>
     </camelContext>
 
     <bean id="routeBuilder"

Modified: 
camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/TransactionErrorHandlerRedeliveryDelayTest-context.xml
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/TransactionErrorHandlerRedeliveryDelayTest-context.xml?rev=757367&r1=757366&r2=757367&view=diff
==============================================================================
--- 
camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/TransactionErrorHandlerRedeliveryDelayTest-context.xml
 (original)
+++ 
camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/issues/TransactionErrorHandlerRedeliveryDelayTest-context.xml
 Mon Mar 23 10:36:03 2009
@@ -42,7 +42,7 @@
     </bean>
 
     <bean id="required" 
class="org.apache.camel.spring.spi.SpringTransactionPolicy">
-        <property name="template" ref="PROPAGATION_REQUIRED"/>
+        <property name="transactionTemplate" ref="PROPAGATION_REQUIRED"/>
     </bean>
 
     <bean id="PROPAGATION_REQUIRED" 
class="org.springframework.transaction.support.TransactionTemplate">
@@ -61,7 +61,6 @@
         <property name="connectionFactory" ref="jmsConnectionFactory"/>
         <property name="transactionManager" ref="jmsTransactionManager"/>
         <property name="transacted" value="true"/>
-        <property name="transactedInOut" value="true"/>
         <property name="concurrentConsumers" value="1"/>
     </bean>
 

Modified: 
camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionalClientTest.xml
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionalClientTest.xml?rev=757367&r1=757366&r2=757367&view=diff
==============================================================================
--- 
camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionalClientTest.xml
 (original)
+++ 
camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionalClientTest.xml
 Mon Mar 23 10:36:03 2009
@@ -26,7 +26,7 @@
     <!-- here we define our camel context -->
     <camel:camelContext id="myroutes">
         <!-- and now our route using the XML syntax -->
-        <camel:route>
+        <camel:route errorHandlerRef="errorHandler">
             <!-- 1: from the jms queue -->
             <camel:from uri="activemq:queue:okay"/>
             <!-- 2: setup the transactional boundaries to require a 
transaction -->
@@ -43,6 +43,11 @@
     <!-- END SNIPPET: e1 -->
 
     <!-- START SNIPPET: e2 -->
+    <!-- the transactional error handler -->
+    <bean id="errorHandler" 
class="org.apache.camel.spring.spi.TransactionErrorHandlerBuilder">
+        <property name="springTransactionPolicy" ref="PROPAGATION_REQUIRED"/>
+    </bean>
+
     <bean id="jmsConnectionFactory" 
class="org.apache.activemq.ActiveMQConnectionFactory">
         <property name="brokerURL" 
value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
     </bean>
@@ -55,11 +60,10 @@
         <property name="connectionFactory" ref="jmsConnectionFactory"/>
         <property name="transactionManager" ref="jmsTransactionManager"/>
         <property name="transacted" value="true"/>
-        <property name="transactedInOut" value="true"/>
         <property name="concurrentConsumers" value="1"/>
     </bean>
 
-    <bean id="activemq" class="org.apache.camel.component.jms.JmsComponent">
+    <bean id="activemq" 
class="org.apache.activemq.camel.component.ActiveMQComponent">
         <property name="configuration" ref="jmsConfig"/>
     </bean>
 

Copied: 
camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionalClientWithRollbackTest.xml
 (from r757317, 
camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionalClientTest.xml)
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionalClientWithRollbackTest.xml?p2=camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionalClientWithRollbackTest.xml&p1=camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionalClientTest.xml&r1=757317&r2=757367&rev=757367&view=diff
==============================================================================
--- 
camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionalClientTest.xml
 (original)
+++ 
camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/JMSTransactionalClientWithRollbackTest.xml
 Mon Mar 23 10:36:03 2009
@@ -24,45 +24,61 @@
 
     <!-- START SNIPPET: e1 -->
     <!-- here we define our camel context -->
-    <camel:camelContext id="myroutes">
+    <camelContext id="myroutes" xmlns="http://camel.apache.org/schema/spring";>
         <!-- and now our route using the XML syntax -->
-        <camel:route>
+        <route errorHandlerRef="errorHandler">
             <!-- 1: from the jms queue -->
-            <camel:from uri="activemq:queue:okay"/>
+            <from uri="activemq:queue:okay"/>
             <!-- 2: setup the transactional boundaries to require a 
transaction -->
-            <camel:policy ref="PROPAGATION_REQUIRED"/>
+            <policy ref="PROPAGATION_REQUIRED"/>
             <!-- 3: call our business logic that is myProcessor -->
-            <camel:process ref="myProcessor"/>
-            <!-- 4: if success then send it to the mock -->
-            <camel:to uri="mock:result"/>
-        </camel:route>
-    </camel:camelContext>
+            <process ref="myProcessor"/>
+            <!-- 4: choice -->
+            <choice>
+                <when>
+                    <simple>${in.header.count} &lt; 3</simple>
+                    <rollback message="Please rollback"/>
+                </when>
+            </choice>
+            <!-- 5: if success then send it to the mock -->
+            <to uri="mock:result"/>
+        </route>
+    </camelContext>
 
     <!-- this bean is our business logic -->
-    <bean id="myProcessor" 
class="org.apache.camel.component.jms.tx.JMSTransactionalClientTest$MyProcessor"/>
+    <bean id="myProcessor" 
class="org.apache.camel.component.jms.tx.JMSTransactionalClientWithRollbackTest$MyProcessor"/>
     <!-- END SNIPPET: e1 -->
 
     <!-- START SNIPPET: e2 -->
+    <!-- the transactional error handler -->
+    <bean id="errorHandler" 
class="org.apache.camel.spring.spi.TransactionErrorHandlerBuilder">
+        <property name="springTransactionPolicy" ref="PROPAGATION_REQUIRED"/>
+    </bean>
+
+    <!-- jms connection factory -->
     <bean id="jmsConnectionFactory" 
class="org.apache.activemq.ActiveMQConnectionFactory">
         <property name="brokerURL" 
value="vm://localhost?broker.persistent=false&amp;broker.useJmx=false"/>
     </bean>
 
+    <!-- jms transaction manager -->
     <bean id="jmsTransactionManager" 
class="org.springframework.jms.connection.JmsTransactionManager">
         <property name="connectionFactory" ref="jmsConnectionFactory"/>
     </bean>
 
+    <!-- jms component configuration -->
     <bean id="jmsConfig" 
class="org.apache.camel.component.jms.JmsConfiguration">
         <property name="connectionFactory" ref="jmsConnectionFactory"/>
         <property name="transactionManager" ref="jmsTransactionManager"/>
         <property name="transacted" value="true"/>
-        <property name="transactedInOut" value="true"/>
         <property name="concurrentConsumers" value="1"/>
     </bean>
 
-    <bean id="activemq" class="org.apache.camel.component.jms.JmsComponent">
+    <!-- activemq component -->
+    <bean id="activemq" 
class="org.apache.activemq.camel.component.ActiveMQComponent">
         <property name="configuration" ref="jmsConfig"/>
     </bean>
 
+    <!-- spring required policy -->
     <bean id="PROPAGATION_REQUIRED" 
class="org.apache.camel.spring.spi.SpringTransactionPolicy">
         <constructor-arg>
             <bean 
class="org.springframework.transaction.support.TransactionTemplate">

Modified: 
camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactionErrorHandlerBuilderAsSpringBeanTest.xml
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactionErrorHandlerBuilderAsSpringBeanTest.xml?rev=757367&r1=757366&r2=757367&view=diff
==============================================================================
--- 
camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactionErrorHandlerBuilderAsSpringBeanTest.xml
 (original)
+++ 
camel/trunk/components/camel-jms/src/test/resources/org/apache/camel/component/jms/tx/TransactionErrorHandlerBuilderAsSpringBeanTest.xml
 Mon Mar 23 10:36:03 2009
@@ -55,7 +55,7 @@
     <!-- START SNIPPET: e2 -->
     <!-- camel policy we refer to in our route -->
     <bean id="required" 
class="org.apache.camel.spring.spi.SpringTransactionPolicy">
-        <property name="template" ref="PROPAGATION_REQUIRED"/>
+        <property name="transactionTemplate" ref="PROPAGATION_REQUIRED"/>
     </bean>
 
     <!-- the standard spring transaction template for required -->
@@ -92,7 +92,6 @@
         <property name="connectionFactory" ref="jmsConnectionFactory"/>
         <property name="transactionManager" ref="jmsTransactionManager"/>
         <property name="transacted" value="true"/>
-        <property name="transactedInOut" value="true"/>
         <property name="concurrentConsumers" value="1"/>
     </bean>
 

Modified: 
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/SpringRouteBuilder.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/SpringRouteBuilder.java?rev=757367&r1=757366&r2=757367&view=diff
==============================================================================
--- 
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/SpringRouteBuilder.java
 (original)
+++ 
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/SpringRouteBuilder.java
 Mon Mar 23 10:36:03 2009
@@ -17,7 +17,6 @@
 package org.apache.camel.spring;
 
 import org.apache.camel.CamelContext;
-import org.apache.camel.CamelContextAware;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.spring.spi.SpringTransactionPolicy;
 import org.apache.camel.spring.spi.TransactionErrorHandlerBuilder;
@@ -111,7 +110,7 @@
      */
     public TransactionErrorHandlerBuilder 
transactionErrorHandler(SpringTransactionPolicy policy) {
         TransactionErrorHandlerBuilder answer = new 
TransactionErrorHandlerBuilder();
-        answer.setTransactionTemplate(policy.getTemplate());
+        answer.setTransactionTemplate(policy.getTransactionTemplate());
         return answer;
     }
 

Modified: 
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java?rev=757367&r1=757366&r2=757367&view=diff
==============================================================================
--- 
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java
 (original)
+++ 
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java
 Mon Mar 23 10:36:03 2009
@@ -45,7 +45,7 @@
     }
 
     public Processor wrap(Processor processor) {
-        final TransactionTemplate transactionTemplate = getTemplate();
+        final TransactionTemplate transactionTemplate = 
getTransactionTemplate();
         if (transactionTemplate == null) {
             LOG.warn("No TransactionTemplate available so transactions will 
not be enabled!");
             return processor;
@@ -56,7 +56,7 @@
         return answer;
     }
 
-    public TransactionTemplate getTemplate() {
+    public TransactionTemplate getTransactionTemplate() {
         if (template == null) {
             template = new TransactionTemplate(transactionManager);
             if (propagationBehaviorName != null) {
@@ -66,7 +66,7 @@
         return template;
     }
 
-    public void setTemplate(TransactionTemplate template) {
+    public void setTransactionTemplate(TransactionTemplate template) {
         this.template = template;
     }
 

Modified: 
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandlerBuilder.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandlerBuilder.java?rev=757367&r1=757366&r2=757367&view=diff
==============================================================================
--- 
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandlerBuilder.java
 (original)
+++ 
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandlerBuilder.java
 Mon Mar 23 10:36:03 2009
@@ -17,10 +17,8 @@
 package org.apache.camel.spring.spi;
 
 import org.apache.camel.Processor;
-import org.apache.camel.builder.ErrorHandlerBuilder;
 import org.apache.camel.builder.ErrorHandlerBuilderSupport;
 import org.apache.camel.processor.DelayPolicy;
-import org.apache.camel.processor.RedeliveryPolicy;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.util.ObjectHelper;
 import org.springframework.beans.factory.InitializingBean;
@@ -34,7 +32,7 @@
  *
  * @version $Revision$
  */
-public class TransactionErrorHandlerBuilder extends ErrorHandlerBuilderSupport 
implements Cloneable, InitializingBean {
+public class TransactionErrorHandlerBuilder extends ErrorHandlerBuilderSupport 
implements InitializingBean {
 
     private TransactionTemplate transactionTemplate;
     private DelayPolicy delayPolicy;
@@ -50,6 +48,10 @@
         this.transactionTemplate = transactionTemplate;
     }
 
+    public void setSpringTransactionPolicy(SpringTransactionPolicy policy) {
+        this.transactionTemplate = policy.getTransactionTemplate();
+    }
+
     public DelayPolicy getDelayPolicy() {
         return delayPolicy;
     }
@@ -58,14 +60,6 @@
         this.delayPolicy = delayPolicy;
     }
 
-    public ErrorHandlerBuilder copy() {
-        try {
-            return (ErrorHandlerBuilder) clone();
-        } catch (CloneNotSupportedException e) {
-            throw new Error("Clone should be supported: " + e, e);
-        }
-    }
-
     public Processor createErrorHandler(RouteContext routeContext, Processor 
processor) throws Exception {
         return new TransactionInterceptor(processor, transactionTemplate, 
delayPolicy);
     }

Modified: 
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/interceptor/TransactionalClientWithRollbackTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/interceptor/TransactionalClientWithRollbackTest.java?rev=757367&r1=757366&r2=757367&view=diff
==============================================================================
--- 
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/interceptor/TransactionalClientWithRollbackTest.java
 (original)
+++ 
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/interceptor/TransactionalClientWithRollbackTest.java
 Mon Mar 23 10:36:03 2009
@@ -18,15 +18,15 @@
 
 import javax.sql.DataSource;
 
-import org.apache.camel.spring.SpringTestSupport;
-import org.apache.camel.spring.SpringRouteBuilder;
-import org.apache.camel.spring.spi.SpringTransactionPolicy;
-import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.RollbackExchangeException;
+import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.builder.RouteBuilder;
-import org.springframework.jdbc.core.JdbcTemplate;
+import org.apache.camel.spring.SpringRouteBuilder;
+import org.apache.camel.spring.SpringTestSupport;
+import org.apache.camel.spring.spi.SpringTransactionPolicy;
 import org.springframework.context.support.AbstractXmlApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
+import org.springframework.jdbc.core.JdbcTemplate;
 
 /**
  * Transactional client test with rollback in the DSL.
@@ -53,7 +53,7 @@
         final DataSource ds = getMandatoryBean(DataSource.class, "dataSource");
         jdbc = new JdbcTemplate(ds);
         jdbc.execute("create table books (title varchar(50))");
-        jdbc.update("insert into books (title) values (?)", new Object[] 
{"Camel in Action"});
+        jdbc.update("insert into books (title) values (?)", new 
Object[]{"Camel in Action"});
     }
 
     @Override
@@ -82,31 +82,31 @@
     }
 
     protected RouteBuilder createRouteBuilder() throws Exception {
-         // Notice that we use the SpringRouteBuilder that has a few more 
features than
-         // the standard RouteBuilder
-         return new SpringRouteBuilder() {
-             public void configure() throws Exception {
-                 // setup the transaction policy
-                 SpringTransactionPolicy required = context.getRegistry()
-                     .lookup("PROPAGATION_REQUIRED", 
SpringTransactionPolicy.class);
-
-                 // use transaction error handler
-                 errorHandler(transactionErrorHandler(required));
-
-                 // must setup policy for each route
-                 // TODO: CAMEL-1475 should fix this
-                 from("direct:okay").policy(required)
-                     .setBody(constant("Tiger in 
Action")).beanRef("bookService")
-                     .setBody(constant("Elephant in 
Action")).beanRef("bookService");
-
-                 // must setup policy for each route
-                 // TODO: CAMEL-1475 should fix this
-                 from("direct:fail").policy(required)
-                     .setBody(constant("Tiger in 
Action")).beanRef("bookService")
-                     // force a rollback
-                     .rollback();
-             }
-         };
-     }
+        // Notice that we use the SpringRouteBuilder that has a few more 
features than
+        // the standard RouteBuilder
+        return new SpringRouteBuilder() {
+            public void configure() throws Exception {
+                // setup the transaction policy
+                SpringTransactionPolicy required = context.getRegistry()
+                        .lookup("PROPAGATION_REQUIRED", 
SpringTransactionPolicy.class);
+
+                // use transaction error handler
+                errorHandler(transactionErrorHandler(required));
+
+                // must setup policy for each route
+                // TODO: CAMEL-1475 should fix this
+                from("direct:okay").policy(required)
+                        .setBody(constant("Tiger in 
Action")).beanRef("bookService")
+                        .setBody(constant("Elephant in 
Action")).beanRef("bookService");
+
+                // must setup policy for each route
+                // TODO: CAMEL-1475 should fix this
+                from("direct:fail").policy(required)
+                        .setBody(constant("Tiger in 
Action")).beanRef("bookService")
+                        // force a rollback
+                        .rollback();
+            }
+        };
+    }
 
 }


Reply via email to