私は実行時に中央データベースからツールを動的に読み込むことができるメディアアプリケーションを開発しています。これらは主に、オーディオとビデオを操作するための信号処理モジュールである必要があります。私はカスタムクラスローダーの実装について読んできましたが、classLoaderを使用するにはクラスの名前を知っている必要があります。これは私にとっては正しいとは思わない。私は、アプリケーションがデプロイされた後にこれらのモジュールをビルドできるようにしたいと思います。インターフェイス名を使用してJavaアプリケーションにjarファイルを追加する
私はインターフェイスを実装する抽象クラスを拡張するためのモジュールを必要とすることを考えていました:
public abstract class AbstractModule implements myInterface{
//....
}
私はまだこれらのモジュールの著者はサブクラスに名前を付けるなるかを知るのいずれかの方法がありません..
私はosgiバンドルについて少し読んでいますが、それは有望そうです...しかし私は明らかに私のアーキテクチャ全体を再設計したくありません...私のアプリケーションのこの部分にOsgiバンドルを使用することは可能でしょうか?私の気持ちは、Osgiバンドルが自分のコンテナを動かす必要があると思われるからです。
とにかく、私のアプリケーションに動的にモジュールをロードさせるには、最高の、最もハッキリで、最も安定した方法は何ですか?モジュールは(抽象クラスを拡張するなどの)何らかの標準化を必要とします。
おかげ
私はこの文書を読んでいて、あなたが美しいと言ったように。コンテナの選択肢がどのように異なるかを詳しく説明できますか?私はmuti-tierd java-eeアプリケーションを書いています。 Osgiは、glassfishes javawsサービスを通じてデプロイされたACCで実行されているアプリケーションクライアントを(あるいはそれと並行して)実行する必要があります。この記事をすばやくスキミングした後、これはFelixオブジェクトをインスタンス化するのと同じくらい簡単になるようです。申し訳ありませんが、osgiの動作(特にコンテナ環境との対話)の詳細を知る必要があります。次のコメントにリンクを投稿してください。 – b3bop
http://felix.apache.org/site/apache-felix-framework-launching-and-embedding .html#ApacheFelixFrameworkLaunchingand埋め込み埋め込み – b3bop
私は私の答えにいくつかの詳細を追加しました。あなたがより多くのことをあなたのクライアントで詳しく説明できるなら、私はその選択肢をさらに絞り込むことができます。 – Perception