サード・パーティーのライブラリーおよびクラス・ロード
OSGi は複数のクラス・ローダーを使用するので、拡張可能 / 構成可能なサード・パーティーのライブラリーを Eclipse で透過的に使用するには、「バディ・ロード」と呼ばれる Eclipse に固有のメカニズムを使用する必要があります。このメカニズムを使用すると、バンドルがその前提条件の中に、ロードするクラスやリソースを見つけられない場合に、支援を必要としていることを示すことができます。ユーザー・コード (例えば、log4j ロガー・メカニズム、ハイバネートなど) で提供されているクラスまたはリソースを参照する必要のあるライブラリーを「拡張ライブラリー」と呼んでいることに注意してください。
バンドルは、バディ・ロードを必要としていることを示すためには、そのマニフェストを変更し、以下のヘッダーを追加する必要があります。
Eclipse-BuddyPolicy: <value>
<value> は、クラスの検索に使用されるポリシーを参照しています。サポートされているポリシーは、以下のとおりです。
- registered - バディ・メカニズムが、自身に登録されているバンドルを参照することを示します。特定のバンドルに登録するバンドルは、そのマニフェスト "Eclipse-RegisterBuddy: <bundleSymbolicName>" に追加します。
- dependent - クラス/リソースが、バンドルのすべての依存関係内を推移的に検索されることを示します。
- global - クラス/リソースが、エクスポートされたパッケージのグローバル・プール内で検索されます。
- app - アプリケーション・クラス・ローダーを参照することを示します。
- ext - 拡張クラス・ローダーを参照することを示します。
- boot - ブート・クラス・ローダーを参照することを示します。