Фильтр по заполнителю свойств

#esb #mule

#esb #mule

Вопрос:

я пытаюсь разрешить файлу внешних свойств определять, должен ли определенный поток (и его входящая конечная точка) быть активным или нет.

В настоящее время я пытаюсь добиться этого для потока с помощью генератора событий quartz — и я хочу использовать пользовательский вычислитель выражений, чтобы остановить поток, если он должен быть активным (как определено в файле свойств), но при этом я получаю xml-ошибку: произошла фатальная ошибка, в то время каксервер был запущен: cvc-complex-type.3.2.2: Атрибуту «пользовательский оценщик» не разрешено появляться в элементе «expression-filter». (исключение org.xml.sax.SAXParseException).

и это соответствующий код: (я запускаю это в Eclipse с Mule IDE) <expression-filter evaluator="custom" custom-evaluator="IsActiveEvaulator" expression="${chFlow.isActive}"/>

Несколько вопросов по этому поводу 1) Почему возникает эта ошибка? я скопировал строку прямо из руководства по веб-сайту. 2) существует ли эвалюатор выражений по умолчанию, который мог бы фильтровать на основе заполнителя свойств? 3) Как бы я поступил с этим типом фильтра с потоком, который не начинался с генератора событий quartz. то есть, как бы я остановил работу определенного потока (и его конечных точек) в зависимости от свойства заполнителя.

Заранее спасибо!

Ответ №1:

1) Вас укусил жук: (

2) Я предлагаю вам создать компонент управления (скажем, a.b.c.DynamicFlowController), настроить его с помощью Spring, чтобы ввести в него значение-заполнитель, выставить значение-заполнитель как «isWhateverFlowActive». Затем создайте пользовательский перехватывающий обработчик сообщений и поместите его в свой поток после входящей конечной точки как «пользовательский обработчик сообщений». Введите свой компонент управления в этот обработчик сообщений и используйте соответствующее значение, чтобы решить, должно ли событие быть обработано или отменено.

3) Процессор перехвата сообщений сделает это за вас. Если вы также предоставите свой компонент управления поверх JMX, вы сможете управлять его начальным состоянием из файла свойств, а затем изменять его состояние во время выполнения.

Комментарии:

1. Как мне использовать evaulator реестра? не могу ничего увидеть об этом в Интернете. Я создал и внедрил компонент.

2. Кроме того, я не понимаю, как я мог бы использовать этот метод для настройки погоды, когда работает определенный поток. Это означает, что я хочу иметь возможность использовать поданные свойства, чтобы определить, создана ли определенная конечная точка или нет.

3. Я пересмотрел свой ответ, чтобы предложить альтернативу, основанную на поддержке процессора перехватывающих сообщений Mule. Также я не понял из вашего первоначального вопроса, хотели вы создавать конечные точки или нет. Я думал, вы хотите отбрасывать сообщения в потоке на основе некоторой логики управления. Если вы хотите динамически создавать конечные точки / потоки, посмотрите github.com/mulesoft/mule-dsl

4. Я знал, что снова задам тот же вопрос. но как бы я мог предоставить управляющий компонент JXM?

5. Я просмотрел руководство по mule-dsl, и пока я вижу динамическое создание потока, я действительно ищу какой-то способ вызвать глобальный поток. это действительно невозможно в mule??