2015年2月16日月曜日

ADempiere と iDempiereの違い

ADempiereとiDempiereの違いについて、
ネットでの情報、特に日本語情報の中に勘違いされやすい情報が多くありますので
ここで、私が知っている範囲で、できるだけ正確にまとめておきます。(2015年2月現在)

■iDempiereは、ADempiereの後継ではない
iDempiereは、ADempiereから派生したプロジェクトであり、後継というわけではありません。

ADempiereプロジェクトも今もなお活動中です。
2015年1月1日付けで3.8.0のLTSがリリースされたばかりで、
かなりたくさんの機能が追加され、生産管理のLiberoモジュールがデフォルト装備となったりしました。

iDempiereだけが活動しているというのは間違いで、どちらも今なお活動中であり
また、ADempiere、iDempiereにそれぞれの特徴があり、これらを比較しても、必ずしもどちらがよいといえる状況ではないといえます。

むしろ、現時点では、先に世に出て動作検証が多くされているADempiereのほうが優れている部分が多い状況であるともいえます。
一方で、ADempiereもiDempiereも、7割8割ぐらいは、Compiereというパッケージのソースコードからできており、同じDNAを持つパッケージであるため、兄弟のようなものともいえます。


■iDempiereは、プラグイン構造になっている
iDempiereは、OSGIによるプラグイン構造をもっており、サードパティがプラグインを開発して追加できる構造を持っています。
これにより、たくさんのサードパーティプラグインが増えていけば、いろいろな機能がプラグインとして提供されることが期待されていますが、現時点ではまだそのような状態にはなく、ADempiereから存在しているモジュールをiDempiere用にプラグイン化していく過程にあるといえます。


■iDempiereは、生産管理機能を持っている??
iDempiereの生産管理には、「Manufactureing Lite」と
ADempiereでの実績がある「Libero Manufacturing」があります。

・Manufactureing Lite
Manufactureing Liteについて、私は詳しくはありませんが、
現在は、MRPがないという状況のようです。
というより、下記のサイトの文言から、むしろMRPは、必要ないという考え方を持っているようで、今後も提供されることはないと考えられます。
http://wiki.idempiere.org/en/NF1.0_Manufacturing_Light

<上記サイト文言抜粋>
Please note that manufacturing methodologies like Theory of constraints or Lean don't require (and even don't recommend) the usage of MRP/CRP.

訳:メモしてください。リーンやTOC理論のような開発手法では、MRP/CRPを必要としない。MRP/CRPをお勧めさえしない。ということを。

この考え方は、個人的には疑問が残ります。
少なからず、日本の製造業企業に生産管理を導入する場合、多くの場合、MRPは必須であると考えますし、ニーズも要件も厳しいと感じているからです。


・Libero Manufacturing
一方、Libero Manufacturing についてです。
Libero Manufacturingは、MRPを実装しており、ADempiereでも実績があるため、
iDempiereでも動作するのではないかと思われる方もいるかもしれませんが
実際に、iDempiereに実装し動作させようとすると、容易にはいかないようです。
少し手直しをしたりしなければいけない部分もありますし
まだまだ動作確認が必要な部分が多くあるように思います。

私のほうでは、本流フローが動作するところまで手直しを加えており
引き続き動作検証中です。
iDempiereの生産管理に指図入庫画面がない

※Liberoは、バグが多いという情報がよくありますが、私はそういう印象を全くもっておりません。
確かにマニュアルや情報が少ないために、正常動作を確認するまでに時間がかかる部分はあり、その途中段階においてバグと判断される嫌いがあるのかもしれませんが、作者の意図を理解し利用方法の習得にいたれば、品質の高いものであることが理解できます。
また、ソースコードを見れば、非常に技術力の高い方が作成されたことも理解できます。 


■JBossとTomcat
ADempiereは、もともとJBoss4で動作しています。
iDempiereは、Tomcatで動作します。そのため、JBoss4の数倍軽くなりました。
しかし、軽快さを手に入れた分、スケーラビリティという点ではJBossに劣ります。
TomcatとEquinoxというEclipseのプラグインアーキテクチャがどこまでの規模のシステムに耐えられるかには、疑問が残る部分です。

