From fa33ec3af000b303b3694f561b6d6cb82da23cbe Mon Sep 17 00:00:00 2001 From: Jared Anderson Date: Wed, 3 Jul 2024 10:27:53 -0500 Subject: [PATCH] Jakarta EE 11 Platform and Profile specification updates - Update URLs to not require redirect to their directory and/or https equivalent. - Remove references of applet, aplplet container and applet requirements. - Update XML Schemas to their EE 11 versions. - Remove references to and requirements for Java Security Manager except to say it isn't required any longer in EE 11. - Update minimum Java SE requirement to Java SE 17. - Remove references to Jakarta SOAP with Attachments, XML Binding and XML Web Services except to say they are no longer required by the EE 11 platform. - Update component version numbers to be their EE 11 equivalent. - Update references to Bean Validation to be just Validation except when referencing older versions of the specification. - Fix spelling errors found along the way. - Add EE 11 specific sections to the appropriate places where there is something added for each EE version. - Remove reference to now non-existent http://javaee-spec.java.net URL and only reference https://javaee.github.io/javaee-spec/ - --- .../coreprofile/CoreProfileDefinition.adoc | 14 +- .../asciidoc/coreprofile/Introduction.adoc | 9 +- .../coreprofile/RelatedDocuments.adoc | 20 +- .../asciidoc/coreprofile/RevisionHistory.adoc | 4 + .../ApplicationAssemblyDeployment.adoc | 14 +- .../asciidoc/platform/ApplicationClients.adoc | 12 +- .../ApplicationProgrammingInterface.adoc | 621 +++--------------- .../platform/CompatibilityMigration.adoc | 17 + .../asciidoc/platform/FutureDirections.adoc | 6 - .../asciidoc/platform/Interoperability.adoc | 8 +- .../main/asciidoc/platform/Introduction.adoc | 12 +- .../asciidoc/platform/PlatformOverview.adoc | 47 +- .../PreviousVersionDeploymentDescriptors.adoc | 2 +- .../src/main/asciidoc/platform/Profiles.adoc | 70 +- .../asciidoc/platform/RelatedDocuments.adoc | 78 ++- .../platform/ResourcesNamingInjection.adoc | 10 +- .../asciidoc/platform/RevisionHistory.adoc | 6 +- .../src/main/asciidoc/platform/Security.adoc | 14 +- .../platform/ServiceProviderInterface.adoc | 10 +- .../platform/cdi-ee-spec/lifecycle_ee.adoc | 2 +- .../src/main/asciidoc/web-dependencies.adoc | 62 +- .../asciidoc/webprofile/Introduction.adoc | 14 +- .../asciidoc/webprofile/RelatedDocuments.adoc | 52 +- .../asciidoc/webprofile/RevisionHistory.adoc | 5 + .../webprofile/WebProfileDefinition.adoc | 43 +- 25 files changed, 342 insertions(+), 810 deletions(-) diff --git a/specification/src/main/asciidoc/coreprofile/CoreProfileDefinition.adoc b/specification/src/main/asciidoc/coreprofile/CoreProfileDefinition.adoc index 8ea5df70..758a9030 100644 --- a/specification/src/main/asciidoc/coreprofile/CoreProfileDefinition.adoc +++ b/specification/src/main/asciidoc/coreprofile/CoreProfileDefinition.adoc @@ -1,19 +1,21 @@ == Core Profile Definition -This chapter defines the contents of the Jakarta™ EE 10.0 Core Profile. +This chapter defines the contents of the Jakarta™ EE 11.0 Core Profile. [[required_components]] === Required Components The following technologies are required components of the Core Profile: -* Jakarta Annotations 2.1 -* Jakarta Contexts and Dependency Injection (CDI) 4.0 (CDI Lite section) +* Jakarta Annotations 3.0* +* Jakarta Contexts and Dependency Injection (CDI) 4.1 (CDI Lite section)* * Jakarta Dependency Injection 2.0 -* Jakarta Interceptors 2.1 +* Jakarta Interceptors 2.2* * Jakarta JSON Processing 2.1 * Jakarta JSON Binding 3.0 -* Jakarta RESTful Web Services 3.1 +* Jakarta RESTful Web Services 4.0* + +*Note:* technologies with an asterisk after them represent updated versions. === Optional Components @@ -21,7 +23,7 @@ The optional Jakarta XML Binding support in Jakarta RESTful Web Services impleme Jakarta Expression Language support is not required in Jakarta Contexts and Dependency Injection Lite implementations since this is part of the Full CDI specification. -The Java SE section of the CDI 4.0 specification is not required for Core Profile implementations. Only Full CDI implementations are required to support the (CDI) Java SE API classes. +The Java SE section of the CDI 4.1 specification is not required for Core Profile implementations. Only Full CDI implementations are required to support the (CDI) Java SE API classes. [[additional_requirements]] === Additional Requirements diff --git a/specification/src/main/asciidoc/coreprofile/Introduction.adoc b/specification/src/main/asciidoc/coreprofile/Introduction.adoc index 8ecb09d3..bf6a0e64 100644 --- a/specification/src/main/asciidoc/coreprofile/Introduction.adoc +++ b/specification/src/main/asciidoc/coreprofile/Introduction.adoc @@ -8,7 +8,7 @@ Edition specifically targeted at smaller applications built around microservices The Core Profile is targeted at developers of modern cloud applications with focus on a minimal set of APIs that support microservices with a focus on enabling implementations -that make use of ahead of time complitation build to minimize startup +that make use of ahead of time compilation build to minimize startup time and memory footprint. It is worth noting that Core Profile products are allowed to ship with more technologies than the @@ -34,7 +34,7 @@ technology or combinations of technologies. Let’s look at some examples of requirements from each grouping. For the first one, the Jakarta EE Platform -specification mandates support for Java(TM) Platform, Standard Edition 11 API. Because of this, all Core Profile 10.0 APIs must support the Java(TM) Platform, Standard Edition 11 API. +specification mandates support for Java(TM) Platform, Standard Edition 17 API. Because of this, all Core Profile 11.0 APIs must support the Java(TM) Platform, Standard Edition 17 API. In the second category one can point out the that Jakarta XML Binding support is not required for Jakarta RESTful Web Services in the Core Profile. @@ -49,3 +49,8 @@ The fourth category is the most complex. The Jakarta Core Profile TCK attempts t The Jakarta EE 10.0 specification was created by the Jakarta EE Platform Specification Project with guidance provided by the Jakarta EE Working Group. + +=== Acknowledgements for Jakarta EE 11.0 + +The Jakarta EE 11.0 specification was created by the Jakarta EE Platform +Specification Project with guidance provided by the Jakarta EE Working Group. diff --git a/specification/src/main/asciidoc/coreprofile/RelatedDocuments.adoc b/specification/src/main/asciidoc/coreprofile/RelatedDocuments.adoc index 382a496e..b1416edb 100644 --- a/specification/src/main/asciidoc/coreprofile/RelatedDocuments.adoc +++ b/specification/src/main/asciidoc/coreprofile/RelatedDocuments.adoc @@ -6,23 +6,25 @@ This specification refers to the following documents. The terms used to refer to the documents in this specification are included in parentheses. -_Java™ Platform, Standard Edition (Java SE specification), v11_. Available at: https://www.jcp.org/en/jsr/detail?id=384 +_Jakarta™ EE Platform Specification, Version 11.0_. Available at: _https://jakarta.ee/specifications/platform/11/_ -_Java™ Platform, Standard Edition, v11 API Specification_. Available at: _https://docs.oracle.com/en/java/javase/11/_ +_Java™ Platform, Standard Edition (Java SE specification), v17_. Available at: _https://www.jcp.org/en/jsr/detail?id=392_ -_Jakarta™ RESTful Web Services Specification, Version 3.1_. Available at: _https://jakarta.ee/specifications/restful-ws/3.1_ +_Java™ Platform, Standard Edition, v17 API Specification_. Available at: _https://docs.oracle.com/javase/17/docs/_ -_Jakarta™ Annotations Specification, Version 2.1_. Available at: _https://jakarta.ee/specifications/annotations/2.1_ +_Jakarta™ RESTful Web Services Specification, Version 4.0_. Available at: _https://jakarta.ee/specifications/restful-ws/4.0/_ -_Jakarta™ Interceptors Specification, Version 2.1_. Available at: _https://jakarta.ee/specifications/interceptors/2.1_ +_Jakarta™ Annotations Specification, Version 3.0_. Available at: _https://jakarta.ee/specifications/annotations/3.0/_ -_Jakarta™ Contexts and Dependency Injection Specification (CDI Lite section), Version 4.0_. Available at: _https://jakarta.ee/specifications/cdi/4.0_ +_Jakarta™ Interceptors Specification, Version 2.2_. Available at: _https://jakarta.ee/specifications/interceptors/2.2/_ -_Jakarta™ Dependency Injection Specification, Version 2.0_. Available at: _https://jakarta.ee/specifications/dependency-injection/2.0_ +_Jakarta™ Contexts and Dependency Injection Specification (CDI Lite section), Version 4.1_. Available at: _https://jakarta.ee/specifications/cdi/4.1/_ -_Jakarta™ JSON Processing Specification, Version 2.1_. Available at: _https://jakarta.ee/specifications/jsonp/2.1_ +_Jakarta™ Dependency Injection Specification, Version 2.0_. Available at: _https://jakarta.ee/specifications/dependency-injection/2.0/_ -_Jakarta™ JSON Binding Specification, Version 3.0_. Available at: _https://jakarta.ee/specifications/jsonb/3.0_ +_Jakarta™ JSON Processing Specification, Version 2.1_. Available at: _https://jakarta.ee/specifications/jsonp/2.1/_ + +_Jakarta™ JSON Binding Specification, Version 3.0_. Available at: _https://jakarta.ee/specifications/jsonb/3.0/_ _Jakarta™ EE Working Group_ (_https://jakarta.ee/about/working-group/_) \ No newline at end of file diff --git a/specification/src/main/asciidoc/coreprofile/RevisionHistory.adoc b/specification/src/main/asciidoc/coreprofile/RevisionHistory.adoc index ab6442cf..2ed0696a 100644 --- a/specification/src/main/asciidoc/coreprofile/RevisionHistory.adoc +++ b/specification/src/main/asciidoc/coreprofile/RevisionHistory.adoc @@ -2,5 +2,9 @@ == Revision History +=== Changes in Final Release for EE11 +* Updated Java SE base version to 17. +* Updated <> for the updated Specifications in Jakarta EE 11. + === Changes in Final Release EE 10 * Initial version diff --git a/specification/src/main/asciidoc/platform/ApplicationAssemblyDeployment.adoc b/specification/src/main/asciidoc/platform/ApplicationAssemblyDeployment.adoc index 025269c1..d2b68cbf 100644 --- a/specification/src/main/asciidoc/platform/ApplicationAssemblyDeployment.adoc +++ b/specification/src/main/asciidoc/platform/ApplicationAssemblyDeployment.adoc @@ -244,9 +244,9 @@ Jakarta EE products are required to support the use of bundled and installed libraries as specified in the _Extension Mechanism Architecture_ and _Optional Package Versioning_ specifications (available at -_http://docs.oracle.com/javase/8/docs/technotes/guides/extensions/_ ) +_https://docs.oracle.com/javase/8/docs/technotes/guides/extensions/_ ) and the JAR File Specification (available at -_http://docs.oracle.com/javase/8/docs/technotes/guides/jar/jar.html_ ). +_https://docs.oracle.com/javase/8/docs/technotes/guides/jar/jar.html_ ). Using this mechanism a Jakarta EE JAR file can reference utility classes or other shared classes or resources packaged in a separate _.jar_ file or directory that is included in the same Jakarta EE application package, or @@ -320,7 +320,7 @@ may be referenced in the following way: . JAR format files of all types may contain an _Extension-List_ attribute in their Manifest file, indicating a dependency on an installed library. The JAR File Specification defines -the semantics of such attributes for use by applets; this specification +the semantics of such attributes; this specification requires support for such attributes for all component types and corresponding JAR format files. The deployment tool is required to check such dependency information and reject the deployment of any component @@ -753,10 +753,6 @@ access to the classes in other application client jar files in the same ear file, nor should it have access to the classes in web applications or Jakarta Enterprise Beans jar files in the same ear file. -==== Applet Container Class Loading Requirements (Deprecated, removal in Java SE 17) - -Applets were deprecated in Java SE 9, and are slated for removal post Java SE 17. - === Application Assembly This section specifies the sequence of steps @@ -1290,7 +1286,7 @@ as defined by <>. The deployment descriptor must be named _META-INF/application.xml_ in the _.ear_ file. Note that this name is case-sensitive. The XML Schema located at -_https://jakarta.ee/xml/ns/jakartaee/application_9.xsd_ defines the XML +_https://jakarta.ee/xml/ns/jakartaee/application_11.xsd_ defines the XML grammar for a Jakarta EE application deployment descriptor. <> shows a graphic representation @@ -1303,6 +1299,6 @@ image::JavaEEapplication_schema_7.svg[] === Common Jakarta EE XML Schema Definitions The XML Schema located at -_https://jakarta.ee/xml/ns/jakartaee/jakartaee_9.xsd_ defines types that are +_https://jakarta.ee/xml/ns/jakartaee/jakartaee_11.xsd_ defines types that are used by many other Jakarta EE deployment descriptor schemas, both in this specification and in other specifications. diff --git a/specification/src/main/asciidoc/platform/ApplicationClients.adoc b/specification/src/main/asciidoc/platform/ApplicationClients.adoc index 33971599..5a895cd4 100644 --- a/specification/src/main/asciidoc/platform/ApplicationClients.adoc +++ b/specification/src/main/asciidoc/platform/ApplicationClients.adoc @@ -70,12 +70,6 @@ used, the authentication user interface provided by the server (in the form of an HTML page delivered in response to an HTTP request) must be displayed by the application client. -Application clients typically execute in an -environment with a SecurityManager installed, and have similar security -permission requirements as servlets. The security permission -requirements are described fully in -<>. - === Transactions Application clients are not required to have @@ -115,8 +109,8 @@ start execution at the _main_ method of the class specified in the _Main-Class_ attribute in the manifest file of the application client’s JAR file (although note that application client container code will typically execute before the application client itself, in order to -prepare the environment of the container, install a _SecurityManager_ , -initialize the name service client library, and so on). +prepare the environment of the container, initialize the name service +client library, and so on). [[a3315]] === Packaging and Deployment @@ -309,7 +303,7 @@ file. Note that this name is case-sensitive. <> shows the structure of the Jakarta EE application-client XML Schema. The Jakarta EE application-client XML Schema is located at -_https://jakarta.ee/xml/ns/jakartaee/application-client_9.xsd_. +_https://jakarta.ee/xml/ns/jakartaee/application-client_10.xsd_. [[a3404]] .Jakarta EE Application Client XML Schema Structure diff --git a/specification/src/main/asciidoc/platform/ApplicationProgrammingInterface.adoc b/specification/src/main/asciidoc/platform/ApplicationProgrammingInterface.adoc index 0e25b87e..4a7fb1ca 100644 --- a/specification/src/main/asciidoc/platform/ApplicationProgrammingInterface.adoc +++ b/specification/src/main/asciidoc/platform/ApplicationProgrammingInterface.adoc @@ -40,14 +40,14 @@ provided they meet all the Jakarta EE platform requirements as outlined below. ===== Java SE Enterprise Technologies -The Java SE 11 platform includes a number of enterprise technologies. Except +The Java SE 17 platform includes a number of enterprise technologies. Except for technologies noted in this specification as being optional, containers must provide all application components with the APIs associated with these technologies. If a newer version of the Java SE platform provided by a container has removed some of these technologies, the container must provide these technologies in some other manner. -The Java SE 11 platform includes the following enterprise technologies: +The Java SE 17 platform includes the following enterprise technologies: * Java IDL footnote:[Removed from Java SE 11. Support for Java IDL is optional Product vendors that wish to support Java IDL on a Java SE version that does not provide the Java IDL APIs must otherwise provide those APIs to application components. ] * JDBC @@ -69,7 +69,7 @@ by Java SE 8 are now provided by Jakarta EE specifications and are included in the list of <>. The specifications for the Java SE APIs are -available at _http://docs.oracle.com/javase/11/docs/_ . +available at _https://docs.oracle.com/javase/17/docs/_ . ===== Java Module Names Java(TM) SE 9 introduced the concept of a modularity system, known as the Java Platform Module System (JPMS). @@ -140,7 +140,7 @@ technology will no longer be maintained for future versions of the Platform. |Y |Y -|Common Annotations +|Annotations |Y |Y |Y @@ -268,7 +268,7 @@ an exception to this in order to accommodate interface type dependencies—for e the Jakarta™ Enterprise Beans SessionContext dependency on the _jakarta.xml.rpc.handler.MessageContext_ type.] -If a container supports Java SE 11 or a newer version of the Java SE platform, than all classes and interfaces provided by the container to satisfy the platform requirements listed above, must be compiled with the Java SE 11 source and class level. +If a container supports Java SE 17 or a newer version of the Java SE platform, than all classes and interfaces provided by the container to satisfy the platform requirements listed above, must be compiled with the Java SE 17 source and class level. [[a2841]] ==== Platform Prospective Specifications @@ -284,7 +284,7 @@ As the Jakarta EE specification has evolved, some of the technologies originally included in Jakarta EE are no longer as relevant as they were when they were introduced to the platform. The Jakarta EE Platform Specification Project follows a process similar to the one first defined by the Java SE -expert group ( _http://mreinhold.org/blog/removing-features_ ) to stabilize and remove +expert group ( _https://mreinhold.org/blog/removing-features_ ) to stabilize and remove technologies from the platform in a careful and orderly way that minimizes the impact to developers using these technologies, while allowing the platform to grow even stronger. @@ -307,6 +307,18 @@ The following Jakarta EE Technologies were removed from the Jakarta EE Platform. |Jakarta EE Technology |Status +|SOAP with Attachments +|Removed in Jakarta EE 11 + +|XML Binding +|Removed in Jakarta EE 11 + +|XML Web Services +|Removed in Jakarta EE 11 + +|Embeddable EJB Container (Jakarta Enterprise Beans, Core Features 4.0, Chapter 17) +|Removed in Jakarta EE 10 + |Entity Beans, both Container and Bean Managed Persistence (Jakarta Enterprise Beans 4.0, Optional Features, Chapters 3 - 7) |Removed in Jakarta EE 10 @@ -337,415 +349,10 @@ allowed to manage threads, the Jakarta EE platform could not manage the life cycle of the enterprise beans, and it could not properly manage transactions. -Since we do not want to subset the Java SE -platform, and we want Jakarta EE Product Providers to be able to use Java -SE products without modification in the Jakarta EE platform, we use the -Java SE security permissions mechanism to express the programming -restrictions imposed on Application Component Providers. - -In this section, we specify the Java SE -security permissions that the Jakarta EE Product Provider must provide for -each application component type. We call these permissions the Jakarta EE -security permissions set. The Jakarta EE security permissions set is a -required part of the Jakarta EE API contract. We also specify the set of -permissions that the Jakarta EE Product Provider must be able to restrict -from being provided to application components. In addition, we specify -the means by which application component providers may declare the need -for specific permissions and how these declarations must be processed by -Jakarta EE products. - -The Java SE security permissions are fully -described in -_http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html_ -. - ==== Jakarta EE Security Manager Related Requirements -Every Jakarta EE product must be capable of -running with a Java security manager that enforces Java security -permissions and that prevents application components from performing -operations for which they have not been provided the required -permissions. - -===== Jakarta EE Product Provider’s Responsibilities - -A Jakarta EE product may allow application -components to run without a security manager, but every Jakarta EE product -must be capable of running application components with a security -manager that enforces security permissions, as described below. - -The set of security permissions provided to -application components by a particular installation is a matter of -policy outside the scope of this specification, however, every Jakarta EE -product must be capable of running with a configuration that provides -application classes and packaged libraries the permissions defined in -<>. - -All Jakarta EE products must allow the set of -permissions available to application classes in a module to be -configurable, providing application components in some modules with -different permissions than those described in -<>. - -As defined in -<>, a component provider may declare -the permissions required by the application classes and libraries -packaged in a module. When a component provider has declared the -permissions required by a module, on successful deployment of the -module, at least the declared permissions must have been granted to the -application classes and libraries packaged in the module. If security -permissions are declared that conflict with the policy of the product -installation, the Jakarta EE product must fail deployment of the -application module. If an application module does not contain a -declaration of required security permissions and deployment otherwise -succeeds, the Jakarta EE product must grant the application classes and -libraries the permissions established by the security policy of the -installation. The Jakarta EE product must ensure that the system -administrator for the installation be able to define the security policy -for the installation to include the permissions in -<>. - -Note that, on some installations of Jakarta EE -products, the security policy of the installation may be such that -applications are granted fewer permissions than those defined in -<> and, as a result, some applications that declare only -the permissions defined in -<> may not be deployable. Other applications that require -the same permissions but do not declare them may deploy but will -encounter runtime failures when the missing permission is required by -the application component. - -Every Jakarta EE product must be capable of -running with a Java security manager and with an installation policy -that does not grant the permissions described in -<> to Web, enterprise beans, and resource adapter components. That -environment must otherwise fully support the requirements of this -specification. - -===== Application Component Provider’s Responsibilities - -To ensure that application deployment will -only succeed if required permissions are compatible with security policy -of the installation environment, application component providers should -declare all Java security permissions required by their application -components. - -<>, defines the -mechanism(s) by which required permissions may be declared. - -Note that, while FilePermissions or -SocketPermissions for specific resources may be granted as a result of -application components declaring them as required, the local operating -system or network security policy may restrict access to the requested -resources. This may result in a runtime failure to access these -resources even though deployment of the application has succeeded. - -===== System Administrator’s Responsibilities - -Security policy requirements differ from one -installation environment to another. The system administrator is -responsible for configuring the permissions available to application -modules to meet the security policy requirements of the installation -environment. For example, cloud environments may require greater -restrictions on the system resources available to applications than -on-premise enterprise installations. Note that restricting the -permissions beyond those in -<> may prevent some applications from working correctly. - -Care should be taken by the system -administrator to ensure that resources that are expected to be available -to application components are appropriately represented in the security -policy of the operational environment. - -In particular, the temporary file directory -made available through the ServletContext attribute -_jakarta.servlet.context.tempdir_ should be available to deployed -applications. The security policy of the operational environment should -grant the application server process access to the corresponding part of -the file system. The Jakarta EE Product must be capable of using the -security manager to enforce that an application only has access to the -part of the filesystem namespace named by the -_javax.security.context.tempdir_ attribute, and that that part of the -filesystem namespace is separate from the corresponding filesystem -namespace available to other applications. - -===== Listing of the Jakarta EE Security Permissions Set - -<> lists the Java permissions that Jakarta -EE components (by type) can reliably be granted by a Jakarta EE product, -given appropriate local installation configuration. - -[[a2366]] -[cols=3, options=header] -.Jakarta EE Security Permissions Set -|=== -|Security Permissions -|Target -|Action - -|Application Clients -| -| - -|java.awt.AWTPermission -|accessClipboard -| - -|java.awt.AWTPermission -|accessEventQueue -| - -|java.awt.AWTPermission -|showWindowWithout -WarningBanner -| - -|java.lang.RuntimePermission -|exitVM -| - -|java.lang.RuntimePermission -|loadLibrary.* -| - -|java.lang.RuntimePermission -|queuePrintJob -| - -|java.net.SocketPermission -|* -|connect - -|java.net.SocketPermission -|localhost:1024- -|accept,listen - -|java.io.FilePermission -|* -|read,write - -|java.util.PropertyPermission -|* -|read - -|Applet Clients -| -| - -|java.net.SocketPermission -|codebase -|connect - -|java.util.PropertyPermission -|limited -|read - -|Web, Enterprise Beans, and Resource Adapter -Components -| -| - -|java.lang.RuntimePermission -|loadLibrary.* -| - -|java.lang.RuntimePermission -|queuePrintJob -| - -|java.net.SocketPermission -|* -|connect - -|java.io.FilePermission -|* -|read,write footnote:[The FilePermission * specifically refers to all files -under the current directory.] - -|java.io.FilePermission -|file:${jakarta.servlet.context.tempdir} -|read, write footnote:[(For Web components only.) It must be possible to grant -FilePermission for the tempdir provided to web components through the ServletContext -regardless of its physical location. In addition, it must be possible to grant -FilePermission for the tempdir without granting it for all files under -the current directory.] - -|java.util.PropertyPermission -|* -|read -|=== - -===== Restrictable Jakarta EE Security Permissions - -<> lists the Java permissions -that a Jakarta EE product must be capable of restricting when running a Web -or Enterprise Beans application component. If the Target field is empty, a Jakarta EE -product must be capable of deploying application modules such that no -instances of that permission are granted to the components in the -application module. - - -[[a2438]] -[cols=3, options=header] -.Restrictable Jakarta EE Security Permissions -|=== -|Security Permissions -|Target -|Action - -|Web, Enterprise Beans, and Resource Adapter Components -| -| - -|java.security.AllPermission -| -| - -|java.security.SecurityPermission -| -| - -|java.security.UnresolvedPermission -| -| - -|java.awt.AWTPermission -| -| - -|java.io.SerializablePermission -| -| - -|java.lang.reflect.ReflectPermission -| -| - -|java.lang.RuntimePermission -| footnote:[It must be possible -to deploy an application module such that no instances of -java.lang.RuntimePermission are granted to the components in the -application module except those with a target of loadlibrary.* for any -specific library or a target of queuePrintJob. Ideally a container would -be capable of restricting those as well, but that is not a requirement.] -| - -|java.net.NetPermission -| -| - -|java.sql.SQLPermission -| -| - -|java.util.PropertyPermission -| -|write footnote:[It must be possible to deploy an application module such that no -instances of java.util.PropertyPermission are granted that allow writing any -property.] - -|java.util.logging.LoggingPermission -| -| - -|javax.net.ssl.SSLPermission -| -| - -|java.security.auth.AuthPermission -| -| - -|java.security.auth.PrivateCredentialPermission -| -| - -|java.security.auth.kerberos.DelegationPermission -| -| - -|java.security.auth.kerberos.ServicePermission -| -| - -|javax.sound.sampled.AudioPermission -| -| -|=== - -[[a2496]] -===== Declaring Permissions Required by Application Components - -By declaring the permissions required by an -application as described in this section, an application component -provider is ensured, through the successful deployment of his or her -application, that the Jakarta EE Product has granted at least the declared -permissions to the classes and libraries packaged in the application -module. - -Since the specific set of permissions granted -to a successfully deployed application is a function of the security -policy for the installation and the permissions declared within the -_permissions.xml_ files, the application component provider is ensured -that the effective permission set consists of at least those permissions -that are declared within the application. - -Permission declarations must be stored in -_META-INF/permissions.xml_ file within an enterprise beans, web, application client, -or resource adapter archive in order for them to be located and -subsequently processed by the deployment machinery of the Jakarta EE -Product. The Jakarta EE Product is not required to support -_permissions.xml_ files that specify permission classes that are -packaged in the application. - -The permissions for a packaged library are -the same as the permissions for the module. Thus, if a library is -packaged in a _.war_ file, it gets the permissions of the _.war_ file. - -For applications packaged in an _.ear_ file, -the declaration of permissions must be at _.ear_ file level. This -permission set is applied to all modules and libraries packaged within -the _.ear_ file or within its contained modules. Any _permissions.xml_ -files within such packaged modules are ignored, regardless of whether a -_permissions.xml_ file has been supplied for the _.ear_ file itself. - -The fact that these permission declarations -are being made from within the context of a particular application -implies the codeBase(s) to which the grant should be made. This -simplifies the syntax that is needed to just the Permission class name -and two String arguments. This aligns the declaration syntax with the -default policy language and the constructor signature for permissions -that is compliant with the default policy syntax. - ----- -permission [ [, ]]; ----- - - -The following is an example of a permission -set declaration: - -[source,xml] ----- -... - - - java.io.FilePermission - /tmp/abc - read,write - - - java.lang.RuntimePermission - createClassLoader - - -... ----- - - -The Jakarta EE permissions XML Schema is located -at _http://xmlns.jcp.org/xml/ns/javaee/permissions_7.xsd_ . +The Jakarta EE 11 release removes the requirement to use a Java +security manager. ==== Additional Requirements @@ -833,9 +440,8 @@ To allow for the development of portable applications, the Jakarta EE specification does require that such a database be available and accessible from a Jakarta EE product through the JDBC API. Such a database must be accessible from web components, -enterprise beans, and application clients, but need not be accessible -from applets. In addition, the driver for the database must meet the -JDBC Compatible requirements in the JDBC specification. +enterprise beans, and application clients. In addition, the driver for +the database must meet the JDBC Compatible requirements in the JDBC specification. Jakarta EE applications should not attempt to load JDBC drivers directly. Instead, they should use the technique @@ -886,30 +492,6 @@ Connector architecture. Every release of Jakarta EE declares a minimum required version of Java SE. For discussion, let this be Java SE N. Compatible implementations of Jakarta EE must support the latest version of the JDBC API mentioned in the Java SE N javadocs for the package `java.sql`. These javadocs typically have a link to the corresponding specification at `jcp.org`. [[a2553]] -===== Jakarta XML Web Services (JAX-WS™) Requirements (Optional) - -The Jakarta XML Web Services specification provides support for -web services that use the Jakarta XML Binding API for binding XML data to Java objects. -The XML Web Services specification defines client APIs for accessing web services -as well as techniques for implementing web service endpoints. The Web -Services for Jakarta EE specification describes the deployment of -XML Web Services-based services and clients. The Enterprise Beans and Servlet specifications -also describe aspects of such deployment. It must be possible to deploy -XML Web Services-based applications using any of these deployment models. - -The Jakarta XML Web Services specification describes the -support for message handlers that can process message requests and -responses. In general, these message handlers execute in the same -container and with the same privileges and execution context as the -Web Services client or endpoint component with which they are associated. -These message handlers have access to the same JNDI _java:comp/env_ -namespace as their associated component. Custom serializers and -deserializers, if supported, are treated in the same way as message -handlers. - -The Jakarta XML Web Services specification is available at -_https://jakarta.ee/specifications/xml-web-services/_ . - ===== RMI-JRMP JRMP is the Java technology-specific Remote @@ -975,8 +557,7 @@ specification for the cases when the Jakarta EE product includes the corresponding technology. For all application components that have access to the Jakarta Transaction _UserTransaction_ interface, the appropriate _UserTransaction_ object can be found using the name -_java:comp/UserTransaction_ . In all containers except the applet -container, application components may lookup a CORBA _ORB_ instance +_java:comp/UserTransaction_ . In all containers, application components may lookup a CORBA _ORB_ instance using the name _java:comp/ORB_ . For all application components that have access to the CDI _BeanManager_ interface, the appropriate _BeanManager_ object can be found using the name _java:comp/BeanManager_ @@ -1013,13 +594,13 @@ A COSNaming JNDI service provider is a part of the Java SE 8 SDK and JRE from Oracle, but is not a required component of the Java SE specification. The COSNaming JNDI service provider specification is available at -_http://docs.oracle.com/javase/8/docs/technotes/guides/jndi/jndi-cos.html_ +_https://docs.oracle.com/javase/8/docs/technotes/guides/jndi/jndi-cos.html_ . See <> for the complete naming requirements for the Jakarta EE platform. The JNDI specification is available at -_http://docs.oracle.com/javase/8/docs/technotes/guides/jndi/index.html_ +_https://docs.oracle.com/javase/8/docs/technotes/guides/jndi/index.html_ . ===== Context Class Loader @@ -1055,7 +636,7 @@ specification. All application client containers must support use of the Jakarta Authentication APIs. The Jakarta Authentication specification is -available at _https://jakarta.ee/specifications/authentication_ . +available at _https://jakarta.ee/specifications/authentication/_ . ===== Logging API Requirements @@ -1086,7 +667,7 @@ applications. This specification requires that a Jakarta EE product provide support for _enterprise beans_ as specified in the Jakarta Enterprise Beans specification. The Jakarta Enterprise Beans specification is available at -_https://jakarta.ee/specifications/enterprise-beans_ . +_https://jakarta.ee/specifications/enterprise-beans/_ . A Jakarta EE product may support multiple object systems (for example, RMI-IIOP, RMI-JRMP, gRPC, protobuf, Thrift). There is no explicit @@ -1097,10 +678,9 @@ products. In a Jakarta EE product that includes both an enterprise beans container and a web container, both containers are required to support access to local enterprise beans. No support is provided for -access to local enterprise beans from the application client container -or the applet container. +access to local enterprise beans from the application client container. -=== Servlet 5.0 Requirements +=== Servlet 6.1 Requirements The Jakarta Servlet specification defines the packaging and deployment of web applications, whether standalone or as @@ -1153,18 +733,18 @@ an Enterprise Beans container provide support for access to local enterprise bea from the web container. The Jakarta Servlet specification is available at -_https://jakarta.ee/specifications/servlet_ . +_https://jakarta.ee/specifications/servlet/_ . -=== Server Pages 3.0 Requirements +=== Server Pages 4.0 Requirements The Jakarta Server Pages specification depends on and builds on the servlet framework. A Jakarta EE product must support the entire Jakarta Server Pages specification. The Jakarta Server Pages specification is available at -_https://jakarta.ee/specifications/pages_ . +_https://jakarta.ee/specifications/pages/_ . -=== Expression Language (EL) 4.0 Requirements +=== Expression Language (EL) 6.0 Requirements The Jakarta Expression Language specification was formerly a part of the Jakarta Server Pages specification. It was split off @@ -1173,9 +753,9 @@ Jakarta Server Pages. A Jakarta EE product must support the Expression Language. The Jakarta Expression Language specification is -available at _https://jakarta.ee/specifications/expression-language_ . +available at _https://jakarta.ee/specifications/expression-language/_ . -=== Messaging 3.0 Requirements +=== Messaging 3.1 Requirements A Jakarta Messaging provider must be included in a Jakarta EE product that requires support for Jakarta Messaging. @@ -1274,7 +854,7 @@ general, the behavior of a Jakarta Messaging provider should be the same in both enterprise beans container and the web container. The Jakarta Messaging specification is available at -_https://jakarta.ee/specifications/messaging_ . +_https://jakarta.ee/specifications/messaging/_ . === Transaction 2.0 Requirements @@ -1300,7 +880,7 @@ specification. In addition, support for other transaction facilities may be provided transparently to the application by a Jakarta EE product. The Jakarta Transaction specification is available at -_https://jakarta.ee/specifications/transactions_ . +_https://jakarta.ee/specifications/transactions/_ . === Activation 2.1 Requirements @@ -1310,7 +890,7 @@ available on it; and instantiate the appropriate bean to perform the operation(s A Jakarta EE product must support Activation. The Jakarta Activation specification is available at -_https://jakarta.ee/specifications/activation_ . +_https://jakarta.ee/specifications/activation/_ . === Mail 2.1 Requirements @@ -1387,9 +967,9 @@ indicated in <> . |=== The Jakarta Mail API specification is available -at _https://jakarta.ee/specifications/mail_ . +at _https://jakarta.ee/specifications/mail/_ . -=== Connectors 2.0 Requirements +=== Connectors 2.1 Requirements In full Jakarta EE products, all Jakarta Enterprise Beans containers and all web containers must support the full set of Connector APIs. All @@ -1400,9 +980,9 @@ specification, and must support the deployment of applications that use Resource Adapters. The Jakarta EE Connectors specification is available at -_https://jakarta.ee/specifications/connectors_ . +_https://jakarta.ee/specifications/connectors/_ . -=== RESTful Web Services 3.0 Requirements +=== RESTful Web Services 4.0 Requirements Jakarta RESTful Web Services defines APIs for the development of Web services built according to the Representational State Transfer @@ -1424,9 +1004,9 @@ available in a Jakarta EE container — all such features and resources must be made available. The Jakarta RESTful Web Services specification is available at -_https://jakarta.ee/specifications/restful-ws_ . +_https://jakarta.ee/specifications/restful-ws/_ . -=== WebSocket 2.0 (WebSocket) Requirements +=== WebSocket 2.2 (WebSocket) Requirements The Jakarta WebSocket (WebSocket) is a standard API for creating WebSocket applications. In a full Jakarta EE @@ -1434,9 +1014,9 @@ product, all Jakarta EE web containers are required to support the WebSocket API. The Jakarta WebSocket specification can -be found at _https://jakarta.ee/specifications/websocket_ . +be found at _https://jakarta.ee/specifications/websocket/_ . -=== JSON Processing 2.0 (JSON-P) Requirements +=== JSON Processing 2.1 (JSON-P) Requirements JSON (JavaScript Object Notation) is a lightweight data-interchange format used by many web services. The @@ -1448,11 +1028,11 @@ application client containers, web containers, and enterprise beans containers a required to support the JSON-P API. The Jakarta JSON Processing -specification can be found at _https://jakarta.ee/specifications/jsonp_ . +specification can be found at _https://jakarta.ee/specifications/jsonp/_ . [[a2713]] -=== JSON Binding 2.0 (JSON-B) Requirements +=== JSON Binding 3.0 (JSON-B) Requirements The Jakarta JSON Binding API for JSON Binding (JSON-B) provides a convenient way to map between JSON text and Java objects. @@ -1462,9 +1042,9 @@ application client containers, web containers, and enterprise beans containers a required to support the JSON-B API. The Jakarta JSON Binding specification -can be found at _https://jakarta.ee/specifications/jsonb_. +can be found at _https://jakarta.ee/specifications/jsonb/_. -=== Concurrency 2.0 (Concurrency Utilities) Requirements +=== Concurrency 3.1 (Concurrency Utilities) Requirements Jakarta Concurrency Utilities for Jakarta EE is a standard API for providing asynchronous capabilities to Jakarta EE @@ -1479,9 +1059,9 @@ application in the containers in which the Concurrency Utilities API is required to be supported. The Jakarta Concurrency -specification can be found at _https://jakarta.ee/specifications/concurrency_ . +specification can be found at _https://jakarta.ee/specifications/concurrency/_ . -=== Batch 2.0 Specification Requirements +=== Batch 2.1 Specification Requirements The Jakarta Batch provides a programming model for batch applications and a runtime for scheduling and executing jobs. @@ -1490,9 +1070,9 @@ In a full Jakarta EE product, all Jakarta EE web containers and Jakarta Enterprise Beans containers are required to support the Batch API. The Jakarta Batch specification can be found -at _https://jakarta.ee/specifications/batch_ . +at _https://jakarta.ee/specifications/batch/_ . -=== Authorization 2.0 Requirements +=== Authorization 3.0 Requirements The Jakarta Authorization specification defines a contract between a Jakarta EE application server and an authorization policy @@ -1500,10 +1080,10 @@ provider. In a full Jakarta EE product, all Jakarta EE web containers and enterprise bean containers are required to support this contract. The Jakarta Authorization specification can be found at -_https://jakarta.ee/specifications/authorization_ . +_https://jakarta.ee/specifications/authorization/_ . [[a2737]] -=== Authentication 2.0 Requirements +=== Authentication 3.1 Requirements The Jakarta Authentication specification defines a service provider interface (SPI) by which authentication providers implementing @@ -1528,10 +1108,10 @@ Profile as defined in the Jakarta Authentication specification. Support for the Jakarta Authentication SOAP Profile is not required. The Jakarta Authentication specification can be found at -_https://jakarta.ee/specifications/authentication_ . +_https://jakarta.ee/specifications/authentication/_ . [[a2741]] -=== Security 2.0 Requirements +=== Security 4.0 Requirements Jakarta Security leverages Jakarta Authentication , but provides an easier to use SPI for authentication of users of web @@ -1543,7 +1123,7 @@ containers and enterprise bean containers are required to support the requirements defined by the Jakarta Security specification. The Jakarta Security Specification can be -found at _https://jakarta.ee/specifications/security_ . +found at _https://jakarta.ee/specifications/security/_ . === Debugging Support for Other Languages Requirements 2.0 @@ -1556,18 +1136,18 @@ include such information in class files that are generated from Jakarta Server Pages. The Jakarta Debugging Support for Other Languages -specification can be found at _https://jakarta.ee/specifications/debugging_ . +specification can be found at _https://jakarta.ee/specifications/debugging/_ . -=== Standard Tag Library for Jakarta Server Pages 2.0 Requirements +=== Standard Tag Library for Jakarta Server Pages 3.0 Requirements Jakarta Standard Tag Library specification defines a standard tag library that makes it easier to develop Jakarta Server Pages Pages. All Jakarta EE products are required to provide a Jakarta Standard Tag Library for use by all Jakarta Server Pages. The Jakarta Standard Tag Library for Jakarta Server Pages -specification can be found at _https://jakarta.ee/specifications/tags_ . +specification can be found at _https://jakarta.ee/specifications/tags/_ . -=== Server Faces 3.0 Requirements +=== Server Faces 4.1 Requirements Jakarta Server Faces technology simplifies building user interfaces for Jakarta applications. Developers of @@ -1579,9 +1159,9 @@ containers are required to support applications that use the Jakarta Server Faces technology. The Jakarta Server Faces specification can be -found at _https://jakarta.ee/specifications/faces_ . +found at _https://jakarta.ee/specifications/faces/_ . -=== Annotations 2.0 Requirements +=== Annotations 3.0 Requirements The Jakarta Annotations specification defines Java language annotations that are used by several other specifications, @@ -1592,7 +1172,7 @@ must support the semantics of these annotations as described in the corresponding specifications and summarized in the following table. [cols=4, options=header] -.Common Annotations Support by Container +.Annotations Support by Container |=== |Annotation |App Client @@ -1665,9 +1245,9 @@ corresponding specifications and summarized in the following table. |Y |=== The Jakarta Annotations specification can be found at -_https://jakarta.ee/specifications/annotations_ . +_https://jakarta.ee/specifications/annotations/_ . -=== Persistence 3.1 Requirements +=== Persistence 3.2 Requirements Jakarta Persistence is the standard API for the management of persistence and object/relational mapping. The Jakarta @@ -1689,7 +1269,7 @@ to the _createContainerEntityManagerFactory(PersistenceUnitInfo, Map)_ method of the _PersistenceProvider_ interface. The map key used must be the standard property name _jakarta.persistence.bean.manager_. -The Jakarta EE platform also requires that if a Bean Validation provider exists +The Jakarta EE platform also requires that if a Validation provider exists in the container environment and the _validation-mode_ _NONE_ is not specified, a _ValidatorFactory_ instance must be made available to Jakarta Persistence providers by the container. The container is responsible for passing this _ValidatorFactory_ instance @@ -1700,11 +1280,11 @@ the standard property name _jakarta.persistence.validation.factory_. Additional requirements on Jakarta EE platform containers are specified in the Jakarta Persistence specification -found at _https://jakarta.ee/specifications/persistence_ . +found at _https://jakarta.ee/specifications/persistence/_ . -=== Bean Validation 3.0 Requirements +=== Validation 3.1 Requirements -The Bean Validation specification defines a +The Validation specification defines a metadata model and API for JavaBean validation. The default metadata source is annotations, with the ability to override and extend the metadata through the use of XML validation descriptors. @@ -1722,19 +1302,19 @@ of the _PersistenceProvider_ interface, under the name _jakarta.persistence.validation.factory_ . Additional requirements on Jakarta EE platform -containers are specified in the Bean Validation specification, which can -be found at _https://jakarta.ee/specifications/bean-validation_ . +containers are specified in the Validation specification, which can +be found at _https://jakarta.ee/specifications/bean-validation/_ . -=== Interceptors 2.1 Requirements +=== Interceptors 2.2 Requirements The Interceptors specification makes more generally available the interceptor facility originally defined as part -of the Jakarta Enterprise Beans 3.0 specification. +of the Jakarta Enterprise Beans 4.0 specification. The Interceptors specification can be found -at _https://jakarta.ee/specifications/interceptors_ . +at _https://jakarta.ee/specifications/interceptors/_ . -=== Contexts and Dependency Injection (CDI) 4.0 Requirements +=== Contexts and Dependency Injection (CDI) 4.1 Requirements The Contexts and Dependency Injection (CDI) specification defines a set of contextual services, provided by Jakarta EE @@ -1742,7 +1322,7 @@ containers, aimed at simplifying the creation of applications that use both web tier and business tier technologies. The CDI specification can be found at -_https://jakarta.ee/specifications/cdi_ . +_https://jakarta.ee/specifications/cdi/_ . === Dependency Injection for Java 2.0 Requirements @@ -1755,48 +1335,7 @@ Dependency Injection is mediated by CDI. See <> for more detail. The DI specification can be found at -_https://jakarta.ee/specifications/dependency-injection_ . - -=== Enterprise Web Services 2.0 Requirements (Optional) - -The Enterprise Web Services specification defines the integration between the -various Web Service technologies in Jakarta EE, including XML Web Services and -XML Web Service Metadata. -A Jakarta EE product may support Enterprise Web Services. - -The Enterprise Web Services specification can be found -at _https://jakarta.ee/specifications/enterprise-ws_ . - -=== XML Binding 4.0 Requirements (Optional) - -The Jakarta XML Binding provides an API and tools that automate the mapping -between XML documents and Java objects. -A Jakarta EE product may support XML Binding. - -The XML Binding specification can be found -at _https://jakarta.ee/specifications/xml-binding_ . - -=== XML Web Services 4.0 Requirements (Optional) - -Jakarta XML Web Services defines a means for implementing XML-Based Web Services -based on Jakarta SOAP with Attachments and Jakarta Web Services Metadata. -A Jakarta EE product may support XML Web Services. - -The XML Web Services specification can be found -at _https://jakarta.ee/specifications/xml-web-services_ . -[NOTE] -==== -Jakarta Web Services Metadata 3.0 was merged into Jakarta XML Web Services 4.0 -==== - -=== SOAP with Attachments 3.0 Requirements (Optional) - -Jakarta SOAP with Attachments defines an API enabling developers to produce and -consume messages conforming to the SOAP 1.1, SOAP 1.2, and SOAP Attachments Feature. -A Jakarta EE product may support SOAP with Attachments. - -The SOAP with Attachments specification can be found -at _https://jakarta.ee/specifications/soap-attachments_ . +_https://jakarta.ee/specifications/dependency-injection/_ . // generates a line between text and footnotes for pdf and html generation. ''' diff --git a/specification/src/main/asciidoc/platform/CompatibilityMigration.adoc b/specification/src/main/asciidoc/platform/CompatibilityMigration.adoc index 455da178..74335892 100644 --- a/specification/src/main/asciidoc/platform/CompatibilityMigration.adoc +++ b/specification/src/main/asciidoc/platform/CompatibilityMigration.adoc @@ -30,6 +30,23 @@ applications written to a previous version of the platform will continue to work without change and with identical behavior on the current version of the platform. +==== Backwards Compatibility for Jakarta EE 11 + +===== Removed Technologies +* Jakarta Managed Beans +* Jakarta SOAP with Attachments +* Jakarta XML Binding +* Jakarta XML Web Services + +Support for Jakarta Managed Beans was deprecated previously and is now removed from Jakarta EE 11 platform. The +jakarta.annotation.ManagedBean annotation is no longer provided with the Jakarta Annotations 3.0 release. Applications using the +ManagedBean annotation should transition to another bean defining annotation such as jakarta.inject.Inject + +Support for Jakarta XML Web Services, along with the Jakarta XML Binding and the SOAP with attachments +specifications, was made optional with the Jakarta EE 10 release, and is now removed +from the Jakarta EE 11 platform. Jakarta EE platform products can continue to support the XML Web Services specifications +to work with the Jakarta EE 11 platform just like other standalone specifications that are not part of the platform. + ==== Backwards Compatibility for Jakarta EE 10 ===== Removed Technologies diff --git a/specification/src/main/asciidoc/platform/FutureDirections.adoc b/specification/src/main/asciidoc/platform/FutureDirections.adoc index d5e0a944..03cbcc7d 100644 --- a/specification/src/main/asciidoc/platform/FutureDirections.adoc +++ b/specification/src/main/asciidoc/platform/FutureDirections.adoc @@ -26,12 +26,6 @@ Jakarta Authorization specification defines requirements for security service providers. Future versions of this specification will more fully define the Jakarta EE SPI. -=== SecurityManager Deprecation - -With the https://openjdk.java.net/jeps/411[JEP 411: Deprecate the Security Manager for Removal] initiative that has deprecated several SecurityManager related methods in Java SE 17, and further limited functionality in Java SE 18, it is clear that Jakarta EE needs to remove requirements related to the SecurityManager. Discussions with OpenJDK developers have made it clear that there will be no replacement, and conversations along the lines of maintaining similar integration points at the JDK level have confirmed that the OpenJDK team does not want to support such integration points. This leaves Jakarta EE with the option of either introducing its own specification and requirements around similar functionality, or simply removing any requirements related to the SecurityManager. Given that replacing the SecurityManager permission checks in the JDK would require bytecode enhancement of implementations, it seems unlikely that this would be an achievable effort given the low level nature of the integration, and the general lack of effectiveness of the SecurityManager model as highlighted in the JEP 411 issue. - -The decided course of action is to announce that the SecurityManager is being deprecated in Jakarta EE10 for removal in a subsequent release, and that EE10 would be the last release with any requirements relating to the SecurityManager. Further, the rapid pace of Java SE releases brings the possibility that implementers may want to certify on EE10 and earlier releases with a Java SE version that has eliminated the SecurityManager. Existing TCK SecurityManager requirements in EE10 and earlier EE release may have to be relaxed as challenges are filed. The platform team needs to be receptive to relaxing these requirements if the need arises. - === Java Platform Module System (JPMS) The EE10 release introduced a requirement for every component specification API jar included a JPMS module-info.class suitable for use with OpenJDK tools like jlink and jdeps. The contents of module-info.class files are not standard, portable, may change without notice and there is no requirement around testing of JPMS in API jar signature tests or TCKs. Vendors are free to create their own API jars that pass the signature tests, but include no JPMS module-info.class files or JPMS module-info.class files with different or conflicting contents. It is a future task to determine whether EE containers should support deployments that make use of JPMS information. diff --git a/specification/src/main/asciidoc/platform/Interoperability.adoc b/specification/src/main/asciidoc/platform/Interoperability.adoc index 742ada96..c6cdb2da 100644 --- a/specification/src/main/asciidoc/platform/Interoperability.adoc +++ b/specification/src/main/asciidoc/platform/Interoperability.adoc @@ -123,7 +123,7 @@ programming language object model. Complete information on the JRMP specification can be found at -_http://docs.oracle.com/javase/8/docs/technotes/guides/rmi_ . +_https://docs.oracle.com/javase/8/docs/technotes/guides/rmi/_ . [[a2884]] ==== Data Formats @@ -151,7 +151,7 @@ format, Jakarta EE web clients must be able to display HTML 4.01 documents. * Image file formats—The Jakarta EE platform must support GIF, JPEG, and PNG images. Support for these formats is provided by the _java.awt.image_ APIs (see the URL: -_http://docs.oracle.com/javase/8/docs/api/java/awt/image/package-summary.html_ +_https://docs.oracle.com/javase/8/docs/api/java/awt/image/package-summary.html_ ) and by Jakarta EE web clients. * JAR files—JAR (Java Archive) files are the standard packaging format for Java technology-based application @@ -164,10 +164,10 @@ bundled into one JAR file and downloaded to a browser in a single HTTP transaction. JAR file formats are supported by the _java.util.jar_ and _java.util.zip_ packages. For complete information on the JAR specification, see -_http://docs.oracle.com/javase/8/docs/technotes/guides/jar_ . +_https://docs.oracle.com/javase/8/docs/technotes/guides/jar/_ . * Class file format—The class file format is specified in the Java Virtual Machine specification. Each class file contains one Java programming language type—either a class or an interface—and consists of a stream of 8-bit bytes. For complete information on the class file format, see -_http://docs.oracle.com/javase/specs/_ . +_https://docs.oracle.com/javase/specs/_ . diff --git a/specification/src/main/asciidoc/platform/Introduction.adoc b/specification/src/main/asciidoc/platform/Introduction.adoc index 4ddad36a..3816ddff 100644 --- a/specification/src/main/asciidoc/platform/Introduction.adoc +++ b/specification/src/main/asciidoc/platform/Introduction.adoc @@ -146,7 +146,7 @@ Technologies), Hani Suleiman (Individual). Version 7 of this specification was created under the Java Community Process as JSR-342. The Expert Group work for this specification was conducted by means of the -_http://javaee-spec.java.net_ project in order to provide transparency +_https://javaee.github.io/javaee-spec/_ project in order to provide transparency to the Java community. The specification leads for the JSR-342 Expert Group were Bill Shannon (Oracle) and Linda DeMichiel (Oracle). The expert group included the following members: Deepak Anupalli (Pramati @@ -166,9 +166,8 @@ Sutter (IBM), Spike Washburn (Individual), Kyung Koo Yoon (TmaxSoft). Version 8 of this specification was created under the Java Community Process as JSR-366. The Expert Group work for -this specification was conducted by means of the -_http://javaee-spec.java.net_ and _https:javaee.github.io/javaee-spec_ -projects in order to provide transparency to the Java community. The +this specification was conducted by means of the _https://javaee.github.io/javaee-spec/_ +project in order to provide transparency to the Java community. The specification leads for the JSR-366 Expert Group were Bill Shannon (Oracle) and Linda DeMichiel (Oracle). The expert group included the following members: Florent Benoit (OW2), David Blevins (Tomitribe), Jeff @@ -197,4 +196,7 @@ Specification Project with guidance provided by the Jakarta EE Working Group (_https://jakarta.ee/_). === Acknowledgements for Jakarta EE 10.0 -The Jakarta EE 10.0 specification was created by the Jakarta EE Platform Specification Project with guidance provided by the Jakarta EE Working Group (https://jakarta.ee/). \ No newline at end of file +The Jakarta EE 10.0 specification was created by the Jakarta EE Platform Specification Project with guidance provided by the Jakarta EE Working Group (https://jakarta.ee/). + +=== Acknowledgements for Jakarta EE 11.0 +The Jakarta EE 11.0 specification was created by the Jakarta EE Platform Specification Project with guidance provided by the Jakarta EE Working Group (https://jakarta.ee/). \ No newline at end of file diff --git a/specification/src/main/asciidoc/platform/PlatformOverview.adoc b/specification/src/main/asciidoc/platform/PlatformOverview.adoc index 8bbd3846..26e170e2 100644 --- a/specification/src/main/asciidoc/platform/PlatformOverview.adoc +++ b/specification/src/main/asciidoc/platform/PlatformOverview.adoc @@ -166,8 +166,7 @@ and Jakarta Enterprise Beans components. See the separate specifications for these components. * Components that are deployed and managed on a Jakarta EE server, but are loaded and executed on a client machine. -These components include web resources such as HTML pages and applets -embedded in HTML pages. +These components include web resources such as HTML pages. * Components whose deployment and management is not completely defined by this specification. Application Clients fall into this category. @@ -194,7 +193,7 @@ bean container. This specification requires that containers support execution in a Java™ runtime environment, as defined by the Java -Platform, Standard Edition specification, v11 or later (Java SE 11 or later). +Platform, Standard Edition specification, v17 or later (Java SE 17 or later). The container tools must understand the file formats for the packaging of application components for deployment. @@ -241,9 +240,8 @@ products. The Jakarta EE platform requires a database, accessible through the JDBC API, for the storage of business data. The database is accessible from web components, enterprise beans, and -application client components. The database need not be accessible from -applets. The Jakarta EE Product Provider must also provide a preconfigured, -default data source for use by the application in accessing this +application client components. The Jakarta EE Product Provider must also provide a +preconfigured, default data source for use by the application in accessing this database. See <>. [[a84]] @@ -407,30 +405,12 @@ Security leverages Jakarta Authentication, but provides an easier to use SPI for authentication of users of web applications and defines identity store APIs for authentication and authorization. -==== XML Web Services (Optional) - -Jakarta EE optionally provides full support for both clients -of web services as well as web service endpoints. Several Jakarta -technologies work together to provide support for web services. -Jakarta XML Web Services -provides support for web service calls using the SOAP/HTTP -protocol. XML Web Services is the primary API for -web services and is a follow-on to Jakarta XML-based RPCfootnote:[Removed from Jakarta EE 9.]. -Jakarta XML Web Services offers extensive web -services functionality, with support for multiple bindings/protocols. -Support for Jakarta XML-based RPC has been removed from the Platform as of Jakarta EE 9. See -<>. - -Jakarta XML Web Services and Jakarta XML Binding -define the mapping between Java classes and XML as used -in SOAP calls, and provide support for 100% of XML Schema. -The Jakarta SOAP with Attachments provides support for manipulating low -level SOAP messages. The Web Services for Jakarta EE specification fully -defines the deployment of web service clients and web service endpoints -in Jakarta EE, as well as the implementation of web service endpoints using -enterprise beans. The XML Web Services Metadata specification defines Java -language annotations that make it easier to develop web services. The -Jakarta XML Registries support has been removed from the Platform as of Jakarta EE +==== XML Web Services + +The Jakarta XML Web Services, XML Binding and SOAP with Attachments have been removed +from the Platform as of Jakarta EE 11. See <>. + +The Jakarta XML Registries support has been removed from the Platform as of Jakarta EE 9. See <>. ==== Jakarta JSON Processing @@ -687,7 +667,7 @@ enterprise bean’s business methods, or customizes the appearance of a Jakarta Server Pages or Jakarta Server Faces page. The Deployer’s output is web applications, -enterprise beans, applets, and application clients that have been +enterprise beans, and application clients that have been customized for the target operational environment and are deployed in a specific Jakarta EE container. @@ -1029,10 +1009,13 @@ No API updates are expected in Jakarta EE 9.1. Only the Platform and Web Profile Specifications along with the TCKs and Compatible Implementations should be affected by Jakarta EE 9.1. === Changes in Jakarta EE 10 -The goal of the Jakarta EE 10 release is to deliver a set of specifications that and adding the support for the Java SE 11 and newer runtimes. The TCKs require support for both Java SE 11 and Java SE 17. +The goal of the Jakarta EE 10 release is to deliver a set of specifications that and adding the support for the Java SE 11 and newer runtimes. The TCKs require support for both Java SE 11 and Java SE 17. Jakarta EE 10 is the first release in the Jakarta EE series to include major and minor component specification updates not limited to the javax to jakarta package namespace change. Jakarta EE 10 also introduced a new Core Profile to support smaller runtime footprints as often used with microservices. === Changes in Jakarta EE 11 +The goal of the Jakarta EE 11 release is to deliver a set of specifications that and adding the support for the Java SE 17 and newer runtimes. The TCKs require support for both Java SE 17 and Java SE 21. + +Jakarta EE 11 removes Managed Beans, XML Web Services, XML Binding and SOAP with Attachments from the platform and introduces the new Jakarta Data specification to the platform. \ No newline at end of file diff --git a/specification/src/main/asciidoc/platform/PreviousVersionDeploymentDescriptors.adoc b/specification/src/main/asciidoc/platform/PreviousVersionDeploymentDescriptors.adoc index be2861e2..3644f115 100644 --- a/specification/src/main/asciidoc/platform/PreviousVersionDeploymentDescriptors.adoc +++ b/specification/src/main/asciidoc/platform/PreviousVersionDeploymentDescriptors.adoc @@ -16,7 +16,7 @@ In addition, there are no restrictions on mixing versions of supported deploymen descriptors in a single application; any combination of valid deployment descriptor versions must be supported. -=== Jakarta EE 11 shcemas +=== Jakarta EE 11 schemas Reference this page, https://jakarta.ee/xml/ns/jakartaee/#11, for the schema definitions defined for Jakarta EE 11. diff --git a/specification/src/main/asciidoc/platform/Profiles.adoc b/specification/src/main/asciidoc/platform/Profiles.adoc index 0da75019..77247f56 100644 --- a/specification/src/main/asciidoc/platform/Profiles.adoc +++ b/specification/src/main/asciidoc/platform/Profiles.adoc @@ -144,7 +144,7 @@ required API compilation level for any Jakarta EE profile. The following technologies are required to be present in all Jakarta EE profiles: -* Component lifecycle annotations defined by the Common Annotations specification ( _PostConstruct_, _PreDestroy_ ) +* Component lifecycle annotations defined by the Jakarta Annotations specification ( _PostConstruct_, _PreDestroy_ ) === Optional Features for Jakarta EE Profiles @@ -181,42 +181,34 @@ in <>. The following technologies are required: -* Jakarta Activation 2.1* -* Jakarta Authentication 3.0* -* Jakarta Authorization 2.1* -* Jakarta Batch 2.1* -* Jakarta Bean Validation 3.0 -* Jakarta Common Annotations 2.1* -* Jakarta Concurrency 3.0* -* Jakarta Connectors 2.1* -* Jakarta Contexts and Dependency Injection 4.0* +* Jakarta Activation 2.1 +* 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 Contexts and Dependency Injection 4.1* +* Jakarta Data 1.0* * Jakarta Debugging Support for Other Languages 2.0 -* Jakarta Dependency Injection 2.0 +* Jakarta Dependency Injection 2.0 * Jakarta Enterprise Beans 4.0 (except for Jakarta Enterprise Beans entity beans and associated Jakarta Enterprise Beans QL, and embedded container, which have been made removed) -* Jakarta Expression Language 5.0* -* Jakarta Interceptors 2.1* -* Jakarta JSON Processing 2.1* -* Jakarta JSON Binding 3.0* -* Jakarta Mail 2.1* -* Jakarta Messaging 3.1* -* Jakarta Persistence 3.1* -* Jakarta RESTful Web Services 3.1* -* Jakarta Security 3.0* -* Jakarta Servlet 6.0* -* Jakarta Server Faces 4.0* -* Jakarta Server Pages 3.1* -* Jakarta Standard Tag Library 3.0* +* Jakarta Expression Language 6.0* +* Jakarta Interceptors 2.2* +* Jakarta JSON Processing 2.1 +* Jakarta JSON Binding 3.0 +* Jakarta Mail 2.1 +* Jakarta Messaging 3.1 +* Jakarta Persistence 3.2* +* Jakarta RESTful Web Services 4.0* +* Jakarta Security 4.0* +* Jakarta Servlet 6.1* +* Jakarta Server Faces 4.1* +* Jakarta Server Pages 4.0* +* Jakarta Standard Tag Library 3.0 * Jakarta Transactions 2.0 -* Jakarta WebSocket 2.1* - -The following technologies are optional: - -* Jakarta Enterprise Beans 3.2 and earlier entity beans and associated Jakarta Enterprise Beans QL -* Jakarta Enterprise Beans 2.x API group -* Jakarta Enterprise Web Services 2.0 -* Jakarta SOAP with Attachments 3.0* -* Jakarta XML Web Services 4.0* -* Jakarta XML Binding 4.0* +* Jakarta Validation 3.1* +* Jakarta WebSocket 2.2* *Note:* technologies with an asterisk after them represent updated versions. @@ -225,6 +217,12 @@ The following technologies are deprecated: The following technologies are removed: +* Jakarta Enterprise Beans 3.2 and earlier entity beans and associated Jakarta Enterprise Beans QL +* Jakarta Enterprise Beans 2.x API group * Jakarta Managed Beans -* Entity Beans, both Container and Bean Managed Persistence -* Embeddable EJB Container +* Jakarta SOAP with Attachments +* Jakarta XML Binding +* Jakarta XML Web Services + +Besides the Jakarta Managed Beans specification, Jakarta EE platform products can continue to support the removed specifications +just like any other standalone specification that is not part of the platform. \ No newline at end of file diff --git a/specification/src/main/asciidoc/platform/RelatedDocuments.adoc b/specification/src/main/asciidoc/platform/RelatedDocuments.adoc index 14c4a49b..2364cc17 100644 --- a/specification/src/main/asciidoc/platform/RelatedDocuments.adoc +++ b/specification/src/main/asciidoc/platform/RelatedDocuments.adoc @@ -6,82 +6,78 @@ This specification refers to the following documents. The terms used to refer to the documents in this specification are included in parentheses. -_Jakarta™ EE Web Profile Version 10_. Available at: _https://jakarta.ee/specifications/webprofile/10_ +_Jakarta™ EE Core Profile Specification, Version 11.0_. Available at: _https://jakarta.ee/specifications/coreprofile/11/_ -_Java™ Platform, Standard Edition, v9 API Specification (Java SE specification)_. Available at: _https://docs.oracle.com/javase/9/_ +_Jakarta™ EE Web Profile Specification, Version 11.0_. Available at: _https://jakarta.ee/specifications/webprofile/11/_ -_Java™ Platform, Standard Edition (Java SE specification), v11_. Available at: https://www.jcp.org/en/jsr/detail?id=384 +_Java™ Platform, Standard Edition (Java SE specification), v17_. Available at: _https://www.jcp.org/en/jsr/detail?id=392_ -_Java™ Platform, Standard Edition, v11 API Specification_. Available at: _https://docs.oracle.com/en/java/javase/11/_ +_Java™ Platform, Standard Edition, v17 API Specification_. Available at: _https://docs.oracle.com/javase/17/docs/_ -_Jakarta™ Enterprise Beans Specification, Version 4.0_. Available at: _https://jakarta.ee/specifications/enterprise-beans/4.0_ +_Jakarta™ Enterprise Beans Specification, Version 4.0_. Available at: _https://jakarta.ee/specifications/enterprise-beans/4.0/_ -_Jakarta™ Server Pages Specification, Version 3.1_. Available at: _https://jakarta.ee/specifications/pages/3.1_ +_Jakarta™ Server Pages Specification, Version 4.0_. Available at: _https://jakarta.ee/specifications/pages/4.0/_ -_Jakarta™ Expression Language Specification, Version 5.0_. Available at: _https://jakarta.ee/specifications/expression-language/5.0_ +_Jakarta™ Expression Language Specification, Version 6.0_. Available at: _https://jakarta.ee/specifications/expression-language/6.0/_ -_Jakarta™ Annotations Specification, Version 2.1_. Available at: _https://jakarta.ee/specifications/annotations/2.1_ +_Jakarta™ Annotations Specification, Version 3.0_. Available at: _https://jakarta.ee/specifications/annotations/3.0/_ -_Jakarta™ Servlet Specification, Version 6.0_. Available at: _https://jakarta.ee/specifications/servlet/6.0_ +_Jakarta™ Servlet Specification, Version 6.1_. Available at: _https://jakarta.ee/specifications/servlet/6.1/_ -_JDBC™ 4.2 API (JDBC specification)_. Available at: _https://jcp.org/en/jsr/detail?id=221_ +_JDBC™ 4.3 API (JDBC specification)_. Available at: _https://jcp.org/en/jsr/detail?id=221_ _Java™ Naming and Directory Interface 1.2 Specification (JNDI specification)_. Available at: _https://docs.oracle.com/javase/8/docs/technotes/guides/jndi/index.html_ -_Jakarta™ Messaging Specification, Version 3.1_. Available at: _https://jakarta.ee/specifications/messaging/3.1_ +_Jakarta™ Messaging Specification, Version 3.1_. Available at: _https://jakarta.ee/specifications/messaging/3.1/_ -_Jakarta™ Transaction Specification, Version 2.0_. Available at: _https://jakarta.ee/specifications/transactions/2.0_ +_Jakarta™ Transaction Specification, Version 2.0_. Available at: _https://jakarta.ee/specifications/transactions/2.0/_ -_Java™ Transaction Service (JTS) Specification, Version 1.0 (Draft)_. Available at: _https://download.oracle.com/otn-pub/jcp/7309-jts-1.0-spec-oth-JSpec/jts1_0-spec.pdf_ +_Jakarta™ Mail Specification, Version 2.1_. Available at: _https://jakarta.ee/specifications/mail/2.1/_ -_Jakarta™ Mail Specification, Version 2.1_. Available at: _https://jakarta.ee/specifications/mail/2.1_ +_Jakarta Activation, Version 2.1_. Available at: _https://jakarta.ee/specifications/activation/2.1/_ -_Jakarta Activation, Version 2.1 (JAF specification)_. Available at: _https://jakarta.ee/specifications/activation/2.1_ +_Jakarta™ Connectors Specification, Version 2.1_. Available at: _https://jakarta.ee/specifications/connectors/2.1/_ -_Jakarta™ Connectors Specification, Version 2.1_. Available at: _https://jakarta.ee/specifications/connectors/2.1_ +_Jakarta™ XML Web Services Specification, Version 4.0_. Available at: _https://jakarta.ee/specifications/xml-web-services/4.0/_ -_Jakarta™ XML Web Services Specification, Version 4.0_. Available at: _https://jakarta.ee/specifications/xml-web-services/4.0_ +_Jakarta™ SOAP with Attachments Specification, Version 3.0_. Available at: _https://jakarta.ee/specifications/soap-attachments/3.0/_ -_Jakarta™ XML RPC Specification, Version 1.1_. Available at: _https://jakarta.ee/specifications/xml-rpc/1.1_ +_Jakarta™ RESTful Web Services Specification, Version 4.0_. Available at: _https://jakarta.ee/specifications/restful-ws/4.0/_ -_SOAP with Attachments API for Java™ 2.0 (SAAJ specification)_. Available at: _https://jakarta.ee/specifications/soap-attachments/2.0_ +_Jakarta™ Authorization Specification, Version 3.0_. Available at: _https://jakarta.ee/specifications/authorization/3.0/_ -_Jakarta™ RESTful Web Services Specification, Version 3.1_. Available at: _https://jakarta.ee/specifications/restful-ws/3.1_ +_Jakarta™ Authentication Specification, Version 3.1_. Available at: _https://jakarta.ee/specifications/authentication/3.1/_ -_Jakarta™ Authorization Specification, Version 2.1_. Available at: _https://jakarta.ee/specifications/authorization/2.1_ +_Jakarta™ Security Specification, Version 4.0_. Available at: _https://jakarta.ee/specifications/security/4.0/_ -_Jakarta™ Authentication Specification, Version 3.0_. Available at: _https://jakarta.ee/specifications/authentication/3.0_ +_Jakarta™ Debugging Support for Other Languages Specification, Version 2.0_. Available at: _https://jakarta.ee/specifications/debugging/2.0/_ -_Jakarta™ Security Specification, Version 3.0_. Available at: _https://jakarta.ee/specifications/security/3.0_ +_Jakarta™ Standard Tag Library Specification, Version 3.0_. Available at: _https://jakarta.ee/specifications/tags/3.0/_ -_Jakarta™ Debugging Support for Other Languages Specification, Version 2.0_. Available at: _https://jakarta.ee/specifications/debugging/2.0_ +_Jakarta™ Server Faces Specification, Version 4.1_. Available at: _https://jakarta.ee/specifications/faces/4.1/_ -_Jakarta™ Standard Tag Library Specification, Version 3.0_. Available at: _https://jakarta.ee/specifications/tags/3.0_ +_Jakarta™ Persistence Specification, Version 3.2_. Available at: _https://jakarta.ee/specifications/persistence/3.2/_ -_Jakarta™ Server Faces Specification, Version 4.0_. Available at: _https://jakarta.ee/specifications/faces/4.0_ +_Jakarta™ Validation Specification, Version 3.1_. Available at: _https://jakarta.ee/specifications/bean-validation/3.1/_ -_Jakarta™ Persistence Specification, Version 3.1_. Available at: _https://jakarta.ee/specifications/persistence/3.1_ - -_Jakarta™ Bean Validation Specification, Version 3.0_. Available at: _https://jakarta.ee/specifications/bean-validation/3.0_ - -_Jakarta™ Managed Beans Specification, Version 2.0_. Available at: _https://jakarta.ee/specifications/managedbeans/2.0_ - -_Jakarta™ Interceptors Specification, Version 2.1_. Available at: _https://jakarta.ee/specifications/interceptors/2.1_ +_Jakarta™ Interceptors Specification, Version 2.2_. Available at: _https://jakarta.ee/specifications/interceptors/2.2/_ [[cdi-spec]] -_Jakarta™ Contexts and Dependency Injection Specification, Version 4.0_. Available at: _https://jakarta.ee/specifications/cdi/4.0_ +_Jakarta™ Contexts and Dependency Injection Specification, Version 4.1_. Available at: _https://jakarta.ee/specifications/cdi/4.1/_ + +_Jakarta™ Dependency Injection Specification, Version 2.0_. Available at: _https://jakarta.ee/specifications/dependency-injection/2.0/_ -_Jakarta™ Dependency Injection Specification, Version 2.0_. Available at: _https://jakarta.ee/specifications/dependency-injection/2.0_ +_Jakarta™ WebSocket Specification, Version 2.2_. Available at: _https://jakarta.ee/specifications/websocket/2.2/_ -_Jakarta™ WebSocket Specification, Version 2.1_. Available at: _https://jakarta.ee/specifications/websocket/2.1_ +_Jakarta™ JSON Processing Specification, Version 2.1_. Available at: _https://jakarta.ee/specifications/jsonp/2.1/_ -_Jakarta™ JSON Processing Specification, Version 2.1_. Available at: _https://jakarta.ee/specifications/jsonp/2.1_ +_Jakarta™ JSON Binding Specification, Version 3.0_. Available at: _https://jakarta.ee/specifications/jsonb/3.0/_ -_Jakarta™ JSON Binding Specification, Version 3.0_. Available at: _https://jakarta.ee/specifications/jsonb/3.0_ +_Jakarta™ Concurrency Specification, Version 3.1_. Available at: _https://jakarta.ee/specifications/concurrency/3.1/_ -_Jakarta™ Concurrency Specification, Version 3.0_. Available at: _https://jakarta.ee/specifications/concurrency/3.0_ +_Jakarta™ Batch Specification, Version 2.1_. Available at: _https://jakarta.ee/specifications/batch/2.1/_ -_Jakarta™ Batch Specification, Version 2.1_. Available at: _https://jakarta.ee/specifications/batch/2.1_ +_Jakarta™ Data Specification, Version 1.0_. Available at: _https://jakarta.ee/specifications/data/1.0/_ _Jakarta EE Specification Process (JESP), Version 1.2_. Available at: _https://jakarta.ee/about/jesp/_ @@ -121,7 +117,7 @@ _https://tools.ietf.org/html/rfc6101_ Architectural Styles and the Design of Network-based Software Architectures (REST), R. Fielding, Ph.d dissertation, University of California, Irvine, 2000. Available at -_https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm_ +_https://ics.uci.edu/~fielding/pubs/dissertation/top.htm_ Java™ Community Process _SM_ 2: Process Document, Version 2.10 (March 21, 2016). Available at diff --git a/specification/src/main/asciidoc/platform/ResourcesNamingInjection.adoc b/specification/src/main/asciidoc/platform/ResourcesNamingInjection.adoc index 98ff5b5b..f498a6bb 100644 --- a/specification/src/main/asciidoc/platform/ResourcesNamingInjection.adoc +++ b/specification/src/main/asciidoc/platform/ResourcesNamingInjection.adoc @@ -3162,7 +3162,7 @@ required by this specification. This section describes the metadata annotations and deployment descriptor entries that allow an application to obtain -instances of the Bean Validation _Validator_ and _ValidatorFactory_ +instances of the Validation _Validator_ and _ValidatorFactory_ types. Applications that need to use those interfaces @@ -3209,8 +3209,8 @@ way as a resource environment reference. In order to customize the returned _ValidatorFactory_, a Jakarta Enterprise Beans, web or application client module may -specify a Bean Validation XML deployment descriptor, as described in the -Bean Validation specification. +specify a Validation XML deployment descriptor, as described in the +Validation specification. A validation deployment descriptor only affects _ValidatorFactory_ instances in that module. @@ -3227,7 +3227,7 @@ names to look up a _Validator_ or _ValidatorFactory_ instance. The Application Component Provider may customize the _ValidatorFactory_ and (indirectly) _Validator_ instances -by including a Bean Validation deployment descriptor inside a specific +by including a Validation deployment descriptor inside a specific module of the application. ==== Jakarta EE Product Provider’s Responsibilities @@ -3242,7 +3242,7 @@ non-contextual objects using CDI, as described in <>. These objects must be used to configure the default _ValidatorFactory_ available at _java:comp/ValidatorFactory_ in -accordance with the bootstrapping APIs described by the Bean Validation +accordance with the bootstrapping APIs described by the Validation specification. The default _ValidatorFactory_ is a single diff --git a/specification/src/main/asciidoc/platform/RevisionHistory.adoc b/specification/src/main/asciidoc/platform/RevisionHistory.adoc index 9b341b51..a97dbd3b 100644 --- a/specification/src/main/asciidoc/platform/RevisionHistory.adoc +++ b/specification/src/main/asciidoc/platform/RevisionHistory.adoc @@ -2,7 +2,11 @@ [[revisionHistory]] == Revision History === Changes in Final Release for EE11 -* +* Updated Java SE base version to 17. +* Removed requirement for SOAP with Attachments, XML Binding and XML Web Services. +* Removed references to the Applet Container. +* Removed requirements related to the Java SecurityManager. +* Updated <> for the updated Specifications in Jakarta EE 11. === Changes in Final Release for EE10 * Updated Java SE base version to 11. diff --git a/specification/src/main/asciidoc/platform/Security.adoc b/specification/src/main/asciidoc/platform/Security.adoc index 0582e168..39ab99da 100644 --- a/specification/src/main/asciidoc/platform/Security.adoc +++ b/specification/src/main/asciidoc/platform/Security.adoc @@ -789,18 +789,6 @@ interactions with the user. The application’s callback handler must support all the _Callback_ objects specified in the _javax.security.auth.callback_ package. -Application clients may execute in an -environment controlled by a Java SE security manager and are subject to -the security permissions defined in -<>. -Although this specification does not -define the relationship between the operating system identity associated -with a running application client and the authenticated user identity, -support for single signon requires that the Jakarta EE product be able to -relate these identities. Additional application client requirements are -described in <> -of this specification. - ==== Resource Authentication Requirements Resources within an enterprise are often @@ -938,7 +926,7 @@ any relationship between the Run As identity and any underlying operating system identity that may be used to access system resources such as files. However, the Jakarta Authorization specification does specify the relationship between the Run As identity -and the access control context used by the Java SE security manager. +and the access control context. [[a451]] === Deployment Requirements diff --git a/specification/src/main/asciidoc/platform/ServiceProviderInterface.adoc b/specification/src/main/asciidoc/platform/ServiceProviderInterface.adoc index 760e7d42..cb9e5859 100644 --- a/specification/src/main/asciidoc/platform/ServiceProviderInterface.adoc +++ b/specification/src/main/asciidoc/platform/ServiceProviderInterface.adoc @@ -17,7 +17,7 @@ providers. All Jakarta EE products must support the Connector APIs, as specified in the Connector specification. The Jakarta EE Connectors specification is available at -_https://jakarta.ee/specifications/connectors_ . +_https://jakarta.ee/specifications/connectors/_ . === Jakarta™ Authorization @@ -25,7 +25,7 @@ The Jakarta Authorization specification defines the contract between a Jakarta EE container and an authorization policy provider. The Jakarta Authorization specification can be found at -_https://jakarta.ee/specifications/authorization_ . +_https://jakarta.ee/specifications/authorization/_ . === Jakarta™ Transactions @@ -40,7 +40,7 @@ transaction, get current transaction status, and mark the current transaction for rollback. The Jakarta Transaction specification is available at -_https://jakarta.ee/specifications/transactions_ . +_https://jakarta.ee/specifications/transactions/_ . === Jakarta™ Persistence @@ -49,7 +49,7 @@ _jakarta.persistence.spi_ package that allow a persistence provider to be plugged into the Jakarta Persistence framework. The Jakarta Persistence specification can be -found at _https://jakarta.ee/specifications/persistence_ . +found at _https://jakarta.ee/specifications/persistence/_ . === Jakarta™ Mail @@ -60,4 +60,4 @@ Jakarta Mail API to be extended with support for new mail protocols and mailbox formats. The Jakarta Mail API specification is available -at _https://jakarta.ee/specifications/mail_ . +at _https://jakarta.ee/specifications/mail/_ . diff --git a/specification/src/main/asciidoc/platform/cdi-ee-spec/lifecycle_ee.adoc b/specification/src/main/asciidoc/platform/cdi-ee-spec/lifecycle_ee.adoc index 72535108..e985ddd9 100644 --- a/specification/src/main/asciidoc/platform/cdi-ee-spec/lifecycle_ee.adoc +++ b/specification/src/main/asciidoc/platform/cdi-ee-spec/lifecycle_ee.adoc @@ -55,7 +55,7 @@ When the `create()` method of a `Bean` object that represents a resource is call Before injecting or returning a contextual instance to the application, the container transforms its internal reference into an object that implements the bean types expected by the application and delegates method invocations to the underlying resource, entity manager, entity manager factory, remote EJB instance or web service reference. This object must be passivation capable. -The container must perform ordinary Jakarta EE component environment injection upon any non-static field that functions as a resource declaration, as defined by the Jakarta EE platform and Common Annotations for the Java platform specifications. +The container must perform ordinary Jakarta EE component environment injection upon any non-static field that functions as a resource declaration, as defined by the Jakarta EE Platform and Jakarta Annotations specifications. The container is not required to perform Jakarta EE component environment injection upon a static field. Portable applications should not rely upon the value of a static field that functions as a resource declaration. diff --git a/specification/src/main/asciidoc/web-dependencies.adoc b/specification/src/main/asciidoc/web-dependencies.adoc index 6a837d45..679a94ef 100644 --- a/specification/src/main/asciidoc/web-dependencies.adoc +++ b/specification/src/main/asciidoc/web-dependencies.adoc @@ -1,33 +1,32 @@ -== Jakarta EE 10 Web Profile Dependencies +== Jakarta EE 11 Web Profile Dependencies [graphviz] ----------------------------------------------------------- -digraph EE10WebProfile { +digraph EE11WebProfile { # Map a short node id to the label with version wp [label="jakarta-web-api"]; -servlet [label="servlet:6.0.0"]; -jsp [label="servlet.jsp:3.1.0"]; -el [label="el:5.0.0"]; -jstl [label="servlet.jsp.jstl:3.0.0-RC1"]; -jaxb [label="xml.bind:4.0.0-RC3"]; -faces [label="faces:4.0.0-M2"]; -jaxrs [label="jaxrsr:3.1.0"] -websocket [label="websocket:2.1.0"]; +servlet [label="servlet:6.1.0"]; +jsp [label="servlet.jsp:4.0.0"]; +el [label="el:6.0.0"]; +jstl [label="servlet.jsp.jstl:3.0.0"]; +faces [label="faces:4.1.0"]; +jaxrs [label="jaxrs:4.0.0"] +websocket [label="websocket:2.2.0"]; jsonp [label="jsonp:2.1.0"]; -jsonb [label="jsonb:3.0.0-RC1"]; -annotations [label="annotations:2.1.0"]; +jsonb [label="jsonb:3.0.0"]; +annotations [label="annotations:3.0.0"]; ejb [label="ejb:4.0.0"]; -jta [label="jta:2.0.1-RC1"]; -jpa [label="jpa:3.1.0-RC2"]; -bv [label="bv:3.0.1"]; -interceptors [label="interceptors:2.1.0"]; -cdi [label="cdi:4.0.0-RC5"]; +jta [label="jta:2.0.1"]; +jpa [label="jpa:3.2.0"]; +validation [label="validation:3.1.0"]; +interceptors [label="interceptors:2.2.0"]; +cdi [label="cdi:4.1.0"]; di [label="di:2.0.1"]; -auth [label="auth:2.1.0-RC1"]; -jacc [label="jacc:2.0.0"]; -xml_bind [label="xml.bind:4.0.0-RC3"]; -activation [label="activation:2.1.0"]; +authn [label="authentication:3.1.0"]; +security [label="security:4.0.0"]; +concurrency [label="concurrent:3.1.0"]; +data [label="data:1.0.0"]; wp -> servlet; wp -> jsp; @@ -41,11 +40,15 @@ wp -> jsonb; wp -> jsonp; wp -> jaxrs; wp -> annotations; -wp -> bv; +wp -> validation; wp -> interceptors; +wp -> di; wp -> cdi; -wp -> auth; -wp -> jacc; +wp -> authn; +wp -> ejb; +wp -> security; +wp -> concurrency; +wp -> data; # JSP jsp -> servlet; @@ -55,14 +58,13 @@ jsp -> el; jstl -> servlet ; jstl -> jsp ; jstl -> el ; -jstl -> jaxb ; # Faces faces -> servlet; faces -> websocket; faces -> el; faces -> cdi; -faces -> bv; +faces -> validation; faces -> jta; faces -> jsp; faces -> jstl; @@ -70,21 +72,13 @@ faces -> jsonp; faces -> ejb; faces -> jpa; faces -> annotations; -faces -> jaxb; # jsonb jsonb -> jsonp; -# jaxrs -jaxrs -> xml_bind; -jaxrs -> activation; - # interceptors interceptors -> annotations; -# jacc -jacc -> servlet; - # ejb ejb -> jta; diff --git a/specification/src/main/asciidoc/webprofile/Introduction.adoc b/specification/src/main/asciidoc/webprofile/Introduction.adoc index bca748cc..f49c6965 100644 --- a/specification/src/main/asciidoc/webprofile/Introduction.adoc +++ b/specification/src/main/asciidoc/webprofile/Introduction.adoc @@ -90,7 +90,7 @@ Let’s look at some examples of requirements from each grouping. For the first one, the Jakarta EE Platform -specification mandates support for the Java(TM) Platform, Standard Edition 11 API. +specification mandates support for the Java(TM) Platform, Standard Edition 17 API. In the second category one can point out the requirement to support Jakarta EE web application modules ( _.war_ files) @@ -162,7 +162,7 @@ Technologies), Hani Suleiman (Individual). Version 7 of this specification was created under the Java Community Process as JSR-342. The Expert Group work for this specification was conducted by means of the -_http://javaee-spec.java.net_ project in order to provide transparency +_https://javaee.github.io/javaee-spec/_ project in order to provide transparency to the Java community. The specification leads for the JSR-342 Expert Group were Bill Shannon (Oracle) and Linda DeMichiel (Oracle). The expert group included the following members: Deepak Anupalli (Pramati @@ -180,9 +180,8 @@ Sutter (IBM), Spike Washburn (Individual), Kyung Koo Yoon (Tmax Soft). Version 8 of this specification was created under the Java Community Process as JSR-366. The Expert Group work for -this specification was conducted by means of the -_http://javaee-spec.java.net_ and _https:javaee.github.io/javaee-spec_ -projects in order to provide transparency to the Java community. The +this specification was conducted by means of the _https://javaee.github.io/javaee-spec/_ +project in order to provide transparency to the Java community. The specification leads for the JSR-366 Expert Group were Bill Shannon (Oracle) and Linda DeMichiel (Oracle). The expert group included the following members: Florent Benoit (OW2), David Blevins (Tomitribe), Jeff @@ -215,3 +214,8 @@ Specification Project with guidance provided by the Jakarta EE Working Group The Jakarta EE 10 specification was created by the Jakarta EE Platform Specification Project with guidance provided by the Jakarta EE Working Group (_https://jakarta.ee/_). + +=== Acknowledgements for Jakarta EE 11.0 + +The Jakarta EE 11 specification was created by the Jakarta EE Platform Specification Project with guidance provided by the Jakarta EE Working Group +(_https://jakarta.ee/_). diff --git a/specification/src/main/asciidoc/webprofile/RelatedDocuments.adoc b/specification/src/main/asciidoc/webprofile/RelatedDocuments.adoc index 4b1709d1..55989731 100644 --- a/specification/src/main/asciidoc/webprofile/RelatedDocuments.adoc +++ b/specification/src/main/asciidoc/webprofile/RelatedDocuments.adoc @@ -6,50 +6,54 @@ This specification refers to the following documents. The terms used to refer to the documents in this specification are included in parentheses. -_Jakarta™ EE Platform Specification Version 10.0_. Available at: _https://jakarta.ee/specifications/platform/10.0_ +_Jakarta™ EE Core Profile Specification, Version 11.0_. Available at: _https://jakarta.ee/specifications/coreprofile/11/_ -_Java™ Platform, Standard Edition (Java SE specification), v11_. Available at: https://www.jcp.org/en/jsr/detail?id=384 +_Jakarta™ EE Platform Specification, Version 11.0_. Available at: _https://jakarta.ee/specifications/platform/11/_ -_Java™ Platform, Standard Edition, v11 API Specification_. Available at: _https://docs.oracle.com/en/java/javase/11/_ +_Java™ Platform, Standard Edition (Java SE specification), v17_. Available at: _https://www.jcp.org/en/jsr/detail?id=392_ -_Jakarta™ Enterprise Beans Specification, Version 4.0_. Available at: _https://jakarta.ee/specifications/enterprise-beans/4.0_ +_Java™ Platform, Standard Edition, v17 API Specification_. Available at: _https://docs.oracle.com/javase/17/docs/_ -_Jakarta™ Server Pages Specification, Version 3.1_. Available at: _https://jakarta.ee/specifications/pages/3.1_ +_Jakarta™ Enterprise Beans Specification, Version 4.0_. Available at: _https://jakarta.ee/specifications/enterprise-beans/4.0/_ -_Jakarta™ Expression Language Specification, Version 5.0_. Available at: _https://jakarta.ee/specifications/expression-language/5.0_ +_Jakarta™ Server Pages Specification, Version 4.0_. Available at: _https://jakarta.ee/specifications/pages/4.0/_ -_Jakarta™ Servlet Specification, Version 6.0_. Available at: _https://jakarta.ee/specifications/servlet/6.0_ +_Jakarta™ Expression Language Specification, Version 6.0_. Available at: _https://jakarta.ee/specifications/expression-language/6.0/_ -_Jakarta™ Transaction Specification, Version 2.0_. Available at: _https://jakarta.ee/specifications/transactions/2.0_ +_Jakarta™ Servlet Specification, Version 6.1_. Available at: _https://jakarta.ee/specifications/servlet/6.1/_ -_Jakarta™ RESTful Web Services Specification, Version 3.1_. Available at: _https://jakarta.ee/specifications/restful-ws/3.1_ +_Jakarta™ Transaction Specification, Version 2.0_. Available at: _https://jakarta.ee/specifications/transactions/2.0/_ -_Jakarta™ Annotations Specification, Version 2.1_. Available at: _https://jakarta.ee/specifications/annotations/2.1_ +_Jakarta™ RESTful Web Services Specification, Version 4.0_. Available at: _https://jakarta.ee/specifications/restful-ws/4.0/_ -_Jakarta™ Debugging Support for Other Languages Specification, Version 2.0_. Available at: _https://jakarta.ee/specifications/debugging/2.0_ +_Jakarta™ Annotations Specification, Version 3.0_. Available at: _https://jakarta.ee/specifications/annotations/3.0/_ -_Jakarta™ Standard Tag Library Specification, Version 3.0_. Available at: _https://jakarta.ee/specifications/tags/3.0_ +_Jakarta™ Debugging Support for Other Languages Specification, Version 2.0_. Available at: _https://jakarta.ee/specifications/debugging/2.0/_ -_Jakarta™ Server Faces Specification, Version 4.0_. Available at: _https://jakarta.ee/specifications/faces/4.0_ +_Jakarta™ Standard Tag Library Specification, Version 3.0_. Available at: _https://jakarta.ee/specifications/tags/3.0/_ -_Jakarta™ Persistence Specification, Version 3.1_. Available at: _https://jakarta.ee/specifications/persistence/3.1_ +_Jakarta™ Server Faces Specification, Version 4.1_. Available at: _https://jakarta.ee/specifications/faces/4.1/_ -_Jakarta™ Bean Validation Specification, Version 3.0_. Available at: _https://jakarta.ee/specifications/bean-validation/3.0_ +_Jakarta™ Persistence Specification, Version 3.2_. Available at: _https://jakarta.ee/specifications/persistence/3.2/_ -_Jakarta™ Interceptors Specification, Version 2.1_. Available at: _https://jakarta.ee/specifications/interceptors/2.1_ +_Jakarta™ Validation Specification, Version 3.1_. Available at: _https://jakarta.ee/specifications/bean-validation/3.1/_ -_Jakarta™ Contexts and Dependency Injection Specification, Version 4.0_. Available at: _https://jakarta.ee/specifications/cdi/4.0_ +_Jakarta™ Interceptors Specification, Version 2.2_. Available at: _https://jakarta.ee/specifications/interceptors/2.2/_ -_Jakarta™ Dependency Injection Specification, Version 2.0_. Available at: _https://jakarta.ee/specifications/dependency-injection/2.0_ +_Jakarta™ Contexts and Dependency Injection Specification, Version 4.1_. Available at: _https://jakarta.ee/specifications/cdi/4.1/_ -_Jakarta™ WebSocket Specification, Version 2.1_. Available at: _https://jakarta.ee/specifications/websocket/2.1_ +_Jakarta™ Dependency Injection Specification, Version 2.0_. Available at: _https://jakarta.ee/specifications/dependency-injection/2.0/_ -_Jakarta™ JSON Processing Specification, Version 2.1_. Available at: _https://jakarta.ee/specifications/jsonp/2.1_ +_Jakarta™ WebSocket Specification, Version 2.2_. Available at: _https://jakarta.ee/specifications/websocket/2.2/_ -_Jakarta™ JSON Binding Specification, Version 3.0_. Available at: _https://jakarta.ee/specifications/jsonb/3.0_ +_Jakarta™ JSON Processing Specification, Version 2.1_. Available at: _https://jakarta.ee/specifications/jsonp/2.1/_ -_Jakarta™ Security Specification, Version 3.0_. Available at: _https://jakarta.ee/specifications/security/3.0_ +_Jakarta™ JSON Binding Specification, Version 3.0_. Available at: _https://jakarta.ee/specifications/jsonb/3.0/_ -_Jakarta™ Authentication Specification, Version 3.0_. Available at: _https://jakarta.ee/specifications/authentication/3.0_ +_Jakarta™ Security Specification, Version 4.0_. Available at: _https://jakarta.ee/specifications/security/4.0/_ -_Jakarta™ Concurrency Specification, Version 3.0_. Available at: _https://jakarta.ee/specifications/concurrency/3.0_ \ No newline at end of file +_Jakarta™ Authentication Specification, Version 3.1_. Available at: _https://jakarta.ee/specifications/authentication/3.1/_ + +_Jakarta™ Concurrency Specification, Version 3.1_. Available at: _https://jakarta.ee/specifications/concurrency/3.1/_ + +_Jakarta™ Data Specification, Version 1.0_. Available at: _https://jakarta.ee/specifications/data/1.0/_ \ No newline at end of file diff --git a/specification/src/main/asciidoc/webprofile/RevisionHistory.adoc b/specification/src/main/asciidoc/webprofile/RevisionHistory.adoc index c2e7e9b8..7e8758e7 100644 --- a/specification/src/main/asciidoc/webprofile/RevisionHistory.adoc +++ b/specification/src/main/asciidoc/webprofile/RevisionHistory.adoc @@ -1,6 +1,11 @@ [appendix] == Revision History +=== Changes in Final Release for EE11 +* Updated Java SE base version to 17. +* Addition of Jakarta Data to Web Profile. +* Updated <> for the updated Specifications in Jakarta EE 11. + === Changes in Final Release for EE10 * Major and minor updates to most specifications. * Addition of Jakarta Concurrency to Web Profile. diff --git a/specification/src/main/asciidoc/webprofile/WebProfileDefinition.adoc b/specification/src/main/asciidoc/webprofile/WebProfileDefinition.adoc index 74ccd680..aa8be670 100644 --- a/specification/src/main/asciidoc/webprofile/WebProfileDefinition.adoc +++ b/specification/src/main/asciidoc/webprofile/WebProfileDefinition.adoc @@ -1,36 +1,37 @@ == Web Profile Definition This chapter defines the contents of the -Jakarta™ EE 10 Web Profile. +Jakarta™ EE 11 Web Profile. [[a43]] === Required Components The following technologies are required components of the Web Profile: -* Jakarta Annotations 2.1* -* Jakarta Authentication 3.0* -* Jakarta Bean Validation 3.0 -* Jakarta Concurrency 3.0* -* Jakarta Contexts and Dependency Injection 4.0* +* Jakarta Annotations 3.0* +* Jakarta Authentication 3.1* +* Jakarta Concurrency 3.1* +* Jakarta Contexts and Dependency Injection 4.1* +* Jakarta Data 1.0* * Jakarta Debugging Support for Other Languages 2.0 -* Jakarta Dependency Injection 2.0 +* Jakarta Dependency Injection 2.0 * Jakarta Enterprise Beans 4.0 Lite -* Jakarta Expression Language 5.0* -* Jakarta Interceptors 2.1* -* Jakarta JSON Binding 3.0* -* Jakarta JSON Processing 2.1* -* Jakarta Persistence 3.1* -* Jakarta RESTful Web Services 3.1* -* Jakarta Security 3.0* -* Jakarta Server Faces 4.0* -* Jakarta Server Pages 3.1* -* Jakarta Servlet 6.0* -* Jakarta Standard Tag Library 3.0* +* Jakarta Expression Language 6.0* +* Jakarta Interceptors 2.2* +* Jakarta JSON Binding 3.0 +* Jakarta JSON Processing 2.1 +* Jakarta Persistence 3.2* +* Jakarta RESTful Web Services 4.0* +* Jakarta Security 4.0* +* Jakarta Server Faces 4.1* +* Jakarta Server Pages 4.0* +* Jakarta Servlet 6.1* +* Jakarta Standard Tag Library 3.0 * Jakarta Transactions 2.0 -* Jakarta WebSocket 2.1* +* Jakarta Validation 3.1* +* Jakarta WebSocket 2.2* -*Note:* technologies with an asterik after them represent updated versions. +*Note:* technologies with an asterisk after them represent updated versions. === Optional Components @@ -51,6 +52,6 @@ modules types are required to be supported. The following functionality is required to be supported in Web Profile products: -* Resource annotations defined by the Common Annotations specification ( _Resource_, _Resources_ ) +* Resource annotations defined by the Annotations specification ( _Resource_, _Resources_ ) * JNDI “java:” naming context as described in the JNDI section of the Platform specification * Jakarta Transactions \ No newline at end of file