JDK 20 Rampdown Phase 2 & JMX Heads-up
by David Delabassee
Hi,
First off, on behalf of Oracle’s Java Team, I’d like to wish you a happy
and prosperous new year!
In 2023, two Java releases will be made available: JDK 20 (March) & JDK
21 (September).
JDK 20 [1] has entered Rampdown Phase Two (RDP2) [2], its initial
Release Candidate is planned for February 9. Given that and to be better
prepared for the future, it makes sense to begin testing your project(s)
using JDK 21 early-access (EA) builds. Your feedback allows us to
evaluate and address issues you find while testing EA builds.
[1] https://jdk.java.net/20/
[2] https://mail.openjdk.org/pipermail/jdk-dev/2023-January/007308.html
[3] https://jdk.java.net/21/
## Heads-up - JDK 21: JMX Subject Delegation & Fine-grained Security
Deprecation
JMX has some features that rely on Security Manager APIs which are
deprecated for removal (see JEP 411 [4]). These features are "Subject
Delegation" and "Fine-grained Security", which both seem to be generally
unused, and would require significant investment to implement without
touching the deprecated APIs. As a consequence, "Subject Delegation" is
being proposed for deprecation in JDK 21 [5].
Fine-grained Security is also being considered for deprecation at the
same time. This feature [6] has allowed configuration of a security
policy to restrict or permit access to specific MBean actions. It is
expected that this feature is generally unused, possibly because there
is simply no demand for such detailed control, and that it is too
complex to create and maintain the policies.
[4] https://openjdk.org/jeps/411
[5] https://bugs.openjdk.org/browse/JDK-8298966
[6]
https://docs.oracle.com/en/java/javase/19/jmx/fine-grained-security-examp...
## JDK 20 Early-Access builds
The latest early-access builds of JDK 20 (builds 32) are available [7],
and are provided under the GNU General Public License v2, with the
Classpath Exception. The Release Notes are available here [8].
[7] https://openjdk.org/projects/jdk/20/
[8] https://jdk.java.net/20/release-notes
### JEPs integrated into JDK 20:
- JEP 429: Scoped Values (Incubator)
- JEP 432: Record Patterns (2nd Preview)
- JEP 433: Pattern Matching for switch (4th Preview)
- JEP 434: Foreign Function & Memory API (2nd Preview)
- JEP 436: Virtual Threads (2nd Preview)
- JEP 437: Structured Concurrency (2nd Incubator)
### Changes in recent JDK 20 builds that may be of interest:
- JDK-8298525: javadoc crashes with "UnsupportedOperationException: Not
yet implemented" in SeeTaglet.inherit [Reported by Apache Ant]
- JDK-8298893: Rename option UsePolyIntrinsics to UsePoly1305Intrinsics
- JDK-8287411: Enhance DTLS Performance
- JDK-8293554: Enhanced DH Key Exchanges
## JDK 21 Early-Access builds
The latest early-access builds of JDK 21 (builds 6) are available [9],
and are provided under the GNU General Public License v2, with the
Classpath Exception. The related EA API Javadoc is also available [10].
[9] https://jdk.java.net/21/
[10] https://download.java.net/java/early_access/jdk21/docs/api/
### Changes in recent JDK 21 builds that may be of interest:
- JDK-8297295: Remove ThreadGroup.allowThreadSuspension
- JDK-8287411: Enhance DTLS performance
- JDK-8233269: Improve handling of JAVA_ARGS
- JDK-8297933: Compiler should only use verified interface types for
optimization
- JDK-8298381: Improve handling of session tickets for multiple SSLContexts
- JDK-8299501: Usage of constructors of primitive wrapper classes should
be avoided in java.util API docs
- JDK-8299475: Enhance SocketException by cause where it is missing in
net and nio area
- JDK-8299544: Improve performance of CRC32C intrinsics (non-AVX-512)
for small inputs
- JDK-8299576: Reimplement java.io.Bits using VarHandle access
- JDK-8278326: Socket close is not thread safe and other cleanup
- JDK-8299673: Simplify object pinning interactions with string
deduplication
## JavaFX 20 & 21 Early-Access Builds
These are early-access builds of the JavaFX Runtime, built from
openjdk/jfx [11]. Those EA builds are intended to allow JavaFX
application developers to build and test their applications with JavaFX
20 on JDK 20. The latest EA builds (JavaFX 20 EA b16 2023/1/14) are now
available [12] and are provided under the GNU General Public License,
version 2, with the Classpath Exception. Please note that initial JavaFX
21 early-access builds (JavaFX 21 b1 2023/1/19) are now available [13]
as well.
Feedback should be reported to the openjfx-dev mailing list [14].
[11] https://github.com/openjdk/jfx
[12] https://jdk.java.net/javafx20/
[13] https://jdk.java.net/javafx21/
[14] http://mail.openjdk.org/mailman/listinfo/openjfx-dev
## Topics of Interest:
- On Markdown in (Java) documentation comments
https://mail.openjdk.org/pipermail/javadoc-dev/2023-January/005563.html
- Lifetimes in the Foreign Function & Memory API
https://cr.openjdk.java.net/~mcimadamore/panama/why_lifetimes.html
- Java's Plans for 2023 - Inside Java Newscast #40
https://inside.java/2023/01/19/newscast-40/
- Informational JEP: Preview Features: A Look Back, and A Look Ahead
https://openjdk.org/jeps/8300604
- Java 20 - An Almost Infinite Memory Segment Allocator
https://minborgsjavapot.blogspot.com/2023/01/java-20-almost-infinite-memo...
- Podcast: “Helidon Níma & Virtual Threads”
https://inside.java/2023/01/12/podcast-029/
- From ThreadLocal to ScopedValue with Loom - JEP Café #16
https://inside.java/2023/01/10/jepcafe16/
- Java 20 - Colossal Sparse Memory Segments
https://minborgsjavapot.blogspot.com/2023/01/java-20-colossal-sparse-memo...
- Another Panama Update
https://mail.openjdk.org/pipermail/panama-dev/2022-December/018182.html
- Secure Coding Guidelines for Java SE
https://inside.java/2023/01/04/secure-coding-guideline/
- Java Networking Enhancements since JDK 11
https://inside.java/2022/12/28/jdk-networking-enhancements/
- Podcast: “Java Language - State of the Union”
https://inside.java/2022/12/23/podcast-028/
- Tutorial - Using Pattern Matching
https://dev.java/learn/pattern-matching/
- 24 Java Features You Missed In 2022 - Inside Java Newscast #39
https://inside.java/2022/12/15/newscast-39/
## January 2023 Critical Patch Update Released
As part of the January 2023 CPU, we released JDK 19.0.2, JDK 17.0.6 LTS,
JDK 11.0.18 LTS and JDK 8u361 as well as OpenJDK 19.0.2.
## Oracle JRE and JDK Cryptographic Roadmap
The crypto roadmap [14] provides the information on Oracle's plans for
changes to the security algorithms and associated policies/settings in
the Oracle JRE & JDK.
[14] https://www.java.com/en/jre-jdk-cryptoroadmap.html
~
We look forward to your continued participation in 2023. And as always,
if you find an issue, please let us know through the usual channels.
1 year, 11 months