The Java Community Process(SM) Program - JSRs: Java Specification Requests (original) (raw)

JSRs: Java Specification Requests

JSR 342: JavaTM Platform, Enterprise Edition 7 (Java EE 7) Specification

Stage Access Start Finish Maintenance Release Download page 03 Jul, 2015 Maintenance Review Ballot View results 16 Jun, 2015 22 Jun, 2015 Maintenance Draft Review Download page 13 May, 2015 12 Jun, 2015 Final Release Download page 28 May, 2013 Final Approval Ballot View results 16 Apr, 2013 29 Apr, 2013 Proposed Final Draft Download page 14 Mar, 2013 Public Review Ballot View results 12 Feb, 2013 25 Feb, 2013 Public Review Download page 08 Jan, 2013 11 Feb, 2013 Early Draft Review 2 Download page 31 Oct, 2012 30 Nov, 2012 Early Draft Review Download page 23 Apr, 2012 23 May, 2012 JSR Review Ballot View results 01 Mar, 2011 14 Mar, 2011

Status: Maintenance
JCP version in use: 2.9
Java Specification Participation Agreement version in use: 2.0

Description:
This JSR will develop Java EE 7, the next version of the Java Platform, Enterprise Edition.

Expert Group Transparency:
Public Communications
Issue Tracking

Specification Leads
Star Spec Lead Linda Demichiel Oracle
Star Spec Lead William Shannon Oracle
Expert Group
Adam Bien Blevins, David: David Blevins
Fujitsu Limited: Minehiko Iida Fujitsu Limited: Minoru Nitta
Goncalves, Antonio: Antonio Goncalves Heneveld, Alex: Alex Heneveld
IBM: Kevin Sutter Werner Keil
Oracle: William Shannon OW2: Florent Benoit
Red Hat: Jason Greene Red Hat: Pete Muir
TongTech Ltd: Ming Li Washburn, Donald: Spike Washburn
Contributors

List of Compatible Implementations

Updates to the Original JSR

The following updates have been made to the original proposal.

2013.04.03:

2.15 Provide detailed answers to the transparency checklist, making sure to include URLs as appropriate:

Is the schedule for the JSR publicly available, current, and updated regularly?

Yes. On http://java.net/projects/javaee-spec/pages/Home

Can the public read and/or write to a wiki for the JSR?

Yes. The java.net/projects/javaee-spec project users list(users@javaee-spec.java.net) is used for this purpose

Is there a publicly accessible discussion board for the JSR that you read and respond to regularly?

Yes. The java.net/projects/javaee-spec project users list is used for this purpose

Have you spoken at conferences and events about the JSR recently?

Yes, JavaOne 2012 (in October)

Are you using open-source processes for the development of the RI and/or the TCK?

Yes, the RI is being done under the open source GlassFish project atglassfish.java.net

What are the Terms of Use required to use the collaboration tools you have prepared to use with the Expert Group, so that prospective EG members can judge whether they are compatible with the JSPA?

The terms of use are those on java.net: http://www.java.net/javanet-web-site-terms-use

Does the Community tab for my JSR have links to and information about all public communication mechanisms and sites for the development of my JSR?

Yes

2.19 Please describe the communications channel you have established for the public to observe Expert Group deliberations, provide feedback, and view archives of all Expert Group communications.

The public can provide feedback via the users@javaee-spec.java.net email list or the JIRA. EG communications are archived at http://java.net/projects/javaee-spec/lists/jsr342-experts/archive.

2.20 What is the URL of the Issue Tracker that the public can read, and how does the public log issues in the Issue Tracker?

http://java.net/jira/browse/JAVAEE_SPEC

2.21 Please provide the location of the publicly accessible document archive you have created for the Expert Group.

http://java.net/projects/javaee-spec/downloads

2013.03.05:

2.18 Please provide a description of the business terms for the Specification, RI and TCK that will apply when this JSR is final.

2.1 Please describe the proposed Specification:

