0

OSGi フレームワークとして Equinox を使用するアプリケーションを作成しています。バンドルが登録された時点で認識されているすべてのバンドルを検出しようとしています。次の行を使用して、利用可能なすべてのバンドルを取得しようとしました。でも、

EclipseStarter.getSystemBundleContext().getBundles();

私に警告を与える...

推奨されないアクセス: 必要なライブラリー D:\java\eclipse\plugins\org.eclipse.osgi_3.4.0.v20080605-1900.jar の制限により、タイプ EclipseStarter のメソッド getSystemBundleContext() にはアクセスできません

フレームワーク内で利用可能なすべてのバンドルのリストを取得する適切な使用法は何ですか?

4

1 に答える 1

2

プラグインアクティベーターで、EclipseStarter の代わりに独自のバンドルコンテキストをエントリーポイントとして使用できます。

start(BundleContext context)
{
  context.getBundles();  // what you want
}

缶のクラスがわからない場合は、Plugin缶のクラスを見てください。AbstractUIPlugin本当にシングルトン アクセスが必要な場合、プラグインはおそらく 1 つです。お気軽に公開してYourPlugin.getInstance().getBundleContext()ください。

(免責事項: 私は試していませんが、OSGi/Eclipse とは一致するはずです)

于 2009-03-26T20:29:52.000 に答える