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 2010/10/26 15:01:55 UTC
svn commit: r1027527 - in /camel/trunk/camel-core/src:
main/java/org/apache/camel/processor/loadbalancer/
test/java/org/apache/camel/processor/
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();
- }
-
}