0

この投稿では、Eclipse Early start: Eclipse プラグインで必要なバンドルが利用可能であることを確認する方法について説明します。

この投稿では、p2 update を介してインストールした後にプラグインを「早期開始」するように構成する方法について説明します: Require-Bundle および Import-Package と feature.xml が必要

この wiki エントリでは、Eclipse の遅延開始について説明しています: http://wiki.eclipse.org/Lazy_Start_Bundles

私の場合、プラグイン バンドルに必要なバンドル (Apache Wink) をロードしています。プラグインが呼び出されたときにバンドルが ACTIVE であることを確認する必要があります。存在するだけでは十分ではありません。つまり、そのパッケージをインポートする必要はありません。実行する必要があるだけなので、プラグインはそれと HTTP 通信を行うことができます。私は 2 つの解決策を考えています。どちらかについてのフィードバックをお待ちしております。または、私が考慮していない提案を歓迎します。

  1. 早期起動用に構成して、(拡張機能を介して) Eclipse の起動時に起動するようにします。私は Wink Bundle の作成者ではないので、IStartup クラスを実装するフラグメントを追加することを考えています。早期開始延長は一般的に嫌われているので、おそらく:
  2. Activator でバンドルを検索し、まだアクティブ化されていない場合はアクティブ化します。問題?
4

1 に答える 1

3

あなたが説明していることから、人々が既存のEclipseインスタンスにインストールするプラグインを作成しているように思えます。また、Apache Wink プラグインのインストール方法を制御することもできません。

これを行うには、p2.inf ファイルを追加し、適切な開始レベルを持つ自動開始プロパティを追加する必要があるため、#1 は注意が必要です。自分で apache wink プラグインを作成してバンドルする場合は、この方法をお勧めしますが、そうでない場合は #2 を使用します。

あなたがする必要があるのは、アクティベーターで次のようなことです:

Platform.getBundle("org.apache.foobar.wink").start();

シンプルですが、注意点がいくつかあります。

  1. バンドルがインストールされていない場合に備えて、null チェックを追加します。
  2. wink バンドルの開始と初期化に時間がかかる場合は、ジョブを使用して別のスレッドで wink バンドルを開始することをお勧めします。ただし、現在のバンドルで作業を行う前に、アクティベーションが完了するまで必ず待つ必要があります。
于 2013-05-24T03:59:35.737 に答える