Eclipse起動時のプラグイン活性化
Eclipseは,その起動にかかる時間をできる限り一定にするために,いろいろな工夫が施されている。プラグインの集合がEclipseを形成しているのだが,プラグインの数は半端じゃないし,起動時に活性化しなくても良いプラグインも多く存在する。すべてのプラグインを活性化していてはEclipseの起動時間は大変なことになるので,最低限起動に必要なプラグインのみが活性化されるようになっている。
さて,プラグインによっては,Eclipse起動時に何かを行わなければならない処理もあるだろう。例えば,ワークスペースに対する何らかの変更を監視するリスナーを追加したり,Eclipseを何らかのドメインに特化した開発環境にする,などが考えられる。そもそもEclipseの起動時にのみ何かを行いたいだけのプラグインもあるかもしれない(思いつかないけど)。
久々の今回は,Eclipseの起動時にプラグインを活性化させるための方法について紹介する。起動時に活性化するプラグインは,org.eclipse.ui.startup拡張ポイントを使用する。
<plugin id="..." ...>
...
<extension point="org.eclipse.ui.startup"/>
...
</plugin>
さらに,そのプラグインのPluginクラスに対して,IStartupインタフェースを実装しておく。
public class MyPlugin extends AbstractUIPlugin implements IStartup {
public void start(BundleContext context) throws Exception {
...
}
public void earlyStartup() {
...
}
}
これにより,Eclipse起動時にプラグインが活性化され,上記のMyPluginクラスのインスタンスが生成される。それと同時に,startメソッドとearlyStartupメソッドが順に呼び出される。
上記のような場合は,startメソッドとearlyStartupメソッドを呼び出すスレッドは同一のようなので,どちらに処理を記述しても問題ないだろう。まぁ気分的には,startメソッドに書くのが自然だと思う。なお,活性化時点で他のIStartup実装オブジェクトを実行したい場合は,org.eclipse.ui.startup拡張ポイントのclass属性にIStartup実装クラスを記述しておくことで実現できる。
もちろん,IStartup実装クラス内には,いつまでたってもEclipseが起動してこないのはよろしくないので,比較的短時間で終わる処理を記述することが好ましい。
| 固定リンク
この記事へのコメントは終了しました。
コメント