【发布时间】:2014-01-07 06:37:45
【问题描述】:
我有 2 个 POJO:
public class Witch {
private Broom broom;
private List<Spell> spells;
// constructors, getters/setters, etc.
}
public class ValidatedWitches {
private List<Witch> goodWitches
private List<Witch> badWitches;
// constructors, getters/setters, etc.
}
我有一个我编写的 Camel 处理器,它将产生一个 ValidatedWitches 实例(同样,它由 2 个 List<Witch> 组成):
public class WitchValidator implements Processor {
@Override
public void process(Exchange exchange) {
List<Witch> witchesToValidate = (List<Witch>)exchange.getIn().getBody();
ValidatedWitches validated = validate(witchesToValidate);
exchange.getOut().setBody(validated);
}
private ValidatedWitches validate(List<Witch> toValidate) {
// For each witch, determines if it is a good witch, or a bad witch,
// and places it on an appropriate list.
List<Witch> good = new ArrayList<Witch>();
List<Witch> bad = new ArrayList<Witch>();
// etc...
return new ValidatedWitches(good, bad);
}
}
我现在想以一种方式路由我的好女巫名单,另一种方式我的坏女巫名单:
<route id="witch-route">
<!-- Everything before my WitchValidator component... -->
<to uri="bean:witchValidator?method=process" />
<choice>
<when>
<simple>???</simple>
<to uri="direct:goodWitches" />
</when>
<when>
<simple>???</simple>
<to uri="direct:badWitches" />
</when>
</choice>
</route>
我可以在我的<choice> 中放入什么来获取ValidatedWitches.getGoodWitches() 并将它们路由到direct:goodWitches,并获取ValidatedWitches.getBadWitches() 并将它们路由到direct:badWitches?
【问题讨论】:
标签: java apache-camel routes choice