1

バンドルのマニフェストをライフサイクル中いつでも(つまり、おそらくINSTALLEDとRESOLVEDの間でのみ)変更することは可能ですか(そうであれば安全です)。

質問をする別の方法は、

インストール後、解決前に、マニフェストはすでに完全に評価されていますか(つまり、それ以上の変更は無視されます)、変更するには遅すぎますか?

上記のすべてがばかげているように思われる場合、私の次の質問は、MANIFEST解決策(つまり、クラスローダーのステップでMETA-INF /MANIFEST.MFをバンドル)カスタムimplを使用します。

背景: OSGiに基づかない既存のモジュール性フレームワークを検討します。これは、既存の「プラグイン」のトーンを変更せずにデプロイし、実行時に分析を実行する機能を提供することで、OSGiへの移行を簡素化したいものです。 (「プラグイン」は明確に定義されているため、マッピングは難しくありません)BNDランタイム操作を使用して、存在しない可能性のある、またはosgiバンドルではない可能性のあるものの代わりに使用されるMANIFESTを生成して、それらを真のOSGiバンドルに変換します。マニフェスト。

うまくいけば、それは理にかなっています(@njbartlett!)

4

2 に答える 2

4

インストール/更新プロセスの一部としてマニフェストを変更するURLスキームを定義してみませんか?フレームワークがURLConnectionを介してバンドルにアクセスする場合、変更されたマニフェストを含む変更されたバンドルを返すことができます。これは基本的にWebバンドルのサポートが行うことであり、あなたにも役立つはずです。

于 2011-09-11T18:06:03.247 に答える
1

いいえ、これはできません。インストール操作中に、JARファイル全体(したがってMANIFEST.MF)が読み取られます。そのJAR内の何かを変更するには、バンドルを更新するか、アンインストールして再度インストールする必要があります。

実際にやりたいことに関して、JARをバンドルとしてインストールする前に、bndを介して分析と変換を実行できないのはなぜですか?

于 2011-09-11T17:18:42.550 に答える