第2章 Fuse on Karaf の使用

ここで説明する情報や手順は、Fuse On Karaf について学び、Karaf コンテナーで初めて Fuse アプリケーションをインストール、開発、およびビルドするのに役立ちます。以下を参照してください。

2.1. Fuse on Karaf

Apache Karaf は、OSGi Alliance の OSGi 標準 をベースとしています。OSGi は電気通信業界で開発され、ホットコードスワッピング と呼ばれる機能により、サーバーをシャットダウンする必要がなくすぐにアップグレードできる、ゲートウェイサーバーの開発に使用されました。その後、OSGi コンテナー技術はその他多くの用途に使用され、一般的に Eclipse IDE などのモジュール化されたアプリケーションで使用されます。

このコンテナー技術の特徴は次のとおりです。

  • 特にスタンドアロンモードでの実行に適しています。
  • モジュール化 (OSGi バンドル) の強力なサポート、および高度なクラスローディングサポート。
  • 1 つのコンテナーに複数のバージョンの依存関係を一緒にデプロイできます (ただし、注意して行う必要があります)。
  • ホットコードスワッピングにより、コンテナーをシャットダウンせずにモジュールをアップグレードまたは置き換えできます。これは独自の機能ですが、適切に行うには多大な労力が必要になります。

2.2. Fuse on Karaf のインストール

Red Hat カスタマーポータルから Fuse 7.4 on Karaf の標準インストールパッケージをダウンロードできます。このパッケージは Karaf コンテナーの標準アセンブリーをインストールし、完全な Fuse テクノロジースタックを提供します。

前提条件

手順

  1. ダウンロードした Fuse on Apache Karaf の .zip アーカイブファイルを、ファイルシステム FUSE_INSTALL の任意の場所に展開します。
  2. Fuse ランタイムに管理ユーザーを追加します。

    1. テキストエディターで FUSE_INSTALL/etc/users.properties ファイルを開きます。
    2. #admin = admin で始まる行の最初の # 文字を削除します。
    3. #g\:admingroup で始まる行の最初の # 文字を削除します。
    4. ユーザーエントリーのユーザー名 USERNAME とパスワード PASSWORD をカスタマイズし、以下のようなユーザーエントリーおよび管理グループエントリーにします (連続した行)。

      USERNAME = PASSWORD,_g_:admingroup
      _g_\:admingroup = group,admin,manager,viewer,systembundles,ssh
    5. etc/users.properties ファイルを保存します。
  3. 以下のように、CodeReady Studio インストーラー を実行します。

    java -jar DOWNLOAD_LOCATION/codereadystudio-12.12.0.GA-installer-standalone.jar
  4. インストール中、以下を行います。

    1. 契約条件に同意します。
    2. インストールパスを選択します。
    3. Java 8 JVM を選択します。
    4. Select Platforms and Servers で、Add をクリックして FUSE_INSTALL ディレクトリーの場所を確認し、Fuse on Karaf ランタイムを設定します。
    5. Select Additional Features to InstallRed Hat Fuse Tooling を選択します。
  5. CodeReady Studio が起動します。Searching for runtimes ダイアログが表示されたら OK をクリックして Fuse on Karaf ランタイムを作成します。
  6. (任意手順): コマンドラインから Apache Maven を使用するには、Maven をインストールおよび設定する必要があります。

    注記

    CodeReady Studio のみを使用する場合、CodeReady Studio にはMaven が事前インストールおよび設定されているため、Maven をインストールする必要は厳密的にはありません。しかし、コマンドラインから Maven を呼び出す場合は、インストールを行う必要があります。

2.3. Karaf で初めて Fuse アプリケーションをビルド

次の手順は、Karaf で初めて Fuse アプリケーションをビルドする場合に便利です。

前提条件

