Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

On branch gh-pages-edburns-msft-728-apply-wave-list-to-ee11-plan #729

Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
245 changes: 123 additions & 122 deletions jakartaee11/JakartaEE11ReleasePlan.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,18 @@ Please revisit to keep updated

## Timeline

| | Q1 2023 | Q2 2023 | Q3 2023 | Q4 2023 | Q1 2024 |
|-|---------|---------|---------|---------|---------|
| | | | | | |
| *Components* | Plan Reviews | | | | |
| *Platform* | | Plan Review | | | |
| *All*| | TCK pass w/Security Manager Disabled | | | |
| | Q1 2023 | Q2 2023 | Q3 2023 | Q4 2023 | H1 2024 | H2 2024 |
|-|---------|---------|---------|---------|---------|---------|
| | | | | | | |
| *Components* | Plan Reviews | | | | | |
| *Platform* | | | Plan Review | | | |
| *All*| | | TCK pass w/Security Manager Disabled | | | |
| *All* | | | | Milestones published | | |
| *All* | | | | TCK pass on Java SE 21 | |
| *Components* | | | | Individual Component Spec Ballots | |
| *Platform* | | | | | Platform TCK pass on Java SE 21 |
| *Platform* | | | | | Platform ballot |
| *Platform* | | | | | **Release** |
| *All* | | | | TCK pass on Java SE 21 | | |
| *Components* | | | | Individual Component Spec Ballots | | |
| *Platform* | | | | | Platform TCK pass on Java SE 21 | |
| *Platform* | | | | | | Platform ballot |
| *Platform* | | | | | | **Release** | |

## Scope ([issue]())
The goal of the Jakarta EE 11 release is to deliver a set of coordinated specifications across the spectrum of Jakarta EE technologies.
Expand All @@ -35,13 +35,10 @@ Java SE 21 will become the minimum runtime supported by Jakarta EE compatible im
### API Source and Target Level
If a component Specification is planning a Major or Minor version update for Jakarta EE 11, then the recommendation would be to recompile and distribute the specification’s APIs at lowest required of Java SE 17 and Java SE 21.

**Note:**A component specification may be required to recompile to a higher Java SE level than it actually use depending on the specifications it depends on.

**Note:** The Platform API uber jar files will all be compiled at the Java SE 21 source/target levels.
This is consistent with past practices.
**Note:** A component specification may be required to recompile to a higher Java SE level than it actually use depending on the specifications it depends on.

### TCK Source Level
The TCKs will be compiled at the Java SE 21 level.
The TCK for specifications updated in EE 11 will be compiled at the Java SE 21 level.

