Как отфильтровать jms-сообщение в конфигурационном файле apache camel xml - PullRequest
0 голосов
/ 15 мая 2018

Хочу создать подписчика jms на общую тему.чтобы избежать нежелательных сообщений, я хочу создать там фильтр.проблема в том, что синтаксис доступен везде где из кода Java, но я не могу найти, как сделать то же самое в файле конфигурации XML, как blueprint.xml

Java-код

String redSelector = "color='red'";
MessageConsumer redConsumer = redSession.createConsumer(queue, redSelector);

Apache Camel Route

<route id="externalNotificationsDispatchRoute" >
  <from uri="activemq:queue:{{vqueue.name}}" />
  .. filtering part
  <to uri="log:com?level=DEBUG" />
</route>

1 Ответ

0 голосов
/ 15 мая 2018

Селектор сообщений JMS указывается с помощью параметра selector URI.

Blueprint:

<from uri="activemq:queue:{{vqueue.name}}?selector={{vqueue.selector}}" />

Файл объекта:

vqueue.selector=color%3D'red'

См. Документация по компоненту JMS (компонент ActiveMQ наследует параметры из компонента JMS)

1020 * Селектор *

Устанавливает JMS-селектор, который является предикатом SQL 92, который используется для фильтрации сообщений в посреднике. Возможно, вам придется закодировать специальные символы, такие как '=', как% 3D.

...