BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Java News Roundup: OpenJDK JEPs, Spring Projects, Quarkus, Hibernate, JHipster, JReleaser

Java News Roundup: OpenJDK JEPs, Spring Projects, Quarkus, Hibernate, JHipster, JReleaser

This week's Java roundup for April 29th, 2024, features news highlighting: JEP 476, Module Import Declarations (Preview), and JEP 474, ZGC: Generational Mode by Default, targeted for JDK 23; new JEP candidates; and updates to Spring projects, Quarkus, Hibernate ORM, Hibernate Reactor, JHipster, JHipster Lite and JReleaser.

OpenJDK

After its review has concluded, JEP 476, Module Import Declarations (Preview), has been promoted from Proposed to Target to Targeted for JDK 23. This preview feature proposes to 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.

Similarly, JEP 474, ZGC: Generational Mode by Default, has been promoted from Proposed to Target to Targeted for JDK 23. This JEP proposes to use the Z Garbage Collector (ZGC) from non-generational to generational mode by default. The non-generational mode will be deprecated and removed in a future JDK release. This will ultimately reduce the cost of maintaining the two modes such that future development can primarily focus on JEP 439, Generational ZGC. More details may be found in this InfoQ news story.

JEP 472, Prepare to Restrict the Use of JNI, has been promoted from its JEP Draft 8307341 to Candidate status. The JEP proposes to restrict the use of the inherently unsafe Java Native Interface (JNI) in conjunction with the use of restricted methods in the Foreign Function & Memory (FFM) API that is expected to become a final feature in JDK 23. The alignment strategy, starting in JDK 23, will have the Java runtime display warnings about the use of JNI unless an FFM user enables unsafe native access on the command line. It is anticipated that in release after JDK 23, using JNI will throw exceptions instead of warnings.

JEP 471, Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal, has also been promoted from its JEP Draft 8323072 to Candidate status. This JEP proposes to deprecate the memory access methods in the Unsafe class for removal in a future release. These unsupported methods have been superseded by standard APIs, namely, JEP 193, Variable Handles, delivered in JDK 9; and JEP 454, Foreign Function & Memory API, delivered in JDK 22.

Version 7.4.0 of the Regression Test Harness for the JDK, jtreg, has been released and ready for integration in the JDK. Notable changes include: a validation of files processed in the ProblemList.txt file to ensure the contents conform to the expected format; a resolution to jtreg ignoring the VM exit code when test process reports status with "STATUS: " line; and a dependency upgrade to JUnit 5.10.2. Further details on this release may be found in the release notes.

Build 22-jextract+4-30 of the Project Jextract, also known as Project Panama, early-access builds, have been made available to the Java community and are based on the release of JDK 22.

JDK 23

Build 21 of the JDK 23 early-access builds was made available this past week featuring updates from Build 20 that include fixes for various issues. 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, has provided an update on the upcoming GA release of Jakarta EE 11. Six specifications, namely - Jakarta Annotations 3.0, Jakarta Contexts and Dependency Injection 4.1, Jakarta Expression Language 6.0, Jakarta Interceptors 2.2, Jakarta RESTful Web Services 4.0 and Jakarta Validation 3.1 - have been finalized for Jakarta EE 11. The remaining ten updated specifications are in various stages of review.

GraalVM

Oracle Labs has announced that Graal Cloud Native, a curated set of Micronaut Framework modules that simplify cloud application development, has been renamed to Graal Development Kit for Micronaut. This change was made for improved alignment with the Micronaut Framework. Version 4.3.7, based on Micronaut Framework 4.3.7, is the initial release under this new name.

Spring Framework

Versions 1.1.4 and 1.0.7 of Spring Modulith have been released featuring dependency upgrades and improvements: avoid the inclusion of starters in repackaged JARs of Spring Boot; write to the error log in the PersistentApplicationEventMulticaster class upon a resubmission of incomplete publications silently fails if an appropriate listener is not found. Further details on these releases may be found in the release notes for version 1.1.4 and version 1.0.7.

The first release candidate of Spring Functions Catalog 5.0.0, a rebranding, and next generation, of the functions sub-module of Stream Applications project, provides dependency upgrades to Spring Boot 3.2.5, Spring Integration Extension for AWS 3.0.7 and Debezium 2.6.1. Introduced in March 2024, this catalog provides a set of standalone Java functions that can be useful in the end-user applications as-is. Version 5.0.0 was chosen for this new catalog to maintain alignment with functions from the Stream Applications project. More details on this release may be found in the release notes.

Similarly, the first release candidate of Spring Cloud Stream Applications 2024.0.0 primarily delivers a dependency upgrade to the aforementioned Spring Functions Catalog 5.0.0-RC1. Further details on this release may be found in the release notes.

