第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 テクノロジースタックを提供します。
前提条件
- Red Hat カスタマーポータル のフルサブスクリプションアカウントが必要になります。
- カスタマーポータルにログインする必要があります。
- CodeReady Studio インストーラー がダウンロードされている必要があります。
- Fuse on Karaf インストーラー がダウンロードされている必要があります。
手順
-
ダウンロードした Fuse on Apache Karaf の
.zip
アーカイブファイルを、ファイルシステムFUSE_INSTALL
の任意の場所に展開します。 Fuse ランタイムに管理ユーザーを追加します。
-
テキストエディターで
FUSE_INSTALL/etc/users.properties
ファイルを開きます。 -
#admin = admin
で始まる行の最初の#
文字を削除します。 -
#g\:admingroup
で始まる行の最初の#
文字を削除します。 ユーザーエントリーのユーザー名
USERNAME
とパスワードPASSWORD
をカスタマイズし、以下のようなユーザーエントリーおよび管理グループエントリーにします (連続した行)。USERNAME = PASSWORD,_g_:admingroup _g_\:admingroup = group,admin,manager,viewer,systembundles,ssh
-
etc/users.properties
ファイルを保存します。
-
テキストエディターで
以下のように、CodeReady Studio インストーラー を実行します。
java -jar DOWNLOAD_LOCATION/codereadystudio-12.12.0.GA-installer-standalone.jar
インストール中、以下を行います。
- 契約条件に同意します。
- インストールパスを選択します。
- Java 8 JVM を選択します。
-
Select Platforms and Servers で、Add をクリックして
FUSE_INSTALL
ディレクトリーの場所を確認し、Fuse on Karaf ランタイムを設定します。 - Select Additional Features to Install で Red Hat Fuse Tooling を選択します。
- CodeReady Studio が起動します。Searching for runtimes ダイアログが表示されたら OK をクリックして Fuse on Karaf ランタイムを作成します。
(任意手順): コマンドラインから Apache Maven を使用するには、Maven をインストールおよび設定する必要があります。
注記CodeReady Studio のみを使用する場合、CodeReady Studio にはMaven が事前インストールおよび設定されているため、Maven をインストールする必要は厳密的にはありません。しかし、コマンドラインから Maven を呼び出す場合は、インストールを行う必要があります。
2.3. Karaf で初めて Fuse アプリケーションをビルド
次の手順は、Karaf で初めて Fuse アプリケーションをビルドする場合に便利です。
前提条件
- Red Hat カスタマーポータル のフルサブスクリプションアカウントが必要になります。
- カスタマーポータルにログインする必要があります。
- CodeReady Studio インストーラー がダウンロードされている必要があります。
- ダウンロードした Fuse on Karaf インストーラー が正常にインストールされている必要があります。
手順
CodeReady Studio で以下のように新しいプロジェクトを作成します。
- File→New→Fuse Integration Project と選択します。
-
fuse-camel-cbr
フィールドに eap-camel を入力します。 - Next をクリックします。
Select a Target Environment ペインで以下の設定を選択します。
- Standalone をデプロイメントプラットフォームとして選択します。
-
Karaf/Fuse on Karaf をランタイム環境として選択し、Runtime (optional) ドロップダウンメニューを使用して
Red Had JBoss Middleware> Red Hat Fuse 7+ Runtime
サーバーをターゲットランタイムとして選択します。
- ターゲットランタイムの選択後、Camel Version が自動的に選択され、フィールドがグレーアウトされます。
- Next をクリックします。
- Advanced Project Setup ペーンで Beginner→Content Based Router - Blueprint DSL テンプレートを選択します。
- Finish をクリックします。
- 関連する Fuse Integration パースペクティブを開くように要求された場合は、Yes をクリックします。
CodeReady Studio が必要なアーティファクトをダウンロードし、バックグラウンドでプロジェクトをビルドする間待機します。
重要CodeReady Studio で初めて Fuse プロジェクトをビルドする場合、リモート Maven リポジトリーから依存関係をダウンロードするため、ウィザードがプロジェクトの生成を完了するまで 数分かかることがあります。プロジェクトがバックグラウンドでビルドされている間は、ウィザードを中断したり、CodeReady Studio を閉じたりしないようにしてください。
以下のように、プロジェクトをサーバーにデプロイします。
サーバーが起動していない場合は、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 コンソールにアクセスします。
Console ビューに以下のようなメッセージが表示されるまで待機します。
Karaf started in 1s. Bundle stats: 12 active, 12 total
- サーバーが起動した後、Servers ビューに切り替え、サーバーを右クリックしてコンテキストメニューで Add and Remove を選択します。
-
Add and Remove ダイアログで
fuse-camel-cbr
プロジェクトを選択し、Add > ボタンをクリックします。 - Finish をクリックします。
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 ルートが起動すると、すぐに fuse-camel-cbr
プロジェクトにディレクトリー work/cbr/input
が作成されます。
-
Project Explorer ビューで Refresh をクリックし、新たに作成された
work/cbr/input
ディレクトリーを表示します。 -
プロジェクトの
src/main/data
ディレクトリーにあるファイルをwork/cbr/input
ディレクトリーにコピーします。 しばらく待ってから再度 Project Explorer ビューを更新し、国別に分類された同じファイルが
work/cbr/output
ディレクトリーにあることを確認します。-
work/cbr/output/others
のorder1.xml
-
work/cbr/output/uk
のorder2.xml
およびorder4.xml
-
work/cbr/output/us
のorder3.xml
およびorder5.xml
-
以下のようにプロジェクトをアンデプロイします。
-
Servers ビューで
Red Hat Fuse 7+ Runtime Server
サーバーを選択します。 - サーバーを右クリックし、コンテキストメニューで Add and Remove を選択します。
-
Add and Remove ダイアログで
fuse-camel-cbr
プロジェクトを選択し、< Remove ボタンをクリックします。 - Finish をクリックします。
-
Servers ビューで