Java News Roundup: NetBeans 25, Payara Platform, Hibernate Reactive, Gradle

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

This week’s Java roundup for February 17th, 2025, features news highlighting: the release of Apache NetBeans 25; the February 2025 release of the Payara Platform; the second beta release of Hibernate Reactive 3.0; and the second release candidate of Gradle 8.13.

JDK 24

Build 36 remains the current build in the JDK 24 early-access builds. Further details may be found in the release notes.

JDK 25

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

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

Spring Framework

It was a busy week over at Spring as the various teams have delivered milestone releases of Spring Boot, Spring Security, Spring Authorization Server, Spring Integration, Spring AI and Spring AMQP. There were also point releases of Spring Framework, Spring for GraphQL,Spring Session, Spring for Apache Kafka and Spring for Apache Pulsar. Further details may be found in this InfoQ news story.

Payara

Payara has released their February 2025 edition of the Payara Platform that includes Community Edition 6.2025.2, Enterprise Edition 6.23.0 and Enterprise Edition 5.72.0. All three releases provide critical bug fixes, component upgrades and a new feature that ensures Docker images shutdown gracefully to allow applications to cleanly terminate without data loss or corruption.

A notable critical issue was an IllegalStateException due to Spring Boot 3 applications failing to deploy to Payara Server 6. This was resolved by ensuring proper initialization of Contexts and Dependency Injection (CDI) during deployment. More details on these releases may be found in the release notes for Community Edition 6.2025.2 and Enterprise Edition 6.23.0 and Enterprise Edition 5.72.0.

Apache Software Foundation

The release of Apache NetBeans 25 delivers many improvements that include: enhancements in support for Java code completion for sealed types in switch statements; improved behaviour with the CloneableEditorSupport class such that it will no longer break additional instances of the Java DocumentFilter class which may be attached to an instance of the Java AbstractDocument class. Further details on this release may be found in the release notes.

The release of Apache Tomcat 9.0.100 provides a resolution to a regression with the release of Tomcat 9.0.99 that caused an error while starting Tomcat on JDK 17. The regression was a mitigation for CVE-2024-56337, a Time-of-Check-Time-of-Use vulnerability in which a write-enabled default servlet for a case insensitive file system can bypass Tomcat’s case sensitivity checks and cause an uploaded file to be treated as a JSP leading to a remote code execution. More details on this release may be found in the release notes.

Hibernate

The second beta release of Hibernate Reactive 3.0.0 ships with resolutions to notable issue such as: a ClassCastException from an instance of the ReactiveEmbeddableForeignKeyResultImpl class due to use of the Hibernate ORM EmbeddableInitializerImpl class instead of its reactive version, namely the ReactiveEmbeddableInitializerImpl class; and a NullPointerException when retrieving an entity using a Jakarta Persistence @ManyToOne composite table with additional properties in the Jakarta Persistence @IdClass annotation. This release is compatible with Hibernate ORM 7.0.0.Beta4, and an upgrade to Vert.x SQL client 4.5.13. Further details on this release may be found in the changelog.

JobRunr

The release of JobRunr 7.4.1 ships with bug fixes and new features such as: the ability to switch between different date styles in job table views, e.g., the timestamp when an instance of the Job class was enqueued; and an enhanced display for more complex job parameters on the job details page. More details on this release may be found in the release notes.

Gradle

The second release candidate of Gradle 8.13.0 introduces a new auto-provisioning utility that automatically downloads a JVM required by the Gradle Daemon. Other notable enhancements include: an explicit Scala version configuration for the Scala Plugin to automatically resolve required Scala toolchain dependencies; and refined millisecond precision in JUnit XML test event timestamps. Further 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: JDK 24-RC1, JDK Mission Control, Spring, Hibernate, Vert.x, JHipster, Gradle

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

This week’s Java roundup for February 10th, 2025 features news highlighting: the first release candidate of JDK 24; JDK Mission Control 9.1.0; milestone releases of Spring Framework 7.0, Spring Data 2025.0.0 and Hibernate 7.0; release candidates of Vert.x 5.0.0 and Gradle 8.13.0; and JHipster 8.9.0.

OpenJDK

The release of JDK Mission Control 9.1.0 provides bug fixes and improvements such as: the ability to use the custom JFR event types, i.e., those extending the Java Event class, in the JFR Writer API followed by registering those types; and the ability to use primitive types in converters. More details on this release may be found in the list of issues.

JDK 24

Build 36 remains the current build in the JDK 24 early-access builds. Further details may be found in the release notes.

As per the JDK 24 release schedule, Mark Reinhold, Chief Architect, Java Platform Group at Oracle, formally declared that JDK 24 has entered its first release candidate as there are no unresolved P1 bugs in Build 36. The anticipated GA release is scheduled for March 18, 2025 and will include a final set of 24 features. More details on these features and predictions for JDK 25 may be found in this InfoQ news story.

JDK 25

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

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

Spring Framework

The second milestone release of Spring Framework 7.0.0 delivers new features such as: improvements to the equals() method, defined in the AnnotatedMethod class, and the HandlerMethod to resolve failed Cross-Origin Resource Sharing (CORS) configuration lookups; and a refinement of the GenericApplicationContext class that adds nullability using the JSpecify @Nullable annotation to the constructorArgs parameter listed in the overloaded registerBean() method. More details on this release may be found in the release notes.

Similarly, versions 6.2.3 and 6.1.17 of Spring Framework have also been released to provide new features such as: improvements in MVC XML configuration that resolved an issue where the handler mapping, using an instance of the the AntPathMatcher class, instead used an instance of the PathPatternParser class; and a change to the ProblemDetails class to implement the Java Serializable interface so that it may be used in distributed environments. These versions will be included in the upcoming releases of Spring Boot 3.4.3 (and 3.5.0-M2) and 3.3.9, respectively. Further details on this release may be found in the release notes for version 6.2.3 and version 6.1.17.

The first milestone release of Spring Data 2025.0.0 ships with new features such as: support for vector search for MongoDB and Cassandra via MongoDB Atlas and Cassandra Vector Search; and a new Vector data type that allows for abstracting underlying values within a domain model that simplifies the declaration, portability and default storage options. More details on this release may be found in the release notes.

Similarly, Spring Data 2024.1.3 and 2024.0.9, both service releases, ship with bug fixes, dependency upgrades and and respective dependency upgrades to sub-projects such as: Spring Data Commons 3.4.3 and 3.3.9; Spring Data MongoDB 4.4.3 and 4.3.9; Spring Data Elasticsearch 5.4.3 and 5.3.9; and Spring Data Neo4j 7.4.3 and 7.3.9. These versions will be included in the upcoming releases of Spring Boot and 3.4.3 and 3.3.9, respectively.

The release of Spring Tools 4.28.1 provides: a properly signed Eclipse Foundation distribution for WindowOS; and a resolution to an unknown publisher error upon opening the executable for Spring Tool Suite in Windows 11. Further details on this release may be found in the release notes.

Open Liberty

IBM has released version 25.0.0.2-beta of Open Liberty features the ability to configure the MicroProfile Telemetry 2.0 feature, mpTelemetry-2.0, to send Liberty audit logs to the OpenTelemetry collector. As a result, the audit logs may be managed with the same solutions with other Liberty log sources.

Micronaut

The Micronaut Foundation has released version 4.7.6 of the Micronaut Framework featuring Micronaut Core 4.7.14, bug fixes and a patch update to the Micronaut Oracle Cloud module. This version also provides an upgrade to Netty 4.1.118, a patch release that addresses CVE-2025-24970, a vulnerability in Netty versions 4.1.91.Final through 4.1.117.Final, where a specially crafted packet, received via an instance of the SslHandler class, doesn’t correctly handle validation of such a packet, in all cases, which can lead to a native crash. More details on this release may be found in the release notes.

