Add Jakarta EE 11 blog#4803
Conversation
|
@Emily-Jiang you missed https://jakarta.ee/specifications/pages/4.0/ I believe. |
njr-11
left a comment
There was a problem hiding this comment.
Review of Jakarta Data section
|
Thank you @njr-11 @pmd1nh @pnicolucci for your review! I think I have addressed all of your comments. Please double check |
|
|
||
| public CompletableFuture<String> asyncOperation() { | ||
| // Leverages Virtual Threads on Java 21+ | ||
| return executorService.supplyAsync(this::processData);; |
There was a problem hiding this comment.
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)
| return executorService.supplyAsync(this::processData);; | |
| return executorService.supplyAsync(this::processData); |
There was a problem hiding this comment.
Reopening because this was marked resolved without actually changing it.
There was a problem hiding this comment.
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!
There was a problem hiding this comment.
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.
done now. @pnicolucci thanks! Please review |
| } | ||
| ---- | ||
|
|
||
| ==== Using EL 6.0 in JSF/Facelets |
There was a problem hiding this comment.
I recommend using Faces over JSF
| ==== 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. |
There was a problem hiding this comment.
Kindly update the summary to include the new features also.
| 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 |
There was a problem hiding this comment.
Kindly update below point to include more details about the method
| - *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 |
| 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. |
There was a problem hiding this comment.
| 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. |
| * <<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>> |
There was a problem hiding this comment.
Should be consistent. Either include Jakarta at the beginning or don't.
| * <<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
| * <<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` | ||
|
|
There was a problem hiding this comment.
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, andTemporalTypein new applications in favor of thejava.timeAPI. Applications are encouraged to migrate toLocalDate,LocalDateTime,Instant, and otherjava.timetypes. -
Criteria API Deprecation: Deprecates
multiselect()methods inCriteriaQuery. Applications should usearray()ortuple()methods provided byCriteriaBuilder. -
Wrapper Array Type Deprecation: Deprecates
Byte[]andCharacter[]array types for basic attributes in favor of primitive arrays (byte[]andchar[]).
Deprecations for Future Removal:
-
Graph API Deprecations:
- DeprecatesaddSubclassSubgraph()inEntityGraphfor future removal;addTreatedSubgraph()should be used instead.
- DeprecatesaddSubgraph(Attribute, Class)andaddKeySubgraph()inGraph,EntityGraph, andSubgraphfor future removal;addTreatedSubgraph(Attribute, Class)andaddMapKeySubgraph()should be used instead. -
Transaction Type Deprecation: Deprecates
jakarta.persistence.spi.PersistenceUnitTransactionTypefor future removal; applications should usejakarta.persistence.PersistenceUnitTransactionTypeinstead. -
Persistence Class Deprecations: Deprecates the default public no-arg constructor in
jakarta.persistence.Persistence, along with thePERSISTENCE_PROVIDERandprovidersfields, 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` |
There was a problem hiding this comment.
please add the missing new features.
-
Transaction Helpers: Adds
runInTransaction()andcallInTransaction()convenience methods -
EntityManager Connection Access: Adds
runWithConnection()andcallWithConnection()methods for JDBC connection access -
Programmatic Configuration API: Adds
PersistenceConfigurationfor programmatic persistence unit configuration -
Schema Management API: Adds
SchemaManagerfor 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
@EnumeratedValuefor custom enum value mapping -
Named Query and Graph Factory Access: Adds APIs for factory-based named query and entity graph creation/access
No description provided.