This week's Java roundup for October 18th, 2021, features news from OpenJDK JEPs, Oracle's Releases Critical Patch Update for October 2021, JDK 18, numerous Spring Projects updates, Quakus 2.3.1, Payara Platform, Hibernate Search 6.0.7, GraalVM 21.3, Java for VS Code 1.0 and Apache Camel for VS Code 0.1.0. The program for the JakartaOne Livestream 2021 conference has been finalized.
OpenJDK
JEP 416, Reimplement Core Reflection with Method Handles, has been promoted from Candidate to Proposed to Target for JDK 18. This JEP proposes to reimplement the java.lang.reflect
classes, Method
, Constructor<T>
and Field
, on top of method handles defined in java.lang.invoke
. These method handles will now serve as the mechanism for reflection to reduce the cost of maintenance and development of both packages. The review for JEP 416 concludes on October 26, 2021.
JEP 420, Pattern Matching for switch (Second Preview), has been promoted from Draft to Candidate status. This JEP allows a target switch
expression to be tested against a number of patterns, each with a specific action, allowing complex data-oriented queries to be expressed concisely and safely. This is the second preview following JEP 406, Pattern Matching for switch (Preview), that was delivered in JDK 17. Enhancements include: an improvement in dominance checking that forces a constant case
label to appear before a guarded pattern of the same type; and an exhaustiveness checking of the switch block is now more precise with sealed hierarchies.
Brian Goetz, Java language architect at Oracle, spoke to InfoQ in September 2017 when pattern matching was still in its proof-of-concept phase. Pattern matching for the instanceof
operator, JEP 394, was delivered in JDK 16.
JDK 17
Update releases for JDK 17.0.1, 11.0.13, 8u311 and 7u321 have been made available as part of Oracle's Releases Critical Patch Update for October 2021. More details may be found in the release notes for JDK 17, JDK 11, JDK 8 and JDK 7.
JDK 18
Build 20 of the JDK 18 early-access builds was made available this past week, featuring updates from Build 19 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 (proposed to target)
- JEP 417: Vector API (Third Incubator)
Developers are encouraged to report bugs via the Java Bug Database.
Spring Framework
It was a very busy week over at Spring as a number of point releases were made available on some of their projects.
In preparation for the recent releases of Spring Boot, Spring Framework 5.3.12 is a follow up release from version 5.3.11 in which two regressions were addressed.
Spring Boot 2.5.6 was released featuring 43 bug fixes, documentation improvements and dependency upgrades.
Spring Boot 2.4.12 was released featuring 36 bug fixes, documentation improvements and dependency upgrades.
On the road to Spring Boot 2.6.0, the first release candidate was made available featuring 85 bug fixes, documentation improvements and dependency upgrades. More details may be found in the release notes.
On the road to Spring Cloud 2021.0.0, the third milestone release, codenamed Jubilee, was made available 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-M3 is compatible with Spring Boot 2.6.0-M3.
Spring Data 2021.0.6 and 2020.0.14 were released featuring dependency upgrades and bug fixes for both versions that are built on top of Spring Framework 5.3.11. These versions may be consumed with Spring Boot 2.5.6 and 2.4.12, respectively.
On the road to Spring Data 2021.1, the first release candidate was made available providing notable changes such as: deprecating support for RxJava 2; a refined SQL DSL for Spring Data JDBC that accepts complex JOIN
conditions and subselects; and support for exists
and not empty
keywords in Elasticsearch.
Spring Cloud Square 0.4.0-M2 was released featuring: support for configuring different WebClient.Builder
beans for each instance of @RetrofitClient
; and support for Spring Native related to non-load-balanced use-cases.
Payara
Payara has released their October 2021 edition of the Payara Platform. Community Edition 5.2021.8 features seven improvements and seven bug fixes. Enterprise Edition 5.32.0 features eight improvements and nine bug fixes. Both editions share a security fix in which an additional check is performed when using Client Certificate authentication to ensure that a certificate is valid, and five component upgrades such as Eclipse Mojarra 2.3.14, Apache Commons IO 2.11 and Hazelcast 4 which is a breaking change in the Enterprise Edition.
More details may be found in the release notes for the Community and Enterprise editions.
Hibernate
Maintenance releases for Hibernate Search versions 6.0.7.Final, 5.11.10.Final and 5.10.12.Final were made available to upgrade Hibernate Search to the latest compatible versions of Hibernate ORM and deprecate a number of features in the 5.x release trains that have been removed in Hibernate Search 6.0.
Quarkus
Quarkus 2.3.1.Final, a maintenance release, has been made available by Red Hat that includes a dependency upgrade to Hibernate ORM 5.6.0.Final. Further details may be found in the changelog.
GraalVM
Oracle Labs has released GraalVM 21.3 featuring JDK17-based builds, performance improvements with Native Image, and updates to other tools. More details may be found in this blog post. InfoQ will follow up with a more detailed news story.
Liberica JDK
Concurrent with Oracle's Releases Critical Patch Update for October 2021, BellSoft has released versions 17.0.1, 11.0.13 and 8u312 of Liberica JDK, their downstream distribution of OpenJDK.
JakartaOne Livestream 2021 Conference
The program for the JakartaOne Livestream 2021 conference has been finalized. Speakers include Rudy De Busscher, Dmitry Alexandrov, Ruslan Synytsky, Bruno Baptista, Kevin Wittek, Arjan Tijms, Mike Milinkovich, Kevin Sutter, Adam Bien, Emily Jiang, Reza Rahman, Graham Charters and Mary Grygleski.
Scheduled for December 7, 2021, this year's program committee includes Tanja Obradovic, Jakarta EE program manager at Eclipse, Ivar Grimstad, Jakarta EE developer advocate at Eclipse, Otavio Santana, distinguished software engineer at Zup Innovation, Ivan St. Ivanov, senior programmer at VIDA Software, Dalia Abo Sheasha, Java developer advocate at JetBrains, Jan Westerkamp, managing director at Sensor Aktor GmbH, and Michael Redlich, senior research technician at a petrochemical research company.
Java for Visual Studio Code
Java for Visual Studio Code version 1.0 has been released featuring support for JDK 17, numerous performance and feature enhancements and bug fixes. Developers may learn more at this YouTube video. InfoQ will follow up with a more detailed news story.
Apache Camel for Visual Studio Code
Apache Camel for Visual Studio Code version 0.1.0 has been released featuring: end-of-life for JDK 8 to pave the way for recent updates within the Camel Catalog; and connected-mode for completion of Knative and Kubernetes components.