我正在使用Apache Camel开始一个项目,并希望添加一种方法来存储一些信息作为属性。大多数示例似乎都使用了Spring和XML,但是我采用Java DSL的方式,并且似乎无法找到关于如何正确执行此操作的良好示例。
我使用camel-archetype-java archetype创建了一个项目,到目前为止只添加了Quartz和一个路由:
package com.commserv.integration;
import org.apache.camel.builder.RouteBuilder;
public class FilemakerCsvToMailroom extends RouteBuilder {
public void configure() {
from("file:/Volumes/Data-1/Camel?autoCreate=false&startingDirectoryMustExist=true&noop=true&scheduler=quartz2&scheduler.cron=0+*+*+*+*+?&scheduler.triggerId=EveryMinute&scheduler.triggerGroup=FilemakerCsvToMailroom") // every minute
.routeId("FilemakerCsvToMailroom")
.log("FilemakerCsvToMailroom triggered");
}
}
可以在this link查看项目代码。
context
变量,但不确定其来自何处。答案 0 :(得分:1)
您可以将属性文件添加到src / main / resources。
您可以使用Java配置Properties Component:
public void configure() {
PropertiesComponent pc = new PropertiesComponent();
pc.setLocation("classpath:myprop.properties");
getContext().addComponent("properties", pc);
// Will output "result1" every 5 seconds.
from("timer:mytimer?period=5s")
.log("{{dev.endpoint}}");
}
如果您有包含
的属性文件src / main / resources / myprop.propertiesdev.endpoint = result1
test.endpoint = result2
请注意,您可以在RouteBuilder中调用getContext()来获取正在运行的Camel上下文。