This week’s Java roundup for September 15th, 2025, features news highlighting: the GA releases of JDK 25 and GraalVM for JDK 25; new JEP candidates and JEPs targeted for JDK 26; point releases of Quarkus, the A2A Java SDK, Apache TomEE, LangChain4j and Gradle; the second alpha release of Hibernate Validator 9.1; and Oracle detaching GraalVM from the Java release train.
OpenJDK
JEP 522, G1 GC: Improve Throughput by Reducing Synchronization, has been elevated from Proposed to Target to Targeted for JDK 26. This JEP proposes to reduce the overhead of the G1 garbage collector to improve synchronization between application threads and GC threads.
JEP 500, Prepare to Make Final Mean Final, has been elevated from its JEP Draft 8349536 to Candidate status. This JEP proposes to prepare the Java ecosystem that will not allow mutation of fields declared as final
with deep reflection, generally practiced using the setAccessible()
method defined in the AccessibleObject
class.
Version 8.0.0 of the Regression Test Harness for the JDK, jtreg
, has been integrated in the JDK mainline and the default test harness. The most significant change is the bundling of AsmTools 8.1 and JUnit 5.13.3. There was also a fix for the --verify-exclude
command line option that failed to abort a test run when failures were discovered. jtreg
is now compiled with JDK 17 starting with this release. More details on this release may be found in the release notes.
JDK 25
Oracle has released version 25 of the Java programming language and virtual machine, which ships with a final feature set of 18 JEPs. Further details may be found in this InfoQ news story.
JDK 26
Build 16 of the JDK 26 early-access builds was made available this past week featuring updates from Build 15 that include fixes for various issues. More details on this release may be found in the release notes.
GraalVM
In conjunction with the release of JDK 25, the release of GraalVM for JDK 25 by Oracle Labs delivers new features related to native image such as: enhanced support for JEP 454, Foreign Function & Memory API (FFM), that includes a new syntax for configuring the FFM API and an implementation of the ofShared()
method defined in the Arena
interface; and an implementation of initial optimization operations from JEP 338, Vector API (Incubator). Further details on this release may be found in the release notes.
Oracle has announced that they are detaching GraalVM from the Java release train as they will focus on non-Java Graal languages such as GraalPy and GraalJS. Released in conjunction with JDK 24, GraalVM for JDK 24, was the “final GraalVM release licensed and supported as part of Oracle Java SE Products.” Oracle stated that more details on this change will be provided at a later date.
BellSoft LibericaJDK
The release of Liberica JDK 25, BellSoft’s downstream distribution of OpenJDK 25. Catherine Edelveis, Developer Advocate at BellSoft, facilitated this YouTube video where she “unboxed” all of the new features in JDK 25 along with a short code example. Developers may download this latest version from this website.
Jakarta EE
In his weekly Hashtag Jakarta EE blog, Ivar Grimstad, Jakarta EE Developer Advocate at the Eclipse Foundation, provided an update on Jakarta EE 12, writing:
The discussions regarding inclusion of new specifications in Jakarta EE 12 continued in this week’s Jakarta EE Platform call. Jakarta Query and Jakarta NoSQL are the most likely candidates. In addition, potentially folding the Jakarta Debugging Support for Other Languages specification into Jakarta Pages was also discussed. Alternatively remove it from the Platform.
As per the Jakarta EE 12 release plan, the first two milestone releases are planned for 3Q 2025.
Spring Framework
It was a busy week over at Spring as the various teams have delivered third milestone releases of Spring Boot, Spring Security, Spring for GraphQL, Spring Integration, Spring Modulith, Spring REST Docs, Spring Batch and Spring for Apache Pulsar. There were also resolutions to CVEs in Spring Framework and Spring Security. More details may be found in this InfoQ news story.
Quarkus/WildFly
Quarkus 3.26.4, the fourth maintenance release, features dependency upgrades, improvements in documentation and resolutions to notable issues such as: a build cycle error when SmallRye OpenAPI and JDK Flight Recorder are used in the same project; and an incorrect Open Telemetry log output in the logging dashboard. Further details on this release may be found in the release notes.
Red Hat has also released version 0.3.0.Beta1 of the A2A Java SDK featuring support for the HTTP+JSON/REST transport protocol. This blog post demonstrates how developers can configure this new feature. In conjunction with this latest release, the WildFly team has created a corresponding A2A Java SDK for Jakarta Servers project, an integration of A2A Java SDK for any Jakarta EE-compliant application server.
Hibernate
The second alpha release of Hibernate Validator 9.1.0 delivers bug fixes, dependency upgrades and performance improvements such as: a new RandomAccessPath
interface, an extension of the Jakarta Validation Path
interface, for situations where the path is represented by an array (or some other collection) that exposes access to the nodes by index; and constraint initialization across shared data that can cache and reuse elements required to construct a constraint validator. More details on this release may be found in the release notes.
Apache TomEE
The release of Apache TomEE 10.1.2 ships with bug fixes, dependency upgrades and one new improvement where an instance of the CdiScanner
class now logs a stack trace if there are missing dependencies. Further details on this release may be found in the release notes.
LangChain4j
The formal release (along with the eleventh beta release) of LangChain4j 1.5.0 features notable changes such as: an initial client implementation of the MCP Registry; support for the Gemini image generation models for receiving generated images; and support for concurrent tool calling through an AI agent. More details on this release may be found in the release notes.
JBang
The release of JBang 0.131.0 delivers bug fixes and notable changes: support for JEP 512, Compact Source Files and Instance Main Methods, delivered in JDK 25, that writes out the shortened void main()
in a generated initialized Java file; and removal of references to “Java” in the User-Agent
header to resolve an HTTP 403 status code. Further details on this release may be found in the release notes.
Gradle
The release of Gradle 9.1.0 features: support for JDK 25; improvements to their diagnostics and preview tools that includes a new task graph to visualize dependencies without having to build the application and enhanced project reporting; and an enhanced command-line interface for improved usability and feedback in the terminal. More details on this release may be found in the release notes.