Hibernate

The fourth beta release of Hibernate ORM 7.0.0 features: a migration to the Jakarta Persistence 3.2 specification, the latest version targeted for Jakarta EE 11; a baseline of JDK 17; improved domain model validations; and a migration from Hibernate Commons Annotations (HCANN) to the new Hibernate Models project for low-level processing of an application domain model. Further details on this release may be found in the release notes and the migration guide.

The release of Hibernate Reactive 2.4.5.Final features compatibility with Hibernate ORM 6.6.7.Final and provides resolutions to issues: a Hibernate ORM PropertyAccessException when creating a new object via the persist() method, defined in the Session interface, with an entity having bidirectional one-to-one relationships in Hibernate Reactive with Panache; and the doReactiveUpdate() method, defined in the ReactiveUpdateRowsCoordinatorOneToMany class, ignoring the return value of the deleteRows() method, defined in the same class. More details on this release may be found in the release notes.

Eclipse Vert.x

The fifth release candidate of Eclipse Vert.x 5.0 delivers notable changes such as: the removal of deprecated classes – ServiceAuthInterceptor and ProxyHelper – along with the two of the overloaded addInterceptor() methods defined in the ServiceBinder class; and support for the Java Platform Module System (JPMS). Further details on this release may be found in the release notes and deprecations and breaking changes.

Micrometer

The second milestone release of Micrometer Metrics 1.15.0 delivers bug fixes, improvements in documentation, dependency upgrades and new features such as: the removal of special handling of HTTP status codes 404, Not Found, and 301, Moved Permanently, from OkHttp client instrumentation; and a deprecation of the SignalFxMeterRegistry class (step meter) in favor of the OtlpMeterRegistry class (push meter). More details on these releases may be found in the release notes.

The second milestone release of Micrometer Tracing 1.5.0 provides dependency upgrades and features a deprecation of the ArrayListSpanProcessor class in favor of the Open Telemetry InMemorySpanExporter class. Further details on this release may be found in the release notes.

Piranha Cloud

The release of Piranha 25.2.0 delivers many dependency upgrades, improvements in documentation and notable changes such as: removal of the GlassFish 7.x and Tomcat 10.x compatibility extensions; and the ability to establish a file upload size in the FileUploadExtension, FileUploadMultiPart, FileUploadMultiPartInitializer and FileUploadMultiPartManager classes. More details on this release may be found in the release notes, documentation and issue tracker.

Project Reactor

Project Reactor 2024.0.3, the third maintenance release, providing dependency upgrades to reactor-core 3.7.3, reactor-netty 1.2.3, reactor-pool 1.1.2. There was also a realignment to version 2024.0.3 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 changelog.

Similarly, Project Reactor 2023.0.15, the fifteenth maintenance release, provides dependency upgrades to reactor-core 3.6.14, reactor-netty 1.1.27 and reactor-pool 1.0.10. There was also a realignment to version 2023.0.15 with the reactor-addons 3.5.2, reactor-kotlin-extensions 1.2.3 and reactor-kafka 1.3.23 artifacts that remain unchanged. More details on this release may be found in the changelog.

JHipster

The release of JHipster 8.9.0 features: dependency upgrades to Spring Boot 3.4.2, Node 22.13.1, Gradle 8.12.1, Angular 19.0.6 and Typescript 5.7.3; and support for plain time fields (Java LocalTime class) without it being tied to a date to the JHipster Domain Language (JDL). Further details on this release may be found in the release notes.

Gradle

The first release candidate of Gradle 8.13.0 introduces a new auto-provisioning utility that automatically downloads a JVM required by the Gradle Daemon. Other notable enhancements include: an explicit Scala version configuration for the Scala Plugin to automatically resolve required Scala toolchain dependencies; and refined millisecond precision in JUnit XML test event timestamps. 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: Java Operator SDK 5.0, Open Liberty, Quarkus MCP, Vert.x, JBang, TornadoVM

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

This week’s Java roundup for January 27th, 2025, features news highlighting: the GA release of Java Operator SDK 5.0; the January 2025 release of Open Liberty; an implementation of Model Context Protocol in Quarkus; the fourth milestone release of Vert.x 5.0; and point releases of JBang 0.123.0 and TornadoVM 1.0.10.

JDK 24

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

JDK 25

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

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

TornadoVM

TornadoVM 1.0.10 features bug fixes, compatibility enhancements, and improvements: a new command-line option, -Dtornado.spirv.runtimes, to select individual (Level Zero and/or OpenCL) runtimes for dispatching and managing SPIR-V; and support for multiplication of matrices using the HalfFloat type. Further details on this release may be found in the release notes.

Spring Framework

The first milestone release of Spring Cloud 2025.0.0, codenamed Northfields, features bug fixes and notable updates to sub-projects: Spring Cloud Kubernetes 3.3.0-M1; Spring Cloud Function 4.3.0-M1; Spring Cloud Stream 4.3.0-M1; and Spring Cloud Circuit Breaker 3.3.0-M1. This release is based upon Spring Boot 3.5.0-M1. More details on this release may be found in the release notes.

Open Liberty

IBM has released version 25.0.0.1 of Open Liberty featuring updated Open Liberty features – Batch API (batch-1.0), Jakarta Batch 2.0 (batch-2.0), Jakarta Batch 2.1 (batch-2.1), Java Connector Architecture Security Inflow 1.0 (jcaInboundSecurity-1.0), Jakarta Connectors Inbound Security 2.0 (connectorsInboundSecurity-2.0) – to support InstantOn; and a more simplified web module migration with the introduction of the webModuleClassPathLoader configuration attribute for the enterpriseApplication element that controls what class loader is used for the JARs that are referenced by a web module Class-Path attribute.

Quarkus

The release of Quarkus 3.18.0 provides bug fixes, dependency upgrades and notable changes such as: an integration of Micrometer to the WebSockets Next extension; support for a JWT bearer client authentication in the OpenID Connect and OpenID Connect Client extensions using client assertions loaded from the filesystem; and a new extension, OpenID Connect Redis Token State Manager to store an OIDC connect token state in a Redis cache datasource. Further details on this release may be found in the changelog.

The Quarkus team has also introduced their own implementation of the Model Context Protocol (MCP) protocol featuring three servers so far: JDBC, Filesystem and JavaFX. These servers have been tested with Claude for Desktop, Model Context Protocol CLI and Goose clients. The team recommends using JBang to use these servers for ease of use, but isn’t required.

Apache Software Foundation

Maintaining alignment with Quarkus, the release of Camel Quarkus 3.18.0, composed of Camel 4.9.0 and Quarkus 3.18.0, provides resolutions to notable issues such as: the Kamelet extension unable to serialize objects from an instance of the ClasspathResolver, an inner class defined in the DefaultResourceResolvers, to bytecode; and the Debezium BOM adversely affects the unit tests from the Cassandra CQL extension driver since the release of Debezium 1.19.2.Final. More details on this release may be found in the release notes.

Infinispan

The release of Infinispan 15.1.5 features dependency upgrades and resolutions to issues such as: a NullPointerException due to a concurrent removal with the DELETE statement causing the cache::removeAsync statement to return null; and an instance of the HotRodUpgradeContainerSSLTest class crashes the test suite due to an instance of the PersistenceManagerImpl class failing to start. Further details on this release may be found in the release notes.

Java Operator SDK

