[Seasar-user:1810] Maya0.9.4リリース

Masataka Kurihara kurihara
2005年 4月 14日 (木) 17:51:49 JST


Maya 0.9.4 リリースノート

SeasarプロジェクトMaya開発チーム
最終更新日時: 2005年4月14日

 このリリース ノートには、Maya0.1〜1.0に関するシステム動作環境、インストールの手順、
およびこれまでに判明している問題が記載されています。 これらの内容は、みなさまからの
フィードバックによって更新されますので、随時、最新情報を確認するようにしてください。
 Maya 0.1〜 1.0 に関するフィードバックを送信する方法については、下記を参照ください。
 


システム動作仕様環境:

    JavaVM: Java2 バージョン1.4.x以降
    コンテナ: Servlet API 2.3以降



システム動作確認環境:

 システムの動作は、以下の環境で確認されています。その他の環境については、適宜
フィードバックをお願いいたします。

    JavaVM: J2SDK 1.4.2_05 (5.0未確認)
    コンテナ: Tomcat4.1.31 / Tomcat5.0.28 / Jetty4.2.23



インストール手順:

 ディストリビューションはEclipseの開発プロジェクトそのままになっています。Eclipse中の
WEBコンテナ起動プラグイン等にて確認できます。また、ディストリビューションルートフォル
ダ直下の「context 」フォルダが、WEBアプリケーションの構造となっています。プラグイン
のコンテキストパスにこの「context」を設定するか、WEBコンテナのWEB-APPフォルダに
直接この「context」フォルダを配置してください。
 アプリケーション起動後、WEBブラウザより以下のURL(参考)にアクセスください。サン
プルアプリケーションおよびJavaDocを参照することができます。
 
    サンプルアプリケーション: http://localhost:8080/context/index.html
    API Javaドキュメント: http://localhost:8080/context/javadoc/index.html
 
 
 
 フィードバック方法:

 下記URLのページ内にコメントください。トラッキングやML等、今後用意いたします。下
 記URLはWikiのため、予告無く構造等が変更される恐れがあります。
 
    http://seasar.satin.jp/wiki/index.php?Maya%2Fcomment

-----------------------------------------------------------------------
変更点 0.9.3 -> 0.9.4

・ Removeマジックカスタムタグを廃止しました。Ifタグを利用ください。

・ 設定XMLにノード記述する際に、ネスト構造を許すようにしました。たとえば以下の例です。
  <?xml version="1.0" encoding="Shift_JIS"?>
  <maya xmlns:c="http://www.seasar.org/maya/jstl/core">
     <c:out mayaID="message" value="${ helloModel.greeting }">
       <doBody/>
       <c:out value="ごきげんいかが?"/>
     </c:out>
  </maya>
  mayaIDを持つノードの下に、doBodyとc:outノードがネストしています。

・ 名前空間プレフィックス「m」をxmlns:m="***"と上書きしない限り、
  「http://www.seasar.org/maya」と記述が省略されても自動的に解決するようにしました。

・ ImplicitPage関連のプロセッサおよびレゾルバ群をstandardよりimplに移動しました。

・ OutProcessorにおいて、doStartProcess()でBodyTag.EVAL_BODY_BUFFEREDを
  返すべきところを、Tag.EVAL_BODY_INCLUDEを返していたというバグを修正しました。

・ MayaContextを廃止して、PageContextに一本化しました。

・ JSPカスタムタグのプーリング方法を変更し、release()を仕様どおりに実装していない
  カスタムタグも動作するように対応しました。
  
・ OGNLエンジンをプーリングしていたために発生していたスレッドセーフ性への障害を対応
  しました。

・ テンプレートのモデルをツリーウォークできるように、オリジナルの構造を保持するように
  テンプレートビルダーの仕組みを実装しなおしました。ProcessorResolverで、この
  オリジナル構造を参照しつつ、プロセッサの解決を行うようにしています。
  
・ InjectionResolverが新規追加されました。このレゾルバは、テンプレートの構造をツリー
  ウォークし、設定XMLへの照会とinject属性の処理などを行いつつ、プロセッサ解決前
  のプリプロセスを行う仕組みです。
  
・ 各レゾルバに、Servletフィルタに似たチェーン制御機能を追加しました。この機能追加に
  より、モノシリックに実装されていたビルダの諸機能をレゾルバにアダプター化して出すことが
  できました。

・ engineSettingをデフォルト設定XMLに書くのを改め、すべてサーブレットのInitパラメータ
  に記述するように変更しました。


-----------------------------------------------------------------------
変更点 0.9.2 -> 0.9.3

・ テンプレートおよび各設定ファイルに設定したモデルオブジェクトを式で参照する際に、
  直接プロパティもしくはメソッド名を記述-解決するようになりました。
  
・ ApplicationContextをServiceProvider、TemplateContextをMayaContextに
  名前変更しました。

・ CompositeExpressionResolver、CompositeProcessorResolver、
  CompositeErrorHandlerへレゾルバやハンドラを追加した際、いままでLIFOであった
  ものを、FIFOに変更しました。
  
・ StandardServiceProviderFactoryを追加しました。

