如何取消XML DSL中的谓词?

时间:2019-01-19 17:43:33

标签: apache-camel

在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。

0 个答案:

没有答案