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: Single Query Loading, GraalVM, GlassFish, JReleaser, Quarkus, Micronaut

Java News Roundup: Single Query Loading, GraalVM, GlassFish, JReleaser, Quarkus, Micronaut

This week's Java roundup for August 28th, 2023, features news from OpenJDK, JDK 22, JDK 21, GraalVM Native Build Tools 0.9.25, Single Query Loading in Spring JDBC, Quarkus 3.3.1, 3.2.5.Final and 2.16.10.Final, Micronaut 4.1.0 and 4.0.6, Wildfly 29.0.1, Hibernate ORM 6.3.0 and 6.2.8, Hibernate Reactive 2.0.5, GlassFish 7.0.8, Eclipse Vert.x 4.4.5, JKube 1.14.0, JReleaser 1.8.0 and OpenXava 7.1.5.

OpenJDK

The Java Community Process (JCP) Executive Committee has voted to approve JSR 396, Java SE 21 Platform, to move forward with its final GA release scheduled for September 19, 2023.

JEP 442, Foreign Function & Memory API (Third Preview), delivered in the upcoming release of JDK 21, and JEP Draft 8310626, Foreign Function & Memory API, expected to be delivered in JDK 22, is one of the main features of Project Panama, a project that connects the JVM with well-defined, but "foreign" (non-Java) APIs that include many interfaces commonly used by C programmers.

Per-Åke Minborg, consulting member of technical staff at Oracle, has published this blog post in which he discussed the performance benefits of the Foreign Function & Memory API. Minborg provided a benchmark on string conversion using this API for JDK 21 and JDK 22 compared to using the old Java Native Interface (JNI) calls.

JDK 21

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

JDK 22

Build 13 of the JDK 22 early-access builds was also made available this past week featuring updates from Build 12 that include fixes to various issues. Further details on this build may be found in the release notes.

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

GraalVM

On the road to version 1.0, Oracle Labs has released version 0.9.25 of Native Build Tools, a GraalVM project consisting of plugins for interoperability with GraalVM Native Image. This latest release provides a dependency upgrade to GraalVM Reachability Metadata Repository 0.3.4. More details on this release may be found in the changelog.

Spring Framework

In their quest to solve the N+1 problem, the Spring Data team has introduced Single Query Loading, a technique designed to load arbitrary aggregates with a single SELECT statement. Available with the release of Spring Data JDBC 3.2.0-M2, the team claims this new technique is the "beginning of the end for the N+1 problem." A new method, setSingleQueryLoadingEnabled(true), has been added to the RelationalMappingContext class to enable Single Query Loading. At this time, this only works for simple aggregates, consisting of an aggregate root and a single collection of other entities, but the team promises that future releases will improve on this limitation.

Quarkus

Red Hat has released version 3.3.1 of Quarkus that ships with dependency upgrades and notable changes such as: a fix for a potential NullPointerException in the MicrometerRecorder class; a new counter, rejected, added to the VertxPoolMetrics class to count rejected requests; and a fix in which the VertxHttpExporter class incorrectly parses the /v1/traces endpoint. Further details on this release may be found in the changelog.

Similarly, Quarkus 3.2.5.Final has been released with notable changes such as: a fix for a potential NullPointerException in the Cross-Site Request Forgery extension when the CsrfRequestResponseReactiveFilter class is checking the media type; a disabling of the testMoreRepositoryFunctionalities() method in the ReactiveMongodbPanacheResourceTest class as it has been characterized as "flaky" according to the string passed-in to the @Disabled annotation; and a fix for a deadlock upon calling a write-locked method of a bean in multiple threads in which this method calls another write-locked method within the same bean. More details on this release may be found in the changelog.

And finally, the release of Quarkus 2.16.10.Final provides a dependency upgrade of Snappy Java from version 1.1.8.4 to version 1.1.10.1. Further details on this release may be found in the changelog.

Micronaut

The Micronaut Foundation has released version 4.1.0 of the Micronaut Framework delivering Micronaut Core 4.1.3 and new features such as: Bean Mappers to automatically create a mapping between one type and another; an Introspection Builder that utilizes the builder member of the @Introspected annotation to generate a dynamic builder ​​if a type can only be constructed via a builder pattern; and improvements for developers using Kotlin Symbol Processing (KSP) to build Micronaut applications. More details on this release may be found in the release notes.

