私のバンドルにリソースファイル(例えば、いくつかのXML設定ファイル)を含めて、それをコンテナ内の他のすべてのバンドルに見せたいと思っています。 Fragment-Hostマニフェストヘッダーを使用せずに可能ですか?このリソースファイルは、バンドルの横にあるすべてのバンドルのクラスパスに表示されるようにしてください。まだ存在しないものの、今後追加される可能性もあります。OSGiのすべてのバンドルにリソースファイルを見えるようにするには?
EDIT:
明確にする - そのリソースは、すなわち、他のバンドルが自分のクラスパスではなく、私のバンドルのいずれかの特殊なAPIやサービスに参照のうえで、それを見つけることができる必要があり、受動的に利用可能でなければなりません。
背景 - 私の環境はちょっと面倒ですが、私はそれを制御できず、既存のバンドルを変更できません。私が変更できる唯一の方法は、自分のバンドルを追加することです。その環境には、ch.qos.logback.classic bundle
のコピーがいくつか含まれています。ログバックが開始されると、クラスパス内の特定のXML設定ファイルが検索されます。それが見つからなければ、デフォルトではすべてをデバッグレベルで標準出力に出力します。この環境は以前はGUIアプリケーションをホストするために使用されていたので、それほど問題にはなりませんでしたが、ヘッドレスモードでその機能の一部を使用できるように変更しようとしています。だから、警告とエラーだけがコンソールに出力されるように設定することが重要になってきた。
ありがとうNeil。残念ながら私の断片のホストとして 'ch.qos.logback.classic'を定義することは私の場合は機能しません。これは、他のバンドルが内部的にlibとしてログバックを含み、 'Bundle-ClassPath:lib/logback-classic.jar'マニフェストヘッダを持っているからです。つまり、バンドルごとに1つずつ、いくつかのフラグメントを作成する方法があるようです。とにかくありがとうございました。 – yashu