一方、ADempiereは、JBossを採用しており、スケーラビリティの不安はありませんが、少し重たい印象はあります。
それを改善するために、日本ADempiereの会では、ADempiereをJBoss7に対応しており、JBoss4に比べて起動時間が大幅に短縮されました。
また、WebLogicやWASなどその他のJ2EEサーバでの開発も可能なようにカスタマイズをしています。


■UI
ADempiereもiDempiereも、ZKFramworkというUIのフレームワークを採用しております。
ADempiereは、まだzk3.6で、iDempiereは、zk6までバージョンアップさせています。

iDempiereでは、グリッド列を動的に並べ替えたり、非表示にしたりが可能になっており、とても便利です。
ADempiere3.8では、テーマを変えることができ、サイトの雰囲気をワンタッチで切り替えることができます。

■技術者のデリバリー
今後、ADempiereやiDempiereの導入プロジェクトが増えていったときに考えるべきことは、技術者のデリバリーの観点です。
この点では、どちらもJavaを採用しており、技術者のデリバリーは比較的容易と思われます。

ただ、ひとつ気になる点は、iDempiereでの開発は、Eclipseプラグイン開発が必須となる点です。
プラグイン開発を経験しているJava技術者は、かなり少数であると思われ、どの技術者も最初は多少の戸惑いがあると思われます。
全体ボリュームからいけば、プラグインの知識を深く必要とする開発は一部であり、大きな課題にはならないと思われますが、観点としては考慮すべき点と思われます。


■現時点での考察(2015年2月現在)
先行者利益という部分で、ADempiereのほうが機能が充実しており、また実績もありますので信頼性も高いといえます。
iDempiereの安定感としては、ADempiereには劣りますが、サードパーティのプラグインが増えていけば、かなりの機能充実が期待されますし、このタイミングで先行して、多少の検証フェーズを加味しながら導入するというのも可能な時期になっていることは確かです。
また、もともとのコミッターの多くがiDempiereにいることも心強いことです。

このように、ADempiere、iDempiereを比較したとき、絶対こっちがいいということを今しばらくは言い切れない状況にあると思います。
ADempiere、iDempiereの特徴を理解した上で、それぞれの要件にあったほうを賢明に選択することが重要であると考えられます。

2015年2月11日水曜日

ADempiere とは

ADempiereは、オープンソースコミュニティから生まれたERPパッケージです。
販売・購買・在庫・生産・会計の各業務を統合したパッケージで以下のような特徴があります。

■オープンソースである
オープンソースのため、ライセンスが無料です。
また、ソースが公開されているため、拡張やカスタマイズが可能です。

■ノンプログラミングでカスタマイズができる
画面追加や変更、画面項目の追加や変更がノンプログラミングでGUIからできます。
そのため、画面が足りない、レポートが足りない、画面項目が足りないなどといったことがあっても
GUIから簡単に追加することができ、誰でも簡単にカスタマイズができるため、コストをおさえることができます。

■開発初期からグローバルを想定している
マルチ言語、マルチ通貨、マルチ会計など、プロジェクトの立ち上げ当初からグローバルを意識したつくりになっており、グローバル対応に強いパッケージといえます。

■各業務機能が充実している
販売・購買・在庫・生産・会計の各業務を備えています。
また、人事給与、固定資産管理なども追加モジュールとして提供されています。

受注伝票、発注伝票、出荷伝票、仕入れ伝票など各伝票登録画面、
自動仕訳、入金、消しこみ処理はもちろん、
生産管理では、MRPによる所要量計算・指図作成や原価計算機能、
見込み生産のための独立所要登録機能なども備えています。

■レポートや帳票
レポートや帳票も充実しており、
注文書、納品書、請求書など標準のものが実装されています。
必要があれば、JasperReportによりカスタマイズが可能で、個別の帳票フォーマットを作成することも可能です。
オンラインレポート機能では、ノンプログラミングで自由に出力するレポートを構成することができます。

