2012-01-03 6 views
0

1つのセットアップではローカルなエンドポイントを作成し、別のセットアップではリモート(jms経由)のエンドポイントを作成したいとします。エンドポイントを抽象化する最善の方法は何ですか?

最良のアプローチは何ですか?

私は自分自身のコンポーネントを作成することを考えました。抽象的な:fooと1つのセットアップで抽象的な:fooはdirect:fooのように動作し、別の設定ではjms:queue:fooのように動作します。

しかし、これは料理の手法であり、正確に実装する方法はわかりません(「1つの設定ではXのように振る舞い、Yのように振舞います」)、壊れにくく(別のそれぞれの設定でのMETA-INF/services/org/apache/camel/component/abstractの内容)

だから最善のアプローチは何ですか?

答えて

0

私は最善のアプローチは、私自身のスキーマ名でBeanを作成し、それが所望の終点(DirectEndpointまたはその他)を作成持つことがわかったプロパティ

に従って
0

キャメルのPropertiesComponentを使用することができます。これにより、エンドポイントにプレースホルダを使用できます。 http://camel.apache.org/properties.html

などの例を参照してください。 from( "{{myendpoint}}")...

セットアップAのプロパティファイルを使用して、別のケースでは "myendpoint = direct:foo"と "myendpoint = jms:queue:foo"を定義できます。

関連する問題