Versions Compared

Key

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

...

The Composed Message Processor from the EIP patterns allows you to process a composite message by splitting it up, routing the sub-messages to appropriate destinations and the re-aggregating the responses back into a single message.

Available in Camel 1.5.

In Camel we have two solutions

The difference is when only using a Splitter then it aggregates back all the splitted messages into the samme aggregation group, eg like a fork/join pattern.
Where as using the Aggregator allows you group into multiple groups, and the pattern has more options.

Example using both Splitter and Aggregator

...

In this example we want to check that a multipart order can be filled. Each part of the order requires a check at a different inventory.

...

camel-core/src/test/java/org/apache/camel/processor/ComposedMessageProcessorTest.java

Example using only Splitter

In this example we want to split an incoming order using the Splitter eip, transform each order line, and then combine the order lines into a new order message.

Wiki Markup
{snippet:id=e1|lang=java|url=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SplitAggregateInOutTest.java}
Tip
titleUsing XML

If you use XML, then the <split> tag offers the strategyReg attribute to refer to your custom AggregationStrategy

The bean with the methods to transform the order line and process the order as well:

Wiki Markup
{snippet:id=e2|lang=java|url=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SplitAggregateInOutTest.java}

And the AggregationStrategy we use with the Splitter eip to combine the orders back again (eg fork/join):

Wiki Markup
{snippet:id=e3|lang=java|url=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SplitAggregateInOutTest.java}
Include Page
CAMEL:Using This Pattern
CAMEL:Using This Pattern