You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2012/02/23 17:02:03 UTC
svn commit: r1292836 - in /camel/trunk:
camel-core/src/test/java/org/apache/camel/processor/
components/camel-spring/src/test/java/org/apache/camel/spring/processor/
components/camel-spring/src/test/resources/org/apache/camel/spring/processor/
Author: davsclaus
Date: Thu Feb 23 16:02:03 2012
New Revision: 1292836
URL: http://svn.apache.org/viewvc?rev=1292836&view=rev
Log:
Added test based on user forum issue
Added:
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/FailOverLoadBalanceAutoStartupFalseTest.java
- copied, changed from r1292765, camel/trunk/camel-core/src/test/java/org/apache/camel/processor/FailOverLoadBalanceTest.java
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringFailOverLoadBalanceAutoStartupFalseTest.java
- copied, changed from r1292765, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringFailOverLoadBalanceTest.java
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/FailOverLoadBalanceAutoStartupFalseTest.xml
- copied, changed from r1292765, camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/failOverLoadBalance.xml
Copied: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/FailOverLoadBalanceAutoStartupFalseTest.java (from r1292765, camel/trunk/camel-core/src/test/java/org/apache/camel/processor/FailOverLoadBalanceTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/FailOverLoadBalanceAutoStartupFalseTest.java?p2=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/FailOverLoadBalanceAutoStartupFalseTest.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/FailOverLoadBalanceTest.java&r1=1292765&r2=1292836&rev=1292836&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/FailOverLoadBalanceTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/FailOverLoadBalanceAutoStartupFalseTest.java Thu Feb 23 16:02:03 2012
@@ -17,91 +17,34 @@
package org.apache.camel.processor;
import org.apache.camel.ContextTestSupport;
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.RuntimeCamelException;
import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.mock.MockEndpoint;
-import static org.apache.camel.component.mock.MockEndpoint.expectsMessageCount;
-
-public class FailOverLoadBalanceTest extends ContextTestSupport {
+public class FailOverLoadBalanceAutoStartupFalseTest extends ContextTestSupport {
+
+ public void testFailover() throws Exception {
+ getMockEndpoint("mock:x").expectedMessageCount(1);
+ getMockEndpoint("mock:y").expectedMessageCount(1);
+ getMockEndpoint("mock:z").expectedMessageCount(1);
- protected MockEndpoint x;
- protected MockEndpoint y;
- protected MockEndpoint z;
+ context.startRoute("foo");
- @Override
- protected void setUp() throws Exception {
- super.setUp();
+ template.sendBody("direct:start", "Hello World");
- x = getMockEndpoint("mock:x");
- y = getMockEndpoint("mock:y");
- z = getMockEndpoint("mock:z");
- }
-
- public static class MyException extends Exception {
- private static final long serialVersionUID = 1L;
- }
-
- public static class MyAnotherException extends Exception {
- private static final long serialVersionUID = 1L;
- }
-
- public static class MyExceptionProcessor implements Processor {
- public void process(Exchange exchange) throws Exception {
- throw new MyException();
- }
- }
-
- public static class MyAnotherExceptionProcessor implements Processor {
- public void process(Exchange exchange) throws Exception {
- throw new MyAnotherException();
- }
+ assertMockEndpointsSatisfied();
}
protected RouteBuilder createRouteBuilder() {
return new RouteBuilder() {
public void configure() {
- from("direct:exception").loadBalance()
- // catch all the exception here
- .failover().to("direct:x", "direct:y", "direct:z");
-
- from("direct:customerException").loadBalance()
- .failover(MyException.class).to("direct:x", "direct:y", "direct:z");
-
- from("direct:x").process(new MyExceptionProcessor()).to("mock:x");
-
- from("direct:y").process(new MyAnotherExceptionProcessor()).to("mock:y");
+ from("direct:start").routeId("foo").noAutoStartup()
+ .loadBalance().failover(3, true, true)
+ .to("direct:x", "direct:y", "direct:z");
+ from("direct:x").to("mock:x").throwException(new IllegalArgumentException("Forced"));
+ from("direct:y").to("mock:y").throwException(new IllegalArgumentException("Also Forced"));
from("direct:z").to("mock:z");
-
}
};
}
- public void testThrowable() throws Exception {
- String body = "<one/>";
- expectsMessageCount(0, x, y);
- z.expectedBodiesReceived(body);
- sendMessage("direct:exception", "bar", body);
- assertMockEndpointsSatisfied();
- }
-
- public void testMyException() throws Exception {
- String body = "<two/>";
- expectsMessageCount(0, x, y, z);
- try {
- sendMessage("direct:customerException", "bar", body);
- fail("There should get the MyAnotherException");
- } catch (RuntimeCamelException ex) {
- // expect the exception here
- assertTrue("The cause should be MyAnotherException", ex.getCause() instanceof MyAnotherException);
- }
- assertMockEndpointsSatisfied();
- }
-
- protected void sendMessage(final String endpoint, final Object headerValue, final Object body) throws Exception {
- template.sendBodyAndHeader(endpoint, body, "foo", headerValue);
- }
}
Copied: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringFailOverLoadBalanceAutoStartupFalseTest.java (from r1292765, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringFailOverLoadBalanceTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringFailOverLoadBalanceAutoStartupFalseTest.java?p2=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringFailOverLoadBalanceAutoStartupFalseTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringFailOverLoadBalanceTest.java&r1=1292765&r2=1292836&rev=1292836&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringFailOverLoadBalanceTest.java (original)
+++ camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringFailOverLoadBalanceAutoStartupFalseTest.java Thu Feb 23 16:02:03 2012
@@ -14,18 +14,17 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.camel.spring.processor;
import org.apache.camel.CamelContext;
-import org.apache.camel.processor.FailOverLoadBalanceTest;
+import org.apache.camel.processor.FailOverLoadBalanceAutoStartupFalseTest;
import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
-public class SpringFailOverLoadBalanceTest extends FailOverLoadBalanceTest {
+public class SpringFailOverLoadBalanceAutoStartupFalseTest extends FailOverLoadBalanceAutoStartupFalseTest {
protected CamelContext createCamelContext() throws Exception {
- return createSpringCamelContext(this, "org/apache/camel/spring/processor/failOverLoadBalance.xml");
+ return createSpringCamelContext(this, "org/apache/camel/spring/processor/FailOverLoadBalanceAutoStartupFalseTest.xml");
}
}
Copied: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/FailOverLoadBalanceAutoStartupFalseTest.xml (from r1292765, camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/failOverLoadBalance.xml)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/FailOverLoadBalanceAutoStartupFalseTest.xml?p2=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/FailOverLoadBalanceAutoStartupFalseTest.xml&p1=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/failOverLoadBalance.xml&r1=1292765&r2=1292836&rev=1292836&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/failOverLoadBalance.xml (original)
+++ camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/FailOverLoadBalanceAutoStartupFalseTest.xml Thu Feb 23 16:02:03 2012
@@ -22,50 +22,41 @@
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
">
-
- <!-- START SNIPPET: example -->
-
<camelContext xmlns="http://camel.apache.org/schema/spring">
- <route errorHandlerRef="noErrorHandler">
- <from uri="direct:exception"/>
- <loadBalance>
- <failover/>
- <to uri="direct:x"/>
- <to uri="direct:y"/>
- <to uri="direct:z"/>
- </loadBalance>
- </route>
- <route errorHandlerRef="noErrorHandler">
- <from uri="direct:customerException"/>
- <loadBalance>
- <failover>
- <exception>org.apache.camel.processor.FailOverLoadBalanceTest$MyException</exception>
- </failover>
- <to uri="direct:x"/>
- <to uri="direct:y"/>
- <to uri="direct:z"/>
+
+ <route id="foo" autoStartup="false">
+ <from uri="direct:start"/>
+ <loadBalance inheritErrorHandler="true">
+ <failover maximumFailoverAttempts="3" roundRobin="true"/>
+ <to uri="direct:x"/>
+ <to uri="direct:y"/>
+ <to uri="direct:z"/>
</loadBalance>
</route>
- <route errorHandlerRef="noErrorHandler">
- <from uri="direct:x"/>
- <process ref="myExceptionProcessor"/>
- <to uri="mock:x"/>
+
+ <route>
+ <from uri="direct:x"/>
+ <to uri="mock:x"/>
+ <throwException ref="forced"/>
+ </route>
+ <route>
+ <from uri="direct:y"/>
+ <to uri="mock:y"/>
+ <throwException ref="alsoForced"/>
</route>
- <route errorHandlerRef="noErrorHandler">
- <from uri="direct:y"/>
- <process ref="myAnotherExceptionProcessor"/>
- <to uri="mock:y"/>
- </route>
- <route errorHandlerRef="noErrorHandler">
- <from uri="direct:z"/>
- <to uri="mock:z"/>
- </route>
+ <route>
+ <from uri="direct:z"/>
+ <to uri="mock:z"/>
+ </route>
+
</camelContext>
- <bean id="noErrorHandler" class="org.apache.camel.builder.NoErrorHandlerBuilder"/>
- <bean id="myExceptionProcessor" class="org.apache.camel.processor.FailOverLoadBalanceTest$MyExceptionProcessor"/>
- <bean id="myAnotherExceptionProcessor" class="org.apache.camel.processor.FailOverLoadBalanceTest$MyAnotherExceptionProcessor"/>
-
- <!-- END SNIPPET: example -->
+ <bean id="forced" class="java.lang.IllegalArgumentException">
+ <constructor-arg index="0" value="Forced"/>
+ </bean>
+
+ <bean id="alsoForced" class="java.lang.IllegalArgumentException">
+ <constructor-arg index="0" value="Also Forced"/>
+ </bean>
</beans>