From iris.clark at oracle.com Wed Apr 1 23:56:07 2020 From: iris.clark at oracle.com (Iris Clark) Date: Wed, 1 Apr 2020 16:56:07 -0700 (PDT) Subject: JSR 390 (Java SE 15) JEPs Propose to Target: Message-ID: The following JEP of scope "SE" has been Proposed to Target for Java SE 15: 371: Hidden Classes https://openjdk.java.net/jeps/371 The announced deadline for feedback to jdk-dev is Wed 8 Apr 23:59 UTC: https://mail.openjdk.java.net/pipermail/jdk-dev/2020-April/004180.html Links to the JEP/CSR Dashboards may be found on this page: https://openjdk.java.net/projects/jdk/15/spec/ Thanks, Iris From alex.buckley at oracle.com Thu Apr 9 23:34:47 2020 From: alex.buckley at oracle.com (Alex Buckley) Date: Thu, 9 Apr 2020 16:34:47 -0700 Subject: Preview features to include Java SE APIs Message-ID: <5f70d09b-71cf-c6ae-884f-b6fd58d3a4b1@oracle.com> In 2018, Oracle introduced the idea of "preview language features" as a way to have high-quality, fully-specified, but non-final technology in a mainline Java SE release [1]. This was well received by the Java community, so we are now proposing the idea of "preview APIs" [2]. The non-final technology in this case consists of modules, packages, types, methods, and fields in the Java SE API. It's already normal for preview language features to motivate new types and methods in the Java SE API [3]. For example, the preview of Records introduced `java.lang.Record`, while the preview of Text Blocks added methods to `java.lang.String`. Such types and methods are available to programmers only when preview features are enabled overall. Going forward, any new API point, regardless of connection to the Java language, could be specified as a preview API; it would then be available to programmers only when preview features are enabled overall. In the Java SE Platform Specification, the rules for preview features [4] would be extended to cover preview APIs too. The family of preview features in a given Java SE release would consist of the preview language features, preview VM features, and preview APIs specified for that release. All represent Java SE functionality that must be supported in all implementations, disabled by default, and enabled all at once. We're confident that the successful outcomes seen with preview language features -- for example, the graduation of switch expressions from preview status in Java SE 12 and 13 to final permanent status in 14 -- will be repeated for preview APIs. Without making any commitments, two possible sources of preview APIs are Projects Loom and Panama in OpenJDK. Loom's Early Access release enhances `java.lang.Thread` with support for "virtual threads" [5], while Panama offered an API for low-level memory access as an "incubator" module in JDK 14 [6]. As these APIs mature, we hope they will become candidates to preview in a Java SE release, thus maximizing feedback and improving them still further. Alex [1] http://openjdk.java.net/jeps/12 [2] https://mail.openjdk.java.net/pipermail/jdk-dev/2020-March/003991.html [3] https://docs.oracle.com/javase/specs/jls/se14/html/jls-1.html#jls-1.5-300 [4] https://cr.openjdk.java.net/~iris/se/12/latestSpec/#Preview-features [5] https://download.java.net/java/early_access/loom/docs/api/java.base/java/lang/Thread.html [6] https://docs.oracle.com/en/java/javase/14/docs/api/jdk.incubator.foreign/jdk/incubator/foreign/package-summary.html