1

私は現在、OSGi サービス、より具体的に言えば、サービス間の配線に「苦労」しています。DS、SCR の基本と、コンポーネント インスタンスがサービスを取得するための一般的な戦略を認識しています。とにかく、ここに私の問題があります:

DS に続いて、コンポーネントは、XML ファイルで提供および消費されるサービスなどを宣言します。私の場合、特定のコンポーネントの「消費/参照」サービス (コンポーネントの XML ファイルの「参照」タグで宣言されている) に関心があります。

たとえば、実行中の OSGi アプリケーションを考えてみましょう。サービス (DS) に基づいて互いに連携する一連のバンドルです。ここで、特定のバンドルを選択し、それが消費する (可能性のある) サービスへのすべての参照をクエリします。これらのサービスが現在利用可能かどうかは関係ありません

inspect requirements *などの Apache Felix GoGo シェル コマンドを参照すると、インポートされたパッケージなどに関する情報は得られますが、消費されたサービスに関する完全な概要は得られません (-> 現在消費されているサービスとコンポーネントが待機しているサービスの両方)。

サービスの登録、変更、および登録解除に関する洞察を提供するフレームワーク API について読みましたが、明らかに、どのサービス バンドルが待機しているかに関する情報を提供していません。OSGi コア仕様に従って、これはListener Hookによって実現できます。

特定のバンドルのすべての参照されたサービスを取得するために、たとえば SCR にクエリを実行できる方法はありませんか? 明らかに、SCR はバンドルの Service-Component-XML ファイルを読み取り、消費/参照されたサービスを追跡するためにある種の「サービス トラッカー」を「登録」することになっています。利用可能ですよね?

これで私を助けていただければ幸いです。

ありがとう、ドン

4

1 に答える 1

0

Peter Kriens のXray、 http: //softwaresimplexity.blogspot.com/2012/07/xray-again.html をチェックしてください。

于 2014-03-18T16:04:29.097 に答える