< 前へ | 次へ >

演習 3: ブループリント構成ファイルの作成

ブループリント構成ファイルには、バンドルのコンポーネント・アセンブリーと構成情報が含まれます。ファイルには、コンポーネントの OSGi サービス・レジストリーへの登録方法、またはコンポーネントによる OSGi サービス・レジストリーからのサービスの検索方法が説明されています。この情報は、バンドルが開始されたときに必須コンポーネントをインスタンス化し構成するために、ランタイムで使用されます。このチュートリアルでは、ブループリント・ファイルは、他のコンポーネントが演習 2 で定義されたカウンターにアクセスするために使用できるサービスを定義します。

この演習では、CounterServiceBundle で提供されたサービスを定義および記述するブループリント構成ファイルを作成します。

ブループリント構成ファイルを作成するには、以下のようにします。

  1. プロジェクト「CounterServiceBundle」を右クリックして、「新規」 > 「ブループリント・ファイル」を選択してから「完了」をクリックします。ブループリント構成ファイルがエディターで開きます。
  2. 以下のように、コンポーネント・アセンブリーおよび構成情報をブループリント構成ファイルに追加します。
    1. エディターの「設計」タブで、「追加」をクリックします。「項目の追加」ダイアログが開きます。
    2. Bean」をクリックして、 「OK」をクリックします。 「Bean 詳細」ダイアログが開きます。
    3. Bean を構成します:
      1. 「Bean ID」フィールドに CounterBean と入力します。
      2. 「Bean クラス」フィールドで、「参照」をクリックします。 「型の選択」ダイアログが開きます。「型名の選択」フィールドに CounterImpl と入力してから、「CounterImpl」クラスを選択します。「OK」をクリックします。
      3. 「OK」をクリックして変更を受け入れ、ダイアログを閉じます。
      4. エディターで、「メソッド参照」セクションにある「初期化メソッド」フィールドに init と入力します。
      Bean がブループリント・ファイルに追加されました。
    4. ブループリント」をクリックしてから、「追加」をクリックします。 「項目の追加」ダイアログが開きます。
    5. サービス」をクリックして、 「OK」をクリックします。 「サービスの詳細」ダイアログが開きます。
    6. サービスを構成します:
      1. 「サービス・インターフェース」フィールドで、「参照」をクリックしてから、演習 2 で作成した「Counter」インターフェースを選択します。「OK」をクリックします。
      2. 「Bean 参照」フィールドで、「参照」をクリックしてから、「Bean: CounterBean」を選択します。「OK」をクリックします。
      3. 「OK」をクリックして変更を受け入れ、ダイアログを閉じます。
      サービスがブループリント・ファイルに追加されました。
  3. ファイルを保存します。
「ソース」タブに切り替えて、ブループリント構成ソースを以下のように表示します。
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
	<bean id="CounterBean" class="com.ibm.ws.eba.counter.CounterImpl" init-method="init"/>
	<service id="CounterBeanService" ref="CounterBean"
		interface="com.ibm.ws.eba.counter.Counter" />
</blueprint>
ヒント: ソースをフォーマットするには、Ctrl + Shift + F を押します。
このブループリント構成ファイルについてさらに学習したい方に:
Bean
bean 要素は、インスタンス化されるブループリント・コンポーネントを定義します。
このチュートリアルでは、bean 要素を使用すると、CounterImpl クラス・コンストラクターを呼び出すことによって、コンポーネント Counter がインスタンス化されます。クラスが作成されると、初期化メソッド getCount() が呼び出されます。
class
class 属性は、コンポーネントのどの実装クラスがインスタンス化されるかを指定します。
id
id 属性は、コンポーネントを識別します。これは、コンポーネントがブループリントの任意の場所から参照される場合 (例えば、サービス定義から参照される場合) に必須です。
init-method
init-method init() は、コンポーネントの作成時に呼び出されます。 バンドルの初期化時にメソッドを呼び出さない場合は、この属性を削除します。
サービス
service 要素は、OSGi サービス・レジストリーへのコンポーネントのエクスポートを定義します。
このチュートリアルでは、service 要素は、このコンポーネントを、interface 属性によって指定されるインターフェース com.ibm.ws.eba.counter.Counter を持つ Counter という名前のサービスとして、OSGi サービス・レジストリーにエクスポートします。
ref
ref 属性は、エクスポートされたコンポーネントのコンポーネント ID を参照します。 この ID は、コンポーネント要素内で定義されます。
interface
interface 属性は、コンポーネント・クラスが実装するインターフェースを参照します。

ブループリント構成ファイルについて詳しくは、 OSGi ブループリント XML および OSGi ブループリント・コンポーネント・モデル (RFC124) を参照してください。

演習のチェックポイント

OSGi Counter バンドル用のブループリント構成ファイルを作成しました。

この演習では、以下のトピックについて学習しました。
  • blueprint.xml ファイルの作成方法。
  • blueprint.xml ファイルの構成方法。
< 前へ | 次へ >
トピックのタイプを示すアイコン チュートリアルの演習のトピック
インフォメーション・センターのご利用条件 | フィードバック

タイム・スタンプ・アイコン 最終更新: May 29, 2014 10:20

ファイル名: counter_lesson3.html