2014-07-09 6 views
0

По существу, я хотел бы рассмотреть весь маршрут верблюда, чтобы я мог захватить полезную нагрузку в начале и в конце.Как оценить весь маршрут верблюда

Теперь я знаю, что я могу просто аспектировать основной класс «делать» посередине, не вытягивая его из очереди и не помещая его на диск в конце. И это отлично подходит для простого маршрута, а не для тех, кто имеет много классов «делать».

Но есть ли способ связать начало и конец маршрута, не помещая его в маршрут?

У меня есть много маршрутов, и я бы хотел, чтобы они были максимально чистыми от регистрационного кода.

+0

Посмотрите на это http://stackoverflow.com/questions/23809040/camel-spring-osgi-is-there-a-way-to-specify-the-stop-method/23817812#23817812 – Namphibian

+0

Я думаю вы имеете в виду «советовать», а не «аспект». Вы можете показать фрагмент кода? –

ответ

1

Я думаю, что у вас есть два варианта:

  1. добавить прослушку в начале и в конце каждого маршрута. См. http://camel.apache.org/wire-tap.html. Это, очевидно, означает редактирование маршрутов, но простое и это всего две линии по маршруту.
  2. Использование RouteDefinition.adviceС помощью динамического добавления перехватчика. См. http://camel.apache.org/advicewith.html. Я не видел, чтобы это использовало внешнее тестирование, но я не вижу причин, по которым вы не можете использовать его в реальном коде.
1

Используйте возможности перехвата верблюда, как описано here:

  • intercept, который перехватывает каждый шаг обработки во время маршрутизации обмена в маршруте.
  • interceptFrom, который перехватывает входящий Exchange на маршруте.
  • interceptSendToEndpoint, который перехватывает, когда Exchange собирается отправить данную конечную точку.

В вашем случае может быть интересна вторая и третья возможность.

Смежные вопросы