3

次の問題があります。

1: OSGI バンドル A (分点) がアクティブ化され、アクティベーターが XML ファイルを解析します
2: XML ファイルで、別のバンドル (B) に存在する宣言型サービスが要求されます
3: バンドル B はまだアクティブ化されていません。そのため、バンドル A のアクティベーターは待機する必要があります

DS で純粋にこれにアプローチする方法は知っていますが、解析はアクティベーターで実行する必要があります。また、開始レベルなどでふざけたくありません。理想的には、必要に応じてバンドル B によって提供されるサービスを登録できるようにしたいと考えています。

これを達成するエレガントな方法はありますか?

ありがとう、

キース

4

1 に答える 1

2

OSGi サービスは本質的に動的であるため、サービスの可用性に依存するべきではありません。a またはより良い方法で何らかのサービス追跡を使用する必要がありServiceTrackerます。すべての面倒な作業を行う純粋な DS ソリューションを使用してください。

XML ファイルを解析する必要があることを示しているため、使用するサービスで何らかの外部構成を使用することにしたと思います。このタイプのアーキテクチャを再検討することをお勧めします。多くの場合、構成管理と宣言型サービス/ブループリントを組み合わせて使用​​することで同じ目標を達成できますが、多くのコードを記述する必要があります。

于 2014-03-12T14:39:41.853 に答える