EhCacheProvider

しばらく悩んでいたもの

[WARN] EhCacheProvider - Could not find configuration [hoge.Hoge]; using defaults.


仮説としては、「MavenのforkModeがおかしいんじゃね?」ということで。
複数件のテストを持つテストクラスを実行していると明らかに2件目以降が早いし。


その上で、sessionFactoryがどうもシングルトンっぽく振舞っているのか、

1件目でcontext読み込み=>session・contextをclose()
2件目以降はcontext読み込み時に上記警告

という現象になる。


CacheManagerのインスタンス自体は生きているために再度configを読みに行かないためのだが、中身がない(ehcache.xmlの内容がクリアされている)状態のインスタンスに対してgetCacheをするのでnullが返却されている・・・のがデバッグした結果。
これはtearDownの中でcontext.close()をしてしまうと、中途半端になってしまうためではないか・・・と挙動からは推測する。


もしかしたらtransactionManagerで何かあるかもしれないけれど、close()とかdestory()とかの定義は見当たらないなぁ。


という訳で、対応としては「テストではキャッシュを使用しない」ということにする。
するとキャッシュが効いているのかどうかはどうやってテストするのかという新たなる命題がでてくるわけだが・・・。