Author: davsclaus Date: Tue Oct 26 13:01:54 2010 New Revision: 1027527 URL: http://svn.apache.org/viewvc?rev=1027527&view=rev Log: CAMEL-3197: Polished
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/WeightedLoadBalancer.java camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/WeightedRandomLoadBalancer.java camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/WeightedRoundRobinLoadBalancer.java camel/trunk/camel-core/src/test/java/org/apache/camel/processor/WeightedRandomLoadBalanceTest.java camel/trunk/camel-core/src/test/java/org/apache/camel/processor/WeightedRoundRobinLoadBalanceTest.java Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/WeightedLoadBalancer.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/WeightedLoadBalancer.java?rev=1027527&r1=1027526&r2=1027527&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/WeightedLoadBalancer.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/WeightedLoadBalancer.java Tue Oct 26 13:01:54 2010 @@ -19,13 +19,7 @@ package org.apache.camel.processor.loadb import java.util.ArrayList; import java.util.List; -import org.apache.camel.CamelException; -import org.apache.camel.Processor; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - public abstract class WeightedLoadBalancer extends QueueLoadBalancer { - private static final transient Log LOG = LogFactory.getLog(WeightedLoadBalancer.class); private List<Integer> distributionRatioList = new ArrayList<Integer>(); private ArrayList<DistributionRatio> runtimeRatios = new ArrayList<DistributionRatio>(); @@ -41,15 +35,12 @@ public abstract class WeightedLoadBalanc } - /* (non-Javadoc) - * @see org.apache.camel.processor.loadbalancer.LoadBalancerSupport#doStart() - */ @Override protected void doStart() throws Exception { - super.doStart(); if (getProcessors().size() != getDistributionRatioList().size()) { - throw new CamelException("Listed Load Balance Processors do not match Distribution Ratio."); + throw new IllegalArgumentException("Loadbalacing with " + getProcessors().size() + + " should match number of distributions " + getDistributionRatioList().size()); } } Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/WeightedRandomLoadBalancer.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/WeightedRandomLoadBalancer.java?rev=1027527&r1=1027526&r2=1027527&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/WeightedRandomLoadBalancer.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/WeightedRandomLoadBalancer.java Tue Oct 26 13:01:54 2010 @@ -29,15 +29,9 @@ public class WeightedRandomLoadBalancer super(distributionRatioList); } - /* (non-Javadoc) - * @see org.apache.camel.processor.loadbalancer.QueueLoadBalancer#chooseProcessor(java.util.List, org.apache.camel.Exchange) - */ @Override - protected Processor chooseProcessor(List<Processor> processors, - Exchange exchange) { - + protected Processor chooseProcessor(List<Processor> processors, Exchange exchange) { boolean found = false; - while (!found) { if (getRuntimeRatios().isEmpty()) { loadRuntimeRatios(getDistributionRatioList()); @@ -51,7 +45,6 @@ public class WeightedRandomLoadBalancer if (getRuntimeRatios().get(randomCounter).getRuntimeWeight() > 0) { getRuntimeRatios().get(randomCounter).setRuntimeWeight((getRuntimeRatios().get(randomCounter).getRuntimeWeight()) - 1); found = true; - break; } else { getRuntimeRatios().remove(randomCounter); } Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/WeightedRoundRobinLoadBalancer.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/WeightedRoundRobinLoadBalancer.java?rev=1027527&r1=1027526&r2=1027527&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/WeightedRoundRobinLoadBalancer.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/WeightedRoundRobinLoadBalancer.java Tue Oct 26 13:01:54 2010 @@ -28,20 +28,14 @@ public class WeightedRoundRobinLoadBalan super(distributionRatios); } - /* (non-Javadoc) - * @see org.apache.camel.processor.loadbalancer.QueueLoadBalancer#chooseProcessor(java.util.List, org.apache.camel.Exchange) - */ @Override - protected Processor chooseProcessor(List<Processor> processors, - Exchange exchange) { - + protected Processor chooseProcessor(List<Processor> processors, Exchange exchange) { if (isRuntimeRatiosZeroed()) { resetRuntimeRatios(); counter = 0; } boolean found = false; - while (!found) { if (counter >= getRuntimeRatios().size()) { counter = 0; @@ -50,7 +44,6 @@ public class WeightedRoundRobinLoadBalan if (getRuntimeRatios().get(counter).getRuntimeWeight() > 0) { getRuntimeRatios().get(counter).setRuntimeWeight((getRuntimeRatios().get(counter).getRuntimeWeight()) - 1); found = true; - break; } else { counter++; } Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/WeightedRandomLoadBalanceTest.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/WeightedRandomLoadBalanceTest.java?rev=1027527&r1=1027526&r2=1027527&view=diff ============================================================================== --- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/WeightedRandomLoadBalanceTest.java (original) +++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/WeightedRandomLoadBalanceTest.java Tue Oct 26 13:01:54 2010 @@ -16,9 +16,6 @@ */ package org.apache.camel.processor; -import java.util.ArrayList; -import java.util.List; - import org.apache.camel.CamelException; import org.apache.camel.ContextTestSupport; import org.apache.camel.builder.RouteBuilder; @@ -38,17 +35,12 @@ public class WeightedRandomLoadBalanceTe z = getMockEndpoint("mock:z"); } - - /* (non-Javadoc) - * @see org.apache.camel.ContextTestSupport#isUseRouteBuilder() - */ @Override public boolean isUseRouteBuilder() { return false; } public void testRandom() throws Exception { - x.expectedMessageCount(4); y.expectedMessageCount(2); z.expectedMessageCount(1); @@ -57,8 +49,9 @@ public class WeightedRandomLoadBalanceTe public void configure() { // START SNIPPET: example - from("direct:start").loadBalance(). - weighted(false, "4:2:1").to("mock:x", "mock:y", "mock:z"); + from("direct:start") + .loadBalance().weighted(false, "4:2:1") + .to("mock:x", "mock:y", "mock:z"); // END SNIPPET: example } }); @@ -70,17 +63,16 @@ public class WeightedRandomLoadBalanceTe } public void testRandom2() throws Exception { - x.expectedMessageCount(2); y.expectedMessageCount(1); z.expectedMessageCount(3); context.addRoutes(new RouteBuilder() { public void configure() { - // START SNIPPET: example - from("direct:start").loadBalance(). - weighted(false, "2, 1, 3", ",").to("mock:x", "mock:y", "mock:z"); + from("direct:start") + .loadBalance().weighted(false, "2, 1, 3", ",") + .to("mock:x", "mock:y", "mock:z"); // END SNIPPET: example } }); @@ -92,7 +84,6 @@ public class WeightedRandomLoadBalanceTe } public void testRandomBulk() throws Exception { - x.expectedMessageCount(10); y.expectedMessageCount(15); z.expectedMessageCount(25); @@ -101,8 +92,9 @@ public class WeightedRandomLoadBalanceTe public void configure() { // START SNIPPET: example - from("direct:start").loadBalance(). - weighted(false, "2-3-5", "-").to("mock:x", "mock:y", "mock:z"); + from("direct:start") + .loadBalance().weighted(false, "2-3-5", "-") + .to("mock:x", "mock:y", "mock:z"); // END SNIPPET: example } }); @@ -119,16 +111,16 @@ public class WeightedRandomLoadBalanceTe try { context.addRoutes(new RouteBuilder() { public void configure() { - // START SNIPPET: example - from("direct:start").loadBalance(). - weighted(false, "2:3").to("mock:x", "mock:y", "mock:z"); + from("direct:start") + .loadBalance().weighted(false, "2:3") + .to("mock:x", "mock:y", "mock:z"); // END SNIPPET: example } }); context.start(); - } catch (CamelException e) { - assertEquals("Listed Load Balance Processors do not match Distribution Ratio.", e.getMessage()); + } catch (IllegalArgumentException e) { + assertEquals("Loadbalacing with 3 should match number of distributions 2", e.getMessage()); error = true; } @@ -151,12 +143,4 @@ public class WeightedRandomLoadBalanceTe return "<message>" + counter + "</message>"; } - protected Object[] listOfMessages(int... counters) { - List<String> list = new ArrayList<String>(counters.length); - for (int counter : counters) { - list.add(createTestMessage(counter)); - } - return list.toArray(); - } - } Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/WeightedRoundRobinLoadBalanceTest.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/WeightedRoundRobinLoadBalanceTest.java?rev=1027527&r1=1027526&r2=1027527&view=diff ============================================================================== --- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/WeightedRoundRobinLoadBalanceTest.java (original) +++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/WeightedRoundRobinLoadBalanceTest.java Tue Oct 26 13:01:54 2010 @@ -16,14 +16,10 @@ */ package org.apache.camel.processor; -import java.util.ArrayList; -import java.util.List; - import org.apache.camel.CamelException; import org.apache.camel.ContextTestSupport; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; -import static org.apache.camel.component.mock.MockEndpoint.expectsMessageCount; public class WeightedRoundRobinLoadBalanceTest extends ContextTestSupport { protected MockEndpoint x; @@ -38,18 +34,13 @@ public class WeightedRoundRobinLoadBalan y = getMockEndpoint("mock:y"); z = getMockEndpoint("mock:z"); } - - /* (non-Javadoc) - * @see org.apache.camel.ContextTestSupport#isUseRouteBuilder() - */ @Override public boolean isUseRouteBuilder() { return false; } public void testRoundRobin() throws Exception { - x.expectedMessageCount(5); y.expectedMessageCount(2); z.expectedMessageCount(1); @@ -57,8 +48,9 @@ public class WeightedRoundRobinLoadBalan context.addRoutes(new RouteBuilder() { public void configure() { // START SNIPPET: example - from("direct:start").loadBalance(). - weighted(true, "4:2:1").to("mock:x", "mock:y", "mock:z"); + from("direct:start") + .loadBalance().weighted(true, "4:2:1") + .to("mock:x", "mock:y", "mock:z"); // END SNIPPET: example } }); @@ -73,7 +65,6 @@ public class WeightedRoundRobinLoadBalan } public void testRoundRobin2() throws Exception { - x.expectedMessageCount(3); y.expectedMessageCount(1); z.expectedMessageCount(3); @@ -82,8 +73,9 @@ public class WeightedRoundRobinLoadBalan public void configure() { // START SNIPPET: example - from("direct:start").loadBalance(). - weighted(true, "2, 1, 3", ",").to("mock:x", "mock:y", "mock:z"); + from("direct:start") + .loadBalance().weighted(true, "2, 1, 3", ",") + .to("mock:x", "mock:y", "mock:z"); // END SNIPPET: example } }); @@ -106,8 +98,9 @@ public class WeightedRoundRobinLoadBalan context.addRoutes(new RouteBuilder() { public void configure() { // START SNIPPET: example - from("direct:start").loadBalance(). - weighted(true, "2-3-5", "-").to("mock:x", "mock:y", "mock:z"); + from("direct:start") + .loadBalance().weighted(true, "2-3-5", "-") + .to("mock:x", "mock:y", "mock:z"); // END SNIPPET: example } }); @@ -124,16 +117,16 @@ public class WeightedRoundRobinLoadBalan try { context.addRoutes(new RouteBuilder() { public void configure() { - // START SNIPPET: example - from("direct:start").loadBalance(). - weighted(true, "2:3").to("mock:x", "mock:y", "mock:z"); + from("direct:start") + .loadBalance().weighted(true, "2:3") + .to("mock:x", "mock:y", "mock:z"); // END SNIPPET: example } }); context.start(); - } catch (CamelException e) { - assertEquals("Listed Load Balance Processors do not match Distribution Ratio.", e.getMessage()); + } catch (IllegalArgumentException e) { + assertEquals("Loadbalacing with 3 should match number of distributions 2", e.getMessage()); error = true; } @@ -156,12 +149,4 @@ public class WeightedRoundRobinLoadBalan return "<message>" + counter + "</message>"; } - protected Object[] listOfMessages(int... counters) { - List<String> list = new ArrayList<String>(counters.length); - for (int counter : counters) { - list.add(createTestMessage(counter)); - } - return list.toArray(); - } - }