-Maya0.9.6リリース

http://maya.oscj.net/servlets/ProjectDocumentList?folderID=10&expandFolder=10&folderID=10
今回から、OSCJ.netにてリリースしています。

変更点 0.9.5 -> 0.9.6

  • XPathインジェクション機能が追加されました。
<html>
  <body>
    <div class="box">テンプレート上のダミー文字列</div>
  </body>
</html>
    • 上記のような特別にMaya用途としていないHTMLに対して、
<?xml version="1.0"?>
<m:maya xmlns:m="http://www.seasar.org/maya"
        xmlns:c="http://java.sun.com/jstl/core_rt">
  <c:out c:value="こんにちは" m:rendered="true"
        m:xpath="//div[@class='box']"/>
</m:maya>
    • このように、m:xpath属性によりインジェクション内容を指定することができます。
  • OGNLライブラリのバージョンを、OGNL3.0-pre2よりOGNL2.6.7に変更しました。これは、他のOGNL利用フレームワークSeasar2WebWork2など)と併用する際の便利を考えての変更です。
  • 標準のMayaServletはimplパッケージに移動しました
  • commons-poolライブラリに依存しないようになりました。
  • .mayaファイルにおいて、ノードの閉じタグやネスト構造の書き方によって挙動が変わっていた問題を解決しました。
  • URLに対応して、HTMLテンプレートファイルを探す方法は以下の通りにしました。この機構は全部org.seasar.maya.impl.source.*に実装されています。また、Jarのエントリ検索結果はキャッシュするようにしました。/foo/baa/index.htmlをリクエストされたとき、以下の順に探します。
    • [コンテキストルート]/WEB-INF/foo/baa/index.html
    • [コンテキストルート]/foo/baa/index.html
    • foo.baaパッケージのリソース、index.html
    • クラスパス中のJarの、/META-INF/foo/baa/index.html
  • MLD仕様を導入しました。テンプレートプロセッサのインジェクションにおいて、設定ノードからの変換方法を記述した、設定XMLを用います。JSPのTLDに類似します。この仕様変更に伴い、テンプレートプロセッサリゾルバが廃止されました。
  • ServiceProviderの変更。/WEB-INF/maya.conf ファイルによって、ServiceProviderが初期化されるように仕様変更しました。結果、インジェクションリゾルバや式リゾルバなどのユーザーによるカスタマイズの登録が、これまでのコードによるものではなく、maya.confのXML記述となりました。
  • ダイナミックなタグ出力のため、テンプレートやMayaファイルに直接、Elementプロセッサを記述できるようにしました(m:element をインジェクトする)。また、属性はAttributeプロセッサ(m:attribute)によって動的な追加が行えます。
  • JSPカスタムタグライブラリも、MLD仕様下にてコントロールされるようになりました。
  • テンプレート上のノードから、インジェクションした結果ノードに、名前空間のマッピング情報(NodeNamespace)をコピーするインジェクションレゾルバ(NamespacesSetter)をレゾルバチェーンのはじめに入れました。結果、リゾルバAPIがシンプルになっています。
  • その他、APIおよび実装について、多くの変更が生じました。