This JSR is to develop Java EE 7, the next release of the Java Platform, Enterprise Edition.

The main focus of this release is on enhanced simplification, productivity, and support for HTML 5. Since its inception, the Java EE platform has been targeted at offloading the developer from common infrastructure tasks through its container-based model and abstraction of resource access. In recent releases the platform has considerably simplified the APIs for access to container services while broadening the range of the services available. In this release we aim to continue the direction of improved simplification, while extending the range of the Java EE platform to encompass emerging technologies in the web space.

- Latest web standards -

We expect the Java EE 7 platform to add first-class support for recent developments in web standards, including HTML5, Web Sockets, and JSON. It will also include a modern HTTP client API as defined by the JAX-RS 2.0 JSR.

- Ease of development -

On the ease of development front, Java EE 7 will include a revised and greatly simplified JMS 2.0 API.

The CDI dependency injection facility introduced in Java EE 6 will be enhanced as well as more broadly utilized by the Java EE platform technologies.

We expect the managed bean model to be further refined and expanded so as to remove as many inconsistencies as possible across Managed Beans, EJB, Servlets, JSF, CDI and JAX-RS. As an example, we plan to make available the declarative transaction functionality introduced by EJB in a more general way through CDI interceptors, so that it may be leveraged by other managed beans.

We expect to expand the scope of the ease of use facility of Bean Validation, extending it to the automatic validation of method invocations and integrating it with the CDI interceptor facility.

Ease of development encompasses ease of configuration as well. To that end, we plan to broaden the resource definition facilities introduced in Java EE 6 to encompass more of the standard platform resource types, and also provide default database and JMS connection factory resources. We plan to improve the configuration of application security, including new descriptors for security permissions.

Although Java EE 7 will build on Java SE 7, we will encourage component JSRs to review and improve their APIs with the coming Java SE 8 language changes in mind, so that enterprise developers will be able to take advantage of the new language features as soon as Java SE 8 is released.

- Infrastructure for cloud support -

In Java EE 7 we expect to lay groundwork for enhancements to the platform for use in cloud environments in a future Java EE 8 release. Areas that we expect to address encompass some of those mentioned above, and include resource definition metadata, improved security configuration, and database schema generation.

- Preliminary contents -

The following new JSRs will be candidates for inclusion in the Java EE 7 platform:

Java API for JSON Processing (JSR-353)

Java API for WebSocket (JSR-356)

Batch Application for the Java Platform (JSR-352)

Concurrency Utilities for Java EE (JSR-236)

JCache (JSR-107)

Several of the technologies already included in the Java EE platform are expected to be updated for the Java EE 7 release, including all or some of the following:

Java Persistence API (JPA)
Java API for RESTful Web Services (JAX-RS)
JavaServer Faces (JSF)
Servlets
Enterprise JavaBeans (EJB)
JavaServer Pages
Expression Language
Java Messaging Service (JMS)
Java API for XML-based Web Services (JAX-WS)
Contexts and Dependency Injection for Java EE (CDI)
Bean Validation
Common Annotations (JSR-250)
Java Connector Architecture

Some of the new component JSRs we are proposing for inclusion add significant capabilities to the platform: JCache enables scaling of applications by standardizing a powerful caching layer accessible from all containers; the Concurrency Utilities for Java EE API builds on the java.util.concurrent API in Java SE and offers a context- and transaction-aware API for asynchronous tasks.

- Web Profile -

This JSR will also update the Java Enterprise Edition Web Profile to version 7. In addition to incorporating the latest version of the technologies currently in the Web Profile, we will consider adding new required technologies to the Web Profile, such as JAX-RS 2.0.

- Pruning -

In accordance with the pruning process defined by the Java EE 6 specification, we will consider making optional in this release the technologies identified as candidates for pruning in Java EE 6, namely: EJB Entity Beans, JAX-RPC 1.1, JAXR 1.0, JSR-88 1.2.

2012.04.06:

2.13 Please describe the anticipated schedule for the development of this specification.

March 2011 Expert Group formed
Q3 2011 Early Draft
Q3 2012 Public Review
Q4 2012 Proposed Final Draft
Q1 2013 Final Release

2011.05.03:

Specification Lead: Linda DeMichiel, Bill Shannon

E-Mail Address: linda.demichiel@oracle.com, bill.shannon oracle.com

Telephone Number: +1 408 276 7057, +1 408 276 7280

Fax Number: -

Original Java Specification Request (JSR)

Identification | Request | Contributions

Section 1. Identification

Submitting Member: Oracle

Name of Contact Person: Roberto Chinnici

E-Mail Address: roberto.chinnici@oracle.com

Telephone Number: +1 415 402 7873

Fax Number: +1 415 402 7215

Specification Lead: Roberto Chinnici, Bill Shannon

E-Mail Address: roberto.chinnici@oracle.com, bill.shannon oracle.com

Telephone Number: +1 415 402 7873, +1 408 276 7280

Fax Number: +1 415 402 7215, -

Note that this information has been updated from this original proposal.

Initial Expert Group Membership:

Oracle

Supporting this JSR:

Oracle
Jeff Genender
Antonio Goncalves

Section 2: Request

2.1 Please describe the proposed Specification:

This JSR is to develop Java EE 7, the next release of the Java Platform, Enterprise Edition.

The main theme for this release is the Cloud. The Java EE platform is already well suited for cloud environments thanks to its container-based model and the abstraction of resource access it entails. In this release we aim to further enhance the suitability of the Java EE platform for cloud environments. As a result, Java EE 7 products will be able to more easily operate on private or public clouds and deliver their functionality as a service with support for features such as multitenancy and elasticity (horizontal scaling). Applications written for Java EE 7 will be better able to take advantage of the benefits of a cloud environment.

- Cloud -

In the Platform as a Service (PaaS) model, applications from one customer can be deployed to the cloud and take advantage of services provided by the hosting environment alongside other applications belonging to other customers, with the appropriate guarantees in terms of security, isolation, quality of service, etc. Similarly, a single application can be used by multiple tenants with the same security, isolation, and quality of service guarantees.

Since its inception, Java EE has offered a managed environment in which access to the system and any external resources, such as relational databases, is controlled and mediated by containers. This container-based model has allowed portable applications to target single-machine deployments as well as large cluster installations without fundamental changes to the programming model. We see the cloud as a further evolution of this paradigm and propose to address it via some incremental changes to the existing (and popular) Java EE programming model.

This JSR will extend the Java EE platform architecture to take into account the operational impact of the Cloud, more specifically by defining new roles that arise in that model, such as PaaS administrator. It will also review, and if needed update, the security architecture in Java EE to take into account the needs of the PaaS model. This JSR may also establish a set of constraints that applications that wish to take advantage of PaaS-specific features, such as multitenancy, may have to obey and provide a way for applications to identify themselves as designed for cloud environments.

We expect most technologies that are part of the platform to be updated to take into consideration the new requirements of the cloud model. In particular, all resource manager-related APIs, such as JPA, JDBC and JMS, will be updated to enable multitenancy. The programming model may be refined as well, for example by introducing connectionless versions of the major APIs. The model for exposing resources to applications will need to be reviewed with the PaaS in mind; for example, it may be necessary to enable certain external resources, such as data sources and message queues, to be tagged as shared by multiple applications. The expert groups governing the individual technologies will be tasked with identifying any such needs and taking the appropriate measures to ensure they are addressed.

This JSR will define a descriptor for application metadata to enable developers to describe certain characteristics of their applications that are essential for the purpose of running them in a PaaS environment. These may include: being multitenancy-enabled, resources sharing, quality of service information, dependencies between applications. The application metadata facility will be extensible; we envision defining an initial set of standard metadata attributes in this release and expanding it in future versions of the platform.

