-
Notifications
You must be signed in to change notification settings - Fork 115
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
Allow Jakarta EE 9.1 level APIs, but require TCKs pass and CCRs are clear #293
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -23,7 +23,6 @@ | |
|
||
MicroProfile implementations must include the following specifications: | ||
|
||
- <<jakartaee-core-profile, Jakarta EE Core Profile 10>> | ||
- <<mp-config, MicroProfile Config 3.0>> | ||
- <<mp-fault-tolerance, MicroProfile Fault Tolerance 4.0>> | ||
- <<mp-health-check, MicroProfile Health 4.0>> | ||
|
@@ -33,8 +32,7 @@ MicroProfile implementations must include the following specifications: | |
- <<mp-rest-client, MicroProfile Rest Client 3.0>> | ||
- <<mp-telemetry, MicroProfile Telemetry 1.0>> | ||
|
||
A MicroProfile compatible implementation must pass *all* required TCKs provided by each MicroProfile specification, | ||
including the Jakarta EE Core Profile 10 TCK. | ||
A MicroProfile compatible implementation must pass *all* required TCKs provided by each MicroProfile specification. | ||
Passing the MicroProfile optional TCKs is not required. | ||
|
||
These APIs and versions guarantee application developers a minimum set of APIs, but they are not intended to be | ||
|
@@ -46,10 +44,10 @@ restrictive. | |
This MicroProfile platform specification requires Java SE 11 for both source and target compatibility. Some component specifications may still support a Java SE 8 minimum version when used standalone. MicroProfile | ||
implementations that support the MicroProfile platform specification can provide support Java SE 11 or higher. | ||
|
||
[[jakartaee-core-profile]] | ||
=== Jakarta EE Core Profile 10 | ||
[[jakartaee]] | ||
=== Jakarta EE | ||
|
||
MicroProfile 6.0 and above requires https://jakarta.ee/specifications/coreprofile/10/[Jakarta EE 10 Core Profile] support. | ||
MicroProfile 6.0 adds support for the https://jakarta.ee/specifications/coreprofile/10/[Jakarta EE 10 Core Profile]. | ||
|
||
* Jakarta Annotations 2.1 | ||
* Jakarta Contexts and Dependency Injection (Lite Section) 4.0** | ||
|
@@ -59,8 +57,22 @@ MicroProfile 6.0 and above requires https://jakarta.ee/specifications/coreprofil | |
* Jakarta JSON Processing 2.1 | ||
* Jakarta RESTful Web Services 3.1 | ||
|
||
Implementations based on the Jakarta EE 10 Core Profile must pass *all* required Jakarta EE 10 Core Profile TCKs. | ||
|
||
pass:[**] Full CDI support is not required. CDI SE support is not required. | ||
|
||
MicroProfile 6.0 allows optional support for Jakarta EE 9.1 and other Jakarta EE profiles provided the minimum APIs are implemented and *all* required TCK tests pass: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm surprised to read this given the email thread on this subject concluded with the following:
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. See my note on the list. Emily reached out me and there was another discussion on Tuesday where some willingness to revisit was expressed and I was requested to create a PR for people to evaluate. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. But I think there are technical problems. A user can build an application with MP 6.0 API as the sole dependency and can use, for example the classes BeanContainer, BuildCompatibleExtension, EntityPart, etc.. The application builds fine but fails deployment as those classes are not available in a Jakarta EE 9.1 runtime. So the compatibility no longer means it is able to run all applications build on top of the MP 6.0 API and thus certification s meaningless for vendors and users. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @dblevins Can you provide me with a link to the discussion on Tuesday? I don't see it on the list. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @NottyCode it was the on the technical call. I don't know where those are being posted these days. @jclingan is that up anywhere? |
||
|
||
* Jakarta Annotations 2.0 _or higher_ | ||
* Jakarta Contexts and Dependency Injection 3.0 _or higher_ | ||
* Jakarta Dependency Injection 2.0 _or higher_ | ||
* Jakarta Interceptors 2.0 _or higher_ | ||
* Jakarta JSON Binding 2.0 _or higher_ | ||
* Jakarta JSON Processing 2.0 _or higher_ | ||
* Jakarta RESTful Web Services 3.0 _or higher_ | ||
|
||
Implementations must list in CCRs and Public TCK Results Summary pages the exact Jakarta EE version and profile that is supported. | ||
|
||
[[mp-config]] | ||
=== MicroProfile Config 3.0 | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The phrase:
seems redundant since that requirement was already there.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you mean it was already there in other sections that mention 6.0 or was already there in 5.0?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I mean there was a long discussion a few years back about whether or not a MicroProfile implementation required the CDI/JAX-RS and JSON-* specifications to pass and my understanding of the conclusion of that discussion was that they were. Making it clearer in the text that this is required is obviously a good thing, but stating that you are adding a requirement that was already there reverses the outcome of the discussion we had in the past about CDI/JAX-RS and JSON-* TCKs needed to be passing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@NottyCode it was the reverse. Prior to this PR from John in October the spec said, "Passing the Jakarta specifications TCKs is optional." I was attempting to be consistent with that PR and state that if you are on Jakarta EE 9.1, passing the related Jakarta TCKs is still required.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the past, it was argued that CDI TCKs contained EJB, which was not supported by MicroProfile. The whole point of Jakarta EE 10 Core Profile was to fix the problem so that Jakarta EE 10 Core Profile can be consumed by MicroProfile and strengthen up the compliance, which was why MP adopts Jakarta EE 10 Core Profile.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We are ok passing all related Jakarta EE 9.1 TCK tests.