実行時まで要求するサービスの属性がわからない場合、できれば宣言型サービスを使用して、サービスを取得する正しい方法は何ですか?
このユース ケースは、サービス バージョン 1.0、2.0、および 3.0 を提供する 3 つのバンドルがあるが、ユーザーが UI でいずれかを選択するまで、どれが消費されるかわからないことに似ています。ユーザーが 2.0 を選択すると、コンシューマはバンドル 2.0 のものを消費します
私たちは BND アノテーションを使用しているので、それらがあれば理想的ですが、アノテーションや宣言的なサービス インジェクションを使用する代わりに、OSGi API を直接使用する必要があると感じています。
最後に、関連性がある場合、これは、さまざまな動作/実装についてではなく、リソース (XML スキーマ) のさまざまなバージョンを取得するためのものです。サービス自体のコードは同じであっても、サービスはバージョンごとに異なる内部リソースを提供するという考えでした。