2016-09-01 3 views
0

spring DSLでcamelContext idを動的に設定するにはどうすればよいですか?Spring DSLでCamelContext IDを動的に設定する方法は?

バンドルA:id属性にsimple-ctxというid属性が設定されています。このバンドルには他のいくつかのバンドルで使用されているいくつかのユーティリティーBeanがあります。

バンドルB:インポート私がラクダのコンテキストを定義したコンテキストファイル。 Bで私はBの特定のルートを定義しました

バンドルC:インポート私がラクダのコンテキストを定義したコンテキストファイル。 Cで私はCの特定のルートを定義しました

今、バンドルBとCはバンドルAに依存します。今、私がコンテキストリストコマンドを実行すると、simple-ctxがリストされます。つまり、バンドルBとCには同じcamelContext IDがあります。

BにcamelContextを定義せずに、簡単な-CTX-Bと簡単な-CTX-Cを好きかC.

すべき は、私はあなたの提案やフィードバックを感謝そのIDを達成したかったです。

+1

コンテキストファイルをインポートするコードサンプルを用意してください。私が知っているように、オブジェクトはosgiバンドル間でしか共有できますが、コンテキストファイルでは共有できません。 –

+0

別々のコンテキストを保持し、すべての共有Beanを独自のバンドルに入れないのはなぜですか? –

+0

私の要件とアーキテクチャの設計です。既存のサービスに大きな影響があるため、私は今変更できません。そのため、実行時にラクダのコンテキストIDを変更する必要がありました。 –

答えて

2

これはできません。 idは固定値です。しかし、JMXの命名をすることは、それはあなたが接頭辞は、その親の名前でネーミングを持つようにしたいかのように聞こえる

http://camel.apache.org/camel-jmx.html

などのカウンター、バンドルIDS、などの動的な値に取ることができますか?

また、すべてのバンドルにcamelContextがある代わりに。 routesをAに置き換えて、これらのルートがBまたはCと同じcamelContextに含まれるようにすることができます。http://camel.apache.org/how-do-i-import-routes-from-other-xml-files.html

+0

説明のために@Clausに感謝します。ポイントを得ました。 –

関連する問題