■サブシステムとの連携
サブシステムとの連携として、インポート画面を装備しており
注文データ、会計データ、ワークフローなどさまざまなデータのインポートを想定しています。

また、アウトプットとしては、レポート出力機能によりCSV、Excel、HTML、PDFとさまざまな形式でデータを出力できます。
さらに、リアルタイムな連携として、追加モジュールによりWebServiceを使用した連携にも対応が可能です。
WebServiceを使用すれば、ADempiereのデータをインポートなどの処理をはさまずに、サブシステムからリアルタイムに即時に閲覧、更新することが可能です。

2015年2月9日月曜日

iDempiereにWebFormプラグインを作成する Page5

前回に続いて、iDempiereにWebFormプラグインを作成する方法を説明する。
Page1
Page2
Page3
Page4

⑤実行構成とデプロイ設定にプラグインを追加
ここまでで、ソースの追加や設定はほぼ完了している。
残りは、実行構成のプラグインの設定と、パッケージとしてデプロイするときのプラグイン設定である。
以下の設定をする前に、一度プロジェクト全体をコンパイルしておくことをお勧めする。


1.実行構成にプラグインを追加
1.Eclipseの実行メニュー=>実行構成をクリック
2.左メニューから、Eclipseアプリケーション=>server.productを選択
3.プラグインタブをクリック
4.検索窓のテキストボックスに「libero」を入力
5.org.idempiere.liberomfg_webformsをチェック
6.レベルを4にする
7.自動開始を「true」にする
8.実行をクリック
9.正常に実行され、ブラウザで指図入庫画面が表示されればOK。

















 







2.デプロイ設定にプラグインを追加





























iDempiereにWebFormプラグインを作成する Page4

前回に続いて、iDempiereにWebFormプラグインを作成する方法を説明する。

Page1
Page2
Page3

このページでは、OSGI.INFの設定をおこなう。

④OSGI.INFの設定
ここでは、OSGI.INFを編集して、IFormFactoryの拡張ポイントを設定する。
この設定により、iDempiereのコアから、このプラグインのクラスが呼ばれるようになる。


1.org.idempiere.lieromfg_webformsプロジェクトのフォルダ内に
「OSGI_INF」フォルダを作成する。
2.「OSGI_INF」フォルダを右クリックして、新規=>その他をクリック
3.上記のウィンドウが表示されるので、
コンポーネント定義を選択して、次へをクリック

1.親フォルダに先ほど作成した「OSGI_INF」フォルダを選択
2.ファイル名を入力
3.名前を入力
4.完了をクリック

1.名前を入力
2.Classを入力
3.プロパティを追加をクリック
4.ダイアログで、名前に「service.ranking」を入力
5.ダイアログで、型に「Integer」を入力
6.ダイアログで、値に「1」を入力
7.ダイアログで、OKをクリック
8.サービスタブをクリック


1.下のほうのProvidedServicesで追加をクリック
2.ダイアログで、「org.adempiere.webui.factory.IFormFactory」
を入力して選択
3.ダイアログで、OKをクリック
4.このファイルを保存する
Page5へ続く


2015年2月8日日曜日

iDempiereにWebFormプラグインを作成する Page3

前回に続いて、iDempiereにWebFormプラグインを作成する方法を説明する。

Page1
Page2

このページでは、MANIFEST.MFの設定をおこない、プラグインの概要や依存関係などを設定する。

③MANIFEST.MFの設定
ここでは、MANIFEST.MFの設定をしていく。
MANIFEST.MFについては、こちらを参照

1.liberomfg_webformsのMANIFEST.MFをダブルクリックして開く。
3.プラグインのID、バージョン、名前を入力する
4.アクティベータで、org.adempiere.plugin.utils.AdempiereActivator
を選択する
5.このプラグインはシングルトンにチェック


1.依存関係に画像のように構成する。
これを設定すればコンパイルが通るようになる
Page4へ



iDempiereにWebFormプラグインを作成する Page2

