没有终点的弯路

Detour without endpoints

我可以在没有 "to" 的情况下使用 choice 作为路线的一部分吗?例如。我想在满足特定条件时修改 body 然后继续路线:

from(...).
choice(...).
  when(...).
    setBody(...)
  end().  // of when()???
end().  // of choice()??
to(...).
to(...);

问题是我不知道如何结束 when 条件以及如何结束选择以便继续我的路线。 detour and endChoice() 示例确实在构造中使用了端点。是否有我可以使用 end() 构造的文档?当条件更多时,这是如何编写骆驼 DSL 的好方法吗?我应该改用 Direct 组件并将每个条件保留在单独的路由中吗?

亲切的问候,简

我在 Camel 书中找到了答案,正确的构造应该是这样的:

from(...).
choice(...).
  when(...).
  setBody(...)
end().  // of choice()
// continue with the original route
to(...).
to(...);

只需要 endChoice() 来结束 when() when 的正文也可能需要 end(),比如loadBalance()或者split().