This week's Java roundup for June 3rd, 2024, features news highlighting: JDK 23 in Rampdown Phase One; the formation of the JDK 24 Expert Group; the release of Apache NetBeans 22; and five Jakarta EE specifications, namely: Jakarta Concurrency 3.1, Jakarta Data 1.0, Jakarta Faces 4.1, Jakarta Pages 4.0 and Jakarta Servlet 6.1, having passed their respective reviews.
JDK 23
Build 26 of the JDK 23 early-access builds was made available this past week featuring updates from Build 25 that include fixes for various issues. Further details on this release may be found in the release notes.
As per the JDK 23 release schedule, Iris Clark, OpenJDK Engineering Liaison at Oracle, formally declared that JDK 23 has entered Rampdown Phase One. This means that the main-line source repository has been forked to the JDK stabilization repository and no additional JEPs will be added for JDK 23. Therefore, the final set of 12 features for the GA release in September 2024 will include:
- JEP 455: Primitive Types in Patterns, instanceof, and switch (Preview)
- JEP 466: Class-File API (Second Preview)
- JEP 467: Markdown Documentation Comments
- JEP 469: Vector API (Eighth Incubator)
- JEP 471: Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal
- JEP 473: Stream Gatherers (Second Preview)
- JEP 474: ZGC: Generational Mode by Default
- JEP 476: Module Import Declarations (Preview)
- JEP 477: Implicitly Declared Classes and Instance Main Methods (Third Preview)
- JEP 480: Structured Concurrency (Third Preview)
- JEP 481: Scoped Values (Third Preview)
- JEP 482: Flexible Constructor Bodies (Second Preview)
More details on all of these new features may be found in this InfoQ news story.
JDK 24
JSR 399, Java SE 24, was submitted this past week to formally announce the six-member expert group for JDK 24, namely Simon Ritter (Azul Systems), Stephan Herrmann (Eclipse Foundation), Andrew Haley (Red Hat), Christoph Langer (SAP SE), Iris Clark (Oracle) and Brian Goetz (Oracle). Clark and Goetz will serve as the specification leads. Other notable dates at this time include a public review from December 2024 through February 2025 and the GA release in March 2025.
Build 0 and Build 1 of the JDK 24 early-access builds were also made available this past week featuring updates to resolve these initial issues.
For JDK 23 and JDK 24, developers are encouraged to report bugs via the Java Bug Database.
Jakarta EE
Five (5) Jakarta EE specifications, namely: Jakarta Concurrency 3.1, Jakarta Data 1.0, Jakarta Faces 4.1, Jakarta Pages 4.0 and Jakarta Servlet 6.1, have passed their respective reviews this past week and have been declared finalized for the upcoming release of Jakarta EE 11. These specifications join the other nine specifications whose reviews have already been completed. Reviews for the remaining two (2) specifications, Jakarta Authentication 3.0 and Jakarta Security 4.0, should start during the week of June 10, 2024.
Spring Framework
The release of Spring Functions Catalog 5.0.0, a rebranding, and next generation, of the functions
sub-module of Stream Applications project, provides dependency upgrades to: Debezium 2.6.2; Spring Boot 3.2.6; Spring Cloud 2023.0.2, codenamed Leyton; and Gradle Develocity 3.17.4. Introduced in March 2024, this catalog provides a set of standalone Java functions that can be useful in the end-user applications as-is. Version 5.0.0 was chosen for this new catalog to maintain alignment with functions from the Stream Applications project. Further details on this release may be found in the release notes.
Similarly, the release of Spring Cloud Stream Applications 2024.0.0 ships with dependency upgrades and notable changes such as: a simplification of the layout of the sample applications table in the README.adoc
file by alpha-ordering each column; and the addition of a spring.binders
property as a workaround due to this property having been removed from the spring-cloud-stream-test-binder
module in Spring Cloud Stream 4.1.2. More details on this release may be found in the release notes.
The release of Spring Shell 3.3.0 features a breaking change that replaces the use of the Spring Boot ApplicationArguments
interface with a plain String
array in the ShellRunner
interface and its implementations. Default methods to bridge new methods were created and old methods were deprecated with a plan to remove them in Spring Shell 3.4.x. This is part of on-going work to remove all Spring Boot classes from the Spring Shell core package. This version builds upon Spring Boot 3.3.0 and JLine 3.26.1. Further details on this release may be found in the release notes.
The release of Spring Security Keberos 2.1.0 provides bug fixes, version updates, and many compatibility fixes. More details on this release may be found in the release notes.
Open Liberty
IBM has released version 24.0.0.6-beta of Open Liberty featuring: previews of implementations of the Jakarta Validation 3.1 and Jakarta Data 1.0 specifications, both of which are part of the upcoming GA release of Jakarta EE 11; enhancements for histogram and timer metrics in MicroProfile 3.0 and 4.0; and InstantOn support for distributed HTTP session caching.
Quarkus
Quarkus 3.11.1, the first maintenance release in the 3.11 release train, provides improvements in documentation, dependency upgrades and notable changes such as: improved support of security integration for the WebSockets Next extension by closing the connection if the security identity has expired; an unexpected DisabledOidcClientException
upon attempting to set quarkus.oidc-client.client-enabled=false
property and use the @OidcClientFilter
annotated REST client without trying (and failing) to acquire a token. Further details on this release may be found in the changelog.
Similarly, Quarkus 3.8.5, fourth maintenance release in the 3.8 release train (version 3.8.0 was skipped), also provides improvements in documentation, dependency upgrades and notable resolutions to issues such as: a corrupt HTTP request body upon using the wrong character set in the Azure Functions HTTP extension; a Jakarta CDI AmbiguousResolutionException
upon using the @AccessToken
annotation on an OIDC client; and the ability to configure the maxParameters
field defined in the MultiPartParserDefinition
class. More details on this release may be found in the changelog.
Apache Software Foundation
The release of Apache NetBeans 22 delivers dependency upgrades and notable changes such as: a resolution to a NullPointerException
from within the GradleDaemonExecutor
class due to concurrency issues; the addition of Java code templates for records, sealed types and the of()
methods defined in the List
, Map
and Set
interfaces; and removal of the Spring Framework 3.0 and 4.0 release trains (having reached end-of-life) along with an update to the Spring 5.0 library wrapper to version 5.3.31. Further details on this release may be found in the release notes.
Grails
As a followup to the recently published Open Letter To Our Community by Object Computing, Inc. (OCI), the Grails Foundation has introduced their plans for the future development of the Grails Framework. A Grails Community Steering Committee has been established with the goal to define a path forward for the Grails Framework. This new steering committee will focus on three main goals:
- Define a Minimum Viable Product (MVP) for Grails 7.
- Outline community contribution opportunities to clearly define how individuals and organizations can contribute to the development of the MVP.
- Highlight contribution methods that recognize contributions may come in various forms, such as organizations who prefer dedicating engineering resources, while others might choose to provide financial support for a core development team.
The Grails Foundation has learned that increased transparency regarding challenges and opportunities is crucial for the continued development of the Grails Framework. As a result, they are committed to improving communication in this area.