Tooling ユーザーガイド

Red Hat Fuse 7.8

Tooling ユーザーガイド

Red Hat Fuse Documentation Team

概要

本ガイドでは、Red Hat Fuse Tooling を使用する方法を説明します。この製品は、統合アプリケーションの設計、開発、テスト、およびデバッグを行う際の生産性向上のために設計された開発者ツールを提供します。

前書き

Red Hat Fuse Tooling は Eclipse ベースの IDE で、Red Hat CodeReady Studio 内で統合アプリケーションを開発するプロセスを単純化および簡素化します。Fuse Tooling は、特に以下と共に使用するよう設計された開発者ツールのセットを提供します。

  • Red Hat Fuse
  • Red Hat JBoss EAP
  • Apache Camel
  • Apache CXF
  • Apache Karaf
  • Spring Boot

本ガイドでは、Fuse Tooling を使用して以下の操作を行う方法を説明します。

  • Maven 依存関係を含むアプリケーションのプロジェクトを作成する
  • エンタープライズ統合パターンを接続および設定してルートを構築する
  • エンドポイントとルートを閲覧する
  • 実行中のルートにメッセージをドラッグアンドドロップする
  • JMX によるランタイムプロセスを閲覧および可視化する
  • ローカルで実行中の Camel コンテキストおよびルートをデバッグする
  • 以下によりアプリケーションをテストする

    • Apache Camel ルートでの JUnit テストケースの作成および使用
    • JMX を使用した実行中のコンポーネントの分析
    • Apache Camel ルートを通じたメッセージのトレース
  • アプリケーションのデプロイ

新規ユーザー用に、『Tooling のチュートリアル』は、サンプル Camel アプリケーションを作成、デバッグ、テスト、およびデプロイするためのステップバイステップの手順を提供します。

パート I. アプリケーション開発

第1章 新しい Fuse Integration プロジェクトの作成

概要

新しい Fuse Integration プロジェクトの作成には、以下の主なステップが含まれます。

プロジェクトの設定後、ツールは必要な Maven 依存関係をすべてダウンロードし、プロジェクトの実行およびパブリッシュに必要な POM ファイルを作成します。

注記

CodeReady Studio で初めて Fuse プロジェクトをビルドする場合、リモート Maven リポジトリーから依存関係をダウンロードするため、ウィザードがプロジェクトの生成を完了するまで数分かかることがあります。

作業を始める前に

新しい Fuse Integration プロジェクトを作成するには、以下の情報が必要です。

  • ターゲットランタイム環境: Fuse on OpenShift または Fuse スタンドアロン (Spring Boot、Fuse on Karaf、または Fuse on EAP)
  • Camel バージョン (ツールでデフォルト以外が使用される場合)

プロジェクト名とワークスペースの指定

新しい Fuse Integration プロジェクトを作成するには、以下の手順に従います。

  1. NewProjectRed Hat FuseFuse Integration Project の順に選択し、New Fuse Integration Project ウィザードを開きます。

    このウィザードが Use default workspace location オプションが選択された状態で Location ペインで開きます。

    nfpProjectName1
  2. Project Name に、新規プロジェクトの名前を入力します (例: MySampleProject)。
  3. プロジェクトのデータを保存するワークスペースの場所を指定します。

    • デフォルトのワークスペースを使用するには、Use default workspace location オプションが有効なままにします。
    • 別の場所を使用する場合は、Use default workspace location オプションをクリアし、Path フィールドに場所を指定します。

      BrowseButton をクリックし、簡単に別のワークスペースを検索して選択します。

  4. Next をクリックし、Select a Target Environment ページを開きます。

プロジェクトのデプロイメント環境の設定

新規プロジェクトの作成時に、プロジェクトのターゲットデプロイメント環境を指定し、プロジェクトにランタイム時に必要とするリソースが含まれるようにします。デプロイメントプラットフォームと Camel バージョンを選択する必要があります。任意で、ランタイム設定を指定できます。

Select a Target Environment ページを開いた状態で以下を行います。

  1. プロジェクトを Kubernetes/OpenShift または スタンドアロン プラットフォームにデプロイするかどうかを選択します。

    NFPcamelVersion

    デプロイメントプラットフォームに Kubernetes/OpenShift を選択すると、Sprint Boot ランタイムが自動的に選択され、ステップ 3 に進みます。

  2. デプロイメントプラットフォームに Standalone を選択する場合は、以下を実行します。

    1. ターゲットランタイム環境を選択します。

      • Spring Boot
      • Karaf/Fuse on Karaf
      • Wildfly/Fuse on EAP
    2. Karaf および EAP スタンドアロンランタイム環境では、ランタイム設定に以下のいずれかのオプションを選択します。

  3. Select the Camel version for your new project ペインで、ランタイムに関連付けられたデフォルトの Camel バージョンを受け入れるか、デフォルトを以下のように変更します。

    • ドロップダウンリストから Camel バージョンを選択する。Fuse Tooling は、リスト化された製品化バージョンをサポートします。
    • 非製品化バージョンを試す場合は、別の Camel バージョンを入力する (サポート対象外です)。

      Verify ボタンをクリックして、ツールが指定のバージョンにアクセスできるかどうかを確認できます。アクセスできない場合は、Select a Target Runtime ページヘッダーに以下の例のような通知が表示されます。

      Verify Camel
      注記

      プロジェクトを作成、設定、および保存した後、Camel バージョンを変更できます。「12章Camel バージョンの変更」を参照してください。

  4. 新しい Fuse Integration プロジェクトのベースとするランタイム環境と Camel バージョンを選択したら、Next をクリックしてウィザードの Advanced Project Setup ページを開いてから、「プロジェクトテンプレートの選択」の手順に従います。

新規ターゲットランタイムの作成 (オプション)

Karaf および EAP スタンドアロンランタイム環境では、必要に応じて New Fuse Integration Project ウィザードから新しいランタイム設定を作成できます。

  1. ウィザードの Select a Target Runtime ページから New をクリックし、New server runtime environment ページを開きます。

    New Server Runtime Environment
  2. Red Hat JBoss Middleware フォルダーを展開し、Red Hat Fuse のランタイム環境を選択します。

    Create a new local server オプションは、チェックをオフにしたままにします。後で、プロジェクトをパブリッシュする準備が整ったときに、ローカルサーバーを作成することができます (「サーバーの追加」を参照)。

    注記

    Create a new local server オプションのチェックをオンにすると、(「サーバーの追加」で説明するように) New Fuse Integration Project ウィザードにより Fuse サーバーのランタイムを定義および設定する一連の追加ステップを実施します。次に、プロジェクトをビルドする際に、サーバーランタイムを Fuse Integration パースペクティブの Servers ビューに追加します。

  3. Next をクリックしてサーバーの New Server Runtime Environment ページを開きます。

    nfpRuntimeDefJBF1
  4. サーバーランタイムの NameHome DirectoryExecution Environment を指定します。

    • Name: ランタイム環境のデフォルトを受け入れるか、新しい名前を入力します。
    • Home Directory: Browse ボタンをクリックし、サーバーランタイムのインストールディレクトリーを探して選択します。

      注記

      サーバーがマシンにインストールされていない場合は、Download and install runtime リンクをクリックしサイトのダウンロード手順に従って、ここでサーバーをインストールできます。サイトによっては、ダウンロードプロセスを続行する前に、有効なクレデンシャルを提供する必要がある場合があります。

    • Runtime JRE: Execution Environment: デフォルトを受け入れるか、ドロップダウンリストから別の JavaSE バージョンを選択します。

      希望するバージョンがリストに表示されない場合は、Environments ボタンをクリックしてそのリストからバージョンを選択します。選択する JRE バージョンがマシンにインストールされている必要があります。

      注記

      Fuse 7.x には JRE バージョン 1.8 が必要です。

    • Runtime JRE: Alternate JRE: プロジェクトに異なるバージョンの Java が必要な場合は、このオプションを使用できます。
  5. Finish をクリックし、New Fuse Integration Project ウィザードの Select a Target Runtme ページに戻ります。

    Target Runtime ペインのドロップダウンメニューに、新しく設定されたターゲットランタイムが表示され、ランタイムでサポートされる Camel のバージョンが Camel Version ペインにグレイアウト表示されます。

    Fuse Integration プロジェクトの作成後、Camel バージョンを変更できます。「12章Camel バージョンの変更」を参照してください。

  6. Next をクリックし、「プロジェクトテンプレートの選択」の説明に従ってプロジェクトのテンプレートを指定します。

プロジェクトテンプレートの選択

Advanced Project Setup ページには、新規プロジェクトの開始点として使用できるテンプレートの一覧が記載されています。一般的なユースケースをベースとするテンプレートでは、サンプルコードとデータを提供し、迅速に操作を開始できます。利用可能なテンプレートの一覧は、以前のページで選択したランタイム環境によって異なります。テンプレートを選択すると、右側のペインに説明が表示されます。

注記

要件を満たすテンプレートが表示されない場合は、Where can I find more examples to use as templates? のリンクをクリックして、より多くの例が得られる URL の一覧が表示された情報ダイアログを開くことができます。

nfpTemplateExamples

これらの例のいずれかを使用するには、以下の手順に従います。

  1. Cancel を選択して New Fuse Integration Project ウィザードを終了します。
  2. 一覧表示された URL のいずれかからリポジトリーのクローンを作成します。
  3. 13章既存の Maven プロジェクトのインポート」の説明に従って、サンプルプロジェクトを CodeReady Studio にインポートします。
  • Fuse on OpenShift の場合には、Spring XML 設定ファイルを使用して Spring Boot で Camel ルートを設定する方法を示す単一のテンプレートがあります。このテンプレートは Fuse Integration プロジェクトを作成し、バージョン 2.18.1.redhat-000012 より新しい Camel バージョンを必要とします。

    このテンプレートは OpenShift サーバーで実行されるプロジェクトを作成し、Spring DSL のみをサポートします。このテンプレートの使用についての詳細は、「7章Fuse on OpenShift のスタートガイド」を参照してください。

    nfpTemplateOpenShift
  • Wildfly または Fuse on EAP の場合には、「Hello」と示すために Bean サービスを呼び出すサンプル Camel ルートを提供する単一のテンプレートがあります。このテンプレートは Red Hat EAP サーバーで実行されるプロジェクトを作成し、Spring DSL のみをサポートします。

    nfpTemplateEAP
  • Karaf または Fuse on Karaf の場合には、さまざまなテンプレートを選択できます。一般的なユースケースに基づいて、サポートされる 3 つのドメイン固有言語 (DSL) のいずれかに基づくスケルトンの Camel コンテキストルーティングファイルを作成する空のプロジェクトを作成するか、事前定義のテンプレートを使用することができます。個々のテンプレートは、すべての DSL オプションをサポートしない場合があります。

    注記

    Java DSL の場合、ツールはツールの Java エディターで編集することができる CamelRoute.java ファイルを生成しますが、グラフィカルダイアグラム表現を生成しません。

    • Content Based Router: 特定の場所からファイルを読み取り、メッセージの内容に応じて異なる出力フォルダーにルーティングする Camel ルートのサンプルを提供します。

      このテンプレートは Red Hat Fuse サーバーで実行されるプロジェクトを作成し、3 つすべての DSL をサポートします。

    • CXF code first: CXF Web サービス呼び出しによって開始される Camel ルートのサンプルを提供します。

      このテンプレートは Red Hat Fuse サーバーで実行されるプロジェクトを作成し、Spring DSL および Java DSL のみをサポートします。

      nfpTemplateKaraf
      1. 一覧からテンプレートを選択します。
      2. Finish をクリックします。

        ツールはプロジェクトのビルドを開始し、Project Explorer ビューに追加します。

        Fuse Integration パースペクティブをまだ開いていない場合、ツールによって、すぐにパースペクティブに切り替えるかどうかを尋ねられます。

        OpenAssociatedPerspective
      3. Yes をクリックし、Fuse Integration パースペクティブで新規プロジェクトを開きます。

        nfpTemplateProjectOpen

        Project Explorer ビューにプロジェクトが表示されます。デフォルトでは、プロジェクトには Apache Camel コンテキスト (XML) ファイルが含まれます。

      4. キャンバスの下部にある Source タブをクリックして、生成された Camel コンテキストファイルを表示します。

        nfpTemplateCBRsource
注記

新しい別の Camel コンテキストファイルをプロジェクトに追加する場合は、「11章新しい Camel XML ファイルの作成」を参照してください。

CXF を使用するプロジェクトをビルドする際に、WSDL ファイルを生成するためにビルドプロセスを Java ファイルで自動的に動作させたい場合があります。そのためには、プロジェクトの .pom ファイルで java2ws Maven プラグインを設定します。『Apache CXF Development Guide』の「Maven Tooling Reference」の「java2ws」を参照してください。

Maven 依存関係エラーの解決

新しい Fuse Integration プロジェクトの作成後、Maven の依存関係エラーが発生することがあります。

これは他に発生する可能性がありますが、プロジェクトのビルドが終了する前にプロセスをキャンセルすると発生します。このようにプロセスを中断すると、すべてのプロジェクトの依存関係が Maven リポジトリーからダウンロードされなくなります (依存関係のダウンロードには多少時間がかかる場合があります)。

多くの場合、以下のように Maven 依存関係を更新すると、これらの依存関係エラーを解決できます。

  1. Project Explorer ビューでルートプロジェクトを右クリックし、コンテキストメニューを開きます。
  2. MavenUpdate Project と選択します。
  3. Update Maven Project ウィザードで以下を行います。

    • ウィザードの一覧に複数のプロジェクトが表示される場合は、更新するプロジェクトを選択します。
    • Force Update of Snapshots/Releases オプションをクリックして有効にします。
  4. OK をクリックします。

    ワークベンチの右下隅で、不足している依存関係が Maven リポジトリーからダウンロードされるにしたがって、進捗ステータスバーが進む様子が表示されます。

第2章 ルートエディターでのルーティングコンテキストの編集

The following sections describe how to edit a routing context.

2.1. ルートへのパターンの追加

ルートは、接続されたパターンのシーケンスで構成されます。これは、Route コンテナーノード内のキャンバスに配置されると ノード と呼ばれます。完全なルートは、通常、開始エンドポイント、処理するノードの文字列、および 1 つまたは複数の宛先エンドポイントで構成されます。

パターンをキャンバスの Route コンテナーに追加する場合、パターンはノードのタイプを示す色が付けられます。

  • 青: コンテキストファイルのルート要素に対応するルートコンテナー、および when やロジックを完了する他の EIP が含まれる otherwise EIP 等の他のコンテナーノード
  • 緑: ルートに入るデータを入力するコンシューマーエンドポイント
  • オレンジ: ルートを移動するデータのフローをルーティング、変換、処理、または制御する EIP
  • 紫: ルート出るデータを出力するプロデューサーエンドポイント

手順

ルートにパターンを追加するには、以下を実行します。

  1. Palette で、ルートに追加するパターンを見つけます。
  2. 以下の方法のいずれかを使用します。

    • Palette でパターンをクリックし、キャンバスでルートコンテナーをクリックする。
    • パターンをターゲット Route コンテナーにドラッグし、ドロップする。

      または、発信接続のない既存ノードにパターンを追加したり、ノード間の接続にパターンを追加したりして、ツールに関与するすべてのノード間の接続を自動的にワイヤリングさせることができます。

      ツールは生成される接続が有効かどうかを確認し、ターゲットにパターンを追加することを許可または拒否します。有効な接続の場合、ターゲットがノードか接続かによってツールの動作が異なります。

      • 既存のノード の場合には、ツールは新しいノードをターゲットノードの送信側 (エディターの設定 により、ノードの下または右) に追加し、その間の接続を自動的にワイヤリングします。
      • 既存の接続 の場合には、ツールは接続された 2 つのノード間に新しいノードを挿入し、3 つのノード間の接続を自動的に再度ワイヤリングします。
  3. 任意の設定として、2 つのノードを手動で接続できます。

    1. キャンバスの Route コンテナーで、ソースノードを選択して、そのコネクター矢印を表示します。
    2. ソースノードのコネクター矢印 ( ConnectorArrow ) をターゲットノードにドラッグし、マウスボタンを解放してコネクターをドロップします。

      注記

      すべてのノードが接続可能な訳ではありません。ソースノードを無効なターゲットノードに接続しようとすると、ツールは unconfigured co gray シンボルをマウスカーソルに付けて表示し、コネクターをターゲットノードに付ける操作に失敗します。

  4. Route コンテナー内でパターンを追加した後に、有効な接続を確立できる限り、ルートコンテナー内の別の場所またはキャンバスの別のルートコンテナーにドラッグすることができます。移動で別の有効な接続を確立できれば、すでに接続済みの既存のノードを再配置することもできます。

    エンドポイントの再配置方法を説明する短いビデオを表示するには、ここ をクリックします。

  5. FileSave と選択します。ツールは、ルートが完了しているかどうかにかかわらず、コンテキストファイルにルートを保存します。

Route コンテナーのキャンバスに新しいパターンが表示され、選択したノードになります。Properties ビューには、編集可能な新規ノードのプロパティーの一覧が表示されます。

レイアウトの方向の変更

あるノードを別のノードに接続する場合、ツールはルートエディターのレイアウト設定に従ってレイアウトを更新します。デフォルトは Down です。

ルートエディターのレイアウト設定にアクセスするには、以下を実行します。

  • Linux および Windows マシンでは、WindowsPreferencesFuse ToolingEditorChoose the layout direction for the diagram editor を選択します。
  • OS X では、CodeReady StudioPreferencesFuse ToolingEditorChoose the layout direction for the diagram editor を選択します。

2.2. パターンの設定

概要

ほとんどのパターンには、明示的な設定が必要です。たとえば、エンドポイントには明示的に URI を入力する必要があります。

ツールの Properties ビューは、特定のパターンがサポートするすべての設定詳細を一覧表示するフォームを提供します。Properties ビューは、以下の便利な機能も提供します。

  • 必要なすべてのプロパティーに値があることを検証する
  • 指定される値がプロパティーの正しいデータタイプであることを検証する
  • 固定の値のセットを持つプロパティーのドロップダウンリスト
  • Apache Camel Spring 設定からの利用可能な Bean 参照が反映されたドロップダウンリスト

手順

パターンを設定するには、以下を実行します。

  1. キャンバスで設定するノードを選択します。

    Properties ビューは、選択したノードの編集可能なすべてのプロパティーを一覧表示します。EIP では、Details タブにすべてのパターンのプロパティーが一覧表示されます。Components ドロワーのコンポーネントの場合、Details タブには一般的なプロパティーと、値を必要とするものが、Advanced タブには、機能に応じてグループ化された追加のプロパティーが一覧表示されます。

    Documentation タブは、パターンと各プロパティーについて説明します。

  2. Properties ビューでフィールドを編集して、ノードを設定します。
  3. 完了したら、メニューバーから FileSave を選択して作業を保存します。

2.3. ルートからのパターンの削除

概要

ルートを開発および更新する際、ルートのノードを 1 つまたは複数削除する必要がある場合があります。ノードの garbageIcon アイコンを使用すると、これを簡単に実行できます。キャンバスからノードを削除すると、ルートの他のノードとの接続もすべて削除され、ノードはコンテキストファイルの対応するルート要素から削除されます。

注記

ノードのコンテキストメニューを開き、Remove を選択してノードを削除することもできます。

手順

ルートからノードを削除するには、以下を実行します。

  1. 削除するノードを選択します。
  2. garbageIcon アイコンをクリックします。
  3. この要素を削除したい場合は Yes をクリックします。

ノードとその接続がすべてキャンバスから削除され、ノードはコンテキストファイルの対応するルート要素から削除されます。

2.4. ルーティングコンテキストへのルートの追加

概要

XML コンテキストファイル内の camelContext 要素はルーティングコンテキストを作成します。camelContext 要素には 1 つ以上のルートが含まれ、キャンバスに Route コンテナーノードとして表示される各ルートは、生成された camelContext 要素のルート要素にマッピングされます。

手順

別のルートを camelContext に追加するには、以下を実行します。

  1. Design タブで以下の 1 つを行います。

    • PaletteRouting ドロワーで Route パターンをクリックし、ルートを配置するキャンバスをクリックする。
    • PaletteRouting ドロワーから Route パターンをドラッグしてキャンバスにドロップする。

      Properties ビューには、編集可能な新規ルートのプロパティーの一覧が表示されます。

  2. Properties ビューで、以下を入力します。

    • ルートの Id フィールド: 新規ルートの ID (例: Route2)

      注記

      ツールは、キャンバスにドロップした EIP とコンポーネントパターンに ID を自動的に割り当てます。これらの自動生成される ID を独自の ID に置き換えて、プロジェクトのルートを区別することができます。

    • Description フィールド: ルートの説明
    • 必要に応じて、その他のプロパティーの値。必須プロパティーはアスタリスク (*) によって示されます。
  3. メニューバーで FileSave を選択し、ルーティングコンテキストファイルに加えられた変更を保存します。
  4. 複数のルートを切り替えるには、Project Explorer ビューでプロジェクトの Camel Contexts フォルダーにあるエントリーをクリックして、キャンバスで表示するルートを選択します。

    routeEntriesProjectExplorer
  5. (スペースが許す範囲で) コンテキストのすべてのルートを表示するには、Project Explorer ビューでコンテキストファイルエントリーをクリックします。
  6. ルートをキャンバスに追加する際にツールによって生成されたコードを表示するには、Source タブをクリックします。

    注記

    Source タブにルートを追加する場合は、<route/> 要素を camelContext 要素の既存のリストに追加します。

2.5. ルートの削除

概要

ルーティングコンテキストからルート全体を削除しなければならない場合があります。Route コンテナーの garbageIcon アイコンを使用すると、これを簡単に実行できます。ルートを削除する場合、Route コンテナーのすべてのノードも削除され、コンテキストファイルの対応するルート要素が削除されます。

注記

Route コンテナーのコンテキストメニューを使用して Remove を選択し、ルートを削除することもできます。

重要

この操作は元に戻せません。

手順

ルートを削除するには、以下を実行します。

  1. ルーティングコンテキストに複数のルートが含まれる場合、まず Project Explorer ビューで削除するルートを選択します。

    routeEntriesProjectExplorer
  2. キャンバスで Route コンテナーの garbageIcon アイコンをクリックします。

    routeDelete
  3. この要素を削除したい場合は Yes をクリックします。

ルートは、キャンバス、コンテキストファイル、および Project Explorer ビューから削除されます。

2.6. グローバルエンドポイント、データフォーマット、または Bean の追加

概要

一部のルートは、グローバルエンドポイント、グローバルデータフォーマット、またはグローバル Bean によって提供される共有設定に依存します。ルートエディターの Configurations タブを使用して、プロジェクトのルーティングコンテキストファイルにグローバル要素を追加できます。

グローバル要素をルーティングコンテキストファイルに追加するには、以下の手順を実施します。

  1. ルートエディターでルーティングコンテキストファイルを開きます。
  2. ルートエディター下部にある Configurations タブをクリックして、グローバル設定が存在する場合は表示します。

    ConfigurationsView
  3. Add をクリックして Create a new global element ダイアログを開きます。

    CnfigsVAddButton

    オプションは次のとおりです。