手順

  1. CodeReady Studio で以下のように新しいプロジェクトを作成します。

    1. File→New→Fuse Integration Project と選択します。
    2. Project Name フィールドに fuse-camel-cbr を入力します。
    3. Next をクリックします。
    4. Select a Target Environment ペインで以下の設定を選択します。

      • Standalone をデプロイメントプラットフォームとして選択します。
      • Karaf/Fuse on Karaf をランタイム環境として選択し、Runtime (optional) ドロップダウンメニューを使用して Red Had JBoss Middleware> Red Hat Fuse 7+ Runtime サーバーをターゲットランタイムとして選択します。
    5. ターゲットランタイムの選択後、Camel Version が自動的に選択され、フィールドがグレーアウトされます。
    6. Next をクリックします。
    7. Advanced Project Setup ペーンで Beginner→Content Based Router - Blueprint DSL テンプレートを選択します。
    8. Finish をクリックします。
    9. 関連する Fuse Integration パースペクティブを開くように要求された場合は、Yes をクリックします。
    10. CodeReady Studio が必要なアーティファクトをダウンロードし、バックグラウンドでプロジェクトをビルドする間待機します。

      重要

      CodeReady Studio で初めて Fuse プロジェクトをビルドする場合、リモート Maven リポジトリーから依存関係をダウンロードするため、ウィザードがプロジェクトの生成を完了するまで 数分かかることがあります。プロジェクトがバックグラウンドでビルドされている間は、ウィザードを中断したり、CodeReady Studio を閉じたりしないようにしてください。

  2. 以下のように、プロジェクトをサーバーにデプロイします。

    1. サーバーが起動していない場合は、Servers ビュー (Fuse Integration パースペクティブの左下隅) で fuse-karaf-7.4.0.fuse-740028-redhat-00001 Runtime Server サーバーを選択し、緑色の矢印をクリックして起動します。

      注記

      Warning: The authenticity of host 'localhost' can’t be established. というダイアログが表示されたら、Yes をクリックしてサーバーに接続し、Karaf コンソールにアクセスします。

    2. Console ビューに以下のようなメッセージが表示されるまで待機します。

      Karaf started in 1s. Bundle stats: 12 active, 12 total
    3. サーバーが起動した後、Servers ビューに切り替え、サーバーを右クリックしてコンテキストメニューで Add and Remove を選択します。
    4. Add and Remove ダイアログで fuse-camel-cbr プロジェクトを選択し、Add > ボタンをクリックします。
    5. Finish をクリックします。
    6. Terminal ビューに移動し、bundle:list | tail を入力して、プロジェクトの OSGi バンドルが起動したかどうかをチェックします。以下のような出力が表示されるはずです。

      ...
      228 │ Active │  80 │ 1.0.0.201505202023          │ org.osgi:org.osgi.service.j
      232 │ Active │  80 │ 1.0.0.SNAPSHOT              │ Fuse CBR Quickstart
注記

Camel ルートが起動すると、即座に work/cbr/input ディレクトリーが fuse-camel-cbr プロジェクトに作成されます。

  1. Project Explorer ビューで Refresh をクリックし、新たに作成された work/cbr/input ディレクトリーを表示します。
  2. プロジェクトの src/main/data ディレクトリーにあるファイルを work/cbr/input ディレクトリーにコピーします。
  3. しばらく待ってから再度 Project Explorer ビューを更新し、国別に分類された同じファイルが work/cbr/output ディレクトリーにあることを確認します。

    1. work/cbr/output/othersorder1.xml
    2. work/cbr/output/ukorder2.xml および order4.xml
    3. work/cbr/output/usorder3.xml および order5.xml
  4. 以下のようにプロジェクトをアンデプロイします。

    1. Servers ビューで Red Hat Fuse 7+ Runtime Server サーバーを選択します。
    2. サーバーを右クリックし、コンテキストメニューで Add and Remove を選択します。
    3. Add and Remove ダイアログで fuse-camel-cbr プロジェクトを選択し、< Remove ボタンをクリックします。
    4. Finish をクリックします。