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