Repository: camel Updated Branches: refs/heads/master 0b12b371c -> a962ee5fa
Added xml dsl test and cleaned up Circuit Breaker policy Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/a962ee5f Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/a962ee5f Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/a962ee5f Branch: refs/heads/master Commit: a962ee5fa7ea7175739913cd80b3351818caeecc Parents: 0b12b37 Author: Bilgin Ibryam <bibr...@apache.org> Authored: Sun Apr 13 20:36:26 2014 +0100 Committer: Bilgin Ibryam <bibr...@apache.org> Committed: Sun Apr 13 20:36:26 2014 +0100 ---------------------------------------------------------------------- .../CircuitBreakerLoadBalancerDefinition.java | 4 ++-- .../org/apache/camel/model/XmlParseTest.java | 23 +++++++++++++++----- .../CircuitBreakerLoadBalancerTest.java | 12 +++++----- 3 files changed, 26 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/a962ee5f/camel-core/src/main/java/org/apache/camel/model/loadbalancer/CircuitBreakerLoadBalancerDefinition.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/model/loadbalancer/CircuitBreakerLoadBalancerDefinition.java b/camel-core/src/main/java/org/apache/camel/model/loadbalancer/CircuitBreakerLoadBalancerDefinition.java index 94c990b..81602b0 100644 --- a/camel-core/src/main/java/org/apache/camel/model/loadbalancer/CircuitBreakerLoadBalancerDefinition.java +++ b/camel-core/src/main/java/org/apache/camel/model/loadbalancer/CircuitBreakerLoadBalancerDefinition.java @@ -31,9 +31,9 @@ import org.apache.camel.spi.RouteContext; import org.apache.camel.util.ObjectHelper; /** - * Represents an XML <circuitbreaker/> element + * Represents an XML <circuitBreaker/> element */ -@XmlRootElement(name = "circuitbreaker") +@XmlRootElement(name = "circuitBreaker") @XmlAccessorType(XmlAccessType.FIELD) public class CircuitBreakerLoadBalancerDefinition extends LoadBalancerDefinition { @XmlElement(name = "exception") http://git-wip-us.apache.org/repos/asf/camel/blob/a962ee5f/camel-core/src/test/java/org/apache/camel/model/XmlParseTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/model/XmlParseTest.java b/camel-core/src/test/java/org/apache/camel/model/XmlParseTest.java index 266be93..7d20d5f 100644 --- a/camel-core/src/test/java/org/apache/camel/model/XmlParseTest.java +++ b/camel-core/src/test/java/org/apache/camel/model/XmlParseTest.java @@ -20,6 +20,7 @@ import java.util.List; import javax.xml.bind.JAXBException; import org.apache.camel.model.language.ExpressionDefinition; +import org.apache.camel.model.loadbalancer.CircuitBreakerLoadBalancerDefinition; import org.apache.camel.model.loadbalancer.FailoverLoadBalancerDefinition; import org.apache.camel.model.loadbalancer.RandomLoadBalancerDefinition; import org.apache.camel.model.loadbalancer.RoundRobinLoadBalancerDefinition; @@ -198,7 +199,19 @@ public class XmlParseTest extends XmlTestSupport { assertFrom(route, "seda:a"); LoadBalanceDefinition loadBalance = assertOneProcessorInstanceOf(LoadBalanceDefinition.class, route); assertEquals("Here should have 3 output here", 3, loadBalance.getOutputs().size()); - assertTrue("The loadBalancer shoud be RoundRobinLoadBalancerDefinition", loadBalance.getLoadBalancerType() instanceof RoundRobinLoadBalancerDefinition); + assertTrue("The loadBalancer should be RoundRobinLoadBalancerDefinition", loadBalance.getLoadBalancerType() instanceof RoundRobinLoadBalancerDefinition); + } + + public void testParseCircuitBreakerLoadBalance() throws Exception { + RouteDefinition route = assertOneRoute("routeWithCircuitBreakerLoadBalance.xml"); + assertFrom(route, "direct:start"); + LoadBalanceDefinition loadBalance = assertOneProcessorInstanceOf(LoadBalanceDefinition.class, route); + assertEquals("Should have 1 output", 1, loadBalance.getOutputs().size()); + assertTrue("The loadBalancer should be CircuitBreakerLoadBalancerDefinition", loadBalance.getLoadBalancerType() instanceof CircuitBreakerLoadBalancerDefinition); + CircuitBreakerLoadBalancerDefinition strategy = (CircuitBreakerLoadBalancerDefinition)loadBalance.getLoadBalancerType(); + assertEquals("Should have 1 exception", 1, strategy.getExceptions().size()); + assertEquals("Should have threshold of 2", 2, strategy.getThreshold().intValue()); + assertEquals("Should have HalfOpenAfter timeout of 1000L ", 1000L, strategy.getHalfOpenAfter().longValue()); } public void testParseStickyLoadBalance() throws Exception { @@ -206,7 +219,7 @@ public class XmlParseTest extends XmlTestSupport { assertFrom(route, "seda:a"); LoadBalanceDefinition loadBalance = assertOneProcessorInstanceOf(LoadBalanceDefinition.class, route); assertEquals("Here should have 3 output here", 3, loadBalance.getOutputs().size()); - assertTrue("The loadBalancer shoud be StickyLoadBalancerDefinition", loadBalance.getLoadBalancerType() instanceof StickyLoadBalancerDefinition); + assertTrue("The loadBalancer should be StickyLoadBalancerDefinition", loadBalance.getLoadBalancerType() instanceof StickyLoadBalancerDefinition); StickyLoadBalancerDefinition strategy = (StickyLoadBalancerDefinition)loadBalance.getLoadBalancerType(); assertNotNull("the expression should not be null ", strategy.getCorrelationExpression()); } @@ -216,7 +229,7 @@ public class XmlParseTest extends XmlTestSupport { assertFrom(route, "seda:a"); LoadBalanceDefinition loadBalance = assertOneProcessorInstanceOf(LoadBalanceDefinition.class, route); assertEquals("Here should have 3 output here", 3, loadBalance.getOutputs().size()); - assertTrue("The loadBalancer shoud be FailoverLoadBalancerDefinition", loadBalance.getLoadBalancerType() instanceof FailoverLoadBalancerDefinition); + assertTrue("The loadBalancer should be FailoverLoadBalancerDefinition", loadBalance.getLoadBalancerType() instanceof FailoverLoadBalancerDefinition); FailoverLoadBalancerDefinition strategy = (FailoverLoadBalancerDefinition)loadBalance.getLoadBalancerType(); assertEquals("there should be 2 exceptions", 2, strategy.getExceptions().size()); } @@ -226,7 +239,7 @@ public class XmlParseTest extends XmlTestSupport { assertFrom(route, "seda:a"); LoadBalanceDefinition loadBalance = assertOneProcessorInstanceOf(LoadBalanceDefinition.class, route); assertEquals("Here should have 3 output here", 3, loadBalance.getOutputs().size()); - assertTrue("The loadBalancer shoud be RandomLoadBalancerDefinition", loadBalance.getLoadBalancerType() instanceof RandomLoadBalancerDefinition); + assertTrue("The loadBalancer should be RandomLoadBalancerDefinition", loadBalance.getLoadBalancerType() instanceof RandomLoadBalancerDefinition); } public void testParseTopicLoadBalance() throws Exception { @@ -234,7 +247,7 @@ public class XmlParseTest extends XmlTestSupport { assertFrom(route, "seda:a"); LoadBalanceDefinition loadBalance = assertOneProcessorInstanceOf(LoadBalanceDefinition.class, route); assertEquals("Here should have 3 output here", 3, loadBalance.getOutputs().size()); - assertTrue("The loadBalancer shoud be TopicLoadBalancerDefinition", loadBalance.getLoadBalancerType() instanceof TopicLoadBalancerDefinition); + assertTrue("The loadBalancer should be TopicLoadBalancerDefinition", loadBalance.getLoadBalancerType() instanceof TopicLoadBalancerDefinition); } public void testParseHL7DataFormat() throws Exception { http://git-wip-us.apache.org/repos/asf/camel/blob/a962ee5f/camel-core/src/test/java/org/apache/camel/processor/CircuitBreakerLoadBalancerTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/processor/CircuitBreakerLoadBalancerTest.java b/camel-core/src/test/java/org/apache/camel/processor/CircuitBreakerLoadBalancerTest.java index 124a1e1..9d6a44b 100644 --- a/camel-core/src/test/java/org/apache/camel/processor/CircuitBreakerLoadBalancerTest.java +++ b/camel-core/src/test/java/org/apache/camel/processor/CircuitBreakerLoadBalancerTest.java @@ -27,7 +27,7 @@ import static org.apache.camel.component.mock.MockEndpoint.expectsMessageCount; public class CircuitBreakerLoadBalancerTest extends ContextTestSupport { - private static class MyExceptionProcessor extends RuntimeException { + private static class MyCustomException extends RuntimeException { } private MockEndpoint result; @@ -42,7 +42,7 @@ public class CircuitBreakerLoadBalancerTest extends ContextTestSupport { return new RouteBuilder() { public void configure() { from("direct:start").loadBalance() - .circuitBreaker(2, 1000L, MyExceptionProcessor.class) + .circuitBreaker(2, 1000L, MyCustomException.class) .to("mock:result"); } }; @@ -62,7 +62,7 @@ public class CircuitBreakerLoadBalancerTest extends ContextTestSupport { result.whenAnyExchangeReceived(new Processor() { @Override public void process(Exchange exchange) throws Exception { - exchange.setException(new MyExceptionProcessor()); + exchange.setException(new MyCustomException()); } }); @@ -71,8 +71,8 @@ public class CircuitBreakerLoadBalancerTest extends ContextTestSupport { Exchange exchangeThree = sendMessage("direct:start", "message three"); assertMockEndpointsSatisfied(); - assertTrue(exchangeOne.getException() instanceof MyExceptionProcessor); - assertTrue(exchangeTwo.getException() instanceof MyExceptionProcessor); + assertTrue(exchangeOne.getException() instanceof MyCustomException); + assertTrue(exchangeTwo.getException() instanceof MyCustomException); assertTrue(exchangeThree.getException() instanceof RejectedExecutionException); } @@ -81,7 +81,7 @@ public class CircuitBreakerLoadBalancerTest extends ContextTestSupport { result.whenAnyExchangeReceived(new Processor() { @Override public void process(Exchange exchange) throws Exception { - exchange.setException(new MyExceptionProcessor()); + exchange.setException(new MyCustomException()); } });