コンテキストパラメータのエンコード方法が変わるようです

Tapestry-5.0.16からコンテキストパラメータのエンコード方法が変わるようです。

I'm actively working on the issue with URL encoding/decoding. Because
of the differences between Jetty and Tomcat, I'm abandoning standard
URL encoding (i.e., %2f and all that) and using my own scheme.

As a side effect, we can now properly support null and blank string
values in page activation and event contexts (they will appear in URLs
as $N and $B, respectively).

--
Howard M. Lewis Ship

http://mail-archives.apache.org/mod_mbox/tapestry-users/200810.mbox/%3cecd0e3310810241001l28df465aob0d1cf99df3132f8@mail.gmail.com%3e

http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/URLEncoderImpl.java?view=markup&pathrev=707887
を見ると、[a-zA-Z0-9_.:-] 以外は $xxxx (xxxxはJavaの内部文字コード=UTF16) にエンコードされるようです。あと、nullと空文字が使えるようになるのはちょっと便利になるかも。


この変更によって、以前に私が書いた、コンテキストパラメータの日本語対応(というかUTF8対応)といくつかのバグ修正を行ったパッチの該当箇所は全面的に書き換えられたようなので、svnからtrunkをチェックアウトして日本語が通るかどうか確認してみました。テストコードには私が書いたテストがそのまま残っていて、そのテストは全部クリアしていました。ですので、たぶん大丈夫だとは思いますが、Tapestry5を使っている人は5.0.16を早めに試して確認しておいた方がよいかもしれません。5.0.16はRCになるはずなので、不具合がもし残ってたら早く報告しないとそのままリリースされてしまうかもしれませんので。


あと、すでに運用してる場合はパーマリンクが変わっちゃうので5.0.16に更新しづらいかもしれませんね。