Wicket1.5をいろいろ見てみる - その2 WicketFilter

1.5からはWicketFilterからしリファクタリングと機能追加によりかなり変更されています。

単純に行数だけ比較しても1.4まではWicketFilterだけで1300行くらいありましたが、1.5rc4.2では500行くらいになっています。
ぶっちゃけ1.4までのWicketFilterは贔屓めに見ても綺麗なコードとは言えなかったのですが1.5のWicketFilterは非常に綺麗になってます。

1.4まではこのWicketFilter内でリソースへのアクセス判定やPRGパターンにおけるPの処理かGの処理かの判定やらいろいろ他にもやっていたのですがそういうのは他のクラスへ委譲もしくは削除されてる(?)ようです。

Apache Wicket Cookbook

Wicket本が届いた!

Apache Wicket Cookbook

Apache Wicket Cookbook

Wicketの主要開発者の1人であるIgor Vaynberg氏*1が書いたWicket本です。
さっと目次を見たところTabやAjaxやChart、認証やDIコンテナとの連携にもかなりページを割いていて、結構実践的な本になっているようです。

Wicketのバージョンは1.4系が対象ですがほとんどの部分は1.5でも適用できるとWicketの本家サイトには書かれています。

読むの楽しみです。


そうそう、CDI(旧WebBeans)との連携方法も書かれています。欧米でのJavaEEに対する関心及び普及率の高さが伺えますね〜

*1:本家MLでの登場頻度がパネェーっす

Wicket1.5をいろいろ見てみる - その1

Wicket1.5になってjar(モジュール)の構成が細分化されています。(1.5rc4.2現在)
今までだと「wicket.jar」としてまとまっていたクラス群が下記のように分割されています。

分かれてからといってmavenの依存関係に上記3つを書かないといけないかというとそうではなく、wicket-coreがwicket-utilとwicket-requestを参照しているのでmavenにおいてdependencyに追加するのはwicket-coreのみとなります。

各モジュールの役割は名前から推測できる通りです。
wicket-utilは汎用的な処理を行うAPIが提供されています(例:ConverterとかファイルI/O系とか)
wicket-requestはリクエストだったりレスポンスだったりURLのマウントだったりのAPIがまとめられています。(インターフェースが主。例えばRequestCycleはwicket-coreにあるけどそのインターフェースであるIReqeustCycleはwicket-requestにあります。)

次回はWicketFilterとかそこら辺をいろいろ書こうかと思います。

wicketstuff-core

Wicketにはさまざまな派生プロダクトがあります。以前下記のエントリーで書いたようにURLをアノテーションできれいにするやつとかです。

wicketstuff-annotationのまとめ - ひたすらプログラミング日記

んで、上記はwicketstuffというwicketを拡張したライブラリーを公開している所の1プロダクトなのですが、その様々なwicketstuffのライブラリーが「Wicketのリリースサイクルに合わせて俺らもリリースしようぜ!」的なノリで整理されたのがwicketstuff-coreになります。

GitHub - wicketstuff/core: Wicketstuff-core projects are bundled user contributions for use with Apache Wicket. They are released in step with Wicket releases to make them easy to use.
https://wicket-stuff.svn.sourceforge.net/svnroot/wicket-stuff/tags/wicketstuff-core-1.4.7/

wicketstuff-coreはmavenのマルチプロジェクト形式における親POMにあたるので実際のライブラリーはその直下にいろいろあります。上記のURLをアノテーションで指定するライブラリー、JavaEEとの統合ライブラリー、Google Mapと統合するライブラリー、Scalaと統合するライブラリー、Calendarのライブラリー、Validationのライブラリー、etc・・・

今は1.4.7のリリースに向けて最終投票を行っている途中なのでそろそろ正式リリースするっぽいです。「リリースサイクルにあってなくね?」というツッコミは無しの方向で行きましょう♪

Wicket1.4.8 リリース

Wicket1.4.8がリリースされておりますです。

今回はバグ修正が11件、細かい新規実装が13件です。
バグの内容から1.4系はかなり安定してきたなぁという感じです。

1.5はいつごろ出るんだろう?