如何在Apache Camel中编写条件语句

时间:2018-10-24 07:20:04

标签: if-statement apache-camel conditional

我已经开始使用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骆驼文档和其他一些资料中了解,但是对于像我这样的初学者来说,这似乎不是很直观。请通过一些示例帮助我理解这一点。

1 个答案:

答案 0 :(得分:0)

是的,您使用Content based router是处理条件消息路由的正确方法。

但是,如果您想更好地了解骆驼,我强烈推荐Camel in Action这本书(第二版)。您会在本书中找到该框架的所有重要概念和许多示例。