The release of Java Operator SDK 5.0.0 ships with continuous improvements on new features such as: the Kubernetes Server-Side Apply elevated to a first-class citizen with a default approach for patching the status resource; and a change in responsibility with the EventSource interface to monitor the resources and handles accessing the cached resources, filtering, and additional capabilities that was once maintained by the ResourceEventSource subinterface. More details on this release may be found in the release notes.

JBang

JBang 0.123.0 provides bug fixes, improvements in documentation and new features: the options, such as add-open and exports, in a bundled MANIFEST.MF file are now honored; and the addition of Cursor, the AI code editor, in the list of supported IDEs. Further details on this release may be found in the release notes.

Eclipse Vert.x

The fourth release candidate of Eclipse Vert.x 5.0 delivers notable changes such as: the removal of deprecated classes – ServiceAuthInterceptor and ProxyHelper – along with the two of the overloaded addInterceptor() methods defined in the ServiceBinder class; and support for the Java Platform Module System (JPMS). More details on this release may be found in the release notes and deprecations and breaking changes.

JHipster

Versions 1.26.0 and 1.25.0 of JHipster Lite (announced here and here, respectively) ship with bug fixes, dependency upgrades and new features/enhancements such as: new datasource modules for PostgreSQL, MariaDB, MySQL and MSSQL; and a restructured state ranking system for modules. Version 1.26.0 also represents the 100th release of JHipster Lite. Further details on these releases may be found in the release notes for version 1.26.0 and version 1.25.0.

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: Milestone Releases of Boot, Framework, Data, Security, Integration, Modulith

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 January 20th, 2025, highlighting milestone releases of: Spring Boot, Spring Framework, Spring Data, Spring Security, Spring Integration and Spring Modulith.

The Spring team has also announced that they will begin releasing milestones and release candidates of Spring projects, with GA releases planned for November 2025, to Maven Central.

Spring Boot

The first milestone release of Spring Boot 3.5.0 delivers bug fixes, improvements in documentation, dependency upgrades and new features such as: support for the Spring Framework TaskDecorator interface for scheduled tasks; and support for the Vibur DBCP connection pool to the DataSourceBuilder class. More details on this release may be found in the release notes.

Versions 3.4.2 and 3.3.8 of Spring Boot (announced here and here, respectively) ship with improvements in documentation, dependency upgrades and resolutions to notable issues such as: a NullPointerException from an instance of the GraylogExtendedLogFormatProperties class when only the logging.structured.gelf.host property is specified; and the addition of handling the TypeNotPresentException from the BindableRuntimeHintsRegistrar class. Further details on these releases may be found in the release notes for version 3.4.2 and version 3.3.8.

Spring Framework

The first milestone release of Spring Framework 7.0.0 ships with improvements in documentation, dependency upgrades and new features such as: a redefinition and optimization of the KotlinDetector class that includes removal of methods that are no longer useful; and allow for multiple executions of the ClientHttpRequestInterceptor interface. This release also provides an initial null safety strategy with JSpecify by refining over a dozen modules and retiring the annotations defined in the org.springframework.lang package. More details on this release may be found in the release notes.

Spring Data

The first milestone release of Spring Data 2025.1.0 features: baseline minimal requirements to the upcoming GA releases of Jakarta EE 11 (featuring Hibernate ORM 7.0 and Hibernate Validator 9.0 as compatible implementations) and Kotlin 2.x; and a major revision of Spring Data JPA that includes the use of the Java Persistence Query Language (JPQL) for derived queries. The Spring data team anticipates a GA release in November 2025. Further details on this release may be found in the release notes.

Spring Security

The first milestone release of Spring Security 6.5.0 provides bug fixes, dependency upgrades and new features such as: Support for Expression Templates by adding the @AuthenticationPrincipal and @CurrentSecurityContext annotations; and the addition of an inner class, ClientSettings, defined in the ClientRegistration class, that provides a boolean field, requireProofKey, for use in enabling Proof Key for Code Exchange (PKCE). More details on this release may be found in the release notes.

Spring Integration

The first milestone release of Spring Integration 6.5.0 delivers one bug fix, dependency upgrades and new features such as: the addition of a locking strategy to the AbstractMessageGroupStore class; and an optional flag added to the discardChannel element, defined in the @Aggregator annotation, to discard a whole group a messages instead of individual ones. Further details on this release may be found in the release notes and what’s new page.

Spring Modulith

The first milestone release of Spring Modulith 1.4.0 delivers bug fixes, dependency upgrades and new features such as: a new DefaultModulithObservationConvention class to support the Micrometer Observation API; and a new strategy to programmatically detect instances of the NamedInterface class. More details on this release may be found in the release notes.

Versions 1.3.2 and 1.2.8 of Spring Modulith have also been released featuring dependency upgrades to Spring Boot 3.4.2 and 3.3.8, respectively and resolutions to issues: a BeanCreationException due to an error in creating bean with the name, repositoryEntityController, from an instance of the RepositoryEntityController class; and an IllegalArgumentException in generation of AsciiDoc for the Spring Framework @EventListener annotation without parameters. Further details on these releases may be found in the release notes for version 1.3.2 and version 1.2.8.

Spring AI

The Spring AI MCP team has released version 0.6.0 to provide new features such as: a new protocol version negotiation between MCP client and server; and configurable SSE endpoints that includes backward compatibility with default /sse endpoint. Deprecations in this release include: the using(ClientMcpTransport) method, defined in the McpClient interface, in favor of methods, sync(ClientMcpTransport) and async(ClientMcpTransport); the Builder inner class, also defined in the McpClient interface, in favor of new builder patterns; and the constructor with non-reactive types, defined in the McpAsyncClient class. More details on this release may be found in the release notes.

Spring AMQP

The release of Spring AMQP 3.2.2 provides two bug fixes, dependency upgrades and one new feature that resolves a deprecation warning in the RestTemplateNodeLocator class by removing what the team characterized as a “bogus” non-public RestTemplateHolder class that was accidentally exposed by the public RestTemplateNodeLocator. The logic for this class was also restructured to directly expose an instance of the Spring Framework RestTemplate class. 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.2 provides improvements in documentation, dependency upgrades and resolutions to issues such as: a memory leak from the metric, spring.kafka.listener.active, due to an increasing number of active tasks from instances of the Micrometer DefaultLongTaskTimer class on a Kafka observation, that are never garbage collected; and exceptions due to the observation scope from an instance of the KafkaMessageListenerContainer class not being closed in the catch clause of an exception handler.

The team has announced that development of Apache Kafka 4.0.0 will soon be underway. It will be built upon upcoming releases of Kafka Client 4.0.0 and Spring Framework 7.0.0, and be compatible with Spring Boot 4.0.0. More details on this release may be found in the release notes.

Spring for Apache Pulsar

Versions 1.2.2 and 1.1.8 of Spring for Apache Pulsar have been released featuring improvements in documentation, dependency upgrades and resolution to a PulsarBatchListenerFailedException when a listener consumes the same message after it is sent to the Dead Letter Topic (DLT) topic. These versions are included in Spring Boot 3.4.2 and 3.3.8, respectively. Further details on these releases may be found in the release notes for version 1.2.2 and version 1.1.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: JDK 24 in Rampdown Phase Two, Spring Framework, JobRunr, Commonhaus Foundation

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

This week’s Java roundup for January 13th, 2025, features news highlighting: JDK 24 in Rampdown Phase Two; Spring Framework 6.2.2; JobRunr 7.4.0; Micrometer Metrics 1.15.0-M1 and Micrometer Tracing 1.5.0-M1; and Infinispan joins the Commonhaus Foundation.

