This week's Java roundup for August 26th, 2024, features news highlighting: JEP 484, Class-File API, promoted to Candidate status, GlassFish 7.0.17, JHipster 8.7.0, JReleaser 1.14.0, Hibernate Search 7.1.2 and 7.2.1, and Micronaut Framework 4.6.0.
OpenJDK
JEP 484, Class-File API, has been promoted from its JEP Draft 8334712 to Candidate status this past week. This JEP proposes to finalize this feature in JDK 24 after two rounds of preview: JEP 466, Class-File API (Second Preview), to be delivered in the upcoming release of JDK 23; and JEP 457, Class-File API (Preview), delivered in JDK 22. This feature provides an API for parsing, generating, and transforming Java class files. This will initially serve as an internal replacement for ASM, the Java bytecode manipulation and analysis framework, in the JDK with plans to have it opened as a public API. Goetz has characterized ASM as "an old codebase with plenty of legacy baggage" and provided background information on how this feature will evolve and ultimately replace ASM.
JDK 23
Build 37 remains the current build in the JDK 23 early-access builds. Further details on this release may be found in the release notes and details on the new JDK 23 features may be found in this InfoQ news story.
JDK 24
Build 13 of the JDK 24 early-access builds was made available this past week featuring updates from Build 12 that include fixes for various issues. More details on this release may be found in the release notes.
For JDK 23 and JDK 24, developers are encouraged to report bugs via the Java Bug Database.
GlassFish
GlassFish 7.0.17, the seventeenth maintenance release in the 7.0 release train, delivers bug fixes, improvements in documentation, refactoring and maintenance, dependency upgrades and a new feature that provides experimental support for JDK 23 and JDK 22 by: a replacement of parsing of the java.version
system property with the use of the version()
method defined in the Java Runtime
class; and removal of the deprecated JDK
class. Further details on this release may be found in the release notes.
Tornado VM
TornadoVM 1.0.7, the seventh maintenance release, provides bug fixes and improvements such as: a refactor of the TornadoDevice
interface to place common methods in the TornadoXPUDevice
interface that extends from TornadoDevice
; the addition of a Double-type for the 64-bit floating point versions of trigonometric functions in the TornadoMath
class that were missing; and support for scalar values to be passed via lambda expressions as tasks.
Spring Framework
Versions 3.4.0-M1, 3.3.2 and 3.2.7 of Spring Shell have been released featuring bug fixes, dependency upgrades and notable changes such as: improved Unicode handling in the StringInput
class; an overhaul of the StatusBarView
class to allow a change text and have better control of positions; and support for writing directly to an instance of the JLine AttributedString
class. These versions build upon Spring Boot 3.4.0-M2, 3.3.3 and 3.2.9, respectively, and JLine 3.26.3. More details on these releases may be found in the release notes for version 3.4.0-M1, version 3.3.2 and version 3.2.7.
Micronaut
The Micronaut Foundation has released version 4.6.0 of Micronaut Framework featuring Micronaut Core 4.6.3, bug fixes, improvements in documentation and updates to modules (other than dependency upgrades): Micronaut AWS, Micronaut Azure, Micronaut GCP, Micronaut SQL Libraries and Micronaut JAX-RS. Further details on this release may be found in the release notes.
Quarkus
The release of Quarkus 3.14.1 features bug fixes, dependency upgrades and notable changes such as: support for Hibernate ORM 6.6, Hibernate Search 7.2 and Hibernate Reactive 2.4; a resolution to an implementation of the SmallRye Config ConfigSourceInterceptor interface not loading the implementation class when building with Gradle; and experimental support for generating faster reflection-free serializers with Jackson for the the types that will be serialized by Quarkus REST. More details on these releases may be found in the changelogs for version 3.14.1 and version 3.14.0.
Open Liberty
IBM has released version 24.0.0.9-beta of Open Liberty featuring support for the MicroProfile Telemetry 2.0 and Jakarta WebSocket 2.2 specifications. With the ability to collect and export metrics and logs, Open Liberty can now forward runtime component statistics that are captured by their Performance Monitoring 1.0 feature to the MicroProfile Telemetry 2.0 runtime. To avoid type errors, WebSocket 2.2 now limits the MaxMessageSize
parameter, defined in the @OnMessage
annotation, to Integer#MAX_VALUE
.
Hibernate
Versions 7.2.1.Final and 7.1.2.Final of Hibernate Search have been released featuring notable changes such as: a resolution to a startup failure when indexed entities are using the Hibernate ORM @Formula
and @IndexedEmbedded
annotations in their mapping; and an update for the Hibernate ORM mass indexer to prevent it from failing with enabled Jakarta Persistence compliance. Further details on these releases may be found in the release notes for version 7.2.1 and version 7.1.2.
JReleaser
Version 1.14.0 of JReleaser, a Java utility that streamlines creating project releases, has been released to deliver bug fixes, improvements in documentation, dependency upgrades and new features such as: skip Git checks for a given set for a given set of JReleaser commands to resolve a failure if the repository doesn't have a defined remote branch; allow the java.groupId
property in the jreleaser.yml
file to be configured using environmental variables or system properties; and allow artifact overrides to define if a pom.xml
file should be skipped for verification because the Pomchecker utility does not support the active
property. More details on this release may be found in the release notes.
JHipster
The release of JHipster 8.7.0 features bug fixes, dependency upgrades and notable changes such as: correct an issue with invalid constraints being generated for many-to-many relationships upon updating constraints; and replace the ModifyServersOpenApiFilter
class with the SpringDoc ServerBaseUrlCustomizer interface for improved gateway configuration. Further details on this release may be found in the release notes.
Java Operator SDK
The release of Java Operator SDK 4.9.4 features dependency upgrades and notable changes: the addition of a getPlural()
method in the GroupVersionKind
class to support typeless Kubernetes resources when generating manifests; and a new method, shouldUseSSA()
, added to the ConfigurationService
interface that exposes logic to determine whether a Kubernetes-dependent resource should use Server-Side Apply. More details on this release may be found in the release notes.