酋長さんとデプロイの柔軟性

J2EE準拠のアプリケーションサーバ(といっても最近のは殆ど準拠しているが)はアプリケーションのデプロイの方法を選択できたりするが、個人的には

  • アーカイブ(.ear/.war)又はディレクトリ構造を、コピーして(XCOPY)デプロイ
  • アーカイブ(.ear/.war)又はディレクトリ構造を、直接その場所から(INPLACE)デプロイ

この二つの方法のどちらもサポートしていないと駄目だと考えている。UNIX系ならリンクを作れば良いのだろうが、Windowsで毎回巨大なディレクトリ構造をコピーするデプロイ方法はどうしてもHDDが早く逝ってしまう気がして嫌いなのだ。
Apache Geronimoだが、1.0のドキュメントを読んでいる限りでは、どうも前者しか対応していないようで、こりゃ駄目だと思っていたのだが、developerworksで見つけた1.1の変更点に着目したドキュメントを見ると

In-place deployment

Geronimo 1.1 supports a feature called in-place deployment, which means an archive or directory can be deployed without being copied into the Geronimo directory structure. You can do this using the --inplace option with the deployment tool. This makes sure that nothing is replicated into your Geronimo directory structure and that files are picked from the location you specified. To use in-place deployment, unpack your archive into the directory of your choice and execute the following command:

deploy.bat --user system --inPlace deploy myApp.ear
Inside Apache Geronimo, Version 1.1

とあるので、どうやら特定の場所にコピーせずともデプロイが出来るらしい。そうこなくちゃ。

追記:
インプレイス-デプロイを試してみたが通常のjarコマンドには"--inplace"オプションは使えなかった。用意されているバッチファイル"deploy.bat"を使う必要があるようだ。コマンドを実行後はGeronimoのデプロイ対象となったリポジトリのディレクトリの下にMETA-INFというディレクトリが作られて、その中にはビルドされてシリアライズされた設定オブジェクトと、実際のアプリケーションが配置されているパスを書いた"inPlaceLocation.config"というファイルが生成されるのが解る。