JDK 24

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

As per the JDK 24 release schedule, Mark Reinhold, chief architect, Java Platform Group at Oracle, formally declared that JDK 24 has entered Rampdown Phase Two. This means that: no additional JEPs will be added for JDK 24; and there will be a focus on the P1 and P2 bugs which can be fixed via the Fix-Request Process. Late enhancements are still possible, with the Late-Enhancement Request Process, but Reinhold states that “the bar is now extraordinarily high.” The final set of 24 features for the GA release in March 2025 will include:

JDK 25

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

For JDK 24 and 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, writing:

The latest news about the refactoring of the TCK for Jakarta EE 11 is that the team is getting closer to releasing Jakarta EE Web Profile 11. There are just a small number of tests remaining to be refactored, and the rewriting of the TCK User Guide has started.

The discussions around Jakarta EE 12 are gaining momentum. Check out the EE12 labeled issues in the Jakarta EE Platform GitHub Issue Tracker. Feel free to add new issues or contribute to the discussions of those already created.

You can also join the Jakarta EE Future Directions interest group and participate in high-level discussions about how the platform should evolve. If you’re not able to join the bi-weekly calls (calendar), you can always join the mailing list and participate there as well.

The road to Jakarta EE 11 included four milestone releases, the release of Core Profile in December 2024, and the potential for release candidates as necessary before the GA releases of the Platform and Web Profile in 1Q2025.

Spring Framework

The release of Spring Framework 6.2.2 delivers bug fixes, improvements in documentation, dependency upgrades and new features such as: a change to the BeanOverrideHandler class to track only qualifier annotations to align with the Spring Boot QualifierDefinition class; and elevate the @MockitoBean annotation to support both fields and types to align with the now-deprecated Spring Boot @MockBean annotation. This version will be included in the upcoming releases of Spring Boot 3.4.2 and 3.5.0-M1. More details on this release may be found in the release notes.

Spring Data 2024.1.2 and 2024.0.8, both service releases, ship with bug fixes, dependency upgrades and and respective dependency upgrades to sub-projects such as: Spring Data Commons 3.4.2 and 3.3.8; Spring Data MongoDB 4.4.2 and 4.3.8; Spring Data Elasticsearch 5.4.2 and 5.3.8; and Spring Data Neo4j 7.4.2 and 7.3.8. These versions will be included in the upcoming releases of Spring Boot and 3.4.2 and 3.3.8.

The Spring AI MCP team has released version 0.5.0 to provide new features such as: enhancements to the transport layer with a new HttpServletSseServerTransport class and a blocking queue-based implementation of the Spring Framework SseEmitter.SseEventBuilder interface; and a new Bill of Materials. More details on this release may be found in the release notes.

Quarkus

Quarkus 3.17.7, the sixth maintenance release (3.17.1 was skipped due to a regression), features notable changes such as: a resolution to an issue when a method is annotated with @PermissionsAllowed with multiple values, the parameters in the @PermissionChecker annotation is not correctly matched; and a switch to execute the MongoDB Connection Health Check on startup instead of when the application tries to store the first record in the database. More details on this release may be found in the changelog.

Micrometer

The first milestone release of Micrometer Metrics 1.15.0 provides bug fixes, improvements in documentation, dependency upgrades and new features such as: use of the failWithActualExpectedAndMessage(), defined in the AssertJ AbstractAssert class, where possible; and a consistent use of the Java String methods, toLowerCase() and toUpperCase(), with the Java Locale.ROOT for improved security. Further details on these releases may be found in the release notes.

Similarly, versions 1.14.3 and 1.13.10 of Micrometer Metrics ship with dependency upgrades and resolutions to notable issues such as: a NullPointerException when applying aspects on methods that return a CompletableFuture; and a performance regression from the remove() method, defined in the MeterRegistry class, with a significant amount of registered meters. More details on these releases may be found in the release notes for version 1.14.3 and version 1.13.10.

The first milestone release of Micrometer Tracing 1.5.0 delivers bug fixes, dependency upgrades and new features: avoid creating superfluous copies of instances of the OtelSpan class; and the addition of local service name setting and retrieving for FinishedSpan to complement the remote service name. More details on this release may be found in the release notes.

Similarly, versions 1.4.2 and 1.3.8 of Micrometer Tracing provide: dependency upgrades to Micrometer Metrics 1.14.3 and 1.13.10, respectively, and a resolution to a NullPointerException when an instance of the OtelTraceContextBuilder class set the parentId and sampled fields as @Nullable to align with the same fields in the TraceContext interface. More details on these releases may be found in the release notes for version 1.4.2 and version 1.3.8.

Piranha Cloud

The release of Piranha 25.1.0 delivers many dependency upgrades and notable changes such as: a new SecurityConstraint class to complement their own SecurityManager API; and a resolution to an instance of the GrizzlyHttpServer class to not indefinitely suspend on asynchronous requests. Further details on this release may be found in the release notes, documentation and issue tracker.

Project Reactor

Project Reactor 2024.0.2, the second maintenance release, providing dependency upgrades to reactor-core 3.7.2, reactor-netty 1.2.2, reactor-pool 1.1.1. There was also a realignment to version 2024.0.2 with the reactor-addons 3.5.2, reactor-kotlin-extensions 1.2.3 and reactor-kafka 1.3.23 artifacts that remain unchanged. More details on this release may be found in the changelog.

Similarly, Project Reactor 2023.0.14, the fourteenth maintenance release, provides dependency upgrades to reactor-pool 1.0.9 and reactor-netty 1.1.26. There was also a realignment to version 2023.0.12 with the reactor-core 3.6.13, 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 changelog.

JobRunr

The release of JobRunr 7.4.0 ships with: support for JDK 24, Spring Boot 3.4 and Kotlin 2.1. Enhancements include: wait for all instances of the RecurringJobPostProcessor class to finish before starting Spring Boot and the BackgroundJobServer class; and ensure that the correct casing is used in all SQL scripts. There was also a resolution to skip collection validation if an instance of the MongoDBStorageProvider class is configured with the NO_VALIDATE option. More details on this release may be found in the release notes.

OpenXava

The release of OpenXava 7.4.5 provides bug fixes, improvements in documentation, dependency upgrades and enhancements such as: a new filterByContentInAnyProperty() method, added to the Tab class, to filter a string value in any column; and a new isJavaIdentifier() method, added to the Strings utility class, to determine the existence of a Java identifier. More details on this release may be found in the release notes.

Commonhaus Foundation

The Commonhaus Foundation, a non-profit organization dedicated to the sustainability of open source libraries and frameworks, has announced that Infinispan has joined the foundation this past week. In a blog post published in mid-January 2025, Tristan Tarrant, senior principal software engineer at Red Hat and Infinispan project lead, described their rationale to transition to the foundation, writing:

Commonhaus just ticks all the right boxes for us: its lightweight governance is ideal. We get all the benefits of being part of an awesome foundation, with all the benefits of running the project on our own terms.

Commonhaus is also the home to a number of “friend projects”: Hibernate, Quarkus, Debezium, Jackson all play a key role in our software and it’s great that we share a “common home.”

Other notable projects that have joined the foundation include: JReleaser, JBang, OpenRewrite, SDKMAN, EasyMock, Objenesis and Feign.

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: WildFly 35, Jakarta EE 11 Update, Java Operator SDK 5.0-RC1

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

This week’s Java roundup for January 6th, 2025 features news highlighting: the release of WildFly 35; Java Operator SDK 5.0-RC1; Spring Framework 2023.0.5; Micronaut 4.7.4; Quarkus 3.17.6; Arquillian 1.9.3; and an update on Jakarta EE 11.

