Spring News Roundup: Spring Vault Milestone, Point Releases and End of OSS Support

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

There was a flurry of activity in the Spring ecosystem during the week of June 16th, 2025, highlighting: the first milestone release of Spring Vault 4.0; and point releases of of Spring Boot, Spring Security, Spring Authorization Server, Spring Session, Spring Integration, Spring Modulith, Spring REST Docs, Spring AMQP, Spring for Apache Kafka, Spring for Apache Pulsar and Spring Web Services.

Release trains for numerous Spring projects will also reach the end of OSS support on June 30, 2025.

Spring Boot

Versions 3.5.1, 3.4.7 and 3.3.13 of Spring Boot (announced here, here and here, respectively) all deliver bug fixes, improvements in documentation and dependency upgrades. New features include: the ability to customize instances of the ConfigData.Options class that are set on the ConfigDataEnvironmentContributors class; and an upgrade to Apache Tomcat 10.1.42 which has introduced limits for part count and header size in multipart/form-data requests. These limits can be customized using the server.tomcat.max-part-count and server.tomcat.max-part-header-size properties, respectively.

Versions 3.5.3 and 3.5.2 (announced here and here) were unscheduled releases to address a difficult regression that was inadvertently introduced in version 3.5.1.

More details on these releases may be found in the release notes for version 3.5.3, version 3.5.2, version 3.5.1, version 3.4.7 and version 3.3.13.

Spring Security

Spring Security 6.5.1, 6.4.7 and 6.3.10 all deliver bug fixes, dependency upgrades and new features such as: a new migration guide that describes the transition from the now defunct Spring Security SAML Extension to built-in support for SAML 2.0; and support for the AsciiDoc include-code extension. Further details on these releases may be found in the release notes for version 6.5.1, version 6.4.7 and version 6.3.10.

Spring Authorization Server

The release of Spring Authorization Server 1.5.1, 1.4.4 and 1.3.7 all ship with bug fixes, dependency upgrades and a new feature that improves logging from the doFilterInternal() method, defined in the OAuth2ClientAuthenticationFilter class, to report on issues with client credentials. More details on these releases may be found in the release notes for version 1.5.1, version 1.4.4 and version 1.3.7.

Spring Session

Spring Session 3.5.1 and 3.4.4 provide dependency upgrades and a resolution to a ClassCastException due to a race condition from integration tests that use the Redis SessionEventRegistry class as it assumes there is only one event type for each session ID. Further details on these releases may be found in the release notes for version 3.5.1 and version 3.4.4.

Spring Integration

Spring Integration 6.3.11 ships with dependency upgrades and a resolution to a NullPointerException from the private obtainFolderInstance() method, defined in the AbstractMailReceiver class, to use the getDefaultFolder() method from the Jakarta Mail Store class if the URL is not provided or null. More details on this release may be found in the release notes.

Spring Modulith

Spring Modulith 1.4.1 and 1.3.7 provide bug fixes, dependency upgrades and improvements: the addition of missing reflection metadata in the JSONPath lookup for application module identifiers when converting to native image with GraalVM; and a resolution to prevent application module misconfiguration from the getModuleForPackage() method, defined in the ApplicationModules class, depending on the order of values stored in an instance of the Java Map interface that may return invalid additional packages. Further details on these releases may be found in the release notes for version 1.4.1 and version 1.3.7.

Spring REST Docs

Spring REST Docs 3.0.4 ships with improvements in documentation and notable changes: support for the Spring Framework 6.2 release train as default version due to the Spring Framework 6.1 release train reaching end of OSS support on June 30, 2025; and a workaround to resolve a breaking change with asciidoctor-maven-plugin 3.1.0 that no longer uses relative paths to build documentation. More details on this release may be found in the release notes.

Spring AMQP

Spring AMQP 3.1.12 provides dependency upgrades and resolutions to issue such as: removal of the cancelled() method from the logic within the commitIfNecessary() method, defined in the BlockingQueueConsumer class that had been causing anomalies in the shutdown process; and an instance of the default Spring Framework ThreadPoolTaskScheduler class created in the doInitialize() method, defined in the DirectMessageListenerContainer class, does not properly shut down when the container is destroyed. Further details on this release may be found in the release notes.

Spring for Apache Kafka

The release of Spring for Apache Kafka 3.3.7 and 3.2.10 delivers bug fixes, dependency upgrades and one new feature that now propagates the trace context when asynchronously handling Kafka message failures. More details on these releases may be found in the release notes for version 3.3.7 and version 3.2.10.

Spring for Apache Pulsar

Spring for Apache Pulsar 1.2.7 and 1.1.13 ship with improvements in documentation and notable respective dependency upgrades such as: Spring Framework 6.2.8 and 6.1.21; Project Reactor 2024.0.7 and 2023.0.19; and Micrometer 1.14.8 and 1.13.15. Further details on these releases may be found in the release notes for verizon 1.2.7 and version 1.1.3.

Spring Web Services

The release of Spring Web Services 4.0.15 features dependency upgrades and a resolution to the SimpleXsdSchema class that references an instance of the Java Element interface, which is not thread safe, that has caused issues when multiple clients have simultaneously requested the schema file. More details on this release may be found in the release notes.

Spring Vault

The first milestone release of Spring Vault 4.0.0 features: an alignment with Spring Framework 7.0; support for JSpecify for improved null safety; and a new ClientConfiguration class that adds support for Reactor, Jetty and JDK HTTP implementations of the SpringFramework ClientHttpRequestFactory interface. Further details on this release may be found in the release notes.

End of OSS Support

Release trains for all of these Spring projects (plus Spring Framework), with links to their respective timelines, will reach end of OSS support on June 30, 2025:

End of enterprise support for all of these projects will reach end of life on June 30, 2026.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Java News Roundup: Spring Milestone, Payara Platform, Jakarta EE 11 Update, Apache Fory

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

This week’s Java roundup for June 9th, 2025, features news highlighting: the sixth milestone release of Spring Framework 7.0; the June 2025 edition of Payara Platform; point releases of Apache Tomcat, Micrometer, Project Reactor and Micronaut; Jakarta EE 11 Platform on the verge of a GA release; and Apache Fury renamed to Apache Fory.

JDK 25

Build 27 of the JDK 25 early-access builds was made available this past week featuring updates from Build 26 that include fixes for various issues. More details on this release may be found in the release notes.

JDK 26

Build 2 of the JDK 26 early-access builds was also made available this past week featuring updates from Build 1 that include fixes for various issues. Further details on this release may be found in the release notes.

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 11 and Jakarta EE 12, writing:

We’re finally there! The release review for the Jakarta EE 11 Platform specification is ongoing. All the members of the Jakarta EE Specification Committee have voted, so as soon as the minimum duration of 7 days is over, the release of the specification will be approved. Public announcements and celebrations will follow in the weeks to come.

With Jakarta EE 11 out the door, the Jakarta EE Platform project can focus entirely on Jakarta EE 12. A project Milestone 0 is being planned as we speak. One of the activities of that milestone will be to get all CI Jobs and configurations set up for the new way of releasing to Maven Central due to the end-of-life of OSSRH. There will be a new release of the EE4J Parent POM to support this.

