Author: davsclaus
Date: Sun Sep 25 14:32:11 2011
New Revision: 1175401

URL: http://svn.apache.org/viewvc?rev=1175401&view=rev
Log:
threads EIP have better toString

Modified:
    
camel/trunk/camel-core/src/main/java/org/apache/camel/model/ThreadsDefinition.java
    
camel/trunk/camel-core/src/test/java/org/apache/camel/builder/RouteBuilderTest.java

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/ThreadsDefinition.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ThreadsDefinition.java?rev=1175401&r1=1175400&r2=1175401&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/ThreadsDefinition.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/model/ThreadsDefinition.java
 Sun Sep 25 14:32:11 2011
@@ -107,7 +107,13 @@ public class ThreadsDefinition extends O
         pipe.add(thread);
         pipe.add(createChildProcessor(routeContext, true));
         // wrap in nested pipeline so this appears as one processor
-        return new Pipeline(routeContext.getCamelContext(), pipe);
+        // (recipient list definition does this as well)
+        return new Pipeline(routeContext.getCamelContext(), pipe) {
+            @Override
+            public String toString() {
+                return "Threads[" + getOutputs() + "]";
+            }
+        };
     }
 
     @Override

Modified: 
camel/trunk/camel-core/src/test/java/org/apache/camel/builder/RouteBuilderTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/RouteBuilderTest.java?rev=1175401&r1=1175400&r2=1175401&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/builder/RouteBuilderTest.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/builder/RouteBuilderTest.java
 Sun Sep 25 14:32:11 2011
@@ -40,6 +40,7 @@ import org.apache.camel.processor.Pipeli
 import org.apache.camel.processor.RecipientList;
 import org.apache.camel.processor.SendProcessor;
 import org.apache.camel.processor.Splitter;
+import org.apache.camel.processor.ThreadsProcessor;
 import org.apache.camel.processor.idempotent.IdempotentConsumer;
 import org.apache.camel.processor.idempotent.MemoryIdempotentRepository;
 
@@ -454,6 +455,48 @@ public class RouteBuilderTest extends Te
         }
     }
 
+    protected List<Route> buildThreads() throws Exception {
+        // START SNIPPET: e10
+        RouteBuilder builder = new RouteBuilder() {
+            public void configure() {
+                errorHandler(deadLetterChannel("mock:error"));
+
+                from("seda:a")
+                    .threads(5, 10)
+                    .to("mock:a")
+                    .to("mock:b");
+            }
+        };
+        // END SNIPPET: e10
+        return getRouteList(builder);
+    }
+
+    public void testThreads() throws Exception {
+
+        List<Route> routes = buildThreads();
+
+        log.debug("Created routes: " + routes);
+
+        assertEquals("Number routes created", 1, routes.size());
+        for (Route route : routes) {
+            Endpoint key = route.getEndpoint();
+            assertEquals("From endpoint", "seda://a", key.getEndpointUri());
+
+            EventDrivenConsumerRoute consumer = 
assertIsInstanceOf(EventDrivenConsumerRoute.class, route);
+            Channel channel = unwrapChannel(consumer.getProcessor());
+
+            Pipeline line = assertIsInstanceOf(Pipeline.class, 
channel.getNextProcessor());
+            Iterator it = line.getProcessors().iterator();
+
+            assertIsInstanceOf(ThreadsProcessor.class, it.next());
+            // output should be wrapped in a pipeline
+            Pipeline threadsLine = assertIsInstanceOf(Pipeline.class, 
it.next());
+            Iterator<Processor> it2 = threadsLine.getProcessors().iterator();
+            assertIsInstanceOf(SendProcessor.class, 
unwrapChannel(it2.next()).getNextProcessor());
+            assertIsInstanceOf(SendProcessor.class, 
unwrapChannel(it2.next()).getNextProcessor());
+        }
+    }
+
     protected void assertSendTo(Processor processor, String uri) {
         if (!(processor instanceof SendProcessor)) {
             processor = unwrapErrorHandler(processor);


Reply via email to