1.4 rc1
でてるみたい。
ぱっと気づいたのは、
WICKET-1704
ResourceStreamRequestTarget.configure set wrong ContentLength for non-ascii characters
実際にはAbstractStringResourceStreamがCharset見るようになって、lengthメソッドがfinalになってる。ので、前書いたコードみたいにオーバーライドできなくなりました。
直したから気づいてねってことかなあ。
StringBufferResourceStream stream = new StringBufferResourceStream("application/octet-stream"); stream.setCharset(Charset.forName("Windows-31J")); stream.append(...);//文字列書き出しする IRequestTarget target = new ResourceStreamRequestTarget(stream,"text.csv"); getRequestCycle().setRequestTarget(target );
こうなる。単純。
CSVのダウンロードとか書くとき、悩まなくてすむようになりますね。
あと個人的には気になるのが
WICKET-1833
Ungenerifying IConverter, because overriding Component.getConverter() generated warnings in user code
ユーザーがgetConverter()書くとき警告でるからIConverterからgenericはずしちゃうよんというもの。
これどうなのかなあ。たしかに判りにくいところではあると思うし、getConverter()書くと絶対キャストで警告出ちゃうのも判るんだけど、
String rowInput = check.getRawInput();
Locale locale = getSession().getLocale();
Boolean value= (Boolean)check.getConverter(Boolean.class).convertToObject(rowInput, locale);
とかメソッドに型指定してるのにキャストとかむかつかない?
あ、こんなことする人、そういないのかな。。。
m1、m2、m3、rc1とIConverterまわりは毎回かわってるしコミッタも悩んでそう。