2014-05-05 81 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