...
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
- using both a Splitter and Aggregator EIPs
- using only a Splitter
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 | ||
---|---|---|
| ||
If you use XML, then the <split> tag offers the strategyReg attribute to refer to your custom |
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 | ||||
---|---|---|---|---|
|