質問

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

質問をする別の方法は、だと思います。

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

上記のすべてがばかげているように思われる場合、私の次の質問は、MANIFEST解決策(つまり、META-INF / MANIFESTを取得するためのクラスローダーステップ)をラップすることが(厄介なフレームワークハックなしで)可能だと誰もが思うだろうか。バンドルからのMF)とカスタム実装。

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

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

役に立ちましたか?

解決

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

他のヒント

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top