さまざまなビューを備えた Eclipse プラグインがあるとします。これらのビューは、データをビューにプッシュする OSGi バンドルからのデータを表示する必要があります。すべてのビューを OSGi バンドルと通信させるのではなく、ビューの黒板として機能し、ビューと他の OSGi バンドルとの間の通信を管理する中間の Facade クラスを用意します。これが理論です。
この問題は、ui バンドル (ビューと Facade を含む) が Declarative Services を使用して他のバンドル (DataStore と呼ぶ) と通信するために発生します。Data Store はさらに別のソースから非同期データ更新を受信するため、コンテンツを Facade (および利用可能な場合は他のバンドル) にプッシュする必要があります。OSGi は、データストアの DS 構成のカーディナリティの要件を満たすために Facade をインスタンス化しますが、ビューはプラグインの IApplication 実装によってインスタンス化されます。IApplication と Facade が同じクラスであっても、お互いを認識しない 2 つの別個のインスタンスを取得します。
これらのコンポーネント (プラグイン Application、Views などと OSGi でインスタンス化された Facade) 間の通信を有効にするにはどうすればよいですか?