如何从Apache骆驼的交换属性设置antInclude属性的值

时间:2019-01-26 10:03:04

标签: apache-camel

我正在添加一个属性,以便在运行时根据请求进行交换。

exchange.setProperty("filePattern", String.format("*%s*", routeConfig.getFilePattern()))

稍后,我正在尝试使用antInclude属性的属性,如下所示

file:source?readLock=changed&antInclude=${exchangeProperty.filePattern}

以上代码不起作用,在运行时在日志中按以下方式创建路由

 file://source?antInclude=%24%7BexchangeProperty.filePattern%7D&readLock=changed

1 个答案:

答案 0 :(得分:0)

啊哈!我在这里看到您正在尝试做什么。简单的表达式不适用于File2之类的轮询使用者。

如果您使用的是Camel 2.16+,则可以使用pollEnrich来获取您尝试到达此处的行为。就像

from("direct:inputFileRoute")
                .pollEnrich("file:src/data?noop=true&antInclude=${exchange.filePattern}")
                .log("File Pattern is: ${exchangeProperty.filePattern}");

在旁注中,您确定每次交换都必须调整antiInclude组件上的File选项吗?看起来有些矫kill过正,但我​​无法根据此处的有限输入做出判断。也许您正在寻找的是Camel Properties