JDK 21 is in Rampdown / The importance of testing with Early-Access Builds

David Delabassee <[email protected]> Wed, 14 Jun 2023 10:22:48 +0000
Newsgroups gmane.comp.lang.jython.devel
Message-ID <SA1PR10MB76995A5CE5C2E5E79B8EED05FC5AA@SA1PR10MB7699.namprd10.prod.outlook.com>
--===============5181985653809817199==
Content-Language: en-GB
Content-Type: multipart/alternative;
	boundary="_000_SA1PR10MB76995A5CE5C2E5E79B8EED05FC5AASA1PR10MB7699namp_"

--_000_SA1PR10MB76995A5CE5C2E5E79B8EED05FC5AASA1PR10MB7699namp_
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

Welcome to the OpenJDK Quality Outreach June update.

JDK 21 has entered Rampdown Phase One (RDP1) [1], which means that the main=
-line has been forked into a dedicated JDK 21 stabilization repository. At =
this point, the overall JDK 21 feature set is frozen. Any changes pushed to=
 the main line are now bound for JDK 22. The stabilization repository is op=
en for select bug fixes and, with approval, late low-risk enhancements per =
the JDK Release Process [2]. And in contrast to past practice, most stabili=
zation changes will be integrated via backports from the main-line reposito=
ry [1].

The coming weeks are critical to identify and resolve as many issues as pos=
sible, i.e. before JDK 21 enters the Release Candidates phase in August. We=
 need to make sure those few weeks are leveraged to test both existing code=
 running on top of JDK 21 and new JDK 21 features. The heads-up below illus=
trates the importance and the benefits of doing such tests.

[1] https://mail.openjdk.org/pipermail/jdk-dev/2023-June/007911.html
[2] https://openjdk.org/jeps/3#Integrating-fixes-and-enhancements


## Heads-up: On the Importance of Doing Tests With OpenJDK Early-Access Bui=
lds

The following is a recent example that demonstrates the benefits of testing=
 an existing codebase using the OpenJDK early-access builds.

Last month, we published a heads-up focused on Sequenced Collections [3] as=
 they could potentially introduce some incompatibilities.
The Eclipse Collections (EC) team did their homework and sure enough, EC wa=
s impacted as it was now throwing compilation errors with JDK 21 early-acce=
ss builds. The EC team was able to quickly fix those compilation errors, i.=
e., it was mainly about adding overriding default methods. But once those c=
ompilation errors were fixed, and this is where it gets interesting, anothe=
r issue surfaced. This time, the problem was related to LinkedHashMap seria=
lization. After some investigation, the EC team identified that second issu=
e as JDK one and a JBS ticket was opened. That issue was then confirmed as =
a JDK regression and was promptly fixed in OpenJDK main-line, i.e., JDK 22.=
 The fix was then backported into the JDK 21 stabilization repository. This=
 EC pull request [4] provides additional details.
In this case, the JDK fix was easy but it is nevertheless the kind of issue=
s that could have easily fallen through the crack if the EC team wasn=92t p=
ro-actively testing with OpenJDK early-access builds. The EC issue would ha=
ve then surfaced after the JDK 21 General Availability... and who knows whe=
n the JDK LinkedHashMap serialization regression would have been fixed?
TL; DR; Testing an existing codebase with OpenJDK early-access builds is a =
win-win situation. It helps the project itself, Eclipse Collections in this=
 case, as it enables developers to identify issues in their own codebase be=
fore that new JDK version is Generally Available. It helps the JDK too as a=
ny JDK issue detected early enough in the development cycle gives the OpenJ=
DK engineers a chance to address it before the General Availability of that=
 new JDK version. And last but not least, having a robust JDK is also a win=
 for the Java community at large.

And thanks to the Eclipse Collections team and especially to Donald Raab fo=
r helping to make the Java platform more robust!

[3] https://inside.java/2023/05/12/quality-heads-up/
[4] https://github.com/eclipse/eclipse-collections/pull/1461


## JDK 21 Early-Access Builds

JDK 21 Early-Access builds 26 are now available [5], and are provided under=
 the GNU General Public License v2, with the Classpath Exception. The Relea=
se Notes are available here [6] and the javadocs here [7].

### JEPs integrated into JDK 21:
- 430: String Templates (Preview)
- 431: Sequenced Collections
- 439: Generational ZGC
- 440: Record Patterns
- 441: Pattern Matching for switch
- 442: Foreign Function & Memory API (3rd 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 (6th Incubator)
- 449: Deprecate the Windows 32-bit x86 Port for Removal
- 451: Prepare to Disallow the Dynamic Loading of Agents
- 452: Key Encapsulation Mechanism API
- 453: Structured Concurrency (Preview)

It is worth mentioning that JEP 404 (Generational Shenandoah - Experimental=
) has been proposed to drop from JDK 21 [8].

### Changes in recent JDK 21 builds (b23-b26) that may be of interest:

Note that this is only a curated list of changes, make sure to check [9] fo=
r additional changes.

- JDK-8298127: HSS/LMS Signature Verification
- JDK-8305972: Update XML Security for Java to 3.0.2
- JDK-8308244: Installation of jdk rpm corrupts alternatives
- JDK-8307990: jspawnhelper must close its writing side of a pipe before re=
ading from it
- JDK-8303465: KeyStore of type KeychainStore, provider Apple does not show=
 all trusted certificates
- JDK-8303530: Redefine JAXP Configuration File
- JDK-8307478: Implementation of Prepare to Restrict The Dynamic Loading of=
 Agents
- JDK-8301553: Support Password-Based Cryptography in SunPKCS11
- JDK-8308341: JNI_GetCreatedJavaVMs returns a partially initialized JVM
- JDK-8308108: Support Unicode extension for collation settings
- JDK-8305972: Update XML Security for Java to 3.0.2
- JDK-8305091: Change ChaCha20 cipher init behavior to match AES-GCM
- JDK-8179502: Enhance OCSP, CRL and Certificate Fetch Timeouts
- JDK-8307547: Support variant collations
- JDK-8308876: JFR: Deserialization of EventTypeInfo uses incorrect attribu=
te names
- JDK-8297878: KEM: Implementation
- JDK-8308819: add JDWP and JDI virtual thread support for ThreadReference.=
ForceEarlyReturn
- JDK-8307779: Relax the java.awt.Robot specification
- JDK-8306703: JFR: Summary views
- JDK-8309146: extend JDI StackFrame.setValue() and JDWP StackFrame.setValu=
es minimal support for virtual threads
- JDK-8307840: SequencedMap view method specification and implementation ad=
justments
- JDK-8304438: jcmd JVMTI.agent_load should obey EnableDynamicAgentLoading
- JDK-8306431: File.listRoots method description should be re-examined

[5] https://jdk.java.net/21/
[6] https://jdk.java.net/21/release-notes
[7] https://download.java.net/java/early_access/jdk21/docs/api/
[8] https://mail.openjdk.org/pipermail/jdk-dev/2023-June/007910.html
[9] https://github.com/openjdk/jdk/compare/jdk-21+23...jdk-21+26


## JDK 22 Early-Access Builds

Given that JDK 21 is now in Rampdown Phase, the initial JDK 22 Early-Access=
 builds are now also available [10]. Those EA builds are provided under the=
 GNU General Public License v2, with the Classpath Exception.
[10] https://jdk.java.net/22/

## JavaFX 21 Early-Access Builds

These are early access builds of the JavaFX 21 Runtime, built from openjdk/=
jfx [11]. They are intended to allow JavaFX application developers to build=
 and test their applications with JavaFX 21 on JDK 21. The latest builds 21=
 (2023/6/8) are now available [12]. These early-access builds are provided =
under the GNU General Public License, version 2, with the Classpath Excepti=
on. Feedback should be reported to the openjfx-dev mailing list [13].
[11] https://github.com/openjdk/jfx
[12] https://jdk.java.net/javafx21/
[13] http://mail.openjdk.org/mailman/listinfo/openjfx-dev

## Topics of Interest

All That is in Java 21?!
https://inside.java/2023/06/08/newscast-50/

Script Java Easily in 21 and Beyond
https://inside.java/2023/05/25/newscast-49/

New JFR `view` Command
https://egahlin.github.io/2023/05/30/views.html

Patterns: Exhaustiveness, Unconditionality, and Remainder
https://openjdk.org/projects/amber/design-notes/patterns/exhaustiveness

Design Document on Nullability and Value Types
https://mail.openjdk.org/pipermail/valhalla-spec-observers/2023-May/002243.=
html

JFR: Java's Observability & Monitoring Framework - Stack Walker #2
https://inside.java/2023/05/14/stackwalker-02/


## JDK Crypto Roadmap Update

Oracle updated the JDK Cryptographic Roadmap to announce a change, with the=
 Oct CPU (2023-10-17), of the priority order used by JDK 8 and JDK 11 when =
negotiating cipher suites to use on TLS connections. Please check the JDK C=
ryptographic Roadmap page [14] for more details.
[14] https://www.java.com/en/jre-jdk-cryptoroadmap.html


~

Please, make sure to test your projects using the JDK 21 EA builds as we st=
ill have time to fix potential issues. And thanks for participating in the =
OpenJDK Quality Outreach program!


--David

--_000_SA1PR10MB76995A5CE5C2E5E79B8EED05FC5AASA1PR10MB7699namp_
Content-Type: text/html; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

<html xmlns:o=3D"urn:schemas-microsoft-com:office:office" xmlns:w=3D"urn:sc=
hemas-microsoft-com:office:word" xmlns:m=3D"http://schemas.microsoft.com/of=
fice/2004/12/omml" xmlns=3D"http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DWindows-1=
252">
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;
	mso-ligatures:standardcontextual;
	mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri",sans-serif;
	mso-fareast-language:EN-US;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
--></style>
</head>
<body lang=3D"en-BE" link=3D"#0563C1" vlink=3D"#954F72" style=3D"word-wrap:=
break-word">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">Welcome to the OpenJDK Quality Outreach June update.=
<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">JDK 21 has entered Rampdown Phase One (RDP1) [1], wh=
ich means that the main-line has been forked into a dedicated JDK 21 stabil=
ization repository. At this point, the overall JDK 21 feature set is frozen=
. Any changes pushed to the main line
 are now bound for JDK 22. The stabilization repository is open for select =
bug fixes and, with approval, late low-risk enhancements per the JDK Releas=
e Process [2]. And in contrast to past practice, most stabilization changes=
 will be integrated via backports
 from the main-line repository [1].<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">The coming weeks are critical to identify and resolv=
e as many issues as possible, i.e. before JDK 21 enters the Release Candida=
tes phase in August. We need to make sure those few weeks are leveraged to =
test both existing code running on
 top of JDK 21 and new JDK 21 features. The heads-up below illustrates the =
importance and the benefits of doing such tests.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">[1] <a href=3D"https://mail.openjdk.org/pipermail/jd=
k-dev/2023-June/007911.html">
https://mail.openjdk.org/pipermail/jdk-dev/2023-June/007911.html</a><o:p></=
o:p></p>
<p class=3D"MsoNormal">[2] <a href=3D"https://openjdk.org/jeps/3#Integratin=
g-fixes-and-enhancements">
https://openjdk.org/jeps/3#Integrating-fixes-and-enhancements</a><o:p></o:p=
></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">## Heads-up: On the Importance of Doing Tests With O=
penJDK Early-Access Builds<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">The following is a recent example that demonstrates =
the benefits of testing an existing codebase using the OpenJDK early-access=
 builds.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Last month, we published a heads-up focused on Seque=
nced Collections [3] as they could potentially introduce some incompatibili=
ties.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p></o:p></p>
<p class=3D"MsoNormal">The Eclipse Collections (EC) team did their homework=
 and sure enough, EC was impacted as it was now throwing compilation errors=
 with JDK 21 early-access builds. The EC team was able to quickly fix those=
 compilation errors, i.e., it was
 mainly about adding overriding default methods. But once those compilation=
 errors were fixed, and this is where it gets interesting, another issue su=
rfaced. This time, the problem was related to LinkedHashMap serialization. =
After some investigation, the EC
 team identified that second issue as JDK one and a JBS ticket was opened. =
That issue was then confirmed as a JDK regression and was promptly fixed in=
 OpenJDK main-line, i.e., JDK 22. The fix was then backported into the JDK =
21 stabilization repository. This
 EC pull request [4] provides additional details.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p></o:p></p>
<p class=3D"MsoNormal">In this case, the JDK fix was easy but it is neverth=
eless the kind of issues that could have easily fallen through the crack if=
 the EC team wasn=92t pro-actively testing with OpenJDK early-access builds=
. The EC issue would have then surfaced
 after the JDK 21 General Availability... and who knows when the JDK Linked=
HashMap serialization regression would have been fixed?<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p></o:p></p>
<p class=3D"MsoNormal">TL; DR; Testing an existing codebase with OpenJDK ea=
rly-access builds is a win-win situation. It helps the project itself, Ecli=
pse Collections in this case, as it enables developers to identify issues i=
n their own codebase before that new
 JDK version is Generally Available. It helps the JDK too as any JDK issue =
detected early enough in the development cycle gives the OpenJDK engineers =
a chance to address it before the General Availability of that new JDK vers=
ion. And last but not least, having
 a robust JDK is also a win for the Java community at large.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">And thanks to the Eclipse Collections team and espec=
ially to Donald Raab for helping to make the Java platform more robust!
<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">[3] <a href=3D"https://inside.java/2023/05/12/qualit=
y-heads-up/">
https://inside.java/2023/05/12/quality-heads-up/</a><o:p></o:p></p>
<p class=3D"MsoNormal">[4] <a href=3D"https://github.com/eclipse/eclipse-co=
llections/pull/1461">
https://github.com/eclipse/eclipse-collections/pull/1461</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">## JDK 21 Early-Access Builds<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">JDK 21 Early-Access builds 26 are now available [5],=
 and are provided under the GNU General Public License v2, with the Classpa=
th Exception. The Release Notes are available here [6] and the javadocs her=
e [7].<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">### JEPs integrated into JDK 21:<o:p></o:p></p>
<p class=3D"MsoNormal">- 430: String Templates (Preview)<o:p></o:p></p>
<p class=3D"MsoNormal">- 431: Sequenced Collections<o:p></o:p></p>
<p class=3D"MsoNormal">- 439: Generational ZGC<o:p></o:p></p>
<p class=3D"MsoNormal">- 440: Record Patterns<o:p></o:p></p>
<p class=3D"MsoNormal">- 441: Pattern Matching for switch<o:p></o:p></p>
<p class=3D"MsoNormal">- 442: Foreign Function &amp; Memory API (3rd Previe=
w)<o:p></o:p></p>
<p class=3D"MsoNormal">- 443: Unnamed Patterns and Variables (Preview)<o:p>=
</o:p></p>
<p class=3D"MsoNormal">- 444: Virtual Threads<o:p></o:p></p>
<p class=3D"MsoNormal">- 445: Unnamed Classes and Instance Main Methods (Pr=
eview)<o:p></o:p></p>
<p class=3D"MsoNormal">- 446: Scoped Values (Preview)<o:p></o:p></p>
<p class=3D"MsoNormal">- 448: Vector API (6th Incubator)<o:p></o:p></p>
<p class=3D"MsoNormal">- 449: Deprecate the Windows 32-bit x86 Port for Rem=
oval<o:p></o:p></p>
<p class=3D"MsoNormal">- 451: Prepare to Disallow the Dynamic Loading of Ag=
ents<o:p></o:p></p>
<p class=3D"MsoNormal">- 452: Key Encapsulation Mechanism API<o:p></o:p></p=
>
<p class=3D"MsoNormal">- 453: Structured Concurrency (Preview)<o:p></o:p></=
p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">It is worth mentioning that JEP 404 (Generational Sh=
enandoah - Experimental) has been proposed to drop from JDK 21 [8].<o:p></o=
:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">### Changes in recent JDK 21 builds (b23-b26) that m=
ay be of interest:<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Note that this is only a curated list of changes, ma=
ke sure to check [9] for additional changes.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">- JDK-8298127: HSS/LMS Signature Verification<o:p></=
o:p></p>
<p class=3D"MsoNormal">- JDK-8305972: Update XML Security for Java to 3.0.2=
 <o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8308244: Installation of jdk rpm corrupts alte=
rnatives<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8307990: jspawnhelper must close its writing s=
ide of a pipe before reading from it<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8303465: KeyStore of type KeychainStore, provi=
der Apple does not show all trusted certificates<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8303530: Redefine JAXP Configuration File<o:p>=
</o:p></p>
<p class=3D"MsoNormal">- JDK-8307478: Implementation of Prepare to Restrict=
 The Dynamic Loading of Agents<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8301553: Support Password-Based Cryptography i=
n SunPKCS11<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8308341: JNI_GetCreatedJavaVMs returns a parti=
ally initialized JVM<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8308108: Support Unicode extension for collati=
on settings<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8305972: Update XML Security for Java to 3.0.2=
<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8305091: Change ChaCha20 cipher init behavior =
to match AES-GCM<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8179502: Enhance OCSP, CRL and Certificate Fet=
ch Timeouts<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8307547: Support variant collations<o:p></o:p>=
</p>
<p class=3D"MsoNormal">- JDK-8308876: JFR: Deserialization of EventTypeInfo=
 uses incorrect attribute names<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8297878: KEM: Implementation<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8308819: add JDWP and JDI virtual thread suppo=
rt for ThreadReference.ForceEarlyReturn<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8307779: Relax the java.awt.Robot specificatio=
n<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8306703: JFR: Summary views<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8309146: extend JDI StackFrame.setValue() and =
JDWP StackFrame.setValues minimal support for virtual threads<o:p></o:p></p=
>
<p class=3D"MsoNormal">- JDK-8307840: SequencedMap view method specificatio=
n and implementation adjustments<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8304438: jcmd JVMTI.agent_load should obey Ena=
bleDynamicAgentLoading<o:p></o:p></p>
<p class=3D"MsoNormal">- JDK-8306431: File.listRoots method description sho=
uld be re-examined<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">[5] <a href=3D"https://jdk.java.net/21/">https://jdk=
.java.net/21/</a><o:p></o:p></p>
<p class=3D"MsoNormal">[6] <a href=3D"https://jdk.java.net/21/release-notes=
">https://jdk.java.net/21/release-notes</a><o:p></o:p></p>
<p class=3D"MsoNormal">[7] <a href=3D"https://download.java.net/java/early_=
access/jdk21/docs/api/">
https://download.java.net/java/early_access/jdk21/docs/api/</a><o:p></o:p><=
/p>
<p class=3D"MsoNormal">[8] <a href=3D"https://mail.openjdk.org/pipermail/jd=
k-dev/2023-June/007910.html">
https://mail.openjdk.org/pipermail/jdk-dev/2023-June/007910.html</a><o:p></=
o:p></p>
<p class=3D"MsoNormal">[9] <a href=3D"https://github.com/openjdk/jdk/compar=
e/jdk-21+23...jdk-21+26">
https://github.com/openjdk/jdk/compare/jdk-21+23...jdk-21+26</a><o:p></o:p>=
</p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">## JDK 22 Early-Access Builds<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Given that JDK 21 is now in Rampdown Phase, the init=
ial JDK 22 Early-Access builds are now also available [10]. Those EA builds=
 are provided under the GNU General Public License v2, with the Classpath E=