JDK 24

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

JDK 25

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

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

Jakarta EE 11

In his weekly Hashtag Jakarta EE blog, Ivar Grimstad, Jakarta EE Developer Advocate at the Eclipse Foundation, provided an update on Jakarta EE 11, writing:

Jakarta EE Core Profile 11 was released in December. You can check out all the details on the updated Jakarta EE Core Profile 11 specification page. The next out will be Jakarta EE Web Profile 11, which will be released as soon as there is a compatible implementation that passes the refactored TCK. The Jakarta EE Platform 11 will follow after the Web Profile.

The road to Jakarta EE 11 included four milestone releases, the release of Core Profile with the potential for release candidates as necessary before the GA releases of the Platform and Web Profile in 1Q2025.

Spring Framework

Spring Cloud 2023.0.5, codenamed Leyton, has been released featuring bug fixes and notable updates to sub-projects: Spring Cloud Kubernetes 3.1.5; Spring Cloud Function 4.1.5; Spring Cloud Stream 4.1.5; and Spring Cloud Circuit Breaker 3.1.4. This release is based upon Spring Boot 3.4.0. Further details on this release may be found in the release notes.

WildFly

The release of WildFly 3.5 primarily focuses on support for MicroProfile 7.0 and the updated specifications, namely: MicroProfile Telemetry 2.0; MicroProfile Open API 4.0; MicroProfile Rest Client 4.0; and MicroProfile Fault Tolerance 4.1. Along with bug fixes and dependency upgrades, other enhancements include: a refactor of the WildFlyOpenTelemetryConfig class as it had become too large and unmanageable; and the addition of profiles in the source code base for a “cleaner organization of the build and testsuite execution so the base and expansion parts can be independently built, and, more importantly, can be independently tested.” More details on this release may be found in the release notes. InfoQ will follow up with a more detailed news story.

Micronaut

The Micronaut Foundation has released version 4.7.4 of the Micronaut Framework featuring Micronaut Core 4.7.11, bug fixes and patch updates to modules: Micronaut Serialization and Micronaut Discovery Client. Further details on this release may be found in the release notes.

Quarkus

Quarkus 3.17.6, the fifth maintenance release (3.17.1 was skipped due to a regression), ships with bug fixes, dependency upgrades and notable resolutions to issues such as: a NullPointerException caused by the mappingToNames() method, defined in the BuildTimeConfigurationReader class, using the SmallRye Config PropertyName class to map with mapping names; and bootstrapping an application crashes using the Dev Console. More details on this release may be found in the changelog.

Java Operator SDK

The first release candidate of Java Operator SDK 5.0.0 ships with continuous improvements on new features such as: the Kubernetes Server-Side Apply elevated to a first-class citizen with a default approach for patching the status resource; and a change in responsibility with the EventSource interface to monitor the resources and handles accessing the cached resources, filtering, and additional capabilities that was once maintained by the ResourceEventSource subinterface. Further details on this release may be found in the changelog.

Arquillian

A week after the release of version 1.9.2, Arquillian 1.9.3 provides dependency upgrades and improvements to the ExceptionProxy class to produce a meaningful stack trace when the exception class is missing on a client. 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: Spring AI 1.0-M5, LangChain4j 1.0-Alpha1, Grails 7.0-M1, JHipster 8.8

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

This week’s Java roundup for December 23rd, 2024 features news highlighting: the fifth milestone release of Spring AI 1.0; the first milestone release of Grails 7.0; the first alpha release of LangChain4j 1.0; and the release of JHipster 8.8.

JDK 24

Build 29 remains the current build in the JDK 24 early-access builds. Further details on this release may be found in the release notes.

JDK 25

Similarly, Build 3 remains the current build in the JDK 25 early-access builds. More details on this release may be found in the release notes.

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

Spring Framework

Ten days after introducing the experimental Spring AI MCP, a Java SDK implementation of the Model Context Protocol (MCP), to the Java community, the Spring AI team has released a version 0.2.0 milestone. This initial release features: a simplified McpClient interface such that listing operations no longer require a cursor parameter; and a new SseServerTransport class, a server-side implementation of the MCP HTTP with the SSE transport specification. Breaking changes include a rename of some modules for improved consistency. Further details on this release may be found in the release notes.

The fifth milestone release of Spring AI 1.0 delivers: incubating support for the Model Context Protocol; support for models such as Zhipuai Embedding-3 and Pixtral; and support for vector stores such as MariaDB and Azure Cosmos DB. There were also breaking changes that include moving the MilvusVectorStore class from the org.springframework.ai.vectorstore package to the org.springframework.ai.vectorstore.milvus package. The Spring AI team plans a sixth milestone release in January 2025 followed by one release candidate before the final GA release.

TornadoVM

The release of TornadoVM 1.0.9 ships with bug fixes and improvements such as: support for the RISC-V 64 CPU port to run OpenCL with vector instructions for the RVV 1.0 board; support for int, double, long and short three-dimensional arrays by creating new matrix classes; and the addition of a helper menu for the tornado launcher script when no arguments are passed. More details on this release may be found in the release notes.

Micronaut

The Micronaut Foundation has released version 4.7.3 of the Micronaut Framework featuring Micronaut Core 4.7.10, bug fixes and patch updates to modules: Micronaut Logging, Micronaut Flyway, Micronaut Liquibase Micronaut Oracle Cloud and Micronaut Pulsar. Further details on this release may be found in the release notes.

Grails

The first milestone release of Grails 7.0.0 delivers bug fixes, dependency upgrades and notable changes such as: a minimal version of JDK 17, Spring Framework 6.0, Spring Boot 3.0 and Groovy 4.0; and an update to the PublishGuide class to use the Gradle AntBuilder class instead of the deprecated Groovy AntBuilder class. More details on this release may be found in the release notes.

LangChain4j

After more than 18 months of development, the first alpha release of LangChain4j 1.0.0 features: updated ChatLanguageModel and StreamingChatLanguageModel interfaces to support additional use cases and new features; and an initial implementation of the Model Context Protocol. The team plans a GA release in Q12025. Further details on this release may be found in the release notes.

Apache Software Foundation

The Apache Camel team has announced that the version 3.0 release train has reached end-of-life. The recently released Apache Camel 3.22.3, will be the final one. Developers are encouraged to upgrade to the 4.0 release train via this migration guide.

JHipster

The release of JHipster 8.8.0 features: upgrades to Spring Boot 3.4, Angular 19 and Gradle 8.12; experimental support for esbuild in Angular; and improved CSRF token handling for single page applications. More details on this release may be found in the release notes.

Similarly, the release of JHipster Lite 1.24.0 ships with an upgrade to Spring Boot 3.4.1 and new features/enhancements such as: a new module for configuring a Liquibase linter; and the addition of metadata to the preprocessor to resolve a ESLint cache error. Further 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.


Spring News Roundup: Release Candidates for Spring Boot, Security, Auth Server, Modulith

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 October 21st, 2024, highlighting first release candidates of: Spring Boot, Spring Security, Spring Authorization Server, Spring Integration, Spring Modulith, Spring Batch, Spring AMQP, Spring for Apache Kafka and Spring for Apache Pulsar.

Spring Boot

The first release candidate of Spring Boot 3.4.0 delivers bug fixes, improvements in documentation, dependency upgrades and many new features such as: improved support for the Spring Framework ClientHttpRequestFactory interface with new builders and additional customization; and support for ARM and x86 architectures in the Paketo Buildpack for Spring Boot. More details on this release may be found in the release notes.