The road to Jakarta EE 11 included five milestone releases, the release of the Core Profile in December 2024, the release of Web Profile in April 2025, and a first release candidate of the Platform before its anticipated GA release in June 2025.

Spring Framework

The sixth milestone release of Spring Framework 7.0.0 delivers bug fixes, improvements in documentation, dependency upgrades and new features such as: initial support for the Spring Retry project; and a new getObjectMapper() method, defined in the JacksonJsonMessageConverter class, due to now-deprecated MappingJackson2MessageConverter class that had the same method that offered the same functionality. More details on this release may be found in the release notes.

The release of Spring Framework 6.2.8 and 6.1.2 primarily provides a resolution for CVE-2025-41234, RFD Attack via “Content-Disposition” Header Sourced from Request, where an application is vulnerable to a Reflected File Download attack when a Content-Disposition header is set with a non-ASCII character set, where the filename attribute is derived from user-supplied input. Further details on these releases may be found in the release notes for version 6.2.8 and version 6.1.21.

Payara Platform

Payara has released their June 2025 edition of the Payara Platform that includes Community Edition 6.2025.6, Enterprise Edition 6.27.0 and Enterprise Edition 5.76.0. All three releases deliver: improved deployment times using a new /lib/warlibs directory that allows shared libraries to be placed outside individual application packages; and support for bean validation in MicroProfile OpenAPI 3.1.

This edition also delivers Payara 7.2025.1.Alpha2 that advances support for Jakarta EE 11 that includes updates to Eclipse Expressly 6.0.0, Eclipse Soteria 4.0.1 and Eclipse Krazo 3.0, compatible implementations of the Jakarta Expression Language 6.0, Jakarta Security 4.0 and Jakarta MVC 3.0 specifications, respectively.

More details on these releases may be found in the release notes for Community Edition 6.2025.6 and Enterprise Edition 6.27.0 and Enterprise Edition 5.76.0.

Micronaut

The Micronaut Foundation has released version 4.8.3 of the Micronaut Framework, based on Micronaut Core 4.8.18, featuring bug fixes and patch updates to modules: Micronaut Security, Micronaut Serialization, Micronaut Oracle Cloud, Micronaut SourceGen, Micronaut for Spring, Micronaut Data, Micronaut Micrometer and Micronaut Coherence. Further details on this release may be found in the release notes.

Micrometer

Version 1.15.1, 1.14.8 and 1.13.15 of Micrometer Metrics provides dependency upgrades and resolutions to notable issues such as: a ConcurrentModificationException from the IndexProviderFactory class using a HashMap, which is not thread safe, upon building an instance of the DistributionSummary interface. More details on these releases may be found in the release notes for version 1.15.1, version 1.14.8 and version 1.13.15.

Versions 1.5.1, 1.4.7 and 1.3.13 of Micrometer Tracing ships with: dependency upgrades to Micrometer Metrics 1.15.1, 1.14.8 and 1.13.15, respectively, and a resolution to the append(Context context, Map baggage) method, defined in the ReactorBaggage class, that adds new baggage values to an existing instance of the Project Reactor Context interface, unintentionally overwrites any conflicting keys with the existing values of the baggage parameter, not the newly provided ones. Further details on these releases may be found in the release notes for version 1.5.1, version 1.4.7 and version 1.3.13.

Project Reactor

The fourth milestone release of Project Reactor 2025.0.0 provides dependency upgrades to reactor-core 3.8.0-M4, reactor-netty 1.3.0-M4, reactor-pool 1.2.0-M4. There was also a realignment to version 2025.0.0-M4 with the reactor-addons 3.5.2 and reactor-kotlin-extensions 1.2.3 artifacts that remain unchanged. With this release, Reactor Kafka is no longer part of the Project Reactor BOM as Reactor Kafka was discontinued in May 2025. More details on this release may be found in the release notes.

Similarly, Project Reactor 2024.0.7, the seventh maintenance release, provides dependency upgrades to reactor-core 3.7.7, reactor-netty 1.2.7 and reactor-pool 1.1.3. There was also a realignment to version 2024.0.7 with the reactor-addons 3.5.2, reactor-kotlin-extensions 1.2.3 and reactor-kafka 1.3.23 artifacts that remain unchanged. Further details on this release may be found in the release notes.

And finally, Project Reactor 2023.0.19, the nineteenth maintenance release, provides dependency upgrades to reactor-core 3.6.18, reactor-netty 1.1.31 and reactor-pool 1.0.11. There was also a realignment to version 2023.0.19 with the reactor-addons 3.5.2, reactor-kotlin-extensions 1.2.3 and reactor-kafka 1.3.23 artifacts that remain unchanged. This is the last release in the 2023.0.x release train as it is being removed from OSS support. More details on this release may be found in the release notes and their support policy.

Apache Software Foundation

Versions 11.0.8, 10.1.42 and 9.0.106 of Apache Tomcat (announced here, here and here, respectively) ship with bug fixes and improvements such as: two new attributes, maxPartCount and maxPartHeaderSize, added to the Connector class to provide finer-grained control of multi-part request processing; and a refactor of the TaskQueue class that implements the new RetryableQueue interface for improved integration of custom instances of the Java Executor interface which provide their own implementation of the Java BlockingQueue interface. Further details on these releases may be found in the release notes for version 11.0.8, version 10.1.42 and version 9.0.16.

The Apache Software Foundation (ASF) has announced that their polyglot serialization framework, formerly known as Apache Fury, has been renamed to Apache Fory to resolve naming conflicts identified by the ASF Brand Management. The team decided on the new name, Fory, to preserve phonetic similarity to Furywhile establishing a distinct identity aligned with ASF standards.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Java News Roundup: JDK 25 in Rampdown, JDK 26 Expert Group, Hibernate Search, Project Crema

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

This week’s Java roundup for June 2nd, 2025 features news highlighting: JDK 25 in Rampdown Phase One; the formation of the JDK 26 Expert Group; the release of Hibernate Search 8.0.0.Final; the fourth milestone release of Grails 7.0.0; the beta release of Open Liberty 25.0.0.6; point releases for Eclipse JNoSQL, Helidon and JBang; and a sneak peek into a new Oracle Labs project, Project Crema.

OpenJDK

JEP 509, JFR CPU-Time Profiling (Experimental), has been elevated from Proposed to Target to Targeted for JDK 25. This experimental JEP proposes to enhance the JDK Flight Recorder (JFR) to allow for capturing CPU-time profiling information on Linux OS.

JDK 25

Build 26 of the JDK 25 early-access builds was made available this past week featuring updates from Build 25 that include fixes for various issues. More details on this release may be found in the release notes.

As per the JDK 25 release schedule, Mark Reinhold, Chief Architect, Java Platform Group at Oracle, formally declared that JDK 25 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 25. Therefore, the final set of 18 features for the GA release in September 2025 will include:

JDK 25 is designated to be the next long-term support (LTS) release following JDK 21, JDK 17, JDK 11 and JDK 8.

JDK 26

JSR 401, Java SE 26, was approved this past week to formally announce the four-member expert group for JDK 25, namely Simon Ritter (Azul Systems), Iris Clark (Oracle), Stephan Herrmann (Eclipse Foundation) and Christoph Langer (SAP SE). Clark will serve as the specification lead. Other notable dates at this time include a public review from November 2025 through February 2026 and the GA release in March 2026.

Build 0 and Build 1 of the JDK 26 early-access builds were also made available this past week featuring updates to resolve these initial issues. There are no release notes at this time.

For JDK 25, developers are encouraged to report bugs via the Java Bug Database.

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 11 and Jakarta EE 12, writing:

Time to start celebrating! All the materials for the release review of Jakarta EE 11 Platform have been provided, and as the Specification Committee mentor, I will have the privilege to start the release review ballot on Monday [June 9, 2025]. That means that the specification will be ready to be released on the 24th of June at the latest. I hope there will be cake…

With Jakarta EE 11 out the door, all focus from now on will be on Jakarta EE 12. The plan reviews have concluded and the platform project has started with the definition of project milestones. The plan is to define a Milestone 0, which will contain steps to ensure that the specification projects are ready to get going.

The road to Jakarta EE 11 included five milestone releases, the release of the Core Profile in December 2024, the release of Web Profile in April 2025, and a first release candidate of the Platform before its anticipated GA release in June 2025.

Eclipse JNoSQL

The release of Eclipse JNoSQL 1.1.8, the compatible implementation of the Jakarta NoSQL specification, features: support for Graph NoSQL database types with a new Graph API for Java via the Neo4j Cypher Query Language; and a new JNoSQL extension added to the collection of Quarkus extensions that support NoSQL databases such as MongoDB, ArangoDB, Cassandra and Hazelcast. Further details on how to implement the Graph API may be found in this LinkedIn blog post.

Spring Framework

Spring Cloud 2022.0.11, the eleventh maintenance release, codenamed Kilburn, ships with bug fixes and dependency upgrades to various sub-projects, notably: Spring Cloud Config 4.0.11 that provides a resolution for CVE-2025-22232; and Spring Cloud Gateway 4.0.12 that provides a resolution for CVE-2025-41235.

Hibernate

The release of Hibernate Search 8.0.0.Final delivers bug fixes; compatibility with Hibernate ORM 7.0.0.Final; improved integration with Hibernate Models; and the ability to request metrics aggregations in the Hibernate Search DSL. More details on this release may be found in the release notes.

Helidon

The release of Helidon 4.2.3 provides notable changes such as: the addition of a nosniff to the X-Content-Type-Options header in the output from the Metrics, Health Checks, OpenAPI and Config APIs to prevent browsers from scanning the content type; and a resolution to missing query parameters from the queryParams() method defined in the SecurityEnvironment class. Further details on this release may be found in the changelog.

Open Liberty

The release of version 25.0.0.6-beta of Open Liberty features: backporting compatibility of Microprofile Health 4.0 specification (mpHealth-4.0 feature) to the Java EE 7 and Java EE 8 applications; and the file-based health check mechanism as an alternative to the traditional /health endpoints, introduced in Open Liberty 25.0.0.4-beta, has been updated to include a new server.xml attribute, startupCheckInterval, and a corresponding environment variable, MP_HEALTH_STARTUP_CHECK_INTERVAL, that defaults to 100 ms if no configuration has been provided.

Grails

The fourth milestone release of Grails 7.0.0 features many bug fixes and improvements. The most significant changes include: a repackaging of the artifact names due to the migration over to the Apache Software Foundation as previously announced with the release of Grails 7.0.0-M3 in March 2025; and a refactor of the source code from multiple repositories (grails-views, gsp, etc.) into the grails-core repository. More details on this release may be found in the release notes.

JBang

JBang 0.126.0 provides bug fixes, improvements in documentation and a new features that changes ResourceRef from a class to an interface and introduces the LazyResourceRef and LazyResourceResolver classes that allows for lazy loading of resources when developers need to download original resources from remote locations. Further details on this release may be found in the release notes.

Project Crema

Alina Yurenko, Developer Advocate for GraalVM at Oracle Labs, has provided a sneak peek on a new project that Oracle Labs has been developing. This pull request introduces Project Crema as a project that will “lift Native Image’s default closed-world assumption by allowing dynamic loading and execution of classes at run time.

Project Crema adds a Java interpreter to the application layer built upon: Native Image Layers, also a new project that allows developers to “create native images that depend on a base image, or a chain of base images;” and support for the Java Debug Wire Protocol debugger.

Yurenko stated that developers should “stay tuned for updates!

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Java News Roundup: GlassFish, JEPs Targeted for JDK 25, TornadoVM, Hibernate Reactive, Spring Cloud

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

This week’s Java roundup for May 26th, 2025 features news highlighting: the twelfth milestone release of GlassFish 8.0; four JEPs targeted for JDK 25; introducing the GPULlama3.java project powered by TornadoVM; and GA releases of Hibernate Reactive 3.0, Spring Modulith 1.4 and Spring Cloud 2025.0.

OpenJDK

The following JEPs have been elevated from Proposed to Target to Targeted for JDK 25:

JEP 509, JFR CPU-Time Profiling (Experimental), has been elevated from Candidate to Proposed to Target for JDK 25. This experimental JEP proposes to enhance the JDK Flight Recorder (JFR) to allow for capturing CPU-time profiling information on Linux OS. The review is expected to conclude on Wednesday, June 4, 2025.

JDK 25

Build 25 of the JDK 25 early-access builds was made available this past week featuring updates from Build 24 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.

GlassFish

The twelfth maintenance release of GlassFish 8.0.0 passes the final Jakarta EE 11 Web Profile TCK and the proposed final Jakarta EE 11 Platform TCK. This release also delivers bug fixes and new features such as: improved class loader initialization and resource management with refinements to various classes and a new system property that reduces unnecessary copy-and-paste during the initialization process; and a more robust build with Maven elements, nadmin and asadmin, that resolves issues with spaces, especially on WindowsOS. More details on this release may be found in the release notes.

Similarly, GlassFish 7.0.25, the twenty-five maintenance release, delivers bug fixes and new features such as: the GlassFish classloaders are now parallel capable with formal names; and refinements to the GlassFish Java Util Logging Extension (GJULE) that fixed multiple race conditions and other logging issue. More details on this release may be found in the release notes.

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 11 and Jakarta EE 12, writing:

The long-awaited release of Jakarta EE 11 Platform is imminent. The pull request with the material for the release review has been created by the Jakarta EE Platform project. Eclipse GlassFish passes the TCK on both Java SE 17 and 21, so as soon as the results have been summarised and the Compatibility Certification Request created, the release review ballot can open.

As I mentioned last week in Hashtag Jakarta EE #282, all plans for the Jakarta EE 12 specifications have been approved. The next step for the Jakarta EE Platform project is to define a Milestone 0. This milestone will contain certain steps that are expected of the various specification projects to complete. These steps may include verification of CI Jobs and configuration to be able to publish to Maven Central after the end-of-life of OSSRH, and more.

The road to Jakarta EE 11 included five milestone releases, the release of the Core Profile in December 2024, the release of Web Profile in April 2025, and a first release candidate of the Platform before its anticipated GA release in June 2025.

TornadoVM

The TornadoVM team has introduced the GPULlama3.java project, an open-source GPU-accelerated Llama 3 inference powered by TornadoVM. Fully compiled with the Just-in-Time compiler, this project builds upon the Llama3.java project using TornadoVM for parallelism and hardware acceleration. This initial release also features GPU Acceleration on NVIDIA GPUs using both OpenCL and PTX backends; and support for the GPT-Generated Unified Format (GGUF). More details on this release may be found in the release notes.

Spring Framework

The release of Spring Modulith 1.4.0 delivers bug fixes, dependency upgrades and new features such as: a new method, detectNamedInterfaces(), added to the ApplicationModuleDetectionStrategy interface, to allow for improved detecting instances of the NamedInterfaces class; and a refined implementation of the ApplicationModuleInitializer interface that now verifies required static metadata exists to avoid creating an instance of the ApplicationModules class. More details on this release may be found in the release notes.

The release of Spring Cloud 2025.0.0, codenamed Northfields, features bug fixes and notable updates to sub-projects: Spring Cloud Kubernetes 3.3.0; Spring Cloud Function 4.3.0; Spring Cloud Stream 4.3.0; and Spring Cloud Circuit Breaker 3.3.0. One important breaking change, found in Spring Cloud Gateway, is the creation of new Module and Starter names and the depreciation of the old names. These new names “clarify the two styles of gateway (server or proxy exchange) as well as the two web stacks from Spring Framework (Web MCV and WebFlux).” A warning message will be entered into the logs upon use of the deprecated artifacts. This release is compatible with Spring Boot 3.5.0. More details on this release may be found in the release notes.

Along with Spring Cloud Gateway 4.3.0, versions 4.2.3, 4.1.8, 4.0.12 and 3.1.10 were also released to address CVE-2025-41235, Spring Cloud Gateway Server Forwards Headers from Untrusted Proxies, a vulnerability where the X-Forwarded-For and Forwarded headers were forwarded from untrusted proxies by the Spring Cloud Gateway Server. Forwarding these headers are now disabled by default with the ability to do so in a more safe way.

Hibernate

The release of Hibernate Reactive 3.0.0.Final, along with the first beta release of version 4.0.0, feature: compatibility with Hibernate ORM 7.0.0.Final, Vert.x 4.15.5 and Mutiny 2.9.0; and a change in the return type of the getResultType(), defined in the MutationSpecificationImpl class, from Void to null that resolved a validation error. Version 4.0.0.Beta1 features compatibility with Vert.x 5.0.0. More details on these releases may be found in the release notes for version 3.0.0 and version 4.0.0.Beta1.

The first release candidate of Hibernate Search 8.0.0 provides: bug fixes; compatibility with Hibernate ORM 7.0.0.Final; improved integration with Hibernate Models; and an adaptation to the changes in Search DSL API related to field references to make it easier to migrate from previous versions. More details on this release may be found in the list of changes.

Quarkus

The release of Quarkus 3.23.0 delivers bug fixes, dependency upgrades and new features such as: support for named persistence units and data sources with Hibernate Reactive; and the ability to establish authentication with an OIDC bearer token. More details on this release may be found in the release notes.

Groovy

The first beta release of Groovy 5.0.0 ships with bug fixes, dependency upgrades and new features such as: support for JEP 394, Pattern Matching for instanceof, delivered in JDK 16; and a new injectAll() method added to the DefaultGroovyMethods class that will inject values by iterating through a given iterable, but will return a list of all calculated values instead of just the final result. More details on this release may be found in the release notes.

JHipster

The release of JHipster Lite 1.32.0 provides bug fixes, improvements in documentation, some refactoring and new features such as: support for Docker Compose in Spring Boot; and improved testing code coverage with Cypress and Vitest. This release also aligns with Spring Boot 3.5.0. More details on this release may be found in the release notes.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Java at 30: A Retrospective on a Language That Has Made a Big Impact

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

Thirty years ago, on May 23rd, 1995, at the Sun World conference in San Francisco, California, Sun Microsystems formally introduced the Java programming language.

Based on C++, Sun characterized Java as a:

Simple, object-oriented, distributed, interpreted, robust, secure, architecture-neutral, portable, high-performance, multithreaded dynamic language.

James Gosling, the father of Java, had a more succinct definition:

Java is C++ without guns, knives, and clubs.

Originally named Oak (reportedly due to the oak tree outside Gosling’s office window), the creation of Java dates back to December 1990 as part of Sun’s Green Project. Gosling, Patrick Naughton and Mike Sheridan wanted a language for consumer applications with requirements that it be architecture agnostic and object-oriented. In September 1992, they introduced Star7, a personal digital assistant that included a TV remote control and TV guide, among other features, that was operated through a user interface on a 5-inch screen.

Duke, the official Java mascot, was also introduced as “the embodiment of the ‘agent’” in the Star7 user interface. Created and drawn by Joe Palrang, then with Sun Microsystems, Duke was characterized as a “friendly guy that followed you around and could help you out.

From applets to generics to lambdas to var to records and sealed classes to virtual threads; from Java EE to Jakarta EE; and from an average three year release cycle to one that is every six months, Java has significantly grown over these past 30 years having survived some low points in its history that included the reputation of the language of being “slow” and many developers having considered the language as “dead.”

Oracle’s latest initiative is based on a September 2022 blog post, Paving the on-ramp, by Brian Goetz, Java Language Architect at Oracle. After four rounds of preview, JEP 512: Compact Source Files and Instance Main Methods, finalizes this feature that aims to “evolve the Java language so that students can write their first programs without needing to understand language features designed for large programs.” More details on this feature may be found in this specification document by Gavin Bierman, Consulting Member of Technical Staff at Oracle.

Oracle marked this milestone with its 30th Birthday Event, hosted by Java Developer Advocates, Ana-Maria Mihalceanu, Billy Korando and Nicolai Parlog, along with Sharat Chander, Senior Director of Product Management and Developer Engagement at Oracle. This special six-hour event featured a variety of guests discussing a range of topics.

Oracle luminaries, Mark Reinhold, Chief Architect, Java Platform Group, Goetz, Bierman, Georges Saab, Senior Vice President, Software Development, Java Platform Group, and Stuart Marks, Consulting Member of Technical Staff (AKA Dr. Deprecator), discussed: the stewardship of Java; paving the on-ramp and lambdas; a Java language update; growing the language; and Java Collections, respectively.

Community advocates and activists, Bruno Souza, the Brazilian Java Man, Mohammed Aboullaite, Senior Backend Engineer at Spotify, and Laurentiu Spilca, Principal Development Consultant at Endava, discussed: the developer impact in the Java community; community outreach in Africa and the Middle East; and outreach to beginners through non-english content, respectively.

