Author: davsclaus
Date: Thu Aug 23 06:48:04 2012
New Revision: 1376387
URL: http://svn.apache.org/viewvc?rev=1376387&view=rev
Log:
Added unit test based on user forum issue
Added:
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringRedeliverToSubRouteTest.java
- copied, changed from r1376365,
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringAOPBeforeTest.java
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/RedeliverToSubRouteTest.xml
- copied, changed from r1376365,
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/aopbefore.xml
Modified:
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RedeliverToSubRouteTest.java
Modified:
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RedeliverToSubRouteTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RedeliverToSubRouteTest.java?rev=1376387&r1=1376386&r2=1376387&view=diff
==============================================================================
---
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RedeliverToSubRouteTest.java
(original)
+++
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RedeliverToSubRouteTest.java
Thu Aug 23 06:48:04 2012
@@ -60,19 +60,25 @@ public class RedeliverToSubRouteTest ext
// disable error handler, so the entire route can be
retried in case of redelivery
.errorHandler(noErrorHandler())
.to("mock:b")
- .process(new Processor() {
- private int counter;
- @Override
- public void process(Exchange exchange) throws
Exception {
- // use a processor to simulate error in the first
2 calls
- if (counter++ < 2) {
- throw new IOException("Forced");
- }
- exchange.getIn().setBody("Bye World");
- }
- });
+ .process(new MyProcessor());
// END SNIPPET: e1
}
};
}
+
+ // START SNIPPET: e2
+ public static class MyProcessor implements Processor {
+
+ private int counter;
+
+ @Override
+ public void process(Exchange exchange) throws Exception {
+ // use a processor to simulate error in the first 2 calls
+ if (counter++ < 2) {
+ throw new IOException("Forced");
+ }
+ exchange.getIn().setBody("Bye World");
+ }
+ }
+ // END SNIPPET: e2
}
Copied:
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringRedeliverToSubRouteTest.java
(from r1376365,
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringAOPBeforeTest.java)
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringRedeliverToSubRouteTest.java?p2=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringRedeliverToSubRouteTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringAOPBeforeTest.java&r1=1376365&r2=1376387&rev=1376387&view=diff
==============================================================================
---
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringAOPBeforeTest.java
(original)
+++
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringRedeliverToSubRouteTest.java
Thu Aug 23 06:48:04 2012
@@ -17,15 +17,16 @@
package org.apache.camel.spring.processor;
import org.apache.camel.CamelContext;
-import org.apache.camel.processor.AOPBeforeTest;
+import org.apache.camel.processor.RedeliverToSubRouteTest;
+
import static
org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
/**
* @version
*/
-public class SpringAOPBeforeTest extends AOPBeforeTest {
+public class SpringRedeliverToSubRouteTest extends RedeliverToSubRouteTest {
protected CamelContext createCamelContext() throws Exception {
- return createSpringCamelContext(this,
"org/apache/camel/spring/processor/aopbefore.xml");
+ return createSpringCamelContext(this,
"org/apache/camel/spring/processor/RedeliverToSubRouteTest.xml");
}
}
\ No newline at end of file
Copied:
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/RedeliverToSubRouteTest.xml
(from r1376365,
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/aopbefore.xml)
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/RedeliverToSubRouteTest.xml?p2=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/RedeliverToSubRouteTest.xml&p1=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/aopbefore.xml&r1=1376365&r2=1376387&rev=1376387&view=diff
==============================================================================
---
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/aopbefore.xml
(original)
+++
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/RedeliverToSubRouteTest.xml
Thu Aug 23 06:48:04 2012
@@ -23,13 +23,35 @@
">
<!-- START SNIPPET: e1 -->
+ <!-- this is the processor that will fail the first 2 attempts -->
+ <bean id="myProcessor"
class="org.apache.camel.processor.RedeliverToSubRouteTest.MyProcessor"/>
+
<camelContext xmlns="http://camel.apache.org/schema/spring">
+
+ <!-- setup no error handler with an id, we refer to from the
2nd route -->
+ <errorHandler id="noErrorHandler" type="NoErrorHandler"/>
+
+ <!-- configure on exception to redelivery at most 2 times when
an IOException was thrown
+ do not use redelivery delay to run unit test faster -->
+ <onException>
+ <exception>java.io.IOException</exception>
+ <redeliveryPolicy maximumRedeliveries="2"
redeliveryDelay="0"/>
+ </onException>
+
+ <!-- 1st route, no need to setup error handler, as it will use
the default error handler -->
<route>
<from uri="direct:start"/>
- <aop beforeUri="mock:before">
- <transform><constant>Bye World</constant></transform>
- <to uri="mock:result"/>
- </aop>
+ <to uri="mock:a"/>
+ <to uri="direct:sub"/>
+ <to uri="mock:c"/>
+ </route>
+
+ <!-- disable error handler on this route, so the entire route
can be redelivered
+ when called from the 1st route -->
+ <route errorHandlerRef="noErrorHandler">
+ <from uri="direct:sub"/>
+ <to uri="mock:b"/>
+ <process ref="myProcessor"/>
</route>
</camelContext>
<!-- END SNIPPET: e1 -->