This is getting confusing :( The docs for SEDA seem to say this should always be async. Link: http://camel.apache.org/seda.html
They provide the following sample [code] public void configure() throws Exception { from("direct:start") // send it to the seda queue that is async <<<<< .to("seda:next") // return a constant response .transform(constant("OK")); from("seda:next").to("mock:result"); } Object out = template.requestBody("direct:start", "Hello World"); assertEquals("OK", out); [/code] However when I add some logs to it I get a pretty synchronous result. [code] import org.apache.camel.ExchangePattern; import org.apache.camel.Produce; import org.apache.camel.ProducerTemplate; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.test.junit4.CamelTestSupport; import org.junit.Test; public class AsynchTest extends CamelTestSupport { protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() { @Override public void configure() { from("direct:start") .log("AAA: The Body Before SEDA Call is ${in.body}") // Hello World // send it to the seda queue that is async .to("seda:next") // return a constant response .log("AAA: Return from BBB!") .transform(constant("OK")); from("seda:next") .log("BBB: Going to wait for five seconds!") .delay(5000) .to("mock:result") .log("BBB: I am ready!"); } }; } @Test public void requestReply() { Object out = super.template.requestBody("direct:start", "Hello World"); assertEquals("OK", out); } } [/code] [output] [ main] route1 INFO AAA: The Body Before SEDA Call is Hello World [mel-1) thread #0 - seda://next] route2 INFO BBB: Going to wait for five seconds! [mel-1) thread #0 - seda://next] route2 INFO BBB: I am ready! [ main] route1 INFO AAA: Return from BBB! [/output] If I set the ExchangePattern to InOnly then it works async. [output] [ main] route1 INFO AAA: The Body Before SEDA Call is Hello World [ main] route1 INFO AAA: Return from BBB! ... [mel-1) thread #0 - seda://next] route2 INFO BBB: Going to wait for five seconds! ... [mel-1) thread #0 - seda://next] route2 INFO BBB: I am ready! [/output] sim085 wrote > I have changed the code a little and ran the test again. From what I can > see the SEDA endpoint acts correctly to the InOut and InOnly > ExchangePattern, i.e. - acts asynchronously when called with InOnly and > synchronously when called with InOut. -- View this message in context: http://camel.465427.n5.nabble.com/Can-t-understand-what-inOnly-is-doing-tp5787961p5788123.html Sent from the Camel - Users mailing list archive at Nabble.com.