CLOVER🍀

That was when it all began.

OSGi BundleのImport/Exportの見方

VirgoのサンプルアプリケーションGreenPagesのMANIFEST.MFを見てみましたが、最初意味不明だったのが、数あるインポート宣言。

エクスポートは「Export-Package」だけなのですが、インポートについては

  • Import-Package
  • Import-Bundle
  • Import-Library

と3つもあります…。特に、「Import-Library」って何者?

と頭を抱えていたら、以下の資料を見つけました。

http://www.eclipse.org/virgo/documentation/virgo-documentation-2.1.1.RELEASE/docs/virgo-programmer-guide/html/ch04s07.html

これを見て、ちょっと納得。つまりは、こういうことっぽいです。

「Import-Package」
他のOSGi Bundleの「Export-Package」でエクスポートされたパッケージを、そのパッケージ単位でインポートする指定方法です。

「Import-Bundle」
これ、どうもVirgoの拡張ヘッダっぽいですね。あるOSGi Bundleからパッケージをひとつひとつインポートするんじゃなくて、Bundle単位一括でインポートする指定方法みたいです。バンドル名は、「Bundle-SymbolicName」で書かれた値を指定するようですよ。

「Import-Library」
「Import-Bundle」と同じく、Virgoの拡張ヘッダの模様。「Import-Bundle」でOSGi Bundleを束め、それをライブラリとして定義してインポートできるようにする指定方法みたいです。ライブラリ名は、「Library-SymbolicName」で書かれた値を指定するようですよ。

…とりあえず、なんとなく読めそうです。あと、バージョン指定のところがまだ一部ハッキリしていません。