2017-10-06 18 views
0

私はKarafの複合機能(つまり、他の機能を入れ子にした機能)を開発しています。ネストされたフィーチャの設定ファイルを書き出し、次に外側のスコープ(つまり、私が書いているフィーチャ)から、ネストされたフィーチャに含まれるバンドルを再起動したいと思います。Karaf:動的バンドルの再起動

  1. は、どのように私は別のバンドルから、実行時にそのバンドルのすべてのための機能を照会します。

  2. バンドルを別のバンドルから動的に再起動するにはどうすればよいですか?

+0

あなたはそれを行うことができますが、それは、OSGiの方法ではありません。より良い方法は、各バンドルを構成の変更に対応させることです。 Blueprintと宣言型サービスは、設定の変更に対応する機能を提供します。 –

答えて

0

2つの操作のすべてでは、インスタンスがorg.osgi.framework.BundleContextである必要があります。バンドルアクティベータで1つを取得できます。

機能(およびその依存機能とそのバンドル)を照会するには、のgetServiceReference()メソッドを使用して、Karafのorg.apache.karaf.features.FeaturesService OSGiサービスにアクセスする必要があります。

はそれがIDです知っているあなたは1を得ることができます(それを再起動することができるようにする)任意のバンドルを取得するには: BundleContext.getBundle("ID")

+0

バンドルを互いに独立して設定する方法はありますか?つまり、インスタンス化時に変数をバンドルに渡す方法は? – LostInTheFrequencyDomain

+0

構成管理サービス - バンドル構成 "OSGiの方法"に使用する必要があります - [here](http://felix.apache.org/documentation/subprojects/apache-felix-config-admin.html)を参照してください。 –

関連する問題