from is the first route the message was received into Camel. So in your use-case it would always be "direct:a" as that is where you send the message into Camel.
On Tue, Feb 16, 2016 at 8:08 AM, SHTherkildsen <soren.heintzelmann.therkild...@systematic.com> wrote: > 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. -- Claus Ibsen ----------------- http://davsclaus.com @davsclaus Camel in Action 2: https://www.manning.com/ibsen2