パッケージ org.opengion.plugin


package org.opengion.plugin
 このドキュメントは、プラグイン類を集めた『はやぶさplugin』の API 仕様です。

 plugin には、【calendar】、【column】、【daemon】、【develop】、【io】、【query】、【table】、【view】
 があり、各カスタムタグの属性でキーワードを指定する事で、使用します。

 plugin の導入メカニズムは特殊(※)で、クラス名が、インターフェース_キーワード.java
 というクラスファイルを、plugIn というクラスパスから、起動時に読み込んで、
 システム設定ファイル(GE12)にロードします。
 本体は、システム設定ファイルのキーと正式クラス名(パッケージ付きクラス名)から、
 実際のクラスを起動します。

 よって、初期設定と同じキーワードでプラグインをオーバーロードする場合は、Tomcat等の
 アプリケーションサーバーのオーバーロードメカニズムを利用して、読み込み優先順位を
 あげる必要があります。
 Tomcatでいうと、WEB-INF の lib と classes では、classes の方がクラスロードの
 優先順位が高いので、標準plugin を lib に、カスタムplugin を classes に配置する
 ことで、プラグインをオーバーロードを実現してください。

 ただし、起動後、システム設定ファイル(GE12) を書き換える事で、任意のクラスを
 オーバーロードすることが可能ですので、先のクラスローダーでは解決できないケース
 では、こちらの方式を使用してください。

 ※ plugin の導入メカニズム
 plugin の導入メカニズムでは、Eclipseの採用している 
 OSGi(Open Service Gataway Initiative)
 と、Tomcatの採用している
 
 JMX(Java Management Extensions)
 が有名です。

 現バージョンでは、それぞれのプラグインは独立したプログラムではなく、あくまで
 内部再利用を行う為の機構の為、簡易的な方法で、実装しています。
 
    org.opengion.plugin.calendar (classes)
       → org.opengion.fukurou.util                          classes
       → org.opengion.hayabusa.common                       classes
       → org.opengion.hayabusa.resource                     classes
    org.opengion.plugin.column (classes)
       → org.opengion.fukurou.db                            classes
       → org.opengion.fukurou.model                         classes
       → org.opengion.fukurou.security                      classes
       → org.opengion.fukurou.system                        classes
       → org.opengion.fukurou.util                          classes
       → org.opengion.hayabusa.common                       classes
       → org.opengion.hayabusa.db                           classes
       → org.opengion.hayabusa.resource                     classes
    org.opengion.plugin.daemon (classes)
       → org.opengion.fukurou.db                            classes
       → org.opengion.fukurou.mail                          classes
       → org.opengion.fukurou.system                        classes
       → org.opengion.fukurou.transfer                      classes
       → org.opengion.fukurou.util                          classes
       → org.opengion.hayabusa.common                       classes
       → org.opengion.hayabusa.mail                         classes
       → org.opengion.hayabusa.report                       classes
       → org.opengion.hayabusa.report2                      classes
    org.opengion.plugin.io (classes)
       → org.opengion.fukurou.model                         classes
       → org.opengion.fukurou.system                        classes
       → org.opengion.fukurou.util                          classes
       → org.opengion.hayabusa.common                       classes
       → org.opengion.hayabusa.db                           classes
       → org.opengion.hayabusa.io                           classes
    org.opengion.plugin.query (classes)
       → org.opengion.fukurou.model                         classes
       → org.opengion.fukurou.system                        classes
       → org.opengion.fukurou.util                          classes
       → org.opengion.hayabusa.common                       classes
       → org.opengion.hayabusa.db                           classes
    org.opengion.plugin.report (classes)
       → org.opengion.fukurou.system                        classes
       → org.opengion.fukurou.util                          classes
       → org.opengion.hayabusa.common                       classes
       → org.opengion.hayabusa.db                           classes
       → org.opengion.hayabusa.report                       classes
    org.opengion.plugin.table (classes)
       → org.opengion.fukurou.db                            classes
       → org.opengion.fukurou.model                         classes
       → org.opengion.fukurou.system                        classes
       → org.opengion.fukurou.util                          classes
       → org.opengion.hayabusa.common                       classes
       → org.opengion.hayabusa.db                           classes
       → org.opengion.hayabusa.report2                      classes
       → org.opengion.hayabusa.resource                     classes
    org.opengion.plugin.view (classes)
       → org.opengion.fukurou.model                         classes
       → org.opengion.fukurou.system                        classes
       → org.opengion.fukurou.util                          classes
       → org.opengion.hayabusa.common                       classes
       → org.opengion.hayabusa.db                           classes
       → org.opengion.hayabusa.html                         classes
       → org.opengion.hayabusa.resource                     classes