Hi all:
I have a DSL that works as expected, but when I add delay()'s, it doesn't.
Is this a bug or do I not understand the delay() function?
Test Class:
public class ChoiceTesting extends CamelTestSupport {
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
from("direct:start")
.log("Starting testing")
.multicast().stopOnException()
.pipeline()
.log("In the beginning! Body=${body}")
.to("direct:dummy")
.choice()
.when(header("KEY").isNotEqualTo("VALUE"))
.log("choice 1")
.wireTap("direct:dummy")
//.delay(500)
.choice()
.when(header("KEY").isNotEqualTo("VALUE"))
.log("choice 2")
.to("direct:dummy")
//.delay(500)
.choice()
.when(header("KEY").isEqualTo("VALUE"))
.log("choice 3")
.throwException(new
RuntimeException("Some Error"))
.end()
.end()
.end()
.end()
.to("direct:middle")
.pipeline()
.log("In the end! Body=${body}")
.end();
from("direct:middle")
.log("In the middle! Body=${body}");
from("direct:dummy")
.setBody().constant("DUMMY");
}
};
}
@Test
public void run() {
template.sendBody("direct:start", "X");
}
}
Produces the expected output of:
2011-01-24 15:16:42,891 INFO route1 - Starting testing
2011-01-24 15:16:42,891 INFO route1 - In the beginning! Body=X
2011-01-24 15:16:42,891 INFO route1 - choice 1
2011-01-24 15:16:42,891 INFO route1 - choice 2
2011-01-24 15:16:42,891 INFO route2 - In the middle! Body=X
2011-01-24 15:16:42,891 INFO route1 - In the end! Body=X
But when I uncomment the delay() calls, the output changes to:
2011-01-24 15:23:55,477 INFO route1 - Starting testing
2011-01-24 15:23:55,477 INFO route1 - In the beginning! Body=X
2011-01-24 15:23:55,477 INFO route1 - choice 1
2011-01-24 15:23:55,977 INFO route1 - choice 2
2011-01-24 15:23:56,477 INFO route2 - In the middle! Body=DUMMY
2011-01-24 15:23:56,477 INFO route1 - In the end! Body=DUMMY
I'm using Camel 2.5.0.
Thanks in advance,
Mark
Mark Borner
Java Developer - ZStream Xpress
----
This email is intended for the named recipient only. It may contain
information which is confidential, commercially sensitive, or
copyright. If you are not the intended recipient you must not
reproduce or distribute any part of the email, disclose its contents,
or take any action in reliance. If you have received this email in
error, please contact the sender and delete the message. It is your
responsibility to scan this email and any attachments for viruses and
other defects. To the extent permitted by law, Zurich and its
associates will not be liable for any loss or damage arising in any
way from this communication including any file attachments. We may
monitor email you send to us, either as a reply to this email or any
email you send to us, to confirm our systems are protected and for
compliance with company policies. Although we take reasonable
precautions to protect the confidentiality of our email systems, we
do not warrant the confidentiality or security of email or
attachments we receive.