Micronaut Framework 4.0.6, the sixth maintenance release, provides updates to modules: Micronaut for Spring, Micronaut JAX-RS, Micronaut Servlet, Micronaut Validation, Micronaut Redis, Micronaut Tracing, Micronaut AWS and Micronaut Kafka. Further details on this release may be found in the release notes.

WildFly

The release of WildFly 29.0.1 ships with component upgrades, a migration of Quickstarts 29.x to BOMs and WildFly Server 29.0.1.Final, and notable bug fixes such as: WildFly 29.0.0 not starting on Eclipse Temurin 17.0.8 due to a new org.jboss.jts to jdk.jconsole dependency; an upgrade to Square Okio 3.4.0 to resolve CVE-2023-3635, a vulnerability that may lead to a denial of service of the Okio client when handling a crafted GZIP archive via the GzipSource class; and issues with the MicroProfile RestClient and Jakarta CDI specifications after upgrading to WildFly 29.0.0. More details on this release may be found in the release notes.

Hibernate

Versions 6.3.0 and 6.2.8 of Hibernate ORM have been released delivering notable changes such as: initial support for the Jakarta Persistence 3.2 specification for Jakarta EE 11 that includes clarification of numeric literal types in HQL/JPQL queries; a new introductory Hibernate 6 Guide; a new syntax and feature guide for the Hibernate Query Language; the ability to generate DAO-style methods for named queries as part of its JPA static metamodel generator; and the ability for arbitrary methods to be processed by the generator to create finder methods similar to query methods using the new @Find annotation.

The release of Hibernate Reactive 2.0.5.Final ships with compatibility with Hibernate ORM 6.2.8.Final and Vert.x SQL driver 4.4.5. Notable changes include: a change of the return type from Uni<Object> to Uni<?> of the generate() method defined in the MutinyGenerator class; the addition of tests for the @TimeZoneStorage annotation; and a new ParametersProcessorTest class to fix escaping issues that were present in processing parameters for the OracleParameters, PostgresParameters and SQLServerParameters classes. Further details on this release may be found in the release notes.

Eclipse Foundation

Eclipse GlassFish 7.0.8, the eighth maintenance release, features initial support for JDK 21 and an optimization of CDI extensions to reduce the number of unnecessary handler calls to the ProcessAnnotatedType interface. Notable bug fixes include: a JDK 11 compatibility issue in RWLockDataStructureTest class; a multi-jar compatibility issue; and Admin Console behavior when an admin user changes password to be empty. More details on this release may be found in the release notes

The release of Eclipse Vert.x 4.4.5 delivers dependency upgrades and notable changes such as: improvements to the ForwardedParser class to support IPV6 addresses when they are not enclosed within square brackets; a decouple of the frame aggregator from the frame handler upon implementing the WebSocketBase interface; and a fix for HTTP/2 throwing an HttpClosedException instead of TimeoutException when a defined timeout has been exceeded. Further details on this release may be found in the release notes and deprecations and breaking changes.

Version 1.14.0 of Eclipse JKube, a Java tools and plugins utility for Kubernetes and OpenShift, has been released featuring bug fixes, improvements and support for Gradle 8, Helidon, the Spring Boot Layered Jar and Helm push charts for OCI registries. More details on this release may be found in the release notes.

JReleaser

Version 1.8.0 of JReleaser, a Java utility that streamlines creating project releases, has been released to deliver improvements in documentation, dependency upgrades and notable changes such as: the creation of default templates for missing announcers; an update to the latest SDKMan endpoints; and improved error handling for GitHub 422 error responses. Further details on this release may be found in the release notes.

It is important to note that the Supply Chain Levels for Software Artifacts (SLSA) has announced a partnership with the contributors to JReleaser, Maven and Gradle with the release of SLSA 1.0. This validates the design of the Build Your Own Builder (BYOB) framework for GitHub Actions and demonstrates its flexibility.

OpenXava

The release of OpenXava 7.1.5 ships with notable changes such as: a new CompositeFilter class that sums two instances of the IFilter interfaces to set with the setFilter() method defined in the Tab class or as base for an IFilter for a @Tab annotation; a new environment variable, XAVA_CALENDAR_VIEWEVENT_ACTION, to define the action on click in a calendar event; and a fix for passing-in the string, "ValidValuesRadioButton," in the @Editor annotation for an enumeration that produced an IndexOutOfBoundsException in the log. More details on this release may be found in the release notes.

About the Author

Rate this Article

Adoption
Style

BT