GlassFishにJBoss Application Server、Apache Geronimoと、メジャーなオープンソースアプリケーションサーバーがEJB(Enterprise JavaBeans )3.0やJPA(Java Persistence API)をサポート。また、商用でもOracle Application Server 10g Release 3、BEA WebLogic Server 10などがサポートする。
EoD(Ease of Development)というキーワードのもと、Javaの開発の容易性を追求してきた、Java EE 5の本格的な普及がいよいよ見えてきた。ここでは、オープンソースの3つのアプリケーションサーバーについてとくにEJBとJPAについて触れておこう。
GlassFish
GlassFishの特徴はJava EE 5のリファレンス実装であること。Sun Java System Application Server Platform Edition 9.xのベースともなっている。JPAの実装にはTopLink Essentialsが採用されている。
ライセンスはCommon Development and Distribution License v1.0。現在はGlassFish V2及びV3が開発中である。GlassFish V2はBETA3のリリース間近、V3は開発が始まったばかりという段階だ。
統合開発環境(IDE)との統合化も進んでおり、NetBeansでは5.5.1から6.0 M9まで幅広くサポートしている。Eclipse 3.2ではEclipse Daliプラグインを利用する。Eclipse 3.3(Europa)からは、WTP 2.0 RC3以降などからも利用可能になっている。GlassFishコミュニティのメンバーである、AjaxフレームワークjMakiもNetBeansとEclipseから利用可能だ。
JBoss
JBossに関しては、5月11日にリリースされたJBoss AS 4.2.0.GAでEJB 3.0が標準で組み込まれた。従来、JEMSインストーラーでEJB3プロファイルを選択し、明示的にインストールする必要があったが、JBoss AS 4.2.xからEJB3.0が標準で入るため、JEMSインストーラーによる導入の手間が省ける。
EJB3.0コンテナがデフォルトで組み込まれたことにより、システム要件としてアノテーションが導入されたJDK5が必須となる。JDK1.4.2などでは動作しない。JDK6は、公式にはサポートされていないものの、動作はする。JDK6の公式なサポートはJBoss AS 5.xからとなる。
また、JBoss AS 4.2.xより、Java Server Faces(JSF)の実装が、Apache MyFacesからSun Microsystemsの参照実装(JSF RI)に入れ替えられている。さらに、Apache Portable Runtime(APR)を利用したハイパフォーマンスサーバーであるJBoss Web v2.x、JBoss Transactions v4.2の完全な統合なども行われている。JBossはEJB3.0とJSF1.2を容易に統合するJBoss Seamも提供している。
今回取り上げる3つの中ではJBossだけがJava EE 5をフルスペックで満たしていない。Webサービスに関する部分がいまだクリアできていないコンポーネントとなっている。
Apache Geronimo
Geronimoに関しては2007年6月4日に、Java EE 5互換性試験を通過したApache Geronimo 2.0-M6-rc1がリリースされている。Geronimo Java EE 5.0 Report Cardを参照すると、各スペック表に対応する形でどのオープンソース実装を採用したのかがわかる。Apache Geronimo 2.0の正式なバージョンの公開は、2007年6月末から7月に予定されている。
Apache Geronimoはライセンスが特徴的だ。GPLやLGPLライセンスではなく、一部CDDLも含むもののBSD系のライセンスを採用している。そのため、ソースコードを改変しても公開する必要はない。
EJB3.0の実装としてはOpenEJBを採用している。EJB 3.0への対応は3つのなかで最も遅かった。一方で、アプリケーションサーバーとしては様々なオープンソースプロジェクトの成果を取り込みながら、Java EE 5の互換性試験を通過している。