Similarly, the release of Spring Boot 3.3.5 and 3.2.11 provide improvements in documentation, dependency upgrades and resolutions to notable bug fixes such as: removal of the printing the stack trace to the error stream from the driverClassIsLoadable() method, defined in the DataSourceProperties class, upon exception as it was determined to be unnecessary; and an instance of the ArtemisConnectionFactoryFactory class failing when building a native image. More details on this release may be found in the release notes for version 3.3.5 and version 3.2.11.

Spring Framework

In conjunction with the release of Spring Boot 3.4.0-RC1, the third release candidate of Spring Framework 6.2.0 ships with bug fixes, improvements in documentation and new features such as: removal of the proxyTargetAware attribute in the new @MockitoSpyBean annotation as it was deemed unnecessary; and a refactor of the retrieve() method, defined in the RestClient interface, to execute a request and extract the response as necessary, eliminating the need for two method calls in this workflow. More details on this release may be found in the release notes.

Spring Security

The first release candidate of Spring Security 6.4.0 delivers bug fixes, dependency upgrades and new features such as: support for Passkeys; a new authorize() method that replaces the now-deprecated check() method, defined in the AuthorizationManager interface, that returns an instance of the AuthorizationResult interface; and a refactored publishAuthorizationEvent(Supplier, T, AuthorizationDecision) method, defined in the AuthorizationEventPublisher interface, that now accepts an instance of the AuthorizationResult interface, replacing the AuthorizationDecision class in the parameter list. More details on this release may be found in the release notes and what’s new page.

Similarly, versions 6.3.4, 6.2.7 and 5.8.15 of Spring Security have been released featuring build updates, dependency upgrades and resolutions to notable bug fixes such as: erasures of credentials on custom instances of the AuthenticationManager interface despite the eraseCredentialsAfterAuthentication field being set to false; and methods annotated with @PostFilter are processed twice by the PostFilterAuthorizationMethodInterceptor class. More details on these releases may be found in the release notes for version 6.3.4, version 6.2.7 and version 5.8.15.

Spring Authorization Server

The first release candidate of Spring Authorization Server 1.4.0 provides dependency upgrades and new features such as: a replacement of the DelegatingAuthenticationConverter class with the similar DelegatingAuthenticationConverter class defined in Spring Security; and a simplification of configuring a dedicated authorization server using the with() method, defined in the Spring Security HttpSecurity class. More details on this release may be found in the release notes.

Similarly, versions 1.3.3 and 1.2.7 of Spring Authorization Server have been released featuring dependency upgrades and a fix for more efficiently registering AOT contributions with subclasses defined from the JdbcOAuth2AuthorizationService class. More details on these releases may be found in the release notes for version 1.3.3 and version 1.2.7.

Spring for GraphQL

Versions 1.3.3 and 1.2.9 of Spring for GraphQL have been released ship with bug fixes, improvements in documentation, dependency upgrades and new features such as: the ability to set a timeout value for server-side events; and methods annotated with @BatchMapping should pass the localContext field, defined in the GraphQL for Java DataFetcherResult class, from an instance of the BatchLoaderEnvironment class.More details on these releases may be found in the release notes for version 1.3.3 and version 1.2.9.

Spring Integration

The first release candidate of Spring Integration 6.4.0 delivers bug fixes, improvements in documentation, dependency upgrades and new features such as: an instance of the RedisLockRegistry class may now be configured via an instance of the Spring Framework TaskScheduler interface for renewal of automatic locks in the store; and a migration of Python scripts to support Python 3 and GraalPy. More details on this release may be found in the release notes and what’s new page.

Similarly, versions 6.3.5 and 6.2.10 of Spring Integration have been released with bug fixes, dependency upgrades and new features: the addition of a new property, idleBetweenTries, to the aforementioned RedisLockRegistry class to specify a duration to sleep in between lock attempts; and improved support for the JUnit @Nested annotation when using the @SpringIntegrationTest annotation. More details on this release may be found in the release notes for version 6.3.5 and version 6.2.10.

Spring Modulith

The first release candidate of Spring Modulith 1.3.0 provides bug fixes, improvements in documentation, dependency upgrades and new features such as: support for the Oracle database type in the JDBC event publication registry; and support for the MariaDB database driver. More details on this release may be found in the release notes.

Similarly, versions 1.2.5 and 1.1.10 of Spring Modulith have been released featuring bug fixes, dependency upgrades and various improvements in the reference documentation. More details on this release may be found in the release notes for version 1.2.5 and version 1.1.10.

Spring Batch

The first release candidate of Spring Batch 5.2.0 ships with bug fixes, improvements in documentation, dependency upgrades and a new feature that allows the CompositeItemReader class to be subclassed to allow generics to be less strict. More details on this release may be found in the release notes.

Spring AMQP

The first release candidate of Spring AMQP 3.2.0 provides improvements in documentation, dependency upgrades and new features such as: additional Open Telemetry semantic tags that are exposed via an instance of the RabbitTemplate class and @RabbitListener annotation; and a new method, getBeforePublishPostProcessors(), in the RabbitTemplate class that complements the existing addBeforePublishPostProcessors() method that allows developers to dynamically access and modify these processors. More details on this release may be found in the release notes.

Spring for Apache Kafka

The first release candidate of Spring for Apache Kafka 3.3.0 delivers bug fixes, improvements in documentation, dependency upgrades and new features such as: a new KafkaMetricsSupport class for improved metrics support; and the ability to use the Java @Override annotation on the createAdmin() method, defined in the KafkaAdmin class, to use another type of class implementing the Apache Kafka Admin interface. This release also provides full integration with Spring Boot 3.4.0-RC1. More details on this release may be found in the release notes.

Spring for Apache Pulsar

The first release candidate for Spring for Apache Pulsar 1.2.0 provides dependency upgrades and improvements such as: ensure that all uses of the toLowerCase() and toUpperCase() methods, defined in the Java String class, specify an instance of a Java Locale class with a default of Locale.ROOT; and a new log to warn developers when lambda producer customizers are used for increased awareness. More details on this release may be found in the release notes.

Similarly, versions 1.1.5 and 1.0.11 of Spring for Apache Pulsar have been released featuring dependency upgrades and the aforementioned use of the toLowerCase() and toUpperCase() methods. More details on this release may be found in the release notes for version 1.1.5 and version 1.0.11.

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: Stream Gatherers, Scoped Values, Generational Shenandoah, ZGC Non-Gen Mode

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 October 21st, 2024, highlighting: JEPs that have been Targeted and Proposed to Target for JDK 24; and drafts that have been promoted to Candidate status. JEP 485, Stream Gatherers, is the fifth JEP confirmed for JDK 24. Four JEPs have been Proposed to Target and will be under review during the week of October 28, 2024.

Targeted

After its review had concluded, JEP 485, Stream Gatherers, has been promoted from Proposed to Target to Targeted for JDK 24. This JEP proposes to finalize this feature after two rounds of preview, namely: JEP 473: Stream Gatherers (Second Preview), delivered in JDK 23; and JEP 461, Stream Gatherers (Preview), delivered in JDK 22. This feature was designed to enhance the Stream API to support custom intermediate operations that will “allow stream pipelines to transform data in ways that are not easily achievable with the existing built-in intermediate operations.” More details on this JEP may be found in the original design document and this InfoQ news story.

Proposed to Target

JEP 490, ZGC: Remove the Non-Generational Mode, has been promoted from Candidate to Proposed to Target for JDK 24. This JEP proposes to remove the non-generational mode of the Z Garbage Collector (ZGC). The generational mode is now the default as per JEP 474, ZGC: Generational Mode by Default, delivered in JDK 23. By removing the non-generational mode of ZGC, it eliminates the need to maintain two modes and improves development time of new features for the generational mode. The review is expected to conclude on October 29, 2024.

