我正在编写单元测试来测试我在Spring DSL中定义的路由实际上是按照我期望的方式进行的
我目前正在尝试测试的路径从目录中读取文件并聚合它们。
我让聚合器知道何时通过使用DSL中Aggregator元素的completionFromBatchConsumer="true"
属性来完成其工作。当我实际从文件系统中检索文件时,这很好用。
在我的单元测试中,我想在不进入文件系统的情况下触发路由,因此我一直在尝试replaceFromWith("direct:start");
并将其设置为默认模板端点Uri。这在某种程度上起作用,但我从未看到我的聚合器被调用 - 我假设这是因为from
端点从未通知批处理已完成。
如何让聚合器识别出有工作要做。
答案 0 :(得分:1)
当您向直接终端发送批量大小时,您需要在交换机上发送属性。
您需要将http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Exchange.html#BATCH_SIZE设置为1。
聚合器中的逻辑位于:org.apache.camel.processor.aggregate.AggregateProcessor#isCompleted