2016-07-03 4 views
0

私は、DSとメタタイプの設定を使って宣言されたOSGiサービスAを持っています。OSGi DSサービスの設定とServiceTracker

次に、Aの設定に属さないプロパティフィルタに基づいてオブジェクトを追跡している別のサービスを呼び出します。

サービスプロパティにアクセスして実行時に更新する可能性はありますか?そのため、Bは変更を認識しますか?

Bが追跡するプロパティーは構成型ではありませんが、Aは独自の構成から推測できるので、Aは構成を解析した後、@Activateメソッドでサービスプロパティーを更新するのが理想的です。

答えて

0

サービスをAのActivateメソッドにプログラムで登録して、どのサービスプロパティを追加するかを決定できます。

+0

Aは2回登録されませんか? – cyberz

+0

@cyberzいいえ、コンポーネントがサービスインターフェイスを直接実装していないことを確認するだけです。 –

+0

コンポーネントがOSGiサービスを自動的に登録するように指定しなかった場合、コンポーネントは2回登録されません。通常は、@Serviceアノテーションを使用しないでください。 –

1

configシンタックスをプロパティに直接関連付ける気にしない場合は、はるかに簡単な解決方法があります。

コンポーネントAの設定でサービスプロパティを設定するだけです。サービスプロパティとして直接反映され、Bがフィルタリングできます。

関連する問題