マスカットJavaEEフレームワーク

対応するマスカットのバージョンは1.4.0です。
マスカット本体の「maskatFW」を、解凍した「maskat」フォルダの配下に置いてください。
※マスカット本体はサイトよりダウンロードしてください。

●フレームワーク概要
このフレームワークは
-イベントファイルの情報を元に、Modelを特定し、そのModelをCallする機能。
-リクエストXMLの解析
-レスポンスXML生成の補助
-Modelクラスのテンプレート生成
を提供します。

●サーブレット
このフレームワークはひとつのServletからすべてのModelを呼び出だすよう構成されます。
Struts同様、web.xmlへのServletの定義は1つだけです。

●イベントファイル
イベントファイルにはmaskat単体には無い決まりがあります。
-パッケージの指定
 <header name="maskat_layoutID" value="org.maskat.demo.add"/>
 headerタグname="maskat_layoutID"のvalueにModelのパッケージ名を指定します。
-サーブレットの指定
 remoteUrlはすべてMaskatActionServletを指定します。
-resultタグの指定
 rootNameは"maskat"固定です。

●MaskatTemplateGenerator
Modelのテンプレートを自動生成します。
srcフォルダ直下のmaskat.propertyを元に自動生成を行います。
設定内容は以下の4種類です。
generate.src.path => 自動生成するファイルの書き込み先。通常はWEB-INF/src/を指定します。
generate.xml.path => 自動生成するイベントXMLファイルのありか。contentsを指定すれば、contents以下のイベントXMLファイルすべてが自動生成の対象となります。
generate.code.chageline => 自動生成するファイルの改行コード
generate.code.charset => 自動生成するファイルの文字コード

org.maskat.core.gen.MaskatTemplateGenerator
を実行すれば、generate.src.pathで指定したフォルダにModelクラスのテンプレートが作成されます。

指定のイベントXMLファイルのみ処理を行いたい場合は、
org.maskat.core.gen.MaskatTemplateGenerator <イベントXMLファイルパス>...
と処理対象のイベントXMLを実行引数で渡してください。

生成されるクラスは以下の設定により作成されます。
先述したパッケージ名 => このXMLのModelクラスすべてのパッケージ
componetタグのid => クラス名
eventタグのid => メソッド名
----------add_e.xml-------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE eventDef SYSTEM "eventDef.dtd">
<eventDef>
    <header name="maskat_layoutID" value="org.maskat.demo.add"/>
    <component id="local_equal">
        <event id="onclick" finish="add" type="local"/>
    </component>
    <component id="RemoteEqual">
        <event id="onclick" start="validate" type="remote" async="false" remoteUrl="../../MaskatActionServlet">
            <param rootNode="addParam">
                <source obj="remote_arg1" node="arg1" type="byte" desc="パラメータ1"/>
                <source obj="remote_arg2" node="arg2" type="byte" desc="パラメータ2"/>
            </param>
            <result rootNode="maskat">
                <target out="remote_ans" in="result"/>
            </result>
        </event>
    </component>
</eventDef>
--------------------------------------------------------
上記XMLの場合
onclickメソッドがひとつの
org.maskat.demo.add.RemoteEqual.javaが自動生成されます。
※local_equalは処理がlocalなので自動生成されません。

また、すでに同名のクラスが存在する場合は生成がスキップされます。
再度自動生成する場合は、クラスを削除してから再度実行してください。

●Model
Modelクラスの各メソッドはMaskatRequestクラスとMaskatResponseBuilderクラスの２つの引数が引き渡されます。
MaskatRequestはリクエストXMLを解析し、階層状に収めたクラスです。
MaskatResponseBuilderはレスポンスXML作成を補助するクラスです。
MaskatRequest及びMaskatResponseBuilderについては同梱のJavadocを参照ください。

●更新履歴
2007/01/25
 -MaskatTemplateGeneratorリファクタリング
  クラスがすでに存在する場合スキップするよう修正
  DomParserがDTDが無いと落ちるため、DTD定義を無視するよう修正
 -ドキュメントの充実
 -javadocを生成
 -demo_JavaEEにtable.htmlを追加
      =>tableから複数行送信した場合の処理
 -ソースの文字コードをUTF-8(LF BOMなし)に統一

2007/01/22
 maskat-JavaEE-support_1.4.0_20070122リリース
 -MaskatResponseBuilder周りの大幅な見直し
 -MaskatTemplateGeneratorの追加

2007/01/12
初版作成

---
maskat-JavaEE-support_1.4.0_20070125
作者：齋藤敏行
作者のホームページ：http://blog.pluswing.net/