Wicket 1.5 では今のところはReloadingWicketFilterを使わない方針で
Tomcatの起動ログで
致命的: The web application [/myapp] registered the JBDC driver [org.postgresql.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 2011/04/26 17:26:55 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc 致命的: The web application [/myapp] registered the JBDC driver [org.postgresql.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 2011/04/26 17:26:55 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads 致命的: The web application [/myapp] appears to have started a thread named [ModificationWatcher Task] but has failed to stop it. This is very likely to create a memory leak.
とか出る。
あとTomcatを何度もリロードしたら
java.lang.OutOfMemoryError: PermGen space
エラーで動かなくなる。
JDBCの方は http://d.hatena.ne.jp/shinsuke_sugaya/20100209/1265665068 ここや http://d.hatena.ne.jp/newta/20091007/1254920106 ここを見たら直ったんだけど、ModificationWatcher Taskはどうすればいいんだろうと。
1.5-RC3が出ていたので更新した。
でもReloadingWicketFilter周りは変わっていない模様。
なのでS2WicketFilterをMyS2WicketFilterとでも名前を変えて保存して、ReloadingWicketFilterではなくWicketFilterを継承するようにして、ReloadingClassLoaderを使わないようにした。
ReloadingWicketFilterは、動作モードがdeploymentになっているからReloadingClassLoaderを使わない、なんていう処理はやっていないので。
この切り替え処理を入れたMyReloadingWicketFilterを作ってそれをS2WicketFilterで継承してもよかったかもしれない。というかほとんどコードがないわけだから、S2WicketFilterの中で動作モードを見てReloadingClassLoaderを生成するべきか。まぁもう少し待とう。
フィルタ名やenv.txtの切り替えはhudsonのビルド設定→シェルの実行に sed -i を書いている。