JBoss Fuse ESB: сохранение и сравнение сообщений

Я только начал разрабатывать свой первый проект JBoss Fuse и хотел бы задать вам довольно общий вопрос относительно моего намерения обрабатывать сообщения.

Я уже получаю данные в виде файлов XML и распаковываю их, чтобы получить Java Pojos. Теперь я хотел бы сравнить текущее сообщение с предыдущим, чтобы проверить, изменился ли определенный атрибут в XML. Поэтому я хочу, чтобы сообщение продолжалось только в пределах маршрута, если значение отличается от значения сообщения ранее.

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

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


person san.na    schedule 04.01.2016    source источник


Ответы (1)


Самый простой способ, который я могу придумать, - это использовать bean-компонент POJO на вашем маршруте, который сохраняет полученное сообщение/объект в переменная-член. Ваш маршрут будет содержать только 1 экземпляр POJO, который будет вызываться для всех сообщений, проходящих по маршруту. Это означает, что вы можете хранить информацию о состоянии в POJO. В вашем случае сохраните сообщение в переменной-члене, чтобы вы могли сравнить его со следующим сообщением, когда оно придет.

См. здесь информацию о том, как остановить дальнейшую обработку сообщения: остановить маршрут в противном случае

person Geert Schuring    schedule 05.01.2016