私は現在、OSGiに非常に不利なサードパーティのライブラリをOSGiバンドルで利用できるようにすることに取り組んでいます。これらのライブラリーの1つ(私はすでにbndを使用してバンドルに変換しました)は、(少なくともOSGiルールによって)ロードできないはずのクラスをロードすることができます。バンドルがと呼ばれFoo
、それがクラスをロードするパッケージがと呼ばれると仮定しましょうbar
。
Foo
bar
オプションのインポートとしてあります。ただし、をエクスポートするバンドルがないため、これは問題ではありませんbar
。ブート委任を使用していません。ただし、jar
を含む-filebar
はapplication-classpath上にあります(OSGiフレームワークは私のアプリケーションに埋め込まれて実行されます)。
どうやらFoo
どういうわけかOSGiクラスローディングインフラストラクチャをバイパスしています。これはどのように行うことができますか?カスタムクラスローダーを使用する理由がないため、カスタムクラスローダーを使用していないことは間違いありません(機能のFoo
提供にそのようなものが必要になることはありません)。では、OSGiクラスローディングをバイパスするためにバンドルで使用できる標準のすぐに使えるメソッドは何でしょうか?