[Seasar-user:6866] Re: S2JUnit4について
Toshihiro Nakamura
[E-MAIL ADDRESS DELETED]
2007年 3月 25日 (日) 13:21:30 JST
中村(taedium)です。
> 一応、ご確認させていただきたいのですが、S2JUnit4のS2Container
> 生成時には、デフォルト(Seasar2)のjta.diconを必ず使用しており、
> s2junit4.diconに指定したdbflute.dicon内(インクルード)のjta.d
> iconを別物で指定すると二重に定義されたことになり、トランザクシ
> ョン制御が正しく行えなくなる。という、認識であっているでしょうか?
はい、そうです。
ただし、S2JUnit4がどのdiconを自動で読むかは
s2junit4.diconの設定で変更できるため、
jta.diconを「必ず使用する」というわけではないです。
> ⇒ 当方ではAPサーバのコネクションプーリングとJTAを使用す
> ることを前提にしており、Seasar2のjta.diconをデフォルト
> のまま使用することが残念ながらできず、jta.diconをこち
> らのAPサーバに合わせて編集しようと考えております。
> 但し、S2JUnit4を使用した単体テストでは、必ずしもAPサーバ
> に合わせた設定でなく、Seasar2のjta.diconを使用しても良い
> と考えております。
■APサーバーのJTA実装を使う場合の設定方法
APサーバーのJTA実装を使う場合は
次のような3つのdiconを用意します。(名称は任意です)
・my-jta.dicon
・my-j2ee.dicon
・my-javaee5.dicon
my-jta.diconにはAPサーバーのJTAの設定をします。
my-j2ee.diconはj2ee.diconのコピーです。
ただし、jta.diconのかわりにmy-jta.diconをインクルードします。
my-javaee5.diconは javaee5.diconのコピーです。
ただし、j2ee.diconのかわりにmy-j2ee.diconをインクルードします。
アプリケーションやS2JUnit4では上記のdiconを
使うようにします(コピー元のdiconは使わないようにします)。
# my-j2ee.diconやmy-javaee5.diconのように
# 単にコピーをつくるのは似たようなファイルが増えてしまうため
# 好ましくないと思われるかもしれません。
# 次回のリリースでは特定のdiconだけをピンポイントで
# 差し替えられる機能を用意しようと思っています。
# どちらか扱いやすい方で対応していただければと思います。
■単体テストでのみS2のJTA実装を使う方法
単体テストでのみS2のJTA実装を使う場合は
my-jta_ut.diconを用意し、
単にjta.diconのみをインクルードするようにしておきます。
暗黙的条件インクルードの機能で
単体テスト時にはmy-jta_ut.diconが、それ以外の場合には
my-jta.diconが使われるため、使用するJTA実装を切り替えられます。
暗黙的条件インクルードについては以下のページを参照してください。
http://s2container.seasar.org/ja/conditionalInclude.html#implicit
--
Toshihiro Nakamura
Seasar-user メーリングリストの案内