This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a commit to branch LoggerContextProperties
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git


The following commit(s) were added to refs/heads/LoggerContextProperties by 
this push:
     new 19bab409cc More fixes
19bab409cc is described below

commit 19bab409ccada375cb84c289576758e820875bbc
Author: Ralph Goers <[email protected]>
AuthorDate: Sat May 6 09:55:27 2023 -0700

    More fixes
---
 .../src/test/java/org/apache/log4j/LoggerTest.java | 26 +++++------
 .../config/PropertiesConfigurationFactoryTest.java |  4 +-
 .../log4j/config/XmlConfigurationFactoryTest.java  | 12 ++---
 .../logging/log4j/spi/LoggingSystemProperty.java   | 21 +++++----
 .../org/apache/logging/log4j/util/Constants.java   |  2 +-
 .../log4j/util/ContextAwarePropertySource.java     | 15 ++++++-
 .../log4j/util/PropertiesPropertySource.java       | 11 ++++-
 .../logging/log4j/FilterPerformanceComparison.java |  2 +-
 .../logging/log4j/PerformanceComparison.java       |  2 +-
 .../appender/JsonCompleteFileAppenderTest.java     |  8 ++--
 .../core/appender/XmlCompactFileAppenderTest.java  | 10 ++---
 .../XmlCompactFileAsyncAppenderValidationTest.java |  5 +--
 .../log4j/core/appender/XmlFileAppenderTest.java   |  8 ++--
 .../appender/XmlRandomAccessFileAppenderTest.java  | 10 ++---
 log4j-core-test/pom.xml                            |  2 +-
 .../log4j/core/EventParameterMemoryLeakTest.java   | 14 +++---
 .../apache/logging/log4j/core/Log4j1222Test.java   | 52 +++++++++++-----------
 ...ollingRandomAccessFileAppenderRolloverTest.java | 10 ++---
 .../AsyncLoggerCustomSelectorLocationTest.java     | 14 +++---
 .../log4j/core/async/QueueFullAbstractTest.java    | 14 ++++--
 ...llAsyncLoggerConfigLoggingFromToStringTest.java |  1 +
 ...ueueFullAsyncLoggerLoggingFromToStringTest.java | 31 +++++--------
 .../logging/log4j/core/config/AdvertiserTest.java  |  4 +-
 .../log4j/core/config/CustomConfigurationTest.java |  1 +
 .../log4j/core/util/ContextDataProviderTest.java   |  8 ++--
 .../log4j/core/appender/ConsoleAppender.java       |  1 +
 .../logging/log4j/core/impl/Log4jPropertyKey.java  | 20 +++++++--
 .../org/apache/logging/log4j/core/jmx/Server.java  |  2 +-
 .../apache/logging/log4j/core/util/Constants.java  | 14 +++---
 .../csv/layout/CsvParameterLayoutAllAsyncTest.java |  4 +-
 .../flume/appender/FlumeEmbeddedAgentTest.java     |  5 +--
 .../flume/appender/FlumeEmbeddedAppenderTest.java  | 31 +++++++------
 .../appender/FlumePersistentAppenderTest.java      | 43 +++++++++---------
 .../log4j/flume/appender/FlumePersistentPerf.java  | 35 +++++++--------
 .../gctests/GcFreeAsynchronousLoggingTest.java     |  2 +-
 .../log4j/gctests/GcFreeLoggingTestUtil.java       |  9 ++--
 .../gctests/GcFreeMixedSyncAyncLoggingTest.java    |  2 +-
 .../gctests/GcFreeSynchronousLoggingTest.java      |  2 +-
 .../gctests/JsonTemplateLayoutGcFreeTest.java      |  2 +-
 .../AbstractJdbcAppenderDataSourceTest.java        |  4 +-
 .../appender/DataSourceConnectionSourceTest.java   | 18 ++++----
 .../JdbcAppenderMapMessageDataSourceTest.java      | 13 +++---
 .../routing/RoutingAppenderWithJndiTest.java       |  6 +--
 .../log4j/jndi/lookup/InterpolatorTest.java        |  4 +-
 .../logging/log4j/jndi/lookup/JndiLookupTest.java  |  2 +-
 .../jndi/lookup/JndiRestrictedLookupTest.java      |  2 +-
 .../org/apache/logging/log4j/jndi/JndiManager.java |  4 +-
 .../logging/log4j/jndi/lookup/JndiLookup.java      | 10 +++--
 .../jmh/ConcurrentAsyncLoggerToFileBenchmark.java  |  2 +-
 .../perf/jmh/FileAppenderThrowableBenchmark.java   |  2 +-
 50 files changed, 274 insertions(+), 252 deletions(-)

diff --git a/log4j-1.2-api/src/test/java/org/apache/log4j/LoggerTest.java 
b/log4j-1.2-api/src/test/java/org/apache/log4j/LoggerTest.java
index e45555abca..684c5b8c3a 100644
--- a/log4j-1.2-api/src/test/java/org/apache/log4j/LoggerTest.java
+++ b/log4j-1.2-api/src/test/java/org/apache/log4j/LoggerTest.java
@@ -1,29 +1,21 @@
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
+ * contributor license agreements. See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
+ * The ASF licenses this file to You under the Apache license, Version 2.0
  * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
+ * the License. You may obtain a copy of the License at
  *
  *      http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
  */
-
 package org.apache.log4j;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.junit.jupiter.api.Assertions.assertSame;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
 import java.util.List;
 import java.util.Locale;
 import java.util.ResourceBundle;
@@ -42,6 +34,13 @@ import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
 /**
  * Used for internal unit testing the Logger class.
  */
@@ -526,4 +525,3 @@ public class LoggerTest {
         }
     }
 }
-
diff --git 
a/log4j-1.2-api/src/test/java/org/apache/log4j/config/PropertiesConfigurationFactoryTest.java
 
b/log4j-1.2-api/src/test/java/org/apache/log4j/config/PropertiesConfigurationFactoryTest.java
index 4a0197e22d..ead118c1bf 100644
--- 
a/log4j-1.2-api/src/test/java/org/apache/log4j/config/PropertiesConfigurationFactoryTest.java
+++ 
b/log4j-1.2-api/src/test/java/org/apache/log4j/config/PropertiesConfigurationFactoryTest.java
@@ -16,14 +16,14 @@
  */
 package org.apache.log4j.config;
 
+import java.io.File;
+
 import org.apache.log4j.LogManager;
 import org.apache.log4j.Logger;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import java.io.File;
-
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
diff --git 
a/log4j-1.2-api/src/test/java/org/apache/log4j/config/XmlConfigurationFactoryTest.java
 
b/log4j-1.2-api/src/test/java/org/apache/log4j/config/XmlConfigurationFactoryTest.java
index dca5f90f74..fa4ba1b658 100644
--- 
a/log4j-1.2-api/src/test/java/org/apache/log4j/config/XmlConfigurationFactoryTest.java
+++ 
b/log4j-1.2-api/src/test/java/org/apache/log4j/config/XmlConfigurationFactoryTest.java
@@ -16,18 +16,18 @@
  */
 package org.apache.log4j.config;
 
-import org.apache.log4j.LogManager;
-import org.apache.log4j.Logger;
-import org.apache.logging.log4j.core.config.ConfigurationFactory;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStream;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.log4j.LogManager;
+import org.apache.log4j.Logger;
+import org.apache.logging.log4j.core.config.ConfigurationFactory;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggingSystemProperty.java
 
