Author: davsclaus
Date: Fri Jul  2 16:45:14 2010
New Revision: 960053

URL: http://svn.apache.org/viewvc?rev=960053&view=rev
Log:
CAMEL-2890: sync delayed redelivery is default on error handlers. You have to 
use asyncDelayedRedelivery() to allow Camel to schedule delayed redeliveries 
and use the async routing engine to continue routing the message.

Modified:
    
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/model/RedeliveryPolicyDefinition.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RedeliveryPolicy.java
    
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RedeliveryErrorHandlerBlockedDelayTest.java
    
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RedeliveryErrorHandlerNonBlockedDelayTest.java
    
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RedeliveryOnExceptionBlockedDelayTest.java
    
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointRedeliveryErrorHandlerNonBlockedDelay2Test.java
    
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointRedeliveryErrorHandlerNonBlockedDelay3Test.java
    
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointRedeliveryErrorHandlerNonBlockedDelayTest.java
    
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/handler/ErrorHandlerDefinitionParserTest.java
    
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/config/SpringErrorHandlerConfigTest.xml
    
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/handler/ErrorHandlerDefinitionParser.xml

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java?rev=960053&r1=960052&r2=960053&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java
 Fri Jul  2 16:45:14 2010
@@ -47,6 +47,7 @@ public class DefaultErrorHandlerBuilder 
     protected Endpoint deadLetter;
     protected String deadLetterUri;
     protected boolean useOriginalMessage;
+    protected boolean asyncDelayedRedelivery;
 
     public DefaultErrorHandlerBuilder() {
     }
@@ -87,11 +88,6 @@ public class DefaultErrorHandlerBuilder 
         return this;
     }
 
-    public DefaultErrorHandlerBuilder syncDelayedRedelivery() {
-        getRedeliveryPolicy().syncDelayedRedelivery();
-        return this;
-    }
-
     public DefaultErrorHandlerBuilder delayPattern(String delayPattern) {
         getRedeliveryPolicy().delayPattern(delayPattern);
         return this;
@@ -153,6 +149,17 @@ public class DefaultErrorHandlerBuilder 
     }
 
     /**
+     * Will allow asynchronous delayed redeliveries.
+     *
+     * @see 
org.apache.camel.processor.RedeliveryPolicy#setAsyncDelayedRedelivery(boolean)
+     * @return the builder
+     */
+    public DefaultErrorHandlerBuilder asyncDelayedRedelivery() {
+        getRedeliveryPolicy().setAsyncDelayedRedelivery(true);
+        return this;
+    }
+
+    /**
      * Sets whether the exchange should be marked as handled or not.
      *
      * @param handled  handled or not
@@ -390,6 +397,14 @@ public class DefaultErrorHandlerBuilder 
         this.useOriginalMessage = useOriginalMessage;
     }
 
+    public boolean isAsyncDelayedRedelivery() {
+        return asyncDelayedRedelivery;
+    }
+
+    public void setAsyncDelayedRedelivery(boolean asyncDelayedRedelivery) {
+        this.asyncDelayedRedelivery = asyncDelayedRedelivery;
+    }
+
     protected Predicate createHandledPolicy() {
         // should NOT be handled by default for default error handler
         return 
PredicateBuilder.toPredicate(ExpressionBuilder.constantExpression(false));

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java?rev=960053&r1=960052&r2=960053&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java
 Fri Jul  2 16:45:14 2010
@@ -367,13 +367,13 @@ public class OnExceptionDefinition exten
     }
 
     /**
-     * Only allow synchronous delayed redelivery.
+     * Allow synchronous delayed redelivery.
      *
      * @see 
org.apache.camel.processor.RedeliveryPolicy#setAsyncDelayedRedelivery(boolean)
      * @return the builder
      */
-    public OnExceptionDefinition syncDelayedRedelivery() {
-        getOrCreateRedeliveryPolicy().setSyncDelayedRedelivery(true);
+    public OnExceptionDefinition asyncDelayedRedelivery() {
+        getOrCreateRedeliveryPolicy().setAsyncDelayedRedelivery(true);
         return this;
     }
 
@@ -690,6 +690,13 @@ public class OnExceptionDefinition exten
         this.useOriginalMessagePolicy = useOriginalMessagePolicy;
     }
 