・ ライフタイムイベントで、初発のbeforeRenderが発生しない問題を修正しました。

・ 設定XMLに書かれたノードがidで引いてきたとき、ProcessorResolverでオリジナル
  のQNameが取れないという問題を修正しました。

・ 例外をページ表示するために、StackTraceElementsProcessorと
  BeanPropertiesProcessorを追加しました。
  
・ テンプレート上のmayaIDもしくはidの値によるノード参照が解決できないとき、例外
  を投げるように変更しました。
  
・ テンプレートビルド時の例外で、行番号とカラム番号を取得できるようにしました。 

・ 設定XMLおよびテンプレートの属性値にエンティティが記述され、そのまま出力される
  場合において、文字化けしていた問題を修正しました。


-----------------------------------------------------------------------
変更点 0.9.1 -> 0.9.2

・ JSP互換モードを廃止しました。

・ パースが途中で失敗した際に、再度アクセスすると中途半端な画面出力をして
  しまうバグを修正しました。

・ テンプレートおよび各設定ファイルにそれぞれモデルオブジェクトを設定する機能を
  追加しました。
  
・ テンプレートおよびページ、エンジンの各層ごとに描画前および後に指定された
  式言語を実行する機能を設けました。
  
・ モデルオブジェクトの機能および描画イベントの機能の追加に伴い、useBean
  およびactionマジックカスタムタグは廃止しました。

既知の問題 0.9.2:

・ 設定XMLおよびテンプレートの「属性値」にエンティティが記述された際に、そのまま
  出力される場合に文字化けの原因となることがあります。


-----------------------------------------------------------------------
変更点 0.9.0 -> 0.9.1

・ 名前空間の考え方を改め、名前空間の指定の無いノードは適宜補って動作
  するようにアーキテクチャの変更を行いました。

・ 名前空間の仕様変更に伴い、NodeResolverが廃止しました。

・ 名前空間の仕様変更に伴い、tagマジックカスタムタグおよびtaglibマジックカスタム
  タグ、bindingマジックカスタムタグを廃止しました。tagに変わって、名前空間指定
  「xmlns」にTLDのURIを指定する方式になっています。

・ ノードIDの指定を、設定XML上では「mayaID」、HTMLテンプレート上では、
  「m:mayaID」もしくは「id」とするようにしました。この変更に伴い、テンプレート上
  でidを式で自動生成したり、記述が出力されないように抑制することができる
  ようになります。

・ JSP互換モードを用意しました。既存のJSPを出来る限りすこしの手直しで
  Maya上で動作させる実験的な試みです(1.0ファイナルでは削除されるかも
  しれません)。

・ ExpressionContextを廃止して、TemplateContextと統合しました。

・ templateRoot設定を行ってもきちんと反映されないバグを修正しました。

・ テンプレート接尾辞のデフォルトを「_」から「$」に変更しました。

・ PageContextを内部生成するときに、booleanのエンジン設定値がきちんとわ
  たらないバグを修正しました。

・ 式の中でエンティティ解決がされていないというバグを修正しました。

・ エンジン設定を行っていた「engine」ノードは、「engineSetting」へと名前を変更
  しました。

・ attributeマジックカスタムタグによるImplicitPage(テンプレートカスタムタグ)へ
  パラメータを渡す機能の初期実装を完了しました。

・ TLDの登録について、web.xmlに定義する方法、Jarを直接指定する方法を
  実装しました。

・ TLDのパースにおいて、JSP1.2および2.0への対応を行いました。

・ TemplateErrorHandlerにおいて、該当例外名のテンプレートが見つからない場合、
  上位例外でテンプレートを探すようになりました。

-----------------------------------------------------------------------
変更点 0.4.0 -> 0.9.0

・ テンプレートのタグもしくは設定XMLのエレメントに、m:replace="false"
  と指定を行うと、インジェクトホストのタグを出力します。

・ attributeマジックカスタムタグによるImplicitPage(テンプレートカスタムタグ)へ
  パラメータを渡す機能を実装しました。同時に、ImplicitPageを直接閲覧し
  た場合、リクエストパラメータを同じ式から解決するよう切り替える機能を実装
  しました。

・ テンプレートに記述した、Entityの解決と、DTDの出力、コメントの出力を
  実装しました。

・ テンプレートのテキストボディに改行を含む複数行にて式ブロックを記述された
  場合にも適切に動作するように修正しました。

・ TemplateResolverのAPIが簡素化されました。

・ TLD周りの実装を進め、JSP1.1相当機能については完了しました。

既知の問題 0.9.0:
 
・ attributeマジックカスタムタグ周辺の実装が未完成です。

・ JSP1.2および2.0への対応がまだ完了していません。

-----------------------------------------------------------------------
変更点 0.3.0 -> 0.4.0

・ 式言語エンジンを刷新しました。新しいAPIは、org.seasar.maya.el.* です。
  デフォルトの実装としてOGNL3.0によるものを提供しています。また、式エンジンAPI
  を見直すことにより、将来の式エンジンの置き換えカスタマイズにも配慮してあります。

