Wicket2は凄そうだ
2007年1月14日時点での,Wicket1.2からWicket2.0への変更点について,以下のURLのページで発表されている。
Migrate-2.0 - Wicket wiki 要約すると,以下のような感じである。英語は苦手なので間違っている箇所があると思うが,構わずに掲載してしまおう。
-
JavaSE5以上が必須になる。
-
onAttach()の親実装を先に,onDetach()の親実装を最後に呼び出すように推奨される。
-
Generics/パラメータ化された型への対応 コンポーネントが扱うモデルの型をGenericsにより規定することができるようになる。これにより,ドメイン依存のモデルをコンポーネントが強制できるようになり,より強固にアプリケーションを開発することができるようになる。
-
コンポーネントのコンストラクタの変更 コンポーネントをインスタンス化する際に,親となるコンポーネントをコンストラクタの引数に指定することが強制される(Component#add()は廃止される!)。これにより,コンストラクション時に全てのコンポーネントの階層が確定されるようになり,リッチなコンポーネントにとって便利になるだけでなく,タグの属性をダイレクトに編集ことができるようになり,更にコンポーネントの階層がマークアップファイルに一致しなかった場合に,その検出をより早く行うことができるようになる。
-
コンポーネントの入れ替え方式の変更 コンポーネントのコンストラクタの変更により,コンポーネントを入れ替えるための処理が変更となる。Component#replace()は廃止となる。その代わりに,代替メソッドであるreAttach()を使用するか,同一のIDを持つ入れ替えたいコンポーネントを対象の親コンポーネントを指定してインスタンス化することで実現する。
-
JavaSE5の列挙型の使用 従来EnumeratedTypeクラスで実現していた列挙型を,JavaSE5のenumを使用するように変更された。これにより,import文による記述の省略化を行うことができるようになる。
-
JavaSE5の戻り値型の柔軟化によるfinalの廃止 メソッドのオーバーライド時の戻り値の型に対する柔軟化(元の型のサブクラスであれば許可される)を使用するために,Component#getSession()やComponent#getApplication()などでfinalが削除された。これにより,ドメインに特化した型のインスタンスを返すgetSession()を作成することができるようになる。
-
サーブレットの代わりにフィルタが推奨される WicketServletは使用されなくなり,代わりにWicketFilterサーブレットフィルタの使用が推奨される。これにより,リソースを返すことや,ルートコンテキストにアプリケーションをマッピングすることが簡単になる。
-
@SpringBeanの属性変更 name属性は非推奨になり,代わりにidを使用する。
-
バリデーションの変更 FormComponentクラスからバリデーションの処理が分離され,新たにwicket.validationパッケージによるAPIと,wicket.validatorパッケージによる実装にバリデーションが委譲されるようになる。
-
XMLリソースバンドルの対応 JavaSE5から提供されるXMLフォーマットでのリソースバンドルが使用可能となる。これにより,直接アスキーではないコードでメッセージリソースを記述することができるようになる。
-
ISessionStoreクラスの変更
-
その他いくつかのAPI変更 しかし,これらのどれよりも大きな進歩がある。
Java EE annotations support in Wicket - TRAVELLING, AND NOT ARRIVING @Resource,@EJBそして@PersistenceUnitといったJavaEEのアノテーションをWebPageクラス内で使用可能になる。すでにGlassfish上で動作実績があるため,Wicket 2.0では確実に搭載されるだろう。 これは,wicket-javaeeモジュールとして作者(Filippo Diotalevi氏)により提供され,JIRAに登録されている。
WICKET-174 Java EE 5 support for Wicket - Wicket JIRA さらに,これらの使い方を,Google Codeで見ることができる。
WicketJavaEEIntegration - Google Code 昨年の2006年8月24日付けで,WicketはApache incubatorに登録されており,Wicket 2.0の開発とApacheへの正式参加に対する作業が日々進んでいる。かなり大きな変化の結果,Wicket 2.0は,JavaEE分野でのPOHPソリューションの代名詞となるだろう。そして,Wicketを採用した事例が日本国内でも増えていって欲しいと願っている。 Wicketの SVNから最新コードを取得し,さらに上記の WICKET-174からモジュールを得て組み合わせれば,JavaEEアノテーションを試すことが可能である。 Wicketの今後は,目を離すことができない。