在Apache Camel中,我想使用<when>
来取消<simple>
中的条件
<!-- I want to negate the simple below before the "Do something" block -->
<when>
<simple>
${headers.msg[ABC]} == 'Fred' ||
${headers.msg[DEF]} starts with 'MO'
</simple>
<!-- Do something if the above is not true -->
</when>
<!-- I can achieve the above this way -->
<choice>
<when>
<simple>
${headers.msg[ABC]} == 'Fred' ||
${headers.msg[DEF]} starts with 'MO'
<simple>
<!-- do nothing -->
</when>
<otherwise>
<!-- Do something -->
</otherwise>
</choice>
如果我可以否定第一个示例的<simple>
条件,那么它将比第二种方法更简单。另一个选择是如果有does not start with
运算符。还是有人用很少的代码来做到这一点。
我可以使用<groovy>
来做第一个示例,但是我们有一条指令试图在我们的项目中尽可能多地使用<simple>
。我们也有一条指令,使用XML DSL代替Java。