本連載では,過去数回ほど,個別のプロダクトにフォーカスした話題を取り上げた。今回は趣向を変えて,ここ最近のApache Software Foundation(ASF)の動きを紹介したい。

 今回取り上げるのは以下の3つだ。

  • Geronimo 2.0 M6 RC1 がJava EE 5.0 TCK をパス
  • Maven1.1がついにリリース
  • ASFプロジェクトを一覧できるサイトprojects.apache.org

Geronimo 2.0のJavaEE5対応が完了,リリース秒読み

 まず筆者が特筆したいのは,6月4に,ASFにて開発が行われているJ2EEアプリケーションサーバー Geronimoの次期バージョンである Version2.0 のリリース候補版(Version2.0 M6 RC1)が JavaEE5.0 の TCK をパスしたことだ。

 現在リリースされている Geronimo は J2EE 1.4 に対応したものであり,最新の仕様である JavaEE5への対応が待ち望まれていた。Geronimoプロジェクトでは,それらの声にこたえるべく JavaEE5に対応した Geronimoを現在急ピッチで開発中だが,TCK(Technology Compatibility Kit)をパスしたことで,仕様面での実装は完了したことになる。これで,リリースが秒読み段階にはいったといえるだろう。

 これまでは,JavaEE5対応のオープンソースのJ2EEアプリケーションサーバーといえばJBossとGlassFishであったが,さらにGeronimo が参入することになり,選択肢の幅が増え,我々ユーザーには嬉しい限りである。

 新しいGeronimoの詳しい情報は,今後の本連載の中で紹介してゆきたい。

性能の改善が見込まれるMaven 1.1

 つづいての注目は,Maven 1.1のリリースだ。Mavenの最新バージョンは Version2系の Maven 2.0.7 だが,まだ Version1 系も多くのユーザーが利用しているのが現状だ。 Version1系は 2007年12月にリリースされたMaven 1.0.2 以来リリースが行われておらず,バグ対応や細かな改善要望の実現が望まれていたため,このリリースは利用者には嬉しいニュースだ。

 Maven 1.1のリリースノートによると下記が変更点として上げられている。

  • Maven Wagon(ファイルやディレクトリを転送するのに用いられるAPI),Maven SCM(Source Control Management) や新しいコードなどの Maven2技術のとりこみ
  • Ant1.6.5のサポート
  • 依存するjarファイルやプロダクトのバージョンアップ
  • 組み込みプラグインのほぼすべてをバージョンアップ
  • エラーハンドリングと報告方法を改良
  • POMのレイアウトを改良
  • メモリー使用量と全般的な性能の改善
  • ドキュメントの更新

 これらの中で特に気になるのは,「メモリー使用量と全般的な性能の改善」と「POMレイアウトの改良」の項目だ。Maven1.0.2はお世辞にも高速に動作するとは言いがたく,時としてストレスが溜まる事もあった。これは,Maven自身の動作のためにXMLを解釈するインタープリタ Jelly に起因するところが大きかった。この点が改善されたとの報告は吉報だ。実際に筆者が試した限りでは,マルチプロジェクト(1つのMavenプロジェクト内に複数の子プロジェクトが存在する)時の挙動が早くなっているのが体感できた。様々なゴールを試せばさらに体感できるかもしれない。

 もう1つの気になる点として「POMレイアウトの改良」がある。これは,レイアウトの改良とあるように,POM(プロジェクトの情報を記述するXMLファイル)の記述フォーマットの変更ではないようだ。実際,POMのバージョンは 3 のまま(Version2系は 4)であり,Maven1.0.2のプロジェクト定義を変更せずにMaven1.1で扱うことができるはずだ。実際,筆者がいくつかのMaven1.0.2のプロジェクトを実行してみたが,問題なく様々なゴールを実行できた。ただし,maven.xml 内のデフォルトゴールの指定は本バージョンより非推奨となり,POMファイル内の タグ内に タグを用いて指定するよう警告される。実際,両方に指定がある場合POMファイル内の定義が優先された。

 また,プロジェクトのディレクトリ構造が Maven2系と同じ構造が推奨され,プロジェクトの雛形を生成する genapp ゴールでも src/main/java や src/test/java といったディレクトリが生成されるようになった。

 その他,Maven1.0.2からの変更点の詳細は,MavenのサイトのMaven1.0.2からMaven1.1への変更点に記述されているので,参照いただきたい。

 短時間でテストを行ったため,すべての機能を確認できてはいないが,より高速で安定した動作が行われるように感じた。Maven1.0.2系のユーザーは本バージョンへのバージョンアップを検討してみては如何だろうか。