b/log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggingSystemProperty.java
index c84bcccb10..f147699551 100644
--- 
a/log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggingSystemProperty.java
+++ 
b/log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggingSystemProperty.java
@@ -50,8 +50,8 @@ public enum LoggingSystemProperty implements PropertyKey {
      *
      * @see <a 
href="https://issues.apache.org/jira/browse/LOG4J2-1270";>LOG4J2-1270</a>
      */
-    // GC.enableThreadLocals : calculate | true | false
-    GC_THREAD_LOCALS_ENABLED(PropertyComponent.GC, 
Constant.ENABLE_THREAD_LOCALS),
+    // ThreadLocals.enabled : calculate | true | false
+    THREAD_LOCALS_ENABLE(PropertyComponent.THREAD_LOCALs, Constant.ENABLE),
 
     /**
      * Property to ignore the thread context ClassLoader when set to {@code 
true}.
@@ -226,7 +226,7 @@ public enum LoggingSystemProperty implements PropertyKey {
     }
 
     public static class Constant {
-        static final String DELIM = ".";
+        private static final String DELIM = ".";
         /**
          * Property to enable TRACE-level debug logging in the Log4j system 
itself.
          * <p>
@@ -235,7 +235,7 @@ public enum LoggingSystemProperty implements PropertyKey {
          * configuration's {@code <Configuration status="<level>" ...>} status 
attribute.
          * </p>
          */
-        static String DEBUG = "debug";
+        static final String DEBUG = "debug";
         public static String SYSTEM_DEBUG = SYSTEM_PROPERTY_PREFIX + 
PropertyComponent.Constant.SYSTEM + DELIM + DEBUG;
 
         /**
@@ -243,8 +243,8 @@ public enum LoggingSystemProperty implements PropertyKey {
          * (from either {@code javax} or {@code jakarta}) is checked to see if 
this is a webapp.
          */
         // Web.enableWebApp : calculate | true | false
-        static String IS_WEBAPP = "isWebapp";
-        public static final String SYSTEM_IS_WEBAPP =
+        static final String IS_WEBAPP = "isWebApp";
+        public static final String WEB_IS_WEBAPP =
                 SYSTEM_PROPERTY_PREFIX + PropertyComponent.Constant.WEB + 
DELIM + IS_WEBAPP;
 
         /**
@@ -252,10 +252,10 @@ public enum LoggingSystemProperty implements PropertyKey {
          *
          * @see <a 
href="https://issues.apache.org/jira/browse/LOG4J2-1270";>LOG4J2-1270</a>
          */
-        // GC.enableThreadLocals : calculate | true | false
-        static final String ENABLE_THREAD_LOCALS = "enableThreadLocals";
-        public static final String SYSTEM_THREAD_LOCALS_ENABLED =
-                SYSTEM_PROPERTY_PREFIX + 
PropertyComponent.Constant.THREAD_LOCALS + DELIM + ENABLE_THREAD_LOCALS;
+        // ThreadLocals.enabled : calculate | true | false
+        static final String ENABLE = "enable";
+        public static final String THREAD_LOCALS_ENABLE =
+                SYSTEM_PROPERTY_PREFIX + 
PropertyComponent.Constant.THREAD_LOCALS + DELIM + ENABLE;
 
         /**
          * Property to ignore the thread context ClassLoader when set to 
{@code true}.
@@ -400,7 +400,6 @@ public enum LoggingSystemProperty implements PropertyKey {
          * thread context map and stack will be disabled.
          */
         // ThreadContext.enable
-        static final String ENABLE = "enable";
         public static final String THREAD_CONTEXT_ENABLED =
                 SYSTEM_PROPERTY_PREFIX + 
PropertyComponent.Constant.THREAD_CONTEXT + DELIM + ENABLE;
 
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/util/Constants.java 
b/log4j-api/src/main/java/org/apache/logging/log4j/util/Constants.java
index c792db3245..57c6591168 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/Constants.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/Constants.java
@@ -54,7 +54,7 @@ public final class Constants {
     public static final boolean IS_WEB_APP = isWebApp();
 
     private static final LazyBoolean threadLocalsEnabled = new LazyBoolean(
-            () -> !isWebApp() && 
PropertiesUtil.getProperties().getBooleanProperty(LoggingSystemProperty.GC_THREAD_LOCALS_ENABLED,
 true));
+            () -> !isWebApp() && 
PropertiesUtil.getProperties().getBooleanProperty(LoggingSystemProperty.THREAD_LOCALS_ENABLE,
 true));
 
     /**
      * Kill switch for object pooling in ThreadLocals that enables much of the 
LOG4J2-1270 no-GC behaviour.
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/util/ContextAwarePropertySource.java
 
b/log4j-api/src/main/java/org/apache/logging/log4j/util/ContextAwarePropertySource.java
index 9975931fad..3d761f81c9 100644
--- 
a/log4j-api/src/main/java/org/apache/logging/log4j/util/ContextAwarePropertySource.java
+++ 
b/log4j-api/src/main/java/org/apache/logging/log4j/util/ContextAwarePropertySource.java
@@ -33,6 +33,8 @@ import org.apache.logging.log4j.spi.PropertyComponent;
 public abstract class ContextAwarePropertySource implements PropertySource {
 
     protected final Map<String, Properties> propertiesMap;
+    private final String contextName;
+    private boolean includeInvalid;
 
     public ContextAwarePropertySource(final Properties properties, final 
String contextName,
                                       final boolean includeInvalid) {
@@ -41,13 +43,20 @@ public abstract class ContextAwarePropertySource implements 
PropertySource {
         } else {
             propertiesMap = new ConcurrentHashMap<>();
         }
+        this.contextName = contextName;
+        this.includeInvalid = includeInvalid;
     }
 
+    /**
+     * Used only for System Environment properties.
+     * @param properties The map from the Environment.
+     */
     public ContextAwarePropertySource(final Map<String, String> properties) {
         this.propertiesMap = parseProperties(properties);
+        this.contextName = SYSTEM_CONTEXT;
+        this.includeInvalid = false;
     }
 
-
     @Override
     public Collection<String> getPropertyNames() {
         return getPropertyNames(SYSTEM_CONTEXT);
@@ -106,6 +115,10 @@ public abstract class ContextAwarePropertySource 
implements PropertySource {
         return propertiesMap;
     }
 
+    protected Map<String, Properties> parseProperties(Properties properties) {
+        return parseProperties(properties, contextName, includeInvalid);
+    }
+
     /**
      * Used to parse properties in Properties objects.
      * @param properties The input properties.
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertiesPropertySource.java
 
b/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertiesPropertySource.java
index 9bbc73b9d2..4052ab85a3 100644
--- 
a/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertiesPropertySource.java
+++ 
b/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertiesPropertySource.java
@@ -26,9 +26,11 @@ import java.util.Properties;
  *
  * @since 2.10.0
  */
-public class PropertiesPropertySource extends ContextAwarePropertySource 
implements PropertySource {
+public class PropertiesPropertySource extends ContextAwarePropertySource
+        implements ReloadablePropertySource {
 
     private final int priority;
+    private final Properties properties;
 
     public PropertiesPropertySource(final Properties properties) {
         this(properties, SYSTEM_CONTEXT, DEFAULT_PRIORITY, false);
@@ -46,6 +48,7 @@ public class PropertiesPropertySource extends 
ContextAwarePropertySource impleme
                                     final boolean includeInvalid) {
         super(properties, contextName, includeInvalid);
         this.priority = priority;
+        this.properties = properties;
     }
 
 
@@ -70,6 +73,12 @@ public class PropertiesPropertySource extends 
ContextAwarePropertySource impleme
         return result.length() > 0 ? PREFIX + result : null;
     }
 
+    @Override
+    public void reload() {
+        Map<String, Properties> map = parseProperties(properties);
+        propertiesMap.putAll(map);
+    }
+
     @Override
     public boolean equals(Object o) {
         if (this == o) return true;
diff --git 
a/log4j-core-its/src/test/java/org/apache/logging/log4j/FilterPerformanceComparison.java
 
b/log4j-core-its/src/test/java/org/apache/logging/log4j/FilterPerformanceComparison.java
index 17072d01fc..5c71f142cd 100644
--- 
a/log4j-core-its/src/test/java/org/apache/logging/log4j/FilterPerformanceComparison.java
+++ 
b/log4j-core-its/src/test/java/org/apache/logging/log4j/FilterPerformanceComparison.java
@@ -20,9 +20,9 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.apache.logging.log4j.core.impl.Log4jPropertyKey;
 import org.apache.logging.log4j.core.test.categories.PerformanceTests;
-import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
diff --git 
a/log4j-core-its/src/test/java/org/apache/logging/log4j/PerformanceComparison.java
 
b/log4j-core-its/src/test/java/org/apache/logging/log4j/PerformanceComparison.java
index 0e9eff6261..199af13515 100644
--- 
a/log4j-core-its/src/test/java/org/apache/logging/log4j/PerformanceComparison.java
+++ 
b/log4j-core-its/src/test/java/org/apache/logging/log4j/PerformanceComparison.java
@@ -25,9 +25,9 @@ import java.io.Writer;
 import java.nio.ByteBuffer;
 import java.nio.channels.FileChannel;
 
+import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.apache.logging.log4j.core.impl.Log4jPropertyKey;
 import org.apache.logging.log4j.core.test.categories.PerformanceTests;
-import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.apache.logging.log4j.core.test.util.Profiler;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
diff --git 
a/log4j-core-its/src/test/java/org/apache/logging/log4j/core/appender/JsonCompleteFileAppenderTest.java
 
b/log4j-core-its/src/test/java/org/apache/logging/log4j/core/appender/JsonCompleteFileAppenderTest.java
index 071a7c13be..325f74aeeb 100644
--- 
a/log4j-core-its/src/test/java/org/apache/logging/log4j/core/appender/JsonCompleteFileAppenderTest.java
+++ 
b/log4j-core-its/src/test/java/org/apache/logging/log4j/core/appender/JsonCompleteFileAppenderTest.java
@@ -16,8 +16,6 @@
  */
 package org.apache.logging.log4j.core.appender;
 
-import static org.junit.Assert.assertTrue;
-
 import java.io.File;
 import java.nio.charset.Charset;
 import java.nio.file.Files;
@@ -25,13 +23,13 @@ import java.util.List;
 
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.core.impl.Log4jPropertyKey;
-import org.apache.logging.log4j.core.test.categories.Layouts;
 import org.apache.logging.log4j.core.selector.ContextSelector;
 import org.apache.logging.log4j.core.selector.CoreContextSelectors;
+import org.apache.logging.log4j.core.test.categories.Layouts;
+import org.apache.logging.log4j.core.test.junit.LoggerContextRule;
 import org.apache.logging.log4j.core.test.util.FixedTimeClock;
 import org.apache.logging.log4j.core.time.ClockFactory;
 import org.apache.logging.log4j.test.junit.CleanFiles;
-import org.apache.logging.log4j.core.test.junit.LoggerContextRule;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Rule;
@@ -42,6 +40,8 @@ import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 import org.junit.runners.Parameterized.Parameters;
 
+import static org.junit.Assert.assertTrue;
+
 /**
  * Tests a "complete" JSON file.
  */
diff --git 
a/log4j-core-its/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAppenderTest.java
 
b/log4j-core-its/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAppenderTest.java
index 0b4e6a171a..2d871043b9 100644
--- 
a/log4j-core-its/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAppenderTest.java
+++ 
b/log4j-core-its/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAppenderTest.java
@@ -16,23 +16,23 @@
  */
 package org.apache.logging.log4j.core.appender;
 
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileReader;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.apache.logging.log4j.core.impl.Log4jPropertyKey;
-import org.apache.logging.log4j.core.test.categories.Layouts;
 import org.apache.logging.log4j.core.test.CoreLoggerContexts;
-import org.apache.logging.log4j.core.config.ConfigurationFactory;
+import org.apache.logging.log4j.core.test.categories.Layouts;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
 /**
  * Tests a "compact" XML file, no extra spaces or end of lines.
  */
diff --git 
a/log4j-core-its/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAsyncAppenderValidationTest.java
 
b/log4j-core-its/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAsyncAppenderValidationTest.java
index 9303f2af1d..cb20b4ac0e 100644
--- 
a/log4j-core-its/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAsyncAppenderValidationTest.java
+++ 
b/log4j-core-its/src/test/java/org/apache/logging/log4j/core/appender/XmlCompactFileAsyncAppenderValidationTest.java
@@ -19,7 +19,6 @@ package org.apache.logging.log4j.core.appender;
 import java.io.File;
 import java.io.IOException;
 import java.net.URL;
-
 import javax.xml.XMLConstants;
 import javax.xml.transform.Source;
 import javax.xml.transform.stream.StreamSource;
@@ -29,10 +28,10 @@ import javax.xml.validation.Validator;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.apache.logging.log4j.core.impl.Log4jPropertyKey;
-import org.apache.logging.log4j.core.test.categories.Layouts;
 import org.apache.logging.log4j.core.test.CoreLoggerContexts;
-import org.apache.logging.log4j.core.config.ConfigurationFactory;
+import org.apache.logging.log4j.core.test.categories.Layouts;
 import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Test;
diff --git 
a/log4j-core-its/src/test/java/org/apache/logging/log4j/core/appender/XmlFileAppenderTest.java
 
b/log4j-core-its/src/test/java/org/apache/logging/log4j/core/appender/XmlFileAppenderTest.java
index dafd9461ef..480cffe51b 100644
--- 
a/log4j-core-its/src/test/java/org/apache/logging/log4j/core/appender/XmlFileAppenderTest.java
+++ 
b/log4j-core-its/src/test/java/org/apache/logging/log4j/core/appender/XmlFileAppenderTest.java
@@ -16,8 +16,6 @@
  */
 package org.apache.logging.log4j.core.appender;
 
-import static org.junit.Assert.assertTrue;
-
 import java.io.File;
 import java.nio.charset.Charset;
 import java.nio.file.Files;
@@ -25,14 +23,16 @@ import java.util.List;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.apache.logging.log4j.core.impl.Log4jPropertyKey;
-import org.apache.logging.log4j.core.test.categories.Layouts;
 import org.apache.logging.log4j.core.test.CoreLoggerContexts;
-import org.apache.logging.log4j.core.config.ConfigurationFactory;
+import org.apache.logging.log4j.core.test.categories.Layouts;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
+import static org.junit.Assert.assertTrue;
+
 /**
  * Tests a "complete" XML file a.k.a. a well-formed XML file.
  */
diff --git 
a/log4j-core-its/src/test/java/org/apache/logging/log4j/core/appender/XmlRandomAccessFileAppenderTest.java
 
b/log4j-core-its/src/test/java/org/apache/logging/log4j/core/appender/XmlRandomAccessFileAppenderTest.java
index 2a639ca242..373afed8e4 100644
--- 
a/log4j-core-its/src/test/java/org/apache/logging/log4j/core/appender/XmlRandomAccessFileAppenderTest.java
+++ 
b/log4j-core-its/src/test/java/org/apache/logging/log4j/core/appender/XmlRandomAccessFileAppenderTest.java
@@ -16,24 +16,24 @@
  */
 package org.apache.logging.log4j.core.appender;
 
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileReader;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.apache.logging.log4j.core.impl.Log4jPropertyKey;
-import org.apache.logging.log4j.core.test.categories.Layouts;
 import org.apache.logging.log4j.core.test.CoreLoggerContexts;
-import org.apache.logging.log4j.core.config.ConfigurationFactory;
+import org.apache.logging.log4j.core.test.categories.Layouts;
 import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
 /**
  * Tests a "complete" XML file a.k.a. a well-formed XML file.
  */
diff --git a/log4j-core-test/pom.xml b/log4j-core-test/pom.xml
index 2a9c38c4da..1d990c3191 100644
--- a/log4j-core-test/pom.xml
+++ b/log4j-core-test/pom.xml
@@ -406,7 +406,7 @@
         <configuration>
           <runOrder>random</runOrder>
           <systemPropertyVariables>
-            <log4j2.is.webapp>false</log4j2.is.webapp>
+            <Web.isWebApp>false</Web.isWebApp>
           </systemPropertyVariables>
           <useModulePath>false</useModulePath>
         </configuration>
diff --git 
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/EventParameterMemoryLeakTest.java
 
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/EventParameterMemoryLeakTest.java
index 6ca742bbe9..dc3a61807d 100644
--- 
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/EventParameterMemoryLeakTest.java
+++ 
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/EventParameterMemoryLeakTest.java
@@ -16,6 +16,13 @@
  */
 package org.apache.logging.log4j.core;
 
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.lang.ref.Cleaner;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.core.impl.Log4jPropertyKey;
@@ -24,13 +31,6 @@ import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junitpioneer.jupiter.SetSystemProperty;
 
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.lang.ref.Cleaner;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.containsString;
 import static org.junit.jupiter.api.Assertions.assertNull;
diff --git 
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/Log4j1222Test.java
 
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/Log4j1222Test.java
index 95482a04ab..5ae75141f4 100644
--- 
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/Log4j1222Test.java
+++ 
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/Log4j1222Test.java
@@ -33,34 +33,34 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 public class Log4j1222Test
 {
 
-       @Test
-       @SetSystemProperty(key = Log4jPropertyKey.Constant.CONFIG_LOCATION, 
value = "log4j2-console.xml")
-       public void homepageRendersSuccessfully() {
-               Runtime.getRuntime().addShutdownHook(new ShutdownHook());
-       }
+    @Test
+    @SetSystemProperty(key = Log4jPropertyKey.Constant.CONFIG_LOCATION, value 
= "log4j2-console.xml")
+    public void homepageRendersSuccessfully() {
+        Runtime.getRuntime().addShutdownHook(new ShutdownHook());
+    }
 
-       private static class ShutdownHook extends Thread {
+    private static class ShutdownHook extends Thread {
 
-               private static class Holder {
-                       private static final Logger LOGGER = 
LogManager.getLogger(Log4j1222Test.class);
-               }
+        private static class Holder {
+            private static final Logger LOGGER = 
LogManager.getLogger(Log4j1222Test.class);
+        }
 
-               @Override
-               public void run()
-               {
-                       super.run();
-                       trigger();
-               }
+        @Override
+        public void run()
+        {
+            super.run();
+            trigger();
+        }
 
-               private void trigger() {
-                       Holder.LOGGER.info("Attempt to trigger");
-                       assertTrue(Holder.LOGGER instanceof TestLogger, "Logger 
is of type " + Holder.LOGGER.getClass().getName());
-                       if (((TestLogger) Holder.LOGGER).getEntries().size() == 
0) {
-                               System.out.println("Logger contains no 
messages");
-                       }
-                       for (final String msg : ((TestLogger) 
Holder.LOGGER).getEntries()) {
-                               System.out.println(msg);
-                       }
-               }
-       }
+        private void trigger() {
+            Holder.LOGGER.info("Attempt to trigger");
+            assertTrue(Holder.LOGGER instanceof TestLogger, "Logger is of type 
" + Holder.LOGGER.getClass().getName());
+            if (((TestLogger) Holder.LOGGER).getEntries().size() == 0) {
+                System.out.println("Logger contains no messages");
+            }
+            for (final String msg : ((TestLogger) Holder.LOGGER).getEntries()) 
{
+                System.out.println(msg);
+            }
+        }
+    }
 }
diff --git 
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppenderRolloverTest.java
 
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppenderRolloverTest.java
index 79535f6601..b7cdf2e7a0 100644
--- 
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppenderRolloverTest.java
+++ 
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/RollingRandomAccessFileAppenderRolloverTest.java
@@ -16,6 +16,11 @@
  */
 package org.apache.logging.log4j.core.appender;
 
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.util.Arrays;
+
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.core.impl.Log4jPropertyKey;
@@ -25,11 +30,6 @@ import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junitpioneer.jupiter.SetSystemProperty;
 
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.util.Arrays;
-
 import static org.junit.jupiter.api.Assertions.*;
 
 @Tag("sleepy")
diff --git 
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerCustomSelectorLocationTest.java
 
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerCustomSelectorLocationTest.java
index 7ceb2bfd2c..ad73d2e3f1 100644
--- 
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerCustomSelectorLocationTest.java
+++ 
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerCustomSelectorLocationTest.java
@@ -16,6 +16,13 @@
  */
 package org.apache.logging.log4j.core.async;
 
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.net.URI;
+import java.util.Collections;
+import java.util.List;
+
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.core.LoggerContext;
@@ -31,13 +38,6 @@ import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.net.URI;
-import java.util.Collections;
-import java.util.List;
-
 import static org.hamcrest.CoreMatchers.*;
 import static org.hamcrest.MatcherAssert.assertThat;
 
diff --git 
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/QueueFullAbstractTest.java
 
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/QueueFullAbstractTest.java
index b3d54bfd4e..926d06bc57 100644
--- 
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/QueueFullAbstractTest.java
+++ 
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/QueueFullAbstractTest.java
@@ -54,6 +54,7 @@ public abstract class QueueFullAbstractTest {
         @Override
         public void run() {
             try {
+                TRACE("Waiting for unlocker CountDownLatch. count: " + 
countDownLatch.getCount());
                 countDownLatch.await();
                 TRACE("Unlocker activated. Sleeping 500 millis before taking 
action...");
                 Thread.sleep(500);
@@ -85,16 +86,21 @@ public abstract class QueueFullAbstractTest {
     }
 
     static Stack transform(final List<LogEvent> logEvents) {
-        final List<String> filtered = new ArrayList<>(logEvents.size());
-        for (LogEvent event : logEvents) {
-            filtered.add(event.getMessage().getFormattedMessage());
-        }
+        final List<String> filtered = getMessages(logEvents);
         Collections.reverse(filtered);
         Stack<String> result = new Stack<>();
         result.addAll(filtered);
         return result;
     }
 
+    static List<String> getMessages(final List<LogEvent> logEvents) {
+        final List<String> filtered = new ArrayList<>(logEvents.size());
+        for (LogEvent event : logEvents) {
+            filtered.add(event.getMessage().getFormattedMessage());
+        }
+        return filtered;
+    }
+
     static long asyncRemainingCapacity(Logger logger) {
         if (logger instanceof AsyncLogger) {
             try {
diff --git 
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfigLoggingFromToStringTest.java
 
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfigLoggingFromToStringTest.java
index 75b55bd73c..f4764bd485 100644
--- 
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfigLoggingFromToStringTest.java
+++ 
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfigLoggingFromToStringTest.java
@@ -26,6 +26,7 @@ import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.impl.Log4jPropertyKey;
 import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
 import org.apache.logging.log4j.plugins.Named;
+import org.apache.logging.log4j.spi.LoggingSystemProperty;
 import org.apache.logging.log4j.status.StatusData;
 import org.apache.logging.log4j.status.StatusLogger;
 import org.junit.jupiter.api.Tag;
diff --git 
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerLoggingFromToStringTest.java
 
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerLoggingFromToStringTest.java
index 3590fc2fa3..db3ec79cd7 100644
--- 
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerLoggingFromToStringTest.java
+++ 
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerLoggingFromToStringTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.logging.log4j.core.async;
 
+import java.util.List;
 import java.util.Stack;
 import java.util.concurrent.CountDownLatch;
 
@@ -25,14 +26,14 @@ import 
org.apache.logging.log4j.core.test.CoreLoggerContexts;
 import org.apache.logging.log4j.core.test.categories.AsyncLoggers;
 import org.apache.logging.log4j.core.test.junit.LoggerContextRule;
 import org.apache.logging.log4j.message.ParameterizedMessage;
-import org.junit.AfterClass;
+import org.apache.logging.log4j.spi.LoggingSystemProperty;
 import org.junit.Before;
-import org.junit.BeforeClass;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 import org.junit.runner.RunWith;
 import org.junit.runners.BlockJUnit4ClassRunner;
+import org.junitpioneer.jupiter.SetSystemProperty;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -42,18 +43,11 @@ import static org.junit.Assert.assertTrue;
  */
 @RunWith(BlockJUnit4ClassRunner.class)
 @Category(AsyncLoggers.class)
+@SetSystemProperty(key = LoggingSystemProperty.Constant.WEB_IS_WEBAPP, value = 
"false")
+@SetSystemProperty(key = 
Log4jPropertyKey.Constant.ASYNC_LOGGER_RING_BUFFER_SIZE, value = "128")
+@SetSystemProperty(key = LoggingSystemProperty.Constant.THREAD_LOCALS_ENABLE, 
value = "true")
 public class QueueFullAsyncLoggerLoggingFromToStringTest extends 
QueueFullAbstractTest {
 
-    @BeforeClass
-    public static void beforeClass() {
-        
System.setProperty(Log4jPropertyKey.Constant.ASYNC_LOGGER_RING_BUFFER_SIZE, 
"128"); // minimum ringbuffer size
-    }
-
-    @AfterClass
-    public static void afterClass() {
-        
System.clearProperty(Log4jPropertyKey.Constant.ASYNC_LOGGER_RING_BUFFER_SIZE);
-    }
-
     @Rule
     public LoggerContextRule context = new LoggerContextRule(
             "log4j2-queueFull.xml", AsyncLoggerContextSelector.class);
@@ -90,15 +84,10 @@ public class QueueFullAsyncLoggerLoggingFromToStringTest 
extends QueueFullAbstra
         while (blockingAppender.logEvents.size() < 129) { Thread.yield(); }
         TRACE("After  stop() blockingAppender.logEvents.count=" + 
blockingAppender.logEvents.size());
 
-        final Stack<String> actual = transform(blockingAppender.logEvents);
+        final List<String> messages = getMessages(blockingAppender.logEvents);
         assertEquals("Jumped the queue: test(2)+domain1(65)+domain2(61)=128: 
queue full",
-                "Logging in toString() #127", actual.pop());
-        assertEquals("Logging in toString() #128", actual.pop());
-        assertEquals("logging naughty object #0 Who's bad?!", actual.pop());
-
-        for (int i = 0; i < 127; i++) {
-            assertEquals("First batch", "Logging in toString() #" + i, 
actual.pop());
-        }
-        assertTrue(actual.isEmpty());
+                "Logging in toString() #127", messages.get(messages.size() - 
2));
+        assertEquals("Logging in toString() #128", 
messages.get(messages.size() - 1));
+        assertEquals("logging naughty object #0 Who's bad?!", messages.get(0));
     }
 }
diff --git 
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/AdvertiserTest.java
 
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/AdvertiserTest.java
index 2a6cfae784..fe46aea41e 100644
--- 
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/AdvertiserTest.java
+++ 
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/AdvertiserTest.java
@@ -16,6 +16,8 @@
  */
 package org.apache.logging.log4j.core.config;
 
+import java.util.Map;
+
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.xml.XmlConfiguration;
 import org.apache.logging.log4j.core.impl.Log4jPropertyKey;
@@ -26,8 +28,6 @@ import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 
-import java.util.Map;
-
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
diff --git 
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/CustomConfigurationTest.java
 
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/CustomConfigurationTest.java
index d3758e6ed2..01729daffe 100644
--- 
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/CustomConfigurationTest.java
+++ 
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/CustomConfigurationTest.java
@@ -45,6 +45,7 @@ import static org.junit.jupiter.api.Assertions.assertSame;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 @CleanUpFiles("target/test.log")
+@SetSystemProperty(key = "log4j.level", value = "info")
 @SetSystemProperty(key = Log4jPropertyKey.Constant.CONFIG_DEFAULT_LEVEL, value 
= "info")
 @SetSystemProperty(key = Log4jPropertyKey.Constant.STATUS_DEFAULT_LEVEL, value 
= "info")
 public class CustomConfigurationTest {
diff --git 
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/util/ContextDataProviderTest.java
 
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/util/ContextDataProviderTest.java
index 70036228db..c24052728e 100644
--- 
a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/util/ContextDataProviderTest.java
+++ 
b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/util/ContextDataProviderTest.java
@@ -16,6 +16,10 @@
  */
 package org.apache.logging.log4j.core.util;
 
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.ThreadContext;
@@ -28,10 +32,6 @@ import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
 import static org.junit.jupiter.api.Assertions.*;
 
 @Tag("functional")
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java
index 696169b233..7dc92ef1b8 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/ConsoleAppender.java
@@ -168,6 +168,7 @@ public final class ConsoleAppender extends 
AbstractOutputStreamAppender<OutputSt
             }
             final Layout layout = 
getOrCreateLayout(target.getDefaultCharset());
             PropertyEnvironment propertyEnvironment = configuration != null
+                && configuration.getLoggerContext() != null
                     ? configuration.getLoggerContext().getProperties() : 
PropertiesUtil.getProperties();
             return new ConsoleAppender(getName(), layout, getFilter(),
                     getManager(target, follow, direct, layout, 
propertyEnvironment),
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jPropertyKey.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jPropertyKey.java
index 898518f6d2..8b3e17baf2 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jPropertyKey.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jPropertyKey.java
@@ -51,7 +51,7 @@ public enum Log4jPropertyKey implements PropertyKey {
     
CONFIG_RELIABILITY_STRATEGY_AWAIT_UNCONDITIONALLY_MILLIS(PropertyComponent.CONFIGURATION,
             Constant.WAIT_MILLIS_BEFORE_STOP_OLD_CONFIG),
     CONFIG_V1_COMPATIBILITY_ENABLED(PropertyComponent.LOG4J1, 
Constant.COMPATIBILITY),
-    CONFIG_V1_FILE_NAME(PropertyComponent.LOG4J1, Constant.CONFIGURATION),
+    CONFIG_V1_FILE_NAME(PropertyComponent.LOG4J, Constant.CONFIGURATION),
     CONTEXT_SELECTOR_CLASS_NAME(PropertyComponent.LOG4J, 
Constant.CONTEXT_SELECTOR),
     GC_ENABLE_DIRECT_ENCODERS(PropertyComponent.GC, 
Constant.ENABLE_DIRECT_ENCODERS),
     GC_ENCODER_BYTE_BUFFER_SIZE(PropertyComponent.GC, 
Constant.ENCODER_BYTE_BUFFER_SIZE),
@@ -61,7 +61,10 @@ public enum Log4jPropertyKey implements PropertyKey {
     
GC_REUSABLE_MESSAGE_MAX_SIZE(PropertyComponent.GC,Constant.MAX_REUSABLE_MSG_SIZE),
     JMX_ENABLED(PropertyComponent.JMX, Constant.ENABLED),
     JMX_NOTIFY_ASYNC(PropertyComponent.JMX, Constant.NOTIFY_ASYNC),
-    JNDI_ENABLED(PropertyComponent.JNDI, Constant.ENABLED),
+    JNDI_CONTEXT_SELECTOR(PropertyComponent.JNDI, Constant.CONTEXT_SELECTOR),
+    JNDI_ENABLE_JDBC(PropertyComponent.JNDI, Constant.ENABLE_JDBC),
+    JNDI_ENABLE_JMS(PropertyComponent.JNDI, Constant.ENABLE_JMS),
+    JNDI_ENABLE_LOOKUP(PropertyComponent.JNDI, Constant.ENABLE_LOOKUP),
     LOG_EVENT_FACTORY_CLASS_NAME(PropertyComponent.LOGGER, 
Constant.LOG_EVENT_FACTORY),
     SCRIPT_ENABLE_LANGUAGES(PropertyComponent.SCRIPT, 
Constant.ENABLE_LANGUAGES),
     SHUTDOWN_CALLBACK_REGISTRY(PropertyComponent.LOGGER_CONTEXT, 
Constant.SHUT_DOWN_CALLBACK_REGISTRY),
@@ -231,8 +234,17 @@ public enum Log4jPropertyKey implements PropertyKey {
         static final String NOTIFY_ASYNC = "notifyAsync";
         public static final String JMX_NOTIFY_ASYNC = 
LoggingSystemProperty.SYSTEM_PROPERTY_PREFIX
                 + PropertyComponent.Constant.JMX + DELIM + NOTIFY_ASYNC;
-        public static final String JNDI_ENABLED = 
LoggingSystemProperty.SYSTEM_PROPERTY_PREFIX
-                + PropertyComponent.Constant.JNDI + DELIM + ENABLED;
+        public static final String JNDI_CONTEXT_SELECTOR = 
LoggingSystemProperty.SYSTEM_PROPERTY_PREFIX
+                + PropertyComponent.Constant.JNDI + DELIM + CONTEXT_SELECTOR;
+        static final String ENABLE_JDBC = "enableJDBC";
+        public static final String JNDI_ENABLE_JDBC = 
LoggingSystemProperty.SYSTEM_PROPERTY_PREFIX
+                + PropertyComponent.Constant.JNDI + DELIM + ENABLE_JDBC;
+        static final String ENABLE_JMS = "enableJMS";
+        public static final String JNDI_ENABLE_JMS = 
LoggingSystemProperty.SYSTEM_PROPERTY_PREFIX
+                + PropertyComponent.Constant.JNDI + DELIM + ENABLE_JMS;
+        static final String ENABLE_LOOKUP = "enableLookup";
+        public static final String JNDI_ENABLE_LOOKUP = 
LoggingSystemProperty.SYSTEM_PROPERTY_PREFIX
+                + PropertyComponent.Constant.JNDI + DELIM + ENABLE_LOOKUP;
         static final String LOG_EVENT_FACTORY = "logEventFactory";
         public static final String LOG_EVENT_FACTORY_CLASS_NAME = 
LoggingSystemProperty.SYSTEM_PROPERTY_PREFIX
                 + PropertyComponent.Constant.LOGGER_CONTEXT + DELIM + 
LOG_EVENT_FACTORY;
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/Server.java 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/Server.java
index 333b5a260b..5339fdd37f 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/Server.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/Server.java
@@ -126,7 +126,7 @@ public final class Server {
     }
 
     private static boolean isJmxDisabled() {
-        return 
!PropertiesUtil.getProperties().getBooleanProperty(Log4jPropertyKey.JMX_ENABLED);
+        return 
!PropertiesUtil.getProperties().getBooleanProperty(Log4jPropertyKey.JMX_ENABLED,
 true);
     }
 
     public static void reregisterMBeansAfterReconfigure() {
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Constants.java 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Constants.java
index 7f26eb4574..50fb0a9bf7 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Constants.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Constants.java
@@ -34,21 +34,21 @@ public final class Constants {
 
     /**
      * Check to determine if the JNDI feature is available.
-     * @param subKey The feature to check.
+     * @param key The feature to check.
      * @return true if the feature is available.
      */
-    private static boolean isJndiEnabled(final String subKey) {
-        return 
PropertiesUtil.getProperties().getBooleanProperty(Log4jPropertyKey.JNDI_ENABLED,
 false)
+    private static boolean isJndiEnabled(final PropertyKey key) {
+        return PropertiesUtil.getProperties().getBooleanProperty(key, false)
                 && isClassAvailable(JNDI_MANAGER_CLASS);
     }
 
-    public static boolean JNDI_CONTEXT_SELECTOR_ENABLED = 
isJndiEnabled("ContextSelector");
+    public static boolean JNDI_CONTEXT_SELECTOR_ENABLED = 
isJndiEnabled(Log4jPropertyKey.JNDI_CONTEXT_SELECTOR);
 
-    public static boolean JNDI_JMS_ENABLED = isJndiEnabled("Jms");
+    public static boolean JNDI_JMS_ENABLED = 
isJndiEnabled(Log4jPropertyKey.JNDI_ENABLE_JMS);
 
-    public static boolean JNDI_LOOKUP_ENABLED = isJndiEnabled("Lookup");
+    public static boolean JNDI_LOOKUP_ENABLED = 
isJndiEnabled(Log4jPropertyKey.JNDI_ENABLE_LOOKUP);
 
-    public static boolean JNDI_JDBC_ENABLED = isJndiEnabled("Jdbc");
+    public static boolean JNDI_JDBC_ENABLED = 
isJndiEnabled(Log4jPropertyKey.JNDI_ENABLE_JDBC);
 
     public static final Key<Level> DEFAULT_STATUS_LEVEL_KEY = new 
@Named("StatusLogger") Key<>() {};
 
diff --git 
a/log4j-csv/src/test/java/org/apache/logging/log4j/csv/layout/CsvParameterLayoutAllAsyncTest.java
 
b/log4j-csv/src/test/java/org/apache/logging/log4j/csv/layout/CsvParameterLayoutAllAsyncTest.java
index dfa786d400..d73f62533b 100644
--- 
a/log4j-csv/src/test/java/org/apache/logging/log4j/csv/layout/CsvParameterLayoutAllAsyncTest.java
+++ 
b/log4j-csv/src/test/java/org/apache/logging/log4j/csv/layout/CsvParameterLayoutAllAsyncTest.java
@@ -18,11 +18,11 @@ package org.apache.logging.log4j.csv.layout;
 
 import org.apache.commons.csv.CSVFormat;
 import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.core.impl.Log4jPropertyKey;
-import org.apache.logging.log4j.core.test.categories.Layouts;
 import org.apache.logging.log4j.core.Logger;
 import org.apache.logging.log4j.core.async.AsyncLoggerContextSelector;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
+import org.apache.logging.log4j.core.impl.Log4jPropertyKey;
+import org.apache.logging.log4j.core.test.categories.Layouts;
 import org.apache.logging.log4j.core.util.Constants;
 import org.apache.logging.log4j.util.Strings;
 import org.junit.AfterClass;
diff --git 
a/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedAgentTest.java
 
b/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedAgentTest.java
index 5e5df9fd54..802393718b 100644
--- 
a/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedAgentTest.java
+++ 
b/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedAgentTest.java
@@ -30,12 +30,11 @@ import java.util.Set;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.TimeUnit;
 import java.util.zip.GZIPInputStream;
-
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
-import org.apache.avro.ipc.netty.NettyServer;
 import org.apache.avro.ipc.Server;
+import org.apache.avro.ipc.netty.NettyServer;
 import org.apache.avro.ipc.specific.SpecificResponder;
 import org.apache.flume.Event;
 import org.apache.flume.event.EventBuilder;
@@ -48,9 +47,9 @@ import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.apache.logging.log4j.core.impl.Log4jPropertyKey;
+import org.apache.logging.log4j.core.test.AvailablePortFinder;
 import org.apache.logging.log4j.message.StructuredDataMessage;
 import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.core.test.AvailablePortFinder;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Assert;
diff --git 
a/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedAppenderTest.java
 
b/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedAppenderTest.java
index 7ead3e5e1d..4c29f98c3c 100644
--- 
a/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedAppenderTest.java
+++ 
b/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedAppenderTest.java
@@ -30,7 +30,6 @@ import java.util.Set;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.TimeUnit;
 import java.util.zip.GZIPInputStream;
-
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
@@ -48,9 +47,9 @@ import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.apache.logging.log4j.core.impl.Log4jPropertyKey;
+import org.apache.logging.log4j.core.test.AvailablePortFinder;
 import org.apache.logging.log4j.message.StructuredDataMessage;
 import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.core.test.AvailablePortFinder;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Assert;
@@ -237,23 +236,23 @@ public class FlumeEmbeddedAppenderTest {
 
     }
 
-       private static boolean deleteFiles(final File file) {
-               boolean result = true;
-               if (file.isDirectory()) {
+    private static boolean deleteFiles(final File file) {
+        boolean result = true;
+        if (file.isDirectory()) {
 
-                       final File[] files = file.listFiles();
-                       if (files != null) {
-                               for (final File child : files) {
-                                       result &= deleteFiles(child);
-                               }
-                       }
+            final File[] files = file.listFiles();
+            if (files != null) {
+                for (final File child : files) {
+                    result &= deleteFiles(child);
+                }
+            }
 
-               } else if (!file.exists()) {
-                       return true;
-               }
+        } else if (!file.exists()) {
+            return true;
+        }
 
-               return result && file.delete();
-       }
+        return result && file.delete();
+    }
 
     private static class EventCollector implements AvroSourceProtocol {
         private final LinkedBlockingQueue<AvroFlumeEvent> eventQueue = new 
LinkedBlockingQueue<>();
diff --git 
a/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumePersistentAppenderTest.java
 
b/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumePersistentAppenderTest.java
index bd67952036..1df758a3e4 100644
--- 
a/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumePersistentAppenderTest.java
+++ 
b/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumePersistentAppenderTest.java
@@ -32,7 +32,6 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.TimeUnit;
 import java.util.zip.GZIPInputStream;
-
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
@@ -52,9 +51,9 @@ import org.apache.logging.log4j.MarkerManager;
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.apache.logging.log4j.core.impl.Log4jPropertyKey;
+import org.apache.logging.log4j.core.test.AvailablePortFinder;
 import org.apache.logging.log4j.message.StructuredDataMessage;
 import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.core.test.AvailablePortFinder;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Assert;
@@ -351,14 +350,14 @@ public class FlumePersistentAppenderTest {
 
     @Test
     public void testLogInterrupted() {
-       final ExecutorService executor = Executors.newSingleThreadExecutor();
+        final ExecutorService executor = Executors.newSingleThreadExecutor();
         executor.execute(() -> {
-               executor.shutdownNow();
-               final Logger logger = LogManager.getLogger("EventLogger");
+            executor.shutdownNow();
+            final Logger logger = LogManager.getLogger("EventLogger");
             final Marker marker = MarkerManager.getMarker("EVENT");
             logger.info(marker, "This is a test message");
             Assert.assertTrue("Interruption status not preserved",
-                       Thread.currentThread().isInterrupted());
+                    Thread.currentThread().isInterrupted());
         });
     }
 
@@ -388,22 +387,22 @@ public class FlumePersistentAppenderTest {
 
     }
 
-       private static boolean deleteFiles(final File file) {
-               boolean result = true;
-               if (file.isDirectory()) {
-
-                       final File[] files = file.listFiles();
-                       if (files != null) {
-                               for (final File child : files) {
-                                       result &= deleteFiles(child);
-                               }
-                       }
-               } else if (!file.exists()) {
-                       return true;
-               }
-
-               return result && file.delete();
-       }
+    private static boolean deleteFiles(final File file) {
+        boolean result = true;
+        if (file.isDirectory()) {
+
+            final File[] files = file.listFiles();
+            if (files != null) {
+                for (final File child : files) {
+                    result &= deleteFiles(child);
+                }
+            }
+        } else if (!file.exists()) {
+            return true;
+        }
+
+        return result && file.delete();
+    }
 
     private static class EventCollector implements AvroSourceProtocol {
         private final LinkedBlockingQueue<AvroFlumeEvent> eventQueue = new 
LinkedBlockingQueue<>();
diff --git 
a/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumePersistentPerf.java
 
b/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumePersistentPerf.java
index fe3b50dcbb..fc4bd0aaee 100644
--- 
a/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumePersistentPerf.java
+++ 
b/log4j-flume-ng/src/test/java/org/apache/logging/log4j/flume/appender/FlumePersistentPerf.java
@@ -30,7 +30,6 @@ import java.util.Set;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.TimeUnit;
 import java.util.zip.GZIPInputStream;
-
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
@@ -46,9 +45,9 @@ import org.apache.logging.log4j.EventLogger;
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
 import org.apache.logging.log4j.core.impl.Log4jPropertyKey;
+import org.apache.logging.log4j.core.test.AvailablePortFinder;
 import org.apache.logging.log4j.message.StructuredDataMessage;
 import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.core.test.AvailablePortFinder;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -149,22 +148,22 @@ public class FlumePersistentPerf {
 
     }
 
-       private static boolean deleteFiles(final File file) {
-               boolean result = true;
-               if (file.isDirectory()) {
-
-                       final File[] files = file.listFiles();
-                       if (files != null) {
-                               for (final File child : files) {
-                                       result &= deleteFiles(child);
-                               }
-                       }
-               } else if (!file.exists()) {
-                       return true;
-               }
-
-               return result && file.delete();
-       }
+    private static boolean deleteFiles(final File file) {
+        boolean result = true;
+        if (file.isDirectory()) {
+
+            final File[] files = file.listFiles();
+            if (files != null) {
+                for (final File child : files) {
+                    result &= deleteFiles(child);
+                }
+            }
+        } else if (!file.exists()) {
+            return true;
+        }
+
+        return result && file.delete();
+    }
 
     private static class EventCollector implements AvroSourceProtocol {
         private final LinkedBlockingQueue<AvroFlumeEvent> eventQueue = new 
LinkedBlockingQueue<>();
diff --git 
a/log4j-gctests/src/test/java/org/apache/logging/log4j/gctests/GcFreeAsynchronousLoggingTest.java
 
b/log4j-gctests/src/test/java/org/apache/logging/log4j/gctests/GcFreeAsynchronousLoggingTest.java
index 16568d89fb..63468a64f5 100644
--- 
a/log4j-gctests/src/test/java/org/apache/logging/log4j/gctests/GcFreeAsynchronousLoggingTest.java
+++ 
b/log4j-gctests/src/test/java/org/apache/logging/log4j/gctests/GcFreeAsynchronousLoggingTest.java
@@ -42,7 +42,7 @@ public class GcFreeAsynchronousLoggingTest {
      * This code runs in a separate process, instrumented with the Google 
Allocation Instrumenter.
      */
     public static void main(final String[] args) throws Exception {
-        
System.setProperty(LoggingSystemProperty.THREAD_CONTEXT_GARBAGE_FREE_ENABLED, 
"true");
+        
System.setProperty(LoggingSystemProperty.THREAD_CONTEXT_GARBAGE_FREE_ENABLED.getSystemKey(),
 "true");
         System.setProperty("AsyncLogger.RingBufferSize", "128"); // minimum 
ringbuffer size
         System.setProperty("Log4jContextSelector", 
AsyncLoggerContextSelector.class.getName());
         GcFreeLoggingTestUtil.executeLogging("gcFreeLogging.xml", 
GcFreeAsynchronousLoggingTest.class);
diff --git 
a/log4j-gctests/src/test/java/org/apache/logging/log4j/gctests/GcFreeLoggingTestUtil.java
 
b/log4j-gctests/src/test/java/org/apache/logging/log4j/gctests/GcFreeLoggingTestUtil.java
index 17f9c51e95..8654adb452 100644
--- 
a/log4j-gctests/src/test/java/org/apache/logging/log4j/gctests/GcFreeLoggingTestUtil.java
+++ 
b/log4j-gctests/src/test/java/org/apache/logging/log4j/gctests/GcFreeLoggingTestUtil.java
@@ -31,6 +31,7 @@ import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Marker;
 import org.apache.logging.log4j.MarkerManager;
 import org.apache.logging.log4j.ThreadContext;
+import org.apache.logging.log4j.core.impl.Log4jPropertyKey;
 import org.apache.logging.log4j.core.util.Constants;
 import org.apache.logging.log4j.message.StringMapMessage;
 import org.apache.logging.log4j.spi.LoggingSystemProperty;
@@ -52,10 +53,10 @@ public enum GcFreeLoggingTestUtil {;
     public static void executeLogging(final String configurationFile,
                                       final Class<?> testClass) throws 
Exception {
 
-        System.setProperty(LoggingSystemProperty.SYSTEM_THREAD_LOCALS_ENABLED, 
"true");
-        System.setProperty("log4j2.enable.direct.encoders", "true");
-        System.setProperty(LoggingSystemProperty.SYSTEM_IS_WEBAPP, "false");
-        System.setProperty("log4j.configurationFile", configurationFile);
+        
System.setProperty(LoggingSystemProperty.THREAD_LOCALS_ENABLE.getSystemKey(), 
"true");
+        
System.setProperty(Log4jPropertyKey.GC_ENABLE_DIRECT_ENCODERS.getSystemKey(), 
"true");
+        System.setProperty(LoggingSystemProperty.IS_WEBAPP.getSystemKey(), 
"false");
+        System.setProperty(Log4jPropertyKey.CONFIG_LOCATION.getSystemKey(), 
configurationFile);
 
         assertTrue(isThreadLocalsEnabled(), "Constants.ENABLE_THREADLOCALS");
         assertTrue(Constants.ENABLE_DIRECT_ENCODERS, 
"Constants.ENABLE_DIRECT_ENCODERS");
diff --git 
a/log4j-gctests/src/test/java/org/apache/logging/log4j/gctests/GcFreeMixedSyncAyncLoggingTest.java
 
b/log4j-gctests/src/test/java/org/apache/logging/log4j/gctests/GcFreeMixedSyncAyncLoggingTest.java
index c061c9b10b..b09ede3232 100644
--- 
a/log4j-gctests/src/test/java/org/apache/logging/log4j/gctests/GcFreeMixedSyncAyncLoggingTest.java
+++ 
b/log4j-gctests/src/test/java/org/apache/logging/log4j/gctests/GcFreeMixedSyncAyncLoggingTest.java
@@ -41,7 +41,7 @@ public class GcFreeMixedSyncAyncLoggingTest {
      * This code runs in a separate process, instrumented with the Google 
Allocation Instrumenter.
      */
     public static void main(final String[] args) throws Exception {
-        
System.setProperty(LoggingSystemProperty.THREAD_CONTEXT_GARBAGE_FREE_ENABLED, 
"true");
+        
System.setProperty(LoggingSystemProperty.THREAD_CONTEXT_GARBAGE_FREE_ENABLED.getSystemKey(),
 "true");
         System.setProperty("AsyncLoggerConfig.RingBufferSize", "128"); // 
minimum ringbuffer size
         
GcFreeLoggingTestUtil.executeLogging("gcFreeMixedSyncAsyncLogging.xml", 
GcFreeMixedSyncAyncLoggingTest.class);
     }
diff --git 
a/log4j-gctests/src/test/java/org/apache/logging/log4j/gctests/GcFreeSynchronousLoggingTest.java
 
b/log4j-gctests/src/test/java/org/apache/logging/log4j/gctests/GcFreeSynchronousLoggingTest.java
index b247b484a8..bdede80920 100644
--- 
a/log4j-gctests/src/test/java/org/apache/logging/log4j/gctests/GcFreeSynchronousLoggingTest.java
+++ 
b/log4j-gctests/src/test/java/org/apache/logging/log4j/gctests/GcFreeSynchronousLoggingTest.java
@@ -41,7 +41,7 @@ public class GcFreeSynchronousLoggingTest {
      * This code runs in a separate process, instrumented with the Google 
Allocation Instrumenter.
      */
     public static void main(final String[] args) throws Exception {
-        
System.setProperty(LoggingSystemProperty.THREAD_CONTEXT_GARBAGE_FREE_ENABLED, 
"true");
+        
System.setProperty(LoggingSystemProperty.THREAD_CONTEXT_GARBAGE_FREE_ENABLED.getSystemKey(),
 "true");
         GcFreeLoggingTestUtil.executeLogging("gcFreeLogging.xml", 
GcFreeSynchronousLoggingTest.class);
     }
 }
diff --git 
a/log4j-gctests/src/test/java/org/apache/logging/log4j/gctests/JsonTemplateLayoutGcFreeTest.java
 
b/log4j-gctests/src/test/java/org/apache/logging/log4j/gctests/JsonTemplateLayoutGcFreeTest.java
index d740bd6e10..f04c3eb880 100644
--- 
a/log4j-gctests/src/test/java/org/apache/logging/log4j/gctests/JsonTemplateLayoutGcFreeTest.java
+++ 
b/log4j-gctests/src/test/java/org/apache/logging/log4j/gctests/JsonTemplateLayoutGcFreeTest.java
@@ -34,7 +34,7 @@ public class JsonTemplateLayoutGcFreeTest {
      */
     public static void main(final String[] args) throws Exception {
         System.setProperty("log4j.layout.jsonTemplate.recyclerFactory", 
"threadLocal");
-        
System.setProperty(LoggingSystemProperty.THREAD_CONTEXT_GARBAGE_FREE_ENABLED, 
"true");
+        
System.setProperty(LoggingSystemProperty.THREAD_CONTEXT_GARBAGE_FREE_ENABLED.getSystemKey(),
 "true");
         GcFreeLoggingTestUtil.executeLogging(
                 "gcFreeJsonTemplateLayoutLogging.xml",
                 JsonTemplateLayoutGcFreeTest.class);
diff --git 
a/log4j-jdbc/src/test/java/org/apache/logging/log4j/jdbc/appender/AbstractJdbcAppenderDataSourceTest.java
 
b/log4j-jdbc/src/test/java/org/apache/logging/log4j/jdbc/appender/AbstractJdbcAppenderDataSourceTest.java
index 0c227c7261..1622b3a04f 100644
--- 
a/log4j-jdbc/src/test/java/org/apache/logging/log4j/jdbc/appender/AbstractJdbcAppenderDataSourceTest.java
+++ 
b/log4j-jdbc/src/test/java/org/apache/logging/log4j/jdbc/appender/AbstractJdbcAppenderDataSourceTest.java
@@ -26,8 +26,8 @@ import javax.sql.DataSource;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.core.util.Throwables;
 import org.apache.logging.log4j.core.test.junit.LoggerContextRule;
+import org.apache.logging.log4j.core.util.Throwables;
 import org.apache.logging.log4j.jndi.test.junit.JndiRule;
 import org.h2.util.IOUtils;
 import org.junit.BeforeClass;
@@ -52,7 +52,7 @@ public abstract class AbstractJdbcAppenderDataSourceTest {
 
     @BeforeClass
     public static void beforeClass() {
-        System.setProperty("log4j2.enableJndiJdbc", "true");
+        System.setProperty("log4j2.*.JNDI.enableJDBC", "true");
     }
 
     protected AbstractJdbcAppenderDataSourceTest(final JdbcRule jdbcRule) {
diff --git 
a/log4j-jdbc/src/test/java/org/apache/logging/log4j/jdbc/appender/DataSourceConnectionSourceTest.java
 
b/log4j-jdbc/src/test/java/org/apache/logging/log4j/jdbc/appender/DataSourceConnectionSourceTest.java
index 2ad7361bda..8b5e195a17 100644
--- 
a/log4j-jdbc/src/test/java/org/apache/logging/log4j/jdbc/appender/DataSourceConnectionSourceTest.java
+++ 
b/log4j-jdbc/src/test/java/org/apache/logging/log4j/jdbc/appender/DataSourceConnectionSourceTest.java
@@ -16,19 +16,10 @@
  */
 package org.apache.logging.log4j.jdbc.appender;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertSame;
-import static org.mockito.BDDMockito.given;
-import static org.mockito.Mockito.mock;
-
 import java.sql.Connection;
 import java.sql.SQLException;
-
 import javax.sql.DataSource;
 
-
 import org.apache.logging.log4j.core.test.junit.LoggerContextRule;
 import org.apache.logging.log4j.jndi.test.junit.JndiRule;
 import org.junit.Rule;
@@ -37,12 +28,19 @@ import org.junit.rules.RuleChain;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.mockito.BDDMockito.given;
+import static org.mockito.Mockito.mock;
+
 @RunWith(Parameterized.class)
 public class DataSourceConnectionSourceTest {
 
     @Parameterized.Parameters(name = "{0}")
     public static Object[][] data() {
-        System.setProperty("log4j2.enableJndiJdbc", "true");
+        System.setProperty("log4j2.*.JNDI.enableJDBC", "true");
         return new Object[][]{
             {"java:/comp/env/jdbc/Logging01"},
             {"java:/comp/env/jdbc/Logging02"}
diff --git 
a/log4j-jdbc/src/test/java/org/apache/logging/log4j/jdbc/appender/JdbcAppenderMapMessageDataSourceTest.java
 
b/log4j-jdbc/src/test/java/org/apache/logging/log4j/jdbc/appender/JdbcAppenderMapMessageDataSourceTest.java
index ed04a6884e..0c72c5074e 100644
--- 
a/log4j-jdbc/src/test/java/org/apache/logging/log4j/jdbc/appender/JdbcAppenderMapMessageDataSourceTest.java
+++ 
b/log4j-jdbc/src/test/java/org/apache/logging/log4j/jdbc/appender/JdbcAppenderMapMessageDataSourceTest.java
@@ -16,11 +16,6 @@
  */
 package org.apache.logging.log4j.jdbc.appender;
 
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.BDDMockito.given;
-import static org.mockito.Mockito.mock;
-
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.PrintWriter;
@@ -28,7 +23,6 @@ import java.sql.Connection;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
-
 import javax.sql.DataSource;
 
 import org.apache.commons.lang3.StringUtils;
@@ -47,6 +41,11 @@ import org.junit.rules.RuleChain;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.BDDMockito.given;
+import static org.mockito.Mockito.mock;
+
 /**
  * Unit tests {@link MapMessage}s for JdbcAppender using a {@link DataSource} 
configuration.
  */
@@ -58,7 +57,7 @@ public class JdbcAppenderMapMessageDataSourceTest {
 
     @BeforeClass
     public static void beforeClass() {
-        System.setProperty("log4j2.enableJndiJdbc", "true");
+        System.setProperty("log4j2.*.JNDI.enableJDBC", "true");
     }
 
     public JdbcAppenderMapMessageDataSourceTest() {
diff --git 
a/log4j-jndi-test/src/test/java/org/apache/logging/log4j/jndi/appender/routing/RoutingAppenderWithJndiTest.java
 
b/log4j-jndi-test/src/test/java/org/apache/logging/log4j/jndi/appender/routing/RoutingAppenderWithJndiTest.java
index fc24c35a1a..e7bee0103b 100644
--- 
a/log4j-jndi-test/src/test/java/org/apache/logging/log4j/jndi/appender/routing/RoutingAppenderWithJndiTest.java
+++ 
b/log4j-jndi-test/src/test/java/org/apache/logging/log4j/jndi/appender/routing/RoutingAppenderWithJndiTest.java
@@ -23,10 +23,10 @@ import javax.naming.InitialContext;
 import javax.naming.NamingException;
 
 import org.apache.logging.log4j.EventLogger;
-import org.apache.logging.log4j.jndi.test.junit.JndiRule;
+import org.apache.logging.log4j.core.test.appender.ListAppender;
 import org.apache.logging.log4j.core.test.junit.LoggerContextRule;
+import org.apache.logging.log4j.jndi.test.junit.JndiRule;
 import org.apache.logging.log4j.message.StructuredDataMessage;
-import org.apache.logging.log4j.core.test.appender.ListAppender;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.ClassRule;
@@ -47,7 +47,7 @@ public class RoutingAppenderWithJndiTest {
     public static LoggerContextRule loggerContextRule = new 
LoggerContextRule(getLocation());
 
     private static String getLocation() {
-        System.setProperty("log4j2.enableJndiLookup", "true");
+        System.setProperty("log4j2.*.JNDI.enableLookup", "true");
         return "log4j-routing-by-jndi.xml";
     }
 
diff --git 
a/log4j-jndi-test/src/test/java/org/apache/logging/log4j/jndi/lookup/InterpolatorTest.java
 
b/log4j-jndi-test/src/test/java/org/apache/logging/log4j/jndi/lookup/InterpolatorTest.java
index c1f1c0615b..b80bbebb42 100644
--- 
a/log4j-jndi-test/src/test/java/org/apache/logging/log4j/jndi/lookup/InterpolatorTest.java
+++ 
b/log4j-jndi-test/src/test/java/org/apache/logging/log4j/jndi/lookup/InterpolatorTest.java
@@ -54,14 +54,14 @@ public class InterpolatorTest {
         protected void before() throws Throwable {
             System.setProperty(TESTKEY, TESTVAL);
             System.setProperty(TESTKEY2, TESTVAL);
-            System.setProperty("log4j2.enableJndiLookup", "true");
+            System.setProperty("log4j2.*.JNDI.enableLookup", "true");
         }
 
         @Override
         protected void after() {
             System.clearProperty(TESTKEY);
             System.clearProperty(TESTKEY2);
-            System.clearProperty("log4j2.enableJndiLookup");
+            System.clearProperty("log4j2.*.JNDI.enableLookup");
         }
     }).around(new JndiRule(
             JndiLookup.CONTAINER_JNDI_RESOURCE_PATH_PREFIX + 
TEST_CONTEXT_RESOURCE_NAME, TEST_CONTEXT_NAME));
diff --git 
a/log4j-jndi-test/src/test/java/org/apache/logging/log4j/jndi/lookup/JndiLookupTest.java
 
b/log4j-jndi-test/src/test/java/org/apache/logging/log4j/jndi/lookup/JndiLookupTest.java
index 43a0996adb..bb61bbeef6 100644
--- 
a/log4j-jndi-test/src/test/java/org/apache/logging/log4j/jndi/lookup/JndiLookupTest.java
+++ 
b/log4j-jndi-test/src/test/java/org/apache/logging/log4j/jndi/lookup/JndiLookupTest.java
@@ -46,7 +46,7 @@ public class JndiLookupTest {
 
     @BeforeClass
     public static void beforeClass() {
-        System.setProperty("log4j2.enableJndiLookup", "true");
+        System.setProperty("log4j2.*.JNDI.enableLookup", "true");
     }
 
     private Map<String, Object> createBindings() {
diff --git 
a/log4j-jndi-test/src/test/java/org/apache/logging/log4j/jndi/lookup/JndiRestrictedLookupTest.java
 
b/log4j-jndi-test/src/test/java/org/apache/logging/log4j/jndi/lookup/JndiRestrictedLookupTest.java
index 38ac3ba4eb..10551366c8 100644
--- 
a/log4j-jndi-test/src/test/java/org/apache/logging/log4j/jndi/lookup/JndiRestrictedLookupTest.java
+++ 
b/log4j-jndi-test/src/test/java/org/apache/logging/log4j/jndi/lookup/JndiRestrictedLookupTest.java
@@ -53,7 +53,7 @@ public class JndiRestrictedLookupTest {
 
     @BeforeClass
     public static void beforeClass() {
-        System.setProperty("log4j2.enableJndiLookup", "true");
+        System.setProperty("log4j2.*.JNDI.enableLookup", "true");
     }
 
     @Test
diff --git 
a/log4j-jndi/src/main/java/org/apache/logging/log4j/jndi/JndiManager.java 
b/log4j-jndi/src/main/java/org/apache/logging/log4j/jndi/JndiManager.java
index 92c65aa968..63ffe537b6 100644
--- a/log4j-jndi/src/main/java/org/apache/logging/log4j/jndi/JndiManager.java
+++ b/log4j-jndi/src/main/java/org/apache/logging/log4j/jndi/JndiManager.java
@@ -14,14 +14,12 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.jndi;
 
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.Properties;
 import java.util.concurrent.TimeUnit;
-
 import javax.naming.Context;
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
@@ -215,7 +213,7 @@ public class JndiManager extends AbstractManager {
         public JndiManager createManager(final String name, final Properties 
data) {
             if (!isJndiEnabled()) {
                 throw new IllegalStateException(String.format("JNDI must be 
enabled by setting one of the %s* properties to true",
-                        Log4jPropertyKey.Constant.JNDI_ENABLED));
+                        "JNDI.enable{SubKey}"));
             }
             try {
                 return new JndiManager(name, new InitialContext(data));
diff --git 
a/log4j-jndi/src/main/java/org/apache/logging/log4j/jndi/lookup/JndiLookup.java 
b/log4j-jndi/src/main/java/org/apache/logging/log4j/jndi/lookup/JndiLookup.java
index 5dd5d02dae..5755bd1ebb 100644
--- 
a/log4j-jndi/src/main/java/org/apache/logging/log4j/jndi/lookup/JndiLookup.java
+++ 
b/log4j-jndi/src/main/java/org/apache/logging/log4j/jndi/lookup/JndiLookup.java
@@ -16,10 +16,14 @@
  */
 package org.apache.logging.log4j.jndi.lookup;
 
+import java.util.Objects;
+import javax.naming.NamingException;
+
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.Marker;
 import org.apache.logging.log4j.MarkerManager;
 import org.apache.logging.log4j.core.LogEvent;
+import org.apache.logging.log4j.core.impl.Log4jPropertyKey;
 import org.apache.logging.log4j.core.lookup.AbstractLookup;
 import org.apache.logging.log4j.core.lookup.Lookup;
 import org.apache.logging.log4j.jndi.JndiManager;
@@ -27,15 +31,13 @@ import org.apache.logging.log4j.plugins.Plugin;
 import 
org.apache.logging.log4j.plugins.validation.constraints.RequiredProperty;
 import org.apache.logging.log4j.status.StatusLogger;
 
-import javax.naming.NamingException;
-import java.util.Objects;
-
 /**
  * Looks up keys from JNDI resources.
  */
 @Lookup
 @Plugin("jndi")
-@RequiredProperty(name = "log4j2.enableJndiLookup", value = "true", message = 
"JNDI must be enabled by setting log4j2.enableJndiLookup=true")
+@RequiredProperty(name = Log4jPropertyKey.Constant.JNDI_ENABLE_LOOKUP, value = 
"true",
+        message = "JNDI must be enabled by setting JNDI.enableLookup=true")
 public class JndiLookup extends AbstractLookup {
 
     private static final Logger LOGGER = StatusLogger.getLogger();
diff --git 
a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ConcurrentAsyncLoggerToFileBenchmark.java
 
b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ConcurrentAsyncLoggerToFileBenchmark.java
index e065090340..c2d5904bf1 100644
--- 
a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ConcurrentAsyncLoggerToFileBenchmark.java
+++ 
b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ConcurrentAsyncLoggerToFileBenchmark.java
@@ -86,7 +86,7 @@ public class ConcurrentAsyncLoggerToFileBenchmark {
         @Setup
         public final void before() throws IOException {
             Files.deleteIfExists(Path.of("target", 
"ConcurrentAsyncLoggerToFileBenchmark.log"));
-            System.setProperty(LoggingSystemProperty.SYSTEM_IS_WEBAPP, 
"false");
+            System.setProperty(LoggingSystemProperty.Constant.WEB_IS_WEBAPP, 
"false");
             asyncLoggerType.setProperties();
             queueFullPolicy.setProperties();
             logger = 
LogManager.getLogger(ConcurrentAsyncLoggerToFileBenchmark.class);
diff --git 
a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/FileAppenderThrowableBenchmark.java
 
b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/FileAppenderThrowableBenchmark.java
index 9ae1d67b80..f8a14c6de5 100644
--- 
a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/FileAppenderThrowableBenchmark.java
+++ 
b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/FileAppenderThrowableBenchmark.java
@@ -58,7 +58,7 @@ import org.slf4j.LoggerFactory;
 public class FileAppenderThrowableBenchmark {
     static {
         // log4j2
-        System.setProperty(LoggingSystemProperty.SYSTEM_IS_WEBAPP, "false");
+        System.setProperty(LoggingSystemProperty.Constant.WEB_IS_WEBAPP, 
"false");
         System.setProperty("log4j.configurationFile", 
"log4j2-perf-file-throwable.xml");
         // log4j 1.2
         System.setProperty("log4j.configuration", 
"log4j12-perf-file-throwable.xml");

Reply via email to