JetBrains Developer Advocates, Mala Gupta and Marit van Dijk, provided numerous IntelliJ IDEA tips and tricks that included how to use Junie, the IntelliJ IDEA coding assistant.

Heather Stephens, Head of Java in Education at Oracle, interviewed Sandy Czajka, Math and Computer Science Teacher at Riverside Brookfield High School in Illinois, on teaching Java at the high school level. Stephens later interviewed three students representing Stanford University, the University of Washington and the University of California, Berkeley, with their thoughts on Java.

Venkat Subramanian, President at Agile Developer, Inc., presented “The Hidden Innovations of Java,” which included topics such as invokedynamic, one of the five method invocation opcodes; lazy evaluations in streams; and smart indentation related to here documents, also known as heredocs.

Korando interviewed Gosling, who provided his own retrospective on creating Java and its current state.

Will Java be with us in another 30 years? Today’s young Java developers will likely be able to see if that comes true. However, with a vibrant Java community that has a passion for the language, Java may celebrate its 60th birthday in 2055.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Java News Roundup: Java Turns 30, Hibernate ORM 7.0, Embabel, jaz, Open Liberty, Eclipse DataGrid

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

This week’s Java roundup for May 19th, 2025 features news highlighting: Java’s 30th birthday; the release of Hibernate ORM 7.0 and Hibernate Validator 9.0; the May 2025 edition of Open Liberty; the first beta release of JobRunr 8.0; and the introduction of Embabel, jaz, and Eclipse DataGrid.

Happy 30th Birthday, Java!

On May 23rd, 1995 at the Sun World conference in San Francisco, California, Sun Microsystems formally introduced the Java programming language. Oracle marked this milestone with their 30th Birthday Event, hosted by Java Developer Advocates, Ana-Maria Mihalceanu, Billy Korando and Nicolai Parlog along with Sharat Chander, Senior Director, Product Management & Developer Engagement at Oracle. This special six-hour event featured many guests on a variety of topics. InfoQ will follow up with a more detailed news story.

OpenJDK

With Rampdown Phase One scheduled for June 5, 2025, the following JEPs have been elevated from Proposed to Target to Targeted for JDK 25:

Similarly, the following JEPs have been elevated from Candidate to Proposed to Target for JDK 25:

The reviews for the JEPs that have been Proposed to Target are expected to conclude by Tuesday, May 27, 2025.

Version 7.5.2 of the Regression Test Harness for the JDK, jtreg, has been released and ready for integration in the JDK. The most significant changes include: support for using the ${test.main.class} template to use the current class name for test actions; the ability to configure the default timeout value in jtreg tests via a properties file; and support for .jasm and .jcod files in patched Java modules. Further details on this release may be found in the release notes.

JDK 25

Build 24 of the JDK 25 early-access builds was made available this past week featuring updates from Build 23 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.

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 11 and Jakarta EE 12, writing:

The Jakarta EE 11 TCK is very close to being finalized, so it looks like we are on the path of getting the Jakarta EE 11 Platform release out the door in the middle of June.

The work with Jakarta EE 12 is on track according to the Jakarta EE 12 Release Plan. Plan reviews have been completed, and discussions right now are around which specifications to add (if any) to the Platform, and which to possibly deprecate.

The road to Jakarta EE 11 included five milestone releases, the release of the Core Profile in December 2024, the release of Web Profile in April 2025, and a first release candidate of the Platform before its anticipated GA release in June 2025.

Spring Framework

It was a busy week over at Spring as the various teams have delivered GA releases of Spring Boot, Spring Security, Spring Authorization Server, Spring Session, Spring Integration, Spring for GraphQL, Spring AI and Spring Web Services. Further details may be found in this InfoQ news story.

The Spring Data team has introduced their plan to lower the barrier to entry related to the different approaches with technologies (GraalVM, CRaC, CDS, etc.) that reduce application startup times. With the upcoming release of Spring Data 2025.1 (AKA version 4.0), repositories will be migrating to Ahead-of-Time compilation. This means they will be shifting all the “repository preparations that are done at application startup to build time.” This may be accomplished by setting the spring.aot.repositories.enabled property to true.

Microsoft Azure

Microsoft has introduced their new Azure Command Launcher for Java, named jaz, to address “suboptimal resource utilization in cloud-based deployments, where memory and CPU tend to be dedicated for application workloads (use of containers and VMs) but still require intelligent management to maximize efficiency and cost-effectiveness.” This means that instead of writing:

    
$ JAVA_OPTS="-XX:... several JVM tuning flags"
$ java $JAVA_OPTS -jar myapp.jar"
    

Developers can now write:

    
$ jaz -jar myapp.jar
    

jaz is currently in private preview and requests for access may be made here.

Open Liberty

IBM has released version 25.0.0.5 of Open Liberty featuring bug fixes and the ability for the MicroProfile Telemetry 2.0 (mpTelemetry-2.0) feature to collect and send Open Liberty HTTP access logs, such as export traces, metrics, and logs, to OpenTelemetry.

Quarkus

The Quarkus team has announced that Quarkus MCP Server 1.2.0 now supports streamable HTTP, along with the stdio and SSE transports, that make it possible to connect mobile applications and cloud services to MCP servers. While this is considered a full implementation, the Quarkus team plans future releases to include resumability and redelivery.

Hibernate

The release of Hibernate ORM 7.0.0.Final delivers new features such as: a new QuerySpecification interface that provides a common set of methods for all query specifications that allow for iterative, programmatic building of a query; and a migration from Hibernate Commons Annotations (HCANN) to the new Hibernate Models project for low-level processing of an application domain model. There is also support for the Jakarta Persistence 3.2 specification, the latest version targeted for Jakarta EE 11. More details on this release may be found in the release notes and the migration guide.

The release of Hibernate Validator 9.0.0.Final provides bug fixes, dependency upgrades and notable changes such as: new constraints, @KorRRN and @BitcoinAddress, annotations that check for a valid Korean resident registration number and a well-formed BTC (Bitcoin) Mainnet address, respectively; and a new BOM that provides dependency management for all of the published artifacts. This release is the compatible implementation of the Jakarta Validation 3.1 specification.

Details on both of these releases may be found in this blog post by Gavin King, Senior Distinguished Engineer at IBM and creator of Hibernate.

Embabel Agent Framework

Rod Johnson, former CEO at Atomist and father of the Spring Framework, has introduced the Embabel Agent Framework for the JVM written in Kotlin. As described by Johnson:

It introduces some ideas that I think are novel: a planning step using a non-LLM AI algorithm; and a rich domain model that can expose behavior as LLM tools as well as in Java or Kotlin code.

Embabel was built on Spring and offers a full MCP integration with Spring AI. InfoQ will follow up with a more detailed news story.

JobRunr

