OSGi フラグメントとClass.forName(). 以下の例は、私の問題を示しています。
サードパーティのバンドルがありFooます。どうにも改造できませんFoo。バンドルには次のクラスが含まれています。
public class Serializer {
public String summarizeClass(String className) {
Class<?> myClass = Class.forName(className);
...
}
}
Barbundle forからこのメソッドを呼び出すと、 bundle のクラスパスにないためorg.myPackage.MyClass、失敗します。MyClassFoo
bundle のクラスパスを変更するためにFoo.fragment、依存関係を持つフラグメントを単純に追加できますか? それとも、この依存関係はフラグメント内のクラスにのみ適用されますか?BarFoo
簡単Class.forName()に言うと、Host バンドルのクラスで実行された場合の OSGi のセマンティクスは何ですか? それには以下が含まれますか?
- Q: バンドル クラスは? A: はい。
- Q: フラグメントに含まれるクラスは? A: はい。ソース
- Q: インポートされたパッケージと、必要なバンドルからエクスポートされたパッケージは? A: はい。
- Q: インポートされたパッケージと、すべてのフラグメントの必要なバンドルからエクスポートされたパッケージは? A: わかりません。