Apache camel 直接读取文件和进程的驼峰

Apache camel 直接读取文件和进程的驼峰,apache-camel,Apache Camel,我有两条平行的骆驼路线。一种是读取sql数据。一种是读取磁盘上的文件,然后与以前的sql数据进行比较。我需要运行路线1,根据是否导入任何内容,运行路线2 fromF("quartz2://mio/%s?cron={{route_1_cron}}", order). log("Running data import..."). to("sql:{{sql_select}}"). choice(). when(

我有两条平行的骆驼路线。一种是读取sql数据。一种是读取磁盘上的文件,然后与以前的sql数据进行比较。我需要运行路线1,根据是否导入任何内容,运行路线2

fromF("quartz2://mio/%s?cron={{route_1_cron}}", order).
        log("Running data import...").

        to("sql:{{sql_select}}").
            choice().
                when(body().isNull()).
                    stop().

                when(body().isNotNull()).
                bean(Utility.class,"incomingSqlData").
                choice().when(header("status").isEqualTo(true).
                to("direct:start").stop();
到目前为止我很好。现在,在第二条路径上,如何从from(direct:start)开始,然后从其目录中读取文件?因为我不能有from(direct).from(“文件:…”),因为这将创建两个from路由。 使用from(“direct:start”).to(“file:…”)将尝试写入该文件


Tl:dr:我应该如何使用direct开始一条路线,然后读取一个文件?

要展开@noMad17评论,可以使用内容丰富器。因此,您的
from(“direct:start”)
路线可以如下所示:

from("direct:start")
  .pollEnrich("file:...", new MyAggregationStrategy())
  ....
这将提示您发送到读取文件


请注意,
AggregationStrategy
“用于合并原始交换和资源交换”,并且是可选的。如果未提供,则资源交换的主体(即读取文件产生的交换)将覆盖原始exchange。

要扩展@noMad17注释,您可以使用内容充实器。因此,您的
from(“direct:start”)
路线可以如下所示:

from("direct:start")
  .pollEnrich("file:...", new MyAggregationStrategy())
  ....
这将提示您发送到读取文件


请注意,
AggregationStrategy
“用于合并原始交换和资源交换”,并且是可选的。如果未提供,则资源交换的主体(即读取文件产生的交换)将覆盖原始exchange。

查看内容充实器和/或轮询充实:查看内容充实器和/或轮询充实: