This week's Java roundup for May 5th, 2025, features news highlighting: OpenJDK JEPs Targeted and Proposed to Target for JDK 25; new HotSpot-related JEPs, the first release candidate of Hibernate Reactive 3.0; the first developer release of Infinispan 16.0; and the release of JHipster 8.11.0 and Gatherers4j 0.11.0.
OpenJDK
Two JEPs have been elevated from Proposed to Target to Targeted for JDK 25, namely: JEP 513, Flexible Constructor Bodies, and JEP 505, Structured Concurrency (Fifth Preview), announced here and here, respectively.
Three JEPs have been elevated from Candidate to Proposed to Target for JDK 25, namely: JEP 510, Key Derivation Function API, JEP 508, Vector API (Tenth Incubator), and JEP 506, Scoped Values, announced here, here and here, respectively. Their reviews are expected to conclude by Friday, May 16, 2025.
Details for each of these JEPs listed above may be found in this InfoQ news story.
JEP 518, JFR Cooperative Sampling, has been elevated from its JEP Draft 8350338 to Candidate status. This JEP proposes to "improve the stability of the JDK Flight Recorder (JFR) when it asynchronously samples Java thread stacks." This is accomplished by traversing call stacks at safepoints, i.e., a point where a thread is suspended at a well-defined code location.
JEP 516, Ahead-of-Time Object Caching with Any GC, has been elevated from its JEP Draft 8326035 to Candidate status. This JEP proposes to enhance JEP 483, Ahead-of-Time Class Loading & Linking, delivered in JDK 24, for improved startup and warmup time such that it can be used with any garbage collector, including the low-latency Z Garbage Collector (ZGC).
With less than a month before the scheduled Rampdown Phase One, there are nine JEPs, so far, that are part of the feature set for JDK 25:
- 502: Stable Values (Preview)
- 503: Remove the 32-bit x86 Port
- 505: Structured Concurrency (Fifth Preview)
- 506: Scoped Values
- 508: Vector API (Tenth Incubator)
- 510: Key Derivation Function API
- 511: Module Import Declarations
- 512: Compact Source Files and Instance Main Methods
- 513: Flexible Constructor Bodies
JDK 25
Build 22 of the JDK 25 early-access builds was made available this past week featuring updates from Build 21 that include fixes for various issues. More details on this release may be found in the release notes.
For JDK 25, developers are encouraged to report bugs via the Java Bug Database.
JNoSQL
The release of JNoSQL 1.1.7, the compatible implementation of the Jakarta NoSQL specification, ships with bug fixes and enhancements such as: new implementations of the ValueReader
interface, namely ArrayReader
and InstantReader
, to support arrays and the Java Instant
class, respectively; and enhancements to the ValueReaderDecorator
class for improved reading. Further details on this release may be found in the release notes.
Quarkus
Quarkus 3.22.2, the first maintenance release (version 3.22.0 was skipped), ships with bug fixes and notable changes such as: an improved error message when using the Jakarta RESTful Web Services @BeanParam
annotation with no parameters; and a resolution to generation of Jackson serializers for Kotlin data classes. More details on this release may be found in the release notes.
Hibernate
The first release candidate of Hibernate Reactive 3.0.0 delivers notable changes such as: support for JReleaser for releases; new Mutiny.QueryProducer
and Stage.QueryProducer
interfaces to support the Mutiny
and Stage
interfaces, respectively; and the addition of a getCriteriaBuilder()
convenience method to the Mutiny
and Stage
interfaces for alignment with the Jakarta Persistence specification to establish a uniform API makes for improved interoperability with the Hibernate Processor. Further details on this release may be found in the release notes.
JHipster
The release of JHipster 8.11.0 delivers support for JDK 24 and notable dependency upgrades to Spring Boot 3.4.5, Gradle 8.14 and Node.js 22.15.0. New features include improved security utilities and the ability to set a User ID to a JWT Token. More details on this release may be found in the release notes.
JobRunr
The release of JobRunr 7.5.1 features resolutions to: an HTTP Status Code 404 from an instance of the StaticFileHttpHandler
class due to no parsing of the dot character (.) in the query string; and a NullPointerException
due to null
values in the collection of metrics. Further details on this release may be found in the release notes.
Infinispan
The first developer release of Infinispan 16.0.0 delivers bug fixes, dependency upgrades and new features such as: support for the OpenTelemetry API Incubator; and a simplified objectFromInputStream()
method, defined in the AbstractMarshaller
abstract class, by utilizing the transferTo()
method from the Java InputStream
class. More details on this release may be found in the release notes.
JBang
Version 0.126.0 of JBang provides bug fixes, improvements in documentation and a notable change that migrates the JdkManager
and JdkProvider
classes from the dev.jbang.net
to the dev.jbang.devkitman
package to move JDK management code into its own separate module. Further details on this release may be found in the release notes.
Gatherers4j
The release of Gatherers4j 0.11.0, provides new intermediate methods - exponentialMovingAverageWithAlpha()
, exponentialMovingAverageWithAlphaBy()
, exponentialMovingAverageWithPeriod()
and exponentialMovingAverageWithPeriodBy()
, added to the Gatherers4j
abstract class - that implement exponential moving averages. Introduced in July 2024 by Todd Ginsberg, director and lead engineer, Payments, at Deutsche Bank, Gatherers4j is a library of intermediate streams based on JEP 485, Stream Gatherers, delivered in JDK 24. Other notable changes in this version includes: an optimization of the RotateGatherer
class that now stores a minimal set of elements to be shifted instead of processing the entire stream. More details on this release may be found in the release notes.