事の顛末を整理
最終的に,テストの自動化はテスト実行時のサーバ起動/停止のみに留め,サーバ設定は含めないこととした.要するに敗北宣言ですな.wlserverとかwlconfigとか面白いだけでなく実際に使えた(Windows上限定だけど)ので勿体無いとは思うけど,動かない場合がある(Linux上では動かない)ので当初の目的は達成できない.
事の顛末を今後のために整理しておこうと思う
- JBossではサーバ設定(データソース設定)はmysql-ds.xmlをDeployフォルダにコピーするだけ,アプリのインストールはJARをDeployフォルダにこれもコピーするだけで終わった.
- つまりテスト実施者はJBossをとりあえずDLしてインストール(展開)してJBOSS_HOMEを設定したら終りという至極簡単なものであった.
- WebLogicでも同等のことをやろうと考える.
- WebLogicではconfig.xmlがキーとなる.ここから絶対パスなどを含む記述を削除し,WindowsとLinux共用となるようなものを作った.mysql-ds.xmlのときと同様に予めコピペすればよいだけのものを用意しておく.
- embedded LDAPやサーバの起動/停止に使うパスワードがconfig.xmlに暗号化されて書かれており、これが原因で共用できないことが判明.例えばID/PWをweblogic/weblogicとしていても暗号化された文字列はドメインごとに異なるようだった.
- Antタスクのwlserver、wlconfig、wldeployなどを採用を検討.これによりテスト実施時にドメインを自動生成・自動設定することで暗号化パスワードにより共用できない問題を回避しようと試みた
- Windows上ではこれらのタスクを使ってのドメインの自動生成・自動設定とテストの実施に成功.wlserverやwlconfigはAnt(Java)なのでLinuxでもこれで上手く良くかに思われた。
- しかしwlserverがLinux上では動かず.原因の解析できず.Antタスクによる自動設定を諦める.
- Windows上で生成したドメインをカスタマイズして用意しておく案を思いつく.
- しかし生成されたドメインに含まれる各種*.cmdファイルと*.shファイルに大量の環境依存コードを発見.
- この案でも複数のテスト環境に対応できないと分かる.
- 最終的に,各テスト環境にて手動設定を行うことに決める.いとかなし.
この次はWebSphereがまってるんだよなぁ.もっと死にそう.JBossがいかに疎結合を体現した良いアプリケーションかをいまさらながら実感.mysql-ds.xmlコピペして終りとまでは言わないが、せめてサーバ設定セット(JBossならdefaultとかallとかminimalとかのフォルダ、WebLogicならdomain_homeフォルダ)を環境非依存にしておくれい.