Skip to content

Add Jakarta EE 11 blog#4803

Open
Emily-Jiang wants to merge 8 commits intoOpenLiberty:draftfrom
Emily-Jiang:ee11-blog
Open

Add Jakarta EE 11 blog#4803
Emily-Jiang wants to merge 8 commits intoOpenLiberty:draftfrom
Emily-Jiang:ee11-blog

Conversation

@Emily-Jiang
Copy link
Copy Markdown
Member

No description provided.

@Emily-Jiang Emily-Jiang closed this May 6, 2026
Comment thread posts/2026-05-16-Jakarta EE 11 in Open Liberty.adoc Outdated
@pnicolucci
Copy link
Copy Markdown
Member

@Emily-Jiang you missed https://jakarta.ee/specifications/pages/4.0/ I believe.

Comment thread posts/2026-05-16-Jakarta EE 11 in Open Liberty.adoc
Copy link
Copy Markdown
Member

@njr-11 njr-11 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review of Jakarta Data section

Comment thread posts/2026-05-16-Jakarta EE 11 in Open Liberty.adoc Outdated
Comment thread posts/2026-05-16-Jakarta EE 11 in Open Liberty.adoc Outdated
Comment thread posts/2026-05-16-Jakarta EE 11 in Open Liberty.adoc Outdated
Comment thread posts/2026-05-16-Jakarta EE 11 in Open Liberty.adoc Outdated
Comment thread posts/2026-05-16-Jakarta EE 11 in Open Liberty.adoc Outdated
Comment thread posts/2026-05-16-Jakarta EE 11 in Open Liberty.adoc Outdated
Comment thread posts/2026-05-16-Jakarta EE 11 in Open Liberty.adoc Outdated
Comment thread posts/2026-05-16-Jakarta EE 11 in Open Liberty.adoc Outdated
Comment thread posts/2026-05-16-Jakarta EE 11 in Open Liberty.adoc Outdated
Comment thread posts/2026-05-16-Jakarta EE 11 in Open Liberty.adoc Outdated
Copy link
Copy Markdown
Member

@njr-11 njr-11 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comments on Concurrency 3.1

Comment thread posts/2026-05-16-Jakarta EE 11 in Open Liberty.adoc
Comment thread posts/2026-05-16-Jakarta EE 11 in Open Liberty.adoc
Comment thread posts/2026-05-16-Jakarta EE 11 in Open Liberty.adoc Outdated
Comment thread posts/2026-05-16-Jakarta EE 11 in Open Liberty.adoc Outdated
Comment thread posts/2026-05-16-Jakarta EE 11 in Open Liberty.adoc Outdated
@Emily-Jiang Emily-Jiang reopened this May 7, 2026
@Emily-Jiang
Copy link
Copy Markdown
Member Author

Thank you @njr-11 @pmd1nh @pnicolucci for your review! I think I have addressed all of your comments. Please double check

Comment thread posts/2026-05-16-Jakarta EE 11 in Open Liberty.adoc

