OSGi ブループリント・コンテナー仕様は、Spring 動的モジュール・プロジェクトから派生した OSGi 用依存関係注入フレームワークを定義します。この仕様は、XML モジュール・ブループリント により OSGi バンドルが補強されるコア Spring Framework に基づいて OSGi 用のコンポーネント・モデルを定義します。 モジュール・ブループリントは、細かいコンポーネントがどのようにしてバンドル内でつなげられるのかを記述する構成ファイルです。OSGi ブループリント・コンテナー仕様について詳しくは、OSGi Alliance Web サイトにある Compendium の仕様を参照してください。
モジュール・コンポーネントは、Spring アプリケーション・コンテキスト・コンテナーと直接に対応するモジュール・コンテキスト・コンテナーにより管理されます。このモジュール・コンテキスト・コンテナーは、構成された依存関係をコンポーネントに注入し、それらのコンポーネントのライフサイクルを管理します。モジュール・ブループリントの書式は、Spring アプリケーション構成ファイルに基づいています。 Spring Framework から大幅に進歩した点は、OSGi バンドルと呼ばれるデプロイメント単位、およびモジュール・ブループリントを介しての OSGi サービス・レジストリーとの統合です。 バンドルのクライアントに公開される OSGi サービス、およびバンドルが消費する OSGi サービスは、モジュール・ブループリント内で宣言され、ランタイム・モジュール・コンテキスト・コンテナーによって、OSGi サービス・レジストリーに登録されるか、OSGi サービス・レジストリーから取得されます。
ブループリント・アプリケーション内ではモジュール・コンポーネントは、そのライフサイクルをモジュール・コンテキスト・コンテナーが管理する、Java™ コンポーネントです。モジュール・コンポーネント構成には、それが依存するリソースおよびコンポーネントへの参照が含まれています。 モジュール・コンテキスト・コンテナーは、構成をモジュール・コンポーネントに注入します。コンポーネントが外部のファクトリーおよびサービスに依存するようにするのではなく、コンポーネントに構成を注入すると、分離しているコンポーネントのテストがより容易になります。
モジュール・コンテキスト・コンテナーは、OSGi バンドルにアセンブルされる管理コンポーネントのセットです。 モジュール・コンテキストは、そこに含まれる管理コンポーネントのライフサイクルの管理と、コンポーネント構成の注入を扱います。
モジュール・ブループリント内の宣言構成では、 バンドルのうちの特定の管理コンポーネントが OSGi サービス・レジストリー内のサービス としてエクスポートされる必要があることも指定できます。さらに、バンドルの管理対象コンポーネントが、サービス・レジストリーを介して 取得される 1 つまたは複数のサービスに依存することや、 それらのサービスが管理対象コンポーネントに注入されることを宣言することも可能です。
総じて言うと、OSGi ブループリント・コンテナー仕様は、モジュール・ブループリント (構成情報) およびそのブループリントから作成されたランタイム・コンテキストを持つ OSGi バンドルとしてアプリケーション・モジュールが実装されるアプリケーション・アーキテクチャーを記述します。モジュールは、サービス・レジストリーを介して相互作用する同等物です。