OSGi Declarative Services に対するサービスの宣言
別個の XML ファイルを使用して、バンドル内の各サービスを宣言できます。
このタスクについて
Declarative Services (DS) サポートは、宣言されたコンポーネントで動作します。各コンポーネントは、バンドル内の XML ファイルで定義されます。 コンポーネントの宣言が入ったバンドルがフレームワークに追加されると、DS は各コンポーネント宣言を読み取って、提供サービスをサービス・レジストリーに登録します。 その後、DS はコンポーネントのライフサイクルを管理します。 宣言された属性と満たされた依存関係の組み合わせに基づいて、ライフサイクルを制御します。
コンポーネントの XML 記述によって、DS は、コンポーネントのインスタンス化やその実装クラスのロードを必要とせずに、サービス依存関係を解決することができます。これによって、late (ランタイム・エレメントを必要時のみにロード) および lazy (最小数のエレメントをロード) のリソース・ロードが容易になり、サーバー始動の改善とランタイムのメモリー占有スペースの削減を図ることができます。
コンポーネントについて記述した XML ファイルは、Service-Component ヘッダーを使用してバンドルの MANIFEST.MF ファイルにリストされ、規則により、バンドルの /OSGI-INF ディレクトリーに配置されます。
必要な XML の生成に使用できるツールは多数あります。以下の例は、XML 自体を示しています。
このトピックでは、XML を使用してコンポーネントを DS に宣言する単純な OSGi バンドルについて説明します。