This week's Java roundup for November 6th, 2023, features news from OpenJDK, JDK 22, Spring Shell 3.2.0-M3, 3.1.5, 3.0.9 and 2.1.14, Quarkus 3.5.1 and 3.2.8, Apache Camel 3.14.10, Apache Camel Quarkus 3.2.2, JDKMon 17.0.81, Arquillian 1.7.2.Final, Gradle 8.5.0-RC1 and J-Fall 2023.
OpenJDK
After its review has concluded, JEP 460, Vector API (Seventh Incubator), has been promoted from Proposed to Target to Targeted for JDK 22. This JEP, under the auspices of Project Panama, incorporates enhancements in response to feedback from the previous six rounds of incubation: JEP 448, Vector API (Sixth Incubator), delivered in JDK 21; JEP 438, Vector API (Fifth Incubator), delivered in JDK 20; JEP 426, Vector API (Fourth Incubator), delivered in JDK 19; JEP 417, Vector API (Third Incubator), delivered in JDK 18; JEP 414, Vector API (Second Incubator), delivered in JDK 17; and JEP 338, Vector API (Incubator), delivered as an incubator module in JDK 16. The most significant change from JEP 448 includes an enhancement to the JVM Compiler Interface (JVMCI) to support Vector API values.
JEP 459: String Templates (Second Preview) has been promoted from Candidate to Proposed to Target for JDK 22. This JEP provides a second preview from the first round of preview: JEP 430, String Templates (Preview), delivered in JDK 21. This feature enhances the Java programming language with string templates, string literals containing embedded expressions, that are interpreted at runtime where the embedded expressions are evaluated and verified. More details on JEP 430 may be found in this InfoQ news story. The review is expected to conclude on November 15, 2023.
Gavin Bierman, consulting member of technical staff at Oracle, has published a draft specification for JEP 463, Implicit Classes and Instance Main Methods (Second Preview), for review by the Java community.
JDK 22
Build 23 of the JDK 22 early-access builds was made available this past week featuring updates from Build 22 that include fixes to various issues. Further details on this build may be found in the release notes.
For JDK 22, developers are encouraged to report bugs via the Java Bug Database.
Spring Framework
Versions 3.2.0-M3, 3.1.5, 3.0.9 and 2.1.14 of Spring Shell have been released featuring notable changes such as: an upgrade to JLine 3.24.1 to resolve an issue in which stdout
is redirected to stderr
on non-interactive mode; improvements in the Terminal UI, especially the ability to autoconfigure; and resolve an issue in which tab completion may fail with lazy initialization. These versions build on Spring Boot 3.1.0-RC2, 3.1.5, 3.0.12 and 2.7.17, respectively. More details on these releases may be found in the release notes for version 3.2.0-M3, version 3.1.5, version 3.0.9 and version 2.1.14.
Quarkus
The release of Quarkus 3.5.1 delivers notable changes such as: a fix in the OIDC scope to permission mapping when the scope is empty; improved error messaging and documentation in the Keycloak DevService; and a temporary disabling of the VertxMDCTest
class on the Windows OS due to instability. More details on this release may be found in the changelog.
Similarly, the release of Quarkus 3.2.8 ships with notable changes such as: a fix for the propagateToken()
method defined in the AccessTokenRequestReactiveFilter
class that duplicated the authorization header with the bearer scheme; the afterEach()
method defined in the QuarkusSecurityTestExtension
class should not call the current()
method defined in the CDI
class when not annotated with @TestSecurity
; and a fix for a NullPointerException
resulting from use of the ForwardedProxyHandler
class that allowed a null
value when no record was found. More details on this release may be found in the changelog.
Both releases address CVE-2023-5720, an exposure in which an attacker can access potentially sensitive information from a build system with an application due to a flaw found in Quarkus where it does not properly sanitize artifacts created using the Gradle plugin. This can allow certain build system information to remain.
Apache Software Foundation
The release of Apache Camel 3.14.10 features bug fixes, dependency upgrades and improvements: change directory permissions within the SFTP component option, chmodDirectory
; and collection of authorization data within the Meter Registry component. More details on this release may be found in the release notes.
In maintaining alignment with Quarkus, Camel Quarkus 3.2.2 has been released with no documented big fixes, dependency upgrades or improvements. More details on this release may be found in the release notes.
JDKMon
Version 17.0.81 of JDKMon, a tool that monitors and updates installed JDKs, has been made available this past week. Created by Gerrit Grunwald, principal engineer at Azul, this new version provides dependency upgrades, a build upgrade to Gradle 8.4, and new features: the ability to select a JEP, JSR or OpenJDK project from a list and open that selection in a default browser; and a tooltip of the JDK distribution will now also display the number of modules and size on disk.
Arquillian
The release of Arquillian 1.7.2.Final delivers a fix for failure of a parameterized test that was reported as having passed despite having failed. More details on this release may be found in the list of issues.
Gradle
The first release candidate of Gradle 8.5.0 ships with: full support for compiling, testing and running on JDK 21; improvements in the Kotlin DSL that include faster first use and version catalog support in precompiled Kotlin script plugins; and improved reporting of errors and warnings. More details on this release may be found in the release notes.
J-Fall 2023
The 2023 J-Fall conference, celebrating its 20th year, was held at the Pathé Ede in Ede, Netherlands, this past week featuring speakers from the Java community who delivered pre-conference workshops, keynote addresses, 50-minute sessions and lightning talks from this conference agenda. A detailed report on J-Fall 2023 may be found in this blog post by Ivar Grimstad, Jakarta EE Developer Advocate at the Eclipse Foundation.