Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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
languagexml

<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
languagexml

<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
languagexml

<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