JEP 487, Scoped Values (Fourth Preview), has been promoted from Candidate to Proposed to Target for JDK 24. Formerly known as Extent-Local Variables (Incubator), proposes a fourth preview, with one change, in order to gain additional experience and feedback from one round of incubation and three rounds of preview, namely: 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. 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. The only change from the previous preview is the removal of the callWhere() and runWhere() methods from the ScopedValue class that leaves the API fluent. The ability to use one or more bound scoped values is accomplished via the call() and run() methods defined in the ScopedValue.Carrier class. The review is expected to conclude on October 30, 2024.

JEP 478, Key Derivation Function API (Preview), has been promoted from Candidate to Proposed to Target for JDK 24. This JEP proposes to introduce 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. The review is expected to conclude on October 31, 2024.

JEP 404, Generational Shenandoah (Experimental), has been promoted from Candidate to Proposed to Target for JDK 24. Originally targeted for JDK 21, JEP 404 was officially removed from the final feature set due to the “risks identified during the review process and the lack of time available to perform the thorough review that such a large contribution of code requires.” The Shenandoah team decided to “deliver the best Generational Shenandoah that they can” and target a future release. The review is expected to conclude on October 30, 2024.

New JEP Candidates

JEP 495, Simple Source Files and Instance Main Methods (Fourth Preview), has been promoted from its JEP Draft 8335984 to Candidate status. This JEP proposes a fourth preview without change (except for a second name change), after three previous rounds of preview, namely: JEP 477, Implicitly Declared Classes and Instance Main Methods (Third Preview), delivered in JDK 23; JEP 463, Implicitly Declared Classes and Instance Main Methods (Second Preview), delivered in JDK 22; and JEP 445, Unnamed Classes and Instance Main Methods (Preview), delivered in JDK 21. This feature aims to “evolve the Java language so that students can write their first programs without needing to understand language features designed for large programs.” This JEP moves forward the September 2022 blog post, Paving the on-ramp, by Brian Goetz, Java language architect at Oracle. Gavin Bierman, consulting member of technical staff at Oracle, has published the first draft of the specification document for review by the Java community. More details on JEP 445 may be found in this InfoQ news story.

JEP 494, Module Import Declarations (Second Preview), has been promoted from its JEP Draft 8335987 to Candidate status.This JEP proposes a second preview after the first round of preview, namely: JEP 476, Module Import Declarations (Preview), delivered in JDK 23. This feature will enhance the Java programming language with the ability to succinctly import all of the packages exported by a module with a goal to simplify the reuse of modular libraries without requiring to import code to be in a module itself. Changes from the first preview include: remove the restriction that a module is not allowed to declare transitive dependencies on the java.base module; revise the declaration of the java.se module to transitively require the java.base module; and allow type-import-on-demand declarations to shadow module import declarations. These changes mean that importing the java.se module will import the entire Java SE API on demand.

JEP 493, Linking Run-Time Images without JMODs, has been promoted from its JEP Draft 8333799 to Candidate status. This JEP proposes to “reduce the size of the JDK by approximately 25% by enabling the jlink tool to create custom run-time images without using the JDK’s JMOD files.” This feature must explicitly be enabled upon building the JDK. Developers are now allowed to link a run-time image from their local modules regardless where those modules exist.

JDK 24 Release Schedule

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

  • Rampdown Phase One (fork from main line): December 5, 2024
  • Rampdown Phase Two: January 16, 2025
  • Initial Release Candidate: February 6, 2025
  • Final Release Candidate: February 20, 2025
  • General Availability: March 18, 2025

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

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: WildFly 34, Stream Gatherers, Oracle CPU, Quarkiverse Release Process

MMS Founder
MMS Michael Redlich

Article originally posted on InfoQ. Visit InfoQ

This week’s Java roundup for October 14th, 2024, features news highlighting: the release of WildFly 34; JEP 485, Stream Gatherers, proposed to target for JDK 24; Oracle Critical Patch Update for October 2024; and a potential leak in the SmallRye and Quarkiverse release processes.

OpenJDK

JEP 485, Stream Gatherers, has been promoted from Candidate to Proposed to Target for JDK 24. This JEP proposes to finalize this feature after two rounds of preview, namely: JEP 473: Stream Gatherers (Second Preview), delivered in JDK 23; and JEP 461, Stream Gatherers (Preview), delivered in JDK 22. This feature was designed to enhance the Stream API to support custom intermediate operations that will “allow stream pipelines to transform data in ways that are not easily achievable with the existing built-in intermediate operations.” More details on this JEP may be found in the original design document and this InfoQ news story. The review is expected to conclude on October 23, 2024.

Oracle has released versions 23.0.1, 21.0.5, 17.0.13, 11.0.25, and 8u431 of the JDK as part of the quarterly Critical Patch Update Advisory for October 2024. More details on this release may be found in the release notes for version 23.0.1, version 21.0.5, version 17.0.13, version 11.0.25 and version 8u431.

Version 7.5.0 of the Regression Test Harness for the JDK, jtreg, has been released and ready for integration in the JDK. The most significant changes include: the restoration of the jtdiff tool; and support for a LIBRARY.properties file located in the directory specified in the @library tag and read when jtreg compiles classes in that library. There was also a dependency upgrade to JUnit 5.11.0. Further details on this release may be found in the release notes.

JDK 24

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

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

Jakarta EE 11

In his weekly Hashtag Jakarta EE blog, Ivar Grimstad, Jakarta EE developer advocate at the Eclipse Foundation, provided an update on Jakarta EE 11, writing:

GlassFish now passes 84% of the tests in the refactored TCK for Jakarta EE 11. The remaining tests are mainly related to the Application Client Container. The Jakarta EE Platform Project is proposing to deprecate the Application Container in Jakarta EE 12. There are ongoing discussions about how much importance these tests should be given to Jakarta EE 11.

The Jakarta EE 11 Core Profile TCK has been staged, and both Open Liberty and WildFly are passing (or very close to passing) it. So it looks like we will be able to release Jakarta EE 11 Core Profile ahead of Jakarta EE 11 Platform and Jakarta EE 11 Web Profile.

The road to Jakarta EE 11 included four milestone releases with the potential for release candidates as necessary before the GA release in 4Q2024.

BellSoft

Concurrent with Oracle’s Critical Patch Update (CPU) for October 2024, BellSoft has released CPU patches for versions 21.0.4.0.1, 17.0.12.0.1, 11.0.24.0.1, 8u431, 7u441 and 6u441 of Liberica JDK, their downstream distribution of OpenJDK, to address this list of CVEs. In addition, Patch Set Update (PSU) versions 23.0.1, 21.0.5, 17.0.13, 11.0.25 and 8u432, containing CPU and non-critical fixes, have also been released.

With an overall total of 1169 fixes and backports, BellSoft states that they have participated in eliminating 18 issues in all releases.

Spring Framework

The second release candidate of Spring Framework 6.2.0 delivers bug fixes, improvements in documentation, dependency upgrades and many new features such as: a rename of the OverrideMetadata class to BeanOverrideHandler to align with the existing naming convention of the other classes, interfaces and annotations defined in the org.springframework.test.context.bean.override package; and the addition of the messageConverters() method to the RestClient.Builder interface to allow setting converters of the RestClient interface without initializing the default one. This version will be included in the upcoming release of Spring Boot 3.4.0-RC1. More details on this release may be found in the release notes.

