You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by ge...@apache.org on 2010/08/14 18:54:10 UTC
svn commit: r985535 -
/servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/nmr/CamelAsyncRouteTest.java
Author: gertv
Date: Sat Aug 14 16:54:09 2010
New Revision: 985535
URL: http://svn.apache.org/viewvc?rev=985535&view=rev
Log:
Fix CI build failures for CamelAsyncRouteTest
Modified:
servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/nmr/CamelAsyncRouteTest.java
Modified: servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/nmr/CamelAsyncRouteTest.java
URL: http://svn.apache.org/viewvc/servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/nmr/CamelAsyncRouteTest.java?rev=985535&r1=985534&r2=985535&view=diff
==============================================================================
--- servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/nmr/CamelAsyncRouteTest.java (original)
+++ servicemix/smx4/features/trunk/camel/servicemix-camel/src/test/java/org/apache/servicemix/camel/nmr/CamelAsyncRouteTest.java Sat Aug 14 16:54:09 2010
@@ -32,7 +32,9 @@ import org.apache.servicemix.nmr.api.Sta
public class CamelAsyncRouteTest extends AbstractComponentTest {
private static final String HANDLED_BY_THREAD = "HandledByThread";
+
private static final int COUNT = 1000;
+ private static final long DELAY = 60000;
/* Latch to count NMR Done Exchanges */
private CountDownLatch done;
@@ -45,40 +47,41 @@ public class CamelAsyncRouteTest extends
}
public void testCamelThreads() throws InterruptedException {
- MockEndpoint mock = getMockEndpoint("mock:threads");
- mock.expectedMessageCount(COUNT);
-
- getMockEndpoint("mock:sent").expectedMessageCount(COUNT);
-
+ expectDefaultMessageCount("mock:sent");
+ expectDefaultMessageCount("mock:threads").whenAnyExchangeReceived(new AssertHandledByCamelThreadProcessor());
+
for (int i = 0 ; i < COUNT ; i++) {
- template.asyncSendBody("direct:threads", "Simple message body");
+ template.asyncSendBody("direct:threads", "Simple message body " + i);
}
assertMockEndpointsSatisfied();
assertTrue("All NMR exchanges should have been marked DONE",
- done.await(20, TimeUnit.SECONDS));
-
- for (Exchange exchange : mock.getExchanges()) {
- Thread thread = exchange.getProperty(HANDLED_BY_THREAD, Thread.class);
- assertTrue("processor should have been called from the Camel 'threads' thread pool instead of " + thread.getName(),
- thread.getName().contains("Camel") && thread.getName().contains("Thread"));
- }
-
+ done.await(DELAY, TimeUnit.MILLISECONDS));
}
- public void testCamelSeda() throws InterruptedException {
- getMockEndpoint("mock:sent").expectedMessageCount(COUNT);
- getMockEndpoint("mock:seda").expectedMessageCount(COUNT);
+ public void testCamelSeda() throws InterruptedException {
+ expectDefaultMessageCount("mock:sent");
+ expectDefaultMessageCount("mock:seda");
for (int i = 0 ; i < COUNT ; i++) {
- template.asyncSendBody("seda:seda", "Simple message body");
+ template.asyncSendBody("seda:seda", "Simple message body " + i);
}
assertMockEndpointsSatisfied();
assertTrue("All NMR exchanges should have been marked DONE",
- done.await(20, TimeUnit.SECONDS));
+ done.await(DELAY, TimeUnit.MILLISECONDS));
+ }
+
+ /*
+ * Configure the mock endpoint to expect {@value #COUNT} messages to arrive in {@value #DELAY}ms
+ */
+ private MockEndpoint expectDefaultMessageCount(String endpoint) {
+ final MockEndpoint mock = getMockEndpoint(endpoint);
+ mock.setResultWaitTime(DELAY);
+ mock.expectedMessageCount(COUNT);
+ return mock;
}
@Override
@@ -111,4 +114,17 @@ public class CamelAsyncRouteTest extends
done.countDown();
}
}
+
+ /*
+ * Processor to ensure that the exchange has been handled by a Camel thread instead of an NMR thread
+ */
+ private static final class AssertHandledByCamelThreadProcessor implements Processor {
+
+ public void process(Exchange exchange) throws Exception {
+ Thread thread = exchange.getProperty(HANDLED_BY_THREAD, Thread.class);
+ assertTrue("processor should have been called from the Camel 'threads' thread pool instead of " + thread.getName(),
+ thread.getName().contains("Camel") && thread.getName().contains("Thread"));
+ }
+
+ }
}