Java News Roundup: JDK 22 Release Schedule, Project Babylon, Helidon 4.0-RC2, MicroProfile 6.1-RC1
MMS • Michael Redlich
This week’s Java roundup for September 4th, 2023 features news from OpenJDK, JDK 22, JDK 21, GraalVM Native Build Tools 0.9.26, Quarkus 3.3.2, MicroProfile 6.1-RC1, MicroProfile Config 3.1-RC2, Helidon 4.0.0-M2, Open Liberty 184.108.40.206-beta, Hibernate Search 7.0.0.Beta1, Infinispan 14.0.17.Final, Eclipse Mojarra 4.0.4, JDKMon 17.0.71, JHipster 8.0.0-beta.3 and 7.9.4 and JavaZone 2023 Conference.
Paul Sandoz, Java architect at Oracle, has initiated a proposal to start a new Java project named Babylon. The primary goal will be to “extend the reach of Java to foreign programming models such as SQL, differentiable programming, machine learning models, and GPUs.” Babylon can achieve Java’s reach to foreign programming models with code reflection, an enhancement to reflective programming in Java, to enable standard access, analysis, and transformation of Java code in a suitable form. Support for a foreign programming model can then be more easily implemented as a Java library.
Sandoz has offered to lead this new project with an initial reviewer list to include Maurizio Cimadamore, software architect at Oracle and Project Panama lead, Gary Frost, software architect at Oracle, and Sandhya Viswanathan, principal software engineer at Intel. Developers can learn more by watching this YouTube video from the recent JVM Language Summit.
Sandoz also introduced JEP Draft 8315945, Vector API (Seventh Incubator) this past week. 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), to be delivered in the upcoming GA release of 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.
Build 14 of the JDK 22 early-access builds was made available this past week featuring updates from Build 13 that include fixes to various issues. More details on this build may be found in the release notes.
- Rampdown Phase One (fork from main line): December 7, 2023
- Rampdown Phase Two: January 18, 2024
- Initial Release Candidate: February 8, 2024
- Final Release Candidate: February 22, 2024
- General Availability: March 19, 2024
Comments on this proposal from JDK committers and reviewers are open for discussion until September 15, 2023 at 23:00 UTC. If there are no objections at that time, then as per the JEP 2.0 process proposal, this will be the schedule for JDK 22.
On the road to version 1.0, Oracle Labs has released version 0.9.26 of Native Build Tools, a GraalVM project consisting of plugins for interoperability with GraalVM Native Image. This latest release provides notable changes such as: use of the AttributeProvider API to fix compatibility with Gradle 8.3; explicitly declare the dependencies for the Plexus-Xml and Plexus-Utils libraries to fix compatibility with Maven 3.9.x; and prepare Native Build Tools for the upcoming release of GraalVM for JDK 21. Further details on this release may be found in the changelog.
In terms of releases, things have been quiet over at Spring these past two weeks, but that hasn’t stopped Josh Long, Spring developer advocate at VMware. Along with his weekly “This Week in Spring” blog posts, Long has published: a personal recap of SpringOne 2023; his latest blog post on how Spring Boot 3.2, GraalVM native images, Java 21 and virtual threads with Project Loom all work together; and “Bootiful” podcasts with Rob Winch, Spring Security lead at VMware, Daniel Garnier-Moiroux, senior member of technical staff, Spring Engineering at VMware, and Chris Richardson, founder and CEO at Eventuate and president at Chris Richardson Consulting.
The release of Quarkus 3.3.2 ships with dependency upgrades and notable changes such as: improvements to the OIDC Auth0 in the Dev UI; a removal of the
imagePushSecret() method from the
BuildConfig class that has been deemed invalid when using the internal registry; and a fix for a Quarkus build using the
quarkus.container-image.builder=jib property that does not consider the
auth.json file from Podman. More details on this release may be found in the changelog.
The MicroProfile Working Group has provided the first release candidate of MicroProfile 6.1 featuring updates to the MicroProfile Config, MicroProfile Metrics and MicroProfile Telemetry specifications. Therefore, the final feature set of MicroProfile 6.1, scheduled for a GA release in early October, will include:
- Jakarta EE 10 Core Profile
- MicroProfile Config 3.1
- MicroProfile Fault Tolerance 4.0
- MicroProfile Metrics 5.1
- MicroProfile Health 4.0
- MicroProfile Telemetry 1.1
- MicroProfile OpenAPI 3.1
- MicroProfile JWT Authentication 2.1
- MicroProfile Rest Client 3.0
It is important to note that four of the seven specifications contained within the Jakarta EE 10 Core Profile, namely: Jakarta Contexts and Dependency Injection (CDI) 4.0; Jakarta RESTful Web Services 3.1; Jakarta JSON Processing 2.1; and Jakarta JSON Binding 3.0, are the evolved JSR specifications from Java EE 7 and Java EE 8 from the early days of MicroProfile.
The second release candidate of MicroProfile Config 3.1 delivers notable changes such as: an update to the TCK to align with breaking changes in CDI 4.0 that include an empty
beans.xml file and change in bean discovery mode from
annotated; and the
MissingValueOnObserverMethodInjectionTest class, that asserts a
DeploymentException, fails a different reason due to the the
ConfigObserver bean being defined as
@ApplicationScoped (proxyable) and
final (not proxyable). Further details on this release may be found in the list of issues.
The second release candidate of Helidon 4.0.0 delivers: a baseline of JDK 21; full integration of the Helidon Níma web server; significantly refactored Helidon SE APIs to optimize imperative/blocking use cases; and numerous enhancements to the Web Server and Web Client components to achieve feature parity with Helidon 3.0. More details on this release may be found in the changelog.
IBM has released version 220.127.116.11-beta of Open Liberty to provide continuous improvement: for Liberty Spring Boot Support 3.0 with capability to “thin” an application when they are created in containers; and the early preview of the Jakarta Data specification.
The first beta release of Hibernate Search 7.0.0 delivers a number of dependency upgrades, namely: JDK 11 as a baseline, a migration to Jakarta EE, Hibernate ORM 6.3.0.Final, Lucene 9.7.0, Elasticsearch 8.9.0 and OpenSearch 2.9.0.
Version 14.0.17.Final of Infinispan has been released featuring notable fixes such as: the cache created by
ServerEventLogger class blocks the cache join with the potential for a deadlock; the
DefaultExecutorFactory class creating unnecessary multiple instances of a Java
ThreadGroup; and add missing cross-site metrics for the implementation of the
RpcManager interface. Further details on this release may be found in the list of issues.
The release of Eclipse Mojarra 4.0.4 delivers notable changes such as: a fix for Mojarra failing to initialize when the Bean Deployment Archive in Weld is empty; a more robust implementation of the
RetargetedAjaxBehavior class; and return a static empty data model from the
UIData class if its current value is
null. More details on this release may be found in the release notes.
Version 17.0.71 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 additional information about the remaining days to the GA release of JDK 21 and the next OpenJDK update.
The third beta release of JHipster release 8.0.0 with enhancements such as: support for JDK 20 and JDK 21; a cleanup of the JHipster Domain Language (JDL) to move file manipulation, configuration and validation to the JDL generator; and a fix for the H2 console not loading due to an incorrect path setting. Further details on this release may be found in the release notes.