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: Grails 6.0, PrimeFaces 13.0, JUnit 5.10, GraalVM, TornadoVM, New JEP Drafts

Java News Roundup: Grails 6.0, PrimeFaces 13.0, JUnit 5.10, GraalVM, TornadoVM, New JEP Drafts

This week's Java roundup for July 24th, 2023, features news from OpenJDK, JDK 22, JDK 21, GraalVM Community Components 23.0.1, Spring Cloud 2022.0.4, Spring Security and Spring Shell point releases, Grails 6.0, TornadoVM 0.15.2, Liberica NIK 23.0.1, PrimeFaces 13.0, Quarkus 3.2.2, Hibernate Reactive 2.0.4, Micronaut 4.0.2, JBang 0.110, JHipster Lite 0.39, JUnit 5.10 and Gradle 8.3-RC2.

OpenJDK

Maurizio Cimadamore, software architect at Oracle, has submitted JEP Draft 8310626, Foreign Function & Memory API. This JEP proposes to finalize this feature after two rounds of incubation and three rounds of preview: JEP 412, Foreign Function & Memory API (Incubator), delivered in JDK 17; JEP 419, Foreign Function & Memory API (Second Incubator), delivered in JDK 18; JEP 424, Foreign Function & Memory API (Preview), delivered in JDK 19; JEP 434, Foreign Function & Memory API (Second Preview), delivered in JDK 20; and JEP 442, Foreign Function & Memory API (Third Preview), to be delivered in the upcoming release of JDK 21. Improvements since the last release include: a new Enable-Native-Access manifest attribute that allows code in executable JARs to call restricted methods without the use of the --enable-native-access flag; allow clients to programmatically build C function descriptors, avoiding platform-specific constants; improved support for variable-length arrays in native memory; and support for multiple charsets in native strings.

Cimadamore and Per-Åke Minborg, consulting member of technical staff at Oracle, have submitted JEP Draft 8312611, Computed Constants. This JEP introduces the concept of computed constants, defined as immutable value holders that are initialized at most once. This offers the performance and safety benefits of final fields, while offering greater flexibility as to the timing of initialization. This feature will debut as a preview API.

Julian Waters, OpenJDK committer, has submitted JEP Draft 8313278, Ahead of Time Compilation for the Java Virtual Machine. This JEP proposes to "enhance the Java Virtual Machine with the ability to load Java applications and libraries compiled to native code for faster startup and baseline execution."

Version 7.3 of the Regression Test Harness for the JDK, jtreg, has been released and ready for integration in the JDK. Notable changes include: an updated set of default environment variables (DBUS_SESSION_BUS_ADDRESS, WAYLAND_DISPLAY, and XDG-*) set for tests on Unix-like platforms; a fix for a race-condition when running tests with a multi-module setup; and a fix in the log() method defined in the AgentServer class that did not flush the output. More details on this release may be found in the release notes.

JDK 21

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

JDK 22

Build 8 of the JDK 22 early-access builds was also made available this past week featuring updates from Build 7 that include fixes to various issues. More 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

The release of GraalVM Community Components 23.0.1, comprised of GraalVM for JDK 20 Community 20.0.2 and GraalVM for JDK 17 Community 17.0.8, provides these Native Image fixes: jvmstat performance data initialization; JDK Flight Recorder (JFR) events constant pool IDs; user experience issues; and analysis results in build reports. There was also an update to the strip mining optimization for counted loops feature in which mine overflow loops are defined as "do not strip" in the Graal compiler. These new versions are built upon JDK versions 20.0.2+9 and 17.0.8+7, respectively. Further details on these releases may be found in the release notes for version 20.0.2 and version 17.0.8.

Similarly, GraalVM Community Edition 22.3.3 was also released to align with the April 2023 Critical Patch Update (CPU) for GraalVM Community Edition. This version is built upon JDK versions 17.0.7 and 11.0.19. More details on this release may be found in the release notes.

Further details on the latest release of GraalVM may be found in this detailed news story featuring Q&A with Alina Yurenko, developer advocate for GraalVM at Oracle Labs.

Spring Framework

The release of Spring Cloud 2022.0.4, codenamed Kilburn, delivers notable changes such as: support for retry-aware load-balancing for delegates of the ServiceInstanceListSupplier interface in Spring Cloud Commons; improved exception handling for loading shared beans in Spring Cloud Stream; and dependency upgrades to Feign 12.4 and Eureka 2.0.1 for Spring Cloud OpenFeign and Spring Cloud Netflix, respectively. This latest version builds upon Spring Boot 3.0.9. It is important to note that subprojects: Spring Cloud CLI, Spring Cloud for Cloud Foundry and Spring Cloud Sleuth, have been removed from the release train. More details on this release may be found in the release notes.

Versions 6.1.2, 6.0.5, 5.8.5, 5.7.10 and 5.6.12 of Spring Security have been released to address two Common Vulnerabilities and Exposures: CVE-2023-34034, WebFlux Security Bypass With Un-Prefixed Double Wildcard Pattern, is a vulnerability in which using the double wildcard (**) as a pattern in Spring Security configuration for Spring WebFlux creates a mismatch in pattern matching that may result in a security bypass; and CVE-2023-34035, Authorization Rules Can Be Misconfigured When Using Multiple Servlets, a vulnerability in which using the requestMatchers(String) method and multiple servlets, one of them being the Spring MVC DispatcherServlet class, may lead to an authorization rule misconfiguration. Further details on these releases may be found in the release notes for version 6.1.2, version 6.0.5, version 5.8.5, version 5.7.10, and version 5.6.12.

