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-example.html
## 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