本連載では,過去数回ほど,個別のプロダクトにフォーカスした話題を取り上げた。今回は趣向を変えて,ここ最近の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ファイル内の
また,プロジェクトのディレクトリ構造が Maven2系と同じ構造が推奨され,プロジェクトの雛形を生成する genapp ゴールでも src/main/java や src/test/java といったディレクトリが生成されるようになった。
その他,Maven1.0.2からの変更点の詳細は,MavenのサイトのMaven1.0.2からMaven1.1への変更点に記述されているので,参照いただきたい。
短時間でテストを行ったため,すべての機能を確認できてはいないが,より高速で安定した動作が行われるように感じた。Maven1.0.2系のユーザーは本バージョンへのバージョンアップを検討してみては如何だろうか。