我目前有一个流程需要根据消息的交换模式进行一些路由。如果消息是InOut,则路由结束,并且消息包含的任何内容都将发送回回调位置。如果消息是InOnly,则消息将被路由到其他位置。代码如下:
...
.process(new Processor(){
public void process(Exchange e) throws Exception {
e.getIn().setHeader("ExchangePattern", e.getPattern().name());
}
})
.choice()
.when(header("ExchangePattern").isEqualTo("InOnly"))
.to(DESTINATION);
我知道在Camel 2.16中你可以通过简单表达式(exchange.getPattern.getName)获得交换模式,但这在2.15中不可用。是否有更优雅的想要做路由或我坚持上面的丑陋的路由逻辑?