jakartaee / platform

The Jakarta EE Platform project produces the Jakarta EE platform specification, which is an umbrella specification that aggregates all other Jakarta EE specifications.
https://jakartaee.github.io/platform/
Eclipse Public License 2.0
193 stars 64 forks source link

Clarification on older schemas required for EE 11 implementations to support #906

Open scottmarlow opened 2 weeks ago

scottmarlow commented 2 weeks ago

In EE 11, what exactly are we trying to accomplish with the Appendix A rules?

For reference current Appendix A https://jakarta.ee/specifications/platform/10/jakarta-platform-spec-10.0#a3447 or https://jakarta.ee/specifications/platform/9/jakarta-platform-spec-9#a3447 (both have the same text):

This appendix describes Document Type Definitions (DTDs) and XML schemas for Deployment Descriptors from previous versions of the Java™ EE and Jakarta™ EE specifications. All Jakarta EE 9 products are required to support the DTDs and schemas specified by Jakarta EE 8, as well as the schemas specified in this version of the specification. This ensures that applications written to the previous version of the Jakarta EE specification can be deployed on products supporting the current version of this specification. Support for versions of DTDs and schemas prior to Jakarta EE 8 is optional. In addition, there are no restrictions on mixing versions of supported deployment descriptors in a single application; any combination of valid deployment descriptor versions must be supported.

In the above quoted text, this version of the specification refers to EE 9 and how EE 9 implementations must support the schemas of the previous (EE 8) release. Optionally, earlier schemas (e.g. Java EE/J2EE) can be supported but are not required.

What is the Appendix A requirement for EE 11 and Jakarta EE schemas?

One schema to consider is https://jakarta.ee/xml/ns/jakartaee/ejb-jar_4_0.xsd which is listed on https://jakarta.ee/xml/ns/jakartaee/ as being part of Jakarta EE 9/10/11 but has not changed for any of these EE releases.

Another schema is https://jakarta.ee/xml/ns/jakartaee/beans_4_1.xsd which changed the version number for EE 11 but is otherwise still compatible with EE 10 (https://jakarta.ee/xml/ns/jakartaee/beans_4_0.xsd).

Do EE 11 applications need to update their beans_3_0.xsd references to beans_4_1.xsd/beans_4_0.xsd? but they can still use the (EE 9) ejb-jar_4_0.xsd?

ivargrimstad commented 1 week ago

Do EE 11 applications need to update their beans_3_0.xsd references to beans_4_1.xsd/beans_4_0.xsd? but they can still use the (EE 9) ejb-jar_4_0.xsd?

I think the answer to this question is 'Yes' since the behavior of the empty beans.xml changed the default discovery mode from 'all' to 'annotated'. At least in the case where there is an empty beans.xml and the application depends on the default behavior.