I seem to be having an issue with using NotifyBuilder on a nested route, when using "direct:..." consumer. fromRoute(...).whenDone(..) and from(...).whenDone(...) do not seem to Work in my case.
I am running camel 2.16.2 on a windows 8 box. The test below fails on the testFromRouteDirect and testFromEndpointDirect test cases. Is that a bug or intended behaviour? --- import org.apache.camel.Exchange; import org.apache.camel.LoggingLevel; import org.apache.camel.builder.NotifyBuilder; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.impl.DefaultExchange; import org.apache.camel.test.junit4.CamelTestSupport; import org.junit.Test; import java.util.concurrent.TimeUnit; public class NotifyWhenNestedRouteIsDone extends CamelTestSupport { @Override protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() { @Override public void configure() throws Exception { from("direct:a") .routeId("A") .to("seda:doStuffLater") .to("direct:doStuffNow") .log(LoggingLevel.INFO, "Did stuff"); from("seda:doStuffLater") .routeId("B") .log(LoggingLevel.INFO, "Procrastinating"); from("direct:doStuffNow") .routeId("C") .log(LoggingLevel.INFO, "Doing stuff"); } }; } @Test public void testFromRouteSeda() { NotifyBuilder nb = new NotifyBuilder(context).fromRoute("B").whenDone(1).create(); Exchange exchange = new DefaultExchange(context); exchange = template.send("direct:a", exchange); boolean done = nb.matches(5, TimeUnit.SECONDS); assertTrue("Timed out waiting for notify builder fromRoute(B)", done); } @Test public void testFromEndpointSeda() { NotifyBuilder nb = new NotifyBuilder(context).from("seda:doStuffLater").whenDone(1).create(); Exchange exchange = new DefaultExchange(context); exchange = template.send("direct:a", exchange); boolean done = nb.matches(5, TimeUnit.SECONDS); assertTrue("Timed out waiting for notify builder from(seda:doStuffLater)", done); } @Test public void testFromRouteDirect() { NotifyBuilder nb = new NotifyBuilder(context).fromRoute("C").whenDone(1).create(); Exchange exchange = new DefaultExchange(context); exchange = template.send("direct:a", exchange); boolean done = nb.matches(5, TimeUnit.SECONDS); assertTrue("Timed out waiting for notify builder fromRoute(C)", done); } @Test public void testFromEndpointDirect() { NotifyBuilder nb = new NotifyBuilder(context).from("direct:doStuffNow").whenDone(1).create(); Exchange exchange = new DefaultExchange(context); exchange = template.send("direct:a", exchange); boolean done = nb.matches(5, TimeUnit.SECONDS); assertTrue("Timed out waiting for notify builder from(seda:doStuffNow)", done); } } --- Kind regards Søren -- View this message in context: http://camel.465427.n5.nabble.com/An-issue-with-NotifyBuilder-on-nested-routes-tp5777774.html Sent from the Camel - Users mailing list archive at Nabble.com.