私はApache Camelにかなり新しく、いくつか質問があります。私は私のルートは、以下のやりたい:私は内側のリストの各項目を扱うことができるように、二回 Apache Camelはネストされた分割内のすべての交換に参加します
LoadSomeThingsProcessor
- 負荷リストのリストをいくつかのものをフィルタリング私は を必要としません
- はSOMに見える内側の分割
- 、最終的に再び参加(バック交換の1つ)
マイルートから残りのすべての交流に参加します次のようなething:
from("direct:myRoute")
.process(new LoadSomeThingsProcessor())
.split(body())
.streaming()
.process(new SomeProcessor())
.split(body())
.streaming()
.filter(new SomeFilter())
.aggregate(header("myHeader", new MyAggregationStrategy())
.completionPredicate(new MyCompletionPredicate())
// more processors
// aggregate again (should just be one exchange after this point
// more processors
.to("direct:someOtherRoute");
MyCompletionPredicate
のmatches
方法はただです:
return exchange.getIn().getProperty("CamelSplitComplete", Boolean.class);
私は続行する前に、各分割内のすべてのやり取りが一緒に集約されていることを確認します。
私の質問は: - CamelSplitComplete
のヘッダーは、決して真実ではありません。何が原因でしょうか? - ネストされた分割内で集計を試みて問題が発生していますか? - 最後の交換(CamelSplitComplete = true
があると思われるものが除外されていればどうなりますか?私はすべての交換機を一緒に集約したことをどのように知ることができますか? - これは正しい方法ですか?他に何私は?
検討すべきであることはFYI私の集約戦略は、単に新しい交流の遺体を取り、古い為替の本体に追加します。事前に
多くの感謝を。