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.