在camel中使用不同的聚合策略,具体取决于某些标头

时间:2014-12-16 13:38:56

标签: java apache-camel

根据某些标题,在驼峰中使用不同聚合策略的正确方法是什么?以下方式是否正常或是否有其他更清洁的方法来做到这一点?

from("direct:start") 
     .choice() 
     .when(header("foo").equalTo("bar")) 
            .aggregate(header("id"), new BodyInAggregatingStrategy()).completionTimeout(3000).endChoice() 
     .when(header("foo").equalTo("foobar")) 
            .aggregate(header("id"), new BodyOutAggregatingStrategy()).completionTimeout(3000) 
     .to("mock:aggregated");

1 个答案:

答案 0 :(得分:1)

您需要实现自己的复合聚合策略,然后相应地聚合到标头值,例如从Camel pov有1个策略,它调用聚合方法。然后根据标题值找出要做的事情。您可以代表其委托另一个聚合策略。

然后您不需要基于内容的路由器。

相关问题