The Java EE 6 Platform, released in December 2009, has seen great
uptake from the community with its POJO-based programming model,
lightweight Web Profile, and extension points. There are now 13 Java
EE 6 compliant appserver implementations today!
When we announced the Java EE 7 JSR back in early 2011, our plans were
that we would release it by Q4 2012. This target date was slightly
over three years after the release of Java EE 6, but at the same time
it meant that we had less than two years to complete a fairly
comprehensive agenda — to continue to invest in significant
enhancements in simplification, usability, and functionality in
updated versions of the JSRs that are currently part of the platform;
to introduce new JSRs that reflect emerging needs in the community;
and to add support for use in cloud environments. We have since
announced a minor adjustment in our dates (to the spring of 2013) in
order to accommodate the inclusion of JSRs of importance to the
community, such as Web Sockets and JSON-P.
At this point, however, we have to make a choice.
Despite our best intentions, our progress has been slow on the cloud
side of our agenda. Partially this has been due to a lack of maturity
in the space for provisioning, multi-tenancy, elasticity, and the
deployment of applications in the cloud. And partially it is due to
our conservative approach in trying to get things "right" in view of
limited industry experience in the cloud area when we started this work.
Because of this, we believe that providing solid support for
standardized PaaS-based programming and multi-tenancy would delay the
release of Java EE 7 until the spring of 2014 — that is, two years
from now and over a year behind schedule. In our opinion, that is way
too long.
We have therefore proposed to the Java EE 7 Expert Group that we
adjust our course of action — namely, stick to our current target
release dates, and defer the remaining aspects of our agenda for PaaS
enablement and multi-tenancy support to Java EE 8.
Of course, we continue to believe that Java EE is well-suited for use
in the cloud, although such use might not be quite ready for full
standardization. Even today, without Java EE 7, Java EE vendors such
as Oracle, Red Hat, IBM, and CloudBees have begun to offer the ability
to run Java EE applications in the cloud.
Deferring the remaining cloud-oriented aspects of our agenda has
several important advantages:
It allows Java EE Platform vendors to gain more experience with
their implementations in this area and thus helps us avoid risks
entailed by trying to standardize prematurely in an emerging area.
It means that the community won't need to wait longer for those
features that are ready at the cost of those features that need
more time.
Because we have already laid some of the infrastructure for cloud
support in Java EE 7, including resource definition metadata,
improved security configuration, JPA schema generation, etc., it
will allow us to expedite a Java EE 8 release. We therefore plan
to target the Java EE 8 Platform release for the spring of 2015.
This shift in the scope of Java EE 7 allows us to better retain our
focus on enhancements in simplification and usability and to deliver
on schedule those features that have been most requested by
developers. These include the support for HTML 5 in the form of Web
Sockets and JSON-P; the simplified JMS 2.0 APIs; improved Managed Bean
alignment, including transactional interceptors; the JAX-RS 2.0 client
API; support for method-level validation; a much more comprehensive
expression language; and more.
We feel strongly that this is the right thing to do, and we hope that
you will support us in this proposed direction.