Also, in LoggingSystem.java private static final String[] COMPATIBLE_API_VERSIONS = {"2.6.0"};
absolutely needs to be changed to version “3.0.0”. Ralph > On Oct 31, 2022, at 3:49 PM, Ralph Goers <ralph.go...@dslextreme.com> wrote: > > Matt, > > I absolutely would have preferred that you had created a PR for this and > asked for a review before committing it as I have a few concerns: > > 1. It is a massive commit. It is going to take time to digest exactly what > you have done. > 2. You have created a util3 package in API with no discussion of this on the > dev list. I assume that it contains artifacts that were cleaned up from util > and are now no longer compatible? Or does it only contain classes that are > exportable to other Log4j artifacts (I do see that in module-info.java). If > these classes are meant to be private then I would have preferred that it be > moved to internal/util. > 3. I no longer understand the point of Lazy<>. LogManager now performs no > static initialization that I can see. Instead, it calls > LoggingSystem.getInstance(). What is the point of making initialization of > INSTANCE lazy? You accomplished what you wanted to by moving the static > initialization to another class. > 4-10. I have no idea as it will take me a week to muddle through the rest of > all these changes to figure out what happened. > > Ralph > >> On Oct 30, 2022, at 6:24 PM, mattsic...@apache.org wrote: >> >> This is an automated email from the ASF dual-hosted git repository. >> >> mattsicker pushed a commit to branch master >> in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git >> >> >> The following commit(s) were added to refs/heads/master by this push: >> new aab23d5c05 [LOG4J2-3459] - Add LoggingSystemProvider SPI >> aab23d5c05 is described below >> >> commit aab23d5c05bff2915c290dff3e73a0ae03caf43a >> Author: Matt Sicker <mattsic...@apache.org> >> AuthorDate: Sun Oct 30 20:24:17 2022 -0500 >> >> [LOG4J2-3459] - Add LoggingSystemProvider SPI >> >> This helps clean up a lot of static state in Log4j API along with enabling >> further extensibility by exposing LoggingSystemProvider::getInstance which >> can be implemented using Injector in Log4j Core. The general utility class >> for working with this provider is available as an internal (util3) class in >> LoggingSystem. Test fixture helper classes have also been updated to use >> LoggingSystem directly. >> >> Signed-off-by: Matt Sicker <mattsic...@apache.org> >> --- >> .../junit/LogManagerLoggerContextFactoryRule.java | 11 +- >> .../test/junit/LoggerContextFactoryExtension.java | 12 +- >> .../{TestProvider.java => TestSystemProvider.java} | 23 +- >> .../log4j/spi/DefaultThreadContextMapTest.java | 10 +- >> ....apache.logging.log4j.spi.LoggingSystemProvider | 17 ++ >> .../services/org.apache.logging.log4j.spi.Provider | 1 - >> log4j-api/src/main/java/module-info.java | 5 +- >> .../java/org/apache/logging/log4j/LogManager.java | 76 +------ >> .../org/apache/logging/log4j/ThreadContext.java | 133 +++++------ >> .../org/apache/logging/log4j/internal/Binding.java | 32 ++- >> .../apache/logging/log4j/internal/BindingMap.java | 59 +++++ >> .../log4j/simple/SimpleLoggingSystemProvider.java | 24 +- >> .../log4j/spi/AbstractLoggingSystemProvider.java | 60 +++++ >> .../CopyOnWriteSortedArrayThreadContextMap.java | 68 ++---- >> .../log4j/spi/DefaultContextMapFactory.java | 102 +++++++++ >> .../log4j/spi/DefaultContextStackFactory.java | 50 ++++ >> .../logging/log4j/spi/DefaultThreadContextMap.java | 36 +-- >> .../GarbageFreeSortedArrayThreadContextMap.java | 51 ++--- >> .../log4j/spi/LegacyLoggingSystemProvider.java | 125 ++++++++++ >> .../logging/log4j/spi/LoggingSystemProvider.java | 82 +++++++ >> .../org/apache/logging/log4j/spi/Provider.java | 253 >> --------------------- >> .../logging/log4j/spi/ThreadContextMapFactory.java | 134 ----------- >> .../org/apache/logging/log4j/util/LazyInt.java | 52 ----- >> .../org/apache/logging/log4j/util3/Activator.java | 57 +++-- >> .../org/apache/logging/log4j/util3/Constants.java | 43 ++-- >> .../apache/logging/log4j/util3/LoggingSystem.java | 223 ++++++++++++++++++ >> .../apache/logging/log4j/util3/PropertiesUtil.java | 31 +-- >> .../apache/logging/log4j/util3/ProviderUtil.java | 143 ------------ >> .../core/test/junit/ContextSelectorCallback.java | 9 +- >> .../core/test/junit/LoggerContextResolver.java | 10 +- >> .../log4j/core/test/junit/LoggerContextRule.java | 5 +- >> ....apache.logging.log4j.spi.LoggingSystemProvider | 17 ++ >> .../services/org.apache.logging.log4j.spi.Provider | 1 - >> log4j-core/src/main/java/module-info.java | 7 +- >> .../log4j/core/impl/Log4jSystemProvider.java | 75 ++++++ >> .../apache/logging/log4j/core/osgi/Activator.java | 4 +- >> ....apache.logging.log4j.spi.LoggingSystemProvider | 17 ++ >> .../services/org.apache.logging.log4j.spi.Provider | 1 - >> .../CopyOnWriteOpenHashMapThreadContextMap.java | 3 +- >> .../GarbageFreeOpenHashMapThreadContextMap.java | 3 +- >> log4j-to-jul/src/main/java/module-info.java | 7 +- >> .../{JULProvider.java => JULSystemProvider.java} | 24 +- >> ....apache.logging.log4j.spi.LoggingSystemProvider | 17 ++ >> .../services/org.apache.logging.log4j.spi.Provider | 18 -- >> .../org/apache/logging/slf4j/MDCContextMap.java | 19 +- >> .../apache/logging/slf4j/SLF4JSystemProvider.java | 30 ++- >> ....apache.logging.log4j.spi.LoggingSystemProvider | 17 ++ >> .../services/org.apache.logging.log4j.spi.Provider | 1 - >> src/changes/changes.xml | 3 + >> src/site/asciidoc/manual/extending.adoc | 20 +- >> src/site/asciidoc/runtime-dependencies.adoc | 4 +- >> 51 files changed, 1202 insertions(+), 1023 deletions(-) >