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();
-    }
-    
 }