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
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
“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.”