CargoでGlassFish v2が使えるようになりました

9月の初めにリリースされたCargo 1.0 alpha 6には、僕がコミットしたpluggability improvementsが入っています。これによって、Cargoの本体以外でもコンテナサポートを開発できるようになりました。そこで、これを使って、cargo-core-containers-glassfishモジュールを開発し、今日公開しました。


今回のcargo-core-containers-glassfish 1.0 alpha 6では、GlassFishを開始・終了させたり、アプリケーションを配備したりすることが可能です。また、ポート番号などをプログラムから調整できます。必要なのは、前もってGlassFish v2をインストールしておくことだけです。


Cargoは様々な方法で利用可能で、Java APIやAntタスクやMavenプラグインがあります。詳細についてはCargoのドキュメントを参照してほしいのですが、例えば次の例ではAntからアプリケーションが1つ配備された状態でGlassFishを開始します。重要なのは、コンテナIDとして「glassfish2」を渡す、ということだけです。

<taskdef resource="cargo.tasks">
  <classpath>
    <pathelement location="path/to/cargo.jar"/>
    <pathelement location="path/to/cargo-core-container-glassfish-1.0-alpha-6.jar"/>
  </classpath>
</taskdef>

<cargo containerId="glassfish2" home="/path/to/gfv2/installation/directory" output="target/output.log"
    log="target/cargo.log" action="start">
  <configuration>
    <property name="cargo.servlet.port" value="8180"/>
    <deployable type="war" file="path/to/hudson.war"/>
  </configuration>
</cargo>


Cargoは、コンテナの自動化ができるので、サーバアプリケーションの自動テストなどに優れています。特に、複数のコンテナ上で動作を確認しないといけないような場合には必須のライブラリと言えるでしょう。HudsonにもCargoを使うプラグインがあるので、Hudsonユーザーにもお勧めです。


一応のテストはしましたが、ちゃんと動いているという手応えが得られた時点でCargoの本体にマージしようと思っているので、フィードバックをよろしくお願いします。また、GlassFish v3サポートも追加する予定です。