5.0.7

昨年末にTapestry-5.0.7がリリースされました。以下は私が5.0.6からアップグレードした際に問題となった点です。

tapestry-uploadが壊れてます

MLのこの投稿で指摘されてるように、ファイルをアップロードしようとするとNullPointerExceptionが発生してしまいます。この投稿にあるように、springのCharacterEncodingFilterを使うと回避できます。

追記: Utf8Filterを、RequestFilterを実装するかわりにHttpServletRequestFilterを実装して、MultipartFilterの前に入れてやるのが正解っぽい。あとで詳しく書く。
→書いた: http://d.hatena.ne.jp/butyricacid/20080313/1205387948

レスポンスに404とか返したいとき(解決)のコードが動かなくなってます

ComponentEventResultProcessorのメソッドprocessComponentEventのシグネチャが変更されたためで、以下のようにしました。

  • ErrorResponseクラスは以前のと同じです。
  • ErrorResponseResultProcessorは別クラスにわけずにAppModule内で定義しています。
// AppModule.java
public ComponentEventResultProcessor buildErrorResponseResultProcessor(final Response response) {
	return new ComponentEventResultProcessor<ErrorResponse>() {
		public void processComponentEvent(
				ErrorResponse errorResponse, Component component, String methodDescripion) throws IOException {

			response.sendError(errorResponse.getStatusCode(), errorResponse.getMessage());
		}
	};
}

public void contributeComponentEventResultProcessor(
		@InjectService("ErrorResponseResultProcessor")
		ComponentEventResultProcessor errorResponseResultProcessor,
		MappedConfiguration<Class, ComponentEventResultProcessor> configuration) {

	configuration.add(ErrorResponse.class, errorResponseResultProcessor);
}


あと、http://d.hatena.ne.jp/butyricacid/20071219/1198035790 のパッチは5.0.8には入りますが5.0.7には入ってないので、5.0.7に当てたのを置いておきます。5.0.7で Page Activation Context や Component Context に日本語や / などを使いたい人はどうぞ。