-3

OSGi のバックエンド システムのさまざまなバンドルを通過するパケットのデータ フローを確認する必要があります。

パケットは「ゲートウェイ バンドル」を介して着信し、処理中のいくつかの異なるバンドルを通過します。私がすべきことは、これらの異なるバンドルを通るデータ フローを「監視」する別のバンドルを作成することです。他のバンドルが実際にそこにあることを知らずに。

どうすればこれにアプローチできますか?

4

3 に答える 3

0

データ フローが他のバンドルによって登録された OSGi サービスを経由する場合、すべてのサービスに対してjava.lang.reflect.Proxyオブジェクトを作成し、これらのオブジェクトを最大のSERVICE_RANKINGを持つ OSGi サービスとして (元のオブジェクトと同じ OBJECTCLASS およびプロパティで) 登録できます。この場合、すべての通話は最初にサービスに送られ、次に元のサービスに転送できます。

于 2013-07-03T17:58:35.183 に答える
0

パブリック API 境界で呼び出しをインターセプトする必要がありますか?

1 つのアプローチは、インターセプター パターンです。Java でこれを行う典型的な方法は、AOP を使用することです。

すでにSpringを使用していますか? もしそうなら、それはあなたが調査できるさまざまなフレーバーの AOP を持っています。

コードが直接メソッド呼び出しを行っていると思いますか? もしそうなら、キューを使用するという 123x の提案は、コードの大規模なリファクタリングを必要とするため、短期的な解決策としてはおそらく適切ではありません。

于 2013-07-03T12:43:25.540 に答える