xception.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p></o:p></p>
<p class=3D"MsoNormal">[10] <a href=3D"https://jdk.java.net/22/">https://jd=
k.java.net/22/</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
<p class=3D"MsoNormal">## JavaFX 21 Early-Access Builds<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">These are early access builds of the JavaFX 21 Runti=
me, built from openjdk/jfx [11]. They are intended to allow JavaFX applicat=
ion developers to build and test their applications with JavaFX 21 on JDK 2=
1. The latest builds 21 (2023/6/8)
 are now available [12]. These early-access builds are provided under the G=
NU General Public License, version 2, with the Classpath Exception. Feedbac=
k should be reported to the openjfx-dev mailing list [13].<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p></o:p></p>
<p class=3D"MsoNormal">[11] <a href=3D"https://github.com/openjdk/jfx">http=
s://github.com/openjdk/jfx</a><o:p></o:p></p>
<p class=3D"MsoNormal">[12] <a href=3D"https://jdk.java.net/javafx21/">http=
s://jdk.java.net/javafx21/</a><o:p></o:p></p>
<p class=3D"MsoNormal">[13] <a href=3D"http://mail.openjdk.org/mailman/list=
info/openjfx-dev">
http://mail.openjdk.org/mailman/listinfo/openjfx-dev</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p></o:p></p>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
<p class=3D"MsoNormal">## Topics of Interest<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">All That is in Java 21?!<o:p></o:p></p>
<p class=3D"MsoNormal"><a href=3D"https://inside.java/2023/06/08/newscast-5=
0/">https://inside.java/2023/06/08/newscast-50/</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Script Java Easily in 21 and Beyond<o:p></o:p></p>
<p class=3D"MsoNormal"><a href=3D"https://inside.java/2023/05/25/newscast-4=
9/">https://inside.java/2023/05/25/newscast-49/</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">New JFR `view` Command<o:p></o:p></p>
<p class=3D"MsoNormal"><a href=3D"https://egahlin.github.io/2023/05/30/view=
s.html">https://egahlin.github.io/2023/05/30/views.html</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Patterns: Exhaustiveness, Unconditionality, and Rema=
inder<o:p></o:p></p>
<p class=3D"MsoNormal"><a href=3D"https://openjdk.org/projects/amber/design=
-notes/patterns/exhaustiveness">https://openjdk.org/projects/amber/design-n=
otes/patterns/exhaustiveness</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Design Document on Nullability and Value Types<o:p><=
/o:p></p>
<p class=3D"MsoNormal"><a href=3D"https://mail.openjdk.org/pipermail/valhal=
la-spec-observers/2023-May/002243.html">https://mail.openjdk.org/pipermail/=
valhalla-spec-observers/2023-May/002243.html</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">JFR: Java's Observability &amp; Monitoring Framework=
 - Stack Walker #2<o:p></o:p></p>
<p class=3D"MsoNormal"><a href=3D"https://inside.java/2023/05/14/stackwalke=
r-02/">https://inside.java/2023/05/14/stackwalker-02/</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">## JDK Crypto Roadmap Update<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Oracle updated the JDK Cryptographic Roadmap to anno=
unce a change, with the Oct CPU (2023-10-17), of the priority order used by=
 JDK 8 and JDK 11 when negotiating cipher suites to use on TLS connections.=
 Please check the JDK Cryptographic
 Roadmap page [14] for more details.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p></o:p></p>
<p class=3D"MsoNormal">[14] <a href=3D"https://www.java.com/en/jre-jdk-cryp=
toroadmap.html">
https://www.java.com/en/jre-jdk-cryptoroadmap.html</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">~<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Please, make sure to test your projects using the JD=
K 21 EA builds as we still have time to fix potential issues. And thanks fo=
r participating in the OpenJDK Quality Outreach program!<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">--David<o:p></o:p></p>
</div>
</body>
</html>

--_000_SA1PR10MB76995A5CE5C2E5E79B8EED05FC5AASA1PR10MB7699namp_--


--===============5181985653809817199==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--===============5181985653809817199==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Jython-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jython-dev

--===============5181985653809817199==--