グローバルエンドポイントの追加

  1. Create a new global element ダイアログで Endpoint を選択し、OK をクリックして Select component ダイアログを開きます。

    CnfigsVSelectCamComponent1
    注記

    デフォルトでは、Show only palette components オプションが有効な状態で Select component ダイアログが開きます。利用可能な全コンポーネントを表示するには、このオプションのチェックを外します。

    注記

    Grouped by categories オプションは、タイプでコンポーネントをグルーピングします。

    CnfigsVSelectCamComponentGrouped
  2. Select component ダイアログで Camel コンポーネントのリストをスクロールして、コンテキストファイルに追加するコンポーネントを見つけて選択し、次に Id フィールドにその ID を入力します。

    CnfigsVCamComponentSelected

    この例では、JMS コンポーネントが選択され、myJMSId の値になります。

  3. Finish をクリックします。

    CnfigsVmyEndptAdded2

    必要に応じて、Properties ビューでプロパティーを設定できるようになりました。

    ツールによって、[globalEndptSelect]でコンポーネントの Id フィールドに入力した値が Id に自動入力されます。この例では、Camel はコンポーネントのスキーマ (ここでは jms:) で始まる uri (必須フィールド) を構築しますが、destinationNamedestinationType を指定してコンポーネントの uri を完了する必要があります。

    注記

    JMS コンポーネントの場合、宛先のタイプはデフォルトで queue に設定されます。このデフォルト値は、Destination Name (必須フィールド) に値を入力するまで、Details ページの uri フィールドに表示されません。

  4. コンポーネントの uri を完了するには、Advanced をクリックします。
  5. Destination Name フィールドに、宛先エンドポイントの名前を入力します (例: FOO.BAR)。Destination Type フィールドにエンドポイント宛先のタイプを入力します (例: queuetopictemp:queue、または temp:topic)。

    JMSCompAdvanPathProp

    Properties ビューの Details および Advanced タブでは、特定のコンポーネントの設定に使用できるすべてのプロパティーにアクセスできます。

  6. Consumer(advanced) タブをクリックします。

    JMSCompConsumerAdvanProps2

    プロパティー Eager Loading Of Properties および Expose Listener Session を有効にします。

  7. ルートエディターで、Source タブに移動し、ツールがコンテキストファイルの最初のルート要素の前に追加したコードを確認します (この例では、設定された JMS エンドポイント)。

    CnfigsEndptSourceView
  8. 完了したら、メニューバーで FileSave を選択して変更を保存します。

グローバルデータフォーマットの追加

  1. Create a new global element ダイアログで Data Format を選択し、OK をクリックして Create a global Data Format ダイアログを開きます。

    CnfigsVCreateGlobalDF1

    データフォーマットのデフォルトは、利用可能なフォーマットリストの一番上の avro です。

  2. Data Format ドロップダウンメニューを開き、xmljson などの形式を選択します。
  3. Id フィールドに、フォーマットの名前を入力します (例: myDataFormat)。

    CnfigsVCreateGlobalDF2
  4. Finish をクリックします。

    CnfigsVEditGlobalDFprops1
  5. Properties ビューで、以下の例のようにプロパティー値をプロジェクトに応じて設定します。

    CnfigsVEditGlobalDFprops2
  6. ルートエディターで、Source タブをクリックし、ツールがコンテキストファイルに追加したコードを表示します。この例では、設定された xmljson データフォーマットが最初のルート要素の前に表示されます。

    CnfigsVGlobalDFSourceV
  7. 完了したら、メニューバーで FileSave を選択して変更を保存します。

グローバル Bean の追加

グローバル Bean は、ルートのどこからでも参照できるルート以外の bean 定義を有効にします。Bean コンポーネントをパレットからルートにコピーする場合、定義されたグローバル Bean は Properties ビューの Ref ドロップダウンメニューで見つけることができます。Bean コンポーネントが参照するグローバル Bean を選択します。

グローバル Bean 要素を追加するには、以下を実行します。

  1. Create a new global element ウィンドウで Bean を選択し、OK をクリックして Bean Definition ダイアログを開きます。

    CnfigsVCreateGlobalBean1
  2. Id フィールドに、グローバル Bean の ID を入力します (例: TransformBean)。ID は設定内で一意である必要があります。
  3. Bean クラスまたはファクトリー Bean を特定します。

    ファクトリー Bean を指定するには、ファクトリークラスが指定された別のグローバル Bean を追加している必要があります。その後、そのグローバル Bean を選択して、グローバル Bean ファクトリーとして宣言できます。Bean ファクトリークラスの 1 つのインスタンスがランタイムになります。他のグローバル Bean は、そのクラスでファクトリーメソッドを呼び出すことで、他のクラスの独自のインスタンスを作成することができます。

    Class フィールドに入力するには、以下のいずれかを行います。

    • プロジェクトまたは参照されるプロジェクトにあるクラスの名前を入力する。
    • をクリックして、プロジェクトまたは参照されるプロジェクトのクラスに移動し、選択する。
    • + クリックして新しい Bean クラスを定義し、それをグローバル Bean として追加する。
  4. 追加する Bean に引数が 1 つ以上必要な場合は、各引数に対して、Constructor Arguments セクションで以下を行います。

    1. Add をクリックします。
    2. (任意設定) Type フィールドに引数のタイプを入力します。デフォルトは java.lang.String です。
    3. Value フィールドに引数の値を入力します。
    4. OK をクリックします。
  5. 任意の設定として、グローバル Bean からアクセスできる 1 つ以上のプロパティーを指定します。Bean Properties セクションで、各プロパティーで以下を行います。

    1. Add をクリックします。
    2. 名前 フィールドに、プロパティーの名前を入力します。
    3. Value フィールドにプロパティーの値を入力します。
    4. OK をクリックします。
  6. Finish をクリックして、グローバル Bean を設定に追加します。指定したグローバル Bean ID が Configurations タブに表示されます。例を以下に示します。

    CnfigsBeanInList
  7. Source タブに移動し、ツールがコンテキストファイルに追加した bean 要素を表示します。以下に例を示します。

    CnfigsBeanSourceV
  8. Configurations タブをクリックし、グローバル要素のリストに戻り、グローバル Bean を選択して Properties ビューで標準プロパティーを表示します。以下に例を示します。

    CnfigsBeanProperties
    注記

    グローバル Bean の追加時に指定したプロパティーを表示または編集するには、Configurations タブで Bean を選択し、Edit をクリックします。

  9. 必要に応じてグローバル Bean プロパティーを設定します。

    • depends-on: このグローバル Bean の前に作成する必要がある Bean を識別するために使用できる文字列。依存する Bean の ID (名前) を指定します。たとえば、TransformBean を追加する場合に Depends-onChangeCaseBean に設定すると、ChangeCaseBean を作成してから TransformBean を作成できます。Bean が破棄されると、TransformBean が最初に破棄されます。
    • factory-method: ローバル Bean がファクトリークラスである場合に限り便利です。このような場合、Bean の参照時に呼び出される静的ファクトリーメソッドを指定または選択します。
    • スコープ: singleton または prototype です。デフォルトは singleton で、Bean が呼び出されるたびに Camel が同じ Bean のインスタンスを使用することを示します。Bean が呼び出されるたびに Camel が Bean の新規インスタンスを作成するようにするには、prototype を指定します。
    • init-method: Bean の参照時に呼び出す Bean の init() メソッドを指定または選択できます。
    • destroy-method: Bean によっる処理が完了したときに呼び出す Bean の destory メソッドを指定または選択できます。
  10. 完了したら、メニューバーで FileSave を選択して変更を保存します。

グローバル要素の削除

手順は、前にルーティングコンテキストに追加されたエンドポイント、データフォーマット、または Bean を削除する場合と同じです。

注記

グローバル要素の削除は、元に戻す操作を実行できません。設定に保持するグローバル要素を誤って削除した場合は、コンテキストファイルを保存せずに閉じて、削除を元に戻すことができます。これが実行できない場合は、誤って削除されたグローバル要素を再度追加します。

  1. Configurations タブで、削除するグローバル要素を選択します。

    たとえば、「グローバルデータフォーマットの追加」で追加したデータフォーマット myDataFormat を削除する場合は、以下のようになります。

    CnfigsVDFSelectDelete
  2. Delete をクリックします。

    グローバル要素 myDataFormatConfigurations タブから消えます。

  3. Source タブに移動し、ツールによってルーティングコンテキストから XML コードが削除されたことを確認します。

    CnfigsDelDFSourceV
  4. 完了したら、メニューバーで FileSave を選択して変更を保存します。

グローバル要素の編集

手順は、ルーティングコンテキストに追加したエンドポイント、データフォーマット、または Bean のプロパティーを変更する場合と同じです。

通常、グローバル要素の ID を変更する必要はありません。グローバル要素が実行中のルートで既に使用されている場合、ID を変更すると、グローバル要素への参照が破損する可能性があります。

  1. Configurations タブで、編集するグローバル要素を選択します。

    たとえば、「グローバルエンドポイントの追加」で追加したエンドポイント myJMS を編集するには、以下のように選択します。

    CnfigsVEndptEditSelect
  2. Edit をクリックします。

    CnfigsVEndptClickEdit

    Properties ビューで、必要に応じて要素のプロパティーを変更します。

  3. たとえば、AdvancedConsumer タブを開き、Concurrent Consumers の値を 2 に変更します。

    CnfigsEditEndpntConcurConsume2
  4. ルートエディターで、Source タブをクリックして、ツールがプロパティー concurrentConsumers=2 をルーティングコンテキストに追加したことを確認します。

    CnfigsVEndptEditSourceV
  5. 完了したら、メニューバーで FileSave を選択して変更を保存します。

2.7. ルートエディターの設定

概要

Fuse 設定を使用すると、ルートエディターの動作とユーザーインターフェースのオプションを指定できます。

  • エンタープライズ統合パターン (EIP) の表現に使用するデフォルトの言語
  • ルートの作成時に、Design キャンバスでパターンを続ける方向 (右または下)
  • Design キャンバスで、キャンバスの背景にグリッドオーバーレイを表示されるかどうか
  • Design キャンバスのノードをラベル付けする方法

手順

ルートエディターを設定するには、以下を実行します。

  1. Editor 設定ウィンドウを開きます。

    • Linux および Windows マシンでは、WindowsPreferencesFuse ToolingEditor と選択します。
    • OS X では、CodeReady StudioPreferencesFuse ToolingEditor と選択します。

      PreferencesEditor

  2. Enterprise Integration Pattern (EIP) コンポーネントの表現に使用するデフォルトの言語を選択するには、ドロップダウンリストから言語を選択します。デフォルトは Simple です。
  3. ルートエディターがルートのパターンを配置する方向を指定するには、Down または Right を選択します。デフォルトは Down です。
  4. キャンバスの背景にグリッドオーバーレイを表示するを有効または無効にするには、Show diagram grid in Routes Editor の横にあるボックスにチェックを入れます。デフォルトでは 有効 です。
  5. ルートエディターの Design タブのラベルとしてコンポーネント ID を使用するのを有効または無効にするには、Use ID values for component labels の横にあるボックスにチェックを入れます。デフォルトでは 無効 です。

    このオプションをチェックしてコンポーネントに推奨ラベルも指定すると (ステップ 6 を参照)、ID の値の代わりにそのコンポーネントに推奨されるラベルが使用されます。

  6. ルートエディターの Design タブで、コンポーネント (File ノード等のエンドポイントを除く) のラベルとしてパラメーターを使用するには、以下を実行します。

    1. Preferred labels セクションで、Add をクリックします。New Preferred Label ダイアログが開きます。

      NewPreferredLabel

    2. Component を選択し、コンポーネントのラベルとして使用する Parameter を選択します。
    3. OK をクリックします。コンポーネントとパラメーターのペアが Editor Preferences ウィンドウに一覧表示されます。

      PreferredLabelsList

      任意の設定として、コンポーネントラベルの 編集 および 削除 が可能です。

      注記

      Use ID values for component labels オプションのチェックをオンにすると、Preferred labels セクションに一覧表示されているコンポーネントを除くすべてのコンポーネントに適用されます。

  7. Apply and Close をクリックして、エディター 設定に変更を適用し、Preferences ウインドウを閉じます。
注記

エディター 設定ダイアログに戻り、Restore Defaults をクリックすると、いつでもルートエディターの元のデフォルトを復元できます。

第3章 Rest DSL コンポーネントの表示および編集

Apache Camel は、REST サービスを定義するために複数のアプローチをサポートします。特に、Apache Camel は REST DSL (Domain Specific Language) を提供します。これは、REST コンポーネントを抽象化でき、OpenAPI 2.0 仕様 とも統合できるシンプルながらも強力な API です。OpenAPI (以前の Swagger) は、API サービスのベンダーに依存しない移植可能なオープン記述形式です。

Camel Rest DSL の使用に関する詳細は、『Apache Camel 開発者ガイド』の「REST サービスの定義」の章を参照してください。

Fuse Tooling を使用すると、Camel Context ファイルにある Rest DSL コンポーネントを表示および編集できます。

Configuring your Fuse REST project to enable OpenAPI docs」で説明するように、Fuse Integration プロジェクトを設定して、REST API を OpenAPI クライアントに公開することもできます。

3.1. Rest DSL コンポーネントのグラフィカル表示の表示

グラフィカルモードで Camel Context ファイルの REST DSL コンポーネントを表示するには、以下を実行します。

  1. ルートエディターで Camel Context ファイルを開きます。
  2. REST タブをクリックして Rest DSL コンポーネントを表示します。

    RESTtab

    REST Configuration セクションには、以下の設定オプションが表示されます。

    • component: REST トランスポートに使用する Camel コンポーネント。
    • Context Path: REST サービスのリーディングコンテキストパス。このオプションを、コンテキストパスを使用して Web アプリケーションがデプロイされているコンポーネント (例: Servlet) に使用できます。
    • port: REST サービスを公開するポート番号。
    • Binding Mode: JSON または XML 形式のメッセージのバインディングモード。使用できる値は off (デフォルト)、autojsonxml、または json_xml です。
    • Host: REST サービスの公開に使用するホスト名。
  3. REST 要素をクリックして、REST Operations セクションで関連する操作 (例: GETPOSTPUT、および DELETE) を表示します。
  4. REST 要素または REST オペレーションをクリックして、Properties ビューでそのプロパティーを表示します。

    RESTproperties

3.2. グラフィカルビューでの Rest DSL コンポーネントの編集

REST タブで、プロジェクトの Camel Context ファイルに REST 要素を追加、編集、または削除できます。

  • 新しい REST 要素を追加するには、以下を実行します。

    1. REST elements セクションで + ボタンをクリックします。REST 要素が、REST elements のリストに追加されます。
    2. Properties ビューで、REST 要素のプロパティーを編集します。

      RESTAddElement2
  • REST オペレーションを REST 要素に追加するには、以下を実行します。

    1. REST elements のリストで、REST 要素を選択します。
    2. REST operations セクションで、+ ボタンをクリックします。

      Add REST Operation ダイアログボックスが開きます。

      RESTAddOperation
    3. IDURI、および Operation Type を指定します。任意の設定として、Referenced Route ID を選択します。
    4. Finish をクリックします。新しい操作が、選択した REST 要素の REST オペレーションのリストに表示されます。
  • REST 要素またはオペレーションを編集するには、REST タブでこれを選択し、Properties タブでそのプロパティー値を編集します。
  • 選択した REST 要素またはオペレーションを削除するには、x ボタンをクリックします。

3.3. Rest DSL ソースコードの表示および編集

Source タブで Rest DSL コンポーネントを表示および編集することもできます。

  1. ルートエディターで Camel Context ファイルを開きます。
  2. ルートエディターの Source タブをクリックし、コードを編集します。

    RESTsourcetab
  3. 任意の手順として、REST タブをクリックして、グラフィカルビューに変更内容を表示します。
  4. 変更を保存するには、FileSave と選択します。

第4章 SOAP アプリケーションの RESTful Web サービスへの移行

WSDL-to-Camel Rest ウィザードを使用して、既存の WSDL を使用して既存の JAX-WS SOAP Web サービス実装から RESTful Web サービス実装に移行できます。このウィザードは Fuse Tooling の一部として利用でき、Github wsdl2rest プロジェクト で利用可能な wsdl2rest ユーティリティーに基づいています。

以下の仕様/設定をサポートします。

  • Document/literal (doc/lit)
  • Document/literal Wrapped (doc/lit wrap)
  • RPC/literal (rpclit)

4.1. ウィザードのワークフロー

