私はいくつかの可能な解決策を提供しようとします。私が取り組んでいるプロジェクトのために小規模なPoCを準備するのに少し時間を費やしましたので、以下のオプションが適切であることを願っています。
重要な点:拡張ポイントを定義して、使用可能な実装を解決して見つけることは本当に簡単です。利用可能なソリューションの多くは、例えば良いとシンプルなもの、あります - 、JSPF
リソースがWEBアプリケーション
のOSGi
OSGiのための主要な問題であると、その悪いわけではないとすることができます便利である。それは重く見えますが(そしていくつかの実装は重いですが)、これは標準化されたプラットフォームの価格です。私はApache Felixをチェックすることをお勧めします。これは "軽量"モードで使用できます。ところで、それはのように疎結合プラグインベースのアプリケーションを構築されたWebコンソールを含み、役に立つことができます
いくつかの例Extending the Apache Felix Web Console
Webコンソールは、登録することにより拡張することができ
サービス属性が の インタフェースjavax.servlet.ServletのOSGiサービスfelix.webconsole.labelは、 のラベル(URLの最後のセグメント)に設定されています。各サービスは、Webコンソールプラグインまたは簡潔に プラグインと呼ばれます。
また、清潔でシンプルで、プラグインを管理するためにOSGiを使用するeie-managerをチェックすることもできます。あなたのための良い例になるかもしれません。私はJenkins/Hudsonの背後にある解決策を検討することをお勧め
カスタムプラグインフレームワーク
。私はJenkinsのプラグインシステムはかなり成熟しており、信頼性が高いと言います。良い例として使用することができます。
も、私はカスタム依存リゾルバとJSPFに基づいてプラグイン抽象レイヤを構築してきた私のプロジェクトのためにHudson Plugin Architecture
シンプルなソリューション
を確認してください。
PROS:
CONS動作します:適切なプラグインを管理せずに
- が遅くなることがあります(完全なクラスパス検索を)
- は、私はあなたが実際にいくつかのシンプルさを必要とする、すべてを制御したい場合にのみJSPFを使用することをお勧め非常に基本的な機能
- 追加の注意が必要になる場合があり
を提供します。 JPFは、たとえば、箱から出して興味深い機能の多くを提供します。
プラグインは、「ホット登録」とさえ アプリケーション実行時にデ登録することができます。さらに、登録されたプラグインは、 を「オンザフライ」でアクティブ化および非アクティブ化でき、ランタイムリソース の使用を最小限に抑えることができます。
問題はJPFが死んでいることです。
提案
Apache Felixでいくつかの時間を費やしています。それは十分に成熟しているので、あなたの投資は多く返済されるかもしれません。
私は賞金を獲得しましたが、質問はまだクローズされています。 –