・上記の変更により、commons-elが削除されました。また、APIに含まれていた、
  JSR245相当のUnifiedELの実装を、一旦削除しました。

・ テンプレートによる例外ページ機能の実装が追加されました。TemplateErrorHandler
  です。このハンドラは、/context/WEB-INF/error/フォルダから発生した例外の名前が
  ついたテンプレートを探し、描画するものです。

・ Mayaエンジンのエントリポイントとして、0.3.0で提供されたFilterを削除しました。
  フォワード時の挙動など、不具合が発生したためです。

・ 他のJSPや、Mayaページ、サーブレット、コントローラーフレームワーク(Strutsなど)
  からフォワードされたときの描画について不具合が出ていた箇所を修正しました。


既知の問題 0.4.0:
 
・ attributeマジックカスタムタグによるImplicitPage(テンプレートカスタムタグ)への
  パラメータを渡す機能が未実装です。

・ TLD周りの実装をさらに進めているところです。

-----------------------------------------------------------------------
変更点 0.2.0 -> 0.3.0

・ APIの例外取り扱いを検討し、復旧不能な例外についてはRuntimeExceptionを
  継承した例外にて取り扱うようにしました。

・ 例外処理機構がAPIに追加されました。

・ TagProcessorにおいて、TryCatchFinallyを実装したJSPカスタムタグに対応しました。

・ Mayaエンジンのエントリポイントとして、従来のServletに加え、Filterとして動作する
  ものも用意しました。

・ テンプレート接尾辞のセパレータをアプリケーション設定項目としました。

・ .mayaファイルを更新した際に、自動でテンプレートを再構築する機能が動作するよう
  になりました。


既知の問題 0.3.0:
 
・ attributeマジックカスタムタグによるImplicitPage(テンプレートカスタムタグ)への
  パラメータを渡す機能が未実装です。


-----------------------------------------------------------------------
変更点 0.1.3 -> 0.2.0

・ 依存するcommons-beanutilsを1.7.0にバージョンアップして、commons-collections
  を削除しました。

・ ImplicitPage(テンプレートカスタムタグと呼んでいたもの)機能を実装しました。一部
  未実装部がありますが、簡単なサンプルは動作しています。


既知の問題 0.2.0:
 
・ attributeマジックカスタムタグによるImplicitPage(テンプレートカスタムタグ)への
  パラメータを渡す機能が未実装です。

・ .mayaファイルを更新した際に、自動でテンプレートを再構築する機能が未完成です。


-----------------------------------------------------------------------
変更点 0.1.2 -> 0.1.3

・ TLDパースにcommons-digesterを利用していたものを再構築し、digesterを外し
  ました。依存するJarライブラリを減らしました。同時に、JSP2.0以降のTLDで例外
  がスタックトレースされていた問題を修正しました。

・ ProcessorResolverのAPIが変更されました。これにより、リゾルバの作成が便利に
  なりました。しかし、まだUnstableなので、ご注意ください。将来バージョンでの変更
  の可能性があります。


既知の問題 0.1.3:
 
・ テンプレートカスタムタグの機能が未実装です。

・ .mayaファイルを更新した際に、自動でテンプレートを再構築する機能が未完成です。


-----------------------------------------------------------------------
変更点 0.1.1 -> 0.1.2

・ テンプレートや設定XMLをアプリケーション動作中に変更したときに、ダイナミックに再
  構築を行ってサービスを継続するようになりました。

・ 「xxx_ja.html」のようにsuffix固定のリクエストが行われた際の処理をきちんと行うよ
   うに修正しました。

・ ページ出力のエンコードをテンプレート中の指定で解決するように修正しました。



既知の問題 0.1.2:
 
・ テンプレートカスタムタグの機能が未実装です。

・ TLD読み込み時に、JSP2.0以降のTLDで例外が発生し、標準出力に例外のスタッ
  クトレースが出力されます。


-----------------------------------------------------------------------
変更点 0.1.0 -> 0.1.1

・ APIの範囲を見直し、Mayaのコア機能と、Standard機能を分離しました。Mayaのコア
   機能は、src-apiフォルダおよびsrc-implフォルダに配置されるソースによって実装され、
   Standard機能は、src-standardフォルダに配置されています。

・ ネットワークに接続していないPC上で動作させると、TLDのDTD解決のためにsun.com
   に接続にいって失敗し、動作しないという問題の回避策を行いました。

・ テンプレートのエンコード解決の仕様を変更し、設定XML中のtemplateエレメントを
   廃止しました。特にテンプレートのファイルエンコーディングを指定しなくても、テンプレ
   ート中のMETAタグを見て、適切なエンコーディングで読み出します。これはNekoHTML
   パーサーの機能です。


 
既知の問題 0.1.1:
 
・ 現在のところ、ページ出力は「Shift_JIS」固定です。これはソース中で特にリテラルで
   固定的に指定してる暫定実装があるためです。
 
・ 未実装機能が多くあります。


-----------------------------------------------------------------------
既知の問題 0.1.0:

・ ファーストバージョンのため、未実装機能が多くあります。
 




Seasar-user メーリングリストの案内