Java Community Process approves Java EE 6
New version of Java Enterprise Edition adds support for function-based profiles, and more
- By John K. Waters
- Dec 11, 2009
The Java Enterprise Edition specification (Java EE 6) has been approved by the Java Community Process
(JCP). The final release is now available
The Java EE 6 specification comprises about 30 additional specs and is a continuation of many of the approaches and ideas of its predecessor, Java EE 5. However, this version emphasizes a development model driven by metadata. It also adds more extensibility points and service-provider interfaces to allow other technologies to plug into the platform implementations, essentially making life easier for Java EE developers.
Among the most talked about capabilities in Java EE 6 is its support for function-based profiles. Profiles provide a way for users to define a subset of the Java EE specification and still achieve certification, said Gartner analyst Massimo Pezzini.
"In Java EE 5 and previous versions, in order to achieve certification, you had to implement the full set of Java EE APIs," Pezzini said. "And there are a ton of those. This is the reason there aren't that many products that are Java EE-certified. Basically, it's only the big vendors -- JBoss, Oracle WebLogic, IBM WebSphere -- who can really afford to put together a Java EE-compliant product]. But with profiles, you can define a subset of the Java EE APIs and achieve certification only for that particular subset."
The first Java EE 6 profile has been defined by the JCP expert group and is included in this release. Dubbed the Web Profile, it's a subset of the full Java EE spec aimed at Web application developers. The JCP describes it as "a more gentle introduction to the Java EE platform" that provides only those technologies needed by most Web application developers, "without the enterprise technologies that sometimes confuse such developers."
In other words, it's the technology typically used to build a Web application, Pezzini said. "The expectation is that a whole bunch of products that can't today achieve Java EE certification, because they don't implement the more sophisticated features, will be able to achieve a level of certification," he said. "They started with the Web Profile because it's the most popular."
Rod Johnson, founder of VMware subsidiary SpringSource and member of the JCP Executive Committee, is less impressed. "Profiles in concept are the most significant new feature," he said, "but in practice they didn't turn out the way we had hoped. When the Java EE 6 goals were originally set out, we were very enthusiastic about the fact that profiles would make the platform a lot more modular and aligned with what people were actually doing in the real world. The end result is that the base profile tended not only to be a lot bigger than we would have liked, but also continued the trend of the past, where a new specification ends up putting out new technologies that are unproven."
Johnson is more enthusiastic about the Java Persistence API 2.0 (JPA), the Java API for the management of persistence and object-relational mapping for Java EE and Java SE environments. He's also a fan of a new feature that defines a meta-data model and API for JavaBean validation.
The Java EE 6 spec also applies the profiles concept to Enterprise JavaBeans 3.1 specification with EJB Lite, a smaller subset of the EJB API. It includes such features as transactions and security, but leaves out features such as messaging, remote access and scheduling.
"The thinking here is that EJB Lite will make EJB a little bit more popular in the developer community, which has been hesitant to adopt the technology because of its complexity," Pezzini said.
The Java EE 6 spec was launched in 2007 as Java Specification Request (JSR) 313, then re-launched as JSR-316. (JSRs are the formal documents that describe proposed additions and changes to the Java platform.) The original plan was to complete the spec in 2008, but the first Public Review Ballot wasn't reached until earlier this year.
Other Java EE component JSRs were approved along with the Java EE 6 spec, including Servlet 3.0, JPA 2.0, EJB 3.1, Connector 1.6 and CDI 1.0. The Managed Beans 1.0 specification was also approved.
John K. Waters is a freelance writer based in Silicon Valley.