Как написать условные операторы в Apache Camel - PullRequest
0 голосов
/ 24 октября 2018

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

if(Condition A) {
   then Activity A to determine Condition B;
   If(Condition B) {
       Then Activity B
   } else {
       Then Activity C
   }
} else {
  Do nothing and end the route.
}

Вот то, что я придумал, но это не более чемУгадай.Это написано не с должным пониманием.

...
...
.process(new SomeActivity())
.choice()
   .when(header(ConditionA).isEqualTo(Boolean.TRUE))
      .process(new ActivityToSetConditionB())
   .choice()
      .when(header(ConditionB).isEqualTo(Boolean.TRUE))
         .process(new ActivityRelatedToB())
      .otherwise()
         .process(new ActivityRelatedToC())
   .endChoice()
.end()

Я пытался понять из документации Apache Camel и нескольких других источников, но это не кажется очень интуитивным для начинающего, как я.Пожалуйста, помогите мне понять это с некоторыми примерами.

1 Ответ

0 голосов
/ 25 октября 2018

Да, использование маршрутизатора на основе Content является правильным способом обработки условной маршрутизации сообщений.

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

...