私はKarafの複合機能(つまり、他の機能を入れ子にした機能)を開発しています。ネストされたフィーチャの設定ファイルを書き出し、次に外側のスコープ(つまり、私が書いているフィーチャ)から、ネストされたフィーチャに含まれるバンドルを再起動したいと思います。Karaf:動的バンドルの再起動
は、どのように私は別のバンドルから、実行時にそのバンドルのすべてのための機能を照会します。
バンドルを別のバンドルから動的に再起動するにはどうすればよいですか?
私はKarafの複合機能(つまり、他の機能を入れ子にした機能)を開発しています。ネストされたフィーチャの設定ファイルを書き出し、次に外側のスコープ(つまり、私が書いているフィーチャ)から、ネストされたフィーチャに含まれるバンドルを再起動したいと思います。Karaf:動的バンドルの再起動
は、どのように私は別のバンドルから、実行時にそのバンドルのすべてのための機能を照会します。
バンドルを別のバンドルから動的に再起動するにはどうすればよいですか?
2つの操作のすべてでは、インスタンスがorg.osgi.framework.BundleContext
である必要があります。バンドルアクティベータで1つを取得できます。
機能(およびその依存機能とそのバンドル)を照会するには、のgetServiceReference()
メソッドを使用して、Karafのorg.apache.karaf.features.FeaturesService
OSGiサービスにアクセスする必要があります。
BundleContext.getBundle("ID")
バンドルを互いに独立して設定する方法はありますか?つまり、インスタンス化時に変数をバンドルに渡す方法は? – LostInTheFrequencyDomain
構成管理サービス - バンドル構成 "OSGiの方法"に使用する必要があります - [here](http://felix.apache.org/documentation/subprojects/apache-felix-config-admin.html)を参照してください。 –
あなたはそれを行うことができますが、それは、OSGiの方法ではありません。より良い方法は、各バンドルを構成の変更に対応させることです。 Blueprintと宣言型サービスは、設定の変更に対応する機能を提供します。 –