[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 メーリングリストの案内