This week's Java roundup for November 29th, 2021, features news from OpenJDK, JDK 18, Project Loom Build 18-loom+7-288, multiple Spring project point releases, Quarkus 2.5.1.Final, WildFly 26 Beta 1, Open Liberty 21.0.0.12, Hibernate ORM 6.0.0-Beta2, Eclipse Mojarra 2.3.17, GraalVM Native Build Tools 0.9.8, Groovy 4.0.0-RC1, Eclipse Collections 11.0.0, IntelliJ IDEA 2021.3, and JReleaser 0.9.0.
OpenJDK
JEP 421, Deprecate Finalization for Removal, has been promoted from Candidate to Proposed to Target status for JDK 18. This JEP deprecates the finalization mechanism, first introduced in JDK 1.0, for removal in a future JDK release. While finalization was designed to avoid resource leaks, it suffered several critical flaws such as unpredictable latency, uncontrolled behavior and threading, and was always enabled by default. The review for JDK 421 concludes on December 7, 2021.
JDK 18
Build 26 of the JDK 18 early-access builds was made available this past week, featuring updates from Build 25 that include fixes to various issues. More details may be found in the release notes.
The feature set for JDK 18 currently stands as follows:
- JEP 400: UTF-8 by Default
- JEP 408: Simple Web Server
- JEP 413: Code Snippets in Java API Documentation
- JEP 416: Reimplement Core Reflection with Method Handles
- JEP 417: Vector API (Third Incubator)
- JEP 418: Internet-Address Resolution SPI
- JEP 419: Foreign Function & Memory API (Second Incubator)
- JEP 420: Pattern Matching for switch (Second Preview)
- JEP 421: Deprecate Finalization for Removal (Proposed to Target)
Developers are encouraged to report bugs via the Java Bug Database.
Project Loom
Build 18-loom+7-288 of Project Loom early-access builds was made available to the Java community and is based on Build 25 of the JDK 18 early access builds.
Spring Framework
After three milestones and one release candidate, Spring Cloud 2021.0.0 (codename Jubilee) has been released featuring dependency upgrades and fixes on the various Spring Cloud sub-projects such as Spring Cloud Sleuth, Spring Cloud Gateway and Spring Cloud Kubernetes. Spring Cloud 21.0.0 is compatible with Spring Boot 2.6.1.
Just over a week after the release of Spring Boot 2.6, a maintenance release, version 2.6.1 was made available featuring 11 bug fixes and improvements in documentation.
A VMware security report reveals that Spring AMQP (Spring for RabbitMQ) versions 2.4.0, 2.3.12 and 2.2.20 has addressed CVE-2021-22095, a vulnerability in which the toString()
method within the Message
class may generate a String
object large enough to throw an OutOfMemoryError
exception. Spring Boot versions 2.6.0 and 2.5.7 include Spring AMPQ versions 2.4.0 and 2.3.12, respectively.
Spring Authorization Server 0.2.1 was released with new features such as: implementing new endpoints for user information and client configuration; restructuring the samples; allowing updates to an instance of the OAuth2AuthorizationConsent
class; and allowing the OAuth2AuthenticationContext
class to be subclassed. More details may be found in the release notes.
Spring Cloud Function 3.2 was released with new features such as: support for gRPC; enhanced support for the CloudEvents specification; a new actuator endpoint for the FunctionCatalog
interface; improved support for AWS custom runtimes; and support for Spring Native in AWS.
Quarkus
One week after the release of Quarkus 2.5.0, a maintenance release, Quarkus 2.5.1.Final, was made available to provide a number of bug fixes and dependency upgrades. More details may be found in the changelog.
Red Hat has also released Quarkus Tools for IntelliJ 1.9.0 with support for Quarkus streams when establishing a new project in the Quarkus wizard and fixes compatibility issues with IntelliJ 2021.3. Further details on how to discover extensions using platforms and streams may be found on this blog post.
WildFly
Red Hat has released WildFly 26 Beta1 with new features such as: modernising the MicroProfile Reactive Messaging QuickStart for Reactive Messaging 2.0; replacing multiple uses of getParameterTypes().length
with getParameterCount()
; dropping support for deprecated features from older versions of WildFly; and ensuring that assertion arguments should be passed in the correct order.
Open Liberty
IBM has promoted Open Liberty 21.0.0.12 from its beta release featuring support for Jakarta EE 9.1, configurable server response headers, and bug fixes.
IBM has also released Open Liberty 22.0.0.1-beta with support for the upcoming release of MicroProfile 5.0, MicroProfile Rest Client 3.0 and enhancements to JPA such that developers may now declare default JPA persistence properties in the server.xml
file.
HIbernate
On the road to Hibernate ORM 6.0.0, the second beta release was made available featuring: JDK 11 as the minimal version; initial support for custom composite types; and updates to the non-Hibernate core modules hibernate-envers
, hibernate-jcache
and hibernate-spatial
. More resources may be found in the user guide, migration guide and Hibernate 6.0 release page.
Eclipse Mojarra
Mojarra 2.3.17, a maintenance release, was made available featuring support for PrimeFaces 11.0. This version of Mojarra serves as the compatible implementation of Jakarta Server Faces 2.3 specification under Jakarta EE 8. For Jakarta Server Faces 3.0 under Jakarta EE 9, Mojarra 3.0.2 is the compatible implementation.
GraalVM Native Build Tools
On the road to version 1.0, Oracle Labs has released version 0.9.8 of Native Build Tools, a GraalVM project consisting of plugins for interoperability with GraalVM Native Image. This latest release ships with numerous bug fixes and improvements to the Maven and Gradle plugins along with better interoperability with JUnit.
Groovy
Paul King, principal software engineer at Object Computing, Inc., announced that Groovy 4.0.0-RC1 is now available. New features include switch expressions, records and the Groovy-Integrated Query (GINQ), a DSL for querying with SQL-like syntax.
Eclipse Collections
Sirisha Pratha, senior specialist developer at BNY Mellon, committer on the Eclipse Collections project, and Pittsburgh JUG Leader, has announced that Eclipse Collections 11.0.0, a comprehensive collections library for Java, has been made available. This release focuses on new APIs and features requested by the Java community. More details may be found in the release notes.
IntelliJ IDEA
JetBrains has released IntelliJ IDEA 2021.3 with a host of new features including support for a beta version of a remote backend in which developers may connect to a remote machine, deploy an IDE backend on it, and work on a project as if it were on their local machine. InfoQ will follow up with a more detailed news story.
JUnit
JUnit 5.8.2 has been released featuring updates to the @CsvSource
and @CsvFileSource
annotations that will support text blocks treated as CSV files, CSV headers in display names and support for custom quote characters. More details may be found in the release notes.
JReleaser
JReleaser 0.9.0 has been released with improvements to Jlink assembler, the ability to provision JDKs using the Foojay Discovery API, updates to the Gradle plugin, and the addition of MacPorts added to the list of JReleaser packagers. More details may be found in the changelog.
JakartaOne Livestream Conference 2021
The third annual JakartaOne Livestream virtual conference will go live on December 7th, 2021, with the first of 12 one-hour sessions starting at 6:00am EST. Focused primarily on Jakarta EE- and MicroProfile-related topics, these sessions include keynotes and 15-minute slots delivered by a host of Java luminaries. More details may be found in this InfoQ news story.