ブループリント構成ファイルには、バンドルのコンポーネント・アセンブリーと構成情報が含まれます。ファイルには、コンポーネントの OSGi サービス・レジストリーへの登録方法、またはコンポーネントによる OSGi サービス・レジストリーからのサービスの検索方法が説明されています。この情報は、バンドルが開始されたときに必須コンポーネントをインスタンス化し構成するために、ランタイムで使用されます。このチュートリアルでは、ブループリント・ファイルは、他のコンポーネントが演習 2 で定義されたカウンターにアクセスするために使用できるサービスを定義します。
この演習では、CounterServiceBundle で提供されたサービスを定義および記述するブループリント構成ファイルを作成します。
ブループリント構成ファイルを作成するには、以下のようにします。
- プロジェクト「CounterServiceBundle」を右クリックして、を選択してから「完了」をクリックします。ブループリント構成ファイルがエディターで開きます。
- 以下のように、コンポーネント・アセンブリーおよび構成情報をブループリント構成ファイルに追加します。
- エディターの「設計」タブで、「追加」をクリックします。「項目の追加」ダイアログが開きます。
- 「Bean」をクリックして、
「OK」をクリックします。
「Bean 詳細」ダイアログが開きます。
- Bean を構成します:
- 「Bean ID」フィールドに CounterBean と入力します。
- 「Bean クラス」フィールドで、「参照」をクリックします。 「型の選択」ダイアログが開きます。「型名の選択」フィールドに CounterImpl と入力してから、「CounterImpl」クラスを選択します。「OK」をクリックします。
- 「OK」をクリックして変更を受け入れ、ダイアログを閉じます。
- エディターで、「メソッド参照」セクションにある「初期化メソッド」フィールドに init と入力します。
Bean がブループリント・ファイルに追加されました。
- 「ブループリント」をクリックしてから、「追加」をクリックします。
「項目の追加」ダイアログが開きます。
- 「サービス」をクリックして、
「OK」をクリックします。
「サービスの詳細」ダイアログが開きます。
- サービスを構成します:
- 「サービス・インターフェース」フィールドで、「参照」をクリックしてから、演習 2 で作成した「Counter」インターフェースを選択します。「OK」をクリックします。
- 「Bean 参照」フィールドで、「参照」をクリックしてから、「Bean: CounterBean」を選択します。「OK」をクリックします。
- 「OK」をクリックして変更を受け入れ、ダイアログを閉じます。
サービスがブループリント・ファイルに追加されました。
- ファイルを保存します。
「ソース」タブに切り替えて、ブループリント構成ソースを以下のように表示します。
<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) を参照してください。