blob: a2c76b16c42e0a113c31d34c8176238795b6ce06 [file] [log] [blame]
== Return Address
Camel supports the
http://www.enterpriseintegrationpatterns.com/ReturnAddress.html[Return
Address] from the link:enterprise-integration-patterns.html[EIP
patterns] by using the `JMSReplyTo` header.
image:http://www.enterpriseintegrationpatterns.com/img/ReturnAddressSolution.gif[image]
For example when using <<jms-component,JMS>> with InOut the component will
by default return to the address given in `JMSReplyTo`.
*Requestor Code*
[source,java]
----
getMockEndpoint("queue:bar").expectedBodiesReceived("Bye World");
template.sendBodyAndHeader("direct:start", "World", "JMSReplyTo", "queue:bar");
----
*Route Using the Fluent Builders*
[source,java]
----
from("direct:start").to("activemq:queue:foo?preserveMessageQos=true");
from("activemq:queue:foo").transform(body().prepend("Bye "));
from("activemq:queue:bar?disableReplyTo=true").to("mock:bar");
----
*Route Using the Spring XML Extensions*
[source,xml]
----
<route>
<from uri="direct:start"/>
<to uri="activemq:queue:foo?preserveMessageQos=true"/>
</route>
<route>
<from uri="activemq:queue:foo"/>
<transform>
<simple>Bye ${in.body}</simple>
</transform>
</route>
<route>
<from uri="activemq:queue:bar?disableReplyTo=true"/>
<to uri="mock:bar"/>
</route>
----
For a complete example of this pattern, see this
https://github.com/apache/camel/blob/master/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsInOnlyWithReplyToAsHeaderTest.java[junit
test case]