2014-05-05 45 views
0

我已经编写了一个基本的路由生成器,用于从某个位置提取文件,执行一些消息转换,然后将其发送到其他位置。我现在已经在.properties文件中设置了开始和结束点。在使用.properties文件后动态产生骆驼路由

我的项目的目标是能够使用静态骆驼路由,该骆驼路由使用.properties文件,并创建路由生成器中的路由,这些路由生成器已经用属性文件中指定的开始和结束点编写。我会如何去做这样的事情?我是否错误地处理了这个问题?

在此先感谢你们!

编辑与更多的解释:

所以目前我的骆驼路线是这个样子:

{{的FileInput}} - >骆驼航线 - > {{fileOutputs}}

我有一个.properties文件,用于指定单个输入端点和单个输出端点。不过,我想我最终的代码是这样的:

{{fileInput1}} - >骆驼航线 - > {{fileOutputs1}}

{{fileInput2}} - >骆驼航线 - > { {fileOutputs2}}

{{fileInput3}} - >驼路由 - > {{fileOutputs3}}

。 。 。

{{fileInputN}} - >骆驼航线 - > {{fileOutputsN}}

我最初的想法是有一个单独的静态骆驼路由调查一个特定的文件位置。如果我需要一个新的路由,我只需要在那里放一个.properties文件,路由会使用.properties文件并生成上述路由之一。有没有更简单的方法来做到这一点?

+0

你没有提到你是否使用spring,但是如果你是那么你可以以更直接的方式在你的骆驼路线中使用spring属性:(http://camel.apache.org/using-propertyplaceholder。 html)和(http://camel.apache.org/how-do-i-use-spring-property-placeholder-with-camel-xml.html)可能是有趣的。 –

+0

您也可以利用[动态路由器EIP](https://camel.apache.org/dynamic-router.html)和/或[路由条目EIP](https://camel.apache.org /routing-slip.html) –

回答

0

您可以简单地在RouteBuilder中加载属性文件。

InputStream input = new FileInputStream("config.properties"); 
Properties prop = new Properties(); 
prop.load(input); 

然后使用它们。

prop.getProperty("MySuperProperty"); 

但我不明白你想达到什么。

+0

我不认为我正确解释了这一点(部分原因是我仍然在自己的问题定义挣扎)。我编辑了我的问题以更充分地解释这一点。 – David