4

お互いを自動検出するEclipseプラグインを作成することは可能ですか?

私は2つの主要な状況で動作する必要があるプラグインのセットを開発しています:

  • 個別に
  • 互いに協調して。

個別に実行する場合、プラグインは「正常に機能する」必要がありますが、協調する場合、プラグインは同じモデルコンテンツの一部を共有し、プラグインの1つは、コンテンツを共有する他のプラグインのリストをユーザーに提示する必要があります。例えば:

Fooプラグインは、オントロジーを共有できる次のプラグインを検出しました。

[]バープラグイン

[]Bazプラグイン

[]共有しないでください

Eclipseは、他のプラグインのこの種の自動検出を容易にする内部公開/検出方法を提供していますか?

4

2 に答える 2

1

答えは、Eclipsexml拡張機能とosgiPOJOサービスの両方の利点を組み合わせた宣言型サービスを介して行う必要があります。osgiサービスのように暗黙的に動的であるが、Eclipse拡張機能のように「オンデマンド」でロードされるもの。

2006年にeclipse3.3で導入されたこれらの概念は、このプレゼンテーションで説明されています。

宣言型サービスには、他のサービスへの参照を定義するオプションがあります。参照のカーディナリティを指定することもできます。カーディナリティは2つの数値を使用して指定されます。最初の数値、0または1はオプション性を示し、2番目の数値、1またはnは多重度を示します。

実際には、これらのDS(宣言型サービス)は、BundleContextにアクセスする必要があるため、簡単には使用できません。つまり、BundleActivatorを追跡する必要がありますが、これは必ずしも簡単ではありません...

ある種のサービス指向コンポーネントモデルを定義する必要がある場合、このプレゼンテーションでは、現在存在するさまざまな代替案と、それらの「宣言型サービス」について詳しく説明する必要があります。


rcreswickがDSに関連して見つけたものを公開するには:

于 2008-10-17T19:23:54.713 に答える
0

OSGI Service Registry は、プラグイン自体ではなく、実行時に pojo ベースのサービスの共有を実現できます。OSGI API、Declarative Services、Spring DM、iPojo に直接コーディングするなど、これを容易にするいくつかのオプションがあります (他にもあると思います)。

動的なオブザーバー/オブザーバブル スタイル ソリューションを実現する手段として、ホワイトボード パターンを確認することをお勧めします。

于 2008-10-17T19:48:31.607 に答える