...
You can create pipelines of logic using multiple Endpoint or Message Translator instances as follows
Wiki Markup |
---|
{snippet:id=example|lang=java|url=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/PipelineTest.java} |
Though pipeline is the default mode of operation when you specify multiple outputs in Camel. The opposite to pipeline is multicast; which fires the same message into each of its outputs. (See the example below).
In Spring XML you can use the the <pipeline/>
element
Code Block |
---|
|
<route>
<from uri="activemq:SomeQueue"/>
<pipeline>
<bean ref="foo"/>
<bean ref="bar"/>
<to uri="activemq:OutputQueue"/>
</pipeline>
</route>
|
In the above the pipeline element is actually unnecessary, you could use this...:
Code Block |
---|
|
<route>
<from uri="activemq:SomeQueue"/>
<bean ref="foo"/>
<bean ref="bar"/>
<to uri="activemq:OutputQueue"/>
</route>
|
Its just which is a bit more explicit.
However if you wish to use use <multicast/>
to avoid a pipeline - to send the same message into multiple pipelines - then the the <pipeline/>
element comes into its own.:
Code Block |
---|
|
<route>
<from uri="activemq:SomeQueue"/>
<multicast>
<pipeline>
<bean ref="something"/>
<to uri="log:Something"/>
</pipeline>
<pipeline>
<bean ref="foo"/>
<bean ref="bar"/>
<to uri="activemq:OutputQueue"/>
</pipeline>
</multicast>
</route>
|
In the above example we are routing from a single Endpoint to a list of different endpoints specified using URIs. If you find the above a bit confusing, try reading about the Architecture or try the Examples
Include Page |
---|
| Using This Pattern |
---|
| Using This Pattern |
---|
|