Java開発に関する新機能

本コラムでは前回からEclipseの最新版となるHelios(Eclipse 3.6)の新機能を紹介しているが、今回はJava開発に関わる新機能を紹介する。HeliosではWTPが3.2にバージョンアップしており、Java EE 6/Servlet 3.0/JPA 2.0/JSF 2.0/EJB 3.1/JAX-RS 1.1といった仕様に対応している。

Servlet 3.0/Tomcat 7に対応

Java EE 6ではアノテーションでサーブレットやフィルタのマッピングができるなど、web.xmlの記述量を大幅に減らすことができる。Heliosでは動的Webプロジェクトの作成時にServlet 3.0が選択できるようになっており、Servlet 3.0に対応するアプリケーションサーバとしてTomcat 7が標準でサポートされた。

図1 サーバとしてTomcat 7が選択可能

図2 動的Webプロジェクトの作成

Servlet 3.0を選択してプロジェクトを作成すると、サーブレットやフィルタをウィザードで作成する際も、アノテーション付きのソースコードが生成されるようになっている。

また、Web開発で利用機会の多いHTML/XML/JSP/CSSエディタでCTRL+Oでクイックアウトラインが表示されるようになるなど使い勝手が向上している。

JSF 2.0対応はもう一歩?

JSFはJava EE標準のWebフレームワークだ。2.0になって大幅に機能が強化されており、設定ファイルが不要になっていたり、JSPではなくXHTMLでビューを記述できるようになっている。

Heliosでは動的Webプロジェクトを作成する際の構成としてJSF 2.0を選択することができる。また、XHTMLファイルを編集する際にJSF 2.0向けの入力補完機能を利用することができる。

図3 XHTMLでの入力補完

EL (#{...})での入力補完も可能だが、マネージド・ビーンはfaces-config.xmlで定義したものは補完候補として表示されるものの、JSF 2.0でサポートされている@ManagedBeanアノテーションを付与する方法で作成したものは表示されない。このあたりは今後の改善に期待したいところだ。

JAXBの自動生成

JAXBはXMLとJavaオブジェクトをマッピングするための仕様で、単体でXMLの入出力に利用できるほか、JAX-WSなど他のJava仕様でも使用されている。

HeliosではXMLスキーマからJAXBのクラスを生成したり、逆にJAXBのアノテーションが付与されたクラスからXMLスキーマを生成することができるようになった。

JAXBは以前からJavaSEに含まれていたが、Eclipseでサポートされたことでより手軽に利用できるようになるだろう。

JDTの改善

Java開発環境であるJDTはそれほど大きな新機能は追加されていないが、使い勝手を改善する細かい機能改善が多数行われている。

パッケージ・エクスプローラーなどではパッケージ名を省略して表示できるようになった。省略表示の設定はEclipseの[ウィンドウ]メニュー > [設定]から[Java] > [外観]で行うことができる。また、パッケージ・エクスプローラーなどのアイコンに表示されるエラーアイコンはビルドパスのエラーとコンパイルエラーで異なるものが表示されるようになり、見た目で判断しやすくなった。

図4 パッケージ名の省略表示

Javaエディタではエラー内容を表示するホバーからエラーの修正を行うことが可能になった。クイックフィックス(CTRL + 1)と同様の機能だが、エラー内容を確認してそのまま修正することができるのでより手軽に利用することができるだろう。

図5 エラーのホバー表示

また、デバッガでは各オブジェクトと同じクラスのオブジェクトのインスタンス数が表示されるようになった。

図6 デバッガでインスタンス数が参照可能

まとめ

HeliosではJava EE 6がサポートされているものの、それぞれの機能はまだ荒削りで改善の余地があるのではないかと感じた。このあたりは同じくJava EE 6をサポートしているNetBeans 6.8の完成度と比較するとやや見劣りするところだ。

また、機能は豊富なのだが、それぞれの機能が異なるサブプロジェクトとして開発されているためか、ユーザインタフェースや操作性に統一感がないケースがある点が多少気になった。Eclipseを使い続けてきたユーザには問題ないかもしれないが、新しく使い始めるユーザにとっては敷居が高いと感じてしまうかもしれない。