GlassFish 4.0 Technology Roundup
Almost four years after the release of GlassFish 3.0, Oracle Corporation's open source JEE application server, Oracle announced the release of GlassFish Open Source Edition 4.0, branded as the "World's first Java EE 7 Application Server", as reported on InfoQ.
The new feature set for GlassFish 4.0 is a virtual replica of the Java EE 7 release notes. Oracle states on their GlassFish "Road Map" that "the Java EE Reference Implementation is a subset of GlassFish, and therefore the GlassFish roadmap is closely tied to Java EE releases."
Some of the new features and major updates in GlassFish 4.0 include the following, many of which have already been covered on InfoQ, (articles are hyperlinked to the features below)
- The new Java API for JSON Processing 1.0
- Java API for WebSockets 1.0
- Java Batch 1.0
- Concurrency Utilities for Java EE 1.0
- Java Message Service (JMS) 2.0
- Java API for RESTful Web Services (JAX-RS) 2.0
Other updates include:
- Enterprise Java Beans (EJB) 3.2
- Contexts and Dependency Injection for Java EE (CDI) 1.1
- Java Persistence API (JPA) 2.1
- JavaServer Faces (JSF) 2.2
- Java Servlet 3.1
- Bean Validation (BV) 1.1
- Expression Language (EL) 3.0
- Interceptors 1.2
- Java Transaction API (JTA) 1.2
- JavaServer Pages (JSP) 2.3
- JavaMail 1.5
The GlassFish 4.0 installer may be obtained from the GlassFish download center. The release notes state that "the main thrust of the GlassFish Server Open Source Edition 4.0 release is to provide an application server for developers to explore and begin exploiting the new and updated technologies in the Java EE 7 platform. Thus, the following features of GlassFish Server were not a focus of this release:
- Clusters and standalone instances
- High availability features
- Embedded Server
These features are included in the release, but they may not function properly with some of the new features added in support of the Java EE 7 platform."
Full support for clustering as well as centralized administration features are expected to be introduced in version 4.1, scheduled for release in 2014.
Although GlassFish Open Source 4.0 is free for use, Oracle also offers a for-pay "Premier Support" contract targeting production deployments.
Missing from this release is JCache, which narrowly missed the release as reported on InfoQ. JCache is scheduled for release with Java EE 8. JCache (JSR 107) Expert Group member Ben Cotton told InfoQ that "although JSR 107 just missed the Java EE 7 release, it is very close to being done. We have released a public draft and the API is usable today for those developers wanting to preview the JCache capability. A final release will be made generally available by Q4 2013."
Last month Oracle presented a launch webinar covering all of the new Java EE 7 features. The webinar was split into 16 "technical breakout" sessions on YouTube, each of which provides a fairly detailed technical overview of each of the specific Java EE 7 technologies. There is also a thorough web-based Java EE 7 tutorial on the Oracle web site. For a more technical deep-dive the javadocs are also available for viewing. Oracle GlassFish evangelist Reza Rahman published an overview of new features in his SlideShare presentation "Java EE.Next(): Java EE 7, 8 and Beyond". In that presentation Reza offers a few possible suggestions for Java EE 8, including JCache, support for NoSQL, Modularity, Cloud, and several other possible features. As usual Oracle relies on the community for input on what to include in the next version. You can also see the video of Reza's presentation on InfoQ. An interview with Oracle Vice President of Software Development Anil Gaur was also published on InfoQ last month.
GlassFish 4.0 was timed to release with last month's Java EE 7 release, almost four years since the previous version Java EE 6 was released in December of 2009. In January 2013 CIO Magazine reported that JCP executive committee member Steve Harris, who is Senior Vice President of Products at CloudBees and former Senior Vice President of Server Technologies at Oracle, suggested that rather than waiting for all scheduled features of a release to be completed, releases would be time bound to a two-year release cycle. It is not clear if future releases of Java EE will follow that two-year cycle.