- Latest web standards -

We expect the Java EE 7 platform to add first-class support for some of the recent developments in the web space, including HTML5 and Web Sockets. It will also include a modern HTTP client API as defined by the JAX-RS 2.0 JSR.

- Ease of development -

On the ease of development front, Java EE 7 will include a revised JMS 2.0 API.

We expect the dependency injection facility introduced in Java EE 6 to be updated for this release with the addition of an API to configure an injector. Such an API will be defined in the DI 1.1 JSR (a follow-up to JSR-330) and supported by CDI 1.1.

We also expect the managed bean model to be further refined and expanded so as to remove as many inconsistencies as possible across Managed Beans, EJB, Servlets, JSF, CDI and JAX-RS.

Although Java EE 7 will build on Java SE 7, we will encourage component JSRs to review and improve their APIs with the coming Java SE 8 language changes in mind, so that enterprise developers will be able to take advantage of the new language features as soon as Java SE 8 is released.

- Preliminary contents -

The following new JSRs will be candidates for inclusion in the Java EE 7 platform:

Concurrency Utilities for Java EE (JSR-236)
JCache (JSR-107)

Several of the technologies already included in the Java EE platform are expected to be updated for the Java EE 7 release, including all or some of the following:

Java Persistence API (JPA)
Java API for RESTful Web Services (JAX-RS)
JavaServer Faces (JSF)
Servlets
Enterprise JavaBeans (EJB)
JavaServer Pages
Expression Language
Java Messaging Service (JMS)
Java API for XML-based Web Services (JAX-WS)
Contexts and Dependency Injection for Java EE (CDI)
Bean Validation
Dependency Injection for the Java Platform (JSR-330)
Common Annotations (JSR-250)
Java Connector Architecture

We'd like to solicit community contributions in the following areas with an eye on including these technologies in Java EE 7 should their schedule allow it:

Java Web Sockets API (TBD)
Java JSON API (TBD)

Some of the new component JSRs we are proposing for inclusion add significant capabilities to the platform: JCache enables scaling of applications by standardizing a powerful caching layer accessible from all containers; the Concurrency Utilities for Java EE API builds on the java.util.concurrent API in Java SE and offers a context- and transaction-aware API for asynchronous tasks.

- Web Profile -

This JSR will also update the Java Enterprise Edition Web Profile to version 7. In addition to incorporating the latest version of the technologies currently in the Web Profile, we will consider adding new required technologies to the Web Profile, such as JAX-RS 2.0.

- Pruning -

In accordance with the pruning process defined by the Java EE 6 specification, we will consider making optional in this release the technologies identified as candidates for pruning in Java EE 6, namely: EJB Entity Beans, JAX-RPC 1.1, JAXR 1.0, JSR-88 1.2.

- Modularity -

Last but not least, this JSR will investigate providing modularity and versioning capabilities sufficient to cover common developer use cases, such as using a later version of an API already included in the platform. This work will need to be coordinated with the upcoming modularity JSR for Java SE so as to provide alignment across the SE and EE platforms.

2.2 What is the target Java platform? (i.e., desktop, server, personal, embedded, card, etc.)

This specification defines a release of the Java EE platform.

2.3 The Executive Committees would like to ensure JSR submitters think about how their proposed technology relates to all of the Java platform editions. Please provide details here for which platform editions are being targeted by this JSR, and how this JSR has considered the relationship with the other platform editions.

This JSR updates the Java EE platform and the Java EE Web Profile.

2.4 Should this JSR be voted on by both Executive Committees?

No. By the SE/EE EC only.

2.5 What need of the Java community will be addressed by the proposed specification?

See 2.1 above.

2.6 Why isn't this need met by existing specifications?

See 2.1 above.

2.7 Please give a short description of the underlying technology or technologies:

A detailed description of Java EE functionality can be found in the Java EE Specification, see http://jcp.org/en/jsr/detail?id=316.