The first beta release of JobRunr 8.0.0 features: ahead-of-time scheduled recurring jobs where JobRunr schedules a recurring job as soon as the previous run is finished; and support for Kotlin serialization with a new KotlinxSerializationJsonMapper class, an implementation of the JsonMapper interface, for an improved experience when writing JobRunr applications in Kotlin. Further details on this release may be found in the release notes.

Eclipse DataStore

The Eclipse Foundation and Microstream have introduced a new open-source project, Eclipse DataGrid, designed to be a pure Java in-memory data processing layer for distributed EclipseStore applications. As a result, Microstream will open-source their in-memory data platform and transfer the codebase to Eclipse DataGrid. Features include: a distributed Java object graph model; seamless integration with the Java Streams API; and integration with Apache Lucene and Kubernetes.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Spring News Roundup: GA Releases of Spring Boot, Security, Auth Server, Integration, AI

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

There was a flurry of activity in the Spring ecosystem during the week of May 19th, 2025, highlighting GA releases of Spring Boot, Spring Security, Spring Authorization Server, Spring Session, Spring Integration, Spring for GraphQL, Spring AI and Spring Web Services.

Spring Boot

The release of Spring Boot 3.5.0 delivers bug fixes, improvements in documentation, dependency upgrades and new features such as: new annotations, @ServletRegistration and @FilterRegistration, to register instances of the Jakarta Servlet Servlet and Filter interfaces, respectively; and the ability to customize structured logging stack traces. More details on this release may be found in the release notes and this InfoQ news story.

Spring Security

The release of Spring Security 6.5.0 ships with bug fixes, dependency upgrades and new features such as: an implementation of the OAuth 2.0 Demonstrating Proof-of-Possession (DPoP) specification; and support for Micrometer context propagation to propagate authorization between an instance of the ThreadLocalAccessor interface and reactive operations. Further details on this release may be found in the release notes and what’s new page.

Similarly, the release of Spring Security 6.4.6 features a resolution to CVE-2025-41232, a vulnerability where Spring Security Aspects, under certain conditions, may not correctly locate method security annotations on private methods potentially leading to an authorization bypass. More details on this release may be found in the release notes.

Spring Authorization Server

The release of Spring Authorization Server 1.5.0 delivers bug fixes, dependency upgrades and new features such as: an implementation of the OAuth 2.0 Pushed Authorization Requests (PAR) specification and the aforementioned OAuth 2.0 Demonstrating Proof of Possession (DPoP) specification; and a replacement of the deprecated Spring Boot @MockBean annotation with the preferred Spring Framework @MockitoBean annotation where applicable. Further details on this release may be found in the release notes.

Spring for GraphQL

The release of Spring for GraphQL 1.4.0 ships with dependency upgrades and a new feature that adds a name field, of type String and annotated with @Nullable, to the DataLoader class for improved registration of data loaders. More details on this release may be found in the release notes.

Spring Session

The release of Spring Session 3.5.0 features many dependency upgrades and a resolution to a race condition and ClassCastException during integration testing using an instance of the SessionEventRegistry class due to the class assuming there is only one single event type for each session ID. Further details on this release may be found in the release notes.

Spring Integration

The release of Spring Integration 6.5.0 delivers bug fixes, dependency upgrades and new features such as: a new AbstractRecentFileListFilter class, an implementation of the FileListFilter interface, that accepts only recent files based on a provided age; and implementations of the Spring Framework MessageChannel interface now throw a MessageDispatchingException when an application context has not yet started or stopped at runtime. More details on this release may be found in the release notes and what’s new page.

Spring AI

The release of Spring AI 1.0.0 features: a ChatClient interface that supports 20 AI models with multi-modal inputs and an output with a structured response; an Advisors API that serves as an interceptor chain for developers to modify incoming prompts by injecting retrieval data and conversation memory; and full support for the Model Context Protocol. Further details on this release may be found in the release notes and this InfoQ news story. Developers can also learn how to create their first Spring AI 1.0 application in this user guide.

Spring Web Services

The release of Spring Web Services 4.1.0 delivers bug fixes, dependency upgrades and new features such as: support for configuring arbitrary options for Apache Web Services Security for Java (WSS4J) via the Wss4jSecurityInterceptor class; and the ability to create custom implementations of the MethodArgumentResolver and MethodReturnValueHandler interfaces. More details on this release may be found in the release notes.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Java News Roundup: LangChain4j 1.0, Vert.x 5.0, Spring Data 2025.0.0, Payara Platform, Hibernate

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

This week’s Java roundup for May 12th, 2025 features news highlighting: the GA releases of LangChain4j 1.0, Eclipse Vert.x 5.0 and Spring Data 2025.0.0; the May 2025 edition of the Payara Platform; second release candidates for Hibernate ORM 7.0 and Hibernate Reactive 3.0; and the first beta release of Hibernate Search 8.0.

OpenJDK

It was a busy week in the OpenJDK ecosystem during the week of May 12th, 2025 highlighting: two JEPs elevated from Proposed to Target to Targeted and four JEPs elevated from Candidate to Proposed to Target for JDK 25; and one JEP elevated from its JEP Draft to Candidate status. Two of these will be finalized after their respective rounds of preview. Further details may be found in this InfoQ news story.

JDK 25

Build 23 of the JDK 25 early-access builds was made available this past week featuring updates from Build 22 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.

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 11 and Jakarta EE 12, writing:

The release of the Jakarta EE 11 Platform specification is right around the corner. The issues with the service outage that affected our Jenkins CI instances are now resolved, and the work is progressing. The release date is expected to be in June.

All the plans for Jakarta EE 12 have been completed and approved (with the exception of Jakarta Activation, which will have its plan review started on Monday [May 19, 2025]).

Two new specifications, Jakarta Portlet 4.0 and Jakarta Portlet Bridge 7.0, have been migrated over from JSR 362 and JSR 378, respectively. They join the new Jakarta Query 1.0 specification.

The road to Jakarta EE 11 included four milestone releases, the release of the Core Profile in December 2024, the release of Web Profile in April 2025, and a fifth milestone and first release candidate of the Platform before its anticipated GA release in June 2025.

Spring Framework

The fifth milestone release of Spring Framework 7.0.0 delivers bug fixes, improvements in documentation, dependency upgrades and new features such as: support for the Jackson 3.0 release train that deprecate support for the Jackson 2.0 release train; and updates to the new new API versioning feature that allows for validating supported API versions against only explicitly configured ones. There was also a deprecation of the PropertyPlaceholderConfigurer and PreferencesPlaceholderConfigurer classes for removal. Further details on this release may be found in the release notes.

The release of Spring Framework 6.2.7 and 6.1.20 address CVE-2025-22233, a follow up to CVE-2024-38820, a vulnerability in which the toLowerCase() method, defined in the Java String class, had some Locale class-dependent exceptions that could potentially result in fields not being protected as expected. This was a result of the resolution for CVE-2022-22968 that made patterns of the disallowedFields field, defined in DataBinder class, case insensitive. In this latest CVE, cases where it is possible to bypass the checks for the disallowedFields field still exist.

