1

OSGI で抽象バンドルとして何かを作成したいと思います。アイデアは、バンドル Ax (x は 1 から 9 まで) が B によって提供されるサービスを介してバンドル B にバインドする必要がある場合、asbtractA を作成することでより簡単に実行できるということです (したがって、Ax は abstractA を拡張します)。

ここで、abstractA は宣言型サービス ファイルを含むバンドルです。xml ファイルには、バンドル B への参照サービスが記述されており、abstractA の適切なクラスでは、bind unbind メソッドと start メソッドが実装されています。

Ax には独自の startx という start メソッドがあり、いくつかのサービスにバインドされているため、バンドルには独自の .xml ファイルがあるとします。

質問: start (abstractBundle から) と startx の両方が呼び出されますか? bundleAx と bundleabstractA の両方の参照されたサービスからのバインドは行われますか?

4

2 に答える 2

1

OSGi で抽象バンドルを作成する方法はありません。もちろん、できることは、抽象クラスを使用して、バンドル間でいくつかの機能を共有することです。

ところで。DS xml ファイルを共有することだけを達成したい場合は、DS の注釈ベースの構成を確認する必要があります。これにより、xml を完全に記述する必要がなくなります (注釈から maven プラグインによって生成できます)。

于 2014-07-14T09:38:00.670 に答える