1

Export-Packageホストに提供されているパッケージのディレクティブを使用しているフラグメントに気付きました。

Fragment-Host: org.eclipse.jetty.osgi.boot
Export-Package: org.eclipse.jetty.osgi.boot.utils;version="1.0.1.felix"
-buildpath: osgi.core;version=4.3.0,\
    org.eclipse.jetty.osgi.boot;version=7.6.1.v20120215
-sources: false
Import-Package: !org.eclipse.jetty.osgi.boot.utils.internal,\
    *

このバンドルは、いくつかの追加クラスをホストの org.eclipse.jetty.osgi.boot.utils パッケージに提供します。

理想的には、可能な限りパッケージを非公開にするよう努めるべきだと思いますが、この場合はどうでしょうか? 私のコードの残りの部分はどれも必要としませんorg.eclipse.jetty.osgi.boot.utils

4

1 に答える 1

2

OSGi コア仕様 (6.0) から:

ホスト バンドルのクラス パスは、フラグメントのクラス パスの前に検索されます。

「このバンドルは、ホストのクラスをオーバーライドするクラスを持つ新しい org.eclipse.jetty.osgi.boot.utils を提供します」

フラグメント バンドルは、ホスト バンドルのクラスをオーバーライドできません (意図した場合)。

パッケージが他のバンドルでの使用を意図していない場合は、エクスポートしないでください。ホスト バンドルは、アタッチされたフラグメント バンドルのクラスとリソースを確認できますが、同じクラスまたはリソースがない場合に限られます。

于 2014-09-04T19:00:45.263 に答える