前回に続いて、iDempiereにWebFormプラグインを作成する方法を説明する。
前回はこちら

このページでは、指図入庫のソースファイル「WOrderReceiptIssue」とIFormFactoryを実装したクラスの追加をおこなう。

②ソースコードを作成する。
1.WOrderReceiptIssueクラスをorg.eevolution.formに作成する。
このクラスは、ADempiereのLiberoに存在するクラスだが
iDempiere用に少しカスタマイズする必要がある。




2.IFormFactoryを実装したクラスを作成する。
これが、WebFormプラグインを作成するときにポイントとなるクラス。
このクラスがOSGIの拡張ポイントに設定され、iDempiereのコアから呼ばれるようになる。
そして、指定されたWebFormインスタンスを生成する役割を持っている。

 IFromFactoryのnewFormInstanceメソッドが新しいFormを作成するメソッドで
かつiDempiereのコアから呼ばれるメソッドで、
ここで新しいWebFormを作成するコードを記述すればよい。

ここでは、LiberoWebFormFactoryクラスを作成した。

また、WebForm作成時に使用するクラスローダーは、
新規プラグインのパッケージのスコープのものでなければならず、
DefaultFormFactoryを継承するだけでは、うまく動作しないので注意が必要。
 参考:New zk Form in iDempiere: ClassNotFoundException
 





この状態で、コンパイルをしてもまだエラーが出てしまう。 依存関係の設定をしていないからである。 次回は、そのあたりを説明していく。
Page3

iDempiereにWebFormプラグインを作成する Page1

前回の投稿で、iDempiereの生産管理には、指図入庫のWEB用画面がないと説明した。
ここでは、この画面の作成方法を順をおって、説明する。
また、この作成方法は、WebFormのプラグインの作成方法としても参考可能である。

☆参考サイトは、こちら☆
WebFormプラグインの作成方法(英語)
新規プラグインの作成方法(英語)

このページでは、まずプラグインプロジェクトの作成をウィザードでおこなう。

①プラグインプロジェクトの作成
1.Eclipseメニューのファイル=>新規=>その他をクリック
2.プラグインプロジェクトをクリック


1.プロジェクト名を入力
2.実行ターゲットで、OSGIフレームワークを選択、かつEquinoxを選択
3.次へをクリック

1.IDを入力:org.idempiere.liberomfg_webforms
2.バージョンを入力
3.名前を入力:Liberomfg_webforms
4.アクティベータを生成のチェックをはずす
5.次をクリック

1.以下のテンプレートを使用して・・・のチェックをはずす
2.完了をクリック
Page2へ続く


















2015年2月6日金曜日

iDempiereの生産管理に指図入庫画面がない

ADempiereでは、生産管理モジュールにLibero Manufacturingを使うことで、
MRPや製造指図管理、作業実績報告、指図入庫など生産管理機能は充実しており問題なく動作するし、
さらにADempiere 3.8ではデフォルトパッケージ内にLiberoの生産管理が含まれている。

しかし、iDempiereの生産管理は、まだまだADempiereの生産管理の完成度に追いついていないようだ。
そのひとつの理由が、iDempiereの生産管理には、現時点(2015年2月現在)で指図入庫画面(WEB版)が提供されていないこと。

指図入庫画面は、原材料や部品を払いだして製造指図を完成させる画面で、生産管理では本流フローのひとつの画面。
iDempiereでは、これがまだ提供されていない。

この本流フローのひとつの画面がないと、どうしようにも使えないので
本家でリリースされる前にこちらで作ってみた。

作成方法をこちらでご紹介しよう。

2015年2月2日月曜日

iDempiere Eclipse開発環境構築 Page3

前回に続いて、iDempiereをEclipseで開発するための環境構築について説明です。
1回目の内容は、Page1
2回目の内容は、Page2

このページでは、Buckminsterを使って、Eclipseへソースの取り込みをおこなう。


⑤ソースの配置
1.1回目でダウンロードしたソースを「c:\workspace_idempiere」に配置
1.上記のような感じで、ソースをワークスペース直下に配置する。



