A と B という 2 つのバンドルがあります。A は B に依存します (A のマニフェストで Required-Bundle:B として指定されています)。
ここで、A と B の両方のバンドルを 1 つずつインストールしました (BundleContext.installBundle を呼び出して)。次に、バンドル A を開始しようとすると、次のエラーが発生します
org.osgi.framework.BundleException: Could not resolve module: A [140]
Unresolved requirement: Require-Bundle: B; bundle-version="1.0.0"
例外から、バンドル B がまだ開始 (解決) されていないことがわかりました。では、この問題を解決するにはどうすればよいでしょうか。
この問題を解決する唯一の方法は、バンドルを依存関係でソートすることですか? または、OSGi ランタイムにフォルダーを指定して、そこにコピーされたバンドル ファイルがアクティブになるようなオプションはありますか?
ちなみに私はEquinoxを使っています。