Как я могу отрицать предикат в XML DSL? - PullRequest
0 голосов
/ 19 января 2019

В 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...