This week’s Java roundup for May 2nd, 2022 features news from OpenJDK, JEPs targeted for JDK 19, JobRunr 5.1.0, Quarkus 2.8.3.Final, Hibernate 6.0.1.Final, Kotlin 1.7.0 preview, Apache Camel versions 3.14. 3 and 3.11.7, Apache Tika version 2.4.0 and 1.28.2, a Micronaut survey on a minimal JDK version and the 2022 JFokus Conference.
After its one-week review had concluded, JEP 425, Virtual Threads (Preview), has been promoted from Proposed to Target to Targeted status for JDK 19. This JEP, under the auspices of Project Loom, introduces virtual threads, lightweight threads that dramatically reduce the effort of writing, maintaining, and observing high-throughput concurrent applications, to the Java platform.
Despite its one-week review having ended on May 5, 2022, JEP 427, Pattern Matching for switch (Third Preview), still remains as Proposed to Target for JDK 19. This JEP, under the auspices of Project Amber, incorporates enhancements in response to feedback from the previous two rounds of preview: JEP 406, Pattern Matching for switch (Preview) (delivered in JDK 17), and JEP 420, Pattern Matching for switch (Second Preview) (delivered in JDK 18). Changes from JEP 420 include: guarded patterns are replaced with
when clauses in
switch blocks; and runtime semantics of a pattern switch are more closely related to legacy switch semantics when the value of the selector expression is
JEP 424, Foreign Function & Memory API (Preview), has been promoted from Candidate to Proposed to Target for JDK 19. This JEP, under the auspices of Project Panama, evolves: JEP 419, Foreign Function & Memory API (Second Incubator), delivered in JDK 18; and JEP 412, Foreign Function & Memory API (Incubator), delivered in JDK 17; to incorporate improvements based on Java community feedback. The review is expected to conclude on May 11, 2022.
Build 21 of the JDK 19 early-access builds was made available this past week, featuring updates from Build 20 that include fixes to various issues. More details may be found in the release notes.
For JDK 19, developers are encouraged to report bugs via the Java Bug Database.
Ronald Dehuysser, founder and main developer of JobRunr, a utility to perform background processing in Java, has released version 5.1.0 featuring support for Kotlin 1.6.20 and notable bug fixes such as: the
useJsonMapper() method defined in the
JobRunrConfiguration class not properly updating an instance of the
JobMapper class; a situation in which the background server stops if an instance of the
JobDetails class cannot be deserialized; and a race condition in which a
ClosedFileSystemException is thrown. More details on this release may be found in the release notes.
Red Hat has provided a third maintenance release with Quarkus 2.8.3.Final that ships with fixes such as:
quarkus:dev not working with version 2.8.2.Final; downgrade the PostgreSQL driver to version 42.3.3 until the Debezium connector to PostgreSQL supports version 42.3.4; and a new
/tokens endpoint that redirects to the Keycloak authentication server. This will most likely be the last maintenance release as Red Hat plans to deliver Quarkus 2.9.0 during the week of May 9, 2022. Further details on this release may be found in the changelog.
Hibernate ORM 6.0.1.Final has been released that ships with two new type codes for a database:
GEOGRAPHY to support mapping native SQL type geography; and
SQLXML to support mapping native SQL type
xml. The Antlr library has been upgraded to version 4.10.
On the road to Kotlin 1.7.0, JetBrains has provided a beta release that previews new features such as: continuous improvement to the builder type inference for writing generic builders; the return of the
max() collection functions with non-nullable return types; more stable definitely non-nullable types, originally introduced in Kotlin 1.6.20, for improved interoperability when extending Java classes and interfaces; and updates for the new Kotlin / Native Memory Manager. InfoQ will follow up with a more detailed news story.
The Apache Software Foundation has provided LTS point releases for Camel 3.14.3 and Camel 3.11.7. Both versions feature: dependency upgrades to Spring Boot 2.6.7 and other Spring projects to address the Spring4Shell vulnerability; and numerous bug fixes and improvements. More details on these releases may be found in the release notes for version 3.11.7 and version 3.14.3.
The Apache Tika team has released version 2.4.0 of their metadata extraction toolkit. Formerly a subproject of Apache Lucene, this latest version ships with several security upgrades in their dependencies. The
deeplearning4j dependencies, however, are no longer bundled in the
tika-dl JAR file, so developers must provide those on their own.
The team has also released Apache Tika 1.28.2 featuring security-related and general dependency upgrades along with an upgrade to Apache POI 5.2.0 that provides significantly more logging from the POI parsers. The 1.x release train will reach end-of-life on September 30, 2022.
On the road to Micronaut 4.0, the Micronaut Foundation is asking the Java community for input on a minimal version of the JDK. Developers interested in participating may do so by completing this form.
JFokus 2022 was held at the Stockholm Waterfront Congress Center in Stockholm, Sweden this past week featuring many speakers from the Java community who presented talks and facilitated workshops.