第10章 プロジェクトを Red Hat Fuse に公開する
このチュートリアルでは、プロジェクトを Red Hat Fuse に公開するプロセスについて説明します。Red Hat Fuse Tooling を実行しているのと同じマシンに Red Hat Fuse のインスタンスがインストールされていることを前提としています。
ゴール
このチュートリアルでは、次のタスクを完了します。
- Red Hat Fuse サーバーを定義します
- 公開オプションを設定します
-
Red Hat Fuse サーバーを起動し、
ZooOrderApp
プロジェクトをパブリッシュする - Red Hat Fuse サーバーに接続します
-
ZooOrderApp
プロジェクトのバンドルが正常にビルドされ、公開されたかどうかを確認する -
ZooOrderApp
プロジェクトのアンインストール
前提条件
このチュートリアルを開始する前に、次のものが必要です。
- Red Hat Fuse インスタンスへのアクセス
- コンピューターにインストールされている Java 8
次のいずれかから生じる ZooOrderApp プロジェクト:
9章JUnit を使用したルートのテスト チュートリアルを完了する。
または
-
2章環境の設定チュートリアルを完了し、「リソースファイルについて」に記載されているように、プロジェクトの
blueprint.xml
ファイルを、提供されるblueprintContexts/blueprint3.xml
ファイルに置き換える。
Red Hat Fuse Server の定義
サーバーを定義するには:
- Fuse Integration パースペクティブを開きます。
- 右下のパネルの Servers タブをクリックして、Servers ビューを開きます。
以下をクリックします。利用可能なサーバーはありません。このリンクをクリックして、新しいサーバーを作成...リンクをクリックすると、Define a New Server ページが表示されます。
注記すでにサーバーが定義されているときに新しいサーバーを定義するには、Servers ビュー内を右クリックして、New
Server を選択します。 Red Hat JBoss Middleware ノードを展開して、使用可能なサーバーオプションを公開します。
- Red Hat Fuse サーバーを選択します。
Server's host name ( localhost) と Server name (Fuse n.n Runtime Server) のデフォルトを受け入れ、Next へをクリックして Runtime ページを開きます。
注記Fuse をまだインストールしていない場合は、Download and install runtime リンクを使用して今すぐダウンロードできます。
すでにサーバーを定義している場合、ツールはこのページをスキップし、代わりに設定の詳細ページを表示します。
- Name のデフォルトを受け入れます。
- Home Directory フィールドの横にある Browse をクリックして、インストールに移動して選択します。
Execution Environment の横にあるドロップダウンメニューからランタイム JRE を選択します。
JavaSE-1.8(推奨) を選択します。必要に応じて、Environments ボタンをクリックしてリストから選択します。
注記Fuse サーバーには Java 8 が必要です (推奨)。Execution Environment で選択するには、事前にインストールしておく必要があります。
- Alternate JRE オプションはそのままにしておきます。
Next をクリックして Fuse Server のランタイム定義を保存し、Fuse server configuration details ページを開きます。
SSH Port のデフォルト (8101) を受け入れます。
ランタイムは SSH ポートを使用して、サーバーの Karaf シェルに接続します。このデフォルトが正しくない場合は、Red Hat Fuse
installDir/etc/org.apache.karaf.shell.cfg
ファイルを確認して正しいポート番号を検出できます。User Name に、サーバーへのログインに使用する名前を入力します。
これは、Red Hat Fuse installDir`/etc/users.properties` ファイルに保存されているユーザー名です。
注記/etc/users.properties
ファイルのデフォルトのユーザーがアクティベートされている場合 (アンコメント)、ツールは User Name および Password にデフォルトユーザーの名前およびパスワードを自動入力します。設定されていない場合は、
user=password,role
のフォーマットを使用してそのファイルにユーザーを追加するか (例:joe=secret,Administrator
)、karafjaas
コマンドセットを使用して設定できます。-
jaas:realms
: レルムを一覧表示します。 -
jaas:manage --index 1
: 最初の (サーバー) レルムを編集します。 -
jaas:useradd <username> <password>
: ユーザーと関連するパスワードを追加します。 -
jaas:roleadd <username> Administrator
: 新規ユーザーのロールを指定します。 jaas:update
: 新しいユーザー情報を使用してレルムを更新します。サーバーに対して jaas レルムがすでに選択されている場合は、コマンド
JBossFuse:karaf@root>
jaas:users
を実行してユーザー名を検出できます。
-
Password には、サーバーにログインする際に User name に必要なパスワードを入力します。
これは、Red Hat Fuse の
installDir/etc/users.properties
ファイルまたは karafjaas
コマンドによって設定されたパスワードです。Finish をクリックします。
Runtime Server [stopped, Synchronized] が Servers ビューに表示されます。
Servers ビューで、ランタイムサーバーを展開します。
JMX[Disconnected] は、Runtime Server [stopped, Synchronized] エントリーの下にノードとして表示されます。
公開オプションの設定
パブリッシュオプションを使用して、ZooOrderApp
プロジェクトを稼働中のサーバーにパブリッシュする方法およびタイミングを設定できます。
- プロジェクトに加えられた変更を保存するとすぐに自動的に
- プロジェクトを変更して保存した後、設定された間隔で自動的に
- 手動で、公開操作を選択した場合
このチュートリアルでは、ZooOrderApp
プロジェクトへの変更を保存したら直ちにパブリッシュするように設定します。これを行うには、以下を行います。
- Servers ビューで、Runtime Server [stopped, Synchronized] エントリーをダブルクリックして、その概要を表示します。
サーバーの Overview ページで、Publishing セクションを展開してオプションを表示します。
Automatically publish when resources change オプションが有効になっていることを確認します。
必要に応じて、Publishing interval の値を変更して、変更が加えられたときにプロジェクトの公開を高速化または遅延させます。
- Servers ビューで、 をクリックします。
サーバーが起動するまで数秒待ちます。その場合:
Terminal ビューにスプラッシュ画面が表示されます。
Servers ビューには以下が表示されます。
JMX Navigator は、n.n Runtime Server[Disconnected と表示します:
Servers ビューで、n.n Runtime Server [Started] を右クリックし、Add and Removeを選択して、Add and Remove ページを開きます。
If server is started, publish changes immediately オプションがオンになっていることを確認します。
ZooOrderApp
を選択し、Add をクリックして Fuse サーバーに割り当てます。Finish をクリックします。
Servers ビューには、次のように表示されます。
Runtime Server [Started, Synchronized]
注記サーバーの場合、synchronized とは、サーバーで公開されているすべてのモジュールがローカルの対応するモジュールと同一であることを意味します。
ZooOrderApp [Started, Synchronized]
注記モジュールの場合、synchronized とは、公開されたモジュールがローカルの対応するモジュールと同一であることを意味します。自動公開が有効になっているため、ZooOrderApp プロジェクトに加えられた変更は、(Publishing interval の値に応じて) 数秒で公開されます。
- JMX[Disconnected]
ランタイムサーバーへの接続
ランタイムサーバーへの接続後、ZooOrderApp
プロジェクトのパブリッシュされた要素が表示され、それらと対話できます。
- Servers ビューで、JMX[Disconnected] をダブルクリックしてランタイムサーバーに接続します。
JMX Navigator で
Camel
フォルダーを展開し、ZooOrderApp
の要素を表示します。Bundles ノードをクリックして、ランタイムサーバーにインストールされているバンドルのリストを Properties ビューに入力します。
Search フィールドに ZooOrderApp と入力します。対応するバンドルが表示されます。
注記または、Terminal ビューで
osgi:list
コマンドを実行し、サーバーランタイムにインストールされているバンドルに関する生成されたリストを表示することもできます。ツールは、osgi:list
コマンドが表示する OSGi バンドルに異なる命名スキームを使用します。この場合、コマンドはCamel Blueprint Quickstart
を返します。これはインストールされたバンドルのリストの最後に表示されるプロジェクトの
pom.xml
ファイルの<build>
セクションで、バンドルのシンボリック名およびそのバンドル名 (OSGi) がmaven-bundle-plugin
エントリーに一覧表示されます。
ZooOrderApp プロジェクトのアンインストール
公開されたリソースをアンインストールするために、JMX 接続を切断したり、サーバーを停止したりする必要はありません。
ランタイムサーバーから ZooOrderApp
リソースを削除するには、以下を実行します。
- Servers ビューで、n.n Runtime Server を右クリックしてコンテキストメニューを開きます。
Add and Remove を選択します:
-
Configured 列で
ZooOrderApp
を選択し、Remove をクリックしてZooOrderApp
リソースを Available 列に移動します。 - Finish をクリックします。
Servers ビューで、JMX[Connected] を右クリックし、Refresh をクリックします。
JMX[Connected] 下の
Camel
ツリーが消えます。注記JMX Navigator でも、Server Connections > n.n Runtime Server[Connected] の
Camel
ツリーが消失します。- Properties ビューに Bundles ページが表示されたら、リストの最後までスクロールして、ZooOrderApp のバンドルがリストされていないことを確認します。