2016-08-04 12 views
1

時にオンフェリックスシステムパッケージをエクスポートする方法:OSGI:私は私はいくつかのシステムパッケージをエクスポートする必要がある場合には、ランタイム

final Map configMap = new HashMap(); 
configMap.put(Constants.FRAMEWORK_STORAGE_CLEAN, "onFirstInit"); 
configMap.put(Constants.FRAMEWORK_SYSTEMPACKAGES_EXTRA,"my packageshere"); 
felix = new Felix(configMap); 

しかし、どのように私は、実行時にいくつかのパッケージをエクスポートすることができますか?たとえば、osgiフレームワークを使用している場合、私はfelixを起動するときにエクスポートしなかったいくつかのシステムパッケージを必要とするバンドルをいくつかインストールしたいと考えています。

答えて

1

これを動的に行う方法はありません。そして、あなたがフレームワークを始める前にパッケージがわかっているので、私は目的を理解していません。なぜすべてを輸出しないのですか?

+0

自分自身に拡張機能をダウンロードできるアプリケーションがあるとします。拡張にはN個のバンドルがあります。いくつかのバンドルにはいくつかの余分なシステムパッケージが必要です。あなたは毎回アプリケーションを再起動しますか?別の例 - osgiでWebコンテナを使用し、Webアプリケーションをデプロイします。新しいWebアプリケーションにいくつかのシステムパッケージが必要な場合 - 他のすべてのWebアプリケーションを停止しますか? –

+0

いいえ、これは定義上有限集合なので、すべてのパッケージをエクスポートします。 (あなたのコードのフレームワーク側でいくつかのクラス読み込みハッキングをしない限り) –

+0

私はあなたの言うことを理解しています、これは唯一の解決策かもしれません。しかしバンドルが非常に動的で、それらの環境が動的なプロパティを持たなければならないので、それは奇妙です。 –

関連する問題