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

Reply via email to