343.5. 聚合
INFO:Please 注意此聚合策略需要 eager completion 检查才能正常工作。
在这个示例中,我们将在输入目录中找到的所有文本文件聚合到一个存储在输出目录中的 Tar 文件中。
from("file:input/directory?antInclude=*/.txt") .aggregate(new TarAggregationStrategy()) .constant(true) .completionFromBatchConsumer() .eagerCheckCompletion() .to("file:output/directory");
传出 CamelFileName
消息标头使用 java.io.File.createTempFile 创建,后缀为 ".tar"。如果要覆盖此行为,您可以在路由中显式设置 CamelFileName
标头的值:
from("file:input/directory?antInclude=*/.txt") .aggregate(new TarAggregationStrategy()) .constant(true) .completionFromBatchConsumer() .eagerCheckCompletion() .setHeader(Exchange.FILE_NAME, constant("reports.tar")) .to("file:output/directory");