Guice を JBoss AS7 (7.2.0-Alpha) にデプロイしようとしています。これは、いくつかの瓶として提供されます。私が興味を持っているのは
- ガイダンス
- guice サーブレット
- guice-persist
guice はホスト バンドルであり、guice-servlet および guice-persist はこのホストのフラグメントです。
コンテナーを起動すると、ホスト バンドルが常にインストールされ、解決され、アクティブになります。フラグメントは常にインストールされ、解決されてホスト バンドルに「含まれる」場合と含まれない場合があります。これはランダムのようです。
Eclipse Virgo も試してみましたが、動作は同じですが、インストール順序を定義することでこの問題を回避できるプランを定義する機能があります。(とにかくそれを機能させることができたようです)。
OSGi の仕様を見て、この質問に対する回答を読むと、これは予想される動作のようです。JBoss は OSGi 4.2 コンテナーであるため、ヘッダーRequire-Capability
とProvide-Capability
ヘッダーはオプションではありません。さらに、自分のものではない jar を変更したくありません。
ホスト/フラグメント バンドルを確実にインストールして解決するにはどうすればよいですか?
私が持っていた 1 つのアイデア (正しくないように思われるので、やりたがりません) は、maven-bundle-plugin/bndtools を使用し、guice バンドルを単一の super-guice-bundle にマージすることです。ビルド時に効果的に実行します。 runtme でコンテナが失敗していること。