Java 21 is finally here! Java 21 is the first long-term support (LTS) release since Java 17 was released two years ago. It offers some new functionality and changes that you’ll want to check out for yourself. In particular, there’s the introduction of virtual threads.
In this release of Open Liberty, we also have an update to the featureUtility
command; the command now verifies feature authenticity by default when you install a new feature into Liberty. Also introduced in this release is the ability to include all files in a specified directory in your server configuration.
In Open Liberty 23.0.0.10:
View the list of fixed bugs in 23.0.0.10.
Check out previous Open Liberty GA release blog posts.
Develop and run your apps using 23.0.0.10
If you’re using Maven, include the following in your pom.xml
file:
<plugin>
<groupId>io.openliberty.tools</groupId>
<artifactId>liberty-maven-plugin</artifactId>
<version>3.8.2</version>
</plugin>
Or for Gradle, include the following in your build.gradle
file:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'io.openliberty.tools:liberty-gradle-plugin:3.6.2'
}
}
apply plugin: 'liberty'
Or if you’re using container images:
FROM icr.io/appcafe/open-liberty
Or take a look at our Downloads page.
If you’re using IntelliJ IDEA, Visual Studio Code, or Eclipse IDE, try our open source Liberty developer tools for efficient development, testing, debugging, and application management, all within your IDE.
Support for Java 21
Try out the new changes in Java 21 now and test your applications, microservices, and runtime environments.
To run Open Liberty with Java 21:
-
Download and install Open Liberty 23.0.0.10, or later.
-
Download the latest release of Java 21 from adoptium.net.
-
Edit your Open Liberty runtime server.env file to point
JAVA_HOME
to your Java 21 installation. -
Start testing!
Here are some highlights of the changes between Java 18 and Java 21:
-
400: UTF-8 by Default
-
408: Simple Web Server
-
422: Linux/RISC-V Port
-
439: Generational ZGC
-
440: Record Patterns
But perhaps the most anticipated one of all is the introduction of virtual threads in Java 21:
-
444: Virtual Threads
Virtual threads were designed to provide higher throughput for running tasks that spend most of their time blocked, like waiting for I/O operations. Will the impact of virtual threads live up to the anticipation? Find out for yourself by trying them out in your applications that run on the best Java runtime, Open Liberty!
For more information on Java 21, see:
featureUtility now verifies feature signatures by default
The featureUtility
command now verifies feature signatures before installing the feature into the Liberty runtime. It identifies whether the feature originated from the Liberty development team or is a third-party user feature.
Previously, the featureUtility
tool only verified checksums. While checksums are essential for integrity (showing that the file has not been tampered with), verifying checksums did not ensure the authenticity of downloaded files.
We’ve now implemented an additional step in the process of verifying feature signatures to check both the authenticity and integrity of features that are downloaded from the Maven Central repository.
When running the featureUtility
command:
-
The default behavior is now
--verify=enforce
, meaning that it verifies all specified Liberty features. -
To keep the old behavior instead, you can skip the verification process by using the
--verify=skip
parameter. -
Alternatively, you can set the verification option through environment variables or a
featureUtility.properties
file.
For more information, see:
Include all files in a specified directory in your server configuration
Check out the 23.0.0.11 blog post’s Include all files in a specified directory in your server configuration section.
Get Open Liberty 23.0.0.10 now
Available through Maven, Gradle, Docker, and as a downloadable archive.