iAPにおいて、何かのモジュールを追加したい、となったとき。
アプリケーションやエクステンションの追加など、大きな変更の場合は正式作業としてwar入れ替えを行えばいいが、軽微な変更の場合にいちいちwarを入れ替えるのは面倒くさい。
例えば認可のExcelインポートエクスポートを追加したいとか、テーマカスタマイズモジュールを追加したいとか、IM-Noticeを追加したいとか…。
warを入れ替えてしまうとログが消えるのと、直接書き換えていた設定ファイルや追加したソースなどが全て元に戻るため、影響調査が大変なのだ。(それも含めてちゃんとjugglingで管理しとくのが筋なのだが…現場はそうではない)
そこで、warを入れ替えずにモジュール追加するにはどうすれば良いか。
結論から言うと、「差分を抽出して適用する」というのが賢いやり方だ。
手順1. 変更前のwarを取得し、解凍する
現行のwarファイルを取得する。
warファイルの拡張子をzipに変更し、解凍しておく。
手順2. 変更後のwarファイルを作成、解凍する
jugglingツールにて、モジュールを追加したwarファイルを作成する。
作成したwarは同じく拡張子をzipに変更し、解凍しておく。
手順3. 比較する
変更前の解凍フォルダと変更後の解凍フォルダをWinMerge等の比較ツールで比較する。
結果、変更された差分が出力される。→これらが適用すれば良い差分となる。
※Webサーバがある場合、静的ファイル(WEB-INFの外)も忘れずにWebサーバに適用すること。
※WEB-INF直下のjuggling.ほにゃららも差分として出るが、必要なので忘れずに適用すること。
手順4. 比較結果を抽出する
この差分をどのように抽出すれば良いか。やり方は様々あると思うが、私が行っているのはWinMergeを使い、以下の通り。
1. WinMergeの結果を比較結果でソート
2. 変更点のある行だけShift+クリック等で選択
3. 右クリック>コピー>左を...(または右を...)
4. 任意のフォルダに出力
手順5. 環境に反映する
Resinを停止し、抽出したファイルを反映して、Resinを起動する。
必要に応じてテナント環境セットアップなどを行うこと。
以上。