public CompletableFuture<String> asyncOperation() {
// Leverages Virtual Threads on Java 21+
return executorService.supplyAsync(this::processData);;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the future, if the code suggestions are acceptable, just accept them to be applied directly to the PR instead of retyping them. The latter is both error prone and causes extra review time for the code reviewer. (An accepted suggestion doesn't need to be re-reviewed because you know what you suggested before was applied exactly, whereas as with re-typed updates, the reviewer needs to spend time figuring out if the suggestion was applied at all and whether it might differ in some way that introduces errors or typos)

Suggested change
return executorService.supplyAsync(this::processData);;
return executorService.supplyAsync(this::processData);

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reopening because this was marked resolved without actually changing it.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

normally I would... I tried to keep the number of commits low for easier to re-review and use my local version as the master copy. Thank you @njr-11 for spending time to re-review this!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That did not make it easier to review. It made it harder, took longer for the reviewer, and introduced mistakes. If your goal is to reduce commits, use the "Add suggestion to batch" for suggested changes, which puts all of them into a single commit.

Comment thread posts/2026-05-16-Jakarta EE 11 in Open Liberty.adoc
Comment thread posts/2026-05-16-Jakarta EE 11 in Open Liberty.adoc
@Emily-Jiang
Copy link
Copy Markdown
Member Author

@Emily-Jiang you missed https://jakarta.ee/specifications/pages/4.0/ I believe.

done now. @pnicolucci thanks! Please review

}
----

==== Using EL 6.0 in JSF/Facelets
Copy link
Copy Markdown
Member

@volosied volosied May 7, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I recommend using Faces over JSF

Suggested change
==== Using EL 6.0 in JSF/Facelets
==== Using EL 6.0 in Faces/Facelets

[#restful-web-services-4.0]
=== RESTful Web Services 4.0

Jakarta RESTful Web Services 4.0 provides a foundational API to develop web services following the Representational State Transfer (REST) architectural pattern. The goal of this release is to remove the JAXB dependency and ManagedBean support from Jakarta RESTful Web Services and add TCK tests to fill verification gaps while maintaining backward compatibility with earlier releases.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kindly update the summary to include the new features also.

Suggested change
Jakarta RESTful Web Services 4.0 provides a foundational API to develop web services following the Representational State Transfer (REST) architectural pattern. The goal of this release is to remove the JAXB dependency and ManagedBean support from Jakarta RESTful Web Services and add TCK tests to fill verification gaps while maintaining backward compatibility with earlier releases.
Jakarta RESTful Web Services 4.0 provides a foundational API to develop web services following the Representational State Transfer (REST) architectural pattern. New features include a convenience method for checking header value lists to easily verify whether a header contains specific values, the addition of a method to retrieve the matched resource template, and support for RFC 7396 JSON Merge Patch operations. The release also aims to remove the JAXB dependency and ManagedBean support from Jakarta RESTful Web Services and add TCK tests to fill verification gaps while maintaining backward compatibility with earlier releases.


- *TCK tests for multipart/form-data API*: Added comprehensive tests for multipart form data handling
- *TCK tests for default ExceptionMapper*: Added tests to verify default exception mapping behavior
- *Convenience method for checking header value lists*: New method to easily check if a header contains specific values
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kindly update below point to include more details about the method

Suggested change
- *Convenience method for checking header value lists*: New method to easily check if a header contains specific values
- *Added containsHeaderString method*: New method added to the APIs -ClientRequestContext, ClientResponseContext, ContainerRequestContext, ContainerResponseContext and HttpHeaders to provide an easy way to check whether a header contains specific values

Comment on lines +9 to +10
seo-description: Discover Jakarta EE 11's revolutionary features in Open Liberty 26.0.0.5 or later releases, including the game-changing Jakarta Data 1.0 specification that eliminates boilerplate code. Explore comprehensive code examples for updated specifications like CDI 4.1, Persistence 3.2, Security 4.0, and RESTful Web Services 4.0. Learn how Java 21 Records further simplify your applications.
blog_description: Discover Jakarta EE 11's revolutionary features in Open Liberty 26.0.0.5 or later releases, including the game-changing Jakarta Data 1.0 specification that eliminates boilerplate code. Explore comprehensive code examples for updated specifications like CDI 4.1, Persistence 3.2, Security 4.0, and RESTful Web Services 4.0. Learn how Java 21 Records further simplify your applications.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
seo-description: Discover Jakarta EE 11's revolutionary features in Open Liberty 26.0.0.5 or later releases, including the game-changing Jakarta Data 1.0 specification that eliminates boilerplate code. Explore comprehensive code examples for updated specifications like CDI 4.1, Persistence 3.2, Security 4.0, and RESTful Web Services 4.0. Learn how Java 21 Records further simplify your applications.
blog_description: Discover Jakarta EE 11's revolutionary features in Open Liberty 26.0.0.5 or later releases, including the game-changing Jakarta Data 1.0 specification that eliminates boilerplate code. Explore comprehensive code examples for updated specifications like CDI 4.1, Persistence 3.2, Security 4.0, and RESTful Web Services 4.0. Learn how Java 21 Records further simplify your applications.
seo-description: Discover Jakarta EE 11's revolutionary features in Open Liberty 26.0.0.5 or later releases, including the game-changing Jakarta Data 1.0 specification that eliminates boilerplate code. Explore comprehensive code examples for updated specifications like CDI 4.1, Persistence 3.2, Security 4.0, and RESTful Web Services 4.0. Learn how Java 17 Records further simplify your applications.
blog_description: Discover Jakarta EE 11's revolutionary features in Open Liberty 26.0.0.5 or later releases, including the game-changing Jakarta Data 1.0 specification that eliminates boilerplate code. Explore comprehensive code examples for updated specifications like CDI 4.1, Persistence 3.2, Security 4.0, and RESTful Web Services 4.0. Learn how Java 17 Records further simplify your applications.

Comment on lines +29 to +42
* <<data-1.0,Jakarta Data 1.0>>
* <<authentication-3.1,Authentication 3.1>>
* <<authorization-3.0,Authorization 3.0>>
* <<concurrency-3.1,Concurrency 3.1>>
* <<cdi-4.1,CDI 4.1>>
* <<faces-4.1,Jakarta Server Faces 4.1>>
* <<expression-language-6.0,Expression Language 6.0>>
* <<servlet-6.1,Jakarta Servlet 6.1>>
* <<websocket-2.2,Jakarta WebSocket 2.2>>
* <<restful-web-services-4.0,Jakarta RESTful Web Services 4.0>>
* <<persistence-3.2,Jakarta Persistence 3.2>>
* <<pages-4.0,Jakarta Pages 4.0>>
* <<security-4.0,Jakarta Security 4.0>>
* <<validation-3.1,Jakarta Validation 3.1>>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be consistent. Either include Jakarta at the beginning or don't.

Suggested change
* <<data-1.0,Jakarta Data 1.0>>
* <<authentication-3.1,Authentication 3.1>>
* <<authorization-3.0,Authorization 3.0>>
* <<concurrency-3.1,Concurrency 3.1>>
* <<cdi-4.1,CDI 4.1>>
* <<faces-4.1,Jakarta Server Faces 4.1>>
* <<expression-language-6.0,Expression Language 6.0>>
* <<servlet-6.1,Jakarta Servlet 6.1>>
* <<websocket-2.2,Jakarta WebSocket 2.2>>
* <<restful-web-services-4.0,Jakarta RESTful Web Services 4.0>>
* <<persistence-3.2,Jakarta Persistence 3.2>>
* <<pages-4.0,Jakarta Pages 4.0>>
* <<security-4.0,Jakarta Security 4.0>>
* <<validation-3.1,Jakarta Validation 3.1>>
* <<data-1.0,Data 1.0>>
* <<authentication-3.1,Authentication 3.1>>
* <<authorization-3.0,Authorization 3.0>>
* <<concurrency-3.1,Concurrency 3.1>>
* <<cdi-4.1,CDI 4.1>>
* <<faces-4.1,Faces 4.1>>
* <<expression-language-6.0,Expression Language 6.0>>
* <<servlet-6.1,Servlet 6.1>>
* <<websocket-2.2,WebSocket 2.2>>
* <<restful-web-services-4.0,RESTful Web Services 4.0>>
* <<persistence-3.2,Persistence 3.2>>
* <<pages-4.0,Pages 4.0>>
* <<security-4.0,Security 4.0>>
* <<validation-3.1,Validation 3.1>>

or

Suggested change
* <<data-1.0,Jakarta Data 1.0>>
* <<authentication-3.1,Authentication 3.1>>
* <<authorization-3.0,Authorization 3.0>>
* <<concurrency-3.1,Concurrency 3.1>>
* <<cdi-4.1,CDI 4.1>>
* <<faces-4.1,Jakarta Server Faces 4.1>>
* <<expression-language-6.0,Expression Language 6.0>>
* <<servlet-6.1,Jakarta Servlet 6.1>>
* <<websocket-2.2,Jakarta WebSocket 2.2>>
* <<restful-web-services-4.0,Jakarta RESTful Web Services 4.0>>
* <<persistence-3.2,Jakarta Persistence 3.2>>
* <<pages-4.0,Jakarta Pages 4.0>>
* <<security-4.0,Jakarta Security 4.0>>
* <<validation-3.1,Jakarta Validation 3.1>>
* <<data-1.0,Jakarta Data 1.0>>
* <<authentication-3.1,Jakarta Authentication 3.1>>
* <<authorization-3.0,Jakarta Authorization 3.0>>
* <<concurrency-3.1,Jakarta Concurrency 3.1>>
* <<cdi-4.1,Jakarta CDI 4.1>>
* <<faces-4.1,Jakarta Faces 4.1>>
* <<expression-language-6.0,Jakarta Expression Language 6.0>>
* <<servlet-6.1,Jakarta Servlet 6.1>>
* <<websocket-2.2,Jakarta WebSocket 2.2>>
* <<restful-web-services-4.0,Jakarta RESTful Web Services 4.0>>
* <<persistence-3.2,Jakarta Persistence 3.2>>
* <<pages-4.0,Jakarta Pages 4.0>>
* <<security-4.0,Jakarta Security 4.0>>
* <<validation-3.1,Jakarta Validation 3.1>>

I debate including the full spelling out of CDI as well. Also it isn't quite a full list. Annotations 3.0 and Interceptors 2.2 are not included. I think it is important to show @ManagedBean annotation being removed and how a user would need to transition to using @Inject to replace its usage.

- *Query Methods*: Adds `getSingleResultOrNull()` to `Query`, `TypedQuery`, `StoredProcedureQuery`
- *Named Queries*: Adds `entities()`, `classes()` and `columns()` to `NamedNativeQuery`
- *Lock Mode*: Adds `lockMode()` to `EntityResult` with the default being `OPTIMISTIC`

Copy link
Copy Markdown
Member

@anija-anil anija-anil May 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You missed the Deprecations in Persistence 3.2 , Could you please update

`Deprecations in Persistence 3.2:

  • Legacy Date/Time API Deprecation: Deprecates usage of Calendar, Date, Time, Timestamp, @Temporal, @MapKeyTemporal, and TemporalType in new applications in favor of the java.time API. Applications are encouraged to migrate to LocalDate, LocalDateTime, Instant, and other java.time types.

  • Criteria API Deprecation: Deprecates multiselect() methods in CriteriaQuery. Applications should use array() or tuple() methods provided by CriteriaBuilder.

  • Wrapper Array Type Deprecation: Deprecates Byte[] and Character[] array types for basic attributes in favor of primitive arrays (byte[] and char[]).

Deprecations for Future Removal:

  • Graph API Deprecations:
      - Deprecates addSubclassSubgraph() in EntityGraph for future removal; addTreatedSubgraph() should be used instead.
      - Deprecates addSubgraph(Attribute, Class) and addKeySubgraph() in Graph, EntityGraph, and Subgraph for future removal; addTreatedSubgraph(Attribute, Class) and addMapKeySubgraph() should be used instead.

  • Transaction Type Deprecation: Deprecates jakarta.persistence.spi.PersistenceUnitTransactionType for future removal; applications should use jakarta.persistence.PersistenceUnitTransactionType instead.

  • Persistence Class Deprecations: Deprecates the default public no-arg constructor in jakarta.persistence.Persistence, along with the PERSISTENCE_PROVIDER and providers fields, for future removal with no replacement. The class is not intended for extensibility.`

- *Null Precedence*: Adds support for specifying null precedence when ordering Jakarta Persistence QL and criteria queries
- *Query Methods*: Adds `getSingleResultOrNull()` to `Query`, `TypedQuery`, `StoredProcedureQuery`
- *Named Queries*: Adds `entities()`, `classes()` and `columns()` to `NamedNativeQuery`
- *Lock Mode*: Adds `lockMode()` to `EntityResult` with the default being `OPTIMISTIC`
Copy link
Copy Markdown
Member

@anija-anil anija-anil May 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please add the missing new features.

  • Transaction Helpers: Adds runInTransaction() and callInTransaction() convenience methods

  • EntityManager Connection Access: Adds runWithConnection() and callWithConnection() methods for JDBC connection access

  • Programmatic Configuration API: Adds PersistenceConfiguration for programmatic persistence unit configuration

  • Schema Management API: Adds SchemaManager for schema creation, validation, truncation, and dropping

  • DDL Generation Enhancements: Adds support for comments, check constraints, table options, and second precision in generated DDL

  • Enum Mapping Enhancements: Adds @EnumeratedValue for custom enum value mapping

  • Named Query and Graph Factory Access: Adds APIs for factory-based named query and entity graph creation/access

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants