アクティベーターメソッドを使用して、サービスを「古い方法」で宣言するシステムがあります。
現在、Declarative Services を使用して新しいバンドルを作成しています。新しいバンドルで Declarative Services 手法を使用して公開されていないサービスを参照することはできますか?
アクティベーターメソッドを使用して、サービスを「古い方法」で宣言するシステムがあります。
現在、Declarative Services を使用して新しいバンドルを作成しています。新しいバンドルで Declarative Services 手法を使用して公開されていないサービスを参照することはできますか?
はい、可能です。DS コンポーネントからサービスを参照する場合、そのサービスの内部実装について心配する必要はありません。
他のサービスは別の DS コンポーネントである場合もあれば、Spring-DM コンポーネントである場合もあり、OSGi API への明示的な呼び出しで公開されている場合もあります。あなたは気にしません。それはただのサービスです。
サービスを OSGi Service Registry に公開する「古い方法」はありません。BundleContext.registerService() を使用する方法は 1 つだけです。アクティベーターから手動で行うことも、Declarative Services / Blueprint エンジンで行うこともできます。
DS 記述子では、Service Registry で利用可能なサービスへの参照を定義するだけです。