The release of Spring Data 2025.0.0 ships with new features such as: support for the Vector interface and vector search in the MongoDB and Apache Cassandra databases; and support for the creation of indices using storage-attached indexing from Cassandra 5.0. The upcoming GA release of Spring Boot 3.5.0 will upgrade to Spring Data 2025.0.0. More details on this release may be found in the release notes.

The third milestone release of Spring Data 2025.1.0 ships with: support for JSpecify on sub-projects, such as Spring Data Commons, Spring Data JPA, Spring Data MongoDB, Spring Data LDAP, Spring Data Cassandra, Spring Data KeyValue, Spring Data Elasticsearch; and the ability to optimize Spring Data repositories at build time using the Spring AOT framework. Further details on this release may be found in the release notes.

The first release candidate of Spring AI 1.0.0 features “the final set of breaking changes, bug fixes, and new functionality before the stable release.” Key breaking changes include: renaming of fields, such as CHAT_MEMORY_RETRIEVE_SIZE_KEY to TOP_K, in the VectorStoreChatMemoryAdvisor class; and a standardization in the naming convention of the chat memory repository that now includes repository as a suffix throughout the codebase. The team is planning the GA release for Tuesday, May 20, 2025. More details on this release may be found in the upgrade notes and InfoQ will follow up with a more detailed news story of the GA release.

Payara

Payara has released their May 2025 edition of the Payara Platform that includes Community Edition 6.2025.5, Enterprise Edition 6.26.0 and Enterprise Edition 5.75.0. All three releases deliver: dependency upgrades; a new features that adds the capability to move the master password file to a user defined location; and a resolution to a NullPointerException upon attempting to retrieve the X.509 client certificate sent on an HTTP request using the jakarta.servlet.request.X509Certificate request attribute. Further details on these releases may be found in the release notes for Community Edition 6.2025.5 and Enterprise Edition 6.26.0 and Enterprise Edition 5.75.0.

Eclipse Vert.x

After eight release candidates, Eclipse Vert.x 5.0 has been released with new features such as: support for the Java Platform Module System (JPMS); a new VerticleBase class that replaces the deprecated AbstractVerticle class due to the removal of the callback asynchronous model in favor of the future model; and support for binary data in the OpenAI modules. More details on this release may be found in the release notes and list of deprecations and breaking changes.

LangChain4j

The formal release (along with the fifth beta release) of LangChain4j 1.0.0 delivers modules released under the release candidate, namely: langchain4j-core; langchain4j; langchain4j-http-client; langchain4j-http-client-jdk and langchain4j-open-ai with the the remaining modules still under the fifth beta release. Breaking changes include: a rename of the ChatLanguageModel and StreamingChatLanguageModel interfaces to ChatModel and StreamingChatModel, respectively; and the OpenAiStreamingChatModel, OpenAiStreamingLanguageModel and OpenAiModerationModel classes now map exceptions to align with the other OpenAI*Model classes. Further details on this release may be found in the release notes

Hibernate

The second release candidate of Hibernate ORM 7.0.0 delivers new features such as: a new QuerySpecification interface that provides a common set of methods for all query specifications that allow for iterative, programmatic building of a query; and a migration from Hibernate Commons Annotations (HCANN) to the new Hibernate Models project for low-level processing of an application domain model. There is also support for the Jakarta Persistence 3.2 specification, the latest version targeted for Jakarta EE 11. The team anticipates this as the only release candidate before the GA release. More details on this release may be found in the release notes and the migration guide.

The second release candidate of Hibernate Reactive 3.0.0 (along with version 2.4.8) provides notable changes such as: the removal of JReleaser configuration from the codebase as it will be now located inside the release scripts; and the addition of Java @Override annotations to places where it was missing. These versions upgrade to Hibernate ORM 7.0.0.CR2 and 6.6.15.Final, respectively. Further details on these releases may be found in the release notes for version 3.0.0.CR2 and version 2.4.8.

The first beta release of Hibernate Search 8.0.0 ships with: dependency upgrades; compatibility with the latest versions of Elasticsearch 9.0 and OpenSearch 3.0; and the first implementation of the type-safe field references and the Hibernate Search static metamodel generator. More details on this release may be found in the release notes.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


OpenJDK News Roundup: Key Derivation, Scoped Values, Compact Headers, JFR Method Timing & Tracing

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

There was a flurry of activity in the OpenJDK ecosystem during the week of May 12th, 2025, highlighting: two JEPs elevated from Proposed to Target to Targeted and four JEPs elevated from Candidate to Proposed to Target for JDK 25; and one JEP elevated from its JEP Draft to Candidate status. Two of these will be finalized after their respective rounds of preview.

JEPs Targeted for JDK 25

Two JEPs have been elevated from Proposed to Target to Targeted for JDK 25.

JEP 510, Key Derivation Function API, announced here, proposes to finalize this feature, without change, after one round of preview, namely: JEP 478, Key Derivation Function API (Preview), delivered in JDK 24. This features introduces an API for Key Derivation Functions (KDFs), cryptographic algorithms for deriving additional keys from a secret key and other data, with goals to: allow security providers to implement KDF algorithms in either Java or native code; and enable the use of KDFs in implementations of JEP 452, Key Encapsulation Mechanism.

JEP 506, Scoped Values, announced here, proposes to finalize this feature, without change, after four rounds of preview, namely: JEP 487, Scoped Values (Fourth Preview), delivered in JDK 24; JEP 481, Scoped Values (Third Preview), delivered in JDK 23; JEP 464, Scoped Values (Second Preview), delivered in JDK 22; JEP 446, Scoped Values (Preview), delivered in JDK 21; and JEP 429, Scoped Values (Incubator), delivered in JDK 20. Formerly known as Extent-Local Variables (Incubator), this feature enables sharing of immutable data within and across threads. This is preferred to thread-local variables, especially when using large numbers of virtual threads.

JEPs Proposed to Target for JDK 25

Four JEPs have been elevated from Candidate to Proposed to Target for JDK 25.

JEP 519, Compact Object Headers, has been elevated from its JEP Draft 8354672 to Candidate to Proposed to Target for JDK 25 (announced here and here, respectively).This JEP proposes to promote this feature from experimental to product. Inspired by Project Lilliput, this feature “reduce[s] the size of object headers in the HotSpot JVM from between 96 and 128 bits down to 64 bits on 64-bit architectures.” More details on JEP 450 may be found in this InfoQ news story.

JEP 515, Ahead-of-Time Method Profiling, announced here, proposes to improve application warmup time by “making method-execution profiles from a previous run of an application instantly available, when the HotSpot JVM starts.” This allows the JIT compiler to immediately generate native code upon application startup as opposed to waiting for profiles to be collected.

JEP 514, Ahead-of-Time Command-Line Ergonomics, announced here, proposes to simplify the process of creating ahead-of-time caches, as described in JEP 483, Ahead-of-Time Class Loading & Linking, that may accelerate Java application startup by “simplifying the commands required for common use cases.

