2015年2月1日日曜日

Eclipseプラグイン開発の初歩

iDempiereの開発で最初のハードルとなるのは、
Eclipseプラグイン開発についての知識。
プラグインの追加は、たびたびしたとしても、
プラグインを開発したことがある人は、かなり少数派と思われる。

iDempiereの開発では、この知識が必須となるので、
最初のハードルとなり、私も例にもれず苦労した。

そこで、Eclipseプラグイン開発の基本についてまとめておきたい。

☆まずは、基本用語について☆

■featureとは?
  プラグインのリストを定義するところ。
  featureによって、プラグインを束にして、パッケージ化するようなイメージ。
 
  たとえば、iDempiereでは、org.adempiere.server-featureというfeatureがある。
  ここには、idempiere-serverで使用されるプラグインのリストが定義されている。

■pluginとは?
  プラグインそのものが入っているところ。
  ソースファイルやjarは、こちらに入る。

■拡張ポイントとは?
  プラグインの最大の特徴は、サードパーティがプラグインを容易に提供できること。
  それを実現するのがこの拡張ポイント。
  あらかじめ、用意されている拡張ポイントに対して、
プラグインを作成することで
  既存のパッケージの動作を拡張することができる。

たとえば、iDempiereには、org.adempiere.webui.Formという拡張ポイントが用意されているが
ここに対して、新たなプラグインを作成することで新しいWebFormを追加することができる。


☆次に、主要なファイルについて☆

■feature.xml
 featureの定義を記述するファイル。
 featureに含まれるプラグインのリストやfeatureに含まれるfeature(ネストできる)
 featureが依存するプラグインなどを記述する。

■plugin.xml
 プラグインがもつ拡張ポイントなどを定義する。
 (そのプラグインがどこを拡張するのかの情報)

■MANIFEST.MF
プラグインのマニフェスト。
プラグインのID、名前、バージョンや
依存するプラグインなどの情報が記述される

■OSGI.INFと拡張ポイント
独自のプラグインを作成するときには、特にこの理解が必要。
ここにプラグインが提供するインターフェースやプラグインが使用するインターフェースを定義する。
プラグイン間の紐付きを具体的におこなうクラスを定義するイメージ。


☆最後にEclipseのエディタでの設定方法について☆

Eclipseで、feature.xmlやplugin.xmlをダブルクリックすると
専用のエディタが起動して、GUIで各ファイルを意識せずに設定できる。
GUIで設定すれば、上記で設定した各ファイルが変更される。
もちろん、feature.xmlやplugin.xmlなどを直接編集することもできるし、
GUIの設定でどのファイルがどう更新されるかを知っておいたほうがベター。

0 件のコメント:

コメントを投稿