⑥Buckminsterでソースを読み込み
1.ファイル=>インポートをクリック
2.上記画像のように、Buckminsterをクリック
3.さらに「Materialize from Buckminster・・・」をクリック
4.次へをクリック
5.org.adempiere.sdk-feature フォルダを選択
6.完了をクリック

終了後、各プラグインのソースがEclipseにインポートされる。

iDempiere Eclipse開発環境構築 Page2

前回に続いて、iDempiereをEclipseで開発するための環境構築について説明です。
前回の内容は、こちら

このページでは、Eclipseプラグイン開発に必要なターゲットプラットフォームの設定をおこなう。

④TargetPlatformの設定
1.エクスプローラから、workspace直下に「targetPlatform」フォルダを作成する。c:\workspace_idempiere\targetPlatform
2.ウィンドウ=>設定をクリックし、以下の設定をおこなう

1.プラグイン開発=>ターゲット・プラットフォーム をクリック
2.追加ボタンを押下する
※参考:hengsinさんのページ :
https://kenai.com/projects/hengsin/pages/TargetPlatform
 


1.「何もありません:空のターゲット定義で開始」を選択して、次へ


1.名前に、「iDempiere Target Platform」を入力
2.追加ボタンをクリック


1.ディレクトリーを選択して、次へ


1.ロケーションに「${workspace_loc}/targetPlatform」を入力
2.完了をクリック


1.環境タブをクリック

1.オペレーティング・システムに「*」を入力
2.ウィンドウ操作システムに「*」を入力
3.アーキテクチャに「*」を入力
4.完了をクリック

1.作成した「iDempiere Target Platform」を選択する
2.OKボタンをクリック

☆☆☆ ページ3へ続く ☆☆☆

iDempiere Eclipse開発環境構築 Page1

ここでは、iDempiereをEclipseで開発するための環境構築について説明します。


☆まずは、参考URLを紹介☆

プラグイン開発の目次ページ
http://wiki.idempiere.org/en/Category:Plug-In_Development

Eclipse環境構築方法
http://www.globalqss.com/wiki/index.php/IDempiere/Setting_up_Eclipse

hengsinさんのページ
https://kenai.com/projects/hengsin/pages/Building



☆前準備☆
前準備として、EclipseとiDempiereのSourceCodeのダウンロードをしておく。

①Eclipse keplerのダウンロード
http://mergedoc.sourceforge.jp/
ここで、Eclipse 4.3 keplerのJava Full Versionのダウンロードがベター。

②iDempiereのソースをダウンロード
https://bitbucket.org/idempiere/idempiere
リアルタイムにソースをダウンロードしたい人でなく
区切り区切りのソースがほしいだけの場合は
上記ページで、
1.左下のダウンロードをクリック
2.ページ中央上の「タグ」をクリック
3.適当なバージョンを選んで、zipをダウンロードする
(普通は最新を選ぶ)
の手順でよい。


☆環境構築☆
このページでは、Eclipseの配置、Eclipseプラグインとして利用するBuckminsterのインストールまでをおこなう。

①Keplerを展開=> c:\eclipse_idempiere
ここでは、Cの直下に上記フォルダ名で展開

②workspaceを作成 => c:\workspace_idempiere
ここでは、Cの直下に上記フォルダ名で作成

③buckminsterプラグインのインストール


1.ヘルプ=>新規ソフトウェアのインストールをクリック

2.上記のウィンドウで、作業対象に以下のURLを入力
※URLは、Eclipseのバージョンにあわせる。(updates-xxx)

3.BuckminsterとBuckminster Sourceを選択して、フルインストールしておく




☆☆☆ ページ2へ続く ☆☆☆

SVNからGitに乗り換えたときに初めて聞くであろう用語

SVNからGitに乗り換えたときに、知らない用語がたくさん出てくる。
そんな用語をここで、まとめておく。


■clone (クローン)
クローンとは、SVNでのチェックアウトとほぼ同じ意味。
簡単に言えば、リポジトリから、ローカルにファイルを落としてくること。