Version 4.22.1 of Spring Tools has been released featuring bug fixes and notable changes such as: support for the Jakarta Persistence Query Language syntax in Java sources and Named Query properties files; a new UI in VSCode to show/hide/refresh Live Data for running Spring Boot applications; and a new conversion available to/from .properties to .yml files in Eclipse and VSCode. More details on this release may be found in the release notes.

Quarkus

The release of Quarkus 3.10 delivers a new extension, Hibernate Search Standalone + Elasticsearch, a dependency upgrade to Flyway 10.10.0, and notable changes such as: a resolution to two conflicting warnings when building an Uber-JAR with deprecated the property, quarkus.package.type=uber-jar; and use of the ExecutionModelAnnotationsAllowedBuildItem class in the experimental WebSockets Next extension such that callback methods may be annotated with the SmallRye @Blocking, @NonBlocking and @RunOnVirtualThread. Further details on this release may be found in the changelog.

Similarly, Quarkus 3.9.5, fourth maintenance release (3.9.0 was skipped), provides notable changes such as: a resolution to an additional increment in the metrics of the CaffeineCache interface from its getIfPresent() method that inadvertently doubled its metrics count; and a prevention of a NullPointerException when an instance of the EagerInstanceHandle class, named UNAVAILABLE in this class, is closed. More details on this release may be found in the changelog.

Micronaut

The Micronaut Foundation has released version 4.4.2 of the Micronaut Framework featuring Micronaut Core 4.4.8, bug fixes, improvements in documentation, and updates to modules: Micronaut Views and Micronaut Tracing. Further details on this release may be found in the release notes.

Hibernate

The first alpha release of Hibernate ORM 6.6.0 provides: an implementation of the Jakarta Data 1.0.0-RC1 specification; ​​and a new @ConcreteProxy annotation intended as an improved replacement for the deprecated @Proxy and @LazyToOne annotations.

Similarly, the second alpha release of Hibernate ORM 7.0.0 delivers continuous improvements on: the migration to the Jakarta Persistence 3.2 specification, the latest version to be delivered in Jakarta EE 11; a baseline to JDK 17; a new XSD file that represents an extension of the Jakarta Persistence orm.xsd file that weaves in Hibernate-specific mapping features; and a migration from the Hibernate Commons Annotations (HCANN) to the new Hibernate Models project for low-level processing of an application domain model.

The release of Hibernate Reactive 2.3.0.Final ships with: compatibility with Hibernate ORM 6.5.0.Final; and support for soft deletes via the @SoftDelete annotation that was first introduced in Hibernate ORM 6.4.0.Final. More details on this release may be found in the release notes.

Apache Software Foundation

The release of Apache Camel Quarkus 3.10.0, composed of Apache Camel 4.5.0 and Quarkus 3.10.0, delivers resolutions to notable issues such as: a failure with an instance of the JasyptDevUITest due to the a Java Simplified Encryption (jasypt) password not properly configured; a Dev mode compilation error when using gRPC and FindBugs; and an IllegalArgumentException from an implementation of the CamelCatalog interface due to unexpected model. Further details on this release may be found in the release notes.

TornadoVM

TornadoVM 1.0.4, the fourth maintenance release, ships with bug fixes and improvements such as: version 1.0 of the new Tensor API, a comprehensive set of classes and utilities for working with tensors of various data types; interoperability with the ONNX Runtime; support for TornadoVM array concatenations from the constructor-level; and auto-closable execution plans for automatic memory management.

JHipster

The release of JHipster 8.4.0 delivers a dependency upgrade to Spring Boot 3.2.5 and notable changes such as: a switch to the Redis SerializationCodec class to resolve a Hibernate LazyInitializationException causing a Redis failure; and use of a customized SpaCsrfTokenRequestHandler class to handle CSRF tokens to prevent BREACH attacks. More details on this release may be found in the release notes.

JHipster Lite 1.8.0 has also been released featuring bug fixes, improvements in documentation, dependency upgrades and enhancements such as: improvements to the FileSystemProjectJavaBuildToolRepository class to separate file handling for projects built with Maven and Gradle; and use of Mustache interface for rendering mustache template rather than the ArgumentsReplacer class. Further details on this release may be found in the release notes.

JReleaser

Version 1.12.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: support for Sonatype's Portal Publisher API to deploy via MavenCentral; a new option to log HTTP network calls via OpenFeign; and a new property, projectIdentifier, to specify an identifier for a Homebrew repository when publishing to GitLab. More details on this release may be found in the release notes.

About the Author

Rate this Article

Adoption
Style

BT