OSGi 標準は初めてです。バンドル パッケージ ファイルの構造について詳しく知りたいです。
- この OSGi-INF フォルダーがあり、l10n とパーミッションについて言及されている仕様があります。OSGI-INF フォルダーの使用はどこで定義されているのでしょうか? 他のものを入れることはできますか?
- バンドルによって参照される jar ファイルをどこに保存しますか?
- OSGi-INF と OSGi-OPT 以外に、OSGi 標準で定義されているフォルダはありますか?
OSGi 標準は初めてです。バンドル パッケージ ファイルの構造について詳しく知りたいです。
OSGi Core の仕様を見たことがあるかもしれません。これはOSGi Alliancesの Web サイトからダウンロードできます(実際には非常に読みやすいです)。たとえば、バージョン 4.2 の仕様では、3.2 章でバンドルとその構造が詳細に説明されています。すでに別の回答で述べたように、バンドルは実際には、いくつかの特別なマニフェスト ヘッダーを含むマニフェストを含むプレーンな jar ファイルです。
これらのヘッダーの一部では、一部のファイルの場所を指定することもできます。たとえば、セクション 3.2.1.11 でBundle-Localizationヘッダーが定義されています。
Bundle-Localization ヘッダーには、ローカリゼーション ファイルを見つけることができるバンドル内の場所が含まれています。デフォルト値は OSGI-INF/l10n/bundle です。翻訳はデフォルトであるため、OSGI-INF/l10n/bundle_de.properties、OSGI-INF/l10n/bundle_nl.properties など
必須の唯一の OSGi バンドル要素は、META-INF/MANIFEST.MF ファイル内のバンドル固有のエントリです。
OSGi-INF と OSGi-OPT はどちらもオプションです。
OSGi バンドルの概要については、こちらをご覧ください: http://swik.net/Spring/Interface21+Team+Blog/Creating+OSGi+bundles/
これは、DS (Declarative Services) が OSGi-INF フォルダーをどのように利用するかを説明しています: http://www.eclipsezone.com/eclipse/forums/t97690.html
META-INF/MANIFEST.MF
OSGiバンドルは、JARマニフェストのいくつかの必須エントリであるファイル(Jamesがすでに指摘している)を除いて、プレーンなJARファイルと同じです。
他のすべてのファイルとディレクトリは、たとえばフォルダのような単なる慣例とベストプラクティスであり、それぞれSpringとMavenによって使用されMETA-INF/spring
ます。META-INF/maven
OSGI-INF
一部のOSGiサービスは、ディレクトリの使用に関して同様の規則を定義しています。私の知る限り、このすべての規則がリストされている仕様の場所は1つではありません。スペックを開いて「OSGI-INF」を検索すると、すべてのオカレンスを見つけることができます:-)あまり多くないので心配しないでください。