+    public boolean isAsyncDelayedRedelivery() {
+        if (getRedeliveryPolicy() != null) {
+            return getRedeliveryPolicy().getAsyncDelayedRedelivery() != null 
&& getRedeliveryPolicy().getAsyncDelayedRedelivery();
+        }
+        return false;
+    }
+
     // Implementation methods
     //-------------------------------------------------------------------------
 

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/RedeliveryPolicyDefinition.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/RedeliveryPolicyDefinition.java?rev=960053&r1=960052&r2=960053&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/RedeliveryPolicyDefinition.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/RedeliveryPolicyDefinition.java
 Fri Jul  2 16:45:14 2010
@@ -41,7 +41,7 @@ public class RedeliveryPolicyDefinition 
     @XmlAttribute
     private Long redeliveryDelay;
     @XmlAttribute
-    private Boolean syncDelayedRedelivery;
+    private Boolean asyncDelayedRedelivery;
     @XmlAttribute
     private Double backOffMultiplier;
     @XmlAttribute
@@ -93,8 +93,8 @@ public class RedeliveryPolicyDefinition 
         if (redeliveryDelay != null) {
             answer.setRedeliveryDelay(redeliveryDelay);
         }
-        if (syncDelayedRedelivery != null && syncDelayedRedelivery) {
-            answer.syncDelayedRedelivery();
+        if (asyncDelayedRedelivery != null && asyncDelayedRedelivery) {
+            answer.asyncDelayedRedelivery();
         }
         if (retriesExhaustedLogLevel != null) {
             answer.setRetriesExhaustedLogLevel(retriesExhaustedLogLevel);
@@ -385,12 +385,12 @@ public class RedeliveryPolicyDefinition 
         this.redeliveryDelay = delay;
     }
 
-    public Boolean getSyncDelayedRedelivery() {
-        return syncDelayedRedelivery;
+    public Boolean getAsyncDelayedRedelivery() {
+        return asyncDelayedRedelivery;
     }
 
-    public void setSyncDelayedRedelivery(Boolean syncDelayedRedelivery) {
-        this.syncDelayedRedelivery = syncDelayedRedelivery;
+    public void setAsyncDelayedRedelivery(Boolean asyncDelayedRedelivery) {
+        this.asyncDelayedRedelivery = asyncDelayedRedelivery;
     }
 
     public Integer getMaximumRedeliveries() {

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java?rev=960053&r1=960052&r2=960053&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
 Fri Jul  2 16:45:14 2010
@@ -78,6 +78,7 @@ public abstract class RedeliveryErrorHan
         Predicate handledPredicate = handledPolicy;
         Predicate continuedPredicate;
         boolean useOriginalInMessage = useOriginalMessagePolicy;
+        boolean asyncDelayedRedelivery = 
redeliveryPolicy.isAsyncDelayedRedelivery();
     }
 
     /**
@@ -477,6 +478,7 @@ public abstract class RedeliveryErrorHan
             data.continuedPredicate = exceptionPolicy.getContinuedPolicy();
             data.retryWhilePredicate = exceptionPolicy.getRetryWhilePolicy();
             data.useOriginalInMessage = 
exceptionPolicy.getUseOriginalMessagePolicy();
+            data.asyncDelayedRedelivery = 
exceptionPolicy.isAsyncDelayedRedelivery();
 
             // route specific failure handler?
             Processor processor = exceptionPolicy.getErrorHandler();

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RedeliveryPolicy.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RedeliveryPolicy.java?rev=960053&r1=960052&r2=960053&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RedeliveryPolicy.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RedeliveryPolicy.java
 Fri Jul  2 16:45:14 2010
@@ -37,7 +37,7 @@ import org.apache.commons.logging.LogFac
  *   <li>maximumRedeliveries = 0</li>
  *   <li>redeliveryDelay = 1000L (the initial delay)</li>
  *   <li>maximumRedeliveryDelay = 60 * 1000L</li>
- *   <li>asyncDelayedRedelivery = true</li>
+ *   <li>asyncDelayedRedelivery = false</li>
  *   <li>backOffMultiplier = 2</li>
  *   <li>useExponentialBackOff = false</li>
  *   <li>collisionAvoidanceFactor = 0.15d</li>
@@ -95,7 +95,7 @@ public class RedeliveryPolicy implements
     protected boolean logExhausted = true;
     protected boolean logRetryAttempted = true;
     protected String delayPattern;
-    protected boolean asyncDelayedRedelivery = true;
+    protected boolean asyncDelayedRedelivery;
 
     public RedeliveryPolicy() {
     }
@@ -395,12 +395,12 @@ public class RedeliveryPolicy implements
     }
 
     /**
-     * Only allow synchronous delayed redelivery.
+     * Allow asynchronous delayed redelivery.
      *
      * @see #setAsyncDelayedRedelivery(boolean)
      */
-    public RedeliveryPolicy syncDelayedRedelivery() {
-        setAsyncDelayedRedelivery(false);
+    public RedeliveryPolicy asyncDelayedRedelivery() {
+        setAsyncDelayedRedelivery(true);
         return this;
     }
 
@@ -628,9 +628,10 @@ public class RedeliveryPolicy implements
     /**
      * Sets whether asynchronous delayed redelivery is allowed.
      * <p/>
-     * This is enabled by default, which allows Camel to schedule a future 
task for delayed
-     * redelivery which prevents current thread from blocking while waiting. 
You can use
-     * this option to turn it off to ensure current thread will block.
+     * This is disabled by default.
+     * <p/>
+     * When enabled it allows Camel to schedule a future task for delayed
+     * redelivery which prevents current thread from blocking while waiting.
      * <p/>
      * Exchange which is transacted will however always use synchronous 
delayed redelivery
      * because the transaction must execute in the same thread context.

Modified: 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RedeliveryErrorHandlerBlockedDelayTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RedeliveryErrorHandlerBlockedDelayTest.java?rev=960053&r1=960052&r2=960053&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RedeliveryErrorHandlerBlockedDelayTest.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RedeliveryErrorHandlerBlockedDelayTest.java
 Fri Jul  2 16:45:14 2010
@@ -52,9 +52,9 @@ public class RedeliveryErrorHandlerBlock
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                // do block redelivery attempts
+                // will by default block
                 errorHandler(defaultErrorHandler()
-                    
.maximumRedeliveries(5).redeliveryDelay(2000).syncDelayedRedelivery());
+                    .maximumRedeliveries(5).redeliveryDelay(2000));
 
                 from("seda:start")
                     .to("log:before")

Modified: 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RedeliveryErrorHandlerNonBlockedDelayTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RedeliveryErrorHandlerNonBlockedDelayTest.java?rev=960053&r1=960052&r2=960053&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RedeliveryErrorHandlerNonBlockedDelayTest.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RedeliveryErrorHandlerNonBlockedDelayTest.java
 Fri Jul  2 16:45:14 2010
@@ -52,7 +52,8 @@ public class RedeliveryErrorHandlerNonBl
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                
errorHandler(defaultErrorHandler().maximumRedeliveries(5).redeliveryDelay(2000));
+                // use async delayed which means non blocking
+                
errorHandler(defaultErrorHandler().maximumRedeliveries(5).redeliveryDelay(2000).asyncDelayedRedelivery());
 
                 from("seda:start")
                     .to("log:before")

Modified: 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RedeliveryOnExceptionBlockedDelayTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RedeliveryOnExceptionBlockedDelayTest.java?rev=960053&r1=960052&r2=960053&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RedeliveryOnExceptionBlockedDelayTest.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RedeliveryOnExceptionBlockedDelayTest.java
 Fri Jul  2 16:45:14 2010
@@ -52,9 +52,9 @@ public class RedeliveryOnExceptionBlocke
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                // do block if this exception was thrown
+                // will by default block
                 onException(IllegalArgumentException.class)
-                    
.maximumRedeliveries(5).redeliveryDelay(2000).syncDelayedRedelivery();
+                    .maximumRedeliveries(5).redeliveryDelay(2000);
 
                 from("seda:start")
                     .to("log:before")

Modified: 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointRedeliveryErrorHandlerNonBlockedDelay2Test.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointRedeliveryErrorHandlerNonBlockedDelay2Test.java?rev=960053&r1=960052&r2=960053&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointRedeliveryErrorHandlerNonBlockedDelay2Test.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointRedeliveryErrorHandlerNonBlockedDelay2Test.java
 Fri Jul  2 16:45:14 2010
@@ -56,7 +56,7 @@ public class AsyncEndpointRedeliveryErro
             public void configure() throws Exception {
                 context.addComponent("async", new MyAsyncComponent());
 
-                
errorHandler(defaultErrorHandler().maximumRedeliveries(5).redeliveryDelay(2000));
+                
errorHandler(defaultErrorHandler().maximumRedeliveries(5).redeliveryDelay(2000).asyncDelayedRedelivery());
 
                 from("seda:start")
                     .to("log:before")

Modified: 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointRedeliveryErrorHandlerNonBlockedDelay3Test.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointRedeliveryErrorHandlerNonBlockedDelay3Test.java?rev=960053&r1=960052&r2=960053&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointRedeliveryErrorHandlerNonBlockedDelay3Test.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointRedeliveryErrorHandlerNonBlockedDelay3Test.java
 Fri Jul  2 16:45:14 2010
@@ -51,7 +51,7 @@ public class AsyncEndpointRedeliveryErro
             public void configure() throws Exception {
                 context.addComponent("async", new MyAsyncComponent());
 
-                
errorHandler(defaultErrorHandler().maximumRedeliveries(5).redeliveryDelay(1000));
+                
errorHandler(defaultErrorHandler().maximumRedeliveries(5).redeliveryDelay(1000).asyncDelayedRedelivery());
 
                 from("seda:start")
                     .to("log:before")

Modified: 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointRedeliveryErrorHandlerNonBlockedDelayTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointRedeliveryErrorHandlerNonBlockedDelayTest.java?rev=960053&r1=960052&r2=960053&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointRedeliveryErrorHandlerNonBlockedDelayTest.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointRedeliveryErrorHandlerNonBlockedDelayTest.java
 Fri Jul  2 16:45:14 2010
@@ -57,7 +57,7 @@ public class AsyncEndpointRedeliveryErro
             public void configure() throws Exception {
                 context.addComponent("async", new MyAsyncComponent());
 
-                
errorHandler(defaultErrorHandler().maximumRedeliveries(5).redeliveryDelay(2000));
+                
errorHandler(defaultErrorHandler().maximumRedeliveries(5).redeliveryDelay(2000).asyncDelayedRedelivery());
 
                 from("seda:start")
                     .to("log:before")

Modified: 
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/handler/ErrorHandlerDefinitionParserTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/handler/ErrorHandlerDefinitionParserTest.java?rev=960053&r1=960052&r2=960053&view=diff
==============================================================================
--- 
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/handler/ErrorHandlerDefinitionParserTest.java
 (original)
+++ 
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/handler/ErrorHandlerDefinitionParserTest.java
 Fri Jul  2 16:45:14 2010
@@ -80,6 +80,7 @@ public class ErrorHandlerDefinitionParse
         assertEquals("Wrong maximumRedeliveries", 2, 
policy.getMaximumRedeliveries());
         assertEquals("Wrong redeliveryDelay", 1000, 
policy.getRedeliveryDelay());
         assertEquals("Wrong logStackTrace", true, policy.isLogHandled());
+        assertEquals("Wrong asyncRedeliveryDelayed", true, 
policy.isAsyncDelayedRedelivery());
     }
     
     public void testErrorHandlerInsideCamelContext() {

Modified: 
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/config/SpringErrorHandlerConfigTest.xml
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/config/SpringErrorHandlerConfigTest.xml?rev=960053&r1=960052&r2=960053&view=diff
==============================================================================
--- 
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/config/SpringErrorHandlerConfigTest.xml
 (original)
+++ 
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/config/SpringErrorHandlerConfigTest.xml
 Fri Jul  2 16:45:14 2010
@@ -33,7 +33,7 @@
     <camelContext xmlns="http://camel.apache.org/schema/spring";>
 
         <errorHandler id="defaultEH">
-            <redeliveryPolicy maximumRedeliveries="2" redeliveryDelay="0"/>
+            <redeliveryPolicy maximumRedeliveries="2" redeliveryDelay="1000" 
asyncDelayedRedelivery="true"/>
         </errorHandler>
 
         <errorHandler id="dlc" type="DeadLetterChannel" 
deadLetterUri="mock:dlc">

Modified: 
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/handler/ErrorHandlerDefinitionParser.xml
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/handler/ErrorHandlerDefinitionParser.xml?rev=960053&r1=960052&r2=960053&view=diff
==============================================================================
--- 
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/handler/ErrorHandlerDefinitionParser.xml
 (original)
+++ 
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/handler/ErrorHandlerDefinitionParser.xml
 Fri Jul  2 16:45:14 2010
@@ -35,7 +35,7 @@
     </camel:errorHandler>
 
     <camel:errorHandler id="deadLetterErrorHandler" type="DeadLetterChannel" 
deadLetterUri="log:dead">
-        <camel:redeliveryPolicy maximumRedeliveries="2" redeliveryDelay="1000" 
logHandled="true"/>
+        <camel:redeliveryPolicy maximumRedeliveries="2" redeliveryDelay="1000" 
logHandled="true" asyncDelayedRedelivery="true"/>
     </camel:errorHandler>
 
     <bean id="myErrorProcessor" 
class="org.apache.camel.spring.handler.MyErrorProcessor"/>


Reply via email to