Log4j 2.x doesn’t “support” Java 17. It tolerates it. There is a big difference.

Ralph

> On May 16, 2022, at 1:26 PM, Volkan Yazıcı <vol...@yazi.ci> wrote:
> 
> 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 <boa...@gmail.com> 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ı <vol...@yazi.ci> 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 <ralph.go...@dslextreme.com>
>>> 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 <
>>>> david.delabas...@oracle.com> 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
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>> 
>>>> 
>> 

Reply via email to