アプリケーションを作成しましたが、プラグインを準備したいと考えています。私は Apache Felix を使用することに決めましたが、チュートリアルを読んだ後、それが私が望んでいた選択であったかどうかはわかりません。
アプリケーションを変更して、最初にバンドルを /plugins フォルダからロードし、すべてのバンドルを JMenuItem として JMenu に追加したいと考えています。ClassLoader を使用してそれを行うこともできましたが、OSGi はまさに私が望んでいたものだと思っていましたが、いくつかの問題に遭遇しました。
OSGi 用のコマンド ラインがありますが、ユーザーの操作なしでアプリケーションに実装する必要があり、コードでデフォルトの動作をハード コードします。
バンドルが最初に呼び出すバンドル(
start()
およびstop()
から継承されたメソッドorg.osgi.framework.BundleActivator
)の動作がありますが、実際にはアプリケーションでアプリケーションで何かを行うためのバンドルではなく、バンドルで何かを行う必要があります。
それで、OSGi (Apache Felix など) を使用してそれを作成することが可能かどうか、または ClassLoader を使用して実装し、.jar プラグインのメイン クラスを JMenuItem に明示的に変換して JMenu に追加する必要があるかどうかを教えていただけますか (もっと悪いです)アプリケーションの動的な変更をサポートしておらず、OSGi を学ぶ機会を与えてくれません)。
編集: http://karussell.wordpress.com/2009/09/16/plugable-swing-a-hello-world-osgi-example/のような sth について考えていますが、チュートリアルが見つかりません。