第26章 実行中のルートの編集

概要

プロジェクトのルーティングコンテキストを変更せずに、実行中のルートへの変更を試すことができます。

これを行うには、以下を行います。

  • JMX Navigator ビューで、実行中のルーティングコンテキストの Edit Routes オプションを有効にします。

    これにより、ルートエディターでその in-memory モデル (Remote CamelContext:<camelContextId>) が開きます。

  • ルートエディターで、ルーティングコンテキストの in-memory モデルを変更します。同時に、Camel デバッガーとそのすべての機能を使用するために、関連するノードにブレークポイントを設定できます。

    in-memory インメモリーモデルを編集して、ノードの追加、削除、または再配置、既存ノードのプロパティーの追加または削除、既存ノードに設定されているプロパティー値の変更を行えます。実行中のコンテキストを更新して Debug パースペクティブに結果を表示するには、in-memory モデルに加えた変更を保存する必要があります。

  • JMX Navigator ビューで、実行中のルーティングコンテキストにメッセージをドロップするか、タイマー、ActiveMQ、ファイル、またはその他の継続的な入力ノードからメッセージが到着するのを待ちます。
  • Debug パースペクティブでは、結果を評価し、Camel デバッガーを使用してルーティングコンテキストの詳細を把握します。

実行中のルートの変更および結果の評価

  1. JMX Navigator ビューで、編集するルートが含まれるルーティングコンテキストを選択します。
  2. 選択したルーティングコンテキストを右クリックしてコンテキストメニューを開き、Edit Routes を選択します。

    ルートエディターがルーティングコンテキストの in-memory モデル (Remote CamelContext:<contextId>) を開き、コンテキスト内のすべてのルートを表示します。以下はその例です。

    CanvasPalette
    注記

    <contextId> は、プロジェクトのルーティングコンテキストの xml ファイルの camelContext 要素の ID です。FuseContent Based Router のビルトインテンプレートをベースとするこの例では、ID は cbr-example-context です。

  3. 2章ルートエディターを使用したルーティングコンテキストの編集 の説明に従ってルートを編集し、FileSave を選択して in-memory モデルに加えた変更を保存し、実行中のルーティングコンテキストを更新します。
  4. 14章ブレークポイントの設定 の説明に従って、関連するノードにブレークポイントを設定します。
  5. JMX Navigator ビューで、実行中のルーティングコンテキストの入力ノードにメッセージをドロップします。

    プロジェクトにテストメッセージが含まれていない場合は、「ルートトレース用テストメッセージの作成」 の説明に従って作成できます。

  6. Yes をクリックし、Debug パースペクティブに切り替えます。
  7. Camel デバッガーで、通常どおり (15章Camel デバッガーの実行 を参照) ブレークポイントを介してメッセージをステップし、変更によって生成される結果を確認します。

    Camel デバッガーは、Edit Routes モードでも通常のデバッグモードと同じように動作するため、メッセージがルーティングコンテキストを通過している間、Camel デバッガーの任意の機能を使用できます。

    注記

    メッセージがルーティングコンテキストの最後に到達すると、デバッガーが停止します。デバッグを続行するには、Fuse Integration パースペクティブに戻し、JMX Navigator ビューの入力ノードに別のメッセージをドロップします。そうするたびに、ツールは Debug パースペクティブへの切り替えを確認するように要求します。

    注記

    ルート編集セッション中に、実行中のルーティングコンテキストへの接続が失われる可能性があります。この場合は、JMX Navigator ビューに次のように表示されます: Local Processesmaven[xxxx][Disconnected]。セッションを続行するには、実行中のルーティングコンテキストに再接続し、JMX Navigator ビューでこれを選択してから Edit Routes を再度選択する必要があります。

ルート編集セッションの終了

  1. Debug パースペクティブの Debug ビューで、Remote Camel Debug - camelContext--<contextId>--xxxxxxxxxxxxxxxxxx.xml [Remote Camel Context] スレッドを選択し、メニューバーの Terminate button をクリックしてデバッグセッションを終了します。
  2. コンソール ビューのメニューバーで Terminate button をクリックし、ルーティングコンテキストを終了します。
  3. コンソール出力をクリアする場合は、Console ビューのメニューバーの clear co をクリックします。
  4. Fuse Integration パースペクティブに切り替え、ルートエディターで Remote CamelContext:<contextId> タブの close をクリックし、ルーティングコンテキストファイルのメモリー内モデルを閉じます。