What's new in version 0.25.0
The following new features and notable changes since version 0.24.0 are included in this release:
- New binaries and changes to supported environments
- New JDK 16 features
- Support for the
-verbose:module
option - Enabling
zlibNX
hardware-accelerated data compression and decompression on AIX - z/OS support for the
%sysname
dump token - Single build for compressed references and non-compressed references
Features and changes
Binaries and supported environments
Eclipse OpenJ9™ release 0.25.0 supports OpenJDK 16. OpenJDK 16 with Eclipse OpenJ9 is not a long term support (LTS) release.
Although it might be possible to build an OpenJDK 8 or OpenJDK 11 with OpenJ9 release 0.25.0, testing at the project is not complete and therefore support for new features that apply to these Java versions is not available.
To learn more about support for OpenJ9 releases, including OpenJDK levels and platform support, see Supported environments.
New JDK 16 features
The following features are supported by OpenJ9:
- JEP 338: Vector API (incubator)
- OpenJ9 adds optimizations for this feature.
- JEP 390: Warnings for value-based classes
- OpenJ9 adds option
-XX:DiagnoseSyncOnValueBasedClasses=<number>
for compatibility with the reference implementation.
- OpenJ9 adds option
- JEP 395: Records
- JEP 397: Sealed Classes (second preview)
The following features will be supported by OpenJ9 in a future release:
The following features are implemented in OpenJDK and available in any builds of OpenJDK 16 with OpenJ9:
- JEP 347: Enable C++ 14 language features
- JEP 380: Unix-domain socket channels
- JEP 394: Pattern matching for
instanceof
- JEP 396: Strongly encapsulate JDK internals by default
- JEP 392: Packaging tool
- (Linux®, macOS®, and Windows™ only) Promoted from incubation to a production-ready feature in this release. See Using
jpackage
for details.
- (Linux®, macOS®, and Windows™ only) Promoted from incubation to a production-ready feature in this release. See Using
You can find the full list of features for JDK 16 at the OpenJDK project. Any remaining features that are listed do not apply to OpenJ9.
Note: Applications might be adversely affected by
JEP 396 if they make use of internal APIs. You should update your application to use standard APIs. To temporarily work around this problem, set --illegal-access=permit
on the command line, which prints a warning that is similar to the following example when an illegal access call is made:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.openj9.test.com.ibm.jit.Test_JITHelpers (file:/home/jenkins/workspace/Test_openjdk11_j9.functional_ppc64_aix_Nightly_testList_1/jvmtest/functional/Java8andUp/GeneralTest.jar) to field java.lang.String.value
WARNING: Please consider reporting this to the maintainers of org.openj9.test.com.ibm.jit.Test_JITHelpers
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Support for the -verbose:module
option
The -verbose:module
option is now supported for Java 11 and later releases. This option writes information to stderr
for each module that is loaded and unloaded.
Enabling zlibNX
hardware-accelerated data compression and decompression on AIX
By default, AIX® uses the system zlib
library for data compression and decompression.
On systems that contain the Nest accelerator (NX) co-processor, OpenJ9 now uses the zlibNX
library instead, if it is installed. To learn more about hardware acceleration and the zlibNX
library, see Hardware acceleration.
z/OS support for the %sysname
dump token
The %sysname
dump token is added on z/OS, which equates to the SYSNAME sysparm. See Dump agent tokens.
Single build for compressed references and non-compressed references
A single build now supports both compressed references and non-compressed references. The object reference mode is selected at run time based on the specified heap size (-Xmx
) or by using command-line options that control the selection of compressed references.
If you used a large heap build for an earlier release of OpenJ9 because you did not require compressed references, you might need to turn it off if compressed references mode is being selected automatically at run time. Use the -Xnocompressedrefs
option when you start your application.
The compressedrefs
directory is no longer present in the single build.
To learn about the benefits of using compressed references, see Compressed references.
Full release information
To see a complete list of changes between Eclipse OpenJ9 version 0.24.0 and version 0.25.0 releases, see the Release notes.