0

他のバンドルを使用するバンドルの大きなツリーがあります。例えば:

  • 基本バンドルは API バンドルを使用します。
  • API バンドルは純粋な API バンドルです
  • 基本バンドルは API バンドルを使用し、ライブラリ バンドルです (便利なライブラリ関数、他のバンドルが使用できます)
  • API バンドルは API パッケージをエクスポートします
  • 基本バンドルは基本パッケージをエクスポートします。基本バンドルは、API バンドルから API パッケージもエクスポートします。

基本バンドルで API パッケージもエクスポートできるようにするのは正しいですか?

これを行ったのは、ユーザーがベース バンドルをビルド パスに追加するだけでよく、ベース + API バンドルが bndtools によって検出されるためです。それ以外の場合、ベース バンドルを使用するユーザーは、ベース バンドルがビルドパスに追加する必要がある API バンドルを使用していることを理解する必要があります。

4

1 に答える 1

4

API パッケージをエクスポートできますが、パッケージもインポートする必要があります。したがって、OSGi フレームワークは、実際に接続するパッケージを決定できます。これは、ある時点で同じパッケージをエクスポートする 2 つのバンドルがある場合に重要です。

ところで。通常、基本パッケージ バンドルはエクスポートしないでください。API のユーザーがまだ impl を知らなければならない場合、実際のデカップリングは得られません。代わりに、API インターフェイスを使用して impl クラスをサービスとしてエクスポートできます。

于 2016-02-17T19:01:35.270 に答える