我试图想出一种方法来动态更新属性(从PropertyComponent)而不停止Camel Route:
这是一个例子:
@Override
public void configure() throws Exception {
CamelContext ctx = super.getContext();
PropertiesComponent pc = new PropertiesComponent();
pc.setLocation("/tmp/apache-deltaspike.properties");
ctx.addComponent("properties", pc);
// Logs Hello World every 2000 milliseconds
from("timer://myEapTimer?fixedRate=true&period=2000")
.log(LoggingLevel.INFO, "com.sample.route", "{{customProperty}}")
.to("log:HelloWorldLog?level=INFO");
}
外部属性文件包含每次定时触发时要打印的消息。我需要找到一种方法让Route重新加载Property文件而不停止它。 顺便说一下,我正在使用Apache Camel 2.17.0。 感谢
答案 0 :(得分:1)
这是不可能的,{{xxx}}
只在路线启动时解决一次。
您可以使用Java bean自己加载属性文件并获取值并在那里进行日志记录。
或者您可以使用bean参数绑定调用Java bean并注入属性值。但是,您还需要将属性组件配置为不使用缓存等。