I don't understand. There are many Java 17 users using Log4j 2. Why can't they simply switch to Java 19, take advantage of its concurrency benefits, and still expect their logs to work?
On Mon, May 16, 2022 at 10:05 PM Matt Sicker <[email protected]> wrote: > Because this is a feature that's only in preview mode as of Java 19, > so finding a way to support this for Java 8 users is a waste of time. > > On Mon, May 16, 2022 at 1:59 PM Volkan Yazıcı <[email protected]> wrote: > > > > Definitely support the idea of investigation whether it impacts > > ThreadContext usage or not. I suspect certain thread-local usages might > be > > broken too. > > > > Why do you think this should be targeted for the master branch only? > > > > On Mon, May 16, 2022 at 8:37 PM Ralph Goers <[email protected]> > > wrote: > > > > > Removing David, > > > > > > We are going to have to investigate this and determine how it impacts > > > ThreadContext usage. Note that this should be targeted for the master > > > branch only. > > > > > > Ralph > > > > > > > > > > On May 16, 2022, at 12:50 AM, David Delabassee < > > > [email protected]> wrote: > > > > > > > > Welcome to a new Quality Outreach update! > > > > > > > > This time, we have one update but a major one: JEP 425 (Virtual > Threads > > > preview) has been integrated into the OpenJDK mainline! JDK 19 > Early-Access > > > builds 22 are the first mainline builds with Virtual Threads (preview) > > > support. So, Project Loom is now getting closer and closer! > > > > > > > > Please make sure to check the Heads-up below even if you don’t > intend to > > > use virtual threads in the short future. > > > > > > > > > > > > ## Heads-up - JEP 425 Virtual Threads (preview) testing > > > > > > > > The goal of Project Loom is to introduce in the Java platform an > > > easy-to-use, high-throughput lightweight concurrency model, and a > related > > > new concurrent programming model. > > > > > > > > Developed in Project Loom, JEP 425 introduces virtual threads to the > > > Java Platform. Virtual threads are lightweight threads that > dramatically > > > reduce the effort of writing, maintaining, and observing > high-throughput > > > concurrent applications. Note that virtual threads are a preview API > in JDK > > > 19. Please make sure to read 'JEP 425: Virtual Threads (Preview)' for a > > > detailed explanation. > > > > > > > > A lot of testing has already been done but we are asking, once again, > > > your help to test your project(s) with the latest JDK 19 Early-Access > > > builds, even if you don’t intend to use virtual threads any time soon. > > > > > > > > There are two approaches to test your project: > > > > 1. Update your code to use virtual threads …or > > > > 2. Simply test your existing unchanged code with the preview feature > > > enabled. > > > > > > > > Both approaches should yield valuable feedback. > > > > > > > > If you choose to adapt your application to use virtual threads (cf. > > > JavaDoc [2]), be aware that in some cases it’s not just about updating > your > > > code to use virtual threads instead of platform threads; there are some > > > additional considerations. For example, virtual threads shouldn’t be > pooled > > > [3], code that relies heavily on thread locals [4] will require some > work > > > to move to a world where there is a new thread for each task, etc. > > > > > > > > Given that are some minor behavior changes and that `ThreadGroup` has > > > been degraded, testing your code as-is, i.e., without using virtual > threads > > > but with the preview feature enabled at runtime, will also be useful. > For > > > more details, please check 'JEP 425 - Risks and Assumptions' [5]. > > > > > > > > One difference between to the EA builds published by Project Loom and > > > the latest JDK 19 EA builds is that the `--enable-preview` flag is > required > > > at run-time to use the new APIs. It’s not possible to use the APIs with > > > core reflection to avoid the need for `--enable-preview`. > > > > > > > > Finally, some tools especially tools relying on JVM TI agents might > not > > > be fully ready for virtual threads. > > > > > > > > Your help testing this important update is greatly appreciated, all > > > feedback should be sent to the 'loom-dev' mailing list [6]. > > > > > > > > [1] https://openjdk.java.net/jeps/425 > > > > [2] > > > > https://download.java.net/java/early_access/jdk19/docs/api/java.base/java/lang/Thread.html > > > > [3] https://openjdk.java.net/jeps/425#Do-not-pool-virtual-threads > > > > [4] https://openjdk.java.net/jeps/425#Thread-local-variables > > > > [5] https://openjdk.java.net/jeps/425#Risks-and-Assumptions > > > > [6] https://mail.openjdk.java.net/pipermail/loom-dev/ > > > > > > > > > > > > ## JDK 19 Early-Access builds > > > > > > > > JDK 19 Early-Access builds 22 are now available [7], and are provided > > > under the GNU General Public License v2, with the Classpath Exception. > Make > > > sure to check the Release Notes [8] and the JavaDoc [9]. > > > > > > > > [7] https://jdk.java.net/19/ > > > > [8] https://jdk.java.net/19/release-notes > > > > [9] https://download.java.net/java/early_access/jdk19/docs/ > > > > > > > > ### Current JDK 19 JEPs > > > > - 405: Record Patterns (Preview) - Proposed to target > > > > - 422: Linux/RISC-V Port - Integrated > > > > - 424: Foreign Function & Memory API (Preview) - Integrated > > > > - 425: Virtual Threads (Preview) - Integrated > > > > - 426: Vector API (4th Incubator) - Targeted > > > > - 427: Pattern Matching for switch (3rd Preview) - Targeted > > > > > > > > ### Recent changes that may be of interest: > > > > > > > > Build 22: > > > > - JDK-8284161: Implementation of Virtual Threads (Preview) > > > > - JDK-8285947: Avoid redundant HashMap.containsKey calls in ZoneName > > > > - JDK-8212136: Remove finalizer implementation in SSLSocketImpl > > > > - JDK-8285872: JFR: Remove finalize() methods > > > > - JDK-8285914: AppCDS crash when using shared archive with old class > file > > > > - JDK-8286163: micro-optimize Instant.plusSeconds > > > > - JDK-8282420: JFR: Remove event handlers > > > > - JDK-8282559: Allow multiple search terms in javadoc search > > > > > > > > Build 21: > > > > - JDK-8255552: Add DES/3DES/MD5 to jdk.security.legacyAlgorithms > > > > - JDK-8278370: [win] Disable side-by-side installations of multiple > JDK > > > updates in Windows JDK installers > > > > - JDK-8281010: [macos] Disable side-by-side installations of multiple > > > JDK updates in macOS JDK installers > > > > - JDK-8236128: Allow jpackage create installers for services > > > > - JDK-8279598: provide adapter from RandomGenerator to Random > > > > > > > > Build 20: > > > > - JDK-8284553: Deprecate the DEFAULT static field of > OAEPParameterSpec > > > > - JDK-8283620: System.out does not use the encoding/charset > specified in > > > the Javadoc > > > > - JDK-8285445: Enable Windows Alternate Data Streams by default > > > > - JDK-8284930: Re-examine FilterInputStream mark/reset > > > > - JDK-8284890: Support for Do not fragment IP socket options > > > > - JDK-8282823: javac should constrain more uses of preview APIs > > > > - JDK-8285477: Add a PRECISION public static field to j.l.Float and > > > j.l.Double > > > > > > > > Build 19: > > > > - JDK-8186958: New Methods to Create Preallocated HashMaps > > > > - JDK-8284775: Simplify String.substring(_, length()) calls > > > > - JDK-8283892: Compress and expand bits > > > > - JDK-8280915: Better parallelization for AbstractSpliterator and > > > IteratorS… > > > > - JDK-8284681: compiler/c2/aarch64/TestFarJump.java fails with > > > "RuntimeExce… > > > > - JDK-8283790: G1: Remove redundant card/heap-address transition > > > > - JDK-8285001: Simplify StringLatin1.regionMatches > > > > - JDK-8284880: Re-examine sun.invoke.util.Wrapper hash tables > > > > - JDK-8278356: Improve file creation > > > > > > > > > > > > ## Topics of Interest > > > > > > > > - Java Cryptographic Roadmap update > > > https://java.com/en/jre-jdk-cryptoroadmap.html > > > > - Virtual Thread Deep Dive > > > https://inside.java/2022/04/07/insidejava-newscast-023/ > > > > - Why Write an Empty finalize() Method? > > > > https://stuartmarks.wordpress.com/2022/04/27/why-write-an-empty-finalize-method/ > > > > - WHEN and NULL In Pattern Matching > > > https://inside.java/2022/05/05/insidejava-newscast-024/ > > > > - JDK 8 to JDK 18 in GC: 10 Releases, 2000+ Enhancements > > > https://inside.java/2022/05/02/odl-jdk8-to-jdk18-gc/ > > > > - ZGC - What's new in JDK 18 https://malloc.se/blog/zgc-jdk18 > > > > - Java Next - From Amber to Loom, from Panama to Valhalla > > > https://inside.java/2022/05/09/java-next/ > > > > > > > > > > > > ## JDK Update Patch Release > > > > > > > > As announced with the April 2022 CPU release, we have produced update > > > patch releases for all Java SE supported versions. The new versions > are JDK > > > 18.0.1.1 (publicly available), 17.0.3.1 (publicly available), > 11.0.15.1, > > > 8u333, 7u343, and OpenJDK 18.0.1.1 (publicly available). > > > > > > > > > > > > As usual, let us know if you find any issues while testing your > > > project(s) on the latest JDK early-access builds. Thanks for your > support! > > > > > > > > --David > > > > > > > > > > > > > > > > > > > > > > >
