Release Note
過去の変更履歴
変更点 1.1.32 -> 1.1.33 (2017/03/27)
- MavenについてはMaven Central Repositoryへの公開に変更しました。
- ファイルが存在しない場合、タイムスタンプチェックが無効なときにチェックし続ける問題を修正しました。
- Mayaaのforwardをしたさいにpageスコープのキャッシュが以前のままになっている問題を修正しました。
- Servlet API 3.1に対応しました。
- HttpSessionの無効判定を修正しました。
- ページオブジェクトのキャッシュの同一判定を修正しました。
変更点 1.1.31 -> 1.1.32 (2013/08/12)
- 高負荷時にスクリプトのキャッシュ取得で無限ループになる場合がある問題を修正しました。
変更点 1.1.30 -> 1.1.31 (2013/04/07)
- 高負荷時にビルド結果取得に失敗する場合がある問題を修正しました。
- Webコンテナを使わない場合などのビルド時にNullPointerExceptionが発生する場合がある問題を修正しました。
- 1.1.30でFileGeneratorを使う処理が失敗するようになった問題を修正しました。
変更点 1.1.29 -> 1.1.30 (2013/01/19)
- JIRA[MAYAA-80] Tomcat7上でload関数を使用した際に毎回コンパイルになってPermGenを使用していた問題を修正しました。
変更点 1.1.28 -> 1.1.29 (2012/04/07)
- JIRA[MAYAA-78] commons-beanutilsを1.8.3に更新しました。
- TemplateBuilderImplにbalanceTagパラメータを追加しました。falseにするとタグのバランス修正をしなくなります。その場合、テンプレート作成者側で正しいことを保証する必要があります。
- JIRA[MAYAA-79] Servlet 3.0のweb.xmlに対応しました。([mayaa-user:933]でパッチをいただきました)
変更点 1.1.27 -> 1.1.28 (2010/12/12)
- JIRA[MAYAA-75] 動作中にdefault.mayaaのbeforeRenderを書き換えても反映されない問題を修正しました。
- JIRA[MAYAA-77] ボディを処理する必要のあるタグの場合に、子のプロセッサでflushすると親よりも先に子が出力されてしまう問題を修正しました。
- JIRA[MAYAA-76] テンプレートに対する.mayaaファイル、および親mayaaファイルを探す処理を拡張可能にしました。org.seasar.mayaa.provider.ServiceProviderファイルのparentSpecificationResolverを 差し替えることで独自の処理に入れ換えられます。
- XML/XHTMLの出力時のxml宣言で?の前の空白をtrimして出力するようにしました。
変更点 1.1.26 -> 1.1.27 (2009/10/30)
- MayaaApplicationFilterで例外ページの処理をできるようにしました。Strutsなどのフレームワークで発生した例外を対象とし、Mayaaのエラーページ処理に回せるようにします。web.xmlでMayaaApplicationFilterを設定し、パラメータ"handleException"に"true"を設定すると有効になります。
- MayaaServletにdebugオプションを追加し、debugがtrueの場合のみ、デフォルトのエラーページjava.lang.Throwable.htmlでデバッグ情報を出力するようにしました。また、MayaaServletのパラメータにセットしない場合、システムプロパティ"org.seasar.mayaa.debug"で同様の設定ができます。
- MayaaServletにdebugオプション、またはシステムプロパティ"org.seasar.mayaa.debug"をbooleanとしてスクリプトから取得するfunction isDebugMode()を追加しました。
- テンプレートのデフォルト名前空間をmime-typeから判断するようにしました。("xhtml"を含むならXHTML、それ以外ならHTML。明示すればそちらを利用)
- JIRA[MAYAA-72] テンプレートファイル置き換え時に解放されないオブジェクトが発生する問題を修正しました。
- JIRA[MAYAA-73] m:noCache="true"のときにレスポンスのCache-Controlヘッダの値をServiceProviderファイルで設定できるようにしました。互換性のため、デフォルト値はこれまでどおり"no-cache"ですが、firefoxで戻るボタンのときにキャッシュを使わせないようにするには"no-cache, no-store"にする必要があります。キャッシュしないという動作になるため、挙動がすこし変わる場合があります。
変更点 1.1.25 -> 1.1.26 (2009/06/09)
- JIRA[MAYAA-70] メインページとレイアウトページの階層が異なる場合にinsertプロセッサの動的相対パス解決で失敗する問題を修正しました。(1.1.25で発生)
変更点 1.1.24 -> 1.1.25 (2009/06/07)
- JIRA[MAYAA-58] AutoBuildでコンテキストパスが"/"以外の場合に相対パスの絶対パス化処理が正しく動作しない問題を修正しました。
- JIRA[MAYAA-62] deserializeした際、.mayaaの無いページの場合にテンプレートを再ビルドしてしまう問題を修正しました。
- JIRA[MAYAA-67] スクリプトでoriginalNodeのtoString()を実行したときに無限ループが発生する問題を修正しました。
- JIRA[MAYAA-69] カスタムタグからコンポーネントを使う側の方に親を探しに行くよう修正しました。
- 同梱するRhinoのバージョンを1.7-r2にアップデートしました。
- JIRA[MAYAA-64] SSI Includeの記述をm:insertに置き換える処理を実装しました。また、この処理が有効なとき、拡張子".inc"のファイルは自動的に全体をm:doRender(name="")で囲むようにしました。ただしmime-mappingで".inc"をHTMLかXHTMLとして設定する必要があります。
- JIRA[MAYAA-68] attributeプロセッサに、&をエスケープするかどうかを決めるescapeAmp属性を追加しました。デフォルトはtrueです。
変更点 1.1.23 -> 1.1.24 (2009/03/23)
- JIRA[MAYAA-60] Servlet 2.5, JSP 2.1 の xsd を利用するファイルをパースできるようにしました。JSP 2.1 の tld をパースできなかった問題が解決します。
変更点 1.1.22 -> 1.1.23 (2008/12/25)
- JIRA[MAYAA-59] 標準のエラーページで、例外のメッセージの HTML タグをエスケープせずに出力する問題を修正しました。(クロスサイトスクリプティングの脆弱性)
- 標準のエラーページを変更し、通常はアプリケーションサーバのエラーページになるようにしました。application スコープの debug 属性を null 以外に設定すると、これまでどおりのエラーページを表示します。(「3-12. 例外発生時のページ」)
変更点 1.1.21 -> 1.1.22 (2008/11/22)
- JIRA[MAYAA-56] ServiceProviderのtemplateBuilder設定に、パラメータとしてテンプレートをパースするときのデフォルト文字セットを指定できるようにしました。デフォルト値はこれまで通りUTF-8です。
変更点 1.1.20 -> 1.1.21 (2008/11/08)
- JIRA[MAYAA-55] スクリプトにおいて、requestスコープやsessionスコープの属性に対して「foo = 1」のようにスコープを明示せずに値をセットしようとした場合に例外が発生する問題を修正しました。
変更点 1.1.19 -> 1.1.20 (2008/10/29)
- JIRA[MAYAA-54] .mayaaファイルのルート直下にHTMLを直接記述した場合ビルド結果キャッシュが正常に作成されない問題を修正しました。
変更点 1.1.18 -> 1.1.19 (2008/09/28)
- JIRA[MAYAA-50] SimpleTagのgetJspBody()が動作するよう実装しました。
- JIRA[MAYAA-51] tldのbody-contentでemptyが指定されている場合、SKIP_BODYと同じ処理になるようにしました。(これまではdoStartTagの戻り値次第)
- JIRA[MAYAA-52] replace="false"としたプロセッサにm:attributeが書けていた問題を修正しました。
変更点 1.1.17 -> 1.1.18 (2008/06/18)
- JIRA[MAYAA-48] SimpleTagの場合に親タグの情報を取得できない問題を修正しました。
変更点 1.1.16 -> 1.1.17 (2008/03/02)
- JIRA[MAYAA-46] TagExtraInfoのgetVariableInfoがnullを返したときにNullPointerExceptionが発生する問題を修正しました。
変更点 1.1.15 -> 1.1.16 (2007/12/01)
- JIRA[MAYAA-42] テンプレートがXMLの場合でもHTMLの閉じタグ調整が有効になってしまう問題を修正しました。
変更点 1.1.14 -> 1.1.15 (2007/09/30)
- JIRA[MAYAA-40] テンプレートにコメントがあるとき、xpath="//*" でバインディングしようとするとNullPointerExceptionが発生する問題を修正しました。
- JIRA[MAYAA-41] SimpleTagにDynamicAttributeを使えない問題を修正しました。
変更点 1.1.13 -> 1.1.14 (2007/09/06)
- JIRA[MAYAA-38] DynaBeanのプロパティもJavaScriptから通常のJavaBeansと同じようにアクセスできるよう対応しました。
- JIRA[MAYAA-39] Pageスコープにあるjava.lang.Numberのオブジェクトにスクリプトで加算をおこなうと文字列加算になってしまう問題を修正しました。
変更点 1.1.12 -> 1.1.13 (2007/08/19)
- JIRA[MAYAA-32] m:mayaaタグにcacheControl属性を追加しました。cacheControl属性には静的な文字列のみ記述でき、記述した文字列がそのままCache-Controlレスポンスヘッダの値としてセットされます。noCache="true"とcacheControl属性とを両方セットした場合、noCacheの場合のレスポンスヘッダのうちCache-Controlヘッダの値のみcacheControl属性の値が優先されます。
- JIRA[MAYAA-33] MayaaServlet 以外からの呼び出しで request 情報が誤っている場合、ページ名が内部で扱うものと一致しないことがある問題に対応しました。
- JIRA[MAYAA-36] XHTMLのemptyタグの閉じ記述で、"/>"の前に空白を含めるように変更しました。(HTML互換性ガイドライン http://www.w3.org/TR/2000/REC-xhtml1-20000126/#guidelines)
- JIRA[MAYAA-37] パスの自動調整で、"./"で始まっているパス以外も対象とするオプションを追加しました。エンジン設定でPathAdjusterImplの"force"パラメータをtrueにすることで有効になります。
変更点 1.1.11 -> 1.1.12 (2007/08/05)
- テンプレートのmetaタグでcontent-typeを指定し、かつcharsetを指定しない場合、レスポンスヘッダにはcharset=UTF-8付きで返すよう変更しました。
- JIRA[MAYAA-31] エンジン設定のengineのパラメータに"convertCharset"を追加しました。デフォルトはfalseです。この値をtrueにすることで、テンプレートのmetaタグでcharset=Windows-31とした場合でもcharset=Shift_JISにして出力します。また同様にHTTPレスポンスヘッダもcharset=Shift_JISになります。
変更点 1.1.10 -> 1.1.11 (2007/07/15)
- JIRA[MAYAA-29] /WEB-INF/を含むパスへのforwardを許すように修正しました。
- JIRA[MAYAA-30] テンプレートでcharsetを指定していない場合、レスポンスにはcharsetをUTF-8とするよう変更しました。
変更点 1.1.9 -> 1.1.10 (2007/05/23)
- デフォルトでレイアウトを適用できる機能を追加しました。
- execプロセッサのsrc属性を使って読み込んだスクリプトを実行する際のスコープがタグのスコープと同一になるよう変更しました。これによりexecで宣言した変数は、execのボディ限定ではなexecと同じ階層にあるプロセッサやスクリプトで参照できるようになります。なお、script属性でスクリプトを実行する場合は、1.1.0-beta6よりこの状態になっており、ドキュメントが誤っていました。
- JIRA[MAYAA-9] pageスコープにNumber型オブジェクトをセットすると型情報が失われてしまう問題を修正しました。
- JIRA[MAYAA-27] m:id属性やm:xpath属性は、m:mayaaノード直下のノードでのみ有効となるよう変更しました。m:mayaaノード直下でない場合は警告ログが出ます。ネストしている場合の誤解が多いことへの対策です。
変更点 1.1.8 -> 1.1.9 (2007/04/30)
- JIRA[MAYAA-25] Deserialize時にresolvePrefixで mayaa.seasar.orgのnamespaceの親参照でNullPointerExceptionが発生する問題に対応しました。
- InformalPropertyAcceptableに型指定メソッド名を変更しました。古いメソッド名はdeprecatedとしました。
- VirtualPropertyAcceptable#addVirtualProperty()の第2引数をjava.lang.Objectからjava.io.Serializableに変更しました。また、VirtualPropertyに型定義が必須となるよう変更しました。
- InsertProcessorでVirtualPropertyを使えるよう変更しました。これにより、コンポーネントをMLDに定義する際にrequired指定などができるようになりました。ただし、VirtualPropertyもInformalPropertyとして扱います。
- JIRA[MAYAA-26] Mayaaファイル内のCDATAはノードと見なさないよう変更しました。ボディとして直接 ${} を書いた場合、その内側に CDATA 宣言をできるようになりました。(例: ${ <![CDATA[ '<...>' ]]> } → '<...>')
- var 無指定で宣言される変数のスコープをJavaScript Nativeルートではなく、最も外側のpageスコープとしました。これまでのように、JavaScript Nativeルートを指定したい場合(共通的なもの)は、__global__ という予約語のスコープを使うことができます。
- var 無指定対応で、委譲オブジェクトに存在するが自身に存在しないものを取得しようとして連鎖しStackOverFlowになる不具合を修正しました。
変更点 1.1.7 -> 1.1.8 (2007/04/08)
- エラーページでArrayIndexOutOfBoundsExceptionが発生する問題を修正しました。
- プロセッサの必須属性を空文字として定義していた場合は、属性の定義がない場合と同じ扱いのエラーとしました。
- attributeプロセッサのvalueを指定しないことで属性値なしの出力を可能にしました。旧仕様のHTMLの CHECKED SELECTED や、SGML用途に使用できます。ただし非推奨機能としていますのでデフォルトで有効になりません。この機能を有効にするには、標準プロセッサ定義である mayaa.mld を直接編集して、attributeのvalue属性のrequired="true"を除外する必要があります。
- 論理値の属性に対して、論理値とならない設定がされている場合にビルドエラーとしました。
- writeプロセッサを機能拡張しました。
・value属性以外に、ボディで書き表すことができるようにしました。両方指定した場合は valueが優先されます。
・value属性内から、bodyTextというwriteプロセッサ専用の値が利用できます。bodyTextを参照すると、writeプロセッサのボディ内容が得られます。writeプロセッサがボディを持たない場合は、対象のHTMLテンプレート内容となります。 - insertプロセッサのpathの指定にスクリプトが使えるようになりました。これにより実行時に動的にコンポーネントを差し替えることが可能になります。
- JIRA[MAYAA-23] echoでの属性参照、JSP カスタムタグでの自動属性セットでテンプレートの特殊文字エスケープが解決されない問題を修正しました。
- 未定義の識別子を参照すると例外になる問題を解消しました。これまでは、if (識別子 == undefined) といった式が例外が起きないようにするには、beforeRenderなどで、var 識別子; のように予め定義する必要がありました。クライアントJavaScriptと同様の扱いとなるように、NativeJavaScriptエンジンの層でも見つからない識別子に対しては、var 識別子 = undefined としたものと同等の扱いとしました。
- 識別子が予約語とぶつかってしまう場合にその識別子を参照するためのスコープを用意しました。スコープ名は "_" で、_['class'] のように利用します。参照順は 現在位置からpageまで、request、session、applicationです。StandardScopeを変更している場合はそれに準じます。
- XPathMatchesInjectionResolverがあるだけでビルドにかかる時間を軽減しました。
変更点 1.1.6 -> 1.1.7 (2007/03/08)
- JIRA[MAYAA-17] echoをバインディングしたタグでパスの自動調整が効かない問題を修正しました。
- JIRA[MAYAA-19] xpathのfunctionが使用できない問題を修正しました。
- XHTMLの場合かつreplace="false"かm:attributeのいずれかを使っていた場合に、EMPTY なタグでも閉じタグを出力していた問題を修正しました。
- JIRA[MAYAA-18] echo, elementを複数使う場合のcomponent再帰呼び出しで上手くレンダリングされない問題を修正しました。
- htmlタグやbodyタグのないテンプレートの場合、出力にhtmlタグなどが自動的に追加されてしまう問題を修正しました。
- JIRA[MAYAA-21] Specification#kill()が呼ばれるタイミングでdeadlockが発生する問題を修正しました。
- JIRA[MAYAA-22] GCが頻繁に発生する状況でIllegalStateExceptionが発生する問題を修正しました。
- APIのTemplateProcessor#kill(), NodeTreeWalker#kill() をdeprecatedにしました。同様の処理をおこないたい場合はObject#finalize()で実装してください。
- ビルド結果キャッシュのファイル名規則を変更しました。ディレクトリ名の区切りを.(ピリオド)にして単一のファイル名にしていたところを、`(バッククォート)で区切るようにしました。
- /default.mayaaを利用するリクエスト(/default.htmlへのアクセス)があった場合、内部エラーではなくPageNotFoundExceptionが発生するようにしました。この際、リクエストがあったことをdebugレベルでログ出力します。(/default.mayaaの名前は設定に準じます)
変更点 1.1.5 -> 1.1.6 (2007/01/14)
- warを展開しない状態でもweb.xmlのtaglib-locationが有効になるようにしました。(/WEB-INF/foo.tldの形式)
- commons-loggingを1.1から1.0.4に戻しました。1.1はLog4Jと一緒に使うと undeploy時にNullPointerExceptionが発生することがあります。
- InsertProcessorでpathに"/"始まりでも"./"始まりでもないパスを指定した場合にページキャッシュが効かない問題を修正しました。
- escapeXmlの処理でシングルクォーテーションをエスケープしないよう変更しました。
- 自動ビルド時にコンテキストパスが必要となる場合があるため、設定で指定できるようにしました。ServiceProviderファイルのEngine設定の"autoBuild.contextPath"パラメータです。デフォルトは"/"。
- 同梱するJaxenのバージョンを1.1にアップデートしました。
- AutoPageBuilderのファイル名フィルタで、正規表現の場合にファイル名のみとマッチングしていたところをフルパスとマッチングするよう変更しました。
- Engineを明示的に破棄するメソッド"destroy()"を追加しました。destroy()が呼ばれた後のEngineの動作は保証しません。
- コマンドラインから実行してレンダリング結果ファイルを生成するFileGeneratorを追加しました。
- グローバル関数"throwJava"を追加しました。レンダリング中にスクリプトからJavaの例外を投げたい場合に使用します。(ServiceCycle#throwJava(Throwable)を追加)
- m:replace="false"としたテンプレート側タグのid属性にスクリプトを指定していた場合に属性が出力されない問題を修正しました。
変更点 1.1.4 -> 1.1.5 (2006/12/07)
- 同梱するRhinoのバージョンを1.6-r5にアップデートしました。
- MayaaServletのdestroyで例外が発生する問題を修正しました。
変更点 1.1.3 -> 1.1.4 (2006/12/05)
- 1.1.3での変更、"Mayaaのjarを複数Webアプリで共有した場合でも正常に動作するよう修正" の内容を削除しました。WAS6.1 で正常に動作しない場合があるためです。また、mayaa-webwork2 が動作しない問題も解決します。
- JIRA[MAYAA-8] WebSphereでundeploy時にMayaaのjarファイルが削除されない問題を修正しました。
- 書き込み可能なSourceDescriptorを定義できるようにしました。
- 標準のエラー画面に表示する情報を増やしました。
- 標準のエラー画面をMETA-INF/java.lang.Throwable.htmlのみにしました。
- 同梱するJaxenのバージョンを1.1-beta-11にアップデートしました。
- ClassLoader#getResourceAsStream()をURLConnectionに変更しました。
- URLConnectionのキャッシュを使うかどうかをシステムプロパティで設定できるようにしました。デフォルトはfalse(キャッシュを使わない)です。プロパティ名は"org.seasar.mayaa.useURLCache"、IOUtilでのみ使用しています。設定方法は変更する可能性があります。
変更点 1.1.2 -> 1.1.3 (2006/11/23)
- Mayaaのjarを複数Webアプリで共有した場合でも正常に動作するよう修正しました。
- PathAdjusterが適用されない場合があるのを修正しました。
- JIRA[MAYAA-7] Jarの内容を参照するとき、URLConnectionのキャッシュを使わないよう修正しました。。Mayaaを含むwarをdeploy解除した場合などに、Mayaaが参照するリソース(tldなど)を含むjarファイルが削除されない問題の対処となります。
- JIRA[MAYAA-13] レイアウト共有機能で、レイアウト側のhtml, mayaaを更新しても反映されない問題を修正しました。
- テンプレートに文字セット指定がされていない場合、UTF-8と見なすように変更しました。
- JavaScriptからJavaに数値を渡すとき、型情報があるならそれを維持するようにしました。
変更点 1.1.1 -> 1.1.2 (2006/09/27)
- ソースコードの文字セットをUTF-8に変更しました。
- JIRA[MAYAA-6] elementプロセッサ、echoプロセッサ、およびテンプレート上の属性において、「属性がnullの場合に出力しない」という処理で空文字列も出力しないようになっていた問題を修正しました。
- jaxenを1.1-beta-10にしました。
- エンジン設定にrequestedSuffixEnabledを追加しました。デフォルトはfalseで、trueにするとsuffix指定のアクセス(例:index$ja.html)が有効になります。suffix指定アクセスはm:templateSuffixの指定よりも優先されます。1.1.1まではデフォルトで有効な状態でした。アップグレードの際はご注意ください。
変更点 1.1.0 -> 1.1.1 (2006/09/02)
- JIRA[MAYAA-4] m:injectでインジェクションしたもののnamespaceを持つ属性を出力しないよう修正しました。
- ページのビルド結果をserializeする途中でWebアプリケーションを終了させたときに例外が出る問題を修正しました。
- セッションが既に無効化されている場合に例外が発生する問題を修正しました。
- SpecificationCacheのGCログをINFOレベルからDEBUGレベルに変更しました。
変更点 1.0.6 -> 1.0.7 (2006/09/02)
- JIRA[MAYAA-3] テンプレートにprefix付きの属性を書いた場合、その属性が出力されない問題を修正しました。
- セッションが既に無効化されている場合に例外が発生する問題を修正しました。
変更点 1.1.0-beta6 -> 1.1.0 (2006/08/13)
- JIRA[MAYAA-1] ビルドした結果をログに出力する機能を追加しました。デフォルトは無効です。有効にするにはServiceProvider設定でEngineのパラメータに"dumpEnabled"を追加し、値に"true"または"false"を指定してください。現状ではテンプレート機能、コンポーネント機能には対応していません。
- JSP2.0のDynamic Attributeをサポートしました。
- 1回のリクエスト中で同じページに一定回数以上forwardした場合に例外を投げるようにしました。この例外はエラーハンドラで扱えません。ServiceProvider設定でEngineのパラメータに"forwardLimit"を追加し、値に上限回数を指定してください。デフォルトは"10"です。
- パスの自動調整機能でinputタグのsrc属性が対象になっていなかったのを修正しました。その他いくつかの属性も対象に追加しました。
- XMLをテンプレートにした場合にデフォルト名前空間指定で例外が出る問題を修正しました。
- Maven2 から利用できるようになりました。
groupId: org.seasar.mayaa
artifactId: mayaa
詳しくは Wiki をご覧ください。(http://www.seasar.org/wiki/index.php?Maven2RepoRemote)
変更点 1.1.0-beta5 -> 1.1.0-beta6 (2006/07/30)
バグ修正などをおこなった後、正式版になる予定です。
依存ライブラリに変更があります。追加: commons-collections-3.1.jar, バージョンアップ: commons-logging-1.1.jar
- echoプロセッサにname属性を追加し、タグ名を変更できるようにしました。
- 定義されていないprefixが見つかった場合に例外を出さないようにしました。
- 直接出力となるスクリプトの処理で、処理結果がnullの場合に空文字列を出力するようにしました。
- 標準ではPageNotFoundExceptionのスタックトレースを出力しないよう変更しました。INFOレベルで"Page not found: /foo.html"の形(getMessage())のログを出力します。
- 例外ハンドラページからforwardやredirectができない問題を修正しました。
- SessionScope#getUnderlyingContext()を呼び出したときにSessionオブジェクトを生成しないよう修正しました。Sessionオブジェクトがない場合はnullを返します。
- beforeRenderおよびafterRenderでbindingを使えるようにしました。
- m:attributeのvalueにがnullの場合、属性を削除するようにしました。
- コンポーネントを再帰的に使用するとき、forEachが正常に動作しないのを修正しました。
- コンポーネントから更にコンポーネントを呼び出すとき、同じbinding変数名を再定義できるように修正しました。
- ページを再読込したときに古いページが解放されない問題を修正しました。
- VariableInfo の NESTED が正常に動作しない問題を修正しました。
- メモリ使用量を削減しました。
- 描画速度を向上させました。
- ページのビルド結果をserialize/deserializeできるようにしました。WEB-INF/.mayaaSpecCacheフォルダ以下にserファイルが作成されます。デフォルトは無効です。ServiceProvider設定でEngineのパラメータに"pageSerialize"を追加し、値に"true"または"false"を指定してください。
- ページのビルド結果をgcの回収対象にするまでの回数を指定できるようにしました。デフォルトでは5回目の解放要求で回収対象になります。ServiceProvider設定でEngineのパラメータに"surviveLimit"を追加し、値に解放要求を無視する回数を整数で指定してください。
- アプリケーション起動時にすべてのページを自動的にビルドする機能を追加しました。デフォルトは無効です。ServiceProvider設定でEngineのパラメータに"autoBuild"を追加し、値に"true"または"false"を指定してください。
変更点 1.0.5 -> 1.0.6 (2006/07/30)
1.0 系の機能追加はこのバージョンで終わりとし、以後は 1.1 系を主とします。
- 定義されていないprefixが見つかった場合に例外を出さないようにしました。
- 直接出力となるスクリプトの処理で、処理結果がnullの場合に空文字列を出力するようにしました。
- 標準ではPageNotFoundExceptionのスタックトレースを出力しないよう変更しました。INFOレベルで"Page not found: /foo.html"の形(getMessage())のログを出力します。
- echoプロセッサにname属性を追加し、タグ名を変更できるようにしました。
- 例外ハンドラページからforwardやredirectができない問題を修正しました。
- SessionScope#getUnderlyingContext()を呼び出したときにSessionオブジェクトを生成しないよう修正しました。Sessionオブジェクトがない場合はnullを返します。
変更点 1.1.0-beta4 -> 1.1.0-beta5 (2006/05/28)
- グローバル関数redirect,error後も描画処理が実行されてしまうのを修正しました。
- formatDateプロセッサとformatNumberプロセッサにdefault属性を追加しました。writeプロセッサ同様の仕様で、文字列あるいはStringを戻すスクリプトを書けます。
- PrefixMapping, PrefixAwareNameをsingletonにすることで省メモリ化しました。
- HTMLの場合にxmlnsが正しく出力されないのを修正しました。
- echoプロセッサとattributeプロセッサを組み合わせたとき、テンプレート上に存在する属性を上書きできていなかったのを修正しました。
- 初期化時に発生する例外が他の例外を引き起こすのを修正しました。
- スクリプトで"page"を直接指定した場合、ページスコープのルートを指すよう変更しました。
※"page"がカレントスコープを指すことを想定して使われている場合、意図したものと動作が変わる可能性があります。現在スコープを明示したい場合は page.__current__ を使用してください。
※現時点では VariableInfo の NESTED が正常に動作しないという問題があります。
変更点 1.0.4 -> 1.0.5 (2006/05/28)
- グローバル関数redirect,error後も描画処理が実行されてしまうのを修正しました。
- formatDateプロセッサとformatNumberプロセッサにdefault属性を追加しました。writeプロセッサ同様の仕様で、文字列あるいはStringを戻すスクリプトを書けます。
変更点 1.1.0-beta3 -> 1.1.0-beta4 (2006/05/07)
- org.seasar.mayaa.impl.MayaaApplicationFilterを追加しました。StrutsServletなどからMayaaへforwardする場合、このFilterを通すことで初期化できます。
- SimpleTagをサポートしました。
- ディレクトリへのアクセスが"/"で終わっていない場合に、"/"を付けたパスへリダイレクトするようにしました。
- 初期化時に発生する例外が他の例外を引き起こすのを修正しました。
- 空要素でないタグまで空要素出力していたのを修正しました。
変更点 1.0.3 -> 1.0.4 (2006/05/07)
(※: 1.1.0-betaでのバグ修正を1.0.3に適用したものです。一部の機能追加を含みます。)
- EngineのdoServiceにMapを渡せるよう変更しました。渡したMapはpageスコープの初期値として格納されます。
- templatePathPattern, notTemplatePathPatternのいずれにもマッチしない場合の判定を、以前の通りmime-typeで判定するように戻しました。
- テンプレートを探す位置をカスタマイズ(WEB-INF/pageなど)した場合に、テンプレートとして扱わないリソース(cssなど)を探せない問題を修正しました。
- JSPカスタムタグで例外が出たときに正しく行番号を表示するよう修正しました。
- ServiceCycle#load (m:exec src) のスクリプトをキャッシュするよう変更しました。
- .mayaaファイル上に同一のm:idを複数定義した場合、Warningログを出すよう変更しました。ServiceProviderファイルでEqualsIDInjectionResolverのパラメータreportDuplicatedIDにfalseを設定すればログを出さないようにできます。
- 何かのタグのボディ部に直接${}でスクリプトを書いた場合、そのスクリプト内のスコープがタグのスコープと同一になるよう変更しました。
- PageSourceFactoryのパラメータ folder と absolutePath を追加型に変更しました。複数書くことで複数のパスを有効にできます。上書きを前提として使用している場合には意図しない動作をする可能性がありますので、ご注意ください。
- スクリプトのブレースの数の整合性チェックをするとき、文字列内かどうかの判定をしていなかったバグを修正しました。
- パスの自動調整で"/"で終わるパスの場合に例外が出るのを修正しました。
- Mayaaファイルのタグボディとして<などのエンティティ参照を書いた場合にエンティティ解決していなかったのを修正しました。このバグを前提に作られているものがある場合には正常に動作しなくなるかもしれませんのでご注意ください。
- jaxenを1.1-beta-8から1.1-beta-9にバージョンアップしました。
- org.seasar.mayaa.impl.MayaaApplicationFilterを追加しました。StrutsServletなどからMayaaへforwardする場合、このFilterを通すことで初期化できます。
- SimpleTagをサポートしました。
- ディレクトリへのアクセスが"/"で終わっていない場合に、"/"を付けたパスへリダイレクトするようにしました。
- 初期化時に発生する例外が他の例外を引き起こすのを修正しました。
- 空要素でないタグまで空要素出力していたのを修正しました。
変更点 1.1.0-beta2 -> 1.1.0-beta3 (2006/04/23)
- .mayaaファイル上に同一のm:idを複数定義した場合、Warningログを出すよう変更しました。ServiceProviderファイルでEqualsIDInjectionResolverのパラメータreportDuplicatedIDにfalseを設定すればログを出さないようにできます。
- 何かのタグのボディ部に直接${}でスクリプトを書いた場合、そのスクリプト内のスコープがタグのスコープと同一になるよう変更しました。
- PageSourceFactoryのパラメータ folder と absolutePath を追加型に変更しました。複数書くことで複数のパスを有効にできます。上書きを前提として使用している場合には意図しない動作をする可能性がありますので、ご注意ください。
- スクリプトのブレースの数の整合性チェックをするとき、文字列内かどうかの判定をしていなかったバグを修正しました。
- パスの自動調整で"/"で終わるパスの場合に例外が出るのを修正しました。
- Mayaaファイルのタグボディとして<などのエンティティ参照を書いた場合にエンティティ解決していなかったのを修正しました。このバグを前提に作られているものがある場合には正常に動作しなくなるかもしれませんのでご注意ください。
- jaxenを1.1-beta-8から1.1-beta-9にバージョンアップしました。
変更点 1.1.0-beta1 -> 1.1.0-beta2 (2006/04/08)
- スコープ名修飾なしの場合に走査するスコープを追加できるよう、CycleFactoryImplのパラメータにaddedStandardScopeを追加しました。org.seasar.mayaa.cycle.CycleFactoryファイルに
<parameter name="addedStandardScope" value="スコープ名" />
とすることで追加できます。 - EngineのdoServiceにMapを渡せるよう変更しました。渡したMapはpageスコープの初期値として格納されます。
- templatePathPattern, notTemplatePathPatternのいずれにもマッチしない場合の判定を、以前の通りmime-typeで判定するように戻しました。
- テンプレートを探す位置をカスタマイズ(WEB-INF/pageなど)した場合に、テンプレートとして扱わないリソース(cssなど)を探せない問題を修正しました。
- JSPカスタムタグで例外が出たときに正しく行番号を表示するよう修正しました。
- ServiceCycle#load (m:exec src) のスクリプトをキャッシュするよう変更しました。
- QNameをSingletonにしてメモリを節約するよう変更しました。
変更点 1.0.3 -> 1.1.0-beta1 (2006/03/23)
- 実行時ツリーモデルを合理化し、静的なタグが多い場合のパフォーマンスを大幅に向上しました。
変更点 1.0.2 -> 1.0.3 (2006/03/19)
- JavaScriptの戻り値がvoid (Voidではなく) の場合に例外が発生するのを修正しました。
- テンプレート側にxmlns:m="http://mayaa.seasar.org"を記述する場合に、この宣言がそのまま出力されてしまうのを修正しました。"http://mayaa.seasar.org"で始まる名前空間宣言はすべて出力されません。
- 多段階のコンポーネントに同名で引数を渡すと無限ループするのを修正しました。
- JSPカスタムタグにテンプレートの属性値を渡す機能のうち、属性名のエイリアスを定義するときに、テンプレート側属性名としてQNameの形式でセットできるようにしました。
- HttpSessionオブジェクトを生成するタイミングを、setAttributeするときのみに変更しました。
- m:injectに記述したものがhtml,xhtml,xmlの名前空間に属する場合にはエラーログを出力するよう変更しました。
変更点 1.0.1 -> 1.0.2 (2006/02/26)
- ログメッセージのシングルクォーテーション (') のエスケープをしていなかったのを修正しました。
- Java5.0で実行する場合にXMLパーサーに関連するログが大量に出力されるため、それらのログレベルをDEBUGに変更しました。
- JSPカスタムタグでdoStartTagの戻り値がEVAL_BODY_BUFFEREDの場合に、doAfterBodyでHTMLへ書き込めないバグを修正しました。
- JSPカスタムタグにテンプレートの属性値を渡す機能を追加しました。この機能はデフォルトでは無効です。
- アップグレード時注意:writeプロセッサのdefault属性値をエスケープ (escapeXml, escapeEol, escapeWhitespace) の対象外にしました。
変更点 1.0.0 -> 1.0.1 (2006/01/30)
- 予約名前空間"xml"を使った場合、名前空間"xml"を定義していない場合に例外が発生する問題を修正しました。
- forEachプロセッサに単純なオブジェクト以外を使うと例外が出る問題を修正しました。
- forEachプロセッサでスレッド再利用時にNullPointerExceptionが出る問題を修正しました。
- JspFactoryを受け取れなかった場合のJSPバージョンを2.0としました。
- ライブラリのprefixマッピングで"/"開始のときはディレクトリ存在チェックをし、存在しなければInsertに変換しないようにしました。
変更点 1.0.0-rc1 -> 1.0.0 (2006/01/23)
- ServiceCycleにHTTPエラーを返すためのerror(int)とerror(int, String)を追加しました。HttpServletResponse#sendErrorに準じます。
変更点 1.0.0-beta3 -> 1.0.0-rc1 (2006/01/16)
- writeプロセッサのescapeEolで、改行文字をテンプレートがHTMLの場合は<br>に、XHTMLの場合は<br />に置き換えるよう修正しました。また、テンプレートがXMLの場合はescapeEolで何も処理しないよう変更しました。
- forward、redirectに現在ページからの相対パスを使えるよう変更しました。(相対パス解決をするのは"./"で始まる先頭から連続している部分のみです)
- MLDの定義において、タグ属性名とプロセッサ実装のプロパティ名が異なる定義をできるよう変更しました。
- forEachプロセッサを追加しました。
- formatNumberプロセッサを追加しました。
- formatDateプロセッサを追加しました。
- TemplateBuilderImplの設定のoutputWhitespaceを廃止し、代わりにoutputTemplateWhitespaceとoutputMayaaWhitespaceの2つを追加しました。
outputTemplateWhitespaceのデフォルト値はtrue、outputMayaaWhitespaceのデフォルト値はfalseです。これにより、デフォルト設定ではMayaaファイルにあるキャラクターノードの空白やタブ文字が出力されなくなります。 - EqualsIDInjectionResolverでMayaaファイルのidと一致するものを探すテンプレート上の属性を設定できるように変更しました。"{http://mayaa.seasar.org}id"は最優先かつ固定で、その次以降を指定できます。
- TLDなどのライブラリをすべて読み込む処理のタイミングを、初回アクセス時からMayaaServlet初期化時に変更しました。
変更点 1.0.0-beta2 -> 1.0.0-beta3 (2006/01/07)
- ServletAPI 2.4用のweb.xmlをパース出来ない問題を修正しました。
- プロセッサのProcessorProperty型プロパティにdefaultを設定できなかったのを修正しました。
- writeプロセッサのescapeXmlのデフォルト値をtrueに変更しました。
- writeプロセッサに改行文字を<br />に置換するプロパティescapeEolを追加しました。値はbooleanで、デフォルトはtrueです。
- レイアウトのm:extends、insertプロセッサのpathにページからの相対パスを使えるよう変更しました。(相対パス解決をするのは"./"で始まる先頭から連続している"../"のみです)
- スクリプトのload()メソッドとexecプロセッサのsrcにページからの相対パスを使えるよう変更しました。(相対パス解決をするのは"./"で始まる先頭から連続している"../"のみです)
- HTML、XHTMLのタグのパスを指定する属性のうち、"./"で始まる相対パスをサーバルートからの絶対パスに変換するよう変更しました。(相対パス解決をするのは"./"で始まる先頭から連続している"../"のみです)
変更点 1.0.0-beta1 -> 1.0.0-beta2 (2005/12/09)
- Mayaaエンジン設定に「templatePathPattern」を追加しました。値として正規表現を取ります。Mayaaがテンプレートとして扱うかどうかは、この正規表現にマッチするかどうかで判定します (requestedPathと完全マッチ)。デフォルトでは設定なしで、すべてをテンプレートとして扱います。
- Mayaaエンジン設定に「notTemplatePathPattern」を追加しました。値として正規表現を取ります。Mayaaがテンプレートとして扱うかどうかは、この正規表現にマッチしないかどうかで判定します (requestedPathと完全マッチ)。デフォルトではパターンなしです。
- templatePathPattern, およびnotTemplatePathPatternは複数指定でき、後に書いた方から順番に判定されます。
- web.xmlのtaglib-locationにjarファイル名を書いた場合、jar内のMETA-INF/taglib.tldにtaglib-uriをマッピングするよう修正しました。(WEB-INF/libにあるjarのみです)
- ファイルのタイムスタンプをチェックする回数を減らし、パフォーマンスを向上させました。
臨時:導入 War のみ (2005/12/07)
- 導入 War のパッケージングを修正しました。context ルートにアクセスするために /samples/ を通す必要があったものを、ドキュメントどおりにアクセスできるようにしました。
変更点 0.9.20a -> 1.0.0-beta1 (2005/11/28)
- HTMLのid, XHTMLのidをバインディングに使わない設定を可能にしました。
- スクリプトのコメント内に閉じブレース (}) を書くと整合性エラーになっていたのを修正しました。
- beforeRender, afterRenderのブレース整合性チェックを強化しました。
- テンプレートを探すパスの設定が正常に動作しないのを修正しました。
- テンプレートを全ファイルシステム上の指定パスから探せる設定を追加しました。org.seasar.mayaa.source.PageSourceFactoryに「absolutePath」というパラメータを設定した場合、その値をファイルシステムのパスとして扱います。
- Mayaaエンジン設定ファイルのパラメータに${ }で囲んだシステムプロパティを扱えるようにしました。
- mayaaファイルでredirectした場合、responseを一度flushしないと例外が発生していたのを修正しました。
変更点 0.9.20 -> 0.9.20a (2005/11/16)
- プロセッサプロパティの自動設定機能は意図しない動作を引き起こす場合があるため、動作しないようにしました。
変更点 0.9.19 -> 0.9.20 (2005/11/16)
- Mayaのプロダクト名をMayaaに変更しました。
- プロセッサの属性に書いたスクリプトの実行結果がundefinedの場合、期待型がBooleanの場合は今までどおりfalse、それ以外はnullを返すように変更しました。
- JSPのTagExtraInfoで指定するスクリプティング変数のスコープを正常に使えるよう修正しました。
- MayaaServletでrequestのCharacterEncodingをセットできるよう変更しました。ServiceProvider設定ファイルのengine/requestCharacterEncodingで指定します。mayaa-sampleで使用しています。
- TLDもしくはMLDに定義されているプロセッサプロパティについては、.mayaaに値の定義が無い場合、テンプレート上のノードを参照し、ノードの名前空間に属する該当する名前の属性値があれば、それを用いるように機能追加しました。
変更点 0.9.18 -> 0.9.19 (2005/11/10)
- テンプレートにスクリプトを書いた場合にエンティティ解決していなかったのを修正しました。
- レイアウトを使う場合にホストページmayaファイルのm:noCacheが有効にならないのを修正しました。
- headerスコープが正常に使えないのを修正しました。
変更点 0.9.17 -> 0.9.18 (2005/10/28)
- XMLをテンプレートとしたときにXML宣言が出力されないのを修正しました。
- レイアウト機能において、doRenderをカスケードしたページ全部を辿って探すように修正しました。
- WriteProcessorのdefaultプロパティにスクリプトを使えるよう変更しました。
- スクリプトのXMLエンティティを2重に解決していたのを修正しました。
- WriteProcessorにescapeWhitespaceプロパティを追加しました。escapeWhitespaceをtrueにするとCR, LF, タブ文字をそれぞれ
, 
, 	にエスケープします。
- AttributeProcessorのvalueにスクリプトを書いた場合、実行結果を自動的にXMLエスケープし、改行文字を空白に置き換えるよう修正しました。
変更点 0.9.16 -> 0.9.17 (2005/10/17)
- MLD中のproperty定義を、propertySet定義にまとめて再利用できるようにしました。
- API中の名前にて、~Typeと用いてるもののうち、JavaのClass型を指すものをすべて~Classと改名しました。
- mayaファイル中のXMLコメント(<!-- -->)を処理しないようにしました。
- CommentProcessorでボディを処理するようにしました。HTML出力としてコメントを 書き出したい場合、テンプレートに書くかm:commentを使うことで実現できます。
- ServiceCycle#loadにエンコーディング指定なしのものを追加しました。無指定の場合はUTF-8として読み込みます。
- サービスのファクトリ群に対し、JSFライクなマーシャル機能を実装しました。
- APIを変更しています。Underlyable→ContextAware, Parameterizable→ParameterAware としました。また、PositionAwareを新設し、ソース上の位置情報を全体的に取得できるようにしました。
- Underlyable→ContextAwareにおいて、getUnderlyingObject()メソッドをgetUnderlyingContext()と改めました。
変更点 0.9.15 -> 0.9.16 (2005/10/05)
- InsertProcessorにおいて、ページをハードリファレンスで保持していたのを、SoftReferenceをもちいて参照保持するように修正しました。
- プロセッサプロパティのプロパティ設定メカニズムに、カスタマイズ可能な型変換機能を追加しました。
- XMLのハンドルユーティリティにおいて、ソースSystemIDと行番号を常に取れるようにしました。その利用で、MLDおよびTLDのパース結果において、SystemIDと行番号を例外メッセージおよびツール等で利用するために保持しています。
- m:rendered="true"によるエレメントの複製機能は、m:replace="false"によって発動するように変更しました。一方、m:rendered="false"と明示した場合、そのノード全体を削除するようになっています。m:replaceはデフォルトがfalse、m:renderedはデフォルトがtrueです。
- XHTMLのプレフィックスマッピングが適切に描画されない問題が、プロパティ設定メカニズムの変更に伴って再発していたものを修正しました。
- ページのスクリプトイベント(m:beforeRenderおよびm:afterRender)について、コンポーネントやレイアウト機能による複数ページが連携する際のイベント呼び出し順について、仕様を整理し、修正しました。
変更点 0.9.14 -> 0.9.15 (2005/09/30)
- 空の属性があるタグをレンダリングした場合に"null"が入る問題が再発したのを修正しました。
- テンプレートとmayaファイルをロックしないよう修正しました。
- テンプレートとmayaファイルを削除した場合、キャッシュを使わないように変更しました。
変更点 0.9.13 -> 0.9.14 (2005/09/28)
- JSF等のミドルウェアから利用するために、描画前のデコードフェーズを実行できる機能を追加しました。
- JSF等のミドルウェアから利用するために、スクリプトをELライクに実行する機能を追加しました。
- WEBコンテナがスレッドをプールすることに起因するバグを解決しました。このバグはとても重大なものなので、以前のバージョンをご利用の場合は、すみやかにアップデートください。
変更点 0.9.12 -> 0.9.13 (2005/09/27)
- テンプレートコンポーネントから自コンポーネントを呼び出すネスト構造のときに、きちんとm:doBaseを呼べるようにコールスタック処理を追加しました。
- ページやテンプレートのオブジェクトのキャッシュの効率を見直し、インスタンス生成の個数を減らすようにチューニングしました。
- テンプレートとしてXMLを使えるようにしました。
- m:echoプロセッサを追加しました。テンプレートに無い属性を追加することができます。テンプレートのタグにある属性の値を置き換えることができます。スクリプトから属性の名前を変数名として指定することで元の属性の値を利用できます。
- 例外メッセージテンプレートでオリジナルノードとインジェクションノードを参照できるようにしました。
- 「page」スコープのメソッド群がうまくJavaScript中から呼び出せないバグを修正しました。
- mayaノードの、m:classおよび、m:scopeを廃止しました。代わりに、より汎用なAttributeScope#newAttribute(String, Class)メソッドを追加しました。
- SessionのコンテキストであるHttpSessionオブジェクトの生成を必要になるまで遅延するようにしました。
- 同梱のRhinoのバージョンを最新の1.6-r2に置換えました。
- Cycleのフラッシュ関連の仕組みを整理微調整しました。
- XMLテンプレートで用いられるプレフィックスの解決において、.maya上のプレフィックスマッピングをテンプレート上でそのまま使っている箇所があったので修正しました。
- ライセンスを、SSL1.1から、ASL2.0に変更しました。
- ログ文字列の出力において、適切な文字列フォーマット処理を行えていなかった箇所を修正し、適切な出力が行われるようにしました。
- NekoHTML0.9.5の挙動にて、ごくまれにxmlns:*というプレフィックスマッピングの記述を、xmlns名前空間の単なる属性としてSAXハンドラにわたってくることがある場合の、回避を行いました。
- 強制的にMayaの出力をProxy/ブラウザキャッシュさせないようにしていたところを、設定可能にし、デフォルト状態ではキャッシュコントロールをしないようにしました。
- テンプレートコンポーネントも、デザイン継承機能を利用できるように修正しました。
- WARファイルによるディストロに、開発時参照用のソースコートアーカイブ(ZIPファイル)を作成・添付するようにしました。
変更点 0.9.11 -> 0.9.12 (2005/09/16)
- ProviderFactoryImplで、maya.providerファイルを読み込む際に、各コンポーネントの生成を決め打ちでおこなっていたところを修正しました。
- m:doRenderプロセッサで、m:rendered="true"としたときに、テンプレートエレメントが出力されない問題を修正しました。
- テンプレートエレメントが直接描画される場合に、m:rendered="false"を記述すると、そのエレメントおよび子のエレメントの出力が抑制されるS2JSF互換機能を追加しました。
- ページ描画時のイベントを、m:beforeRender属性およびm:afterRender属性のものに加え、m:beforeRenderタグおよびm:afterRenderタグでも行う機能を追加しました。
- m:pageプロセッサおよびm:doRenderプロセッサに、m:name属性を追加し、名前明示にて同一テンプレート中の複数コンポーネントブロックを呼び分けることができるようにしました。
- コンポーネント上でもちいる描画機能として、m:doBodyから分離してm:doBaseを用意しました。
- MLDのproperty定義に、final属性を追加し、アプリケーションにて変更不可の値設定を行えるようにしました。
- .mayaファイルだけでテンプレートの無いコンポーネントを作れるようにしました。
- Tiles類似のデザイン継承機能を追加しました。
- HTMLテンプレートのHTMLエレメントに直接m:classやm:beforeRenderなどの記述を許していましたが、上記デザイン継承機能と矛盾するようになったので、廃止しました。結果、ページモデルおよびページイベントの機能を利用する場合には、.mayaファイルを必要とするようになりました。
変更点 0.9.10 -> 0.9.11 (2005/09/07)
- ECMA1.3のBoolean値の取り扱いにおいて、意図しない動作となる問題を回避しました。
- テンプレート上の属性に、空白文字を値とするものがあると動作しないバグを修正しました。
- テンプレート上のエレメントのidがマッチするものが無いときに例外を出していたところを、警告のログ出力するにとどめるよう、変更しました。
- パース済みテンプレートがきちんとキャッシュされていないバグを修正しました。
- .mayaファイルの直接実行を可能にしました。ブラウザから直接.maya拡張子のURLにアクセスすると、エンジンおよび該当ページの.mayaのイベント発火を行いますが、テンプレート描画はしません。
- ServiceCycleに、スクリプトファイルをロードする、load(systemID, encoding)メソッドを追加しました。この機能によって、スクリプトソースをスクリプト実行にて読み込むことができるようになりました。
変更点 0.9.9 -> 0.9.10 (2005/09/06)
- m:forプロセッサに、最大ループ回数を制限するmaxプロパティを新設しました。
- .mayaファイル上のノードボディで直接スクリプトブロックを記述したとき、かつそのノードがm:attribute以外のノードを含まないときに、隠蔽されるべきテンプレート上の子ノードを出力してしまうバグを修正しました。
- Responseがnullを出力時にNullPointerExceptionを発生させてしまうバグを修正しました。
- m:elementプロセッサにおいて、動的に追加されたm:attributeオブジェクトを、自スレッドの他プロセッサで共有してしまうというバグを修正しました。
- ScriptResolverを廃止して、AttributeScopeによる拡張を行うように、スクリプト環境のスコープ概念と併せて変更しました。
- AttributeScope#getAttribute(String)において、スクリプト内部のオブジェクトをJavaのオブジェクトに変換せずに返していていたために問題が発生していたので、Javaオブジェクトを基本として、冗長変換を行うように修正しました。
- web.xmlに、taglib-locationにて「/WEB-INF/」を含むパスの指定を行うと不正なソース指定方法としていたところ、正常な処理を行うように変更しました。
- m:startComponentプロセッサをm:doRenderに、m:endComponentプロセッサをm:doBodyにそれぞれ統合しました。
- FolderSourceScannerのプロパティに再帰的に読むかどうかのフラグを追加しました。nameはrecursive、valueはtrueまたはfalseを指定します。
- FolderSourceScannerのプロパティに読むファイルを拡張子指定するものを追加しました。nameはextension、valueはピリオド(.)ありの拡張子を指定します。無指定の場合は対象となるファイルはありません。
- TLDの探し方を修正し、WEB-INF以下のすべてのTLDを読み込むようにしました。
- MLDの探し方をTLDに合わせて変更し、WEB-INF以下のすべてのMLDを読み込むようにしました。
- ElementProcessorをXHTMLに利用した場合において、xmlnsのマッピング定義出力を適切に行うように修正しました。
- .maya設定ファイルに、直接HTMLを書けるようにしました。
変更点 0.9.8 -> 0.9.9 (2005/08/30)
- ServiceProviderなどをStrutsなどの外部のフレームワークからも利用できるように、 ThreadLocalを利用してServiceCycleを保持するようにしました。
- TemplateProcessor、ScriptResolverといったメソッド引数にServiceCycleを取るものを全て整理し、 ServiceCycleを引数渡しせず、ServiceProviderから取得するようにしました。
- 例外時やデバッグ作業時に、実行中のテンプレートもしくは設定XMLの該当箇所を知る手がかりを得られるように、 ServiceCycle#getOriginalNode() メソッドおよび、getInjectionNode()メソッドを追加し、 エンジン中で情報更新を常に行うようにしました。
- JSP関連の機能およびコンポーネント関連の機能を、コアに移動しました。
- 同梱するNekoHTMLのバージョンを0.9.5にアップデートしました。
- 同梱するXercesのバージョンを2.7.1にアップデートしました。
- 式言語の使用を廃止し、代えてスクリプト言語を利用するようにしました。実装では、 JavaScriptのエンジンである、Rhinoを採用しています。
- 外部のスクリプトソースファイルを読み込み実行する機能を追加しました。
- テンプレートや設定ファイル等のリソース読み込みメカニズムを全面刷新しました。 maya.confファイルをJarのMETA-INFフォルダに配置しています。このことにより、 Mayaのアプリケーションを開発する際に、開発者が行わなければならない手順を簡便化できました。
- デフォルトのエラーページのテンプレートを、JarのMETA-INFフォルダ直下に配置しました。
- 本体、サンプル、テストをそれぞれ別々のEclipseプロジェクトにしました。
- ページの解決方法を変更し、/WEB-INF相対と、デフォルトパッケージ相対は読まないようにしました。 それぞれ、/WEB-INF/page相対、/META-INF相対を読むようになっています。
- ウェルカムファイルの対応ががデグレして機能していなかったものを修正しました。
- ブランクアプリケーションをWARファイルで配布するようにしました。
- ページスコープを、スタック構造とすることによって、テンプレート上でのスクリプト実行において、名前衝突が発生しないようにしました。
- BeanPropertiesProcessorおよび、StackTraceElementsProcessorを廃止しました。 スタックトレースのダンプは、ForProcessorとスクリプトの併用で対応できました。
- 例外処理を行うErrorHandler内でさらに例外が発生したときに、先のアプリケーションで生じた例外を隠蔽してしまう問題を回避しました。
変更点 0.9.7.1 -> 0.9.8 (2005/08/04)
- PageContextなどJSP-APIへの依存を局所化し、ServiceCycleオブジェクトにServlet-APIも隠蔽しました。
- 未来日付のファイルを処理するときに、無限ループにはいる問題を修正しました。
- スペックを満たさないJSPカスタムタグを利用できないようにJSPコンテナとタグの バージョンチェックする機能を復活させました。
- URLClassLoaderを前提としたJarライブラリの検索をやめ、ファイルシステムを利用したJarファイルの検索を行うようにしました。
- サンプルのプレビュー再現性においてCSSがうまく効いてなかったのを修正しました。
- デフォルト名前空間を適切に処理しないバグを修正しました。
- XML宣言を出力しない問題を修正しました。
- JSP暗黙オブジェクトの対応を追加修正しました。
- JSPカスタムタグの属性に式を指定したとき、その式の例外をキャッチして食いつぶしていたところを、キャッチしないようにして、例外がそのまま伝播するように修正しました。
- その他、細かなバグ修正およびAPI仕様の変更をおこないました。
変更点 0.9.7 -> 0.9.7.1 (2005/07/17)
- ネットワークに接続していないPC上で動作させると、web.xmlのDTD解決のために sun.comへ接続しようとして失敗し、動作しないという問題の回避策を行いました。
変更点 0.9.6 -> 0.9.7 (2005/07/05)
- 「/*」などのパスパターンにMayaサーブレットがマッピングされている際の、 ウェルカムファイルアクセスに対するパス解決機能を追加しました。
- Cactusの使用をやめ、関連Jarをプロジェクトから取り除きました。
- .mayaファイル中にネストしたタグインジェクションを記述した場合の挙動について 細かなバグを修正しました。
- ComponentPageProcessorがテンプレートボディを2度出力してしまう場合がある バグについて修正しました。
- SVNリポジトリに移動しました。https://www.seasar.org/svn/sandbox/maya/trunk がリポジトリURLとなります。
- idによるインジェクションを行う際に、/maya/*[@m:id='message']のように、2層目のみの idを検索するXPathから、/maya//*[@m:id='message']とn層目のidも検索するようにしました。
- PropertyDefinitionのサービスメソッドを変更しました。プロパティ設定をPropertyDefinition に委譲するように設計されていたものを、PropertyDefinitionはあくまでファクトリとして動作し、 ProcessorDefinition内で設定処理を行うようにしました。
- 独自の例外の基底をMayaExceptionとしました。このMayaExceptionは、 同一パッケージにあるmessage.propertiesより、完全修飾型名をキーに メッセージを取得する機能のみが実装されています。
- ページ描画途中に例外発生した際、コンテキストバッファをクリアしてなかったために、 途中まで描画された後に例外ページの書き出しを行っていました。例外処理の中で コンテキストバッファをクリアすることにより、この問題に対応しました。
- 依存するJaxenのバージョンを1.1-beta7に変更しました。
- 名前空間URIを、http://www.seasar.org/maya から http://maya.seasar.org に変更しました。