| [[Message-Message]] |
| Message |
| ^^^^^^^ |
| |
| Camel supports the |
| http://www.enterpriseintegrationpatterns.com/Message.html[Message] from |
| the link:enterprise-integration-patterns.html[EIP patterns] using the |
| http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Message.html[Message] |
| interface. |
| |
| image:http://www.enterpriseintegrationpatterns.com/img/MessageSolution.gif[image] |
| |
| To support various message link:exchange-pattern.html[exchange patterns] |
| like one way link:event-message.html[Event Message] and |
| link:request-reply.html[Request Reply] messages Camel uses an |
| link:exchange.html[Exchange] interface which has a *pattern* property |
| which can be set to *InOnly* for an link:event-message.html[Event |
| Message] which has a single inbound Message, or *InOut* for a |
| link:request-reply.html[Request Reply] where there is an inbound and |
| outbound message. |
| |
| Here is a basic example of sending a Message to a route in *InOnly* and |
| *InOut* modes |
| |
| *Requestor Code* |
| |
| [source,java] |
| --------------------------------------------------------------------------------------------------------------- |
| //InOnly |
| getContext().createProducerTemplate().sendBody("direct:startInOnly", "Hello World"); |
| |
| //InOut |
| String result = (String) getContext().createProducerTemplate().requestBody("direct:startInOut", "Hello World"); |
| --------------------------------------------------------------------------------------------------------------- |
| |
| *Route Using the link:fluent-builders.html[Fluent Builders]* |
| |
| [source,java] |
| -------------------------------------------------- |
| from("direct:startInOnly").inOnly("bean:process"); |
| |
| from("direct:startInOut").inOut("bean:process"); |
| -------------------------------------------------- |
| |
| *Route Using the link:spring-xml-extensions.html[Spring XML Extensions]* |
| |
| [source,java] |
| ---------------------------------- |
| <route> |
| <from uri="direct:startInOnly"/> |
| <inOnly uri="bean:process"/> |
| </route> |
| |
| <route> |
| <from uri="direct:startInOut"/> |
| <inOut uri="bean:process"/> |
| </route> |
| ---------------------------------- |
| |
| [[Message-UsingThisPattern]] |
| Using This Pattern |
| ++++++++++++++++++ |
| |
| If you would like to use this EIP Pattern then please read the |
| link:getting-started.html[Getting Started], you may also find the |
| link:architecture.html[Architecture] useful particularly the description |
| of link:endpoint.html[Endpoint] and link:uris.html[URIs]. Then you could |
| try out some of the link:examples.html[Examples] first before trying |
| this pattern out. |