Versions 3.1.3, 3.0.7 and 2.1.12 of Spring Shell have been released featuring the addition of a complete() method in the CompletionProposal class to allow for completing a single argument with multiple tab clicks, such as file paths. These versions build upon Spring Boot versions 3.1.2, 3.0.9 and 2.7.14, respectively. More details on these releases may be found in the release notes for version 3.1.3, version 3.0.7 and version 2.1.12.

Grails

The Grails Foundation has released version 6.0 of Grails delivering: a minimal JDK 11 version; support for Spring Framework 5.3.28, Spring Boot 2.7.12 and Gradle 7.6.1; the debut of Grails Forge UI, a starter project similar to Spring Initializr and others; and enhanced integration of the Micronaut Framework. Further details on this release may be found in the release notes and InfoQ will follow up with a more detailed news story.

TornadoVM

TornadoVM, an open-source software technology company, has released version 0.15.2 of their virtual machine that ships with bug fixes and notable improvement such as: initial support for Multi-Tasks on Multiple Devices that enables the execution of multiple independent tasks on more than one hardware accelerator; support for trigonometric radian, cospi and sinpi functions for the OpenCL/PTX and SPIR-V backends; and initial integration with ComputeAorta (part of the Codeplay's oneAPI construction kit for RISC-V) to run on RISC-V with vector instructions in emulation mode. More details on this release may be found in the release notes.

Juan Fumero, research associate, Advanced Processor Technologies Research Group at The University of Manchester, introduced TornadoVM at QCon London in March 2020 and has since contributed this more recent InfoQ technical article.

LibericaJDK

BellSoft has released version 23.0.1 of their Liberica Native Image Kit (NIK) for JDK 17.0.8 and 20.0.2 as part of Critical Patch Update (CPU) release cycle featuring: experimental support for ParallelGC on the Windows OS; a fix for the compilation of JavaFX FXML applications; and fixes for the following Common Vulnerabilities and Exposures: CVE-2023-22043; CVE-2023-22041; CVE-2023-25193; CVE-2023-22044; CVE-2023-22045; CVE-2023-22049; CVE-2023-22036; and CVE-2023-22006.

PrimeFaces

Version 13.0.0 of PrimeFaces has been released with bugs fixes, dependency upgrades and new features such as: support for columns and footer facet in the SelectCheckboxMenu class; the addition of selectOnFocus() and caretPositionOnFocus() methods in the InputNumber class; and the addition of a cache attribute in the OverlayPanel class. It is important to note that there are breaking changes. Further details on this release may be found in the release notes.

Quarkus

Red Hat has released version 3.2.2.Final of Quarkus to address two regressions from version 3.2.1 and improvements in documentation. Notable changes include: revert back to the openjdk-17-runtime:1.16 images due to the development branch having the version number bumped to 1.17 in anticipation of the next release scheduled for release in August 2023; remove the false positive warning about the quarkus.launch.rebuild property; and allow reauthentication if the OIDC state cookie is not matched. More details on this release may be found in the changelog.

Hibernate

The release of Hibernate Reactive 2.0.4.Final features: a dependency upgrade to Hibernate ORM 6.2.7.Final; start the Docker container only as requested to confirm that a remote database already started before executing the full build; and a fix for which the @SQLSelect annotation did not work on a primary entity. Further details on this release may be found in the release notes.

Micronaut

Micronaut Framework 4.0.2, the second maintenance release, provides bug fixes, improvements in documentation, dependency upgrades and improvements such as: add version number check to the BuildTestVerifier interface; and move Async validation to a processor module due to the AsyncTypeElementVisitor class defined as a compileOnly dependency. More details on this release may be found in the release notes.

The Micronaut Foundation has moved their chat community from Gitter to Discord effective immediately. The foundation states that Discord provides an improved desktop application experience, better-structured conversations and enhanced notifications. Developers on Gitter are encouraged to move to Discord, however the foundation will continue to monitor conversations on Gitter and provide links to Discord.

JBang

The release of JBang 0.110.0 ships with a change in its Maven Central ID from mavencentral to central for fetching dependencies to allow for better sharing of downloads between Maven- and JBang-based builds. There was also a fix for a regression in which Maven artifacts containing capital letters failed to download.

JHipster

Version 0.39.0 of JHipster Lite has been released featuring bug fixes, dependency upgrades and improvements such as: enhancements to the Logback dependency with improved configuration and the elimination of having to explicitly define the shutdown hook; add a getInstantOrDefault() method to the JHipsterModuleProperties class; and a switch to a non-parallel stream in REST pagination mapping to ensure sequential processing of the stream. Further details on this release may be found in the release notes.

JUnit

JUnit 5.10.0 has been released with new features such as: experimental APIs, such as ModuleSelector, EngineDiscoveryListener, EngineDiscoveryRequestResolver, LauncherSession and @Suite, have been promoted to stable; new selectors in the @SelectMethod annotation; and a new LauncherInterceptor interface for intercepting the creation of instances of the Launcher and LauncherSessionListener interfaces. More details on this release may be found in the release notes.

Gradle

The second release candidate of Gradle 8.3 delivers continued improvements such as: support for JDK 20; faster Java compilation using worker processes to run the Java compiler as a compiler daemon; the ability to experiment with the Kotlin K2 compiler; and improved output from the CodeNarc plugin. Further details on this release may be found in the release notes.

About the Author

Rate this Article

Adoption
Style

BT