== 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]

