2009-03-26 8 views
0

私はOSGiフレームワークとしてEquinoxを使用するアプリケーションを作成しています。私は自分のバンドルが登録された時点で知られているすべてのバンドルを発見しようとしています。私は利用可能なバンドルをすべて取得するために次の行を使用しようとしました。ただし、すべてのバンドルのEclipseでバンドルを入手する

EclipseStarter.getSystemBundleContext()。getBundles();

私の警告を与える...

落胆アクセス:タイプEclipseStarterからの方法getSystemBundleContextは、()は必須ライブラリーのDで制限されているためアクセスできませんします。java \ \日食\プラグイン\ org.eclipse。 osgi_3.4.0.v20080605-1900.jar

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

答えて

2

代わりEclipseStarterのエントリポイントとして、独自のバンドルコンテキストを使用することができます - あなたのプラグインベーターで:PluginAbstractUIPluginクラスで

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

ルックをあなたがそれらについて知っていない場合。 シングルトンアクセスが本当に必要な場合は、プラグインがおそらく1つです - YourPlugin.getInstance().getBundleContext()を公開してください。

(免責事項:私はそれを試していない - それはOSGiの/ Eclipseのと一致するであろう)

+0

感謝。これは正しい方向に私を得た。 – Jerry

関連する問題