2016-07-04 6 views
1

ラクダのコンテキストの全部または一部を返すことができるかどうか疑問に思っていました。Javaを使用してコンフィグレーションを行い、それを取り出してXMLにエクスポートしたいと思います。キャメルルートのコンフィグレーションをxmlに戻す

これを達成する方法はありますか?私はドキュメンテーションで何も見つけ出していないし、何かを見逃してしまい、道があると思う。

+0

Java dslでルートを設定したいが、blueprint xmlを使ってエクスポートしたいのですか?私はあなたがこれを直接行うことはできないと思います。あなたがhawtioをインストールし、hawtioの中でラクダルートを走らせるなら、それを行うことができます。その後、ログインしてルートを表示し、xml形式で表示します。 –

答えて

2

はい、とあなたが探していることは、このJMX MBeanインタフェースです。 CamelContext MBeanをorg.apache.camel:context=...,type=context,name=...のように追跡し、操作dumpRoutesAsXml()を呼び出します。そしてCamelのコンテキスト内のすべてのルートをXMLとして取得します。

キャメルとJMXの詳細については、あなたにも、このマニュアルを参照してください可能性があります。あなたは、プロパティプレースホルダーを交換する場合は
http://camel.apache.org/camel-jmx.html

0

あなたの質問はまだ明確ではありません。

しかし、2つのオプションがあります。

  1. Blueprintコンテナはホット展開を受け入れます。つまり、Camel XMLをフォルダにドロップするだけで、ルートが開始されます。また、統合しようとしているシステムの種類によっても異なります。たとえば、データベース関連の統合でこれを行うのは少し複雑です。

  2. ルートビルダーを使用することができます。基本的に、実行時にルートを作成してルートを開始できます。

詳細については、よく理解してください。要件をはっきりと説明できる場合は、両方のアプローチを必要としない場合もあります。あなただけのJConsoleなどのJMXコンソールを使用してラクダを実行しているJVMに接続できるように
http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.html#dumpRoutesAsXml()

基本的にJMXは、キャメルにデフォルトで有効になっています:

0

あなたは

List<RouteDefinition> routes = camelContext.getRouteDefinitions(); 
    RoutesDefinition def = new RoutesDefinition(); 
    def.setRoutes(routes); 
    String xml = ModelHelper.dumpModelAsXml(camelContext, def); 

を使用することができ、参照してください。メソッドManagedCamelContext.dumpRoutesAsXml

関連する問題