This week's Java roundup for July 1st, 2024 features news highlighting: the debut of the Project Leyden early-access builds, LangChain4j 0.32.0, JReleaser 1.13.0, Apache Groovy point and milestone releases and updates on Jakarta EE 11 and initial discussions on Jakarta EE 12.
OpenJDK
The initial set of Project Leyden early-access builds is now available for the Java community. Initially proposed in April 2020, the primary goal of Project Leyden is to "improve the startup time, time to peak performance, and footprint of Java programs." Build 24-leyden+2-8 delivers highlights that include: a unified Cache Data Store (CDS) archive that supports multiple types of optimization artifacts; ahead-of-time compilation of Java methods; and a class loader lookup cache. This release is built on an incomplete version of JDK 24. More details on this release may be found in the release notes and this InfoQ news story.
JDK 23
Build 30 of the JDK 23 early-access builds was made available this past week featuring updates from Build 29 that include fixes for various issues. Further details on this release may be found in the release notes, and details on the new JDK 23 features may be found in this InfoQ news story.
JDK 24
Build 5 of the JDK 24 early-access builds was also made available this past week featuring updates from Build 4 that include fixes for various issues. More details on this release may be found in the release notes.
For JDK 23 and JDK 24, developers are encouraged to report bugs via the Java Bug Database.
Jakarta EE 11
In his weekly Hashtag Jakarta EE blog, Ivar Grimstad, Jakarta EE Developer Advocate at the Eclipse Foundation, provided an update on the upcoming release of Jakarta EE 11 and early plans for Jakarta EE 12, writing:
Jakarta EE 11 is almost ready. All the individual specifications are done, and the Jakarta EE Platform project is finalizing the Jakarta EE Platform, Web Profile, and Core Profile specifications. The last piece of the puzzle is the work with the Jakarta EE TCK which is being refactored from Apache Ant and JavaTest Harness to a more modern approach using Apache Maven, JUnit 5, and Arquillian.In parallel to this work, the platform project has started the discussions for a Jakarta EE 12 release sometime in the first half of 2026 with a baseline of Java 21 and verified with compatible implementations passing the TCK on Java 21 and Java 25. Note that these are very preliminary discussions and subject to change.
The road to Jakarta EE 11 included four milestone releases with the potential for release candidates as necessary before the GA release in 3Q2024.
MicroProfile
On the road to MicroProfile 7.0, the second release candidate of MicroProfile Telemetry 2.0 provides notable changes such as: expose the OpenTelemetry APIs for an improved user experience; and an update to the MicroProfile Metrics TCK to ensure that metrics are present. Further details on this release may be found in the release notes.
Quarkus
Quarkus 3.12.1, the first maintenance release, delivers dependency upgrades and resolutions to notable issues such as: a NullPointerException
from the OpenTelemetry gRPC OTLP traces exporter upon application shutdown when the HTTP2 connection stream is closed; an InvalidPathException
using the Web Dependency Locator extension on Windows; and a RuntimeException
when a RESTEasy application attempts to instantiate an abstract base class. More details on this release may be found in the changelog.
Open Liberty
IBM has released version 24.0.0.7-beta of Open Liberty featuring: enhancements to Jakarta RESTful Web Services 4.0 specification that include new API methods and media type values; support for the Jakarta Faces 4.1 specification; and a new feature in the Audit feature that does not generate records for REST Handler applications since this feature is not designed for REST Handler applications.
Apache Software Foundation
The ninth alpha release of Apache Groovy 5.0.0 delivers bug fixes, dependency upgrades and improvements such as: support for type arguments and dynamic selector in the getText()
method defined in the MethodCallExpression
class; produce and publish CycloneDX SBOM artifacts; and support for lambda expressions as a named value. Further details on this release may be found in the release notes.
Next, the release of Apache Groovy 4.0.22 provides bug fixes, dependency upgrades and improvements: issue a warning when accessing static fields that are "shadowed" by get()
methods; and improved generated bytecode for identity by leveraging the IF_ACMPEQ
and IF_ACMPNE
classes defined in the Apache Commons Byte Code Engineering Library (BCEL). More details on this release may be found in the release notes.
And finally, the release of Apache Groovy 3.0.22 ships with bug fixes, dependency upgrades and an improvement where the 60-character limit was increased to 80 characters in the getMessage()
method, defined in the MissingMethodException
class, that calls FormatHelper.toTypeString()
, prevents truncating argument types in a fully-qualified class name. Further details on this release may be found in the release notes.
The twenty second milestone release of Apache Tomcat 11.0.0 delivers notable changes from M21 such as: move OpenSSL support using JEP 454, Foreign Function & Memory API, to a separate JAR named tomcat-coyote-ffm.jar
that advertises Java 22 in its manifest; ensure that the include directives in a tag file, both absolute and relative, are processed correctly when packaging in a JAR file; and expand the implementation of the filter value of the AuthenticatorBase.AllowCorsPreflight
inner enum class in conjunction with the allowCorsPreflightBypass()
method, defined in the AuthenticatorBase
class, so that it applies to all requests that match the configured URL patterns for the CORS filter, rather than only applying if the CORS filter is mapped to /*
. More details on this release may be found in the release notes.
Infinispan
The first development release of Infinispan 15.1.0 provide notable changes such as: allow the use of the Remote Query API from the server-side tasks; and replacement of the Query
interface, defined in the org.infinispan.query.dsl
package, with the Query
interface, defined in the org.infinispan.commons.api.query
package, for the methods defined in the RemoteCache
interface due to deprecated methods. Further details on this release may be found in the list of issues.
JobRunr
Version 7.2.2 of JobRunr, a library for background processing in Java that is distributed and backed by persistent storage, has been released with a resolution that prevents a NullPointerException
if a job succeeds right when updateProcessing()
, defined in the Job
class, was called. More details on this release may be found in the release notes.
JReleaser
Version 1.13.1 of JReleaser, a Java utility that streamlines creating project releases, has been released to deliver bug fixes, improvements in documentation, dependency upgrades and new features such as: allow platform-specific Java options to be set in the Java Archive assembler; support for GitHub Artifact Attestations; and the ability to pass in a profile ID for staging in Nexus2 deployment. Version 1.13.1 is a quick fix release for version 1.13.0 which was released a few hours prior to version 1.13.1. Further details on this release may be found in the release notes for version 1.13.1 and version 1.13.0.
LangChain4j
Version 0.32.0 of LangChain for Java (LangChain4j) features new integrations: Jlama, Workers AI and the Selenium Document Loader; and new features such as: support for custom POJOs as method parameters in the @Tool
annotation; repurpose the @Description
annotation to describe POJO fields; and an implementation of embedding removal methods for Milvus, Elasticsearch, InMemoryEmbeddingStore and Weaviate. More details on this release may be found in the release notes.
JDKUpdater
Version 17.0.55+77 of JDKUpdater, a new utility that provides developers the ability to keep track of updates related to builds of OpenJDK and GraalVM. Introduced in mid-March by Gerrit Grunwald, principal engineer at Azul, this release provides a new feature in which JVMs that are compliant to the TCK displays this in the name (superscript TCK). Further details on this release may be found in the release notes.
RefactorFirst
Jim Bethancourt, Principal Software Consultant at Improving, an IT services firm offering training, consulting, recruiting, and project services, has announced the second milestone release of RefactorFirst 0.5.0. This release delivers: a refactored codebase to improve analysis performance, HTML report output look, and developer ergonomics; the addition of a circular reference detector; and generation of Cycle Data tables and rendering cycle images. More details on this release may be found in the release notes.
Gradle
The second release candidate of Gradle 8.9 delivers continuous improvement on: an improved error and warning reporting for variant issues during dependency resolution; structural details exposed of Java compilation errors for IDE integrators, allowing for easier analysis and resolving issues; and the ability to display more detailed information about JVMs used by Gradle. Further details on this release may be found in the release notes.