ちなみに、Gitでのチェックアウトは、SVNの意味と違うので注意が必要。
Gitでのチェックアウトとは、作業ブランチを切り替える(決定する)意味。
devブランチからmasterブランチに切り替えるとき、masterブランチをチェックアウトするという。


■push (プッシュ)
リモートのリポジトリへ反映すること。
Gitでは、ローカルにリポジトリをもつので、コミットとはローカルのリポジトリに反映することとなり、その状態では、サーバーに反映されていない。
プッシュして、はじめてリモートに反映されることとなる。
ここがSVNとの大きな違いといえる。


■pull (プル)
プル=コミット+プッシュの反対。
プル=フェッチ+マージ
サーバリポジトリからローカルリポジトリにデータを取得し(これをフェッチという)、さらに作業ブランチへも反映する。(これをマージという)

[注]プルは使うなという人もいるように、実は奥が深いのがこのコマンド。
リスク回避のためには、フェッチしてマージするほうがベターのよう。


■fetch (フェッチ)
プルでおこなわれるうちの最初のほう。
サーバリポジトリからローカルリポジトリにデータを取得するまでをフェッチという。


■merge (マージ)
プルでおこなわれるうちの後のほう。
ローカルリポジトリから作業ブランチへ反映するまでをマージという。
コンフリクトが発生する場合もあるので、手動マージをおこなうなどで対処する。


■HEAD
対象のブランチの先頭のこと。
つまり、最新コミットのこと。
HEADと一言で言っても、どのブランチのHEADなのかを意識しないと危険。
(ブランチがリモートなのかローカルなのかmasterなのかdevなのかなど。)


■origin
リモートをあらわす意味で使われることが多い。


■fast forward
ブランチ元のブランチへマージしようとしたとき、ブランチ元で新たなコミットがないため、コンフリクトなしにそのままマージできること。
細かい話でいうと、HEADの書き換えだけでマージができてしまう状態のこと。

ex.
masterブランチからdevブランチを作成したあと、devブランチでコミットを1回した。
masterでは、コミットされていない。
この状態で、devブランチをmasterブランチにマージしたとき、コンフリクトなしでマージできるので、これをfast forwardという。


■non fast forward
ブランチ元のブランチへマージしようとしたとき、ブランチ元で新たなコミットがあるとき、non fast forwardという。
要は、コンフリクト(競合)しているということ。
そのまま、マージせず、手動マージするなどの対応をするのが普通。


■rebase (リベース)
一度分岐したブランチをマージするときに、分岐した歴史を消すこと
そのブランチでのコミットがあたかも、マスター上(マージ後ブランチ)でコミットされたようになる。
リベース後は、2つの枝だった状態がマスタ(マージ後ブランチ)だけの1つの枝になる。


■cherry-pick (チェリーピック)
あるブランチ上の特定のコミットだけをマスター(他のブランチ)に反映するコマンド。
リベースがブランチ上のすべてのコミットを対象にするのに対し、こちらは特定のコミットだけを対象とする。


■stash (スタッシュ)
作業の途中で、他のブランチに切り替えるときに、作業状態を記憶しておくこと。
stashにプッシュするとかいう。
Gitの場合、これをせずに、ブランチを切り替えると、コミットしていないものとかは消えてしまうので注意が必要。

再び、もとのブランチに戻ってきたときに、プッシュしたものをポップすると元の作業状態に戻すことができる。

保存したブランチと違うブランチでポップする(元に戻す)と、ブランチ違いでも適用されてしまうので注意が必要。

複数stashできて、呼び戻すときも対象のものを選ぶことができる。
stash saveするときに、メッセージもつけれる。

EGitでは、チームメニューおよびGitRepogitoriesパースペクティブでできるよう
stash changeメニューやStashリストから適用、削除を実行する感じ
http://wiki.eclipse.org/EGit/New_and_Noteworthy/2.0

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の設定でどのファイルがどう更新されるかを知っておいたほうがベター。