2.8 Is there a proposed package name for the API Specification? (i.e., javapi.something, org.something, etc.)

The Java EE platform itself does not require a package name. All of its requirements are reflected in the packages of its constituent Java APIs.

2.9 Does the proposed specification have any dependencies on specific operating systems, CPUs, or I/O devices that you know of?

No.

2.10 Are there any security issues that cannot be addressed by the current security model?

Java EE 7 addresses mechanisms and policies required for secure usage of its constituent component models and access APIs. These mechanisms must be compatible with the security facilities of Java SE 7.

Java EE 7 may define additional Service Provider Interfaces, including those that allow security technology vendors to integrate with Java EE application servers.

2.11 Are there any internationalization or localization issues?

Java EE uses the I18N support in Java SE and defined in constituent technologies.

2.12 Are there any existing specifications that might be rendered obsolete, deprecated, or in need of revision as a result of this work?

Other than the Java EE specification itself, the Java EE Web Profile specification and the new versions of their constituent components, Java EE 7 should not require other existing specifications to be revised.

2.13 Please describe the anticipated schedule for the development of this specification.

March 2011 Expert Group formed Q3 2011 Early Draft Q1 2012 Public Review Q3 2012 Final Release

Note that this information has been updated from this original proposal.

2.14 Please describe the anticipated working model for the Expert Group working on developing this specification.

The primary means of communication will be email, with conference calls and face-to-face meetings scheduled as needed.

2.15 Provide detailed answers to the transparency checklist, making sure to include URLs as appropriate:

A project site will be used to track all issues and disseminate information on the progress of the JSR.

- The public can read the names of the people on the Expert Group.

This information will be on on the project page for the JSR. It will also be part of every specification draft.

- The Expert Group business is regularly reported on a publicly readable alias.

The Expert Group will conduct business on a publicly readable alias. A private alias will be used only for EG-confidential information, as needed.

- The schedule for the JSR is publicly available, it's current, and I update it regularly.

The schedule will be available on the project page for the JSR.

- The public can read/write to a wiki for my JSR.

We'll use a public mailing list for comments.

- I read and respond to posts on the discussion board for my JSR on jcp.org.

We'll track such discussions and respond to them or redirect users to the public comment mailing list.

- There is an issue-tracker for my JSR that the public can read.

Yes, it will be accessible from the JSR project page.

- I have spoken at conferences and events about my JSR recently.

Yes, most recently at JavaOne 2010 and JavaOne China 2010.

- I am using open-source processes for the development of the RI and/or TCK.

Yes, the Reference Implementation will be developed as part of the GlassFish open source application server, see http://glassfish.java.net/.

- The Update tab for my JSR has links to and information about all public communication mechanisms and sites for the development of my JSR.

It will point to the project page for the JSR.

2.16 Please describe how the RI and TCK will de delivered, i.e. as part of a profile or platform edition, or stand-alone, or both. Include version information for the profile or platform in your answer.

The RI and TCK for Java EE 7 and the Java EE 7 Web Profile will be delivered in the same way they were delivered for Java EE 6.

2.17 Please state the rationale if previous versions are available stand-alone and you are now proposing in 2.13 to only deliver RI and TCK as part of a profile or platform edition (See sections 1.1.5 and 1.1.6 of the JCP 2 document).

N/A

2.18 Please provide a description of the business terms for the Specification, RI and TCK that will apply when this JSR is final.

Note that this information has been updated from this original proposal.

Java EE 7 Specification license
Java EE 7 Reference Implementation license
Java EE 7 Technology Compatibility Kit license

Web Profile Specification license
Web Profile Reference Implementation license
Web Profile Technology Compatibility Kit license

Section 3: Contributions

Java Platform, Enterprise Edition Specification Version 6 and Java Platform, Enterprise Edition Web Profile Specification, Version 6: http://jcp.org/en/jsr/detail?id=316.

3.2 Explanation of how these items might be used as a starting point for the work.

These specifications will be the starting point for this work.