RealTime IT News

Java EE 6 Spec: Finalized With a But

Java EE 6 is a done deal. In a vote late yesterday, members of the Java Community Process (JCP) approved JSR-316, which defines the specification for the next version of enterprise Java.

But approval didn't come without some dissension from the ranks.

Among those on the executive committee that voted in favor of approving the Java EE 6 specification were Sun, IBM, Red Hat and Google. The Apache Software Foundation (ASF) is the only executive committee member that voted against the specification.

According to the vote log, the ASF's no vote was not about any particular problem with the Java EE 6 specification, but rather a vote against Sun Microsystems's leadership of the process.

"The Apache Software Foundation's vote is based on the point of view that this spec lead -- Sun -- is in violation of the JSPA [Java Specification Participation Agreement] and therefore shouldn't be allowed to start another JSR [Java Specification Request] until the above matter is resolved," the vote log states.

"This vote is not a comment on the technical merits of the JSR. If not for the issue of the spec lead, the ASF would have otherwise voted yes."

Apache has been working on its own version of Java under the auspices of the Apache Harmony effort and has issues with the way Sun is allegedly impeding their progress due to licensing issues.

IBM, though it voted in favor of the Java EE 6 specification, also took issue with Sun for its licensing terms.

"IBM's vote is based on the technical merits of this JSR and is not a vote on the licensing terms," the vote log states. "IBM supports licensing models that create an open and level playing field by allowing third parties to create independent implementations of Java Specifications and that do not allow individuals or companies to exercise unnecessary control for proprietary advantage.

"This comment is not necessarily directed at the current business or license terms for this JSR, however, it is a statement of IBM's preferred licensing model."

Licensing squabbles aside, Java EE 6 marks the latest evolution in the eight-year development of the enterprise Java platform, which before Java EE 5 was knows as J2EE.

"In the past eight years, the Java EE platform has grown and matured, and is now able to cover a wide range of enterprise and Web application development needs," the request section of JSR-316 states.

"In addition, the Java EE platform has fostered a vibrant community and marketplace for additional technologies, frameworks and applications that work with the platform. Some of these provide facilities that are missing from the platform. Others provide alternatives to platform facilities."

As such, the goals of Java EE 6 as outlined in the JSR-316 request are to build out better extensibility and profiles. Extensibility will enable Java to integrate with more services and application technologies.

The profiles section is about making Java EE easier to use.

"The reach of the Java EE platform has become so broad that it has lost some of its original focus," the request section of JSR-316 states. "To refocus the Java EE platform on particular classes of developers and applications, we propose the introduction of Java EE platform Profiles. Profiles will reference the Java EE platform, as defined by the JCP process, and may include a subset of Java EE platform technologies, additional JCP technologies not part of the base Java EE platform, or both."

Now that the specification has been finalized, the engineering work will move into full gear to achieve what is outlined in the specification for the release of Java EE 6 in 2008. Java EE 5 was formally released in May of 2006.

Though a lot was baked into the Java EE 6 specification, there were a number of items that didn't make it. Among them is JSR-268, which defines Portlet Specification 2.0 and JSR-289 SIP Servlet v1.1.

"To better support the extensibility goals of the platform, it would be useful to have a more general concept of modules. Such work is under way in JSR-277 -- Java Module System, which is targeted for Java SE 7," a Sun spokesperson told internetnews.com.

"We anticipate that Java EE 7 will build on that technology, and thus we will defer specification of any potentially conflicting technology to a future release."