ひがやすを技術ブログ

電通国際情報サービスのプログラマ

diconファイルの切り替え

diconファイルのツリーに、以下のインクルード構造が含まれているとします。

someapp/allLogic.dicon <-- someapp/allDao.dicon <-- dao.dicon <-- j2ee.dicon

ここで、「テスト時にはj2ee.diconでなくj2ee_test.diconを使いたい」という要請があったとします。
このためには、j2ee.diconの代わりにj2ee_test.diconをインクルードするdao_test.diconが必要です。
さらに、このdao_test.diconをインクルードするsomeapp/allDao_test.diconが必要、…と続きます。

Seasar2.4からは、インクルードするときの条件を指定することができるようになります。そのため、dao.diconで


<include condition="テストじゃないとき" path="j2ee.dicon"/>
<include condition="テストのとき" path="j2ee_test.dicon"/>
のように記述すると、自動的にインクルードするファイルを切り替えることができます。テストかどうかをどのように判定するのかはまだ考え中。JavaのSystemのプロパティにしようかと思っているけど。