#### Signature Tests
In Jakarta EE 9.1, the framework for performing API Signature tests was updated to make it easier to test Signatures across multiple Java levels.
Expand All @@ -59,7 +56,6 @@ Several discussions via Issues, Mailing Lists, and the Platform call have result
* spec module name is `jakarta.<specName>` (reference [names.adoc](https://github.com/jakartaee/specification-committee/blob/master/names.adoc))
* spec provides JPMS module definition (reliance on automatic modules is not allowed)
* spec updates provider lookup algorithm to include search on module-path (if applicable)
* TCK tests should be updated or provided to ensure a properly configured and functional `module-info.class` (guidelines will be provided)
* The Platform and Web Profile Specification API will not provide a platform/profile level `module-info.class` for EE 11
* Don’t want to set the expectation that implementations must support JPMS at this point
* Implementations can still experiment with their own aggregator modules
Expand All @@ -68,14 +64,15 @@ Several discussions via Issues, Mailing Lists, and the Platform call have result
Each Specification project should own the TCK source and produce the TCK artifacts.
This needs to be done in such a way that the artifacts can be run to validate implementations at the individual specification level, as well as integrated into platform level TCKs.

This is a run-at goal for Jakarta EE 11.
We know that not all Specifications can establish their standalone TCKs in this timeframe.

The Platform TCK can initiate this refactoring by breaking apart the TCK source into separate directories within the Platform TCK repository.

This will help with the eventual move of these TCK directories into their respective component repositories.

## Component Specification Project Releases
As mentioned, many of the Component Specification projects have already declared their intent for either a Major or Minor version update for Jakarta EE 11.
These projects have already submitted or completed their Plan Reviews for inclusion in Jakarta EE 11, and are driving towards a Q1 2024 release.
These projects have already submitted or completed their Plan Reviews for inclusion in Jakarta EE 11, and are driving towards a H2 2024 release.
These updates are outlined in the sections below.

## Deliverables in Jakarta EE 11
Expand All @@ -84,53 +81,89 @@ The following details the specifications and APIs currently planned for the Jaka
### Jakarta EE 11 Specifications
List of specifications in Jakarta EE 11 Platform, Jakarta EE 11 Web Profile, and Jakarta EE Core Profile (updated specifications marked with asterisks).

* Jakarta EE Platform 11*
* Jakarta EE Web Profile 11*
* Jakarta EE Core Profile 11*

*TODO: add list of specifications*

<!--
* Jakarta Activation 2.1*
* Jakarta Annotations 2.1* (Web Profile)
* Jakarta Authentication 3.0* (Web Profile)
* Jakarta Authorization 2.1*
* Jakarta Batch 2.1*
* Jakarta Bean Validation 3.0 (Web Profile)
* Jakarta Concurrency 3.0* (Web Profile)
* Jakarta Connectors 2.1*
* Jakarta Contexts and Dependency Injection 4.0*
* Jakarta Debugging Support for Other Languages 2.0 (Web Profile)
* Jakarta Dependency Injection 2.0 (Web Profile)
* Jakarta Enterprise Beans 4.0
* Jakarta Enterprise Beans 4.0 Lite (Web Profile)
* Jakarta Enterprise Web Services 2.0 (Optional)
* Jakarta Expression Language 5.0* (Web Profile)
* Jakarta Interceptors 2.1* (Web Profile)
* Jakarta JSON Binding 3.0* (Web Profile)
* Jakarta JSON Processing 2.1* (Web Profile)
* Jakarta Mail 2.1*
* Jakarta Managed Beans 2.0 (Web Profile)
* Jakarta Messaging 3.1*
* Jakarta Persistence 3.1* (Web Profile)
* Jakarta RESTful Web Services 3.1* (Web Profile)
* Jakarta Security 3.0* (Web Profile)
* Jakarta Server Faces 4.0* (Web Profile)
* Jakarta Server Pages 3.1* (Web Profile)
* Jakarta Servlet 6.0* (Web Profile)
* Jakarta SOAP with Attachments 3.0* (Optional)
* Jakarta Standard Tag Library 3.0* (Web Profile)
* Jakarta Transactions 2.0 (Web Profile)
* Jakarta WebSocket 2.1* (Web Profile)
* Jakarta XML Binding 4.0* (Optional)
* Jakarta XML Web Services 4.0* (Optional)
* Jakarta Web Services Metadata 3.0 (Merged)
-->
- Jakarta EE Platform 11*
- Jakarta EE Web Profile 11*
- Jakarta EE Core Profile 11*

- Jakarta CDI 4.1*
- Jakarta CDI EE 4.1*
- Jakarta Activation 2.1.2* service release
- Jakarta Annotations 3.0*
- Jakarta Authentication 3.1*
- Jakarta Authorization 3.0*
- Jakarta Batch 2.1
- Jakarta Concurrency 3.1*
- Jakarta Connectors 2.1
- Jakarta Debugging Support for Other Languages 2.0
- Jakarta Dependency Injection 2.0.1
- Jakarta Enterprise Beans 4.0.1
- Jakarta Expression Language 4.0
- Jakarta Faces 5.0*
- Jakarta Interceptors 2.2*
- Jakarta JSON Binding 3.0
- Jakarta JSON Processing 2.1.2* service release
- Jakarta Lang Model 4.0.1
- Jakarta Mail 2.1.2* service release
- Jakarta Messaging 3.1
- Jakarta Persistence 3.2*
- Jakarta RESTful Web Services 4.0*
- Jakarta SOAP with Attachments 3.0
- Jakarta Security 4.0*
- Jakarta Server Pages 4.0*
- Jakarta Servlet 6.1*
- Jakarta Standard Tag Library 3.0
- Jakarta Transactions 2.0.1
- Jakarta Validation 3.1*
- Jakarta WebSocket 2.2*
- Jakarta XML Binding 4.0
- Jakarta XML Web Services 4.0

### Proposed Updates to Platform

- Jakarta CDI EE
- Jakarta Activation
- Jakarta Annotations
- Jakarta Authentication
- Jakarta Authorization
- Jakarta Concurrency
- Jakarta Faces
- Jakarta Interceptors
- Jakarta JSON Processing
- Jakarta Mail
- Jakarta Persistence
- Jakarta RESTful Web Services
- Jakarta Security
- Jakarta Server Pages
- Jakarta Servlet
- Jakarta Transactions
- Jakarta Validation
- Jakarta WebSocket

### Proposed Updates to Web Profile

- Jakarta Annotations
- Jakarta Validation
- Jakarta Concurrency
- Jakarta CDI EE
- Jakarta Authentication
- Jakarta Interceptors
- Jakarta JSON Processing
- Jakarta Persistence
- Jakarta RESTful Web Services
- Jakarta Security
- Jakarta Faces
- Jakarta Server Pages
- Jakarta Servlet
- Jakarta WebSocket

### Proposed Updates to Core Profile

- Jakarta CDI
- Jakarta Annotations
- Jakarta Interceptors
- Jakarta JSON Processing
- Jakarta RESTful Web Services

### Jakarta EE 11 APIs
The Platform and Web Profile API uber jar files will be re-generated to correspond with the Jakarta EE 11 release designation.
These API uber jar files will be compiled and distributed at the Java 11 source/target levels.
Expand All @@ -144,89 +177,57 @@ As stated earlier, all component Specifications which plan a Major or Minor rele

We are proposing to deliver Jakarta EE 11 in a set of waves similar to those delivered in the previous Jakarta EE releases. These waves are somewhat related to the dependency tree of specifications. We aim to deliver specifications with a low number of dependencies first followed by other specifications.


#### Independent Wave (standalone)

The following specifications can be delivered independently of other apis.

* Jakarta Annotations
* Jakarta Concurrency
* Jakarta Messaging
* Jakarta Persistence
* Jakarta Managed Beans


#### Wave 1

The specifications included in Wave 1 are:

* Jakarta JSON Processing
* Jakarta Dependency Injection (Service release for module-info)
* Jakarta Expression Language
* Jakarta Bean Validation (Service release for module-info)
* Jakarta WebSocket
* Jakarta Servlet
* Jakarta Activation
* Jakarta SOAP with Attachments
* Jakarta Interceptors (Service release for module-info)

- Jakarta Annotations

#### Wave 2

The specifications included in Wave 2 are:

* Jakarta Mail
* Jakarta Authentication
* Jakarta JSON Binding
* Jakarta Server Pages
* Jakarta Debugging Support for Other Languages
* Jakarta Authorization
* Jakarta XML Binding

- Jakarta Expression Language
- Jakarta Interceptors
- Jakarta Lang Model (may be released with Jakarta CDI [Core] in wave 3)
edburns marked this conversation as resolved.
Show resolved Hide resolved

#### Wave 3

The specifications included in Wave 3 are:

* Jakarta Contexts and Dependency Injection
* Jakarta XML Web Services

- Jakarta Contexts and Dependency Injection

#### Wave 4

The specifications included in Wave 4 are:

* Jakarta Batch
* Jakarta RESTful Web Services
* Jakarta Transactions (Service release for module-info)

- Jakarta JSON Binding
edburns marked this conversation as resolved.
Show resolved Hide resolved
- Jakarta Mail
- Jakarta SOAP with Attachments
- Jakarta XML Binding

#### Wave 5

The specifications included in Wave 5 are:

* Jakarta Connectors
* Jakarta Standard Tag Library
* Jakarta Enterprise Beans (Service release for module-info)
* Jakarta Enterprise Web Services

- Jakarta Authorization
- Jakarta Batch
- Jakarta Persistence
- Jakarta RESTful Web Services
- Jakarta Server Pages
- Jakarta Servlet
- Jakarta Validation
- Jakarta WebSocket
- Jakarta XML Web Services

#### Wave 6

The specifications included in Wave 6 are:

* Jakarta Security
* Jakarta Server Faces

- Jakarta Authentication
- Jakarta Concurrency
- Jakarta Faces
- Jakarta Messaging
- Jakarta Standard Tag Library
- Jakarta Platform Core Profile

#### Wave 7

The specifications included in Wave 7 are:
- Jakarta Contexts and Dependency Injection Enterprise Edition (CDI EE)
- Jakarta Platform Web Profile
- Jakarta Security

* Jakarta EE 10 Core Profile
* Jakarta EE 10 Web Profile
* Jakarta EE 10 Full Platform
#### Wave 8

- Jakarta Platform

### Platform and Web Profile Release Candidate

Expand Down