数据流加入apache camel

时间:2014-05-20 09:19:07

标签: apache-camel aggregate

我有一个apache camel应用程序,其中有两条路径(路径A和路径B)将数据提供给聚合器,然后输出包含来自两个对象的数据的对象(C)。

来自聚合器的对象必须包含来自每条路线的单个物体(即A和B)。它不得包含来自同一路线的两个物体(即A和A)

我的问题是,如何防止聚合来自同一路线的对象。我想我可以通过在聚合器中设置一个限制来加入消息,不仅可以使用相同的关联键,还可以使用不同类型的消息。

如果此功能已经存在,我就会徘徊。

非常感谢任何建议。                                 $ {机构}
                                            

<!-- messages from route B -->
<route id="routeB" />
<from uri="direct:startB"/>
<to uri="ldap:ldapcontext?base=DC=company,DC=net"/>
<split>
   <simple>${body}<simple>       
   <marshal ref="ObjectBJsonConverter"/>
   <unmarshal ref="ObjectBJsonConverter"/>
   <!-- add correlation key in header as 'objectid' -->
   <to uri="bean:myProcessor?method=addObjectBCorrelationKey"/>
   <to uri="seda:myAggregator"/>
</split>

<!-- aggregate the messages, create new ObjectC that contains ObjectA and ObjectB -->
<route id="aggretatorRoute">
<from uri="seda:myAggregator"/>
<aggregate ref="myEntityAggregator" completionSize="2" completionTimeout="200000" discartOnCompletionTimeout="true" ignoreInvalidCorrelationKeys="true">
  <correlationExpression><simple>${in.header.objectid}</simple></correlationExpression>
  <to uri="bean:myProcessor?method=doSomethingWithObjectC"/>
</aggregate>

0 个答案:

没有答案