WAR/EARをデプロイするHudsonプラグイン / CargoにGlassfishサポートを!

まずアナウンス。こないだ、HudsonがWAR/EARをアプリケーションサーバにデプロイできるようにするプラグインを書きました。これを使うと、ビルド後、別なジョブからテストを開始する前にWARをデプロイすることができます。


このプラグインは様々なアプリケーションサーバに対応できるようにしたかったので、Cargoをライブラリとして使って、アプリケーションサーバに依存する部分を抽象化してあります。Cargoはたぶんこの手の機能を持っているライブラリとしては唯一のもので、作者の人達には、よくもまぁこんな面倒臭いことをせっせとやってくれたもんだと感謝感謝です。本当は、こういうインターフェースこそJavaEEの一部であるべきだと思うのですが、まぁそれはそれ。


僕はCargoに以前embedded Tomcatをサポートするコードを書きました(これはテストの時とかデバッグの時にはとても便利なので、使ってやってください。)Tomcatに引き続いてGlassFishオートの実装にも着手したのですが、中途半端な状態で中断せざるをえなくなってしまいました。当時のコードはここにあります。

svn co http://svn.codehaus.org/cargo-contrib/glassfish"

で、今頃になってようやくGlassFishサポートが必要になってきたのですが、誰か志半ばにして倒れた僕の遺志を継いでこいつを完成させようという漢気溢れるサムライはいませんか :-) ? 僕はまだCargoのコミッターですし、Cargoのメインの開発者もGlassFishサポートには乗り気みたいなので、最終的にメインラインに変更を統合するのは手伝えると思いますが、そこに至るまでに幾つかしないといけないことがあります。

  • 非常にうるさいCargoのCheckstyleルールに従うようにコードを書き換える。checkstyleルールを読み込めるIDEがあれば、ひょっとしたらIDEで再フォーマットすれば一発?
  • テストケースを統合する。Cargoの既存のテストインフラにGlassFishを追加しないといけません。


ボーナスポイントは、リモートコンテナモードのサポートです(これで別のマシンで走っているGlassFishにもデプロイできるようになる。AMXとかを使えばできるはず)。このプロジェクトはGlassFish Award Programの対象になること間違いなしだと思うので、いい仕事ができれば、現ナマをgetするチャンスですよ!!


このバグに関する詳細はCARGO-491にどうぞ。