JEP 507, Primitive Types in Patterns, instanceof, and switch (Third Preview), announced here, proposes a third round of preview, without change, to gain additional experience and feedback from the previous two rounds of preview, namely: JEP 488, Primitive Types in Patterns, instanceof, and switch (Second Preview), delivered in JDK 24; and JEP 455, Primitive Types in Patterns, instanceof, and switch (Preview), delivered in JDK 23. Under the auspices of Project Amber, this feature enhances pattern matching by allowing primitive type patterns in all pattern contexts, and extending instanceof and switch to work with all primitive types. More details may be found in this draft specification by Aggelos Biboudis, Principal Member of Technical Staff at Oracle.

Their respective reviews are expected to conclude by May 22, 2025.

New JEP Candidates

JEP 520, JFR Method Timing & Tracing, has been elevated from its JEP Draft 8328610 to Candidate status. This JEP proposes to extend the JDK Flight Recorder with facilities for method timing and tracing via the bytecode Instrumentation interface.

JDK 25 Feature Set (So Far) and Release Schedule

The JDK 25 release schedule, as approved by Mark Reinhold, Chief Architect, Java Platform Group at Oracle, is as follows:

  • Rampdown Phase One (fork from main line): June 5, 2025
  • Rampdown Phase Two: July 17, 2025
  • Initial Release Candidate: August 7, 2025
  • Final Release Candidate: August 21, 2025
  • General Availability: September 16, 2025

With less than three weeks before the scheduled Rampdown Phase One, where the feature set for JDK 25 will be frozen, these are 13 JEPs included in the feature set so far:

JDK 25 is designated to be the next long-term support (LTS) release following JDK 21, JDK 17, JDK 11 and JDK 8.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.


Java News Roundup: Gradle 8.14, JBash Jash, Hibernate, Open Liberty, Spring Cloud Data Flow

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

This week’s Java roundup for April 21st, 2025 features news highlighting: the GA release of Gradle 8.14; JBang introduces Jash, a Java library for shell scripts; the first release candidate of Hibernate ORM 7.0; the April edition of Open Liberty; and the end of open-source support for Spring Cloud Data Flow.

OpenJDK

Two JEPs have been elevated from Candidate to Proposed to Target for JDK 25, announced here and here, respectively, namely: JEP 512, Compact Source Files and Instance Main Methods, and JEP 511, Module Import Declarations. Their reviews are expected to conclude on Monday, April 28, 2025 and details for each JEP may be found in this InfoQ news story.

JEP 513, Flexible Constructor Bodies, has been elevated from its JEP Draft 8344702 to Candidate status. This JEP proposes to finalize this feature, without change, after three rounds of preview, namely: JEP 492, Flexible Constructor Bodies (Third Preview), delivered in JDK 24; JEP 482, Flexible Constructor Bodies (Second Preview), delivered in JDK 23; and JEP 447, Statements before super(…) (Preview), delivered in JDK 22. This feature allows statements that do not reference an instance being created to appear before the this() or super() calls in a constructor; and preserve existing safety and initialization guarantees for constructors. Gavin Bierman, Consulting Member of Technical Staff at Oracle, has provided an initial specification of this JEP for the Java community to review and provide feedback.

JDK 25

Build 20 of the JDK 25 early-access builds was made available this past week featuring updates from Build 19 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.

GlassFish

GlassFish 7.0.24, the twenty-fourth maintenance release, delivers bug fixes, dependency upgrades and new features such as: support for JDK 24; and faster deployment time with improved file discovery by using the walkFileTree() method defined in the Java Files class. More details on this release may be found in the release notes.

Spring Framework

It was a busy week over at Spring as the various teams have delivered first release candidates of Spring Boot, Spring Data 2025.0.0, Spring Security, Spring Authorization Server, Spring Session, Spring Integration, Spring Modulith and Spring Web Services. There were also second milestone releases of Spring Data 2025.1.0 and Spring for Apache Kafka and a first milestone release of Spring Vault. Further details may be found in this InfoQ news story.

The Spring Cloud Data Flow team has announced the end of open-source support for this project along with Spring Cloud Deployer and Spring Statemachine. The reasoning for this includes:

Spring Cloud Data Flow came out of the roots for Spring XD eight years ago for orchestrating both batch and streaming workloads and has shown great success with our customers over those years. However, in order to keep Spring Cloud Data Flow and related ecosystem projects going into the future in a way that is sustainable, we have made the decision to only release Spring Cloud Data Flow as a commercial offering.

Future releases, after versions 2.11.x, 2.9.x and 4.0.x, respectively, will only be made available to Tanzu Spring customers.

Open Liberty

IBM has released version 25.0.0.4 of Open Liberty featuring: support for Java 24; the ability to collect Liberty audit logs, via their Audit 2.0 feature, and send them to a configured OpenTelemetry exporter; and InstantOn support for the J2EE Management 1.1, Application Client Support for Server 1.0, Jakarta Application Client Support for Server 2.0 and Web Security Service 1.1 features. There were also resolutions to CVE-2025-25193 and CVE-2025-23184 that may cause a denial-of-service due to vulnerabilities from Netty versions up to and including 4.1.118.Final and Apache CXF versions before 3.5.10, 3.6.5 and 4.0.6, respectively.

Quarkus

Quarkus 3.21.4, the fourth maintenance release, ships with notable changes such as: a resolution to a StackOverflowError using a retry policy from the SmallRye implementation of MicroProfile Fault Tolerance specification; and the addition of a warning or error when attempting to create an instance of the HttpSecurityPolicy interface with a duplicated name. More details on this release may be found in the release notes.

Helidon

The release of Helidon 4.2.1 provides bug fixes and notable changes such as: the use of base units from the Timer interface for improved metrics reporting, in JSON format, in the toString() method defined in the MTimer class; and support for configurable buffering added to the TcpClientConnection class to to prevent small write chunks. More details on this release may be found in the release notes.

Hibernate

The first candidate release of Hibernate ORM 7.0.0 delivers new features such as: a new QuerySpecification interface that provides a common set of methods for all query specifications that allow for iterative, programmatic building of a query; and a migration from Hibernate Commons Annotations (HCANN) to the new Hibernate Models project for low-level processing of an application domain model. There is also support for the Jakarta Persistence 3.2 specification, the latest version targeted for Jakarta EE 11. The team anticipates this as the only release candidate before the GA release. More details on this release may be found in the release notes and the migration guide.

JBang

The JBang team has introduced Jash, a new Java library that provides a way to execute process or shell scripts that are “fluent, predictable and with a great developer experience.” Jash, pronounced “Jazz,” handles the behind-the-scenes tasks with the complexities of using multiple threads. More details on this initial release may be found in the release notes and InfoQ will follow up with a more detailed news story.

Gradle

After three release candidates, the release of Gradle 8.14 delivers new features such as: support for JDK 24; an introduction to lazy dependency configuration initialization for improved configuration performance and use of memory; and a new integrity check mode for improved debugging in the configuration cache. More details on this release may be found in the release notes.

About the Author

Subscribe for MMS Newsletter

By signing up, you will receive updates about our latest information.

  • This field is for validation purposes and should be left unchanged.