如何在 Camel 3.X.X 中修复每个路由的多个输入?

How to fix several input per route in Camel 3.X.X?

我的路线如下所示:

from(URL_A)
  .from(URL_B)
  .to(URL_C)
  .process(...)
  // logging
  .to(URL_D)

此路线在 Camel 2.X.X 中完美运行,但在 3.7.X

中不完美

我得到的错误信息:

Only one input is allowed per route. Cannot accept input: From[direct:ABCD]

我检查了migration guide,但我不知道如何迁移这种路由。

你知道如何进一步解决这个问题吗?

我认为你可以使用直接组件:https://camel.apache.org/components/3.4.x/direct-component.html

例如:

from(URL_A)
  .to(direct:collector)
from(URL_B)
  .to(direct:collector)
  
from(direct:collector)
  .to(URL_C)
  .process(...)
  // logging
  .to(URL_D)

@Stepan Shcherbakov 提出了一个解决方案,下面将对其进行增强:

String [] sources = {URL_A, URL_B}
for (String source : sources) {
  from(source)
    .to(direct:collector)
}

from(direct:collector)
  .to(URL_C)
  .process(...)
  // logging
  .to(URL_D)