<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="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;}
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="en-BE" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<div>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">Greetings!<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">JDK 21 has been released (General Availability) on September 19th as planned. You can find "The Arrival of Java 21" announcement here [1], and some additional Java 21 materials
in the "Topics of Interest" section below. On behalf of the entire Java team, let me send our thanks to all of you. Through your active participation in this program, you are helping shape the Java platform!<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">Needless to say, that Java 21 is an important release, so may I ask you to send me a brief email with the Java 21 support status of your project(s): Already supported - Plan to
support short-term - Don't plan to support short-term ? <o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">And now that JDK 21 is out, let's shift our attention to JDK 22 which will enter the Rampdown Phase in less than 50 days on December 7 [2].<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">I want to conclude this update by briefly mentioning three different initiatives to are relevant to this group as they are, in their own way and at various levels, contributing
to adopt newer Java releases more rapidly: the Class-File API, Oracle's Java Platform extension for VS Code, and the Java Playground.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">### The Class-File API<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">The Class-File API is a new standard API for parsing, generating, and transforming Java class files. One of its unique aspects is that it will co-evolve with the class-file format,
which overtime will greatly reduce the friction of implementing new class-file features. With the fast-paced evolution of the Java platform, this was much-needed. This API should soon be previewed and as it matures, we expect the JDK to switch from using various
custom class-file libraries to this standard API. We also expect that overtime frameworks relying on bytecode manipulation will also benefit from using this new JDK class-file library. For more information, please check this recent Newscast [3] for an overview,
Brian Goetz's JVMLS session [4] for more details and design considerations, and JEP 457: Class-File API (Preview) [5] for the technical details.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">### Oracle's Java Platform extension for Visual Studio Code<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">Oracle has just announced [6] a new Visual Studio Code extension for Java developers. Unlike other VS Code extensions, this new extension is using under the hood the `javac` compiler
for code editing and compilation, and OpenJDK's debugger interface for debugging. This enables us to offer VS Code IDE support for new JDK features as soon as they are introduced, even during JDK Early Access phases. To this effect, this VS Code Extension
will support the current JDK releases as well as the next upcoming JDK version. For more information, please check the announcement [6].<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">### The Java Playground<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">The Java Playground [7] is an online sandbox that helps testing and exploring new Java language features. No setup required, just type your Java snippet in your browser and run
it! Right now, the Playground is using Java 21 with Preview Features enabled, and it will switch to a new Java version as soon as there is a new Java language features integrated in OpenJDK Early-Access builds. The Playground is focusing mostly on Project
Amber and is certainly not mean to be some sort of a lightweight online-IDE, it is instead a learning tool to play with new Java language feature shortly after they have been integrated into the platform.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">[1]
<a href="https://inside.java/2023/09/19/the-arrival-of-java-21/"><span style="color:#0563C1">https://inside.java/2023/09/19/the-arrival-of-java-21/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">[2]
<a href="https://mail.openjdk.org/pipermail/jdk-dev/2023-September/008269.html"><span style="color:#0563C1">https://mail.openjdk.org/pipermail/jdk-dev/2023-September/008269.html</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">[3]
<a href="https://www.youtube.com/watch?v=bQ2Rwpyj_Ks"><span style="color:#0563C1">https://www.youtube.com/watch?v=bQ2Rwpyj_Ks</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">[4]
<a href="https://www.youtube.com/watch?v=pcg-E_qyMOI"><span style="color:#0563C1">https://www.youtube.com/watch?v=pcg-E_qyMOI</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">[5]
<a href="https://openjdk.org/jeps/457"><span style="color:#0563C1">https://openjdk.org/jeps/457</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">[6]
<a href="https://inside.java/2023/10/18/announcing-vscode-extension/"><span style="color:#0563C1">https://inside.java/2023/10/18/announcing-vscode-extension/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">[7]
<a href="https://dev.java/playground"><span style="color:#0563C1">https://dev.java/playground</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">## Heads-Up - JDK 22: Implicit Annotation Processing Behavior Change<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">As discussed in the July 2023 Quality Outreach update [8], starting in JDK 21 javac emits a note if _implicit_ annotation processing is being used, that is, if one or more annotation
processors are found and run from the class path when no explicit annotation processing configuration options are used.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">The note is reported since, quoting from the note text: "A future release of javac may disable annotation processing unless at least one processor is specified by name (-processor),
or a search path is specified (--processor-path, --processor-module-path), or annotation processing is enabled explicitly (-proc:only, -proc:full)."<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">That future version of javac has arrived in JDK 22 b19+ with JDK-8306819 ("Consider disabling the compiler's default active annotation processing"). In the situation where a note
was emitted in JDK 21, in JDK 22 no note is emitted, and annotation processors are *not* run. To restore the previous behavior with respect to running annotation processors, add the '-proc:full' javac option.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">Feedback on the annotation processing policy change can be sent to compiler-dev [9].<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">[8]
<a href="https://mail.openjdk.org/pipermail/quality-discuss/2023-July/001122.html">
<span style="color:#0563C1">https://mail.openjdk.org/pipermail/quality-discuss/2023-July/001122.html</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">[9]
<a href="https://mail.openjdk.org/mailman/listinfo/compiler-dev"><span style="color:#0563C1">https://mail.openjdk.org/mailman/listinfo/compiler-dev</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">## JDK 21 General Availability<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">JDK 21, the reference implementation of Java 21, is now Generally Available [10]. The OpenJDK GA 21.0.1 builds are available [11], and are provided under the GNU General Public
License v2, with the Classpath Exception. The Release Notes [12] and the Javadocs [13] are also available.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">[10]
<a href="https://mail.openjdk.org/pipermail/jdk-dev/2023-September/008267.html"><span style="color:#0563C1">https://mail.openjdk.org/pipermail/jdk-dev/2023-September/008267.html</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">[11]
<a href="https://jdk.java.net/21/"><span style="color:#0563C1">https://jdk.java.net/21/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">[12]
<a href="https://jdk.java.net/21/release-notes"><span style="color:#0563C1">https://jdk.java.net/21/release-notes</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">[13]
<a href="https://docs.oracle.com/en/java/javase/21/docs/api/index.html"><span style="color:#0563C1">https://docs.oracle.com/en/java/javase/21/docs/api/index.html</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">## JavaFX 21 GA Builds & JavaFX 22 EA Builds<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">Open-source builds of JavaFX 21 are now Generally Available [14], under the GNU General Public License, version 2, with the Classpath Exception. The Release Notes [15], and the
JavaFX 21 API Javadocs [16] are also available.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">The JavaFX runtime is delivered as an SDK and as a set of jmods for each platform. You can use the SDK to compile and run JavaFX applications. You can use the jmods with jlink
to create a JDK that includes the JavaFX modules, and optionally, your modular application. JavaFX 21 is designed to work with JDK 21, but it is known to work with JDK 17 and later versions.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">In addition, the early access builds of the JavaFX 22 Runtime (builds 12) are also available [17]. They enable JavaFX application developers to build and test their applications
with JavaFX 22 on JDK 22 EA.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">[14]
<a href="https://jdk.java.net/javafx21/"><span style="color:#0563C1">https://jdk.java.net/javafx21/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">[15]
<a href="https://github.com/openjdk/jfx/blob/jfx21/doc-files/release-notes-21.md">
<span style="color:#0563C1">https://github.com/openjdk/jfx/blob/jfx21/doc-files/release-notes-21.md</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">[16]
<a href="https://download.java.net/java/GA/javafx21/69ca518c413e4df09f6be747a2400cf6/docs/api/index.html">
<span style="color:#0563C1">https://download.java.net/java/GA/javafx21/69ca518c413e4df09f6be747a2400cf6/docs/api/index.html</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">[17]
<a href="https://jdk.java.net/javafx22/"><span style="color:#0563C1">https://jdk.java.net/javafx22/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">## JDK 22 Early-Access Builds<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">The latest Early-Access builds 20 (2023/10/19) are available [18], and are provided under the GNU General Public License v2, with the Classpath Exception. The Release Notes are
available here [19].<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">Changes in recent JDK 22 builds (b12-b20) that may be of interest:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">(Note that this is only a curated list of changes, make sure to check [20] for additional changes.)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8306819: Consider disabling the compiler's default active annotation …<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8316691: Heap dump: separate stack traces for mounted virtual threads …<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8317603: Improve exception messages thrown by sun.nio.ch.Net native m…<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8312522: Implementation of Foreign Function & Memory API
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8296581: Better system proxy support
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8316994: Avoid modifying ClassLoader and Module objects during -Xshar…<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8316970: Add internal annotation to mark restricted methods<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8301686: TLS 1.3 handshake fails if server_name doesn't match resumin…<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8268622: Performance issues in javac Name class<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8317246: Cleanup java.net.URLEncoder and URLDecoder use of file.encod…<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8311084: Add typeSymbol() API for applicable constant pool entries<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8316229: Enhance class initialization logging<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8315771: [JVMCI] Resolution of bootstrap methods with int[] static arguments<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8316681: Rewrite URLEncoder.encode to use small reusable buffers<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8315810: Reimplement sun.reflect.ReflectionFactory::newConstructorForSerialization with method handles<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8296246: Update Unicode Data Files to Version 15.1.0<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8316160: Remove sun.misc.Unsafe.{shouldBeInitialized,ensureClassInitialized}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8313452: Improve Classfile API attributes handling safety<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8314774: Optimize URLEncoder<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8246280: Refine API to model sealed classes and interfaces in javax.lang.model<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8314960: Add Certigna Root CA<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8306632: Add a JDK Property for specifying DTD support<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8315938: Deprecate for removal Unsafe methods that have standard APIs for many releases<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8041488: Locale-Dependent List Patterns<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8311939: Excessive allocation of Matcher.groups array<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8314569: (fs) Improve normalization of UnixPath for input with trailing slashes<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8314611: Provide more explicative error message parsing Currencies<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8315117: Update Zlib Data Compression Library to Version 1.3<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8313804: JDWP support for -Djava.net.preferIPv6Addresses=system<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">- JDK-8316681: Rewrite URLEncoder.encode to use small reusable buffers<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">[18]
<a href="https://jdk.java.net/22/"><span style="color:#0563C1">https://jdk.java.net/22/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">[19]
<a href="https://jdk.java.net/22/release-notes"><span style="color:#0563C1">https://jdk.java.net/22/release-notes</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">[20]
<a href="https://github.com/openjdk/jdk/compare/jdk-22%2B12...jdk-22%2B20"><span style="color:#0563C1">https://github.com/openjdk/jdk/compare/jdk-22%2B12...jdk-22%2B20</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">## New Jextract Early-Access Builds<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">Jextract mechanically generates Java bindings from native library headers. New Jextract EA builds are now available (Build 21-jextract+1-2 (2023/9/25)) [21], those EA builds are
based on JDK 21 and are intended for expert users.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">[21]
<a href="https://jdk.java.net/jextract/"><span style="color:#0563C1">https://jdk.java.net/jextract/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">## Topics of Interest:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">Java 21… and Beyond - Brian Goetz Devoxx 2023 Keynote<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><a href="https://inside.java/2023/10/14/java-21-and-beyond/"><span style="color:#0563C1">https://inside.java/2023/10/14/java-21-and-beyond/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">JDK 21 Security Enhancements<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><a href="https://seanjmullan.org/blog/2023/09/22/jdk21"><span style="color:#0563C1">https://seanjmullan.org/blog/2023/09/22/jdk21</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">With Java 21, Your Code Runs Even Faster but How is that Possible?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><a href="https://inside.java/2023/10/06/devoxx-your-code-runs-even-faster/"><span style="color:#0563C1">https://inside.java/2023/10/06/devoxx-your-code-runs-even-faster/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">My Favorite JDK 21 Feature: Javadoc Search URL<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><a href="https://stuartmarks.wordpress.com/2023/09/22/my-favorite-jdk-21-feature-javadoc-search-url/"><span style="color:#0563C1">https://stuartmarks.wordpress.com/2023/09/22/my-favorite-jdk-21-feature-javadoc-search-url/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">Upgrading from Java 17 to 21 #RoadTo21<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><a href="https://inside.java/2023/08/27/roadto21-upgrade/"><span style="color:#0563C1">https://inside.java/2023/08/27/roadto21-upgrade/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">Java 21 API Changes #RoadTo21<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><a href="https://inside.java/2023/09/10/roadto21-api/"><span style="color:#0563C1">https://inside.java/2023/09/10/roadto21-api/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">Java 21 Security #RoadTo21<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><a href="https://inside.java/2023/09/13/roadto21-security/"><span style="color:#0563C1">https://inside.java/2023/09/13/roadto21-security/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">Java 21 Tool Enhancements: Better Across the Board #RoadTo21<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><a href="https://inside.java/2023/09/06/roadto21-performance/"><span style="color:#0563C1">https://inside.java/2023/09/06/roadto21-performance/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">Java 21 JVM and GC Improvements #RoadTo21<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><a href="https://inside.java/2023/09/03/roadto21-performance/"><span style="color:#0563C1">https://inside.java/2023/09/03/roadto21-performance/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">Java 21 Brings Full Pattern Matching #RoadTo21<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><a href="https://inside.java/2023/09/17/roadto21-pattern-matching/"><span style="color:#0563C1">https://inside.java/2023/09/17/roadto21-pattern-matching/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">Java 21 new feature: Virtual Threads #RoadTo21<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><a href="https://inside.java/2023/08/30/roadto21-virtualthreads/"><span style="color:#0563C1">https://inside.java/2023/08/30/roadto21-virtualthreads/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">G1: Java's Default Garbage Collector<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><a href="https://inside.java/2023/10/15/g1/"><span style="color:#0563C1">https://inside.java/2023/10/15/g1/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">New candidate JEP: 457: Class-File API (Preview)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><a href="https://openjdk.org/jeps/457"><span style="color:#0563C1">https://openjdk.org/jeps/457</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">Using JAXB in Custom Ant Tasks on Recent Java Versions<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><a href="https://jaitechwriteups.blogspot.com/2023/10/using-jaxb-in-custom-ant-tasks-on.html"><span style="color:#0563C1">https://jaitechwriteups.blogspot.com/2023/10/using-jaxb-in-custom-ant-tasks-on.html</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">Java Records are "Trusted" and Consequently Faster<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><a href="http://minborgsjavapot.blogspot.com/2023/09/java-records-are-trusted-and.html"><span style="color:#0563C1">http://minborgsjavapot.blogspot.com/2023/09/java-records-are-trusted-and.html</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">JVMLS 2023 Keynote<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><a href="https://inside.java/2023/09/14/jvmls-keynote/"><span style="color:#0563C1">https://inside.java/2023/09/14/jvmls-keynote/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">JVMLS - Project Leyden<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><a href="https://inside.java/2023/09/07/project-leyden/"><span style="color:#0563C1">https://inside.java/2023/09/07/project-leyden/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">JVMLS - Value Objects in Valhalla<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><a href="https://inside.java/2023/09/05/value-objects-in-valhalla/"><span style="color:#0563C1">https://inside.java/2023/09/05/value-objects-in-valhalla/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">Complete JVMLS 2023 playlist<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><a href="https://www.youtube.com/playlist?list=PLX8CzqL3ArzW90jKUCf4H6xCKpStxsOzp"><span style="color:#0563C1">https://www.youtube.com/playlist?list=PLX8CzqL3ArzW90jKUCf4H6xCKpStxsOzp</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">Teaching Old Streams New Tricks<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><a href="https://inside.java/2023/10/11/devoxx-teaching-old-streams-new-tricks/"><span style="color:#0563C1">https://inside.java/2023/10/11/devoxx-teaching-old-streams-new-tricks/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">Support Markdown in javadoc Comments<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><a href="https://mail.openjdk.org/pipermail/javadoc-dev/2023-October/006455.html"><span style="color:#0563C1">https://mail.openjdk.org/pipermail/javadoc-dev/2023-October/006455.html</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">Brian Goetz Answers Your Java Questions<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><a href="https://inside.java/2023/10/20/ama-brian/"><span style="color:#0563C1">https://inside.java/2023/10/20/ama-brian/</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">## October 2023 Critical Patch Update Released<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">As part of the October 2023 CPU, Oracle released OpenJDK 21.0.1, JDK 21.0.1, JDK 17.0.9 LTS, 11.0.21 LTS, 8u391, and 8u391-perf.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">~<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">PS: Don't forget to update me about your plans related to Java 21.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB">Until next time!<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-ligatures:none;mso-fareast-language:EN-GB"><o:p> </o:p></span></p>
</div>
<p class="MsoNormal"><span style="mso-ligatures:none">--David</span><o:p></o:p></p>
</div>
</body>
</html>