Ymirのバージョン0.9.6を公開しました。
リリースノート
互換性に関する変更点
- [YMIR-159]
- DefaultRequestProcessorなど、Default*というクラスは*Implというクラス名に変更になりました。(Default*クラスは残してありますが将来的に削除されます)
- 自分へのforward/proceedの際にpassthroughに正規化しないようになりました。以前の挙動と互換性を保ちたい場合はRequestProcessorImplの代わりにDefaultRequestProcessorを使用して下さい。具体的には、アプリケーションに以下のようなymir+requestProcessor.diconを置いて下さい。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN" "http://www.seasar.org/dtd/components24.dtd"> <components> <component name="requestProcessor" class="org.seasar.ymir.impl.DefaultRequestProcessor"> <property name="updaters" bindingType="none"> <meta name="delayed"> @org.seasar.ymir.util.ContainerUtils@findAllAndAscendantComponents(container, @org.seasar.ymir.Updater@class) </meta> </property> </component> </components>
- [YMIR-171] - conversationで不正な遷移をした際conversationをクリアしていましたが、クリアしないようになりました。
Bug
- [YMIR-161] - [ymir-core] proceedなどの際に設定されるRequestのqueryStringが正しくない
- [YMIR-168] - [ymir-skeleton] S2TestCaseベースのテストが実行できない
- [YMIR-175] - [ymir-core] TokenManagerImpl#TokenImplでtokenManagerのメソッドを使うようにする
- [YMIR-176] - [ymir-core] 同一session内ではTokenが毎回同じ文字列になってしまう
- [YMIR-180] - [ymir-extension] name属性つきformを持つページでGetterが自動生成されないケースがある
- [YMIR-182] - [ymir-core] developモードでスコープを使った値の乗せ換えに失敗する可能性がある
- [YMIR-186] - [ymir-extension] 自動生成ONの時にmetal:use-macroを使ったテンプレートを更新するとNPE
- [YMIR-187] - [ymir-extension] 自動生成でhrefのリンクについているリクエストパラメータに対応するSetterに@RequestParameterアノテーションがつかない
- [YMIR-188] - [ymir-extension] 既にapp.propertiesがある状態でプロジェクト再セットアップ画面が表示された際にignorePackageNamesが空
- [YMIR-189] - [ymir-extension] 自動生成対象の画面に含まれるリンクに対応するPageクラスの更新処理で_permissionDenied()の中身が空になる
- [YMIR-191] - [ymir-extension] PageBaseのFormDtoがGetterを持つ時FormDtoフィールドが正しく生成されない
- [YMIR-196] - [ymir-extension] ページテンプレートに埋め込まれているリンクのパラメータに対応するプロパティの型を指定しても反映されない
- [YMIR-197] - [ymir-extension] formのDTOを生成するようにしている時にformのDTOをGETするようなZPTを書いてもGetterがPageクラスに生成されない
- [YMIR-198] - [ymir-extension] プロパティ型が明示的に指定した型にならないことがある
- [YMIR-203] - [ymir-extension] resourceSynchronizerを使う設定にしていてもリソースが自動リフレッシュされないことがある
- [YMIR-214] - [ymir-core] 深い階層のPageでredirectionScopeが正しく動かない
- [YMIR-217] - [ymir-extension] 開発モードでJSPを使ってJSPにforwardするとforward先のページが真っ白になってしまう
- [YMIR-221] - [ymir-extension] 名前なしformに後から名前をつけてもFormDtoに値が設定されるようなコードにならない
- [YMIR-226] - [ymir-extension] aNameのようなプロパティをPageに持たせるようなテンプレートについて2回自動生成を行なうとPageBaseがおかしくなる
- [YMIR-239] - [ymir-core] PageTestCaseでPageコンポーネントの_render()が呼ばれない
Improvement
- [YMIR-58] - [ymir-core] 強制HTTPS・強制HTTPでリクエストさせることができるようにする
- [YMIR-71] - [ymir-extension] リクエストパラメータがついていないリンクやformについてはPageクラスを生成しないようにする
- [YMIR-78] - [ymir-core] クラスやメソッドに関するメタ情報を扱うコンポーネントを作成してそれ経由でメタ情報を取得するようにする
- [YMIR-117] - [ymir-core] conversationScopeをwindowId毎に分けて管理するようにする
- [YMIR-122] - @Inアノテーションによりinjectされたオブジェクトの状態変更は@Out無しでも反映されてほしい。
- [YMIR-130] - [ymir-core] web.xmlにYmirFilterのエントリをいくつも書かなくて良いようにする
- [YMIR-151] - [ymir-extension] app.propertiesのprojectRootに相対パスを書けるようにする
- [YMIR-157] - [ymir-core] Required制約にallowWhitespaceプロパティを追加する
- [YMIR-158] - [ymir-core] リクエストパラメータのインジェクトとスコープオブジェクトのインジェクトの間のフェーズを追加する
- [YMIR-160] - [ymir-core] 良く使う定数をまとめて定義しておく
- [YMIR-166] - [ymir-core] sub convresation中に@Endをつけた返り値がvoidなどのアクションが実行された時のエラーを分かりやすくする
- [YMIR-167] - [ymir-core] @BeginアノテーションにalwaysBeginプロパティを追加する
- [YMIR-170] - [ymir-extension] プロジェクトの初期設定画面でignorePackageNamesの説明を追記する
- [YMIR-171] - * [ymir-core] conversationで不正な遷移をした際conversationをクリアしないようにする
- [YMIR-172] - [ymir-extension] resourceSynchronizerプラグインに対応する
- [YMIR-173] - [ymir-core] YmirをSeasar2.3との組み合わせでも動作するようにする
- [YMIR-174] - [ymir-core] Notesをコピーするコンストラクタでaccessedをtrueにしないようにする
- [YMIR-177] - [ymir-core] Tokenに関する処理の同期化を強化する
- [YMIR-178] - [ymir-core] カスタマイズしやすいようにTypeConversionManagerImplをメソッド分けする
- [YMIR-181] - [ymir-core] app.propertiesのignorePackageNames指定で、サブパッケージ名を直接指定できるようにする
- [YMIR-183] - [ymir-core] サブディレクトリに対してもPageクラスを1:1でマッピングできるようにする
- [YMIR-184] - Requiredアノテーションで、リクエストパラメータ名を正規表現で指定した場合に正規表現にマッチするリクエストパラメータが1つもない場合にもエラーとして判断できるようにする
- [YMIR-185] - 各種アノテーションがURIパラメータをチェックするようにする
- [YMIR-190] - [ymir-extension] Freyjaのレンダクラスを利用する設定の場合に柔軟に型を決定するようにする
- [YMIR-192] - [ymir-core] 処理対象でないリクエストについても前処理を行なっているのを止める
- [YMIR-193] - [ymir-core] ActionNotFoundExceptionはPageNotFoundExceptionのサブクラスであるべき
- [YMIR-194] - [ymir-core] ExceptionHandlerが処理するExceptionの型を型パラメータとして指定するようにする
- [YMIR-195] - [ymir-extension] tal:omit-tagの式の値となるプロパティの型がbooleanになるようにする
- [YMIR-200] - [ymir-extension] DaoやDxoの自動生成を行うかどうかを切り替え可能にする
- [YMIR-201] - [ymir-extension] Dtoの自動生成時にパッケージ名やクラス名を変更できるようにする
- [YMIR-202] - [ymir-extension] プロパティ型の類推の際に上位パッケージにDtoがあればそれを使うようにする
- [YMIR-204] - [ymir-core] Creatorに対応するサブパッケージ以下以外のクラスをHotdeploy対象外にする
- [YMIR-205] - LandMarkクラスが見つからないときに例外になるなど通知して欲しい
- [YMIR-206] - [ymir-extension] requestParameterでactionをdispatchするようになっているケースでデフォルトのPOSTアクションが呼ばれたらExceptionをスローするようにする
- [YMIR-207] - [ymir-extension] requestParameterでactionをdispatchするようになっているケースでnameつきボタンしかない場合はデフォルトのPOSTアクションを生成しないようにする
- [YMIR-208] - [ymir-core] Noteのコンストラクタに渡すパラメータ列をObject...形式で受け取るようにする
- [YMIR-209] - [ymir-core] NotesにNoteを追加する際のカテゴリを複数指定できるようにする
- [YMIR-210] - [ymir-zpt] TALESのPath式でnotes/notes(category)を解釈できるようにする
- [YMIR-211] - [ymir-core] リクエストパラメータとURLパラメータを統合する
- [YMIR-212] - [ymir-extension] app.propertiesのprojectRootを指定しない場合は自動設定するようにする
- [YMIR-213] - [ymir-extension] 自動生成時の型指定をgenerics対応にする
- [YMIR-215] - [ymir-core] 1つのGetter/Setterに複数の@In/@Outアノテーションを付与できるようにする
- [YMIR-216] - [ymir-core] クラスタリング対応する
- [YMIR-218] - [ymir-core] リクエストヘッダを取得するためのScopeを追加する
- [YMIR-219] - [ymir-core] レスポンスヘッダを設定するためのScopeを追加する
- [YMIR-220] - [ymir-core] リクエストパラメータを取り出すためのScopeを追加する
- [YMIR-223] - [ymir-core] リクエストパラメータのインジェクション処理がScopeからのインジェクション処理と別になっているのを統合する
- [YMIR-224] - [ymir-extension] Pageクラスの生成の際に親クラスを指定できるようにする
- [YMIR-225] - [ymir-core] 開発モードでS2のHOT Deploy機構を無効化できるようにする
- [YMIR-227] - [ymir-core] ActionNotFoundExceptionのデフォルトのハンドラが405を返すようにする
- [YMIR-229] - [ymir-core] キャッシュを目的としたMap等の生成処理をCacheManagerに統合する
- [YMIR-230] - [ymir-core] Population用のメソッドと属性名をバインドできるようにする
- [YMIR-231] - [ymir-core] RedirectionScopeのIDをCookie渡しにしている時、windowId毎にScopeを別にすることができるようにする
- [YMIR-233] - [ymir-extension] 自動生成画面で、トリガとなった画面を今後自動生成の対象から外すことをボタンで指定できるようにする
- [YMIR-234] - [ymir-extension] 自動生成がPathMappingImp等の振る舞いを想定しているのを排除する
- [YMIR-235] - [ymir-extension] DtoのtoString()を自動生成するようにする
- [YMIR-236] - [ymir-core] Scopeから属性を取り出す際に名前だけでなく型もキーとして使用できるようにする
- [YMIR-237] - [ymir-core] Scopeから属性をインジェクトする際に属性値がnullの場合に例外をスローすることができるようにする
- [YMIR-238] - [ymir-core] Collectionアノテーションで任意のアノテーションを複数指定できるようにする
New Feature
- [YMIR-51] - [ymir-core] 値が空文字であるリクエストパラメータをInteger型のsetterで受けると0になる挙動を変更できるようにする
- [YMIR-72] - [ymir-core] DTOにもconstraintアノテーションを指定できるようにする
- [YMIR-90] - [ymir-extension] 生成するソースコードにCopyrightを付与できるようにする
- [YMIR-111] - [ymir-core] cookieScopeを追加する
- [YMIR-162] - [ymir-core] ConversationManagerを作成する
- [YMIR-163] - [ymir-extension] Dxoクラスとしてs2dxoを使わずに明示的にデータコピーを行なうようなコードも生成できるようにする
- [YMIR-179] - [ymir-extension] リクエストに対応するアクションメソッドが存在しない場合に自動生成できるようにする
- [YMIR-199] - [ymir-extension] HTMLテンプレートの更新確認日時を初期化できるようにする
- [YMIR-222] - [ymir-core] アノテーションのエイリアスを定義できるようにする
- [YMIR-228] - [ymir-core] Pageの処理時にフレームワークの処理に別処理を挟み込むためのプラグイン機構を追加する
Task
- [YMIR-159] - [ymir-core]* DefaultRequestProcessorで自分へのforwardをpassthroughに正規化しないようにする
- [YMIR-164] - [ymir-core] Subconversationのbegin時にconversation名を指定させないようにする
- [YMIR-165] - [ymir-core] LocaleUtilsからLocaleManagerを参照するようにする
- [YMIR-169] - [ymir-skeleton] H2を同梱するのを止める
- [YMIR-232] - [ymir-core] FormFileをSerializableにする