ウィザードは、有効な URL (file:// URL 形式) またはリモート URL (http もしくは https を使用) である WSDL パスおよび選択した Fuse プロジェクトを使用します。ウィザードでは、生成される Java コード、生成される Camel 設定ファイル、生成される Camel エンドポイントのターゲットアドレスのパス、および Bean 実装クラスを指定します。

ウィザードは、プロジェクトに基づいて宛先 Java および Camel パスを生成します。生成された Java コードは src/main/java に、Camel ファイルは Spring や Blueprint の適切な場所 (例: src/main/resources/META-INF/spring) にあります。

生成されたクラスを変更し、特定のポイントに設定できます。

4.2. 前提条件

開始する前に、以下の前提条件を満たしていることを確認する必要があります。

  • 既存の Fuse Integration プロジェクト。FileNewFuse Integration Project ウィザードを使用して新規プロジェクトを作成できます。
  • URL 経由でアクセス可能な WSDL ファイル。ローカル (file:// url) またはリモート (http もしくは https) を指定できます。

4.3. サンプル SOAP アプリケーションの RESTful Web サービスへの移行

以下の手順に従ってウィザードを実行します。

  1. CodeReady Studio で、Project Explorer ビューで Fuse プロジェクトを選択します。
  2. Fuse プロジェクトを右クリックし、NewCamel Rest DSL from WSDL の順に選択します。

    Select Incoming WSDL and Project for Generated Output ページが表示されます。Destination Project フィールドに、Project Explorer で選択した Fuse プロジェクトが自動的に事前に反映されます。このプロジェクトは、ウィザードが生成するアーティファクトの宛先です。

    wsdl to rest p1
  3. WSDL File に、処理する元の SOAP サービスを指定します。
  4. Next をクリックします。Specify Advanced Options for WSDL-to-REST Processing ページが表示されます。

    wsdl to rest p2
    1. Destination Java Folder に、CXF が生成する Java クラスの場所を指定します。
    2. Destination Camel Folder には、生成される Camel Rest DSL 設定ファイルの場所を指定します。

      注記

      生成される Camel ファイルのパスと名前は、Camel プロジェクトの種類によって異なります。

      • Spring プロジェクトの場合: src/main/resources/META-INF/rest-camel-context.xml
      • Spring Boot プロジェクトの場合: src/main/resources/spring/rest-springboot-context.xml
      • Blueprint プロジェクトの場合: src/main/resources/OSGI-INF/rest-blueprint-context.xml
    3. 任意の設定として、Target Service Address に WSDL バインディングで指定された SOAP アドレスを提供します。このオプションは、WSDL によって参照される SOAP サービスの実際のアドレスに一致するように変更できます。
    4. 任意の設定として、Target REST Service Address に REST サービスにアクセスするための URL を提供します。この URL は Rest DSL の <restConfiguration> および <rest> タグに分解され、SOAP サービスにマッピングされた REST オペレーションの完全な URL を指定します。
  5. Finish をクリックして、出力として 2 つのファイルを作成します。

    • Rest DSL での Camel 設定。
    • SOAP サービスをラップする CXF からの Java クラス。

第5章 新しい Apache Camel JUnit テストケースの作成

概要

ルートをテストする一般的な方法は、JUnit を使用することです。設計タイムツールには、ルートの JUnit テストケースの作成を簡素化するウィザードが含まれます。ウィザードは指定されたエンドポイントを使用して、テストの開始点のコードおよび設定を生成します。

注記

共通の JUnit テストケースを作成したら、テストがルートに対して有効になるように、これを変更して作成または変更したルートに固有の期待値およびアサーションを追加する必要があります。

前提条件

新規の JUnit テストケースを作成する前に、予備のタスクを実行する必要があります。

既存の JUnit テストケースの削除

  1. Project Explorer ビューでプロジェクトのルートノードを展開し、<root_project>/src/test/java フォルダーを表示します。
  2. /src/test/java フォルダーで JUnit テストケースファイルを見つけます。

    プロジェクトがベースとする DSL に応じて、JUnit テストケースファイルには BlueprintXmlTest.java または CamelContextXmlTest.java という名前が付けられます。

  3. JUnit テストケースの .java ファイルを右クリックしてコンテキストメニューを開き、Delete を選択します。

    JUnit テストケースの .java ファイルは、Project Explorer ビューから消えます。

    これで、新しい JUnit テストケースを作成 できるようになりました。

src/test/java フォルダーの作成およびビルドパスへの追加

  1. Project Explorer ビューでプロジェクトのルートを右クリックし、コンテキストメニューを開きます。
  2. NewFolder を選択し、Create a new folder resource ウィザードを開きます。
  3. ウィザードのプロジェクトツリーペインで、プロジェクトのルートノードを展開し、src フォルダーを選択します。

    <project_root>/srcEnter or select the parent folder フィールドに表示されるのを確認してください。

  4. Folder name/test/java を入力します。このフォルダーは、作成する新しい JUnit テストケースを保存します。
  5. Finish をクリックします。

    Project Explorer ビューでは、src/main/resources フォルダーの下に新しい src/test/java フォルダーが表示されます。コンテキストメニューを開き、Build Path を選択して、このフォルダーがクラスパス上にあることを確認できます。Remove from Build Path がメニューオプションである場合は、src/test/java フォルダーがクラスパスにあります。

    これで、新しい JUnit テストケースを作成 できるようになりました。

JUnit テストケースの作成

ルート用に新規の JUnit テストケースを作成するには、以下を実行します。

  1. Project Explorer ビューで、プロジェクトのルーティングコンテキスト .xml ファイルを選択します。
  2. 図5.1「New Camel JUnit Test Case ウィザード」に表示されているように、右クリックしてコンテキストメニューを開き、NewCamel Test Case を選択して New Camel JUnit Test Case ウィザードを開きます。

    図5.1 New Camel JUnit Test Case ウィザード

    Entry page of the New Camel JUnit Test Case wizard

    または、メニューバーから FileNewOther > Fuse > Camel Test Case を選択してウィザードを開くことができます。

  3. Source folder で、テストケースのソースコードのデフォルトの場所を受け入れるか、別の場所を入力します。

    Browse button をクリックして場所を検索できます。

  4. Package で、生成されたテストコードのデフォルトのパッケージ名を受け入れるか、別のパッケージ名を入力します。

    Browse button をクリックしてパッケージを検索できます。

  5. Camel XML file under test で、テストするルートが含まれるルーティングコンテキストファイルのデフォルトのパス名を受け入れるか、別のパス名を入力します。

    Browse button をクリックしてコンテキストファイルを検索できます。

  6. Name で、生成されたテストクラスのデフォルト名を受け入れるか、別の名前を入力します。
  7. 生成されたコードに追加するメソッドスタブを選択します。
  8. 生成されたコードにデフォルトの生成されたコメントを含める場合は、Generate comments チェックボックスをオンにしてください。
  9. Next button をクリックし、Test Endpoints ページを開きます。たとえば、図5.2「New Camel JUnit Test Case page ページ」は、選択したルートの入力および出力ファイルエンドポイントを示しています。

    図5.2 New Camel JUnit Test Case page ページ

    Example Test Endpoints page
  10. Available endpoints で、テストするエンドポイントを選択します。選択を解除するには、選択したエンドポイントの横にあるチェックボックスをクリックしてします。
  11. Finish button をクリックします。

    注記

    プロンプトが表示されたら、JUnit をビルドパスに追加します。

テストのアーティファクトはプロジェクトに追加され、Project Explorer ビューで src/test/java の下に表示されます。テストケースを実装するクラスが Java エディターで開きます。

第6章 Red Hat Fuse Tooling 内でのルートの実行

ツールを使用してルートを実行する方法は 2 つあります。

6.1. ローカル Camel コンテキストとしてのルートの実行

概要

Apache Camel ルートを実行する最も簡単な方法は、ローカルの Camel コンテキスト としてです。この方法では、Project Explorer ビューのコンテキストメニューからルートを直接起動することができます。コンテキストメニューからルートを実行すると、ツールにより、ランタイムプロファイルが自動的に作成されます。ルートを実行するためにカスタムランタイムプロファイルを作成することもできます。

ルートはコマンドラインから直接呼び出されたかのように実行され、Apache Camel の組み込み Spring コンテナーを使用します。ランタイムプロファイルを編集して多くのランタイムパラメーターを設定できます。

手順

ローカルの Camel コンテキストとしてルートを実行するには、以下を実行します。

  1. Project Explorer ビューで、ルーティングコンテキストファイルを選択します。
  2. これを右クリックしてコンテキストメニューを開き、Run AsLocal Camel Context の順に選択します。

    注記

    Local Camel Context (without tests) を選択すると、検証テストを実行せずにプロジェクトを実行するようツールに指示します。これは、より速くなります。

結果

Console ビューには、実行中のルートから生成された出力が表示されます。

6.2. Maven を使用したルートの実行

概要

ルートが含まれるプロジェクトが Maven プロジェクトである場合、m2e プラグインを使用してルートを実行できます。このオプションを使用すると、ルートが実行される前に Maven ゴールを実行できます。

手順

Maven を使用してルートを実行するには、以下を実行します。

  1. Project Explorer ビューで、プロジェクトのルートを選択します。
  2. これを右クリックしてコンテキストメニューを開き、Run AsMaven build を選択します。

    1. Maven を使用したプロジェクトの初回実行時には、Edit Configuration and launch エディターが開き、Maven ランタイムプロファイルを作成できます。

      ランタイムプロファイルを作成するには、Maven タブで以下を実行します。

      1. Apache Camel プロジェクトのルートディレクトリーが Base directory: フィールドに表示されることを確認します。

        たとえば、Linux では、プロジェクトのルートは ~/workspace/simple-router のようになります。

      2. Goals: フィールドに camel:run を入力します。

        重要

        Java DSL を使用してプロジェクトを作成した場合は、Goals: フィールドに exec:java を入力します。

      3. Apply をクリックし、Run をクリックします。
    2. 実行間で変更しない限り、後続の Maven の実行にはこのプロファイルが使用されます。

結果

Console ビューには Maven の実行からの出力が表示されます。

6.3. ランタイムプロファイルの使用

Red Hat Fuse Tooling は、各プロジェクトのランタイム環境に関する情報を ランタイムプロファイル に保存します。ランタイムプロファイルにより、呼び出す Maven ゴール、使用する Java ランタイム環境、設定が必要なシステム変数などの情報を追跡できます。プロジェクトには、複数のランタイムプロファイルを指定できます。

6.3.1. Local Camel Context ランタイムプロファイルの編集

概要

Local Camel Context ランタイムプロファイルは、ルートを実行する際の Apache Camel の呼び出し方を設定します。Local Camel Context ランタイムプロファイルは、ルートが定義されているコンテキストファイルの名前、呼び出す main の名前、JVM に渡すコマンドラインオプション、使用する JRE、使用するクラスパス、設定する必要のある環境変数、その他の情報などを保存します。

Local Camel Context ランタイムプロファイルのランタイム設定エディターには、以下のタブが含まれます。

  • Camel Context File: 新しい設定の名前と、ルートが含まれるルーティングコンテキストファイルの完全パスを指定します。
  • JMX: JMX URI やそのアクセスに使用するユーザー名およびパスワード (任意) を含む JMX 接続の詳細を指定します。
  • Main: プロジェクトのベースディレクトリーの完全修飾名、ベースディレクトリーを検索するオプション、ルートの実行前に実施する必要のあるゴール、および使用する Maven ランタイムのバージョンを指定します。
  • JRE: JRE および JVM の起動時に使用するコマンドライン引数を指定します。
  • Refresh: 実行の終了後に Maven がプロジェクトのリソースファイルを更新する方法を指定します。
  • Environment: 設定する必要のある環境変数を指定します。
  • Common: プロファイルの保存方法と出力の表示方法を指定します。

Apache Camel ルートが Local Camel Context として初めて実行されると、Red Hat Fuse Tooling は編集を必要としないルーティングコンテキストファイル用デフォルトランタイムプロファイルを作成します。

Local Camel Context のランタイム設定エディターへのアクセス

  1. Project Explorer ビューで、カスタムランタイムプロファイルを編集または作成する Camel コンテキストファイルを選択します。
  2. これを右クリックしてコンテキストメニューを開き、Run AsRun Configurations を選択して Run Configurations ダイアログを開きます。
  3. コンテキスト選択 ペインで、Local Camel Context を選択してから、コンテキスト選択 ペインの左上にある New profile icon をクリックします。
  4. Name フィールドに、ランタイムプロファイルの新しい名前を入力します。

図6.1 Local Camel Context のランタイム設定エディター

Local camel context runtime configuration editor

camel コンテキストファイルの設定

Camel Context File タブには 1 つのフィールド Select Camel Context file… があります。ルート定義が含まれるルーティングコンテキストファイルへの完全パスを入力します。

Browse ボタンは Open Resource ダイアログにアクセスし、ターゲットルーティングコンテキストファイルの場所を簡単に見つけることができます。本ダイアログは、Apache Camel ルートが含まれるファイルを検索するように事前設定されています。

コマンドラインオプションの変更

デフォルトでは、JVM に渡される唯一のコマンドラインオプションは次のとおりです。

-fa context-file

カスタムのメインクラスを使用している場合は、別のオプションで渡さなければならない場合があります。これを行うには、Main タブで Add ボタンをクリックして、パラメーターの名前と値を入力します。Add Parameter ダイアログの Variables… ​ ボタンをクリックして、選択可能な変数のリストを表示できます。

JVM 固有の引数を追加または変更するには、JRE タブの VM arguments フィールドを編集します。

出力送信先の変更

デフォルトでは、ルートの実行により生成された出力は Console ビューに送信されます。ただし、これをファイルにリダイレクトすることができます。

出力をファイルにリダイレクトするには、以下を実行します。

  1. Common タブを選択します。
  2. Standard Input and Output ペインで、Output File: フィールドの横にあるチェックボックスをクリックし、出力を送信するファイルへのパスを入力します。

    WorkspaceFile System、および Variables ボタンにより、出力ファイルへのパスを素早く構築することができます。

6.3.2. Maven ランタイムプロファイルの編集

概要

Maven ランタイムプロファイルは、Maven が Apache Camel を呼び出す方法を設定します。Maven ランタイムプロファイルは、実行する Maven ゴール、使用する Maven プロファイル、使用する Maven のバージョン、使用する JRE、使用するクラスパス、設定する必要のある環境変数、その他の情報などを保存します。

重要

Apache Camel ルートが Maven を使用して初めて実行される場合は、デフォルトのランタイムプロファイルを作成する必要があります。

Fuse ランタイムプロファイルのランタイム設定エディターには、以下のタブが含まれます。

  • Main: 新しい設定の名前、プロジェクトのベースディレクトリーの完全修飾名、ベースディレクトリーを検索するオプション、ルートの実行前に実施する必要のあるゴール、および使用する Maven ランタイムのバージョンを指定します。
  • JRE: JRE および JVM の起動時に使用するコマンドライン引数を指定します。
  • Refresh: 実行の終了後に Maven がプロジェクトのリソースファイルを更新する方法を指定します。
  • Source: プロジェクトに必要な追加ソースの場所を指定します。
  • Environment: 設定する必要のある環境変数を指定します。
  • Common: プロファイルの保存方法と出力の表示方法を指定します。

Maven ランタイム設定エディターへのアクセス

  1. Project Explorer ビューで、カスタムランタイムプロファイルを編集または作成するプロジェクトのルートを選択します。
  2. これを右クリックしてコンテキストメニューを開き、Run AsRun Configurations を選択して Run Configurations ダイアログを開きます。
  3. コンテキスト選択 ペインで、Maven Build を選択してから、コンテキスト選択 ペインの左上にある New profile icon をクリックします。

図6.2 Maven のランタイム設定エディター

Maven runtime configuration editor

Maven ゴールの変更

ルートを実行する際の最もよく使用されるゴールは camel:run です。これは、独自の JVM で実行されている Spring コンテナーにルートをロードします。

Apache Camel プラグインは、Maven によって使用される同じ JVM に Spring コンテナーを読み込む camel:embedded ゴールもサポートします。これの利点は、ルートが高速にブートストラップされるべきです。

Java DSL をベースとするプロジェクトは exec:java ゴールを使用します。

POM に他のゴールが含まれる場合、Main タブの Maven Runtime フィールドの横にある Configure… ボタンをクリックして、使用する Maven ゴールを変更できます。Installations ダイアログ で、Global settings for <selected_runtime> installation フィールドを編集します。

Maven のバージョンの変更

デフォルトでは、Eclipse の Red Hat Fuse Tooling は Eclipse に組み込まれた m2e を使用します。Maven の異なるバージョンを使用する場合、または開発マシンに新しいバージョンがインストールされている場合は、Main タブの Maven Runtime ドロップダウンメニューから選択できます。

出力送信先の変更

デフォルトでは、ルート実行からの出力は Console ビューに送信されます。ただし、これをファイルにリダイレクトすることができます。

出力をファイルにリダイレクトするには、以下を実行します。

  1. Common タブを選択します。
  2. Output File: フィールドの横にあるチェックボックスをクリックし、出力を送信するファイルへのパスを入力します。

    WorkspaceFile System、および Variables ボタンにより、出力ファイルへのパスを素早く構築することができます。

第7章 Fuse on OpenShift のスタートガイド

Fuse on OpenShift (Fuse Integration Services 7.0 以降の名称) は、Fuse アプリケーションを OpenShift Container Platform にデプロイすることができます。

重要

Fuse Integration プロジェクト (Fuse on OpenShift プロジェクト) の場合、Fuse Tooling では Red Hat Container Development Kit (CDK) v3.x をインストールする必要があります。手順については、『Getting Started Guide』を参照してください。本ガイドで指定した前提条件に加え、Red Hat アカウントがなければ取得する必要があります。Red Hat Container Development Kit で提供される仮想 OpenShift インスタンスを起動するには、Red Hat ユーザー名およびパスワードが必要です。

Red Hat カスタマーポータル に登録することで、アカウントを簡単に取得できます。ホワイトバナーの右上隅にある Account をクリックし、ご自身の Red Hat アカウントにログイン ページの RH acctRegBut をクリックします。

Fuse Tooling を使用すると、s2i バイナリーワークフローを使用して Fuse Integration プロジェクトを開発およびデプロイできます。このワークフローでは、ツールがローカルでプロジェクトをビルドし、これをイメージストリームにアセンブルし、イメージストリームを OpenShift にプッシュします。ここで、イメージストリームは Docker コンテナーのビルドに使用されます。Docker コンテナーがビルドされると、OpenShift はこれを Pod にデプロイします。

重要

Fuse Tooling は S2I バイナリーワークフローでのみ機能し、Spring Boot フレームワークをベースとしたプロジェクトでのみ動作します。

注記

Fuse Tooling は、ツールを使用して作成された Fuse Integration プロジェクトをリモートの OpenShift サーバーにデプロイできますが、この章では、Red Hat Container Development Kit (CDK) v3.x を使用してローカルにインストールされた仮想 OpenShift インスタンスに Fuse Integration プロジェクトを作成およびデプロイする方法を説明します。

以下のセクションでは、最初の Fuse Integration プロジェクトを作成およびデプロイする方法を説明します。

注記

Fuse Integration プロジェクトをローカルの Camel コンテキストとして実行し (「ローカル Camel コンテキストとしてのルートの実行」を参照)、JMX Navigator ビューでプロジェクトに接続することもできます。ここで、ルーティングコンテキストを監視およびテストできます。Fuse Integration プロジェクトで Camel デバッガーを実行し (パートII「ルーティングコンテキストのデバッグ」)、ルーティングコンテキストのロジックエラーを探して修正することもできます。

7.1. Red Hat Container Development Kit サーバーの追加

Red Hat Container Development Kit を Servers ビューに追加するには、以下を実行します。

  1. 必要に応じて、WindowPerspectiveOpen PerspectiveFuse Integration を選択して Fuse Integration パースペクティブに切り替えます。

    注記

    この手順で説明しているビューが開かない場合は、WindowShow ViewOther の順に選択し、開くビューの名前を選択して開くことができます。

  2. Servers ビューで No servers are available. Click this link to create a new server… のリンクをクリックし、Define a New Server ウィザードを開きます。このリンクは、Servers ビューにサーバーエントリーが含まれていない場合にのみ表示されます。

    それ以外の場合は、Servers ビューを右クリックしてコンテキストメニューを開き、NewServer を選択して Define a New Server ウィザードを開きます。

    DefNewSrvCDK
  3. Red Hat JBoss MiddlewareRed Hat Container Development Kit 3.2+ を選択します。

    以下の項目のデフォルト値を受け入れます。

    • Server’s hostname: localhost
    • Server name: Container Development Environment
  4. Next をクリックして Red Hat Container Development Environment ページを開きます。
  5. MiniShift Binary の横にある Browse をクリックして、Red Hat Container Development Kit 3.x をインストールした場所に移動し、Open をクリックします。
  6. Username の横にある Add をクリックして Add a Credential ページを開きます。
  7. 以下のように認証情報を設定します。

    • Username: Red Hat アカウントへのログインに使用する名前を入力します。
    • Always prompt for password: そのままにします (無効)。
    • Password: Red Hat アカウントへのログインに使用するパスワードを入力します。
  8. OK をクリックして Red Hat Container Development Environment ページに戻ります。設定が反映されています。以下に例を示します。

    CDEdefUserFolder3
  9. Finish をクリックします。Container Development Environment 3.2+ [Stopped, Synchronized]Servers ビューに表示されます。CDK 3.x サーバーを追加した場合、Container Development Environment 3.2+ がデフォルトのサーバー名です。

7.2. Container Development Environment (CDE) および仮想 OpenShift サーバーの起動

Container Development Environment (CDE) を起動すると、仮想 OpenShift サーバーも起動します。CDE を停止すると、仮想 OpenShift サーバーも停止します。

  1. Servers ビューで Container Development Environment 3 [stopped, Synchronized] を選択し、Servers メニューバーの run exec をクリックします。

    Console ビューが開き、起動プロセスのステータスを表示します。

    CDEstartTerminal
    注記

    CDE は初回起動時に、信頼できない SSL 証明書を許可するかどうかを尋ねます。Yes をクリックします。

    起動プロセスが完了すると、Servers ビューは以下のようになります。

    CDEsrvStartedSyncd
  2. OpenShift Explorer ビューに切り替えます。

    仮想 OpenShift サーバーインスタンス developer も実行されています。

    OSEopenshift devAutostart

    https://192.168.99.100:8443 は、OpenShift 開発者 Web コンソールの URL の例です。インストールには、実際のインスタンスの URL が表示されます。詳細は「OpenShift Web コンソールへのアクセス」を参照してください。

7.3. 新しい OpenShift プロジェクトの作成

Fuse Integration プロジェクトを OpenShift にデプロイすると、ここで作成する OpenShift プロジェクトにパブリッシュされます。

  1. OpenShift Explorer ビューで、developer エントリーを右クリックし、コンテキストメニューを開きます。
  2. NewProject を選択して、New OpenShift Project ウィザードを開きます。
  3. 新規プロジェクトのプロパティーを以下のように設定します。

    • Project Name フィールドに、仮想 OpenShift サーバー上のプロジェクトの namespace の名前を入力します。

      小文字、数字、およびダッシュだけ有効です。

    • Display Name フィールドに、仮想 OpenShift Web コンソールの Overview ページに表示される名前を入力します。
    • Description フィールドは、そのままにしておきます。

      以下に例を示します。

      New Project
  4. Finish をクリックします。

    新しい OpenShift プロジェクト (この例では New FIS Test newtest) が OpenShift Explorer タブの (この例では) developer https://192.168.99.100:8443 に表示されます。

    OSEnewFISprojCreated
    注記

    myproject myproject は、OpenShift に含まれる初期サンプルプロジェクトです。

    OpenShift Explorer ビューで New FIS Test newtest を選択すると、Properties ビューにプロジェクトの詳細が表示されます。以下に例を示します。

    OSEnewFISprojProps
    注記

    プロジェクトを OpenShift にデプロイすると、Properties ビューは OpenShift Web コンソールが行うのと同じようにプロジェクトについての情報を収集および表示します。

7.4. 新しい Fuse Integration プロジェクトの作成

新しい Fuse Integration プロジェクトを作成する前に、ステージング環境用リポジトリーを有効にする必要があります。これは、一部の Maven アーティファクトがデフォルトの Maven リポジトリーにないために必要です。ステージングリポジトリーを有効にするには、WindowPreferencesFuse ToolingStaging Repositories と選択します。

Fuse Integration プロジェクトを作成するには、Spring Boot on OpenShift テンプレートを使用します。

  1. Project Explorer ビューで右クリックしてコンテキストメニューを開き、New → Fuse Integration Project を選択してウィザードの Choose a project name ページを開きます。

    New Fuse Integration Project
  2. Project Name フィールドに、使用しているワークスペース内で一意の名前を入力します (例: myFISproject)。

    他のオプションにデフォルト値を受け入れます。

  3. Next をクリックし、Select a Target Runtime ページを開きます。

    New Project Camel Version

    Target Runtime (No Runtimeselected) および Camel Version のデフォルトをそのまま使用します。

  4. Next をクリックして Advanced Project Setup ページを開きます。

    Advanced Project Setup
  5. Simple log using Spring Boot - Spring DSL テンプレートを選択します。

    Advanced Project Templates
  6. Finish をクリックします。

    注記

    初回の Fuse Integration プロジェクト用にダウンロードされる依存関係の数が多いため、ビルドに時間がかかる場合があります。

    Fuse Integration パースペクティブがまだ開かれていない場合、Developer Studio によってすぐに開くかどうかを示すように求められます。Yes をクリックします。

ビルドが完了すると、Fuse Integration パースペクティブにはプロジェクトが表示されます。以下に例を示します。

FIS ProjCreatedFIP

この時点では、以下が可能になります。

7.5. Fuse Integration プロジェクトの OpenShift へのデプロイ

  1. Project Explorer ビューでプロジェクトのルート (この例では myFISproject) を右クリックし、コンテキストメニューを開きます。
  2. Run AsRun Configurations を選択して Run Configurations ウィザードを開きます。
  3. サイドバーメニューで Maven BuildDeploy <projectname> on OpenShift (この例では Deploy myFISproject on OpenShift) を選択し、プロジェクトのデフォルトの実行設定を開きます。

    FIS RunCnfgMain

    Main タブのデフォルト設定は そのままにしておきます。

  4. JRE タブを開き、仮想マシン引数にアクセスします。

    FIS RunCfgJRE
  5. VM arguments ペインで、-Dkubernetes.namespace=test 引数の値を変更して、OpenShift プロジェクトの作成時に使用したプロジェクト名 (「新しい OpenShift プロジェクトの作成」OpenShift のプロジェクト名) に一致させます。

    この例では、デフォルト値 testnewtest に変更します。

    FIS RunCfgVMargsChg

    OpenShift 設定によっては、設定をサポートするように他の VM 引数を変更する必要がある場合があります。

    • -Dkubernetes.master=https://192.168.99.1:8443

      複数の OpenShift インスタンスを実行している場合、またはリモートインスタンスを使用する場合は、デプロイメントの対象となる OpenShift インスタンスの URL を指定する必要があります。上記の URL は一例になります。

    • -Dkubernetes.trust.certificates=true

      • CDK を使用する場合は、この引数が必要になります。true に設定したままにしてください。
      • 有効な SSL 証明書を持つ OpenShift インスタンスを使用している場合は、この引数の値を false に変更します。
  6. Apply をクリックし、Run をクリックします。

    ダウンロードする依存関係の数が多いため、初回のデプロイメントには時間がかかる場合があります。コンピュータとインターネット接続の速度は、要因となります。通常、初回のデプロイメントを完了するには 25 から 35 分かかります。

    Console ビューでは、デプロイプロセスの進捗を追跡できます。以下の出力のエントリー Pushing image 172.30.1 …… は、プロジェクトが正常にビルドされ、アプリケーションイメージが OpenShift にプッシュされていることを示します。ここで、イメージは Docker コンテナーのビルドに使用されます。

    FIS ConLogSuccess1

    デプロイメントが正常に完了すると、Console ビューには BUILD SUCCESS が表示されます。

    FIS ConLogSuccess2
  7. OpenShift Explorer ビューに切り替え、New FIS Test newtest を選択します。

    OSE NewFISTestDeploy1

    Properties ビューでは、Details ページにプロジェクトのプロパティー値がすべて表示されます。

    OSEnewFISprojProps

    他のタブ (BuildsBuild ConfigsDeployments …​) を開き、プロジェクトの他のプロパティーを表示します。Properties ビューは OpenShift Web コンソールと同じ情報を提供します。

  8. OpenShift Explorer ビューで camel-ose-springboot-xml を選択し、Properties ビューでその詳細を表示します。

    NFT camxmlPropsDetails

    他のタブをスクロールして、デプロイメント設定の他のプロパティーを表示します。

  9. OpenShift Explorer ビューで camel-ose-springboot-xml-1-mdmtd Pod Running を選択し、Properties ビューで実行中のインスタンスの詳細を表示します。

    NFT ImageStreamPropsDetails
  10. OpenShift Explorer ビューで camel-ose-springboot-xml-1-mdmtd Pod Running を右クリックし、Pod Logs… ​を選択します。

    注記

    プロンプトが表示されたら、インストールされた oc 実行可能ファイルへのパスを入力します。Pod ログを取得するために必要になります。

    Console ビューが自動的に開き、実行中の Pod からのログを表示します。

    OSE podLogsDisplayed

    Console ビューのメニューバーの Close をクリックしてセッションを終了し、コンソールの出力をクリアします。

7.6. OpenShift Web コンソールへのアクセス

注記

この情報は、Red Hat Container Development Kit インストールにのみ適用されます。

OpenShift Web コンソールにアクセスするには、ブラウザーを開き、インスタンスおよびマシンに固有の OpenShift サーバーの URL を入力します。たとえば、ブラウザーのアドレスフィールドに https://192.168.99.100:8443 を入力します。

デフォルトの認証情報を使用して、開発者または管理者として Web コンソールにログインできます。

  • デフォルトの開発者ロール

    開発者ユーザーは、自分のプロジェクトおよび OpenShift v3 機能を示す提供される OpenShift サンプルプロジェクトのみを表示できます。開発者ユーザーは、OpenShift にデプロイされた自分の所有するプロジェクトの作成、編集、削除ができます。

    • Username: developer
    • Password: developer
  • デフォルトの管理者ロール

    管理者ユーザーは、OpenShift (CDK) のすべてのプロジェクトを表示し、アクセスできます。管理者ユーザーは、OpenShift にデプロイされたプロジェクトの作成、編集、削除ができます。

    • Username: admin
    • Password: admin

OpenShift Web コンソールの使用に関する詳細は、『Getting Started Guide』を参照してください。

第8章 Red Hat Fuse SAP Tool Suite の使用

Red Hat Fuse SAP Tool Suite を使用すると、Camel ルートをリモートの SAP Application Server と統合できます。さまざまな SAP コンポーネントが提供され、Remote Function Call (RFC) および Intermediate Documents (IDoc) の送信および受信をサポートします。SAP Tool Suite は、SAP の JCo および IDoc クライアントライブラリーに依存します。これらのライブラリーをインストールして使用するには、SAP Service Marketplace のアカウントが必要です。

8.1. Red Hat Fuse SAP Tool Suite のインストール

概要

Red Hat Fuse SAP Tool Suite では、SAP Application Server と Destination の接続の作成および管理に役立つ Edit SAP Connection Configuration ダイアログを利用できます。スイートはデフォルトではインストールされません。これは、SAP により別途ライセンスされるサードパーティーの JCo および IDoc クライアントライブラリーが必要なためです。

SAP ツールに関するプラットフォーム制限

SAP ツールスイートはサードパーティーの JCo および IDoc ライブラリーに依存するため、これらのライブラリーがサポートするプラットフォームにのみインストールできます。SAP ツールのプラットフォーム制限の詳細は、「Red Hat Fuse でサポートされる構成」を参照してください。

前提条件

  • Fuse SAP Tool Suite をインストールする前に、http://service.sap.com/connectors から JCo および IDoc ライブラリーをダウンロードする必要があります。
  • お使いのオペレーティングシステムに適した JCo および IDoc ライブラリーを判断するには、「Red Hat Fuse でサポートされる構成」を参照してください。
  • JCo および IDoc ライブラリーをダウンロードするには、SAP Service Marketplace のアカウントが必要です。
  • このインストール手順では、ダウンロードしたファイルをアーカイブ形式でそのままにすることができます。コンテンツを抽出する必要はありません。

手順

Fuse SAP Tool Suite を Red Hat CodeReady Studio にインストールするには、以下の手順を実行します。

  1. Red Hat CodeReady Studio で FileImport の順に選択して、Import ウィザードを開きます。
  2. Import ウィザードの Select 画面で FuseInstall Fuse SAP Tool Suite を選択してから Next をクリックします。
  3. Install the Red Hat Fuse SAP Tool Suite 画面が開き、SAP Service Marketplace から JCo および IDoc ライブラリーをダウンロードする手順が表示されます。Next をクリックします。
  4. Select JCo and IDoc Archive to Import 画面が開きます。JCo Archive File フィールドの横の Browse ボタンを使用して、SAP Service Marketplace からダウンロードした JCo アーカイブを選択します。JCo アーカイブを選択すると、Archive Version および Archive OS Platform フィールドが自動的に入力され、インストールするライブラリーが正しいバージョンと OS プラットフォームであるかどうかを確認できます。

    IDoc Archive File フィールドの横の Browse ボタンを使用して、SAP Service Marketplace からダウンロードした IDoc アーカイブを選択します。

    両方のアーカイブファイルを選択したら、Finish をクリックします。

  5. 新しい Install ウィザード (Eclipse プラグインのインストール用) が自動的に開きます。このウィザードには、インストールする以下のプラグインが表示されます。

    • Fuse SAP Tool Suite
    • SAP JCo and IDoc Libraries

      これらのプラグインの両方が選択されていることを確認してください。Next をクリックします。

      注記

      SAP JCo and IDoc Libraries プラグインは、選択した JCo および IDoc ライブラリーから動的に構築されます。

  6. Install Details 画面で、インストールするプラグインを確認できます。Next をクリックします。
  7. Review Licenses ダイアログが開きます。I accept ラジオボタンオプションを選択し、Finish をクリックします。
  8. Security Warning ダイアログ (署名されていないコンテンツの警告) が表示された場合は、OK をクリックして警告を無視し、インストールを続行します。
  9. Restart Eclipse ダイアログが開きます。OK をクリックして Eclipse を再起動します。

8.2. SAP Destination Connection の作成およびテスト

概要

Fuse SAP Tool Suite では、Edit SAP Connection Configuration ダイアログが SAP Application Destination の接続の作成および管理に役立ちます。ここでは、SAP 宛先接続を作成およびテストする方法を説明します。

手順

SAP 宛先接続を作成およびテストするには、以下の手順を実行します。

  1. ルートエディターのグローバル Configurations タブに移動し、Add をクリックします。

    Create new global element ビューが表示されます。

  2. SAP で、作成するコネクションのタイプを選択します。SAP Connection を選択し、Ok をクリックします。

    Edit SAP Connection Configuration ダイアログが表示されます。Destination および Server Connection 設定を作成、編集、および削除できます。

  3. 新しい Destination Data Store を作成するには、Add Destination タブをクリックします。

    Create Destination ダイアログが表示されます。

  4. Destination Name フィールドに宛先の名前を入力して、Ok をクリックします。
  5. Properties ダイアログで以下の設定を行います。

    1. Basic タブをクリックして、SAP 宛先への接続に必要な基本的なプロパティーを設定します。このタブで、以下のプロパティーフィールドを入力して接続を設定します。

      • SAP Application Server
      • SAP System Number
      • SAP Client
      • Logon User
      • Logon Password
      • Logon Language
    2. Connection タブをクリックして、SAP 宛先に接続するために必要な値を追加します。以下のプロパティーフィールドを入力して接続を設定します。

      • SAP System Number
      • SAP Router String
      • SAP Application Server
      • SAP Message Server
      • SAP Message Server Port
      • Gateway Host
      • Gateway Port
      • SAP System ID
      • SAP Application Server Group
    3. Authenticate タブをクリックして、SAP 宛先を検証するために必要な値を追加します。以下のプロパティーフィールドを入力して接続を設定します。

      • SAP Authentication type
      • SAP Client
      • Logon User
      • Logon User Alias
      • Logon Password
      • SAP SSO Logon Ticket
      • SAP X509 Login Ticket
      • Logon Language
    4. Special タブをクリックします。このタブで、以下のプロパティーフィールドを入力して接続を設定します。

      • Select CPIC Trace
      • Initial Codepage
    5. Pool タブをクリックし、以下のプロパティーフィールドを入力して接続を設定します。

      • Connection Pool Peak Limit
      • Connection Pool Capacity
      • Connection Pool Expiration Time
      • Connection Pool Expire Check Period
      • Connection Pool Max Get Client Time
    6. SNC タブをクリックし、以下のプロパティーフィールドを入力して接続を設定します。

      • SNC Partner Name
      • SNC Level of Security
      • SNC Name
      • SNC Library Path
    7. Repository タブをクリックし、以下のプロパティーフィールドを入力して接続を設定します。

      • Repository Destination
      • Repository Logon User
      • Repository Logon Password

        注記

        これらの設定の詳細情報が必要な場合は、SAP ドキュメントを参照してください。

  6. これで、宛先接続をテストする準備が整いました。Edit SAP Connection Configuration ダイアログで、宛先名を右クリックし、Test を選択します。

    Test Destination Connection ダイアログが開きます。

  7. ダイアログは、現在の宛先設定を使用して SAP Destination Data Store に接続します。テストが成功したと、ステータスエリアに以下のメッセージが表示されます。

    Connection test for destination 'YourDestination' succeeded.

    それ以外の場合は、エラーレポートがステータスエリアに表示されます。

  8. Close をクリックして、Test Destination Connection ダイアログを閉じます。
  9. Finish をクリックします。新たに作成された SAP Destination Connection が SAP に表示されます。

8.3. SAP Server 接続の作成およびテスト

概要

Fuse SAP Tool Suite では、Edit SAP Connection Configuration ダイアログが SAP Application Server の接続の作成および管理に役立ちます。ここでは、SAP Server 接続を作成およびテストする方法を説明します。

手順

SAP Server 接続を作成およびテストするには、以下の手順を実行します。

  1. ルートエディターのグローバル Configurations タブに移動し、Add をクリックします。

    Create new global element ビューが表示されます。

  2. SAP で、作成するコネクションのタイプを選択します。SAP Connection を選択し、Ok をクリックします。

    Edit SAP Connection Configuration ダイアログが表示されます。Destination および Server Connection 設定を作成、編集、および削除できます。

  3. 新しい Server Data Store を作成するには、Add Server タブをクリックします。

    Create Server ダイアログが表示されます。

  4. Server Name フィールドに Server の名前を入力して、Ok をクリックします。
  5. Properties ダイアログで以下の設定を行います。

    1. Mandatory タブをクリックして、SAP サーバーへの接続に必要な基本的なプロパティーを設定します。このタブで、以下のプロパティーフィールドを入力して接続を設定します。

      • Gateway Host
      • Gateway Port
      • Program ID
      • Repository Destination
      • Connection Count
    2. Optional タブをクリックし、以下のプロパティーフィールドを入力して接続を設定します。

      • SAP Router String
      • Worker Thread Count
      • Minimum Worker Thread Count
      • Maximum Startup Delay
      • Repository Map
    3. SNC タブをクリックし、以下のプロパティーフィールドを入力して接続を設定します。

      • SNC Level of Security
      • SNC Name
      • SNC Library Path

        注記

        設定の詳細は、SAP のドキュメントを参照してください。

  6. これで、サーバー接続をテストする準備が整いました。Edit SAP Connection Configuration ダイアログで、サーバー名を右クリックし、Test を選択します。

    Test Server Connection ダイアログが開きます。

  7. ダイアログは、現在のサーバー設定を使用して SAP Server Data Store に接続します。テストが成功したと、ステータスエリアに以下のメッセージが表示されます。

    Server state: STARTED
    Server state: ALIVE

    テストに失敗すると、サーバーのステータスは DEAD として報告されます。

  8. Stop をクリックし、Test Sever をシャットダウンします。
  9. Close をクリックして、Test Server Connection ダイアログを閉じます。
  10. Finish をクリックします。新たに作成された SAP Server Connection が SAP に表示されます。

8.4. Destination および Server 接続の削除

概要

以下のセクションでは、Edit SAP Connection Configuration ダイアログで SAP Destination および Server 接続を削除する方法を説明します。

手順

Destination および Server 接続を削除する場合は、以下の手順を実行します。

  1. ルートエディターのグローバル Configurations タブに移動し、Add をクリックします。

    Create new global element ビューが表示されます。

  2. SAPSAP Connection を選択し、Ok をクリックします。

    Edit SAP Connection Configuration ダイアログが表示されます。Destination および Server Connection 設定を作成、編集、および削除できます。

  3. Edit SAP Connection Configuration ダイアログで、削除する Destination および Server Data Stores を選択します。
  4. Delete をクリックします。選択した接続が削除されます。

    最後に、Finish をクリックします。すべての変更が保存されます。

8.5. 新規 SAP エンドポイントの作成

概要

ルートエディターの Components パレットを使用し、Edit SAP Connection Configuration ダイアログを使用して SAP コンポーネントをルートに追加できます。

注記

SAP Connection ビューを使用している場合は、必要な SAP コネクション設定データを Blueprint XML または Spring XML コードに貼り付けます。

前提条件

Edit SAP Connection Configuration ダイアログを使用して、SAP 宛先接続またはサーバー接続がすでに作成されている必要があります。

注記

SAP Connection ビューを使用している場合は、この設定を適切なタイプのファイル (Blueprint XML または Spring XML) にエクスポートします。

手順

新しい SAP エンドポイントを作成するには、以下の手順を実行します。

  1. すでに Fuse プロジェクトと Camel XML ファイル (Blueprint XML または Spring XML フォーマットのどちらか) が連携していることが前提です。
  2. ルートエディターで Camel XML ファイルを開きます。Red Hat Fuse SAP Tool Suite がすでにインストールされている場合は、ルートエディターで Components パレットの下に SAP コンポーネントを確認できるはずです。以下の SAP コンポーネントはツールスイートによって提供されます。

    • SAP IDoc Destination
    • SAP IDoc List Destination
    • SAP IDoc List Server
    • SAP qRFC Destination
    • SAP Queued IDoc Destination
    • SAP Queued IDoc List Destination
    • SAP sRFC Destination
    • SAP sRFC Server
    • SAP tRFC Destination
    • SAP tRFC Server

      ルートエディターの Design タブで、これらのコンポーネントのいずれかをキャンバスにドラッグし、現在の camelContext に新しい SAP エンドポイントを作成します。

      注記

      SAP Netweaver コンポーネントは Red Hat Fuse SAP Tool Suite に属しません。これは Apache Camel プロジェクトでホストされます。

  3. キャンバスの下部にある Source タブをクリックして、ルートエディターの Source タブに切り替えます。ルートの XML ソースが表示されます。
  4. SAP エンドポイントの URI を指定する場合は、宛先名またはサーバー接続名のいずれかを URI 形式で埋め込む必要があります。たとえば、sap-srfc-destination コンポーネントの URI 形式は以下のとおりです。

    sap-srfc-destination:destinationName:rfcName

    特定の宛先を参照するには、関連する entry 要素の key 属性の値をこの URI の destinationName として使用します。

第9章 データ変換のスタートガイド

システムやデータ統合にける課題の 1 つは、コンポーネントシステムが、異なるデータ形式で動作することです。受信側システムが認識する形式 (または言語) に翻訳することなく、あるシステムから別のシステムにメッセージを送信することはできません。データ変換とは、この翻訳を指す用語です。

本章では、事前定義された Camel ルートにデータ変換を追加する方法を説明します。Camel ルートは、XML データを生成するソースエンドポイントから JSON データを使用するターゲットエンドポイントにメッセージを転送します。ソースの XML データフォーマットをターゲットの JSON データフォーマットにマッピングするデータ変換コンポーネントを追加および定義します。

9.1. データ変換例のプロジェクトの作成

  1. 新しい Fuse Integration プロジェクトを作成します (FileNewFuse Integration Project と選択します)。

    ウィザードに以下の情報を指定します。

    • プロジェクト名: starter
    • デプロイメントプラットフォーム: Standalone
    • ランタイム環境: Karaf/Fuse on Karaf
    • Camel バージョン: デフォルトを使用
    • テンプレート: Empty - Blueprint DSL
  2. https://github.com/FuseByExample/fuse-tooling-tutorials/archive/user-guide-11.1.zip から準備済みデータの例をダウンロードします。
  3. data フォルダーとそこに含まれる 3 つのファイルを、user-guide-11.1.zip アーカイブから Fuse Integration プロジェクトの src ディレクトリー (starter/src/data) に展開します。
  4. Project Explorer ビューで、スタータープロジェクトを展開します。
  5. Camel Contextssrc/main/resources/OSGI-INF/blueprint/blueprint.xml をダブルクリックし、ルートエディターの Design タブでルートを開きます。
  6. Source タブをクリックして基礎となる XML を表示します。
  7. <route id="_route1"/> を以下のコードに置き換えます。

    <route id="_route1">
      <from id="_from1" uri="file:src/data?fileName=abc-order.xml&amp;noop=true"/>
      <setHeader headerName="approvalID" id="_setHeader1">
        <simple>AUTO_OK</simple>
      </setHeader>
      <to id="_to1" uri="file:target/messages?fileName=xyz-order.json"/>
    </route>
  8. Design タブをクリックして、ルートのグラフィカル表示に戻ります。

    Description

9.2. Camel ルートへのデータ変換ノードの追加

  1. Palette で、Transformation ドロワーを展開します。
  2. Data Transformation パターンをクリックし、キャンバスで SetHeader _setHeader1To_to1 ノード間の矢印をクリックします。

    New Transformation ウィザードが Dozer File Path フィールドが自動入力された状態で開きます。

    Description
  3. 残りのフィールドに入力します。

    • Transformation ID フィールド: xml2json を入力します。
    • Source Type: ドロップダウンメニューから XML を選択します。
    • Target Type: ドロップダウンメニューから JSON を選択します。
  4. Next をクリックします。

    Source Type (XML) 定義ページが開き、XML Schema (デフォルト) または XML Instance Document 例を指定して、ソースデータのタイプ定義を指定します。

    Description
  5. XML Schema を有効にしたままにします。
  6. Source file での場合は、ソースデータの種類定義に使用する XML スキーマファイルまたは XML インスタンスファイルの場所を参照して、選択します (ここでは abc-order.xsd)。

    XML Structure Preview ペインには、XML 構造のプレビューが表示されます。

  7. Element root フィールドに ABCOrder を入力します。

    ツールは、このテキストを使用して、マップするソースデータアイテムを表示するペインにラベルを付けます。

    Source Type(XML) 定義ページは以下のようになります。

    Description
  8. Next をクリックし、Target Type (JSON) 定義ページを開きます。ターゲットデータのタイプ定義を指定する場所です。

    Description
  9. JSON Instance Document をクリックします。

    Target File フィールドに、xyz-order.json インスタンスドキュメントへのパスを入力します。または、このドキュメントを参照します。JSON Structure Preview ペインには、JSON データ構造のプレビューが表示されます。

    Description
  10. Finish をクリックします。

変換エディターが開きます。これは、XML ソースのデータアイテムを JSON ターゲットのデータアイテムにマッピングする場所です。

Description

変換エディターは、3 つのパネルで構成されています。

  • Source: ソースで利用可能なデータ項目を一覧表示します。
  • Mappings: ソースとターゲットのデータ項目間のマッピングを表示します。
  • Target: ターゲットで利用可能なデータ項目を一覧表示します。

さらに、エディターの 3 つのパネルのすぐ下にあるエディターの詳細ペインには (最初のマッピングを行った後に)、現在選択されているマッピングしたソースとターゲットデータアイテム両方の階層的親項目がグラフカル表示されます。以下に例を示します。

Details pane with source property customerNum mapped to target property role="italic">custId

詳細ペインを使用して、選択したソースおよびターゲットのデータ項目のマッピングをカスタマイズできます。

9.3. ソースデータ項目からターゲットデータ項目へのマッピング

  1. Mappings パネルの左右にある Source および Target パネルのすべての項目を展開します。

    Description
  2. Source パネルからデータアイテムをドラッグし、Target パネルの対応するデータ項目でドロップします。

    たとえば、Source パネルから customerNum データアイテムをドラッグし、Target パネルの custId データ項目にドロップします。

    Description

    マッピングが Mappings パネルに表示され、SourceTarget の両データ項目の詳細が下の詳細ペインに表示されます。

  3. すべての基本的なマッピングが完了するまで、ソースデータ項目を対応するターゲットデータ項目にドラッグアンドドロップする操作を続けます。

    starter の例では、マッピングする残りのデータ項目は以下のようになります。

    ソースターゲット

    orderNum

    orderId

    status

    priority

    id

    itemId

    price

    cost

    quantity

    amount

    注記

    コレクション (リストまたはセットが含まれるデータ項目) をコレクション以外のデータ項目にマッピングできます (その逆も同様)。ただし、コレクションを他のコレクションにマッピングすることはできません。

  4. Source パネルと Target パネルの両方で Hide mapped fields icon をクリックし、すべてのデータ項目がマッピングされているかどうかを素早く判別します。

    Description

    マッピングされていないデータアイテムのみが Source および Target パネルにリストされます。

    starter の例では、マッピングされていない残りの Target 属性は approvalCode および origin です。

  5. blueprint.xml タブをクリックして、ルートのグラフィカル表示に戻ります。

    DTmapComplete
  6. FileSave の順にクリックします。

変換テストの作成後に、JUnit テストをファイルで実行できます。詳細は「変換テストファイルの作成および JUnit テストの実行」を参照してください。この時点でテストを実行すると、以下の出力が Console ビューに表示されます。

ソースの XML データの場合:

<?xml version="1.0" encoding="UTF-8"?>
<ABCOrder xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:java="http://java.sun.com">
    <header>
        <status>GOLD</status>
        <customer-num>ACME-123</customer-num>
        <order-num>ORDER1</order-num>
    </header>
    <order-items>
        <item id="PICKLE">
            <price>2.25</price>
            <quantity>1000</quantity>
        </item>
        <item id="BANANA">
            <price>1.25</price>
            <quantity>400</quantity>
        </item>
    </order-items>
</ABCOrder>

ターゲットの JSON データの場合:

{"custId":"ACME-123","priority":"GOLD","orderId":"ORDER1","lineItems":[{"itemId":"PICKLE",
"amount":1000,"cost":2.25},{"itemId":"BANANA","amount":400,"cost":1.25

9.4. 変換テストファイルの作成および JUnit テストの実行

  1. Project Explorer ビューで starter プロジェクトを右クリックし、NewOtherFuse ToolingFuse Transformation Test の順に選択します。
  2. Next を選択して New Transformation Test ウィザードを開きます。
  3. New Transformation Test ウィザードで、以下の値を設定します。

    フィールド

    Package

    example

    Camel File Path

    OSGI-INF/blueprint/blueprint.xml

    Transformation ID

    xml2json

  4. Finish をクリックします。
  5. Project Explorer ビューで starter/src/test/java/example に移動し、TransformationTest.java ファイルを開きます。
  6. 以下のコードを transform メソッドに追加します。

    startEndpoint.sendBodyAndHeader(readFile("src/data/abc-order.xml"), "approvalID", "AUTO_OK");
  7. FileSave の順にクリックします。

    これらのチュートリアルの任意の時点で、変換ファイルで JUnit テストを実行できるようになりました。

  8. Project Explorer ビューで starter プロジェクトを展開し、/src/test/java/example/TransformationTest.java ファイルを表示します。
  9. これを右クリックしてコンテキストメニューを開き、Run as JUnit Test を選択します。

    JUnit Test ペインが開き、テストの状態を表示します。ワークスペースを整理するには、Console ビューの近くにある下部パネルでペインをドラッグアンドドロップします。

    Description
  10. Console ビューを開き、ログ出力を表示します。

9.5. 定数変数とデータ項目のマッピング

ソース/ターゲットデータアイテムに対応するターゲット/ソースデータアイテムがない場合、定数変数を既存のデータ項目にマッピングできます。

starter の例では、ターゲットデータ項目 origin には対応するソースデータ項目がありません。origin 属性を定数変数にマッピングするには、以下を実行します。

  1. Source パネルで Variables ビューをクリックします。

    Description
  2. Variables ビューで Add a new variable icon をクリックし、Enter a new variable name ダイアログを開きます。

    Description
  3. 作成する変数の名前を入力します。

    starter の例では、ORIGIN を入力します。

  4. OK をクリックします。

    新規作成された変数 ORIGIN は、Variables ビューの Name 列および Value 列のデフォルト値 ORIGIN に表示されます。

  5. デフォルト値をクリックして編集し、値を Web に変更します。
  6. Enter を押します。
  7. 新しい変数 ORIGINTarget パネルの origin データ項目にドラッグしてドロップします。

    Description

    変数 $(ORIGIN) の新しいマッピングが Mappings パネルと、詳細ペインに表示されます。

  8. TransformationTest.java ファイルで JUnit テストを実行します。詳細は「変換テストファイルの作成および JUnit テストの実行」を参照してください。

    Console ビューには JSON 形式の出力データが表示されます。

    {"custId":"ACME-123","priority":"GOLD","orderId":"ORDER1","origin":"Web",
    "approvalCode":"AUTO_OK","lineItems":[{"itemId":"PICKLE","amount":1000,"cost":2.25},
    {"itemId":"BANANA","amount":400,"cost":1.25}]}

9.6. 式のデータ項目へのマッピング

この機能を使用すると、たとえばターゲットデータアイテムを Camel 言語式の動的評価にマッピングすることができます。

対応するソースデータアイテムがないターゲット approvalCode データアイテムを使用します。

  1. Add a new mapping icon をクリックし、空の変換マッピングを Mappings パネルに追加します。

    Description
  2. Target パネルから、approvalCode データ項目を Mappings パネルで新しく作成されたマッピングのターゲットフィールドにドラッグアンドドロップします。

    Description

    詳細ペインのターゲットボックスにも、approvalCode データアイテムが表示されます。

  3. 詳細ペインで、ABCOrder ソースボックスの drop-down menu access をクリックして、ドロップダウンメニューを開きます。

    Description

    メニューオプションは、選択したデータ項目のデータ型により異なります。利用可能なオプションは太字です。

  4. Set expression を選択して Expression ダイアログを開きます。

    Description
  5. Language で、利用可能な言語一覧から使用する式言語を選択します。使用できるオプションは、データ項目のデータ型によって異なります。

    starter の例で、Header を選択します。

  6. 詳細ペインで、使用する式のソースを選択します。

    オプションは Value および Script です。

    starter の例では、Value をクリックしてから ApprovalID を入力します。

  7. OK をクリックします。

    Description

    Mappings パネルと詳細ペインの両方に、ターゲットデータ項目 approvalCode の新しいマッピングが表示されます。

  8. TransformationTest.java ファイルで JUnit テストを実行します。詳細は「変換テストファイルの作成および JUnit テストの実行」を参照してください。

    Console ビューには JSON 形式の出力データが表示されます。

    {"custId":"ACME-123","priority":"GOLD","orderId":"ORDER1","origin":"Web",
    "approvalCode":"AUTO_OK","lineItems":[{"itemId":"PICKLE","amount":1000,"cost":2.25},
    {"itemId":"BANANA","amount":400,"cost":1.25}]}

9.7. マッピングされたデータ項目へのカスタム変換の追加

ソースデータ項目の形式がターゲットシステムの要件を満たさない場合に、形式を変更する必要がある場合があります。

たとえば、すべての顧客 ID がかっこで囲まれていなければならない、というターゲットシステムの要件を満たすには、以下の手順を実施します。

  1. Mappings パネルで customerNum マッピングを選択し、詳細ペインに反映させます。

    Description
  2. 詳細ペインで、ABCOrder ソースボックスの drop-down menu access をクリックして、ドロップダウンメニューを開きます。

    Description
  3. Add custom transformation を選択し、Add Custom Transformation ページを開きます。

    Description
  4. Class フィールドの横にある create new function button をクリックして、Create a New Java Class ウィザードを開きます。

    Description
  5. 以下のフィールドを変更します。

    • Package: example を入力します。
    • Name: MyCustomMapper 入力します。
    • Method Name: mapbrackets に変更します。

      その他のフィールドはすべてそのままにしておきます。

  6. Finish をクリックします。

    Add Custom Transformation ページが、Class フィールドおよび Method フィールドが自動入力された状態で開きます。

    Description
  7. OK をクリックして Java エディターで MyCustomMapper.java ファイルを開きます。

    Description
  8. brackets メソッドを編集して、最後の行 return null; を以下のように変更します。

    return "[" + input + "]";
  9. transformation.xml タブをクリックして、変換エディターに戻ります。

    Description

    詳細ペインは、brackets メソッドが customerNum のデータ項目に関連付けられていることを示しています。

    この brackets メソッドは、ターゲットシステムに送信される前にソース入力で実行されます。

  10. TransformationTest.java ファイルで JUnit テストを実行します。詳細は「変換テストファイルの作成および JUnit テストの実行」を参照してください。

    Console ビューには JSON 形式の出力データが表示されます。

    {"custId":"[ACME-123]","priority":"GOLD","orderId":"ORDER1","origin":"Web",
    "approvalCode":"AUTO_OK","lineItems":[{"itemId":"PICKLE","amount":1000,"cost":2.25},
    {"itemId":"BANANA","amount":400,"cost":1.25}]}

9.8. 単純なデータアイテムからコレクションのデータ項目へのマッピング

このチュートリアルでは、Source のすべての id を Target の itemId にマッピングする既存のマッピングを変更します。新しいマッピングは、Source の customerNum データアイテムを、Target の lineItems コレクションの 2 番目の項目である itemId にマッピングします。

この変更により、ソースの id は Target の itemId にマッピングされません。

  1. Mappings パネルでマッピング id - > itemId を選択し、詳細ペインにマッピングを表示します。

    Description
  2. Source ボックスで drop-down menu access をクリックし、ドロップダウンメニューを開き、Set property を選択します。

    Description
  3. Select a property ページで header ノードを展開し、customerNum を選択します。OK をクリックして変更を保存します。

    select a property
  4. 詳細ペインには、XyzOrderlineItems フィールドがあることが表示されます。lineItems の横にあるトグルボタンをクリックして、その値を 1 に増やします。

    注記

    インデックスはゼロがベースであるため、1 の値はコレクション内の 2 番目のインスタンスである itemId を選択します。

    Description

    詳細ペインには、lineItems コレクションの 2 番目の項目である itemId にマッピングされた customerNum が表示されます。

  5. TransformationTest.java ファイルで JUnit テストを実行します。詳細は「変換テストファイルの作成および JUnit テストの実行」を参照してください。

    Console ビューには JSON 形式の出力データが表示されます。

    {"custId":"[ACME-123]","priority":"GOLD","orderId":"ORDER1","origin":"Web",
    "approvalCode":"AUTO_OK","lineItems":[{"amount":1000,"cost":2.25},
    {"itemId":"ACME-123","amount":400,"cost":1.25}]}

9.9. マッピングされたデータ項目への組み込み関数の追加

ビルトインの文字列関連の関数を使用して、マッピングされたデータ項目に変換を適用できます。

  1. Transformations パネルで status から priority へのマッピングを選択し、詳細ペインに反映させます。

    Description
  2. Source ボックスで drop-down menu access をクリックし、ドロップダウンメニューを開き、Add transformation を選択します。

    Description
  3. Transformations ペインで append を選択し、Arguments ペイン で suffix の値に -level を入力します。

    この append 関数は、status 文字列をターゲットの priority データ項目にマッピングする前に、指定されたサフィックスを文字列の最後に追加します。

    Description
  4. OK をクリックします。

    Description

    デフォルトでは、詳細ペインには、append 関数を status データ項目に追加した結果がユーザーフレンドリーな形式で表示されます。このフォーマットを変更するには、Source ボックスの右端の drop-down menu access をクリックし、Show standard format を選択します。

    Description
  5. TransformationTest.java ファイルで JUnit テストを実行します。詳細は「変換テストファイルの作成および JUnit テストの実行」を参照してください。

    Console ビューには JSON 形式の出力データが表示されます。

    {"custId":"[ACME-123]","priority":"GOLD-level","orderId":"ORDER1","origin":"Web",
    "approvalCode":"AUTO_OK","lineItems":[{"amount":1000,"cost":2.25},{"itemId":"ACME-123",
    "amount":400,"cost":1.25}]}

9.10. データ変換を設定した Fuse Integration プロジェクトの Red Hat Fuse サーバーへのパブリッシュ

データ変換プロジェクトを Fuse サーバーにパブリッシュする前に (「29章Fuse Integration プロジェクトのサーバーへのパブリッシュ」を参照)、Fuse ランタイムに以下の機能をインストールする必要があります。

  • camel-dozer
  • camel-jackson
  • camel-jaxb

必要な機能を Fuse ランタイムにインストールするには、以下を行います。

  1. まだ切り替えていない場合には、Fuse Integration パースペクティブに切り替えます。
  2. 必要な場合は、Fuse サーバーを Servers リストに追加します (「サーバーの追加」を参照)。
  3. Fuse Server を起動し (「サーバーの起動」を参照)、JBoss Fuse シェルが Terminal ビューに表示されるまで待ちます。
  4. 必要な各 camel- 機能について、JBossFuse:admin@root> プロンプトで以下のコマンドを入力します。

    features:install camel-<featureName>

    ここで、featureName は、dozerjackson、または jaxb のいずれかです。

  5. 各機能が正常にインストールされていることを確認するには、JBossFuse:admin@root> プロンプトで以下のコマンドを入力します。

    features:list --ordered --installed

    出力リストにインストールした camel 機能が表示されるはずです。

    DTCamFeatsInstalled

第10章 Fuse Online インテグレーションのエクステンションの開発

Fuse Online は、アプリケーションを統合するための Web インターフェースを提供する Red Hat Fuse 機能です。コードを作成せずに、ビジネスエキスパートは Fuse Online を使用してアプリケーションに接続し、オプションで異なるアプリケーションへのコネクション間のデータを操作できます。Fuse Online がインテグレーターが必要とする機能を提供しない場合、開発者は必要な動作を定義するエクステンションを作成できます。

Fuse Tooling を使用して、Fuse Online で使用する機能を提供するエクステンションを開発できます。エクステンションは以下を定義します。

  • インテグレーションのコネクション間のデータを操作する 1 つまたは複数のカスタム ステップ

    あるいは、

  • 1 つのカスタム コネクター

Fuse Online では、コネクター は、データの取得元また送信先となる特定のアプリケーションを示します。各コネクターは、その特定のアプリケーションへのコネクションを作成するためのテンプレートです。たとえば、Salesforce コネクターは、Salesforce へのコネクションを作成するためのテンプレートです。Fuse Online が Fuse Online ユーザーが必要とするコネクターを提供しない場合、カスタムコネクターを定義するエクステンションを開発できます。

Fuse Online では、インテグレーションのコネクション間で発生するデータ操作は、ステップ と呼ばれます。Fuse Online は、データのフィルタリングやマッピングなどのオペレーションのステップを提供します。Fuse Online のビルトインステップによって提供されない手法でコネクション間のデータを操作するには、1 つまたは複数のカスタムステップを定義する Fuse Online エクステンションを開発できます。

注記

任意の IDE でエクステンションを開発することができます。Fuse Tooling と別の IDE のどちらを使用するかは、完全に個人の好みです。IDE でのエクステンションの開発に関する情報は、『Fuse Online でのアプリケーションの統合』を参照してください。

10.1. タスクの概要

以下は、Fuse Online エクステンションを開発するタスクの概要です。

  1. Red Hat CodeReady Studio で、Fuse Online エクステンションプロジェクトを作成し、エクステンションタイプに カスタムコネクター またはカスタムステップ を選択します。
  2. エクステンションタイプに応じて、エクステンションのコードを作成します。

    • カスタムコネクター: ベースの Camel コンポーネント、コネクターアイコン、グローバルコネクタープロパティー、およびコネクターアクションを定義します。
    • カスタムステップ: ルートを追加し、アクションを定義し、依存関係を指定します。
  3. .jar ファイルをビルドします。
  4. .jar ファイルを Fuse Online ユーザーに提供します。

Fuse Online ユーザーは .jar ファイルを Fuse Online にアップロードし、カスタムコネクターまたはカスタムステップを使用できるようにします。Fuse Online とインテグレーションの作成方法は、『Fuse Online でのアプリケーションの統合』を参照してください。

10.2. 前提条件

開始する前に、以下の情報および理解が必要です。

  • Fuse Online カスタムコネクターまたはステップに必要な機能の説明 (Fuse Online ユーザーから)。
  • エクステンションの Fuse Online バージョン番号。
  • カスタムコネクターの場合、PNG または SVG 形式のアイコンイメージファイル。Fuse Online はインテグレーションのフローを表示するときにこのアイコンを使用します。アイコンを提供しない場合、Fuse Online はエクステンションが含まれる .jar をアップロードするときにファイルを生成します。
  • 以下を理解している必要があります。

    • Fuse Online
    • Spring Boot XML または Java
    • Apache Camel ルート (ルートベースのステップエクステンションを作成する場合)
    • JSON
    • Maven

10.3. カスタムコネクターの作成

Fuse Online では、カスタムコネクターは 1 つまたは複数のコネクション設定パラメーター、1 つまたは複数のコネクションアクション、およびオプションとして各アクションの設定パラメーターで構成されます。

以下は、カスタムコネクターを開発するためのタスクの概要です。

  1. Red Hat CodeReady Studio で、Fuse Online エクステンションプロジェクトを作成し、エクステンションタイプに カスタムコネクター を選択します。
  2. エクステンションのコードを作成します。ベースの Camel コンポーネント、コネクターアイコン、グローバルコネクタープロパティー、およびコネクターアクションを定義します。

10.3.1. カスタムコネクターの Fuse Online エクステンションプロジェクトの作成

Fuse Tooling Fuse Online エクステンションプロジェクトは、カスタムコネクターの開始点を提供します。

Fuse Tooling Fuse Online エクステンションプロジェクトを作成するには、以下の手順に従います。

  1. Red Hat CodeReady Studio で NewProjectRed Hat FuseFuse Online Extension Project と選択します。

    New Fuse Online Extension Project ウィザードが開きます。

    FuseOnlineExtWiz page1
  2. プロジェクトの名前と場所を入力し、Next をクリックします。

    FuseOnlineExtWiz page2
  3. Fuse Online のバージョンを選択します。
  4. 以下のエクステンションの詳細を指定します。

    • ID: Fuse Online 環境で一意の値を定義します。この値は、Fuse Online ユーザーがエクステンションの .jar ファイルをインポートする際に Fuse Online に表示されます。
    • name: エクステンションの名前。この値は Fuse Online でエクステンション名として表示されます。Fuse Online の CustomizationsExtensions タブで、ユーザーは Fuse Online にアップロードされたエクステンションの名前と説明を確認できます。
    • Description: エクステンションの内容に関するオプションの説明。
    • version: エクステンションのバージョン。たとえば、これが最初のバージョンの場合、1.0 を入力します。バージョンを更新する場合は、1.1 または 2.0 を入力します。
  5. 作成する Fuse Online エクステンションの種類に Custom Connector を選択します。

    FuseOnlineExtWiz connector
  6. Finish をクリックします。

Red Hat CodeReady Studio の Project Explorer ビューに新しいプロジェクトが表示されます。これには、カスタムコネクターエクステンションの以下のファイルが含まれます。

  • src/main/resources/META-INF/syndesis フォルダー内のファイル:

    • 記述子ファイル: syndesis-extension-definition.json

      このファイルを編集して * トップレベルのグローバルプロパティー、コネクターアクション、およびアクションプロパティーを追加します。* Extension Id、Name、Version、または Description の値を変更します。

    • デフォルトのアイコンイメージファイル: icon.png

      必要に応じて、このファイルを独自のアイコンイメージ (PNG または SVG) ファイルに置き換えることができます。

  • Maven Project Object Model ファイル: pom.xml

    このファイルには、デフォルトのエクステンション依存関係を含む、プロジェクトをビルドするために Maven によって使用されるプロジェクトと設定詳細に関する情報が含まれます。このファイルを編集してカスタム依存関係を追加します。以下の例に示すように、Red Hat が提供する依存関係の範囲は provided です。

    <dependency>
        <groupId>io.syndesis.extension</groupId>
        <artifactId>extension-api</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-core</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <scope>provided</scope>
    </dependency>

10.3.2. カスタムコネクターのコードの作成

Fuse Online エクステンションプロジェクトを作成したら、Fuse Online ユーザーが提供した必要な機能の説明を基にして、カスタムコネクター要素を定義するコードを作成します。表10.1「カスタムコネクターの要素」の表は、Fuse Tooling で作成したカスタムコネクターの要素が Fuse Online の要素にどのように対処するかを示します。

表10.1 カスタムコネクターの要素

Fuse Tooling の要素Fuse Online の要素説明

グローバル (トップレベル) プロパティー

接続設定パラメーター

Fuse Online ユーザーがこのコネクターからコネクションを作成する場合、ユーザーはコネクションの設定の一部としてこのプロパティーの値を指定します。

アクション

コネクションアクション

Fuse Online では、このコネクターから作成されたコネクションの場合、Fuse Online ユーザーはこれらのアクションの 1 つを選択します。

アクションで定義されるプロパティー

アクション設定パラメーター

Fuse Online ユーザーがコネクションが実行するアクションを設定する場合、Fuse Online ユーザーはアクションの設定の一部としてこのプロパティーの値を指定します。

Fuse Online のカスタムコネクターを実装するコードを作成するには、以下を行います。

  1. Editor ビューで syndesis-extension-definition.json ファイルを開き、グローバルプロパティー、カスタムコネクターが実行できるアクション、および各アクションのプロパティーを定義するコードを作成します。

    グローバルプロパティー は、Fuse Online のコネクション設定パラメーターに対応しています。各 action プロパティーは Fuse Online コネクションアクションの設定パラメーターに対応します。Fuse Online では、ユーザーがカスタムコネクターを選択すると、Fuse Online は各コネクション設定パラメーターの値を要求します。カスタムコネクターは、OAuth プロトコルを使用するアプリケーションのカスタムコネクターであることがあります。この場合、OAuth クライアント ID のグローバルプロパティーと OAuth クライアントシークレットに別のグローバルプロパティーを指定してください。Fuse Online ユーザーは、このコネクターから作成されたコネクションに対して、これらのパラメーターの値を指定する必要があります。

    コネクターアクション は、ベースの Camel コンポーネントスキームを宣言します。

    New Fuse Online Extension Project ウィザードによって提供される例では、telegram Camel コンポーネントスキームを使用します。

    {
      "schemaVersion" : "v1",
      "name" : "Example Fuse Online Extension",
      "extensionId" : "fuse.online.extension.example",
      "version" : "1.0.0",
      "actions" : [ {
        "id" : "io.syndesis:telegram-chat-from-action",
        "name" : "Chat Messages",
        "description" : "Receive all messages sent to the chat bot",
        "descriptor" : {
          "componentScheme" : "telegram",
          "inputDataShape" : {
            "kind" : "none"
          },
          "outputDataShape" : {
            "kind" : "java",
            "type" : "org.apache.camel.component.telegram.model.IncomingMessage"
          },
          "configuredProperties" : {
            "type" : "bots"
          }
        },
        "actionType" : "connector",
        "pattern" : "From"
      }, {
        "id" : "io.syndesis:telegram-chat-to-action",
        "name" : "Send a chat Messages",
        "description" : "Send messages to the chat (through the bot).",
        "descriptor" : {
          "componentScheme" : "telegram",
          "inputDataShape" : {
            "kind" : "java",
            "type" : "java.lang.String"
          },
          "outputDataShape" : {
            "kind" : "none"
          },
          "propertyDefinitionSteps" : [ {
            "description" : "Chat id",
            "name" : "chatId",
            "properties" : {
              "chatId" : {
                "kind" : "parameter",
                "displayName" : "Chat Id",
                "type" : "string",
                "javaType" : "String",
                "description" : "The telegram's Chat Id, if not set will use CamelTelegramChatId from the incoming exchange."
              }
            }
          } ],
          "configuredProperties" : {
            "type" : "bots"
          }
        },
        "actionType" : "connector",
        "pattern" : "To"
      } ],
      "properties" : {
        "authorizationToken" : {
          "kind" : "property",
          "displayName" : "Authorization Token",
          "group" : "security",
          "label" : "security",
          "required" : true,
          "type" : "string",
          "javaType" : "java.lang.String",
          "secret" : true,
          "description" : "Telegram Bot Authorization Token"
        }
      }
    }
  2. カスタムコネクターに追加の依存関係が必要な場合は、その依存関係をプロジェクトの pom.xml ファイルに追加します。依存関係のデフォルトのスコープはランタイムです。Red Hat が提供する依存関係を追加する場合は、そのスコープを provided として定義します。以下に例を示します。

    <dependencies>
        <dependency>
              <groupId>org.apache.camel</groupId>
              <artifactId>camel-telegram</artifactId>
              <scope>provided</scope>
        </dependency>
          </dependencies>

カスタムコネクターのコードの作成が終了したら、「Fuse Online エクステンション JAR ファイルのビルド」の説明に従って .jar ファイルをビルドします。

10.4. カスタムステップの作成

Fuse Online エクステンションプロジェクトを作成したら、Fuse Online ユーザーが提供した必要な機能の説明を基にして、カスタムステップを定義するコードを作成します。単一のエクステンション内で複数のカスタムステップを定義できます。また、Camel ルートまたは Java Bean で各カスタムステップを定義できます。

10.4.1. カスタムステップの Fuse Online エクステンションプロジェクトの作成

Fuse Tooling Fuse Online エクステンションプロジェクトを作成するには、以下の手順に従います。

  1. Red Hat CodeReady Studio で NewProjectRed Hat FuseFuse Online Extension Project と選択します。

    New Fuse Online Extension Project ウィザードが開きます。

    FuseOnlineExtWiz page1
  2. プロジェクトの名前と場所を入力し、Next をクリックします。

    FuseOnlineExtWiz page2
  3. Fuse Online のバージョンを選択します。
  4. 以下のエクステンションの詳細を指定します。

    • ID: Fuse Online 環境で一意の値を定義します。この値は、Fuse Online ユーザーがエクステンションの .jar ファイルをインポートする際に Fuse Online に表示されます。
    • name: エクステンションの名前。この値は Fuse Online でエクステンション名として表示されます。Fuse Online の CustomizationsExtensions タブで、ユーザーは Fuse Online にアップロードされたエクステンションの名前と説明を確認できます。
    • Description: エクステンションの内容に関するオプションの説明。
    • version: エクステンションのバージョン。たとえば、これが最初のバージョンの場合、1.0 を入力します。バージョンを更新する場合は、1.1 または 2.0 を入力します。
  5. 作成する Fuse Online エクステンションの種類に Custom Step を選択します。
  6. カスタムステップのテンプレートを選択します。

    FuseOnlineExtWiz step
    • Camel route: サンプルの Camel ルートを提供します。
    • Java bean: サンプルの Java Bean を提供します。

      注記

      選択するテンプレートは、プロジェクトの出発点となります。同じエクステンション内で、Camel ルートに基づく 1 つまたは複数のカスタムステップと、Java Bean に基づく 1 つまたは複数の他のカスタムステップを作成する場合は、いずれかのテンプレートで開始し、他のタイプのカスタムステップに必要なファイルと依存関係を追加します。

  7. Finish をクリックします。

Red Hat CodeReady Studio の Project Explorer ビューに新しいプロジェクトが表示されます。これには、カスタムステップ用に選択したテンプレートに応じて、以下のファイルが含まれます。

  • src/main/resources/META-INF/syndesis フォルダー内のファイル:

    • 記述子ファイル: syndesis-extension-definition.json

      このファイルを編集して * 1 つまたは複数のアクションを追加します。.json ファイルのアクションが Fuse Online のカスタムステップになります。アクション要素では、.json ファイルのプロパティーが Fuse Online のステップ設定パラメーターになります。* Extension Id、Name、Version、または Description の値を変更します。

    • Camel ルートテンプレートの場合、Camel コンテキストファイル extensions/log-body-action.xml

      このファイルには、ログコンポーネントを含むサンプルルートが含まれます。このファイルの Camel ルートをカスタマイズします。

    • Java Bean テンプレートの場合、Java ファイル extensions/extension.java

      このファイルには、POJO ベースのロギングエクステンションのサンプルが含まれています。

  • Maven Project Object Model ファイル: pom.xml

    このファイルには、デフォルトのエクステンション依存関係を含む、プロジェクトをビルドするために Maven によって使用されるプロジェクトと設定詳細に関する情報が含まれます。このファイルを編集してカスタム依存関係を追加します。以下の例に示すように、Red Hat が提供する依存関係の範囲は provided です。

    <dependency>
        <groupId>io.syndesis.extension</groupId>
        <artifactId>extension-api</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-core</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <scope>provided</scope>
    </dependency>

10.4.2. カスタムステップのコード作成

Fuse Online エクステンションプロジェクトを作成したら、Fuse Online ユーザーが提供した必要な機能の説明を基にして、カスタムステップを定義するコードを作成します。

表10.2「カスタムステップの要素」は、Fuse Tooling で作成したカスタムステップの要素が Fuse Online の要素にどのように対処するかを示します。

表10.2 カスタムステップの要素

Fuse Tooling の要素Fuse Online の要素説明

アクション

カスタムステップ

Fuse Online では、ユーザーがステップエクステンションをインポートすると、Choose a step ページにカスタムステップが表示されます。

アクションで定義されるプロパティー

カスタムステップ設定パラメーター

Fuse Online では、ユーザーがカスタムステップを選択すると、Fuse Online は設定パラメーターの値を要求します。

Fuse Online のカスタムステップを実装するコードを作成するには、以下を行います。

  1. Camel ルートベースのステップの場合、extension.xml ファイルで、エクステンションの目的に対応するルートを作成します。各ルートのエントリーポイントは、ステップ 2 で説明されているように、syndesis-extension-definition.json ファイルで定義するエントリーポイントと一致する必要があります。

    Java Bean ベースのステップの場合は、java ファイルを編集します。

  2. syndesis-extension-definition.json ファイルで、アクションとそのプロパティーを定義するコードを作成します。各エントリーポイントの新規アクションが必要です。

    作成した各アクションは Fuse Online のカスタムステップに対応します。アクションごとに異なるタイプのコードを使用できます。つまり、あるアクションに Camel ルートを使用し、別のアクションに Java Bean を使用できます。

    各プロパティーは Fuse Online ステップの設定パラメーターに対応します。Fuse Online では、ユーザーがカスタムステップを選択すると、Fuse Online は設定パラメーターの値を要求します。たとえば、カスタムログステップには、ログに送信する情報量を示すレベルパラメーターが含まれる場合があります。

    エクステンションをアップロードし、そのカスタムステップをインテグレーションに追加した後に Fuse Online でユーザーが入力するプロパティーを含むエクステンションメタデータが含まれる .json ファイルのテンプレートは次のとおりです。

    {
      "actions": [
        {
          "actionType": "extension",
          "id": "${actionId}",
          "name": "Action Name",
          "description": "Action Description",
          "tags": [
               "xml"
          ],
          "descriptor": {
            "kind": "ENDPOINT|BEAN|STEP",
            "entrypoint": "direct:${actionId}",
            "inputDataShape": {
              "kind": "any"
            },
            "outputDataShape": {
              "kind": "any"
            },
            "propertyDefinitionSteps": []
          }
        }
      ],
      "tags": [
        "feature",
        "experimental"
      ]
    }
    注記

    本リリースでは、タグは無視されます。今後の使用するために確保されます。

  3. エクステンションの依存関係を編集するには、エディターで pom.xml ファイルを開きます。依存関係を追加する場合は、そのスコープを定義する必要があります。

カスタムステップのコード作成が終了したら、「Fuse Online エクステンション JAR ファイルのビルド」の説明に従って .jar ファイルをビルドします。

10.5. Fuse Online エクステンション JAR ファイルのビルド

エクステンションの .jar ファイルをビルドするには、以下を行います。

  1. Project Explorer ビューで、プロジェクトを右クリックします。
  2. コンテキストメニューから Run AsMaven clean verify を選択します。
  3. Console ビューで、ビルドの進捗をモニターできます。
  4. ビルドが完了したら、Project Explorer ビューでターゲットフォルダーを更新します (プロジェクトを選択して F5 キーを押します)。
  5. Project Explorer ビューでターゲットフォルダーを開き、生成された .jar ファイルを確認します。

    .jar ファイルの名前は Maven のデフォルト ${artifactId}-${version}.jar に従います。

    例: custom:step-camel-1.0.0.jar

    この .jar ファイルは、エクステンション、必要な依存関係、そのメタデータ (Extension Id、Name、Version、Tags、および Description) を定義します。以下に例を示します。

    {
        "schemaVersion" : "v1",
        "name" : "Example Fuse Online Extension",
        "description" : "Logs a message body with a prefix",
        "extensionId" : "fuse.online.extension.example",
        "version" : "1.0.0",
        "actions" : [ {
            "id" : "Log-body",
            "name" : "Log Body",
            "description" : "A simple xml Body Log with a prefix",
            "descriptor" : {
                "kind" : "ENDPOINT",
                "entrypoint" : "direct:log-xml",
                "resource" : "classpath:META-INF/syndesis/extensions/log-body-action.xml",
                "inputDataShape" : {
                    "kind" : "any"
                },
                "outputDataShape" : {
                    "kind" : "any"
                },
                "propertyDefinitionSteps" : [ {
                    "description" : "Define your Log message",
                    "name" : "Log Body",
                    "properties" : {
                        "prefix" : {
                            "componentProperty" : false,
                            "deprecated" : false,
                            "description" : "The Log body prefix message",
                            "displayName" : "Log Prefix",
                            "javaType" : "String",
                            "kind" : "parameter",
                            "required" : false,
                            "secret" : false,
                            "type" : "string"
                        }
                    }
                } ]
            },
            "tags" : [ "xml" ],
            "actionType" : "step"
        } ],
        "dependencies" : [ {
            "type" : "MAVEN",
            "id" : "io.syndesis.extension:extension-api:jar:1.3.0.fuse-000014"
        } ],
        "extensionType" : "Steps"
    }

10.6. JAR ファイルの Fuse Online ユーザーへの提供

Fuse Online ユーザーに以下の項目を提供します。

  • .jar ファイル
  • エクステンションを記述するドキュメント。ステップエクステンションの場合、ステップエクステンションの各アクションが入力として必要とする、または出力として提供するデータシェイプに関する情報が含まれます (データマッピング用)。

Fuse Online では、ユーザーは『Fuse Online でのアプリケーションの統合』の説明どおりに .jar ファイルをアップロードします。

第11章 新しい Camel XML ファイルの作成

概要

Apache Camel は、camelContext 要素が含まれる XML ファイルにルートを保存します。新しい Fuse Integration プロジェクトを作成すると、ツールは、デフォルトでプロジェクトの一部として Apache Camel コンテキスト (XML) ファイルを提供します。

必要なすべての事前設定の namespace およびテンプレート camelContext 要素が含まれる新しい Camel XML ファイルを追加することもできます。

手順

新しい Apache Camel コンテキストファイルをプロジェクトに追加するには、以下を実行します。

  1. メインメニューから FileNewCamel XML File を選択し、図11.1「Camel XML File ウィザード」に示したように Camel XML File ウィザードを開きます。

    図11.1 Camel XML File ウィザード

    Camel XML file wizard
  2. RouteContainer で新規ファイルの場所を入力するか、またはデフォルトを受け入れます。

    Browse… button をクリックして、適切な場所を検索できます。

    重要

    Spring フレームワークと OSGi Blueprint フレームワークでは、すべての Apache Camel ファイルをプロジェクトの META-INF または OSGI-INF フォルダーの特定の場所に配置する必要があります。

    • Spring: projectName/src/main/resources/META-INF/spring/
    • OSGi Blueprint: projectName/src/main/resources/OSGI-INF/blueprint/
  3. File Name に、新しいコンテキストファイルの名前を入力するか、デフォルト (camelContext.xml) を受け入れます。

    ファイル名にはスペースや特殊文字を使用できません。また、ファイル名は JVM 内で一意である必要があります。

  4. Framework でデフォルトを受け入れるか、ルートが使用するフレームワークを選択します。

    • Spring: (デフォルト) Spring コンテナー、OSGi 以外のコンテナーに、またはスタンドアロンアプリケーションとしてデプロイされるルート用
    • OSGi Blueprint: OSGi コンテナーにデプロイされるルート用
    • Routes: 読み込み既存の camelContext に追加できるルート用
  5. Finish をクリックします。

    新しいコンテキストファイルがプロジェクトに追加され、ルートエディターで開きます。

第12章 Camel バージョンの変更

Fuse ツールプロジェクトを使用する場合は、プロジェクトで使用される Camel バージョンを変更する必要がある場合があります。これは、より新しい Camel バージョンでサポートされる機能を使用する場合やコミュニティーバージョンを使用する場合に役立ちます。

プロジェクトが使用する Camel バージョンを変更するには、以下を実行します。

  1. Project Explorer で、Camel バージョンを変更するプロジェクトを右クリックし、ConfigureChange Camel Version を選択します。
  2. Change Camel Version ウィンドウで、Camel Version フィールドの右側にある下向きのキャレットをクリックして、利用可能な Camel バージョンを表示します。

    コミュニティーバージョンの Apache Camel を使用するには、そのバージョン番号 (例: 2.19.2) を入力します。

  3. 必要なバージョンを選択または入力して、Finish をクリックします。

Fuse Tooling は、選択したバージョンが利用可能であり、Fuse Tooling によってサポートされるかどうかを確認します。確認されると、Fuse Tooling は Camel バージョンを変更し、プロジェクトの更新された pom.xml ファイルを保存します。選択した Camel バージョンが利用できない、またはサポートされていない場合、エラーメッセージが表示されます。

pom.xml ファイルの <camel.version> 要素で、プロジェクトの Camel バージョンを確認できます。

第13章 既存の Maven プロジェクトのインポート

概要

たとえば、テンプレートとして使用する、またはアプリケーションの開発の出発点にするために、既存プロジェクトをインポートする場合があります。

たとえば、New Fuse Integration Project ウィザードは、例のソースとして以下の Github リポジトリーを参照します。

サンプルプロジェクトをダウンロードしたら、CodeReady Studio にインポートします。

手順

既存の Maven プロジェクトをインポートするには、以下を実行します。

  1. FileImportMavenExisting Maven Projects の順に選択し、Next をクリックします。
  2. Root Directory では、ダウンロードしたサンプルプロジェクトを含むフォルダーを選択します。
  3. Projects 一覧で、インポートするプロジェクトのチェックボックスをオンにして、Finish をクリックします。

パート II. ルーティングコンテキストのデバッグ

Camel デバッガーには、ローカルおよびリモートで実行しているルーティングコンテキストをデバッグするための多くの機能が含まれています

  • ルートエディターでのノードへの条件付きおよび無条件ブレークポイントの設定
  • デバッガーの自動起動および Debug パースペクティブへの切り替え
  • 実行中のルーティングコンテキストの操作

    • ブレークポイント間を切り替え、メッセージインスタンスの変数値を迅速に比較する
    • 対象の変数の値を調べ、変更する
    • 関心のある変数を監視リストに追加して、デバッグセッション全体で追跡する
    • その場でブレークポイントを無効および再度有効にする
    • ルーティングコンテキストランタイムでメッセージフローをグラフィカルに追跡する
    • コンソールログを検査し Camel およびデバッガーの動作を追跡する
注記

Camel デバッガーを実行する前に、ルートエディターのキャンバスに表示される対象のノードにブレークポイントを設定する必要があります。その後、プロジェクトのルーティングコンテキストの .xml ファイルで Camel デバッガーを実行し、そのコンテキスト内のロジックエラーを見つけ、修正できます。Camel デバッガーを呼び出すと、デバッグモードでルーティングコンテキストが実行され、Debug パースペクティブが開きます。

第14章 ブレークポイントの設定

概要

ブレークポイントを設定するには、ルートエディターの Design タブでプロジェクトのルーティングコンテキストの .xml ファイルを開く必要があります。

Camel デバッガーは、2 種類のブレークポイントをサポートします。

  • 無条件ブレークポイント: デバッグセッション中に遭遇すると必ずトリガーされる
  • 条件付きブレークポイント: デバッグセッション中にブレークポイントの指定条件を満たす場合にのみトリガーされる
注記

コンシューマーエンドポイントまたは when もしくは otherwise ノードにブレークポイントを設定することはできません。

無条件ブレークポイントの設定

Design タブのキャンバスにルーティングコンテキストが表示された状態で、以下を行います。

  1. デバッグセッション中に状態を検査するノードを選択します。
  2. red dot アイコンをクリックして、無条件ブレークポイントを設定します。
  3. 無条件ブレークポイントを設定するノードごとにこの手順を繰り返します。

条件付きブレークポイントの設定

Design タブのキャンバスにルーティングコンテキストが表示された状態で、以下を行います。

  1. デバッグセッション中に状態を検査するノードを選択します。
  2. yellow dot アイコンをクリックして、条件付きブレークポイントを設定し、Edit the condition and language of your breakpoint… ダイアログを開きます。

    debug CondBPCnfg
  3. 言語 ドロップダウンメニューをクリックし、ブレークポイントをトリガーする条件を作成するために使用する式言語を選択します。

    Fuse Tooling は 24 の式言語をサポートします。これらの言語の一部は、条件式を作成するための変数を提供します。

  4. Variables をクリックし、選択した言語でサポートされる変数の一覧を表示します。

    一覧が表示されたら、1 つまたは複数の変数を順に選択し、ブレークポイントをトリガーするための条件を作成します。Condition テキストボックスに、選択した変数が表示されます。

    expressLangNoVars が表示された場合には、Condition テキストボックスに式を直接入力します。

  5. 条件付きブレークポイントを設定するノードごとに、ステップ [condBpFirst] から [condBpLast] の手順を繰り返します。

ブレークポイントの無効化

ブレークポイントを一時的に無効にしてそのままにして、後で再度有効にすることができます。 resume co ボタンは、デバッグセッション中に無効にしたブレークポイントをスキップします。

ブレークポイントを無効にするには、キャンバスのノードを選択し、 gray dot アイコンをクリックします。ブレークポイントはグレーに切り替わり、無効になっていることを示します。

無効にしたブレークポイントを有効にするには、キャンバスのノードを選択し、 green dot アイコンをクリックします。無効にされたブレークポイントが条件付きか無条件かによって、それぞれ黄色または赤に変わり、再度有効になっていることを示します。

注記

デバッグセッション中にブレークポイントを無効にし、再度有効にすることもできます。詳細は「19章実行中のコンテキストのブレークポイントの無効化」を参照してください。

ブレークポイントの削除

個々のブレークポイントやすべてのブレークポイントを削除できます。

  • 個別のブレークポイントを削除するには、ルートコンテナーでブレークポイントを削除するノードを選択し、その delete bp アイコンをクリックします。
  • 特定のルートにあるすべてのブレークポイントを削除するには、対象のルートのコンテナーを右クリックし、 gray dot Delete all breakpoints を選択します。
  • すべてのルートですべてのブレークポイントを削除するには、キャンバスを右クリックして gray dot Delete all breakpoints を選択します。

第15章 Camel デバッガーの実行

ローカルで実行しているルーティングコンテキストで Camel デバッガーを実行できます。

注記
  • リモートデバッグはサポートされなくなりました。リモートデバッグの場合は、Jolokia を設定し、Jolokia を使用して特定の JMX コネクションを作成する必要があります。
  • プロジェクトに Java コードが含まれる場合、標準の Eclipse Java デバッグツールを使用してデバッグを行うことができます。

Camel デバッガーを起動する前に、ルーティングコンテキストファイルにブレークポイントを設定する必要があります。

手順

  1. Project Explorer ビューで、デバッグするルーティングコンテキストファイルを選択します。
  2. 選択したファイルを右クリックしてコンテキストメニューを開き、Debug AsLocal Camel Context を選択します。

    Fuse Tooling は Camel ルートをビルドし、Apache Camel を開始し、ルーティングコンテキストを開始し、JMX を有効にして、ルーティングコンテキストのルートを開始し、ブレークポイントをノードに追加し、Camel デバッガーを有効にします。

    Camel デバッガーは、最初のブレークポイントに到達した (メッセージを受信した) 時点でルーティングコンテキストの実行を中断し、Debug パースペクティブを開くかどうかを示すように求めます。

    DBCnfrmSwitchToDBView
  3. Yes をクリックして Debug パースペクティブを開きます。

    Debug パースペクティブは、実行中のルーティングコンテキストの最初のブレークポイントで一時停止した状態のルーティングコンテキストで開きます。

    重要

    ブレークポイントは最大 5 分間保持され、デバッグが自動的に再開し、次のブレークポイントまたはルーティングコンテキストの最後に移動します。

    openDBPerspective
    注記

    コンソール出力を表示するには、パースペクティブを切り替えたときに Console ビューが開いていない場合は、ビューを開きます。

    注記

    デフォルトでは、Debug パースペクティブは Outline ビューを表示します。これは、実行中のルーティングコンテキストで複数のルートを切り替えるための手段を提供します。ルーティングコンテキストに単一のルートが含まれる場合、Outline ビューを閉じると他のビューを拡張するスペースが確保され、デバッガーの出力へのアクセスや検証が容易になります。

ルーティングコンテキストを介したメッセージエクスチェンジの進捗の監視

stepover co (ステップオーバー) をクリックし、ルーティングコンテキストで実行される次のノードにジャンプします。 resume co (再開) をクリックし、ルーティングコンテキストの次のアクティブなブレークポイントで実行を継続します。

debug StateChange

第16章 Camel デバッガーの停止

概要

Camel デバッガーを停止するには、デバッグセッションが終了したら、メニューバーの Terminate button を 1 回クリックします。それ例外の場合は、 Terminate button を 2 回クリックします。1 回目で現在実行しているノードスレッドを終了し、2 回目で Camel Context スレッドを終了します (どちらも Debug ビューに表示されます)。

+

注記

Camel デバッガーを終了すると、コンソールも終了しますが、出力はクリアされません。出力をクリアするには、コンソール ビューのメニューバーの clear co (コンソールのクリア) をクリックします。

Camel デバッガーの終了

プロジェクトのデバッグが完了したら、Debug パースペクティブを閉じて、ワークベンチ用により多くのスペースを確保します。

これを行うには、CodeReady Studio ツールバーの右側にある Debug perspective icon を右クリックし、Close を選択します。

第17章 変数値の変更

概要

Camel デバッガーがブレークポイントに達すると、Variables ビューは、ルーティングコンテキストのその時点で利用可能なすべての変数の値を表示します。一部の変数は編集可能で、値を変更できます。これにより、アプリケーションがプログラム状態の変更をどのように処理するかを確認できます。

注記

すべての変数が編集可能な訳ではありません。編集可能な変数のコンテキストメニューには、Change Value… オプションが表示されます。

手順

変数の値を変更するには、以下を実行します。

  1. 必要に応じて、デバッガーを起動します。「15章Camel デバッガーの実行」を参照してください。
  2. Variables ビューで、値を変更する変数を選択し、Value フィールドをクリックします。

    editBPvars1

    変数の value フィールドが薄い青の網掛け表示になり、編集モードであることを示します。

    注記

    または、変数を右クリックしてコンテキストメニューを開き、Change Value… ​ を選択して値を編集します。

  3. 新しい値を入力してから、Enter をクリックします。

    Console ビューには、INFO レベルのログエントリーが表示され、変数の値の変更が示されます (例: Breakpoint at node to1 is updating message header on exchangeId: ID-dhcp-97-16-bos-redhat-com-52574-1417298894070-0-2 with header: Destination and value: UNITED KINGDOM)。

  4. ブレークポイントを順に確認し、メッセージが想定どおりに処理されるかどうかを確認します。それぞれのステップで Debug ビュー、Variables ビュー、および コンソール の出力を確認します。

第18章 監視リストへの変数の追加

概要

監視リストに変数を追加して、特定の変数に集中し、ルーティングコンテキストを移動する際に値が予想通りに変更されるかどうかを確認できます。

手順

監視リストに変数を追加するには、以下を実行します。

  1. 必要に応じて、デバッガーを起動します。「15章Camel デバッガーの実行」を参照してください。
  2. Variables ビューで、追跡する変数を右クリックして、コンテキストメニューを開きます。

    UGaddVarWatchList
  3. Watch を選択します。

    Breakpoints ビューの横に、新しいビュー Expressions が開きます。Expressions ビューには、監視する変数の名前とその現在の値が表示されます。以下に例を示します。

    UGwatchList
  4. [watch1] および [watch2] を繰り返し、さらに変数を監視リストに追加します。

    注記

    追加した変数は、削除されるまで監視リストに残ります。変数の監視を停止するには、これをリストで右クリックしてコンテキストメニューを開き、Remove をクリックします。

  5. Expressions ビューを開いた状態で、ルーティングコンテキスト全体を確認し、ルートの各ステップに到達すると監視リストの各変数の値がどのように変化するかを追跡します。

第19章 実行中のコンテキストのブレークポイントの無効化

概要

Breakpoints ビューで、実行中のルーティングコンテキストのブレークポイントを無効にして再度有効にできます。

ブレークポイントが無効になっている場合、 resume co ボタンにより、デバッガーはデバッグセッション時にそのブレークポイントをスキップします。

Breakpoints ビューでのブレークポイントの無効化および有効化

設定したすべてのブレークポイントが有効な状態で Breakpoints ビューが開きます。

BPviewEnabled

ブレークポイントを無効にするには、そのチェックボックスの選択を解除します。

BPviewDisabled

無効にする各ブレークポイントについて、Console ビューに INFO レベルのログエントリーが表示され、無効になったことが示されます (例: Removing breakpoint log2)。同様に、再度有効にする各ブレークポイントについて、Console ビューに INFO レベルのログエントリーが表示され、有効になったことが示されます (例: Adding breakpoint log2)。

注記

無効にしたブレークポイントを再度有効にするには、そのチェックボックスをクリックします。Console ビューに INFO レベルのログエントリーが表示され、ブレークポイントが選択したノードに追加されたことが示されます。

パート III. アプリケーションの監視およびテスト

JMX Navigator ビューは、Fuse アプリケーションを監視およびテストするさまざまな方法を提供します。

注記

Fuse の管理』に記載のとおり、Fuse Console で Fuse アプリケーションを監視することもできます。

第20章 JMX Navigator

図20.1「JMX Navigator ビュー」に記載されている JMX Navigator ビューは、アプリケーションで実行しているすべてのプロセスを表示し、監視機能およびテスト機能との対話をすべて処理します。Fuse Integration パースペクティブのその他のエリアは、JMX Navigator ビューで選択したノードに関連する情報を表示します。JMX Navigator ビューでは、そのコンテキストメニューはルートトレースをアクティベートし、JMS 宛先を追加するために必要なコマンドを提供します。

図20.1 JMX Navigator ビュー

JMX Navigator view

デフォルトでは、JMX Navigator ビューはローカルマシンで実行しているすべての JMX サーバーを検出し、それらを以下のカテゴリーで一覧表示します。

  • ローカルプロセス
  • サーバーの接続
  • ユーザー定義の接続
注記

サーバーの JMX URL を使用して他の JMX サーバーを追加できます。詳細は「JMX サーバーの追加」を参照してください。

20.1. JMX でのプロセスの表示

概要

JMX Navigator ビューには、一連のツリーに既知のプロセスがすべて表示されます。各ツリーのルートは JMX サーバーです。

一覧の最初のツリーは、ローカルマシンで実行しているすべての JMX サーバーが含まれる特別な Local Processes ツリーです。JMX サーバーのいずれかに接続して、そのサーバーに含まれるプロセスを確認する必要があります。

ローカル JMX サーバーのプロセスの表示

ローカル JMX サーバーのプロセスに関する情報を表示するには、以下を実施します。

  1. JMX Navigator ビューで、Local Processes を展開します。
  2. Local Processes で、最上位エントリーの 1 つをダブルクリックして接続します。
  3. エントリーの横に表示される expansion arrow アイコンをクリックし、JVM で実行されているコンポーネントの一覧を表示します。

別の JMX サーバーのプロセスの表示

別の JMX サーバーのプロセスに関する情報を表示するには、以下を実施します。

  1. JMX Navigator ビューに「JMX サーバーの追加」を実施します。
  2. JMX Navigator ビューで、エントリーの横にある expansion arrow アイコンを使用してサーバーのエントリーを展開します。これにより、JVM で実行されている JMX サーバーのコンポーネントの一覧が表示されます。

20.2. JMX サーバーの追加

概要

JMX Navigator ビューのツリーの Local Processes ブランチに、すべてのローカル JMX サーバーの一覧が表示されます。他のマシンにデプロイされたコンポーネントを確認するには、特定の JMX サーバーに接続する必要がある場合があります。

JMX サーバーを追加するには、追加するサーバーの JMX URL を知っている必要があります。

手順

JMX サーバーを JMX Navigator ビューに追加するには、以下を実施します。

  1. JMX Navigator ビューで、New Connection new server wiz をクリックします。
  2. Create a new JMX connection ウィザードで、Default JMX Connection を選択します。
  3. Next をクリックします。
  4. Advanced タブを選択します。
  5. Name フィールドに、JMX サーバーの名前を入力します。

    名前は任意の文字列にすることができます。これは、JMX Navigator ツリーのエントリーにラベルを付けるために使用されます。

  6. JMX URL フィールドにサーバーの JMX URL を入力します。
  7. JMX サーバーで認証が必要な場合は、Username および Password フィールドにユーザー名とパスワードを入力します。
  8. Finish をクリックします。

    新しい JMX サーバーは、User-Defined Connections ツリーのブランチとして表示されます。

第21章 コンポーネントの JMX 統計値の表示

概要

ツールは、Fuse コンポーネントによって報告されるすべての JMX 統計値を収集し、Properties ビューに表示します。この統計情報により、インテグレーションアプリケーションで何が発生しているかを正確に把握することができます。

JMX 統計値は、PropertiesProcessor、および Profile の 3 つのカテゴリーに分類されます。

手順

Fuse コンポーネントの統計値を表示するには、以下を行います。

  1. JMX Navigator ビューで、コンポーネントのノードを見つけます。

    低レベルのコンポーネントを特定するには、ツリーのノードを展開する必要がある場合があります。

  2. 統計値を確認する Fuse コンポーネントのノードを選択します。
  3. Properties ビューを開きます。
  4. Properties ページには、選択したコンポーネントの JMX プロパティーが表示されます。

    JMXchoiceNodeProps
  5. Processors をクリックし、選択したコンポーネントのエクスチェンジメトリクスを確認します。

    JMXchoiceNodeProcs
  6. Profile をクリックし、選択したノードおよびそのサブノードのメッセージメトリクスを確認します。

    JMXchoiceNodeProfile

第22章 メッセージの閲覧

概要

分散環境でアプリケーションをデバッグする主要なツールは、アプリケーション内の JMS 宛先およびルートエンドポイントに保存されているすべてのメッセージを確認することです。ツールは、以下の項目を参照できます。

  • JMS 宛先
  • JMS ルーティングエンドポイント
  • Apache Camel ルーティングエンドポイント
  • SEDA ルーティングエンドポイント
  • ルーティングエンドポイントの参照
  • モックルーティングエンドポイント
  • VM ルーティングエンドポイント
  • データセットルーティングエンドポイント

手順

メッセージを参照するには、以下を実行します。

  1. JMX Navigator ビューで、閲覧する JMS 宛先またはエンドポイントを選択します。

    メッセージのリストが Messages ビューに表示されます。

  2. Messages ビューで、検査する個別のメッセージを選択します。

    browseMsgView

    メッセージの詳細とコンテンツは、Properties ビューに表示されます。

    browseMsgPropertiesV

第23章 ルートのトレース

多くの場合、ルートをデバッグするには、2 つの問題のいずれかを解決する必要があります。

  • メッセージが不適切に変換された。
  • メッセージが宛先エンドポイントに到達できなかった。

ルートを通して 1 つまたは複数のテストメッセージを追跡することは、このような問題のソースを検出する最も簡単な方法です。

ツールのルートトレース機能を使用すると、メッセージがルートを通過するパスをモニタリングして、プロセッサーからプロセッサーに移動するときにメッセージがどのように変換されるかを確認することができます。

Diagram ビューはルートのグラフィカル表現を表示し、メッセージがルートを通過するパスを表示できます。ルート内の各プロセッサーでは、ルート起動以降に処理された全メッセージの平均処理時間 (ミリ秒単位) とルート起動以降に処理されたメッセージの数も表示します。

Messages ビューは、JMX Navigator ツリーで選択した JMS 宛先またはルートエンドポイントによって処理されたメッセージを表示します。Messages ビューで個別のメッセージトレースを選択すると、Properties ビューでメッセージの完全詳細と内容が表示され、Diagram ビューで対応するノードが強調表示されます。

ルートを通過するメッセージのトレースには、以下のステップが必要です。

23.1. ルートトレースのテストメッセージの作成

概要

ルートトレースは、あらゆる種類のメッセージ構造で動作します。Fuse Message ウィザードは空の .xml メッセージを作成し、任意のメッセージ構造を設定することができます。

注記

テストメッセージを保存するフォルダーが存在しない場合は、メッセージを作成する前にフォルダーを作成する必要があります。

テストメッセージを保存する新しいフォルダーの作成

新しいフォルダーを作成するには、以下を行います。

  1. Project Explorer ビューでプロジェクトルートを右クリックし、コンテキストメニューを開きます。
  2. NewFolder を選択して New Folder ウィザードを開きます。

    Enter or select the parent folder フィールドにプロジェクトルートが表示されます。

  3. プロジェクトの階層のグラフィック表現でノードを展開し、親フォルダーとして使用するノードを選択します。
  4. Folder name フィールドに新しいフォルダーの名前を入力します。
  5. Finish をクリックします。

    Project Explorer ビューの選択した親フォルダーの下に、新しいフォルダーが表示されます。

    注記

    新しいフォルダーが表示されない場合は、親フォルダーを右クリックし、Refresh を選択します。

テストメッセージの作成

テストメッセージを作成するには、以下を実行します。

  1. Project Explorer ビューでプロジェクトを右クリックし、コンテキストメニューを開きます。
  2. NewFuse Message を選択して、New File ウィザードを開きます。
  3. プロジェクトの階層のグラフィック表現でノードを展開し、新しいテストメッセージを保存するフォルダーノードを選択します。
  4. File name フィールドにメッセージの名前を入力するか、デフォルト (message.xml) を受け入れます。
  5. Finish をクリックします。

    XML エディターで新しいメッセージが開きます。

  6. メッセージコンテンツ (本文とヘッダーテキストの両方) を入力します。

    注記

    入力したヘッダーテキストによっては、No grammar constraints (DTD or XML Schema) referenced in the document という警告が表示されます。この警告は無視しても問題ありません。

23.2. ルートトレースのアクティブ化

概要

ルーティングコンテキストを移動するメッセージを追跡するためには、そのルーティングコンテキストのルートトレースをアクティベートする必要があります。

手順

ルーティングコンテキストでトレースをアクティベートするには、以下を行います。

  1. JMX Navigator ビューで、トレースを開始する実行中のルーティングコンテキストを選択します。

    注記

    コンテキスト内の任意のルートを選択して、コンテキスト全体でトレースを開始できます。

  2. 選択したルーティングコンテキストを右クリックしてコンテキストメニューを開き、Start Tracing を選択してトレースを開始します。

    コンテキストメニューで Stop Tracing Context が有効になっていたら、トレーシングはすでにアクティブになっています。

23.3. ルーティングコンテキストを移動するメッセージのトレース

概要

ルーティングコンテキストで何が起こっているかを確認する方法として、経路に沿って各停止時にメッセージが何が起こっているかを調べることが最適な方法です。ツールは、実行中のルーティングコンテキストにメッセージをドロップし、メッセージが通過するパスをトレースするメカニズムを提供します。

手順

ルーティングコンテキストを移動するメッセージをトレースするには、以下を実行します。

  1. 「ルートトレースのテストメッセージの作成」の説明に従って、1 つまたは複数のテストメッセージを作成します。
  2. Project Explorer ビューでプロジェクトの Camel コンテキストファイルを右クリックし、コンテキストメニューを開き、Run AsLocal Camel Context (without Tests) を選択します。

    注記

    プロジェクトの包括的な JUnit テストを作成していない限り、これを Local Camel Context として実行しないでください。

  3. 「ルートトレースのアクティブ化」で説明されているように、実行中のルーティングコンテキストのトレースをアクティベートします。
  4. Project Explorer ビューから JMX Navigator ビューのルーティングコンテキストの開始点に、テストメッセージの 1 つをドラッグします。
  5. JMX Navigator ビューで、トレースされるルーティングコンテキストを選択します。

    ツールは、Messages ビューに追跡されたコンテキストの各段階でメッセージを表すメッセージインスタンスを反映させます。

    Diagram ビューは、選択したルーティングコンテキストのグラフィック表示を表示します。

  6. Messages ビューで、メッセージインスタンスのいずれかを選択します。

    Properties ビューには、メッセージインスタンスの詳細およびコンテンツが表示されます。

    Diagram ビューでは、選択したメッセージインスタンスに対応するルートステップが強調表示されます。ルートステップがプロセスステップの場合、ツールは終了パスをタイミングと処理メトリクスでタグ付けします。

  7. 必要に応じて、この手順を繰り返します。

23.4. ルートトレースの非アクティブ化

概要

ルーティングコンテキストのルートのデバッグが完了したら、トレースを非アクティブにする必要があります。

重要

トレースを非アクティブ化すると、トレースが終了し、ルーティングコンテキストのすべてのルートの追跡データを廃棄します。つまり、過去のトレースセッションを確認できないことを意味します。

手順

ルーティングコンテキストのトレースを停止するには、以下を実行します。

  1. JMX Navigator ビューで、トレースを非アクティブにする実行中のルーティングコンテキストを選択します。

    注記

    コンテキスト内の任意のルートを選択して、コンテキストのトレースを停止できます。

  2. 選択したルーティングコンテキストを右クリックしてコンテキストメニューを開き、Stop Tracing Context を選択します。

    Start Tracing がコンテキストメニューに表示されたら、ルーティングコンテキストのトレーシングはアクティベートされていません。

第24章 JMS 宛先の管理

JMX Navigator ビューで、Red Hat Fuse の実行中のインスタンスに JMS 宛先を追加または削除できます。

重要

これらの変更は、ブローカーを再起動すると元に戻ります。

24.1. JMS 宛先の追加

概要

新しいシナリオをテストする場合、新しい JMS 宛先をブローカーの 1 つに追加すると便利です。

手順

JMS 宛先をブローカーに追加するには、以下を実行します。

  1. JMX Navigator ビューで、宛先を追加するブローカーノードで Queues 子または Topics 子のどちらかを選択します。
  2. 選択したノードを右クリックしてコンテキストメニューを開き、Create Queue または Create Topic を選択します。
  3. Create Queue ダイアログまたは Create Topic ダイアログで、新しい宛先の名前を入力します。
  4. OK をクリックします。
  5. Queues または Topics 子のいずれかを右クリックし、Refresh を選択します。

    新しい宛先が、JMX Navigator ビューの Queues 子または Topics 子に表示されます。

24.2. JMS 宛先の削除

概要

フェイルオーバーのシナリオまたは処理の失敗に関連する他のシナリオをテストする場合は、JMS 宛先を簡単に削除できると役に立ちます。

手順

JMS 宛先を削除するには、以下を実行します。

  1. JMX Navigator ビューの Queues 子または Topics 子で、削除する JMS 宛先を選択します。
  2. 選択した宛先を右クリックしてコンテキストメニューを開き、Delete Queue/Topic を選択します。

第25章 ルーティングエンドポイントの管理

JMX Navigator ビューを使用すると、ルーティングエンドポイントを追加または削除できます。

重要

これらの変更は、ルーティングコンテキストを再起動すると元に戻ります。

25.1. ルーティングエンドポイントの追加

概要

新しいシナリオをテストする場合は、新しいエンドポイントをルーティングコンテキストに追加する場合があります。

手順

ルーティングコンテキストにエンドポイントを追加するには、以下を実行します。

  1. JMX Navigator ビューのルーティングコンテキストノードで、エンドポイントを追加する Endpoints 子を選択します。
  2. 選択したノードを右クリックしてコンテキストメニューを開き、Create Endpoint を選択します。
  3. Create Endpoint ダイアログで、新しいエンドポイントを定義する URL を入力します (例: file://target/messages/validOrders)。
  4. OK をクリックします。
  5. ルーティングコンテキストノードを右クリックし、Refresh を選択します。

    JMX Navigator ビューの Endpoints ノードのエンドポイントのタイプに対応するフォルダー (例: file) に、新しい宛先が表示されます。

25.2. ルーティングエンドポイントの削除

概要

フェイルオーバーのシナリオまたは処理の失敗に関連する他のシナリオをテストする場合は、ルーティングコンテキストからエンドポイントを削除できると役に立ちます。

手順

ルーティングエンドポイントを削除するには、以下を実行します。

  1. JMX Navigator ビューで、削除するエンドポイントを選択します。
  2. 選択したエンドポイントを右クリックしてコンテキストメニューを開き、Delete Endpoint を選択します。

    ツールはエンドポイントを削除します。

  3. 削除されたエンドポイントをビューから削除するには、Endpoints ノードを右クリックし、Refresh を選択します。

    エンドポイントは JMX Navigator ビューから消えます。

    注記

    プロジェクトを再実行せずに Project Explorer ビューからエンドポイントノードを削除するには、ノードを右クリックして Delete を選択して、これを明示的に削除する必要があります。ビューから削除するには、プロジェクトの表示を更新します。

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

概要

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

そのためには、以下の手順を実施します。

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

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

  • ルートエディターで、ルーティングコンテキストのメモリー内モデルに変更を加えます。同時に、関連するノードにブレークポイントを設定し、Camel デバッガーおよびそのすべての機能を使用することができます。

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

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

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

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

    ルートエディターは、ルーティングコンテキストのメモリー内モデル Remote CamelContext:<contextId> を開き、コンテキスト内のすべてのルートを表示します。以下に例を示します。

    CanvasPalette
    注記

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

  3. 2章ルートエディターでのルーティングコンテキストの編集の説明に従ってルートを編集して、FileSave を選択し、メモリー内モデルに加えた変更を保存し、実行中のルーティングコンテキストを更新します。
  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 をクリックし、ルーティングコンテキストファイルのメモリー内モデルを閉じます。

第27章 ルーティングコンテキストの管理

JMX Navigator ビューを使用すると、実行中のルーティングコンテキストを一時停止および再開できます。

27.1. ルーティングコンテキストの操作の一時停止

概要

ツールを使用すると、JMX Navigator ビューのルーティングコンテキストの操作を一時停止できます。コンテキスト操作を一時停止すると、コンテキスト内のすべてのルートを正常にシャットダウンしますが、ルートがメモリーにロードされた状態を維持し、操作を再開できるようにします。

手順

ルーティングコンテキストの操作を一時停止するには、以下を実行します。

  1. JMX Navigator ビューで、プロジェクトの Camel Contexts ノードを展開し、オペレーションを一時停止するルーティングコンテキストを選択します。
  2. 選択したルーティングコンテキストを右クリックしてコンテキストメニューを開き、Suspend Camel Context を選択します。

    注記

    Resume Camel Context がコンテキストメニューに表示されていたら、コンテキストの操作はすでに一時停止されています。

27.2. ルーティングコンテキストの操作の再開

概要

ツールを使用すると、JMX Navigator ビューの一時停止したルーティングコンテキストの操作を再開できます。コンテキストの操作を再開すると、そのルートがすべて再起動し、メッセージを処理できるようになります。

手順

ルーティングコンテキストの操作を再開するには、以下を実行します。

  1. JMX Navigator ビューで、プロジェクトの Camel Contexts ノードを展開し、オペレーションを再開するルーティングコンテキストを選択します。
  2. 選択したコンテキストを右クリックしてコンテキストメニューを開き、Resume Camel Context を選択します。

    注記

    コンテキストメニューに Suspend Camel Context が表示されたら、コンテキストとそのルートは実行中です。

パート IV. アプリケーションのコンテナーへのパブリッシュ

Fuse Integration プロジェクトをサーバーコンテナーにパブリッシュするには、最初にサーバーとそのランタイム定義をツールの Servers リストに追加する必要があります。次に、プロジェクトをサーバーランタイムに割り当て、そのプロジェクトのパブリッシュオプションを設定します。

第28章 サーバーの管理

Servers ビューを使用すると、Red Hat CodeReady Studio 環境でサーバーを実行および管理できます。

注記

Camel プロジェクトを Red Hat Fuse にパブリッシュするステップバイステップの手順は、「29章Fuse Integration プロジェクトのサーバーへのパブリッシュ」を参照してください。

28.1. サーバーの追加

概要

ツールでサーバーを管理するには、サーバーを Servers リストに追加する必要があります。追加された後、サーバーは Servers ビューに表示され、接続して Fuse Integration プロジェクトをパブリッシュできます。

注記

Red Hat Fuse サーバーを追加する場合は、その installDir/etc/users.properties ファイルを編集し、user=password,role の形式でユーザー情報を追加して、ツールがサーバーへの SSH 接続を確立できるようにすることが推奨されます。

手順

新しいサーバーを Servers ビューに追加する方法は 3 つあります。

  • Servers ビューで No servers are available. Click this link to create a new server… をクリックします。

    注記

    このリンクは、サーバーが定義されていない場合にのみ、Servers ビューに表示されます。プロジェクトを最初に作成した際にサーバーを定義して追加した場合には、Servers ビューにそのサーバーが表示されます。

  • Servers ビューで右クリックしてコンテキストメニューを開き、NewServer を選択します。
  • メニューバーで FileNewOtherServerServer の順に選択します。

Define a New Server ダイアログで、新しいサーバーを追加するには、以下を実行します。

  1. Red Hat JBoss Middleware ノードを展開して、利用可能なサーバーオプションの一覧を表示します。

    List of servers
  2. 追加するサーバーをクリックします。
  3. Server’s host name フィールドで、デフォルト (localhost) を受け入れます。

    注記

    localhost のアドレスは 0.0.0.0 です。

  4. Server name フィールドで、デフォルトを受け入れるか、ランタイムサーバーの別の名前を入力します。
  5. Server runtime environment で、デフォルトを受け入れるか、Add をクリックしてサーバーのランタイム定義ページを開きます。

    Add server
    注記

    サーバーがマシンにインストールされていない場合は、Download and install runtime をクリックしサイトのダウンロード手順に従って、ここでサーバーをインストールできます。サイトによっては、ダウンロードプロセスを続行する前に、有効なクレデンシャルを提供する必要がある場合があります。

  6. インストール時の Name にデフォルトを受け入れます。
  7. Home Directory フィールドに、サーバーランタイムがインストールされているパスを入力するか、Browse クリックして探して選択します。
  8. Execution Environment の横にあるドロップダウンメニューから、ランタイム JRE を選択します。

    希望するバージョンがリストに表示されない場合は、Environments をクリックして表示されるリストからバージョンを選択します。選択する JRE バージョンがマシンにインストールされている必要があります。

    注記

    必要な Java バージョンについては、「Red Hat Fuse でサポートされる構成」を参照してください。

  9. Alternate JRE オプションはそのままにしておきます。
  10. Next をクリックしてサーバーのランタイム定義を保存し、その Configuration details ページを開きます。

    UGJBFserverConfigDetails
  11. SSH Port のデフォルト (8101) を受け入れます。

    ランタイムは SSH ポートを使用して、サーバーの Karaf シェルに接続します。このデフォルトがご自分のセットアップに対して正しくない場合は、サーバーの installDir/etc/org.apache.karaf.shell.cfg ファイルを確認して正しいポート番号を検出できます。

  12. User Name フィールドに、サーバーへのログインに使用される名前を入力します。

    Red Hat Fuse では、これは Red Hat Fuse の installDir/etc/users.properties ファイルに保存されているユーザー名です。

    注記

    /etc/users.properties ファイルのデフォルトのユーザーがアクティベートされている場合 (アンコメント)、[servCnfigDetails] に記載のとおり、ツールは User Name および Password フィールドにデフォルトユーザーの名前およびパスワードを自動入力します。

    ユーザーが設定されていない場合は、user=password,role のフォーマットを使用してそのファイルにユーザーを追加するか (例: joe=secret,Administrator)、karaf jaas コマンドセットを使用して設定できます。

    • jaas:realms: レルムを一覧表示します。
    • jaas:manage --index 1: 最初の (サーバー) レルムを編集します。
    • jaas:useradd <username> <password>: ユーザーと関連パスワードを追加します。
    • jaas:roleadd <username> Administrator: 新規ユーザーのロールを指定します。
    • jaas:update: 新しいユーザー情報を使用してレルムを更新します。

    サーバーに対して jaas レルムがすでに選択されている場合は、コマンド JBossFuse:karaf@root>jaas:users を実行してユーザー名を検出できます。

  13. Password フィールドに、User Name がサーバーにログインするのに必要なパスワードを入力します。
  14. Finish をクリックしてサーバー設定の詳細を保存します。

    サーバーランタイムが Servers ビューに表示されます。

    サーバーノードを展開すると、サーバーの JMX ノードが表示されます。

    UGnewServrInstalledExpand

28.2. サーバーの起動

概要

設定したサーバーを起動すると、ツールにより、Terminal ビューにサーバーのリモート管理コンソールが開きます。これにより、アプリケーションのテスト中にコンテナーを簡単に管理できます。

手順

サーバーを起動するには、以下を実行します。

  1. Servers ビューで、起動するサーバーを選択します。
  2. run button をクリックします。

    • Console ビューが開き、コンテナーの起動中に待機用に求めるメッセージが表示されます。以下に例を示します。

      UGservrStartConsoleV
      注記

      リモートコンソールを開くためのユーザー名とパスワードを適切に設定していない場合は、適切な認証情報を入力するように求めるダイアログが表示されます。「サーバーの追加」を参照してください。

    • コンテナーの起動後、Terminal ビューが開き、コンテナーの管理コンソールが表示されます。
    • Servers ビューに稼働中のサーバーが表示されます。

      UGservrStartServrsView
    • 稼働中のサーバーは、JMX Navigator ビューの Server Connections にも表示されます。

      UGservStartJMXNavView
      注記

      サーバーがツールと同じマシンで実行されている場合、サーバーには Local Processes の下にエントリーもあります。

28.3. 稼働中のサーバーへの接続

概要

設定したサーバーを起動すると、Servers ビューと、JMX Navigator ビューの Server Connections ノードに表示されます。サーバーを表示するには、Server Connections ノードを展開する必要がある場合があります。

Fuse プロジェクトアプリケーションを稼働中のサーバーにパブリッシュしてテストするには、最初にそのサーバーに接続する必要があります。Servers ビューまたは JMX Navigator ビューのいずれかで、稼働中のサーバーに接続できます。

注記

Servers ビューと JMX Navigator ビューは、サーバーの接続に関して同期されます。つまり、Servers ビューでサーバーに接続すると、JMX Navigator ビューでも接続されます。その逆も同様です。

Servers ビューでの稼働中のサーバーへの接続

  1. Servers ビューでサーバーランタイムを展開し、JMX[Disconnected] ノードを表示します。
  2. JMX[Disconnected] ノードをダブルクリックします。

    UGservrStartServrsView

JMX Navigator ビューでの稼働中のサーバーへの接続

  1. JMX Navigator ビューの Server Connections ノードで、接続するサーバーを選択します。
  2. 選択したサーバーをダブルクリックします。

    UGservConnectJMXNav

接続したサーバーにインストールされているバンドルの表示

  1. Servers ビューまたは JMX Navigator ビューのいずれかで、サーバーランタイムツリーを展開して Bundles ノードを表示し、これを選択します。
  2. ツールは、Properties ビューにサーバーにインストールされているバンドルのリストを反映させます。

    UGservBundles

    Properties ビューの Search ツールを使用すると、Symbolic Name または Identifier (把握している場合) でバンドルを検索できます。シンボリック名または識別子の入力に合わせて一覧が更新され、現在の検索文字列に一致するバンドルのみが表示されます。

    注記

    または、Terminal ビューで osgi:list コマンドを実行し、Red Hat Fuse サーバーランタイムにインストールされているバンドルに関する生成されたリストを表示することもできます。ツールは、osgi:list コマンドが表示する OSGi バンドルに異なる命名スキームを使用します。

    プロジェクトの pom.xml ファイルの <build> セクションで、バンドルのシンボリック名およびそのバンドル名 (OSGi) が maven-bundle-plugin エントリーに一覧表示されます。詳細は「プロジェクトがサーバーにパブリッシュされたことの確認」を参照してください。

28.4. サーバーからの切断

概要

アプリケーションのテストを完了したら、サーバーを停止せずにサーバーとの接続を解除できます。

注記

Servers ビューと JMX Navigator ビューは、サーバーの接続に関して同期されます。つまり、Servers ビューでサーバーから切断すると、JMX Navigator ビューでも切断されます。その逆も同様です。

Servers ビューでのサーバーからの切断

  1. Servers ビューでサーバーランタイムを展開し、JMX[Connected] ノードを表示します。
  2. JMX[Connected] ノードを右クリックしてコンテキストメニューを開き、Disconnect を選択します。

    Disconnect

JMX Navigator ビューでのサーバーからの切断

  1. JMX Navigator ビューの Server Connections で、接続を解除するサーバーを選択します。
  2. 選択したサーバーを右クリックしてコンテキストメニューを開き、Disconnect を選択します。

    Disconnect JMX

28.5. サーバーの停止

概要

Servers ビューまたは Terminal ビューのサーバーのリモートコンソールで、サーバーをシャットダウンすることができます。

Servers ビューの使用

サーバーを停止するには、以下を実行します。

  1. Servers ビューで停止するサーバーを選択します。
  2. stop button をクリックします。

リモートコンソールの使用

サーバーを停止するには、以下を実行します。

  1. サーバーのリモートコンソールをホストしている Terminal ビューを開きます。
  2. CTRL+D を押します。

28.6. サーバーの削除

概要

設定したサーバーの操作を完了した場合、またはサーバーの設定を誤設定した場合は、そのサーバーとその設定を削除することができます。

まず、Servers ビューまたは JMX Navigator ビューからサーバーを削除します。次にサーバーの設定を削除します。

サーバーの削除

  1. Servers ビューで、削除するサーバーを右クリックし、コンテキストメニューを開きます。
  2. Delete を選択します。
  3. OK をクリックします。

サーバーの設定の削除

  1. メニューバーで、CodeReady StudioPreferencesServer と選択します。

    注記

    Linux および Windows マシンでは、WindowPreferences と選択します。

  2. Server フォルダーを展開し、Runtime Environments を選択して Server Runtime Environments ページを開きます。
  3. リストから、以前に Servers ビューから削除したサーバーのランタイム環境を選択し、Remove をクリックします。
  4. OK をクリックします。

第29章 Fuse Integration プロジェクトのサーバーへのパブリッシュ

Eclipse パブリッシュメカニズムを使用して Fuse Integration プロジェクトをサーバーランタイムにデプロイします。そのためには、サーバーを定義し Fuse Integration パースペクティブの Servers ビューに追加する必要があります。ステップごとのデモンストレーションは、を参照してください。

概要

サポートされるサーバーを設定して、割り当てられた Fuse プロジェクトを自動的にパブリッシュすることや、パブリッシュコマンドを手動で呼び出す場合のみパブリッシュすることができます。

Servers ビューに追加された各サーバーランタイムには、設定、接続、およびパブリッシュの詳細が含まれる独自の Overview ページがあります。

UGservRuntimeOverviewTab

Publishing を展開して、サーバーランタイムパブリッシュオプションおよびデフォルト設定を表示する必要がある場合があります。

  • Never publish automatically: プロジェクトを手動でパブリッシュするには、このオプションを選択する必要があります。

    重要

    また、サーバーの Add and Remove ページで If server started, publish changes immediately オプションを無効にする必要もあります (詳細は、「Fuse プロジェクトの手動によるパブリッシュ」を参照してください)。

  • Automatically publish when resources change: (デフォルト) Fuse プロジェクトを自動的にパブリッシュする、またはプロジェクトに加えた変更を保存した時に自動的に再パブリッシュするには、このオプションを有効にします。プロジェクトがパブリッシュされるタイミングは、Publishing interval によります (デフォルトは 15 秒です)。
  • Automatically publish after a build event:  Fuse プロジェクトについては、Automatically publish when resources change と同様に機能します。

リソースの変更時の Fuse プロジェクトの自動パブリッシュ

サーバーランタイムのデフォルトのパブリッシュオプションは、Automatically publish when resources change です。

  1. 必要に応じて、Fuse プロジェクトをパブリッシュするサーバーランタイムを起動します。詳細は、「サーバーの起動」を参照してください。
  2. Servers ビューでサーバーランタイムをダブルクリックし、Overview ページを開きます。
  3. Publishing を展開し、Automatically publish when resources change を選択します。
  4. パブリッシュサイクルの間隔を増減するには、Publishing interval (in seconds) の横のラジオボタンを適切に上下にクリックします。
  5. Servers ビューでサーバーランタイムを右クリックし、コンテキストメニューを開き、Add and Remove を選択します。

    UGservAddRemove1

    パブリッシュに使用可能なすべてのリソースが Available 列に表示されます。

  6. リソース (この場合は CBRroute Fuseプロジェクト) をサーバーランタイムに割り当てるには、以下を実施します。

    • リソースをダブルクリックします。あるいは、
    • リソースを選択し、Add をクリックします。

      選択したリソースは Configured 列に移動します。

      UGservAddRemove2

      この段階では、割り当てられたリソースが実際にパブリッシュされる時間は、サーバーランタイムが実行中かどうか、および Publishing interval の異存によります。ただし、サーバーが停止している場合は、サーバーの起動後にプロジェクトを手動でパブリッシュする必要がある場合があります (詳細は「Fuse プロジェクトの手動によるパブリッシュ」を参照してください)。

  7. If server started, publish changes immediately オプションをクリックして有効にします。

    UGservAddRemove3

    このオプションを使用すると、Finish をクリックすると、設定したプロジェクトが直ちにパブリッシュされます。サーバーランタイムの Overview ページの Automatically publish when resources change オプションを使用すると、ローカルプロジェクトに加えられた変更が保存されるたびに、設定されたプロジェクトが再パブリッシュされます。

  8. Finish をクリックします。

    プロジェクトが Servers ビューのサーバーランタイムノードに表示され、サーバーランタイムのステータスが [Started,Publishing…] と報告されます。

    パブリッシュが完了すると、サーバーランタイムとプロジェクト両方のステータスが [Started,Synchronized] と報告されます。

    UGservPublishSynched
    注記

    サーバーランタイムの場合、Synchronized は、サーバー上のすべてのパブリッシュされたリソースがローカルのカウンターパートと同じであることを意味します。パブリッシュ済みのリソース場合は、Synchronized はローカルのカウンターパートと同じであることを意味します。

Fuse プロジェクトの手動によるパブリッシュ

  1. 必要に応じて、Fuse プロジェクトをパブリッシュするサーバーランタイムを起動します。詳細は、「サーバーの起動」を参照してください。
  2. Servers ビューでサーバーランタイムをダブルクリックし、Overview ページを開きます。
  3. Publishing を展開し、Never publish automatically を選択します。
  4. FileSave をクリックして、パブリッシュオプションの変更を保存します。
  5. Fuse プロジェクトがすでにサーバーランタイムに割り当てられている場合は、オプション If server started, publish changes immediately が無効になっているようにしてください。

    1. Servers ビューでサーバーランタイムを右クリックし、コンテキストメニューを開きます。
    2. Add and Remove… をクリックしてサーバーの Add および Remove ページを開きます。
    3. オプション If server started, publish changes immediately が有効な場合は無効にします。
    4. [finish] に進みます。
  6. Fuse プロジェクトがまだサーバーランタイムに割り当てられていない場合は、ここでプロジェクトを割り当てます。

    1. 「リソースの変更時の Fuse プロジェクトの自動パブリッシュ」[startAssignResource] から [stopAssignResource] に従います。
    2. If server started, publish changes immediately オプションを有効にしないでください。
  7. Finish をクリックします。

    プロジェクトが Servers ビューのサーバーランタイムノードに表示され、サーバーランタイムのステータスが [Started] と報告されます。

    UGservPublishSynched
  8. Servers ビューでプロジェクトのノードを右クリックします。この例では、CBRroute Fuse プロジェクトを選択してコンテキストメニューを開きます。

    UGassgnProjSrvViewCntxtMnu
  9. Full Publish を選択します。

    パブリッシュ操作中、サーバーランタイムとプロジェクト両方のステータスが [Started,Republish] と報告されます。

    パブリッシュが完了すると、サーバーランタイムとプロジェクト両方のステータスが [Started,Synchronized] と報告されます。

    注記

    ツールは、Incremental Publish オプションをサポートしません。Incremental Publish をクリックすると、完全なパブリッシュが実行されます。

プロジェクトがサーバーにパブリッシュされたことの確認

Fuse プロジェクトをサーバーランタイムにパブリッシュした後、サーバーに接続してプロジェクトのバンドルがインストールされたことを確認できます。

  1. サーバーランタイムに接続します。詳細は、「Servers ビューでの稼働中のサーバーへの接続」を参照してください。
  2. Servers ビューでサーバーランタイムツリーを展開し、Bundles ノードを表示し、これを選択します。

    ツールは、Properties ビューにサーバーにインストールされているバンドルのリストを反映させます。

    UGsrvVerifyPublishedProj
  3. プロジェクトのバンドルを見つけるには、リストの下部にスクロールするか、Properties ビューの Search ボックスにバンドルの Symbolic Name を入力します。バンドルの Symbolic Name は、作成時にプロジェクトに指定した名前です。

    注記

    または、Terminal ビューで osgi:list コマンドを実行し、Fuse サーバーランタイムにインストールされているバンドルに関する生成されたリストを表示することもできます。ツールは、osgi:list コマンドが表示する OSGi バンドルに異なる命名スキームを使用します。

    プロジェクトの pom.xml ファイルの <build> セクションで、バンドルのシンボリック名およびそのバンドル名 (OSGi) が maven-bundle-plugin エントリーに一覧表示されます。以下に例を示します。

    ugBundleNamesPomFile

付録A Fuse Integration パーステクティブ

Fuse Integration パースペクティブを使用して、インテグレーションアプリケーションを設計、監視、テスト、およびパブリッシュします。

Fuse Integration perspective

Fuse Integration パースペクティブは以下の方法で開くことができます。

  • 新しい Fuse Integration プロジェクトを作成する場合 (「1章新しい Fuse Integration プロジェクトの作成」を参照)、ツールによって Fuse Integration パースペクティブに切り替わります。
  • CodeReady Studio ツールバーの右側にある integration perspective をクリックします。ツールバーで integration perspective アイコンが利用できない場合は、 new persp をクリックし、利用可能なパースペクティブの一覧から Fuse Integration を選択します。
  • WindowPerspectiveOpen PerspectiveFuse Integration の順に選択します。

Fuse Integration パースペクティブは、9 つの主要なエリアで構成されます。

  • Project Explorer ビュー

    ツールに認識されているプロジェクトをすべて表示します。各プロジェクトを構成するすべてのアーティファクトを表示できます。Project Explorer ビューでは、Camel Contexts ノードにプロジェクトのすべてのルーティングコンテキストの .xml ファイルも表示されます。これにより、プロジェクトに含まれるルーティングコンテキストファイルを見つけ、開くことができます。Project Explorer ビューの各ルーティングコンテキストの .xml ファイルに、コンテキスト内で定義されたすべてのルートが表示されます。マルチルートコンテキストの場合、キャンバスの特定のルートにフォーカスできます。

    ProjectExplorerFIP
  • ルートエディター

    主な設計時ツールを提供し、以下の 3 つのタブで構成されます。

    • Design: ルートが構築される大きいグリッドエリアとパレットが表示されます。パレットから選択されたエンタープライズ統合パターン (EIP) と Camel コンポーネントは、キャンバスで接続されルートを形成します。

      CanvasPalette

      キャンバスはルートエディターのワークベンチで、作業のほとんどを行う場所です。接続された EIP と Camel コンポーネントで構成される 1 つまたは複数のルート (キャンバスに配置されるとノードと呼ばれる) をグラフィック表示します。

      キャンバスでノードを選択すると、Properties ビューに選択したノードに適用されるプロパティーが反映されるため、それらのプロパティーを編集できます。

      Palette には、ルートの構築に必要なパターンおよび Camel コンポーネントがすべて含まれ、機能に応じてこれらを ComponentsRoutingControl FlowTransformation、および Miscellaneous にグループ化します。

    • Source

      ルートエディターのキャンバスで構築されたルートの .xml ファイルの内容を表示します。

      Source タブに加えて Design タブで、ルーティングコンテキストを編集することができます。Source タブは、設定、コメント、または Bean を編集したりルーティングコンテキストファイルに追加したりする際に役立ちます。コンテンツアシスト機能は、設定ファイルの設定時に役立ちます。Source タブで Ctrl+Space を押して、プロジェクトに挿入可能な値の一覧を表示します。

      SourceView
    • Configurations

      共有設定 (グローバルエンドポイント、データ形式、Bean) をマルチルートルーティングコンテキストに追加する簡単な方法を提供します。詳細は「グローバルエンドポイント、データフォーマット、または Bean の追加」を参照してください。

      CnfigsVAddButton
    • REST

      Rest DSL コンポーネントのグラフィカルな表現を提供します。

      RESTtab
  • Properties ビュー

    キャンバスで選択したノードのプロパティーを表示します。

  • JMX Navigator ビュー

    JMX サーバーおよび、モニターするインフラストラクチャーを一覧表示します。これにより、JMX サーバーと、それらが監視するプロセスをブラウズできます。また、Red Hat プロセスのインスタンスも特定します。

    JMX Navigator ビューは、Fuse Integration パースペクティブのすべての監視およびテストアクティビティーを駆動します。Diagram ビュー、Properties ビュー、および Messages ビューに表示されるルートを決定し ます。また、ルートトレースのアクティベート、JMS 宛先の追加および削除、およびルートの開始および一時停止を行うメニューコマンドも提供します。また、メッセージをドラッグしてルートにドロップするターゲットでもあります。

    デフォルトでは、JMX Navigator ビューには、ローカルマシンで実行しているすべての Java プロセスが表示されます。必要に応じて JMX サーバーを追加して、他のマシンのインフラストラクチャーを表示できます。

  • Diagram ビュー

    JMX Navigator ビューで選択したノードを表すグラフィカルツリーを表示します。プロセス、サーバー、エンドポイント、またはその他のノードを選択すると、Diagram ビューには選択したノードがルートとその子/孫ブランチとして表示されます。

    ブローカーを選択すると、Diagram ビューには 3 つまでの子 (接続、トピック、およびキュー) が表示されます。また、設定された接続と宛先を孫として表示します。

    ルートを選択すると、Diagram ビューはルート内の全ノードを表示し、メッセージがルートを移動できる異なるパスを表示します。また、ルートトレースが有効な場合、ルートの各処理ステップのタイミングメトリクスも表示します。

  • Messages ビュー

    ルートトレースが有効な場合、選択した JMS 宛先または Apache Camel エンドポイントを通過したメッセージを一覧表示します。

    JMX Navigator ビューで JMS 宛先を選択すると、ビューには宛先にあるメッセージがすべて一覧表示されます。

    ルートトレースを有効にすると、Messages ビューはトレーシングの開始以降、ルート内のノードを通過した全メッセージを一覧表示します。Messages ビューを設定して、対象のデータだけを希望するシーケンスで表示することができます。

    Messages ビューのメッセージトレースを選択すると、その詳細 (メッセージボディーとすべてのメッセージヘッダー) が Properties ビューに表示されます。Diagram ビューでは、選択したメッセージトレースに関連付けられたルートのステップが強調表示されます。

  • Servers ビュー

    ツールが管理するサーバーの一覧を表示します。サーバーのランタイムの状態を表示し、サーバーの追加、起動、および停止、ならびにプロジェクトのサーバーへのパブリッシュを制御します。

  • Terminal ビュー

    接続したコンテナーのコマンドコンソールを表示します。Terminal ビューでコマンドを入力すると、コンテナーを制御できます。

  • Console ビュー

    最近実行したアクションのコンソール出力を表示します。

付録B Debug パースペクティブ

Debug パースペクティブを使用して、実行中の Camel コンテキストを監視およびデバッグします。

Camel Context debugger
  • Debug ビュー

    実行中の Camel コンテキストの場合、Debug ビューはデバッグスタックを表示します。

    Camel Context at service:jmx:rmi://jndi/rmi://localhost:1099/jmxrmi/camel エントリーの下に一覧表示される同じメッセージフロー内のブレークポイントを切り替えて、Variables ビュー内の変数の値を確認して比較できます。

    メッセージフローは固有のブレッドクラム ID で識別され、後続の各メッセージフローのブレッドクラム ID は 2 ずつ増えます。たとえば、最初のメッセージフローのブレッドクラム ID が ID-janemurpheysmbp-home-54620-1470949590275-0-1 の場合、2 番目のメッセージフローのブレッドクラム ID は ID-janemurpheysmbp-home-54620-1470949590275-0-3 になります。

  • Variables ビュー

    ブレークポイントが設定されたルーティングコンテキストの各ノードについて、Variables ビューは、ブレークポイントに到達したときに利用可能な変数の値を表示します。前のブレークポイントから値が変更されている各変数は、黄色で強調表示されます。

    編集可能な変数の値を変更して、そのような変更によって期待される結果が生成されるかどうかを確認し、ルーティングコンテキストの堅牢性をテストできます。

    また、監視リストに変数を追加することも可能です。そのため、メッセージフローの予想されるポイントで、値が予想どおりに変更されるかどうかを迅速かつ簡単に確認できます。

  • Breakpoints ビュー

    ルーティングコンテキストに設定されたブレークポイントの一覧を表示して、そのブレークポイントが有効か無効かを示します。個々のブレークポイントは、チェック (有効化) またはチェックを解除 (無効化) して有効にしたり、無効にしたりできます。これにより、問題のあるルーティングコンテキストで、一時的にノードにフォーカスできるようになります。

    resume co ボタンは無効化されたブレークポイントをスキップし、ルーティングコンテキスト内の次のアクティブなブレークポイントに移動します。一方、 stepover co ボタンは、ブレークポイントに関係なく、ルーティングコンテキスト内の次の実行ノードに移動します。

  • camel Context.xml ビュー

    グラフィカルモードで実行中のルーティングコンテキストファイルを表示します。ブレークポイントが設定されたノードの場合、設定されたブレークポイントの種類と、ブレークポイントが有効かどうかが表示されます。ブレークポイントに到達すると、キャンバスの対応するノードが赤でアウトライン表示されます。

    ノードの設定を確認するには、Properties ビューを開き、camel Context.xml のキャンバスのノードを選択します。

  • Console ビュー

    Camel デバッガーがルーティングコンテキストを実行する際に生成するログ出力を表示します。

  • Properties ビュー

    CamelContext.xml のキャンバスで選択したノードに設定されたプロパティーを表示します。

法律上の通知

Copyright © 2021 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.