TOP設計・移行・活用> Eclipseのアーキテクチャ
Eclipse実践プラグイン開発
Eclipse実践プラグイン開発

第1回:Eclipseとプラグイン
著者:ビーブレイクシステムズ  大森 洋行   2005/7/4
前のページ  1  2  3   4  次のページ
Eclipseのアーキテクチャ

   EclipseがJavaの統合開発環境(IDE)のデファクトスタンダードと呼ばれるようになった理由のひとつに、商用・非商用・オープンソースに関わらず、多くのすばらしいプラグインが開発され、利用できることが挙げられます。

   しかしEclipseは、JavaのIDEとして開発されているのではなく、様々な用途のツールを構築するためのプラットフォームとして開発されています。そのため、Eclipseの基本的な環境(Eclipseプラットフォーム)は、エンド・ユーザが使用するような機能をそれほど多く持っていません。

   Eclipseプラットフォームは、ランタイムとランタイム上に構築されたいくつかのコンポーネントによって構成されています(図10)。それぞれのコンポーネントは1つ以上のプラグインによって実装され、ランタイムとリソースを併せたコンポーネントをCoreと呼び、ワークベンチとJFaceを併せたコンポーネントをUIと呼んでいます。
Eclipseプラットフォーム
図10:Eclipseプラットフォーム

コンポーネント名 説明
ランタイム プラグインの動的な追加や削除、ライフサイクルの管理を行います
リソース リソース(プロジェクト、フォルダ、およびファイル)の管理を行います
ワークベンチ プラグインがメニューやアクションなどを追加したり、独自のビューやエディターなどを作成したりするための場所を定義します
SWT SWT(Standard Widget Toolkit)は、OSが提供するGUIを共通のAPIで利用するためのツールキットです
JFace SWTを利用して、プラグインに共通のUIを提供するためのツールキットです

表1:Eclipseプラットフォームの主なコンポーネント

   それでは、JavaのIDEとして使用している機能はどこにあるのでしょうか。Eclipse SDKは、Eclipseプラットフォームと、Java開発環境であるJava Development Tools(JDT)、プラグイン開発環境であるPlug-in Development Environment(PDE)から構成されており、JDTとPDEもプラグインとして実装されています(図11)。私たちはこのJDTの機能を使い、プログラミングしています。

Eclipse SDKのアーキテクチャ
図11:Eclipse SDKのアーキテクチャ


プラグイン

   プラグインは、プラットフォームに機能を追加するためのしくみであり、他のプラグインにも機能を追加することができます。機能を追加することを拡張といい、他のプラグインが拡張できる場所のことを拡張ポイントといいます。

   そして、開発したプラグインをプラグインとして動作させるためには、下記の条件を満たしている必要があります。

  • プラグイン・ランタイム・クラスと呼ばれるJavaクラスがある
  • プラグインに関する情報を記述したマニフェスト・ファイルと呼ばれるplugin.xmlがある
プラグイン・ランタイム・クラス

   プラグイン・ランタイム・クラスは、プラグインの起動や終了などのライフサイクルの機能を実装するJavaクラスのことで、org.eclipse.core.runtime.Plugin抽象クラスを継承しています。プラグイン・ランタイム・クラスのインスタンスの生成や管理は、Eclipseプラットフォームのランタイムによって行われるので、インスタンスを生成するコードを書くことはありません。

   実際には、Plugin抽象クラスを継承してプラグイン・ランタイム・クラスを実装するケースは多くなく、Eclipseプラットフォームが用意しているプラグイン・ランタイム・クラスを使用します。図12にPlugin抽象クラスとプラグイン・ランタイム・クラスの関係を示します。

Plugin抽象クラスとプラグイン・ランタイム・クラス
図12:Plugin抽象クラスとプラグイン・ランタイム・クラス
(画像をクリックすると別ウィンドウに拡大図を表示します)

   EclipseプラットフォームのUIコンポーネントを用いるプラグインを開発するためには、AbstractUIPlugin抽象クラスを使用します。AbstractUIPlugin抽象クラスは様々な用途があるので、汎用性を持たせられるように抽象クラスになっており、プラグイン・ランタイム・クラスとして使用するためには、さらに継承する必要があります。

※注2: 「Hello プラグイン」では、ウィザードによりAbstractUIPluginクラスを継承したHelloPluginクラスが作成されています。
前のページ  1  2  3   4  次のページ


ビーブレイクシステムズ社 大森 洋行
著者プロフィール
ビーブレイクシステムズ社  大森 洋行
中堅システム開発会社にて、データベース検索ソフトの開発・導入コンサルティング・セミナー講師に従事。その現場の中で、Java及びオープンソースを用いたシステム開発は今後のシステム開発の主流になると考え、それらを独学で学ぶ。本格的にそれらを用いた開発に携わるため、ビーブレイクシステムズに入社。現在、データ項目やその流れの分析に重点をおきながら、Javaやオープンソースを用いたシステム開発に携わる。


INDEX
第1回:Eclipseとプラグイン
  はじめに
  プラグイン・プロジェクト
Eclipseのアーキテクチャ
  マニフェスト・ファイルplugin.xml