First release: Version 21.0.4.0

Learn about the new features and functions available with this release.

IBM® Semeru Runtime Certified Edition for z/OS®, 21 (Semeru 21) contains major changes from IBM SDK, Java™ Technology Edition, Version 8, and minor changes from IBM Semeru Runtime Certified Edition for z/OS, 17. These changes might affect your applications. For more information, see Migrating from earlier releases of IBM Semeru Certified Edition for z/OS.

Similar to the other Semeru versions such as 11 and 17, you can port Semeru 21 applications to z/OS from other operating systems. Use IBM Z® Integrated Information Processors (zIIPs) to offload eligible Java work, and use the JZOS library to run Java applications as batch jobs and to access z/OS system services.

Features from OpenJ9

This release contains features from the 0.46 releases of the Eclipse OpenJ9 project, as listed in the Version 0.46.0 OpenJ9 user documentation. The OpenJ9 items such as class data sharing, diagnostic, and dump extractor tools are included. For more information, see Features from OpenJ9 section in Java 11 First release topic.

Other new features

This release contains the following other features and changes:
  • IBM z/OS security components, such as IBM Java Cryptography Extension Common Cryptographic Architecture (IBMJCECCA), IBM Z Security provider (IBMZSecurity), IBM Java Cryptography Extension Hybrid (IBMJCEHYBRID), Open Java Cryptography Extensions Plus (OpenJCEPlus), Sun Public Key Cryptography Standards #11 (SunPKCS11), and Java Authentication and Authorization Service (JAAS) are supported.

    The capabilities of all the supported security providers are detailed in the Security guide.

  • The introduction of JEP 400 starting in Java SE 18 adopted UTF-8 as the default charset for standard Java APIs across all platforms. As such, in IBM Semeru Runtime Certified Edition for z/OS 21 (Semeru 21), UTF-8 will be the default value of the file.encoding property, and the charset returned by the method java.nio.charsets.Charset.defaultCharset(), unless otherwise specified. Previous releases defaulted to an EBCDIC charset that is dependent on locale settings. For more information, see File encoding and UTF-8 as default charset.

OpenJDK enhancements for OpenJDK 18 to 21

The following JEPs are included in this release of the SDK.

JEPs from OpenJDK 18:
  • 400: UTF-8 by default
  • 408: Simple Web Server
  • 413: Code Snippets in Java API Documentation
  • 416: Re-implement Core Reflection with Method Handles
  • 417: Vector API (Third Incubator)
  • 418: Internet-Address Resolution SPI
  • 419: Foreign Function & Memory API (Second Incubator)
  • 420: Pattern Matching for switch (Second Preview)
  • 421: Deprecate Finalization for Removal
JEPs from OpenJDK 19:
  • 405: Record Patterns (Preview)
  • 424: Foreign Function & Memory API (Preview)
  • 425: Virtual Threads (Preview)
  • 426: Vector API (Fourth Incubator)
  • 427: Pattern Matching for switch (Third Preview)
  • 428: Structured Concurrency (Incubator)
JEPs from OpenJDK 20
  • 429: Scoped Values (Incubator)
  • 432: Record Patterns (Second Preview)
  • 433: Pattern Matching for switch (Fourth Preview)
  • 434: Foreign Function & Memory API (Second Preview)
  • 436: Virtual Threads (Second Preview)
  • 437: Structured Concurrency (Second Incubator)
  • 438: Vector API (Fifth Incubator)
JEPs from OpenJDK 21:
  • 430: String Templates (Preview)
  • 431: Sequenced Collections
  • 440: Record Patterns
  • 441: Pattern Matching for switch
  • 442: Foreign Function & Memory API (Third Preview)
  • 443: Unnamed Patterns and Variables (Preview)
  • 444: Virtual Threads
  • 445: Unnamed Classes and Instance Main Methods (Preview)
  • 446: Scoped Values (Preview)
  • 448: Vector API (Sixth Incubator)
  • 451: Prepare to Disallow the Dynamic Loading of Agents
  • 452: Key Encapsulation Mechanism API
  • 453: Structured Concurrency (Preview)
For a complete list and detailed information about the JEPs, see the OpenJDK website http://openjdk.java.net/jeps/0.