FindHook今日、私は OSGi フック、特にサービスとサービスのために少し作業しましたEventListenerHook。プロキシサービスを試してみたかった。正常に動作し、私のEventListenerHookサービスはプロキシされています。しかし、関連するメソッドに(Bnd スタイル)FindHookのアノテーションを付けて、サービスがサービス実装の参照を取得すると、イベントが呼び出されないことに気付きました。アノテーションの問題ではなく、DS 全般の問題かもしれません。setXXX@Reference
これは非常に悪いことです。bc には、プロキシなしとプロキシ付きの 2 つのサービスが登録されています。プロキシされたものからのみ参照を取得したい。一般に、DS を使用しない場合、呼び出すことで参照を取得できBundleContext.getServiceReference(java.lang.Class<S> clazz)、イベントFindHook.findが呼び出されます。ここで、どちらServiceReferenceを返すかを決定できます。
DS のようなアプローチを使用すると、どのようなプロセスが実行されますか (私にとっては Bnd アノテーション@Reference)。上記のセクションで説明したように、どのサービスを参照するかを決定したいと考えています。