无法为属性文件中的completionInterval属性(聚合标记)指定值:Camel

时间:2017-05-25 17:36:01

标签: spring apache-camel

我有以下形式的骆驼代码段:

<aggregate strategyRef="aggregationStrategy"
     completionSize="50" completionInterval="120000">
...
</aggregate>

我正在尝试按照http://camel.apache.org/properties.html链接从属性文件中读取属性值。

目前,我已经定义了propertyPlaceholder,通过该属性,我可以通过属性为完成大小(通过端点引用)分配值;如下

<propertyPlaceholder id="properties" location="classpath:file.properties" />
<endpoint id="compSize" uri="{{completion.size}}" />
...

<aggregate strategyRef="aggregationStrategy"
         completionInterval="120000">
    ...
    <completionSize>
         <simple>ref:compSize</simple>
    </completionSize>
    ...
</aggregate>

但是如果我按照相同的程序(如<completionSize>的那样)设置completionInterval,则会抛出错误,因为我们没有像<completionInterval>这样的标记。

有没有办法通过属性文件动态地为completionInterval属性赋值?

1 个答案:

答案 0 :(得分:0)

您可以将其设置为聚合器

中的动态表达式
<aggregate ...>

   <completionInterval>
      <constant>{{somePropertyKeyHere}}</constant>
   </completionInterval>

或者使用prop命名空间来设置值,如{em>使用XML DSL中的任何属性的属性占位符部分所述}