Similarly, the release of version 6.1.14 of Spring Framework also provides bug fixes, improvements in documentation, dependency upgrades and new features such as: the removal of support for relative paths in the ResourceHandlerUtils class that eliminates security issues; and ensure proper exception handling from the isCorsRequest() method, defined in the CorsUtils class, upon encountering a malformed Origin header. This version will be included in the upcoming releases of Spring Boot and 3.3.5 and 3.2.11. More details on this release may be found in the release notes.

The Spring Framework team has also disclosed two Common Vulnerabilities and Exposures (CVEs):

  • CVE-2024-38819, a path traversal vulnerability in the Spring Web MVC and Spring WebFlux functional web frameworks in which an attacker can create a malicious HTTP request to obtain any file on the file system that is also accessible to the process on the running Spring application. This CVE is follow up from CVE-2024-38816, Path Traversal Vulnerability in Functional Web Frameworks, that used different malicious input.
  • 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 is a result of the resolution for CVE-2022-22968 that made patterns of the disallowedFields field, defined in DataBinder class, case insensitive.

These CVEs affect Spring Framework versions 5.3.0 – 5.3.40, 6.0.0 – 6.0.24 and 6.1.0 – 6.1.13.

The first release candidate of Spring Data 2024.1.0 delivers expanded support for Spring Data Value Expressions where property-placeholders may be leveraged in repository query methods annotated with @Query. There were also updates to sub-projects such as: Spring Data Commons 3.4.0-RC1, Spring Data MongoDB 4.4.0-RC1, Spring Data Elasticsearch 5.4.0-RC1 and Spring Data Neo4j 7.4.0-RC1. More details on this release may be found in the release notes.

Similarly, the release of Spring Data 2024.0.5 and 2023.1.11 ship with bug fixes and respective dependency upgrades to sub-projects such as: Spring Data Commons 3.3.5 and 3.2.11; Spring Data MongoDB 4.3.5 and 4.2.11; Spring Data Elasticsearch 5.3.5 and 5.2.11; and Spring Data Neo4j 7.3.5 and 7.2.11. These versions will be included in the upcoming releases of Spring Boot and 3.3.5 and 3.2.11.

WildFly

The release of WildFly 34 primarily focuses on WildFly Preview, a technical preview variant of the WildFly server. New features include: support for Jakarta Data 1.0, MicroProfile Rest Client 4.0 and MicroProfile Telemetry 2.0; a new Bill of Materials for WildFly Preview; and four new system properties (backlog, connection-high-water, connection-low-water and no-request-timeout) for configuration in the HTTP management interface. More details on this release may be found in the release notes. InfoQ will follow up with a more detailed news story.

Quarkus

The Quarkus team has disclosed that they recently discovered a potential leak in their Quarkiverse and SmallRye release processes and reported that there was no damage.

Clement Escoffier, Distinguished Engineer at Red Hat, summarized the issue, writing:

We’ve uncovered a security flaw in the release process for Quarkiverse and SmallRye that could have allowed malicious actors to impersonate projects and publish compromised artifacts.

We’ve implemented a new, more secure release pipeline to address this. If you’re a maintainer, you’ve received a pull request to migrate to the new process. Quarkus itself is not affected by this issue, only SmallRye and Quarkiverse.

As a result, they have implemented a more secure release process and wanted to share the details with the Java community. InfoQ will follow up with a more detailed news story.

Micrometer

The first release candidate of Micrometer Metrics 1.14.0 provides bug fixes, improvements in documentation, dependency upgrades and new features such as: expose an instance of the TestObservationRegistry class via the assertThat() method from the AssertJ Assertions class; expand metrics to include virtual threads data; and improved performance with the initialization of the Tags class from already sorted array of unique tags. More details on this release may be found in the release notes.

Similarly, versions 1.13.6 and 1.12.11 of Micrometer Metrics also feature bug fixes, improvements in documentation and a new feature that improves the memory usage of the StepBucketHistogram class by eliminating an internal field of the buckets that can be acquired from an instance of the FixedBoundaryHistogram class when needed. Further details on these releases may be found in the release notes for version 1.13.6 and version 1.12.11.

The first release candidate of Micrometer Tracing 1.4.0 ships with dependency upgrades and new features: support for list values in tags in the Span and SpanCustomizer interfaces; and make the OtelSpan class public instead of private to eliminate use of reflection to act upon the underlying OpenTelemetry Span interface. More details on this release may be found in the release notes.

Similarly, version 1.3.5 and 1.2.11 of Micrometer Tracing 1.4.0 simply provide dependency upgrades. Further details on these releases may be found in the release notes for version 1.3.5 and version 1.2.11.

Project Reactor

The first release candidate of Project Reactor 2024.0.0 provides dependency upgrades to reactor-core 3.7.0-RC1, reactor-netty 1.2.0-RC1, reactor-pool 1.1.0-RC1, reactor-addons 3.6.0-RC1, reactor-kotlin-extensions 1.3.0-RC1 and reactor-kafka 1.4.0-RC1. Based on the Spring Calendar, it is anticipated that the GA version of Project 2024.0.0 will be released in November 2024. Further details on this release may be found in the changelog.

Next, Project Reactor 2023.0.11, the eleventh maintenance release, provides dependency upgrades to reactor-core 3.6.11 and reactor-netty 1.1.23. There was also a realignment to version 2023.0.11 with the reactor-pool 1.0.8, reactor-addons 3.5.2, reactor-kotlin-extensions 1.2.3 and reactor-kafka 1.3.23 artifacts that remain unchanged. More details on this release may be found in the changelog.

Piranha Cloud

The release of Piranha 24.10.0 delivers bug fixes and notable changes such as: ensure that an instance of the Eclipse Jersey InjecteeSkippingAnalyzer class is installed when needed; and use of the Java PrintStream class or the isWriterAcquired() method, defined in the in the DefaultWebApplicationResponse class, in the DefaultServletRequestDispatcher class as a response to a top-level exception. Further details on this release may be found in their documentation and issue tracker.

Apache Software Foundation

The third milestone release of Apache TomEE 10.0.0 provides bugs fixes, dependency upgrades and new features such as: an improved import of data sources and entity managers that obsoletes the use of the ImportSql class; and a new RequestNotActiveException class, that replaces throwing a NullPointerException, when an instance of a Jakarta Servlet HttpServletRequest is invoked on a thread with no active servlet request. More details on this release may be found in the release notes.

JobRunr

The release of JobRunr 7.3.1 provides new features such as: an instance of the JobDetails class is now cacheable when injecting an interface instead of an implementation; and an enhanced JobRunr Dashboard that includes tips for diagnosing severe JobRunr exceptions for improved clarity of notifications. Further details on this release may be found in the release notes.

Keycloak

Keycloak 26.0.1 has been released with bug fixes and enhancements: a clarification of the behavior of multiple versions of Keycloak Operator installed in the same cluster operator; and improved error logging during a transaction commit. More details on this release may be found in the release notes.

JDKUpdater

Version 14.0.59+79 of JDKUpdater, a new utility that provides developers the ability to keep track of updates related to builds of OpenJDK and GraalVM. Introduced in mid-March by Gerrit Grunwald, principal engineer at Azul, this release resolves an issue with the calculation of the next update and the next release date of the JDK. More details on this release may be found in the release notes.

Gradle

The first release candidate of Gradle 8.11.0 delivers new features such as: improved performance in the configuration cache with an opt-in parallel loading and storing of cache entries; the C++ and Swift plugins now compatible with the configuration cache; and improved error and warning reporting in which Java compilation errors are now displayed at the end of the build output. 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.