You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by pk...@apache.org on 2022/11/09 22:55:30 UTC

[logging-log4j2] branch master updated (2322f197df -> bfff3d7a73)

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

pkarwasz pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git


    from 2322f197df No need to nest.
     new 5c9dc350ae Add minimal checkstyle check
     new 65a31eadf9 Fix recent formatting problems
     new bfff3d7a73 Fix CI configuration

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .github/workflows/build.yml                        |   4 +
 .github/workflows/codeql-analysis.yml              |   2 +
 .github/workflows/log4j-kafka-test.yml             |   2 +
 .../src/main/java/org/apache/log4j/Category.java   |  20 +-
 .../src/main/java/org/apache/log4j/Hierarchy.java  |  29 +-
 .../org/apache/log4j/PropertyConfigurator.java     |  28 +-
 .../org/apache/log4j/builders/BuilderManager.java  |  10 +-
 .../log4j/config/PropertiesConfiguration.java      |  26 +-
 .../org/apache/log4j/helpers/OptionConverter.java  |  43 +-
 .../org/apache/log4j/xml/Log4jEntityResolver.java  |  17 +-
 .../org/apache/log4j/xml/XmlConfiguration.java     |   9 +-
 .../test/java/org/apache/log4j/CategoryTest.java   |  27 +-
 .../apache/log4j/config/XmlConfigurationTest.java  |  16 +-
 .../apache/logging/log4j/test/TestProperties.java  |   1 -
 .../log4j/test/ThreadContextUtilityClass.java      |  10 +-
 .../logging/log4j/test/junit/SetTestProperty.java  |   9 +-
 .../log4j/test/junit/TestPropertySource.java       |   1 -
 .../logging/log4j/NoopThreadContextTest.java       |   4 +-
 .../log4j/message/FormattedMessageTest.java        |  14 +-
 .../log4j/message/MessageFormatMessageTest.java    |   5 +-
 .../log4j/spi/DefaultThreadContextMapTest.java     |  10 +-
 .../log4j/status/StatusConsoleListenerTest.java    |   6 +-
 .../log4j/test/junit/TestPropertySourceTest.java   |   2 +-
 .../org/apache/logging/log4j/util/CharsTest.java   |   4 +-
 .../log4j/util/EnvironmentPropertySourceTest.java  |   6 +-
 .../log4j/util/PropertiesUtilOrderTest.java        |  10 +-
 .../logging/log4j/util/PropertiesUtilTest.java     |  13 +-
 .../logging/log4j/util/ProviderUtilTest.java       |   8 +-
 .../logging/log4j/util/ServiceLoaderUtilTest.java  |   8 +-
 .../log4j/util/SortedArrayStringMapTest.java       |   4 +-
 .../logging/log4j/util/StackLocatorUtilTest.java   |   6 +-
 log4j-api/src/main/java/module-info.java           |   2 +-
 .../java/org/apache/logging/log4j/LogManager.java  |   4 +-
 .../org/apache/logging/log4j/MarkerManager.java    |   6 +-
 .../org/apache/logging/log4j/ThreadContext.java    |  17 +-
 .../logging/log4j/internal/DefaultLogBuilder.java  |   2 +-
 .../apache/logging/log4j/message/MapMessage.java   |  18 +-
 .../log4j/message/MapMessageJsonFormatter.java     |  10 +-
 .../logging/log4j/message/ObjectMessage.java       |   6 +-
 .../logging/log4j/message/ParameterFormatter.java  |   4 +-
 .../log4j/message/ParameterizedMessage.java        |   6 +-
 .../logging/log4j/message/StructuredDataId.java    | 624 ++++++++++-----------
 .../logging/log4j/message/ThreadDumpMessage.java   |  10 +-
 .../apache/logging/log4j/simple/SimpleLogger.java  |  12 +-
 .../logging/log4j/simple/SimpleLoggerContext.java  |  12 +-
 .../apache/logging/log4j/spi/AbstractLogger.java   |  30 +-
 .../CopyOnWriteSortedArrayThreadContextMap.java    |  10 +-
 .../logging/log4j/spi/DefaultThreadContextMap.java |  12 +-
 .../log4j/spi/DefaultThreadContextStack.java       |  10 +-
 .../GarbageFreeSortedArrayThreadContextMap.java    |  10 +-
 .../apache/logging/log4j/spi/LoggingSystem.java    |  23 +-
 .../apache/logging/log4j/spi/ThreadContextMap.java |   4 +-
 .../logging/log4j/status/SimpleLoggerFactory.java  |   4 +-
 .../log4j/status/StatusConsoleListener.java        |   8 +-
 .../apache/logging/log4j/status/StatusLogger.java  |  28 +-
 .../org/apache/logging/log4j/util/Activator.java   |  14 +-
 .../java/org/apache/logging/log4j/util/Cast.java   |   1 -
 .../apache/logging/log4j/util/EnglishEnums.java    |   2 +-
 .../org/apache/logging/log4j/util/InternalApi.java |   1 -
 .../java/org/apache/logging/log4j/util/Lazy.java   |   1 -
 .../org/apache/logging/log4j/util/LazyUtil.java    |   1 -
 .../org/apache/logging/log4j/util/LoaderUtil.java  |   2 +-
 .../apache/logging/log4j/util/LowLevelLogUtil.java |   5 +-
 .../apache/logging/log4j/util/MessageSupplier.java |   1 -
 .../logging/log4j/util/PropertyEnvironment.java    |   1 -
 .../logging/log4j/util/ServiceLoaderUtil.java      |   9 +-
 .../apache/logging/log4j/util/ServiceRegistry.java |   1 -
 .../org/apache/logging/log4j/util/Strings.java     |  12 +-
 .../org/apache/logging/log4j/util/Supplier.java    |   1 -
 .../log4j/util/SystemPropertiesPropertySource.java | 134 ++---
 .../org/apache/logging/log4j/util/TimeUnit.java    |   1 -
 .../appender/SocketAppenderSocketOptionsTest.java  |   6 +-
 .../log4j/core/test/junit/AllocatePorts.java       |   5 +-
 .../core/test/junit/ConfigurationResolver.java     |   1 -
 .../core/test/junit/ContextSelectorCallback.java   |   1 -
 .../core/test/junit/LoggerContextResolver.java     |   9 +-
 .../core/test/junit/PortAllocatorCallback.java     |   5 +-
 .../logging/log4j/core/test/util/Profiler.java     |   2 +-
 .../rolling/RollingAppenderOnStartupTest.java      |  16 +-
 .../async/AsyncQueueFullPolicyFactoryTest.java     |   4 +-
 .../log4j/core/async/AsyncThreadContextTest.java   |  14 +-
 ...WaitStrategyFactoryConfigGlobalLoggersTest.java |   3 +-
 .../validators/RequiredValidatorTest.java          |   4 +-
 .../validators/ValidHostValidatorTest.java         |   4 +-
 .../validators/ValidPortValidatorTest.java         |   4 +-
 .../ValidatingPluginWithFailoverTest.java          |   4 +-
 .../ValidatingPluginWithGenericBuilderTest.java    |   4 +-
 ...ngPluginWithGenericSubclassFoo1BuilderTest.java |   4 +-
 .../ValidatingPluginWithTypedBuilderTest.java      |   4 +-
 .../core/impl/ThreadContextDataInjectorTest.java   |   6 +-
 .../logging/log4j/core/layout/GelfLayoutTest.java  |  17 +-
 .../logging/log4j/core/layout/HtmlLayoutTest.java  |  24 +-
 .../log4j/core/layout/PatternLayoutTest.java       |   8 +-
 .../log4j/core/layout/Rfc5424LayoutTest.java       |  14 +-
 .../log4j/core/layout/SyslogLayoutTest.java        |   6 +-
 .../core/pattern/DatePatternConverterTest.java     |  16 +-
 .../log4j/core/time/InstantFormatterTest.java      |   6 +-
 .../java/org/apache/logging/log4j/core/Core.java   |   1 -
 .../apache/logging/log4j/core/LoggerContext.java   |  32 +-
 .../log4j/core/appender/ConsoleAppender.java       |  24 +-
 .../log4j/core/appender/SyslogAppender.java        |   8 +-
 .../logging/log4j/core/async/AsyncLogger.java      |   9 +-
 .../core/async/AsyncQueueFullPolicyFactory.java    |   2 +-
 .../async/DefaultAsyncWaitStrategyFactory.java     |  13 +-
 .../log4j/core/config/AbstractConfiguration.java   |  42 +-
 .../logging/log4j/core/config/AppenderControl.java |   4 +-
 .../log4j/core/config/AppenderControlArraySet.java |   6 +-
 .../AwaitUnconditionallyReliabilityStrategy.java   |   7 +-
 .../log4j/core/config/ConfigurationFactory.java    |   6 +-
 .../logging/log4j/core/config/Configurator.java    |  12 +-
 .../core/config/DefaultConfigurationFactory.java   |  21 +-
 .../logging/log4j/core/config/LoggerConfig.java    |  12 +-
 .../config/builder/api/ConfigurationBuilder.java   |   8 +-
 .../config/builder/impl/BuiltConfiguration.java    |  10 +-
 .../config/composite/DefaultMergeStrategy.java     |  10 +-
 .../log4j/core/config/jason/JsonConfiguration.java |  19 +-
 .../log4j/core/config/json/JsonConfiguration.java  |  23 +-
 .../plugins/visit/PluginAttributeVisitor.java      |  17 +-
 .../plugins/visit/PluginConfigurationVisitor.java  |   7 +-
 .../plugins/visit/PluginLoggerContextVisitor.java  |   9 +-
 .../properties/PropertiesConfigurationBuilder.java |  13 +-
 .../log4j/core/config/xml/XmlConfiguration.java    |  32 +-
 .../log4j/core/filter/DynamicThresholdFilter.java  |  14 +-
 .../logging/log4j/core/filter/MapFilter.java       |  14 +-
 .../log4j/core/impl/ContextDataFactory.java        |  10 +-
 .../core/impl/ContextDataInjectorFactory.java      |   2 +-
 .../logging/log4j/core/impl/DefaultBundle.java     |   9 +-
 .../logging/log4j/core/impl/Log4jLogEvent.java     |  16 +-
 .../logging/log4j/core/impl/MutableLogEvent.java   |  12 +-
 .../log4j/core/layout/AbstractStringLayout.java    |   8 +-
 .../logging/log4j/core/layout/PatternLayout.java   |  14 +-
 .../logging/log4j/core/layout/Rfc5424Layout.java   |  26 +-
 .../lookup/JmxRuntimeInputArgumentsLookup.java     |   8 +-
 .../core/message/ExtendedThreadInformation.java    |   6 +-
 .../log4j/core/net/UrlConnectionFactory.java       |  20 +-
 .../apache/logging/log4j/core/osgi/Activator.java  |   9 +-
 .../logging/log4j/core/pattern/AnsiEscape.java     |   6 +-
 .../pattern/EqualsBaseReplacementConverter.java    |   4 +-
 .../log4j/core/pattern/HighlightConverter.java     |  14 +-
 .../pattern/LineSeparatorPatternConverter.java     |   2 +-
 .../log4j/core/pattern/MdcPatternConverter.java    |   4 +-
 .../core/pattern/MessagePatternConverter.java      |  10 +-
 .../log4j/core/pattern/NameAbbreviator.java        |   6 +-
 .../logging/log4j/core/pattern/PatternParser.java  |  36 +-
 .../core/pattern/RelativeTimePatternConverter.java |   4 +-
 .../log4j/core/pattern/RepeatPatternConverter.java |   2 +-
 .../log4j/core/selector/BasicContextSelector.java  | 234 ++++----
 .../core/selector/ClassLoaderContextSelector.java  |  20 +-
 .../logging/log4j/core/time/InstantFormatter.java  |  10 +-
 .../logging/log4j/core/time/MutableInstant.java    |   4 +-
 .../log4j/core/time/internal/CachedClock.java      |   4 +-
 .../core/time/internal/CoarseCachedClock.java      |   4 +-
 .../core/util/BasicAuthorizationProvider.java      |   8 +-
 .../org/apache/logging/log4j/core/util/Loader.java |   8 +-
 .../logging/log4j/core/util/OptionConverter.java   |  12 +-
 .../apache/logging/log4j/core/util/Watcher.java    |   4 +-
 .../logging/log4j/core/util/WatcherFactory.java    |  10 +-
 .../logging/log4j/couchdb/CouchDbProvider.java     |   6 +-
 .../log4j/csv/layout/CsvLogEventLayoutTest.java    |   8 +-
 .../apache/logging/log4j/docker/DockerLookup.java  |  15 +-
 .../log4j/flume/appender/FlumeAppender.java        |   8 +-
 .../log4j/flume/appender/FlumeEmbeddedManager.java | 580 +++++++++----------
 .../org/apache/logging/log4j/io/IoBuilder.java     |  16 +-
 .../logging/log4j/web/Log4jWebInitializerImpl.java |  27 +-
 .../log4j/jeromq/appender/JeroMqManager.java       |   9 +-
 .../logging/log4j/jpa/appender/JpaAppender.java    |   6 +-
 .../ContextDataJsonAttributeConverter.java         |  21 +-
 .../jpa/appender/AbstractJpaAppenderTest.java      |  14 +-
 .../log4j/jpl/Log4jSystemLoggerAdapter.java        |   7 +-
 .../logging/log4j/jul/AbstractLoggerAdapter.java   |   4 +-
 .../org/apache/logging/log4j/jul/LogManager.java   |  10 +-
 .../log4j/kafka/appender/KafkaAppender.java        |   1 -
 .../logging/log4j/kafka/appender/KafkaManager.java |   1 -
 .../appender/KafkaAppenderCloseTimeoutTest.java    |   1 -
 .../log4j/kafka/appender/KafkaAppenderTest.java    |   3 +-
 .../KafkaManagerProducerThreadLeakTest.java        |   2 +-
 .../kubernetes/KubernetesClientProperties.java     |   7 +-
 .../logging/log4j/kubernetes/KubernetesLookup.java |  25 +-
 .../log4j/jackson/json/layout/JsonLayoutTest.java  |  52 +-
 .../log4j/jackson/xml/layout/XmlLayoutTest.java    |  15 +-
 .../log4j/jackson/yaml/layout/YamlLayoutTest.java  |   8 +-
 .../template/json/JsonTemplateLayoutTest.java      |  57 +-
 .../template/json/JsonTemplateLayoutDefaults.java  |  10 +-
 .../layout/template/json/util/JsonWriter.java      |  10 +-
 .../logging/log4j/mongodb3/MongoDb3Provider.java   |  19 +-
 .../logging/log4j/mongodb3/MongoDb3TestRule.java   |   1 -
 .../logging/log4j/mongodb4/MongoDb4TestRule.java   |   3 +-
 .../perf/jmh/AnnotationVsMarkerInterface.java      |   7 +-
 .../log4j/perf/jmh/JdbcAppenderBenchmark.java      |   1 -
 .../log4j/perf/jmh/JpaAppenderBenchmark.java       |   1 -
 .../log4j/perf/jmh/ReflectionBenchmark.java        |   8 +-
 .../perf/jmh/SortedArrayVsHashMapBenchmark.java    |   1 -
 .../logging/log4j/perf/nogc/OpenHashStringMap.java |  24 +-
 .../log4j/plugin/processor/PluginProcessor.java    |  45 +-
 .../plugin/processor/PluginProcessorTest.java      |   1 -
 .../plugins/condition/OnPropertyConditionTest.java |   1 -
 .../logging/log4j/plugins/di/InjectorTest.java     |  31 +-
 .../log4j/plugins/processor/PluginCacheTest.java   |   9 +-
 .../util/ResolverUtilCustomProtocolTest.java       |   9 +-
 .../log4j/plugins/util/ResolverUtilTest.java       |  21 +-
 .../org/apache/logging/log4j/plugins/Node.java     |   6 +-
 .../org/apache/logging/log4j/plugins/Plugin.java   |  10 +-
 .../log4j/plugins/convert/TypeConverter.java       |   1 -
 .../logging/log4j/plugins/di/BindingMap.java       |   5 +-
 .../logging/log4j/plugins/di/DefaultInjector.java  |  57 +-
 .../org/apache/logging/log4j/plugins/di/Key.java   |  15 +-
 .../org/apache/logging/log4j/plugins/di/Keys.java  |  25 +-
 .../logging/log4j/plugins/model/PluginCache.java   |   1 -
 .../logging/log4j/plugins/model/PluginEntry.java   |   5 +-
 .../log4j/plugins/model/PluginNamespace.java       |  13 +-
 .../log4j/plugins/model/PluginRegistry.java        |  25 +-
 .../logging/log4j/plugins/model/PluginType.java    |   2 +-
 .../logging/log4j/plugins/osgi/Activator.java      |   9 +-
 .../plugins/visit/PluginAttributeVisitor.java      |  17 +-
 .../log4j/plugins/visit/PluginElementVisitor.java  |  21 +-
 .../log4j/plugins/visit/PluginNodeVisitor.java     |   7 +-
 .../log4j/plugins/visit/PluginValueVisitor.java    |  15 +-
 log4j-samples/log4j-samples-configuration/pom.xml  |   1 +
 .../log4j/configuration/CustomConfiguration.java   |   4 +-
 log4j-samples/log4j-samples-flume-embedded/pom.xml |   1 +
 log4j-samples/log4j-samples-flume-remote/pom.xml   |   1 +
 .../log4j-samples-loggerProperties/pom.xml         |   1 +
 log4j-samples/pom.xml                              |   1 +
 .../config/builder/ConfigurationAssemblerTest.java |   6 +-
 .../config/builder/ConfigurationBuilderTest.java   |   4 +-
 .../config/builder/CustomConfigurationFactory.java |   4 +-
 .../java/org/apache/logging/slf4j/Log4jLogger.java |  10 +-
 .../java/org/apache/logging/slf4j/Log4jLogger.java |   2 +-
 .../apache/logging/slf4j/Log4jLoggerFactory.java   |   4 +-
 .../java/org/apache/logging/slf4j/Log4jMarker.java |  74 +--
 .../apache/logging/slf4j/Log4jMarkerFactory.java   |   2 +-
 .../logging/other/pkg/LoggerContextAnchorTest.java |   6 +-
 .../logging/slf4j/CallerInformationTest.java       |   4 +-
 .../org/apache/logging/slf4j/CustomFlatMarker.java |   1 -
 .../org/apache/logging/slf4j/Log4j1222Test.java    |  40 +-
 .../logging/slf4j/Log4j2_1482_Slf4jTest.java       |  25 +-
 .../logging/slf4j/Log4jEventBuilderTest.java       |   4 +-
 .../apache/logging/slf4j/Log4jMDCAdapterTest.java  |   4 +-
 .../org/apache/logging/slf4j/Log4jMarkerTest.java  |  24 +-
 .../apache/logging/slf4j/LoggerContextTest.java    |   4 +-
 .../java/org/apache/logging/slf4j/LoggerTest.java  |   8 +-
 .../java/org/apache/logging/slf4j/MarkerTest.java  | 290 +++++-----
 .../org/apache/logging/slf4j/OverflowTest.java     |   4 +-
 .../org/apache/logging/slf4j/SerializeTest.java    |   6 +-
 .../logging/log4j/smtp/appender/SmtpManager.java   |   1 -
 .../spring/boot/Log4j2SpringBootLoggingSystem.java |  30 +-
 .../log4j-spring-cloud-config-samples/pom.xml      |   1 +
 .../log4j/tojul/JULLoggerContextFactory.java       |   4 +-
 .../logging/log4j/tojul/LazyLog4jLogRecord.java    |   4 +-
 .../org/apache/logging/slf4j/MDCContextMap.java    |   6 +-
 .../logging/log4j/web/Log4jWebInitializerImpl.java |  28 +-
 pom.xml                                            |  40 ++
 252 files changed, 2251 insertions(+), 2262 deletions(-)


[logging-log4j2] 02/03: Fix recent formatting problems

Posted by pk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 65a31eadf9218b73b9decdbe2d7f8b24d937745e
Author: Piotr P. Karwasz <pi...@karwasz.org>
AuthorDate: Wed Nov 9 23:08:17 2022 +0100

    Fix recent formatting problems
---
 .../src/main/java/org/apache/log4j/Category.java   |  20 +-
 .../src/main/java/org/apache/log4j/Hierarchy.java  |  29 +-
 .../org/apache/log4j/PropertyConfigurator.java     |  28 +-
 .../org/apache/log4j/builders/BuilderManager.java  |  10 +-
 .../log4j/config/PropertiesConfiguration.java      |  26 +-
 .../org/apache/log4j/helpers/OptionConverter.java  |  43 +-
 .../org/apache/log4j/xml/Log4jEntityResolver.java  |  17 +-
 .../org/apache/log4j/xml/XmlConfiguration.java     |   9 +-
 .../test/java/org/apache/log4j/CategoryTest.java   |  27 +-
 .../apache/log4j/config/XmlConfigurationTest.java  |  16 +-
 .../apache/logging/log4j/test/TestProperties.java  |   1 -
 .../log4j/test/ThreadContextUtilityClass.java      |  10 +-
 .../logging/log4j/test/junit/SetTestProperty.java  |   9 +-
 .../log4j/test/junit/TestPropertySource.java       |   1 -
 .../logging/log4j/NoopThreadContextTest.java       |   4 +-
 .../log4j/message/FormattedMessageTest.java        |  14 +-
 .../log4j/message/MessageFormatMessageTest.java    |   5 +-
 .../log4j/spi/DefaultThreadContextMapTest.java     |  10 +-
 .../log4j/status/StatusConsoleListenerTest.java    |   6 +-
 .../log4j/test/junit/TestPropertySourceTest.java   |   2 +-
 .../org/apache/logging/log4j/util/CharsTest.java   |   4 +-
 .../log4j/util/EnvironmentPropertySourceTest.java  |   6 +-
 .../log4j/util/PropertiesUtilOrderTest.java        |  10 +-
 .../logging/log4j/util/PropertiesUtilTest.java     |  13 +-
 .../logging/log4j/util/ProviderUtilTest.java       |   8 +-
 .../logging/log4j/util/ServiceLoaderUtilTest.java  |   8 +-
 .../log4j/util/SortedArrayStringMapTest.java       |   4 +-
 .../logging/log4j/util/StackLocatorUtilTest.java   |   6 +-
 log4j-api/src/main/java/module-info.java           |   2 +-
 .../java/org/apache/logging/log4j/LogManager.java  |   4 +-
 .../org/apache/logging/log4j/MarkerManager.java    |   6 +-
 .../org/apache/logging/log4j/ThreadContext.java    |  17 +-
 .../logging/log4j/internal/DefaultLogBuilder.java  |   2 +-
 .../apache/logging/log4j/message/MapMessage.java   |  18 +-
 .../log4j/message/MapMessageJsonFormatter.java     |  10 +-
 .../logging/log4j/message/ObjectMessage.java       |   6 +-
 .../logging/log4j/message/ParameterFormatter.java  |   4 +-
 .../log4j/message/ParameterizedMessage.java        |   6 +-
 .../logging/log4j/message/StructuredDataId.java    | 624 ++++++++++-----------
 .../logging/log4j/message/ThreadDumpMessage.java   |  10 +-
 .../apache/logging/log4j/simple/SimpleLogger.java  |  12 +-
 .../logging/log4j/simple/SimpleLoggerContext.java  |  12 +-
 .../apache/logging/log4j/spi/AbstractLogger.java   |  30 +-
 .../CopyOnWriteSortedArrayThreadContextMap.java    |  10 +-
 .../logging/log4j/spi/DefaultThreadContextMap.java |  12 +-
 .../log4j/spi/DefaultThreadContextStack.java       |  10 +-
 .../GarbageFreeSortedArrayThreadContextMap.java    |  10 +-
 .../apache/logging/log4j/spi/LoggingSystem.java    |  23 +-
 .../apache/logging/log4j/spi/ThreadContextMap.java |   4 +-
 .../logging/log4j/status/SimpleLoggerFactory.java  |   4 +-
 .../log4j/status/StatusConsoleListener.java        |   8 +-
 .../apache/logging/log4j/status/StatusLogger.java  |  28 +-
 .../org/apache/logging/log4j/util/Activator.java   |  14 +-
 .../java/org/apache/logging/log4j/util/Cast.java   |   1 -
 .../apache/logging/log4j/util/EnglishEnums.java    |   2 +-
 .../org/apache/logging/log4j/util/InternalApi.java |   1 -
 .../java/org/apache/logging/log4j/util/Lazy.java   |   1 -
 .../org/apache/logging/log4j/util/LazyUtil.java    |   1 -
 .../org/apache/logging/log4j/util/LoaderUtil.java  |   2 +-
 .../apache/logging/log4j/util/LowLevelLogUtil.java |   5 +-
 .../apache/logging/log4j/util/MessageSupplier.java |   1 -
 .../logging/log4j/util/PropertyEnvironment.java    |   1 -
 .../logging/log4j/util/ServiceLoaderUtil.java      |   9 +-
 .../apache/logging/log4j/util/ServiceRegistry.java |   1 -
 .../org/apache/logging/log4j/util/Strings.java     |  12 +-
 .../org/apache/logging/log4j/util/Supplier.java    |   1 -
 .../log4j/util/SystemPropertiesPropertySource.java | 134 ++---
 .../org/apache/logging/log4j/util/TimeUnit.java    |   1 -
 .../appender/SocketAppenderSocketOptionsTest.java  |   6 +-
 .../log4j/core/test/junit/AllocatePorts.java       |   5 +-
 .../core/test/junit/ConfigurationResolver.java     |   1 -
 .../core/test/junit/ContextSelectorCallback.java   |   1 -
 .../core/test/junit/LoggerContextResolver.java     |   9 +-
 .../core/test/junit/PortAllocatorCallback.java     |   5 +-
 .../logging/log4j/core/test/util/Profiler.java     |   2 +-
 .../rolling/RollingAppenderOnStartupTest.java      |  16 +-
 .../async/AsyncQueueFullPolicyFactoryTest.java     |   4 +-
 .../log4j/core/async/AsyncThreadContextTest.java   |  14 +-
 ...WaitStrategyFactoryConfigGlobalLoggersTest.java |   3 +-
 .../validators/RequiredValidatorTest.java          |   4 +-
 .../validators/ValidHostValidatorTest.java         |   4 +-
 .../validators/ValidPortValidatorTest.java         |   4 +-
 .../ValidatingPluginWithFailoverTest.java          |   4 +-
 .../ValidatingPluginWithGenericBuilderTest.java    |   4 +-
 ...ngPluginWithGenericSubclassFoo1BuilderTest.java |   4 +-
 .../ValidatingPluginWithTypedBuilderTest.java      |   4 +-
 .../core/impl/ThreadContextDataInjectorTest.java   |   6 +-
 .../logging/log4j/core/layout/GelfLayoutTest.java  |  17 +-
 .../logging/log4j/core/layout/HtmlLayoutTest.java  |  24 +-
 .../log4j/core/layout/PatternLayoutTest.java       |   8 +-
 .../log4j/core/layout/Rfc5424LayoutTest.java       |  14 +-
 .../log4j/core/layout/SyslogLayoutTest.java        |   6 +-
 .../core/pattern/DatePatternConverterTest.java     |  16 +-
 .../log4j/core/time/InstantFormatterTest.java      |   6 +-
 .../java/org/apache/logging/log4j/core/Core.java   |   1 -
 .../apache/logging/log4j/core/LoggerContext.java   |  32 +-
 .../log4j/core/appender/ConsoleAppender.java       |  24 +-
 .../log4j/core/appender/SyslogAppender.java        |   8 +-
 .../logging/log4j/core/async/AsyncLogger.java      |   9 +-
 .../core/async/AsyncQueueFullPolicyFactory.java    |   2 +-
 .../async/DefaultAsyncWaitStrategyFactory.java     |  13 +-
 .../log4j/core/config/AbstractConfiguration.java   |  42 +-
 .../logging/log4j/core/config/AppenderControl.java |   4 +-
 .../log4j/core/config/AppenderControlArraySet.java |   6 +-
 .../AwaitUnconditionallyReliabilityStrategy.java   |   7 +-
 .../log4j/core/config/ConfigurationFactory.java    |   6 +-
 .../logging/log4j/core/config/Configurator.java    |  12 +-
 .../core/config/DefaultConfigurationFactory.java   |  21 +-
 .../logging/log4j/core/config/LoggerConfig.java    |  12 +-
 .../config/builder/api/ConfigurationBuilder.java   |   8 +-
 .../config/builder/impl/BuiltConfiguration.java    |  10 +-
 .../config/composite/DefaultMergeStrategy.java     |  10 +-
 .../log4j/core/config/jason/JsonConfiguration.java |  19 +-
 .../log4j/core/config/json/JsonConfiguration.java  |  23 +-
 .../plugins/visit/PluginAttributeVisitor.java      |  17 +-
 .../plugins/visit/PluginConfigurationVisitor.java  |   7 +-
 .../plugins/visit/PluginLoggerContextVisitor.java  |   9 +-
 .../properties/PropertiesConfigurationBuilder.java |  13 +-
 .../log4j/core/config/xml/XmlConfiguration.java    |  32 +-
 .../log4j/core/filter/DynamicThresholdFilter.java  |  14 +-
 .../logging/log4j/core/filter/MapFilter.java       |  14 +-
 .../log4j/core/impl/ContextDataFactory.java        |  10 +-
 .../core/impl/ContextDataInjectorFactory.java      |   2 +-
 .../logging/log4j/core/impl/DefaultBundle.java     |   9 +-
 .../logging/log4j/core/impl/Log4jLogEvent.java     |  16 +-
 .../logging/log4j/core/impl/MutableLogEvent.java   |  12 +-
 .../log4j/core/layout/AbstractStringLayout.java    |   8 +-
 .../logging/log4j/core/layout/PatternLayout.java   |  14 +-
 .../logging/log4j/core/layout/Rfc5424Layout.java   |  26 +-
 .../lookup/JmxRuntimeInputArgumentsLookup.java     |   8 +-
 .../core/message/ExtendedThreadInformation.java    |   6 +-
 .../log4j/core/net/UrlConnectionFactory.java       |  20 +-
 .../apache/logging/log4j/core/osgi/Activator.java  |   9 +-
 .../logging/log4j/core/pattern/AnsiEscape.java     |   6 +-
 .../pattern/EqualsBaseReplacementConverter.java    |   4 +-
 .../log4j/core/pattern/HighlightConverter.java     |  14 +-
 .../pattern/LineSeparatorPatternConverter.java     |   2 +-
 .../log4j/core/pattern/MdcPatternConverter.java    |   4 +-
 .../core/pattern/MessagePatternConverter.java      |  10 +-
 .../log4j/core/pattern/NameAbbreviator.java        |   6 +-
 .../logging/log4j/core/pattern/PatternParser.java  |  36 +-
 .../core/pattern/RelativeTimePatternConverter.java |   4 +-
 .../log4j/core/pattern/RepeatPatternConverter.java |   2 +-
 .../log4j/core/selector/BasicContextSelector.java  | 234 ++++----
 .../core/selector/ClassLoaderContextSelector.java  |  20 +-
 .../logging/log4j/core/time/InstantFormatter.java  |  10 +-
 .../logging/log4j/core/time/MutableInstant.java    |   4 +-
 .../log4j/core/time/internal/CachedClock.java      |   4 +-
 .../core/time/internal/CoarseCachedClock.java      |   4 +-
 .../core/util/BasicAuthorizationProvider.java      |   8 +-
 .../org/apache/logging/log4j/core/util/Loader.java |   8 +-
 .../logging/log4j/core/util/OptionConverter.java   |  12 +-
 .../apache/logging/log4j/core/util/Watcher.java    |   4 +-
 .../logging/log4j/core/util/WatcherFactory.java    |  10 +-
 .../logging/log4j/couchdb/CouchDbProvider.java     |   6 +-
 .../log4j/csv/layout/CsvLogEventLayoutTest.java    |   8 +-
 .../apache/logging/log4j/docker/DockerLookup.java  |  15 +-
 .../log4j/flume/appender/FlumeAppender.java        |   8 +-
 .../log4j/flume/appender/FlumeEmbeddedManager.java | 580 +++++++++----------
 .../org/apache/logging/log4j/io/IoBuilder.java     |  16 +-
 .../logging/log4j/web/Log4jWebInitializerImpl.java |  27 +-
 .../log4j/jeromq/appender/JeroMqManager.java       |   9 +-
 .../logging/log4j/jpa/appender/JpaAppender.java    |   6 +-
 .../ContextDataJsonAttributeConverter.java         |  21 +-
 .../jpa/appender/AbstractJpaAppenderTest.java      |  14 +-
 .../log4j/jpl/Log4jSystemLoggerAdapter.java        |   7 +-
 .../logging/log4j/jul/AbstractLoggerAdapter.java   |   4 +-
 .../org/apache/logging/log4j/jul/LogManager.java   |  10 +-
 .../log4j/kafka/appender/KafkaAppender.java        |   1 -
 .../logging/log4j/kafka/appender/KafkaManager.java |   1 -
 .../appender/KafkaAppenderCloseTimeoutTest.java    |   1 -
 .../log4j/kafka/appender/KafkaAppenderTest.java    |   3 +-
 .../KafkaManagerProducerThreadLeakTest.java        |   2 +-
 .../kubernetes/KubernetesClientProperties.java     |   7 +-
 .../logging/log4j/kubernetes/KubernetesLookup.java |  25 +-
 .../log4j/jackson/json/layout/JsonLayoutTest.java  |  52 +-
 .../log4j/jackson/xml/layout/XmlLayoutTest.java    |  15 +-
 .../log4j/jackson/yaml/layout/YamlLayoutTest.java  |   8 +-
 .../template/json/JsonTemplateLayoutTest.java      |  57 +-
 .../template/json/JsonTemplateLayoutDefaults.java  |  10 +-
 .../layout/template/json/util/JsonWriter.java      |  10 +-
 .../logging/log4j/mongodb3/MongoDb3Provider.java   |  19 +-
 .../logging/log4j/mongodb3/MongoDb3TestRule.java   |   1 -
 .../logging/log4j/mongodb4/MongoDb4TestRule.java   |   3 +-
 .../perf/jmh/AnnotationVsMarkerInterface.java      |   7 +-
 .../log4j/perf/jmh/JdbcAppenderBenchmark.java      |   1 -
 .../log4j/perf/jmh/JpaAppenderBenchmark.java       |   1 -
 .../log4j/perf/jmh/ReflectionBenchmark.java        |   8 +-
 .../perf/jmh/SortedArrayVsHashMapBenchmark.java    |   1 -
 .../logging/log4j/perf/nogc/OpenHashStringMap.java |  24 +-
 .../log4j/plugin/processor/PluginProcessor.java    |  45 +-
 .../plugin/processor/PluginProcessorTest.java      |   1 -
 .../plugins/condition/OnPropertyConditionTest.java |   1 -
 .../logging/log4j/plugins/di/InjectorTest.java     |  31 +-
 .../log4j/plugins/processor/PluginCacheTest.java   |   9 +-
 .../util/ResolverUtilCustomProtocolTest.java       |   9 +-
 .../log4j/plugins/util/ResolverUtilTest.java       |  21 +-
 .../org/apache/logging/log4j/plugins/Node.java     |   6 +-
 .../org/apache/logging/log4j/plugins/Plugin.java   |  10 +-
 .../log4j/plugins/convert/TypeConverter.java       |   1 -
 .../logging/log4j/plugins/di/BindingMap.java       |   5 +-
 .../logging/log4j/plugins/di/DefaultInjector.java  |  57 +-
 .../org/apache/logging/log4j/plugins/di/Key.java   |  15 +-
 .../org/apache/logging/log4j/plugins/di/Keys.java  |  25 +-
 .../logging/log4j/plugins/model/PluginCache.java   |   1 -
 .../logging/log4j/plugins/model/PluginEntry.java   |   5 +-
 .../log4j/plugins/model/PluginNamespace.java       |  13 +-
 .../log4j/plugins/model/PluginRegistry.java        |  25 +-
 .../logging/log4j/plugins/model/PluginType.java    |   2 +-
 .../logging/log4j/plugins/osgi/Activator.java      |   9 +-
 .../plugins/visit/PluginAttributeVisitor.java      |  17 +-
 .../log4j/plugins/visit/PluginElementVisitor.java  |  21 +-
 .../log4j/plugins/visit/PluginNodeVisitor.java     |   7 +-
 .../log4j/plugins/visit/PluginValueVisitor.java    |  15 +-
 log4j-samples/log4j-samples-configuration/pom.xml  |   1 +
 .../log4j/configuration/CustomConfiguration.java   |   4 +-
 log4j-samples/log4j-samples-flume-embedded/pom.xml |   1 +
 log4j-samples/log4j-samples-flume-remote/pom.xml   |   1 +
 .../log4j-samples-loggerProperties/pom.xml         |   1 +
 .../config/builder/ConfigurationAssemblerTest.java |   6 +-
 .../config/builder/ConfigurationBuilderTest.java   |   4 +-
 .../config/builder/CustomConfigurationFactory.java |   4 +-
 .../java/org/apache/logging/slf4j/Log4jLogger.java |  10 +-
 .../java/org/apache/logging/slf4j/Log4jLogger.java |   2 +-
 .../apache/logging/slf4j/Log4jLoggerFactory.java   |   4 +-
 .../java/org/apache/logging/slf4j/Log4jMarker.java |  74 +--
 .../apache/logging/slf4j/Log4jMarkerFactory.java   |   2 +-
 .../logging/other/pkg/LoggerContextAnchorTest.java |   6 +-
 .../logging/slf4j/CallerInformationTest.java       |   4 +-
 .../org/apache/logging/slf4j/CustomFlatMarker.java |   1 -
 .../org/apache/logging/slf4j/Log4j1222Test.java    |  40 +-
 .../logging/slf4j/Log4j2_1482_Slf4jTest.java       |  25 +-
 .../logging/slf4j/Log4jEventBuilderTest.java       |   4 +-
 .../apache/logging/slf4j/Log4jMDCAdapterTest.java  |   4 +-
 .../org/apache/logging/slf4j/Log4jMarkerTest.java  |  24 +-
 .../apache/logging/slf4j/LoggerContextTest.java    |   4 +-
 .../java/org/apache/logging/slf4j/LoggerTest.java  |   8 +-
 .../java/org/apache/logging/slf4j/MarkerTest.java  | 290 +++++-----
 .../org/apache/logging/slf4j/OverflowTest.java     |   4 +-
 .../org/apache/logging/slf4j/SerializeTest.java    |   6 +-
 .../logging/log4j/smtp/appender/SmtpManager.java   |   1 -
 .../spring/boot/Log4j2SpringBootLoggingSystem.java |  30 +-
 .../log4j-spring-cloud-config-samples/pom.xml      |   1 +
 .../log4j/tojul/JULLoggerContextFactory.java       |   4 +-
 .../logging/log4j/tojul/LazyLog4jLogRecord.java    |   4 +-
 .../org/apache/logging/slf4j/MDCContextMap.java    |   6 +-
 .../logging/log4j/web/Log4jWebInitializerImpl.java |  28 +-
 247 files changed, 2202 insertions(+), 2262 deletions(-)

diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/Category.java b/log4j-1.2-api/src/main/java/org/apache/log4j/Category.java
index bddc930207..c35a2cc74e 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/Category.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/Category.java
@@ -16,6 +16,15 @@
  */
 package org.apache.log4j;
 
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.Map;
+import java.util.ResourceBundle;
+import java.util.Vector;
+import java.util.concurrent.ConcurrentMap;
+import java.util.stream.Collectors;
+
 import org.apache.log4j.bridge.AppenderAdapter;
 import org.apache.log4j.bridge.AppenderWrapper;
 import org.apache.log4j.bridge.LogEventWrapper;
@@ -35,17 +44,8 @@ import org.apache.logging.log4j.message.ObjectMessage;
 import org.apache.logging.log4j.message.SimpleMessage;
 import org.apache.logging.log4j.spi.ExtendedLogger;
 import org.apache.logging.log4j.spi.LoggerContext;
-import org.apache.logging.log4j.util.Strings;
 import org.apache.logging.log4j.util.StackLocatorUtil;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.Map;
-import java.util.ResourceBundle;
-import java.util.Vector;
-import java.util.concurrent.ConcurrentMap;
-import java.util.stream.Collectors;
+import org.apache.logging.log4j.util.Strings;
 
 /**
  * Implementation of the Category class for compatibility, despite it having been deprecated a long, long time ago.
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/Hierarchy.java b/log4j-1.2-api/src/main/java/org/apache/log4j/Hierarchy.java
index e2da6b974a..a40b33bd53 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/Hierarchy.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/Hierarchy.java
@@ -1,26 +1,28 @@
 /*
  * 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.
  */
-
-// WARNING This class MUST not have references to the Category or
-// WARNING RootCategory classes in its static initialization neither
-// WARNING directly nor indirectly.
-
 package org.apache.log4j;
 
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.Vector;
+import java.util.WeakHashMap;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+
 import org.apache.log4j.helpers.LogLog;
 import org.apache.log4j.helpers.OptionConverter;
 import org.apache.log4j.legacy.core.ContextUtil;
@@ -37,13 +39,6 @@ import org.apache.logging.log4j.spi.AbstractLoggerAdapter;
 import org.apache.logging.log4j.spi.LoggerContext;
 import org.apache.logging.log4j.util.StackLocatorUtil;
 
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Vector;
-import java.util.WeakHashMap;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-
 /**
  * This class is specialized in retrieving loggers by name and also maintaining the logger hierarchy.
  *
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/PropertyConfigurator.java b/log4j-1.2-api/src/main/java/org/apache/log4j/PropertyConfigurator.java
index 8f6ab24273..7069f5f8ce 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/PropertyConfigurator.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/PropertyConfigurator.java
@@ -16,6 +16,20 @@
  */
 package org.apache.log4j;
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InterruptedIOException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.Map;
+import java.util.Properties;
+import java.util.StringTokenizer;
+import java.util.Vector;
+
 import org.apache.log4j.bridge.FilterAdapter;
 import org.apache.log4j.config.Log4j1Configuration;
 import org.apache.log4j.config.PropertiesConfiguration;
@@ -37,20 +51,6 @@ import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.net.UrlConnectionFactory;
 import org.apache.logging.log4j.util.StackLocatorUtil;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InterruptedIOException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Map;
-import java.util.Properties;
-import java.util.StringTokenizer;
-import java.util.Vector;
-
 /**
  * Configures Log4j from properties.
  */
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/BuilderManager.java b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/BuilderManager.java
index edf8bba76c..8df2cc0398 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/builders/BuilderManager.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/builders/BuilderManager.java
@@ -16,6 +16,11 @@
  */
 package org.apache.log4j.builders;
 
+import java.util.Locale;
+import java.util.Objects;
+import java.util.Properties;
+import java.util.function.Function;
+
 import org.apache.log4j.Appender;
 import org.apache.log4j.Layout;
 import org.apache.log4j.bridge.AppenderWrapper;
@@ -40,11 +45,6 @@ import org.apache.logging.log4j.status.StatusLogger;
 import org.apache.logging.log4j.util.Cast;
 import org.w3c.dom.Element;
 
-import java.util.Locale;
-import java.util.Objects;
-import java.util.Properties;
-import java.util.function.Function;
-
 /**
  *
  */
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/config/PropertiesConfiguration.java b/log4j-1.2-api/src/main/java/org/apache/log4j/config/PropertiesConfiguration.java
index fdf237c65b..7edee3d86b 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/config/PropertiesConfiguration.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/config/PropertiesConfiguration.java
@@ -16,6 +16,19 @@
  */
 package org.apache.log4j.config;
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Properties;
+import java.util.SortedMap;
+import java.util.StringTokenizer;
+import java.util.TreeMap;
+
 import org.apache.log4j.Appender;
 import org.apache.log4j.Layout;
 import org.apache.log4j.LogManager;
@@ -36,19 +49,6 @@ import org.apache.logging.log4j.core.config.status.StatusConfiguration;
 import org.apache.logging.log4j.core.filter.ThresholdFilter;
 import org.apache.logging.log4j.util.LoaderUtil;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Properties;
-import java.util.SortedMap;
-import java.util.StringTokenizer;
-import java.util.TreeMap;
-
 /**
  * Constructs a configuration based on Log4j 1 properties.
  */
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/OptionConverter.java b/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/OptionConverter.java
index 4cba985f2c..ba6e4596bc 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/OptionConverter.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/OptionConverter.java
@@ -1,22 +1,30 @@
 /*
  * 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.helpers;
 
+import java.io.InputStream;
+import java.io.InterruptedIOException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+
 import org.apache.log4j.Level;
 import org.apache.log4j.Priority;
 import org.apache.log4j.PropertyConfigurator;
@@ -25,18 +33,9 @@ import org.apache.log4j.spi.LoggerRepository;
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.spi.StandardLevel;
 import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.Strings;
 import org.apache.logging.log4j.util.LoaderUtil;
 import org.apache.logging.log4j.util.PropertiesUtil;
-
-import java.io.InputStream;
-import java.io.InterruptedIOException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
+import org.apache.logging.log4j.util.Strings;
 
 /**
  * A convenience class to convert property values to specific types.
@@ -64,7 +63,7 @@ public class OptionConverter {
             + 100 * (StandardLevel.FATAL.intLevel() - StandardLevel.OFF.intLevel() - 1) + 1;
     /**
      * A Log4j 1.x level below or equal to this value is considered as ALL.
-     * 
+     *
      * Log4j 2.x ALL to TRACE interval is shorter. This is {@link Priority#ALL_INT}
      * plus the difference.
      */
@@ -540,12 +539,12 @@ public class OptionConverter {
      * character is present, then the default {@link org.apache.log4j.Level} class
      * is used to process the level value.
      * </p>
-     * 
+     *
      * <p>
      * As a special case, if the <code>value</code> parameter is equal to the string
      * "NULL", then the value <code>null</code> will be returned.
      * </p>
-     * 
+     *
      * <p>
      * As a Log4j 2.x extension, a {@code value}
      * "level#org.apache.logging.log4j.Level" retrieves the corresponding custom
@@ -562,7 +561,7 @@ public class OptionConverter {
      * Case of <code>value</code> is insignificant for the level, but is
      * significant for the class name part, if present.
      * </p>
-     * 
+     *
      * @param value        The value to convert.
      * @param defaultValue The default value.
      * @return the value of the result.
@@ -606,12 +605,12 @@ public class OptionConverter {
 
     /**
      * Converts a custom priority level to a Level object.
-     * 
+     *
      * <p>
      * If {@code clazz} has the special value "org.apache.logging.log4j.Level" a
      * wrapper of the corresponding Log4j 2.x custom level object is returned.
      * </p>
-     * 
+     *
      * @param clazz        a custom level class,
      * @param levelName    the name of the level,
      * @param defaultValue the value to return in case an error occurs,
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/xml/Log4jEntityResolver.java b/log4j-1.2-api/src/main/java/org/apache/log4j/xml/Log4jEntityResolver.java
index b075459164..f4cb122ee7 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/xml/Log4jEntityResolver.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/xml/Log4jEntityResolver.java
@@ -1,31 +1,30 @@
 /*
  * 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.xml;
 
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.status.StatusLogger;
 import org.apache.logging.log4j.util.Constants;
 import org.xml.sax.EntityResolver;
 import org.xml.sax.InputSource;
 
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-
 /**
  * An {@link EntityResolver} specifically designed to return
  * <code>log4j.dtd</code> which is embedded within the log4j jar
diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/xml/XmlConfiguration.java b/log4j-1.2-api/src/main/java/org/apache/log4j/xml/XmlConfiguration.java
index 5e3e1a5147..07eb38db8a 100644
--- a/log4j-1.2-api/src/main/java/org/apache/log4j/xml/XmlConfiguration.java
+++ b/log4j-1.2-api/src/main/java/org/apache/log4j/xml/XmlConfiguration.java
@@ -24,7 +24,6 @@ import java.util.Properties;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.function.Consumer;
 import java.util.stream.IntStream;
-
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.FactoryConfigurationError;
@@ -650,8 +649,8 @@ public class XmlConfiguration extends Log4j1Configuration {
             return layout;
         } catch (Exception e) {
             Throwable cause = e.getCause();
-            if (e instanceof InterruptedException 
-                || e instanceof InterruptedIOException 
+            if (e instanceof InterruptedException
+                || e instanceof InterruptedIOException
                 || cause instanceof InterruptedException
                 || cause instanceof InterruptedIOException) {
                 Thread.currentThread().interrupt();
@@ -749,7 +748,7 @@ public class XmlConfiguration extends Log4j1Configuration {
 
         forEachElement(element.getChildNodes(), currentElement -> {
             switch (currentElement.getTagName()) {
-                case CATEGORY: 
+                case CATEGORY:
                 case LOGGER_ELEMENT:
                     parseCategory(currentElement);
                     break;
@@ -762,7 +761,7 @@ public class XmlConfiguration extends Log4j1Configuration {
                 case THROWABLE_RENDERER_TAG:
                     LOGGER.warn("Log4j 1 throwable renderers are not supported by Log4j 2 and will be ignored.");
                     break;
-                case CATEGORY_FACTORY_TAG: 
+                case CATEGORY_FACTORY_TAG:
                 case LOGGER_FACTORY_TAG:
                     LOGGER.warn("Log4j 1 logger factories are not supported by Log4j 2 and will be ignored.");
                     break;
diff --git a/log4j-1.2-api/src/test/java/org/apache/log4j/CategoryTest.java b/log4j-1.2-api/src/test/java/org/apache/log4j/CategoryTest.java
index 798a15b1f6..3d46a78643 100644
--- a/log4j-1.2-api/src/test/java/org/apache/log4j/CategoryTest.java
+++ b/log4j-1.2-api/src/test/java/org/apache/log4j/CategoryTest.java
@@ -1,22 +1,28 @@
 /*
  * 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 java.lang.reflect.Method;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Consumer;
+
 import org.apache.log4j.bridge.AppenderAdapter;
 import org.apache.log4j.bridge.AppenderWrapper;
 import org.apache.log4j.spi.LoggingEvent;
@@ -29,21 +35,14 @@ import org.apache.logging.log4j.message.MapMessage;
 import org.apache.logging.log4j.message.Message;
 import org.apache.logging.log4j.message.ObjectMessage;
 import org.apache.logging.log4j.message.SimpleMessage;
-import org.apache.logging.log4j.util.Strings;
 import org.apache.logging.log4j.util.Cast;
 import org.apache.logging.log4j.util.Constants;
+import org.apache.logging.log4j.util.Strings;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import java.lang.reflect.Method;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.List;
-import java.util.Map;
-import java.util.function.Consumer;
-
 import static org.junit.jupiter.api.Assertions.*;
 
 /**
diff --git a/log4j-1.2-api/src/test/java/org/apache/log4j/config/XmlConfigurationTest.java b/log4j-1.2-api/src/test/java/org/apache/log4j/config/XmlConfigurationTest.java
index 6ba0391ddb..f1e118bee8 100644
--- a/log4j-1.2-api/src/test/java/org/apache/log4j/config/XmlConfigurationTest.java
+++ b/log4j-1.2-api/src/test/java/org/apache/log4j/config/XmlConfigurationTest.java
@@ -16,6 +16,14 @@
  */
 package org.apache.log4j.config;
 
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URISyntaxException;
+import java.nio.file.Path;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.log4j.ListAppender;
 import org.apache.log4j.LogManager;
 import org.apache.log4j.Logger;
@@ -31,14 +39,6 @@ import org.apache.logging.log4j.util.Lazy;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.io.TempDir;
 
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URISyntaxException;
-import java.nio.file.Path;
-import java.util.List;
-import java.util.Map;
-
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
diff --git a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/TestProperties.java b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/TestProperties.java
index 0c66fc8b94..49bb1e5877 100644
--- a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/TestProperties.java
+++ b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/TestProperties.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.test;
 
 /**
diff --git a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/ThreadContextUtilityClass.java b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/ThreadContextUtilityClass.java
index 6f3bffcd5d..d39dbdc440 100644
--- a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/ThreadContextUtilityClass.java
+++ b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/ThreadContextUtilityClass.java
@@ -16,6 +16,11 @@
  */
 package org.apache.logging.log4j.test;
 
+import java.util.Map;
+
+import org.apache.logging.log4j.ThreadContext;
+import org.apache.logging.log4j.util.Timer;
+
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertNotSame;
@@ -23,11 +28,6 @@ import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import java.util.Map;
-
-import org.apache.logging.log4j.ThreadContext;
-import org.apache.logging.log4j.util.Timer;
-
 public class ThreadContextUtilityClass {
 
     public static void perfTest() {
diff --git a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/SetTestProperty.java b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/SetTestProperty.java
index 2d85d168a3..aa8a81e943 100644
--- a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/SetTestProperty.java
+++ b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/SetTestProperty.java
@@ -14,13 +14,8 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.test.junit;
 
-import static java.lang.annotation.ElementType.METHOD;
-import static java.lang.annotation.ElementType.TYPE;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
 import java.lang.annotation.Documented;
 import java.lang.annotation.Inherited;
 import java.lang.annotation.Repeatable;
@@ -31,6 +26,10 @@ import org.junit.jupiter.api.extension.ExtendWith;
 import org.junitpioneer.jupiter.ReadsEnvironmentVariable;
 import org.junitpioneer.jupiter.ReadsSystemProperty;
 
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
 /**
  * Registers a Log4j2 system property with the {@link TestPropertySource}. The
  * property will also be available in configuration files using the
diff --git a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/TestPropertySource.java b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/TestPropertySource.java
index d8190fdf4f..1ad7e93c1e 100644
--- a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/TestPropertySource.java
+++ b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/TestPropertySource.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.test.junit;
 
 import org.apache.logging.log4j.test.TestProperties;
diff --git a/log4j-api-test/src/test/java/org/apache/logging/log4j/NoopThreadContextTest.java b/log4j-api-test/src/test/java/org/apache/logging/log4j/NoopThreadContextTest.java
index d06328676f..18f680b7c6 100644
--- a/log4j-api-test/src/test/java/org/apache/logging/log4j/NoopThreadContextTest.java
+++ b/log4j-api-test/src/test/java/org/apache/logging/log4j/NoopThreadContextTest.java
@@ -16,13 +16,13 @@
  */
 package org.apache.logging.log4j;
 
-import static org.junit.jupiter.api.Assertions.assertNull;
-
 import org.apache.logging.log4j.test.junit.InitializesThreadContext;
 import org.apache.logging.log4j.test.junit.UsingThreadContextMap;
 import org.junit.jupiter.api.Test;
 import org.junitpioneer.jupiter.SetSystemProperty;
 
+import static org.junit.jupiter.api.Assertions.assertNull;
+
 /**
  * Tests {@link ThreadContext}.
  */
diff --git a/log4j-api-test/src/test/java/org/apache/logging/log4j/message/FormattedMessageTest.java b/log4j-api-test/src/test/java/org/apache/logging/log4j/message/FormattedMessageTest.java
index da1d13c644..70f3c73cae 100644
--- a/log4j-api-test/src/test/java/org/apache/logging/log4j/message/FormattedMessageTest.java
+++ b/log4j-api-test/src/test/java/org/apache/logging/log4j/message/FormattedMessageTest.java
@@ -16,13 +16,6 @@
  */
 package org.apache.logging.log4j.message;
 
-import org.apache.logging.log4j.test.junit.Mutable;
-import org.apache.logging.log4j.util.Constants;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.parallel.ResourceAccessMode;
-import org.junit.jupiter.api.parallel.ResourceLock;
-import org.junit.jupiter.api.parallel.Resources;
-
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
@@ -30,6 +23,13 @@ import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 import java.util.Locale;
 
+import org.apache.logging.log4j.test.junit.Mutable;
+import org.apache.logging.log4j.util.Constants;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.parallel.ResourceAccessMode;
+import org.junit.jupiter.api.parallel.ResourceLock;
+import org.junit.jupiter.api.parallel.Resources;
+
 import static org.junit.jupiter.api.Assertions.assertArrayEquals;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
diff --git a/log4j-api-test/src/test/java/org/apache/logging/log4j/message/MessageFormatMessageTest.java b/log4j-api-test/src/test/java/org/apache/logging/log4j/message/MessageFormatMessageTest.java
index a6ca152606..3d4a9b567a 100644
--- a/log4j-api-test/src/test/java/org/apache/logging/log4j/message/MessageFormatMessageTest.java
+++ b/log4j-api-test/src/test/java/org/apache/logging/log4j/message/MessageFormatMessageTest.java
@@ -14,9 +14,10 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.message;
 
+import java.util.Locale;
+
 import org.apache.logging.log4j.test.junit.Mutable;
 import org.apache.logging.log4j.util.Constants;
 import org.junit.jupiter.api.Test;
@@ -24,8 +25,6 @@ import org.junit.jupiter.api.parallel.ResourceAccessMode;
 import org.junit.jupiter.api.parallel.ResourceLock;
 import org.junit.jupiter.api.parallel.Resources;
 
-import java.util.Locale;
-
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
diff --git a/log4j-api-test/src/test/java/org/apache/logging/log4j/spi/DefaultThreadContextMapTest.java b/log4j-api-test/src/test/java/org/apache/logging/log4j/spi/DefaultThreadContextMapTest.java
index bf4e751f6f..e702e7ceec 100644
--- a/log4j-api-test/src/test/java/org/apache/logging/log4j/spi/DefaultThreadContextMapTest.java
+++ b/log4j-api-test/src/test/java/org/apache/logging/log4j/spi/DefaultThreadContextMapTest.java
@@ -16,12 +16,12 @@
  */
 package org.apache.logging.log4j.spi;
 
-import org.apache.logging.log4j.test.junit.UsingThreadContextMap;
-import org.junit.jupiter.api.Test;
-
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.logging.log4j.test.junit.UsingThreadContextMap;
+import org.junit.jupiter.api.Test;
+
 import static org.junit.jupiter.api.Assertions.*;
 
 /**
@@ -127,7 +127,7 @@ public class DefaultThreadContextMapTest {
         assertEquals("value2", map.get("key2"));
         return map;
     }
-    
+
     @Test
     public void testGetCopyReturnsMutableMap() {
         final DefaultThreadContextMap map = new DefaultThreadContextMap(true);
@@ -217,7 +217,7 @@ public class DefaultThreadContextMapTest {
         final ThreadLocal<Map<String, String>> threadLocal = DefaultThreadContextMap.createThreadLocalMap(true, false);
         assertFalse(threadLocal instanceof InheritableThreadLocal<?>);
     }
-    
+
     @Test
     public void testThreadLocalInheritableIfConfigured() {
         final ThreadLocal<Map<String, String>> threadLocal = DefaultThreadContextMap.createThreadLocalMap(true, true);
diff --git a/log4j-api-test/src/test/java/org/apache/logging/log4j/status/StatusConsoleListenerTest.java b/log4j-api-test/src/test/java/org/apache/logging/log4j/status/StatusConsoleListenerTest.java
index 6b66543387..ba5d634841 100644
--- a/log4j-api-test/src/test/java/org/apache/logging/log4j/status/StatusConsoleListenerTest.java
+++ b/log4j-api-test/src/test/java/org/apache/logging/log4j/status/StatusConsoleListenerTest.java
@@ -16,6 +16,9 @@
  */
 package org.apache.logging.log4j.status;
 
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogBuilder;
 import org.apache.logging.log4j.message.Message;
@@ -26,9 +29,6 @@ import org.assertj.core.api.Assertions;
 import org.junit.jupiter.api.Test;
 import org.mockito.Mockito;
 
-import java.io.ByteArrayOutputStream;
-import java.io.PrintStream;
-
 public class StatusConsoleListenerTest {
 
     public static final MessageFactory MESSAGE_FACTORY = ParameterizedNoReferenceMessageFactory.INSTANCE;
diff --git a/log4j-api-test/src/test/java/org/apache/logging/log4j/test/junit/TestPropertySourceTest.java b/log4j-api-test/src/test/java/org/apache/logging/log4j/test/junit/TestPropertySourceTest.java
index 54562f672a..2962659b55 100644
--- a/log4j-api-test/src/test/java/org/apache/logging/log4j/test/junit/TestPropertySourceTest.java
+++ b/log4j-api-test/src/test/java/org/apache/logging/log4j/test/junit/TestPropertySourceTest.java
@@ -17,8 +17,8 @@
 package org.apache.logging.log4j.test.junit;
 
 import org.apache.logging.log4j.test.TestProperties;
-import org.apache.logging.log4j.util.PropertyEnvironment;
 import org.apache.logging.log4j.util.PropertiesUtil;
+import org.apache.logging.log4j.util.PropertyEnvironment;
 import org.junit.jupiter.api.Test;
 
 import static org.assertj.core.api.Assertions.assertThat;
diff --git a/log4j-api-test/src/test/java/org/apache/logging/log4j/util/CharsTest.java b/log4j-api-test/src/test/java/org/apache/logging/log4j/util/CharsTest.java
index b3cfe64ab0..fb5e4664a4 100644
--- a/log4j-api-test/src/test/java/org/apache/logging/log4j/util/CharsTest.java
+++ b/log4j-api-test/src/test/java/org/apache/logging/log4j/util/CharsTest.java
@@ -16,12 +16,12 @@
  */
 package org.apache.logging.log4j.util;
 
+import java.util.stream.IntStream;
+
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.ValueSource;
 
-import java.util.stream.IntStream;
-
 import static org.junit.jupiter.api.Assertions.assertAll;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
diff --git a/log4j-api-test/src/test/java/org/apache/logging/log4j/util/EnvironmentPropertySourceTest.java b/log4j-api-test/src/test/java/org/apache/logging/log4j/util/EnvironmentPropertySourceTest.java
index 246f322fa5..407915f517 100644
--- a/log4j-api-test/src/test/java/org/apache/logging/log4j/util/EnvironmentPropertySourceTest.java
+++ b/log4j-api-test/src/test/java/org/apache/logging/log4j/util/EnvironmentPropertySourceTest.java
@@ -16,13 +16,13 @@
  */
 package org.apache.logging.log4j.util;
 
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.MethodSource;
-
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.MethodSource;
+
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class EnvironmentPropertySourceTest {
diff --git a/log4j-api-test/src/test/java/org/apache/logging/log4j/util/PropertiesUtilOrderTest.java b/log4j-api-test/src/test/java/org/apache/logging/log4j/util/PropertiesUtilOrderTest.java
index e5ffe14345..1dc07c7c84 100644
--- a/log4j-api-test/src/test/java/org/apache/logging/log4j/util/PropertiesUtilOrderTest.java
+++ b/log4j-api-test/src/test/java/org/apache/logging/log4j/util/PropertiesUtilOrderTest.java
@@ -14,21 +14,21 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.util;
 
+import java.io.InputStream;
+import java.util.Properties;
+
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.junit.jupiter.api.parallel.ResourceLock;
 import org.junit.jupiter.api.parallel.Resources;
+
 import uk.org.webcompere.systemstubs.environment.EnvironmentVariables;
 import uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension;
 import uk.org.webcompere.systemstubs.properties.SystemProperties;
 
-import java.io.InputStream;
-import java.util.Properties;
-
 import static org.junit.jupiter.api.Assertions.*;
 
 @ExtendWith(SystemStubsExtension.class)
@@ -183,7 +183,7 @@ public class PropertiesUtilOrderTest {
     /**
      * Checks the for missing null checks. The {@link NullPropertySource} returns
      * {@code null} in almost every call.
-     * 
+     *
      * @param sysProps
      */
     @Test
diff --git a/log4j-api-test/src/test/java/org/apache/logging/log4j/util/PropertiesUtilTest.java b/log4j-api-test/src/test/java/org/apache/logging/log4j/util/PropertiesUtilTest.java
index 54192e2348..94ac38d882 100644
--- a/log4j-api-test/src/test/java/org/apache/logging/log4j/util/PropertiesUtilTest.java
+++ b/log4j-api-test/src/test/java/org/apache/logging/log4j/util/PropertiesUtilTest.java
@@ -14,9 +14,13 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.util;
 
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+import java.util.Map;
+import java.util.Properties;
+
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.parallel.ResourceAccessMode;
@@ -24,11 +28,6 @@ import org.junit.jupiter.api.parallel.ResourceLock;
 import org.junit.jupiter.api.parallel.Resources;
 import org.junitpioneer.jupiter.ReadsSystemProperty;
 
-import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
-import java.util.Map;
-import java.util.Properties;
-
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.junit.jupiter.api.Assertions.*;
 
@@ -79,7 +78,7 @@ public class PropertiesUtilTest {
         assertEquals(StandardCharsets.US_ASCII, pu.getCharsetProperty("e.1"));
         assertEquals(Charset.defaultCharset(), pu.getCharsetProperty("e.2"));
     }
-    
+
     @Test
     @ResourceLock(value = Resources.SYSTEM_PROPERTIES, mode = ResourceAccessMode.READ)
     public void testGetMappedProperty_sun_stdout_encoding() {
diff --git a/log4j-api-test/src/test/java/org/apache/logging/log4j/util/ProviderUtilTest.java b/log4j-api-test/src/test/java/org/apache/logging/log4j/util/ProviderUtilTest.java
index ad6d53d5d1..a9b4cb950d 100644
--- a/log4j-api-test/src/test/java/org/apache/logging/log4j/util/ProviderUtilTest.java
+++ b/log4j-api-test/src/test/java/org/apache/logging/log4j/util/ProviderUtilTest.java
@@ -16,15 +16,15 @@
  */
 package org.apache.logging.log4j.util;
 
+import java.io.File;
+import java.net.URL;
+import java.net.URLClassLoader;
+
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.spi.LoggerContext;
 import org.apache.logging.log4j.test.TestLoggerContext;
 import org.junit.jupiter.api.Test;
 
-import java.io.File;
-import java.net.URL;
-import java.net.URLClassLoader;
-
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class ProviderUtilTest {
diff --git a/log4j-api-test/src/test/java/org/apache/logging/log4j/util/ServiceLoaderUtilTest.java b/log4j-api-test/src/test/java/org/apache/logging/log4j/util/ServiceLoaderUtilTest.java
index 57353829ee..ab8e9051d0 100644
--- a/log4j-api-test/src/test/java/org/apache/logging/log4j/util/ServiceLoaderUtilTest.java
+++ b/log4j-api-test/src/test/java/org/apache/logging/log4j/util/ServiceLoaderUtilTest.java
@@ -16,16 +16,16 @@
  */
 package org.apache.logging.log4j.util;
 
-import org.apache.logging.log4j.test.BetterService;
-import org.apache.logging.log4j.test.Service;
-import org.junit.jupiter.api.Test;
-
 import java.lang.invoke.MethodHandles;
 import java.util.Collections;
 import java.util.List;
 import java.util.ServiceConfigurationError;
 import java.util.stream.Collectors;
 
+import org.apache.logging.log4j.test.BetterService;
+import org.apache.logging.log4j.test.Service;
+import org.junit.jupiter.api.Test;
+
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.fail;
 
diff --git a/log4j-api-test/src/test/java/org/apache/logging/log4j/util/SortedArrayStringMapTest.java b/log4j-api-test/src/test/java/org/apache/logging/log4j/util/SortedArrayStringMapTest.java
index 684f6bb473..af08dbc0a5 100644
--- a/log4j-api-test/src/test/java/org/apache/logging/log4j/util/SortedArrayStringMapTest.java
+++ b/log4j-api-test/src/test/java/org/apache/logging/log4j/util/SortedArrayStringMapTest.java
@@ -16,8 +16,6 @@
  */
 package org.apache.logging.log4j.util;
 
-import org.junit.jupiter.api.Test;
-
 import java.io.BufferedReader;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -36,6 +34,8 @@ import java.util.ConcurrentModificationException;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.junit.jupiter.api.Test;
+
 import static org.junit.jupiter.api.Assertions.*;
 
 /**
diff --git a/log4j-api-test/src/test/java/org/apache/logging/log4j/util/StackLocatorUtilTest.java b/log4j-api-test/src/test/java/org/apache/logging/log4j/util/StackLocatorUtilTest.java
index 96878ece8a..8fe11c3f8e 100644
--- a/log4j-api-test/src/test/java/org/apache/logging/log4j/util/StackLocatorUtilTest.java
+++ b/log4j-api-test/src/test/java/org/apache/logging/log4j/util/StackLocatorUtilTest.java
@@ -16,13 +16,13 @@
  */
 package org.apache.logging.log4j.util;
 
+import java.util.ArrayDeque;
+import java.util.Deque;
+
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.engine.execution.InterceptingExecutableInvoker;
 import org.junit.jupiter.engine.execution.InvocationInterceptorChain;
 
-import java.util.ArrayDeque;
-import java.util.Deque;
-
 import static org.junit.jupiter.api.Assertions.*;
 
 public class StackLocatorUtilTest {
diff --git a/log4j-api/src/main/java/module-info.java b/log4j-api/src/main/java/module-info.java
index 5804af59c9..732b3d595d 100644
--- a/log4j-api/src/main/java/module-info.java
+++ b/log4j-api/src/main/java/module-info.java
@@ -15,8 +15,8 @@
  * limitations under the license.
  */
 
-import org.apache.logging.log4j.util.PropertySource;
 import org.apache.logging.log4j.util.EnvironmentPropertySource;
+import org.apache.logging.log4j.util.PropertySource;
 import org.apache.logging.log4j.util.SystemPropertiesPropertySource;
 
 /**
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/LogManager.java b/log4j-api/src/main/java/org/apache/logging/log4j/LogManager.java
index c2fe278479..fc22c18a06 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/LogManager.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/LogManager.java
@@ -16,6 +16,8 @@
  */
 package org.apache.logging.log4j;
 
+import java.net.URI;
+
 import org.apache.logging.log4j.message.MessageFactory;
 import org.apache.logging.log4j.message.StringFormatterMessageFactory;
 import org.apache.logging.log4j.simple.SimpleLoggerContextFactory;
@@ -27,8 +29,6 @@ import org.apache.logging.log4j.status.StatusLogger;
 import org.apache.logging.log4j.util.StackLocatorUtil;
 import org.apache.logging.log4j.util.Strings;
 
-import java.net.URI;
-
 /**
  * The anchor point for the Log4j logging system. The most common usage of this class is to obtain a named
  * {@link Logger}. The method {@link #getLogger()} is provided as the most convenient way to obtain a named Logger based
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/MarkerManager.java b/log4j-api/src/main/java/org/apache/logging/log4j/MarkerManager.java
index ebaba5a017..72164008de 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/MarkerManager.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/MarkerManager.java
@@ -16,13 +16,13 @@
  */
 package org.apache.logging.log4j;
 
-import org.apache.logging.log4j.util.StringBuilderFormattable;
-import org.apache.logging.log4j.util.PerformanceSensitive;
-
 import java.util.Arrays;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 
+import org.apache.logging.log4j.util.PerformanceSensitive;
+import org.apache.logging.log4j.util.StringBuilderFormattable;
+
 /**
  * Applications create Markers by using the Marker Manager. All Markers created by this Manager are immutable.
  */
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/ThreadContext.java b/log4j-api/src/main/java/org/apache/logging/log4j/ThreadContext.java
index 20459c7dc2..6041106157 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/ThreadContext.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/ThreadContext.java
@@ -14,17 +14,8 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j;
 
-import org.apache.logging.log4j.message.ParameterizedMessage;
-import org.apache.logging.log4j.spi.DefaultThreadContextMap;
-import org.apache.logging.log4j.spi.LoggingSystem;
-import org.apache.logging.log4j.spi.ReadOnlyThreadContextMap;
-import org.apache.logging.log4j.spi.ThreadContextMap;
-import org.apache.logging.log4j.spi.ThreadContextStack;
-import org.apache.logging.log4j.util.InternalApi;
-
 import java.io.Serializable;
 import java.util.AbstractCollection;
 import java.util.Collection;
@@ -34,6 +25,14 @@ import java.util.List;
 import java.util.Map;
 import java.util.NoSuchElementException;
 
+import org.apache.logging.log4j.message.ParameterizedMessage;
+import org.apache.logging.log4j.spi.DefaultThreadContextMap;
+import org.apache.logging.log4j.spi.LoggingSystem;
+import org.apache.logging.log4j.spi.ReadOnlyThreadContextMap;
+import org.apache.logging.log4j.spi.ThreadContextMap;
+import org.apache.logging.log4j.spi.ThreadContextStack;
+import org.apache.logging.log4j.util.InternalApi;
+
 /**
  * The ThreadContext allows applications to store information either in a Map or a Stack.
  * <p>
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/internal/DefaultLogBuilder.java b/log4j-api/src/main/java/org/apache/logging/log4j/internal/DefaultLogBuilder.java
index ee9e372647..75915c52ee 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/internal/DefaultLogBuilder.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/internal/DefaultLogBuilder.java
@@ -25,9 +25,9 @@ import org.apache.logging.log4j.message.Message;
 import org.apache.logging.log4j.message.SimpleMessage;
 import org.apache.logging.log4j.status.StatusLogger;
 import org.apache.logging.log4j.util.LambdaUtil;
+import org.apache.logging.log4j.util.StackLocatorUtil;
 import org.apache.logging.log4j.util.Strings;
 import org.apache.logging.log4j.util.Supplier;
-import org.apache.logging.log4j.util.StackLocatorUtil;
 
 
 /**
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessage.java
index 5b002efc45..ccd5895e90 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessage.java
@@ -16,23 +16,23 @@
  */
 package org.apache.logging.log4j.message;
 
+import java.util.AbstractMap;
+import java.util.Collections;
+import java.util.Map;
+import java.util.TreeMap;
+
 import org.apache.logging.log4j.util.BiConsumer;
+import org.apache.logging.log4j.util.Chars;
+import org.apache.logging.log4j.util.EnglishEnums;
 import org.apache.logging.log4j.util.IndexedReadOnlyStringMap;
 import org.apache.logging.log4j.util.IndexedStringMap;
 import org.apache.logging.log4j.util.MultiFormatStringBuilderFormattable;
+import org.apache.logging.log4j.util.PerformanceSensitive;
 import org.apache.logging.log4j.util.ReadOnlyStringMap;
 import org.apache.logging.log4j.util.SortedArrayStringMap;
+import org.apache.logging.log4j.util.StringBuilders;
 import org.apache.logging.log4j.util.Strings;
 import org.apache.logging.log4j.util.TriConsumer;
-import org.apache.logging.log4j.util.Chars;
-import org.apache.logging.log4j.util.EnglishEnums;
-import org.apache.logging.log4j.util.PerformanceSensitive;
-import org.apache.logging.log4j.util.StringBuilders;
-
-import java.util.AbstractMap;
-import java.util.Collections;
-import java.util.Map;
-import java.util.TreeMap;
 
 /**
  * Represents a Message that consists of a Map.
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessageJsonFormatter.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessageJsonFormatter.java
index dbbfa534fa..35d544aa6d 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessageJsonFormatter.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/MapMessageJsonFormatter.java
@@ -16,17 +16,17 @@
  */
 package org.apache.logging.log4j.message;
 
-import org.apache.logging.log4j.util.IndexedStringMap;
-import org.apache.logging.log4j.util.StringBuilderFormattable;
-import org.apache.logging.log4j.util.PropertiesUtil;
-import org.apache.logging.log4j.util.StringBuilders;
-
 import java.math.BigDecimal;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.logging.log4j.util.IndexedStringMap;
+import org.apache.logging.log4j.util.PropertiesUtil;
+import org.apache.logging.log4j.util.StringBuilderFormattable;
+import org.apache.logging.log4j.util.StringBuilders;
+
 /**
  * The default JSON formatter for {@link MapMessage}s.
  * <p>
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ObjectMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ObjectMessage.java
index 63a5885cf2..ecd874ce63 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ObjectMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ObjectMessage.java
@@ -16,14 +16,14 @@
  */
 package org.apache.logging.log4j.message;
 
-import org.apache.logging.log4j.util.StringBuilderFormattable;
-import org.apache.logging.log4j.util.StringBuilders;
-
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 import java.io.Serializable;
 
+import org.apache.logging.log4j.util.StringBuilderFormattable;
+import org.apache.logging.log4j.util.StringBuilders;
+
 /**
  * Handles messages that contain an Object.
  */
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterFormatter.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterFormatter.java
index 48add664f8..b424ee71af 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterFormatter.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterFormatter.java
@@ -16,8 +16,6 @@
  */
 package org.apache.logging.log4j.message;
 
-import org.apache.logging.log4j.util.StringBuilders;
-
 import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
 import java.util.Arrays;
@@ -28,6 +26,8 @@ import java.util.IdentityHashMap;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.logging.log4j.util.StringBuilders;
+
 /**
  * Supports parameter formatting as used in ParameterizedMessage and ReusableParameterizedMessage.
  */
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessage.java
index 4fe5a2ae6f..9ab84a47f1 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessage.java
@@ -16,12 +16,12 @@
  */
 package org.apache.logging.log4j.message;
 
-import org.apache.logging.log4j.util.StringBuilderFormattable;
+import java.util.Arrays;
+
 import org.apache.logging.log4j.util.Constants;
+import org.apache.logging.log4j.util.StringBuilderFormattable;
 import org.apache.logging.log4j.util.StringBuilders;
 
-import java.util.Arrays;
-
 /**
  * Handles messages that consist of a format string containing '{}' to represent each replaceable token, and
  * the parameters.
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/StructuredDataId.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/StructuredDataId.java
index 47d392431c..4790b36eb9 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/StructuredDataId.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/StructuredDataId.java
@@ -1,312 +1,312 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * 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 "License"); you may not use this file except in compliance with
- * 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.
- */
-package org.apache.logging.log4j.message;
-
-import java.io.Serializable;
-
-import org.apache.logging.log4j.util.StringBuilderFormattable;
-import org.apache.logging.log4j.util.Strings;
-
-/**
- * The StructuredData identifier.
- */
-public class StructuredDataId implements Serializable, StringBuilderFormattable {
-
-    /**
-     * RFC 5424 Time Quality.
-     */
-    public static final StructuredDataId TIME_QUALITY = new StructuredDataId("timeQuality", null, new String[] {
-            "tzKnown", "isSynced", "syncAccuracy"});
-
-    /**
-     * RFC 5424 Origin.
-     */
-    public static final StructuredDataId ORIGIN = new StructuredDataId("origin", null, new String[] {"ip",
-            "enterpriseId", "software", "swVersion"});
-
-    /**
-     * RFC 5424 Meta.
-     */
-    public static final StructuredDataId META = new StructuredDataId("meta", null, new String[] {"sequenceId",
-            "sysUpTime", "language"});
-
-    /**
-     * Reserved enterprise number.
-     */
-    public static final String RESERVED = "-1";
-
-    private static final long serialVersionUID = -8252896346202183738L;
-    private static final int MAX_LENGTH = 32;
-    private static final String AT_SIGN = "@";
-
-    private final String name;
-    private final String enterpriseNumber;
-    private final String[] required;
-    private final String[] optional;
-
-    /**
-     * Creates a StructuredDataId based on the name.
-     * @param name The Structured Data Element name (maximum length is 32)
-     * @since 2.9
-     */
-    public StructuredDataId(final String name) {
-        this(name, null, null, MAX_LENGTH);
-    }
-
-    /**
-     * Creates a StructuredDataId based on the name.
-     * @param name The Structured Data Element name.
-     * @param maxLength The maximum length of the name.
-     * @since 2.9
-     */
-    public StructuredDataId(final String name, final int maxLength) {
-        this(name, null, null, maxLength);
-    }
-
-    /**
-     * A Constructor that helps conformance to RFC 5424.
-     * @param name The name portion of the id.
-     * @param required The list of keys that are required for this id.
-     * @param optional The list of keys that are optional for this id.
-     */
-    public StructuredDataId(final String name, final String[] required, final String[] optional) {
-        this(name, required, optional, MAX_LENGTH);
-    }
-
-    /**
-     * A Constructor that helps conformance to RFC 5424.
-     *
-     * @param name The name portion of the id.
-     * @param required The list of keys that are required for this id.
-     * @param optional The list of keys that are optional for this id.
-     * @param maxLength The maximum length of the id.
-     * @since 2.9
-     */
-    public StructuredDataId(final String name, final String[] required, final String[] optional, int maxLength) {
-        int index = -1;
-        if (name != null) {
-            if (maxLength <= 0) {
-                maxLength = MAX_LENGTH;
-            }
-            if (name.length() > maxLength) {
-                throw new IllegalArgumentException(String.format("Length of id %s exceeds maximum of %d characters",
-                        name, maxLength));
-            }
-            index = name.indexOf(AT_SIGN);
-        }
-
-        if (index > 0) {
-            this.name = name.substring(0, index);
-            this.enterpriseNumber = name.substring(index + 1).trim();
-        } else {
-            this.name = name;
-            this.enterpriseNumber = RESERVED;
-        }
-        this.required = required;
-        this.optional = optional;
-    }
-
-    /**
-     * A Constructor that helps conformance to RFC 5424.
-     *
-     * @param name The name portion of the id.
-     * @param enterpriseNumber The enterprise number.
-     * @param required The list of keys that are required for this id.
-     * @param optional The list of keys that are optional for this id.
-     */
-    public StructuredDataId(final String name, final String enterpriseNumber, final String[] required,
-                            final String[] optional) {
-        this(name, enterpriseNumber, required, optional, MAX_LENGTH);
-    }
-
-    /**
-     * A Constructor that helps conformance to RFC 5424.
-     *
-     * @param name The name portion of the id.
-     * @param enterpriseNumber The enterprise number.
-     * @param required The list of keys that are required for this id.
-     * @param optional The list of keys that are optional for this id.
-     * @deprecated Use {@link #StructuredDataId(String, String, String[], String[])} instead.
-     */
-    @Deprecated
-    public StructuredDataId(final String name, final int enterpriseNumber, final String[] required,
-                            final String[] optional) {
-        this(name, String.valueOf(enterpriseNumber), required, optional, MAX_LENGTH);
-    }
-
-    /**
-     * A Constructor that helps conformance to RFC 5424.
-     *
-     * @param name The name portion of the id.
-     * @param enterpriseNumber The enterprise number.
-     * @param required The list of keys that are required for this id.
-     * @param optional The list of keys that are optional for this id.
-     * @param maxLength The maximum length of the StructuredData Id key.
-     * @since 2.9
-     */
-    public StructuredDataId(final String name, final String enterpriseNumber, final String[] required,
-                            final String[] optional, final int maxLength) {
-        if (name == null) {
-            throw new IllegalArgumentException("No structured id name was supplied");
-        }
-        if (name.contains(AT_SIGN)) {
-            throw new IllegalArgumentException("Structured id name cannot contain an " + Strings.quote(AT_SIGN));
-        }
-        if (RESERVED.equals(enterpriseNumber)) {
-            throw new IllegalArgumentException("No enterprise number was supplied");
-        }
-        this.name = name;
-        this.enterpriseNumber = enterpriseNumber;
-        final String id = name + AT_SIGN + enterpriseNumber;
-        if (maxLength > 0 && id.length() > maxLength) {
-            throw new IllegalArgumentException("Length of id exceeds maximum of " + maxLength + " characters: " + id);
-        }
-        this.required = required;
-        this.optional = optional;
-    }
-
-    /**
-     * A Constructor that helps conformance to RFC 5424.
-     *
-     * @param name The name portion of the id.
-     * @param enterpriseNumber The enterprise number.
-     * @param required The list of keys that are required for this id.
-     * @param optional The list of keys that are optional for this id.
-     * @param maxLength The maximum length of the StructuredData Id key.
-     * @since 2.9
-     * @deprecated Use {@link #StructuredDataId(String, String, String[], String[], int)} instead.
-     */
-    @Deprecated
-    public StructuredDataId(final String name, final int enterpriseNumber, final String[] required,
-            final String[] optional, final int maxLength) {
-        this(name, String.valueOf(enterpriseNumber), required, optional, maxLength);
-    }
-
-    /**
-     * Creates an id using another id to supply default values.
-     *
-     * @param id The original StructuredDataId.
-     * @return the new StructuredDataId.
-     */
-    public StructuredDataId makeId(final StructuredDataId id) {
-        if (id == null) {
-            return this;
-        }
-        return makeId(id.getName(), id.getEnterpriseNumber());
-    }
-
-    /**
-     * Creates an id based on the current id.
-     *
-     * @param defaultId The default id to use if this StructuredDataId doesn't have a name.
-     * @param anEnterpriseNumber The enterprise number.
-     * @return a StructuredDataId.
-     */
-    public StructuredDataId makeId(final String defaultId, final String anEnterpriseNumber) {
-        String id;
-        String[] req;
-        String[] opt;
-        if (RESERVED.equals(anEnterpriseNumber)) {
-            return this;
-        }
-        if (this.name != null) {
-            id = this.name;
-            req = this.required;
-            opt = this.optional;
-        } else {
-            id = defaultId;
-            req = null;
-            opt = null;
-        }
-
-        return new StructuredDataId(id, anEnterpriseNumber, req, opt);
-    }
-
-    /**
-     * Creates an id based on the current id.
-     *
-     * @param defaultId The default id to use if this StructuredDataId doesn't have a name.
-     * @param anEnterpriseNumber The enterprise number.
-     * @return a StructuredDataId.
-     * @deprecated Use {@link StructuredDataId#makeId(String, String)} instead
-     */
-    @Deprecated
-    public StructuredDataId makeId(final String defaultId, final int anEnterpriseNumber) {
-        return makeId(defaultId, String.valueOf(anEnterpriseNumber));
-    }
-
-    /**
-     * Returns a list of required keys.
-     *
-     * @return a List of required keys or null if none have been provided.
-     */
-    public String[] getRequired() {
-        return required;
-    }
-
-    /**
-     * Returns a list of optional keys.
-     *
-     * @return a List of optional keys or null if none have been provided.
-     */
-    public String[] getOptional() {
-        return optional;
-    }
-
-    /**
-     * Returns the StructuredDataId name.
-     *
-     * @return the StructuredDataId name.
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * Returns the enterprise number.
-     *
-     * @return the enterprise number.
-     */
-    public String getEnterpriseNumber() {
-        return enterpriseNumber;
-    }
-
-    /**
-     * Indicates if the id is reserved.
-     *
-     * @return true if the id uses the reserved enterprise number, false otherwise.
-     */
-    public boolean isReserved() {
-        return RESERVED.equals(enterpriseNumber);
-    }
-
-    @Override
-    public String toString() {
-        final StringBuilder sb = new StringBuilder(name.length() + 10);
-        formatTo(sb);
-        return sb.toString();
-    }
-
-    @Override
-    public void formatTo(final StringBuilder buffer) {
-        if (isReserved()) {
-            buffer.append(name);
-        } else {
-            buffer.append(name).append(AT_SIGN).append(enterpriseNumber);
-        }
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * 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 "License"); you may not use this file except in compliance with
+ * 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.
+ */
+package org.apache.logging.log4j.message;
+
+import java.io.Serializable;
+
+import org.apache.logging.log4j.util.StringBuilderFormattable;
+import org.apache.logging.log4j.util.Strings;
+
+/**
+ * The StructuredData identifier.
+ */
+public class StructuredDataId implements Serializable, StringBuilderFormattable {
+
+    /**
+     * RFC 5424 Time Quality.
+     */
+    public static final StructuredDataId TIME_QUALITY = new StructuredDataId("timeQuality", null, new String[] {
+            "tzKnown", "isSynced", "syncAccuracy"});
+
+    /**
+     * RFC 5424 Origin.
+     */
+    public static final StructuredDataId ORIGIN = new StructuredDataId("origin", null, new String[] {"ip",
+            "enterpriseId", "software", "swVersion"});
+
+    /**
+     * RFC 5424 Meta.
+     */
+    public static final StructuredDataId META = new StructuredDataId("meta", null, new String[] {"sequenceId",
+            "sysUpTime", "language"});
+
+    /**
+     * Reserved enterprise number.
+     */
+    public static final String RESERVED = "-1";
+
+    private static final long serialVersionUID = -8252896346202183738L;
+    private static final int MAX_LENGTH = 32;
+    private static final String AT_SIGN = "@";
+
+    private final String name;
+    private final String enterpriseNumber;
+    private final String[] required;
+    private final String[] optional;
+
+    /**
+     * Creates a StructuredDataId based on the name.
+     * @param name The Structured Data Element name (maximum length is 32)
+     * @since 2.9
+     */
+    public StructuredDataId(final String name) {
+        this(name, null, null, MAX_LENGTH);
+    }
+
+    /**
+     * Creates a StructuredDataId based on the name.
+     * @param name The Structured Data Element name.
+     * @param maxLength The maximum length of the name.
+     * @since 2.9
+     */
+    public StructuredDataId(final String name, final int maxLength) {
+        this(name, null, null, maxLength);
+    }
+
+    /**
+     * A Constructor that helps conformance to RFC 5424.
+     * @param name The name portion of the id.
+     * @param required The list of keys that are required for this id.
+     * @param optional The list of keys that are optional for this id.
+     */
+    public StructuredDataId(final String name, final String[] required, final String[] optional) {
+        this(name, required, optional, MAX_LENGTH);
+    }
+
+    /**
+     * A Constructor that helps conformance to RFC 5424.
+     *
+     * @param name The name portion of the id.
+     * @param required The list of keys that are required for this id.
+     * @param optional The list of keys that are optional for this id.
+     * @param maxLength The maximum length of the id.
+     * @since 2.9
+     */
+    public StructuredDataId(final String name, final String[] required, final String[] optional, int maxLength) {
+        int index = -1;
+        if (name != null) {
+            if (maxLength <= 0) {
+                maxLength = MAX_LENGTH;
+            }
+            if (name.length() > maxLength) {
+                throw new IllegalArgumentException(String.format("Length of id %s exceeds maximum of %d characters",
+                        name, maxLength));
+            }
+            index = name.indexOf(AT_SIGN);
+        }
+
+        if (index > 0) {
+            this.name = name.substring(0, index);
+            this.enterpriseNumber = name.substring(index + 1).trim();
+        } else {
+            this.name = name;
+            this.enterpriseNumber = RESERVED;
+        }
+        this.required = required;
+        this.optional = optional;
+    }
+
+    /**
+     * A Constructor that helps conformance to RFC 5424.
+     *
+     * @param name The name portion of the id.
+     * @param enterpriseNumber The enterprise number.
+     * @param required The list of keys that are required for this id.
+     * @param optional The list of keys that are optional for this id.
+     */
+    public StructuredDataId(final String name, final String enterpriseNumber, final String[] required,
+                            final String[] optional) {
+        this(name, enterpriseNumber, required, optional, MAX_LENGTH);
+    }
+
+    /**
+     * A Constructor that helps conformance to RFC 5424.
+     *
+     * @param name The name portion of the id.
+     * @param enterpriseNumber The enterprise number.
+     * @param required The list of keys that are required for this id.
+     * @param optional The list of keys that are optional for this id.
+     * @deprecated Use {@link #StructuredDataId(String, String, String[], String[])} instead.
+     */
+    @Deprecated
+    public StructuredDataId(final String name, final int enterpriseNumber, final String[] required,
+                            final String[] optional) {
+        this(name, String.valueOf(enterpriseNumber), required, optional, MAX_LENGTH);
+    }
+
+    /**
+     * A Constructor that helps conformance to RFC 5424.
+     *
+     * @param name The name portion of the id.
+     * @param enterpriseNumber The enterprise number.
+     * @param required The list of keys that are required for this id.
+     * @param optional The list of keys that are optional for this id.
+     * @param maxLength The maximum length of the StructuredData Id key.
+     * @since 2.9
+     */
+    public StructuredDataId(final String name, final String enterpriseNumber, final String[] required,
+                            final String[] optional, final int maxLength) {
+        if (name == null) {
+            throw new IllegalArgumentException("No structured id name was supplied");
+        }
+        if (name.contains(AT_SIGN)) {
+            throw new IllegalArgumentException("Structured id name cannot contain an " + Strings.quote(AT_SIGN));
+        }
+        if (RESERVED.equals(enterpriseNumber)) {
+            throw new IllegalArgumentException("No enterprise number was supplied");
+        }
+        this.name = name;
+        this.enterpriseNumber = enterpriseNumber;
+        final String id = name + AT_SIGN + enterpriseNumber;
+        if (maxLength > 0 && id.length() > maxLength) {
+            throw new IllegalArgumentException("Length of id exceeds maximum of " + maxLength + " characters: " + id);
+        }
+        this.required = required;
+        this.optional = optional;
+    }
+
+    /**
+     * A Constructor that helps conformance to RFC 5424.
+     *
+     * @param name The name portion of the id.
+     * @param enterpriseNumber The enterprise number.
+     * @param required The list of keys that are required for this id.
+     * @param optional The list of keys that are optional for this id.
+     * @param maxLength The maximum length of the StructuredData Id key.
+     * @since 2.9
+     * @deprecated Use {@link #StructuredDataId(String, String, String[], String[], int)} instead.
+     */
+    @Deprecated
+    public StructuredDataId(final String name, final int enterpriseNumber, final String[] required,
+            final String[] optional, final int maxLength) {
+        this(name, String.valueOf(enterpriseNumber), required, optional, maxLength);
+    }
+
+    /**
+     * Creates an id using another id to supply default values.
+     *
+     * @param id The original StructuredDataId.
+     * @return the new StructuredDataId.
+     */
+    public StructuredDataId makeId(final StructuredDataId id) {
+        if (id == null) {
+            return this;
+        }
+        return makeId(id.getName(), id.getEnterpriseNumber());
+    }
+
+    /**
+     * Creates an id based on the current id.
+     *
+     * @param defaultId The default id to use if this StructuredDataId doesn't have a name.
+     * @param anEnterpriseNumber The enterprise number.
+     * @return a StructuredDataId.
+     */
+    public StructuredDataId makeId(final String defaultId, final String anEnterpriseNumber) {
+        String id;
+        String[] req;
+        String[] opt;
+        if (RESERVED.equals(anEnterpriseNumber)) {
+            return this;
+        }
+        if (this.name != null) {
+            id = this.name;
+            req = this.required;
+            opt = this.optional;
+        } else {
+            id = defaultId;
+            req = null;
+            opt = null;
+        }
+
+        return new StructuredDataId(id, anEnterpriseNumber, req, opt);
+    }
+
+    /**
+     * Creates an id based on the current id.
+     *
+     * @param defaultId The default id to use if this StructuredDataId doesn't have a name.
+     * @param anEnterpriseNumber The enterprise number.
+     * @return a StructuredDataId.
+     * @deprecated Use {@link StructuredDataId#makeId(String, String)} instead
+     */
+    @Deprecated
+    public StructuredDataId makeId(final String defaultId, final int anEnterpriseNumber) {
+        return makeId(defaultId, String.valueOf(anEnterpriseNumber));
+    }
+
+    /**
+     * Returns a list of required keys.
+     *
+     * @return a List of required keys or null if none have been provided.
+     */
+    public String[] getRequired() {
+        return required;
+    }
+
+    /**
+     * Returns a list of optional keys.
+     *
+     * @return a List of optional keys or null if none have been provided.
+     */
+    public String[] getOptional() {
+        return optional;
+    }
+
+    /**
+     * Returns the StructuredDataId name.
+     *
+     * @return the StructuredDataId name.
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Returns the enterprise number.
+     *
+     * @return the enterprise number.
+     */
+    public String getEnterpriseNumber() {
+        return enterpriseNumber;
+    }
+
+    /**
+     * Indicates if the id is reserved.
+     *
+     * @return true if the id uses the reserved enterprise number, false otherwise.
+     */
+    public boolean isReserved() {
+        return RESERVED.equals(enterpriseNumber);
+    }
+
+    @Override
+    public String toString() {
+        final StringBuilder sb = new StringBuilder(name.length() + 10);
+        formatTo(sb);
+        return sb.toString();
+    }
+
+    @Override
+    public void formatTo(final StringBuilder buffer) {
+        if (isReserved()) {
+            buffer.append(name);
+        } else {
+            buffer.append(name).append(AT_SIGN).append(enterpriseNumber);
+        }
+    }
+}
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java
index 2bf80736a1..74dd23fad3 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java
@@ -16,11 +16,6 @@
  */
 package org.apache.logging.log4j.message;
 
-import org.apache.logging.log4j.util.Lazy;
-import org.apache.logging.log4j.util.ServiceRegistry;
-import org.apache.logging.log4j.util.StringBuilderFormattable;
-import org.apache.logging.log4j.util.Strings;
-
 import java.io.InvalidObjectException;
 import java.io.ObjectInputStream;
 import java.io.Serializable;
@@ -28,6 +23,11 @@ import java.lang.invoke.MethodHandles;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.logging.log4j.util.Lazy;
+import org.apache.logging.log4j.util.ServiceRegistry;
+import org.apache.logging.log4j.util.StringBuilderFormattable;
+import org.apache.logging.log4j.util.Strings;
+
 /**
  * Captures information about all running Threads.
  */
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLogger.java b/log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLogger.java
index 53d53473a2..85bb91a15e 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLogger.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLogger.java
@@ -16,6 +16,12 @@
  */
 package org.apache.logging.log4j.simple;
 
+import java.io.PrintStream;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Map;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.Marker;
 import org.apache.logging.log4j.ThreadContext;
@@ -25,12 +31,6 @@ import org.apache.logging.log4j.spi.AbstractLogger;
 import org.apache.logging.log4j.util.PropertyEnvironment;
 import org.apache.logging.log4j.util.Strings;
 
-import java.io.PrintStream;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Map;
-
 /**
  * This is the default logger that is used when no suitable logging implementation is available.
  */
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLoggerContext.java b/log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLoggerContext.java
index b83ed480a2..8c788069d2 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLoggerContext.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLoggerContext.java
@@ -16,6 +16,10 @@
  */
 package org.apache.logging.log4j.simple;
 
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.PrintStream;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.message.MessageFactory;
 import org.apache.logging.log4j.spi.AbstractLogger;
@@ -25,10 +29,6 @@ import org.apache.logging.log4j.spi.LoggerRegistry;
 import org.apache.logging.log4j.util.PropertiesUtil;
 import org.apache.logging.log4j.util.PropertyEnvironment;
 
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.PrintStream;
-
 /**
  * A simple {@link LoggerContext} implementation.
  */
@@ -36,7 +36,7 @@ public class SimpleLoggerContext implements LoggerContext {
 
     /** Singleton instance. */
     static final SimpleLoggerContext INSTANCE = new SimpleLoggerContext();
-    
+
     private static final String SYSTEM_OUT = "system.out";
 
     private static final String SYSTEM_ERR = "system.err";
@@ -63,7 +63,7 @@ public class SimpleLoggerContext implements LoggerContext {
 
     /** Include the ThreadContextMap in the log message */
     private final boolean showContextMap;
-    
+
     /** The date and time format to use in the log message */
     private final String dateTimeFormat;
 
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java b/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java
index 41b43c69e0..3c47e0e240 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractLogger.java
@@ -16,6 +16,11 @@
  */
 package org.apache.logging.log4j.spi;
 
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.Serializable;
+import java.lang.reflect.Field;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogBuilder;
 import org.apache.logging.log4j.LoggingException;
@@ -33,20 +38,15 @@ import org.apache.logging.log4j.message.ReusableMessageFactory;
 import org.apache.logging.log4j.message.SimpleMessage;
 import org.apache.logging.log4j.message.StringFormattedMessage;
 import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.LambdaUtil;
-import org.apache.logging.log4j.util.MessageSupplier;
-import org.apache.logging.log4j.util.Strings;
-import org.apache.logging.log4j.util.Supplier;
 import org.apache.logging.log4j.util.Constants;
+import org.apache.logging.log4j.util.LambdaUtil;
 import org.apache.logging.log4j.util.LoaderUtil;
+import org.apache.logging.log4j.util.MessageSupplier;
 import org.apache.logging.log4j.util.PerformanceSensitive;
 import org.apache.logging.log4j.util.PropertiesUtil;
 import org.apache.logging.log4j.util.StackLocatorUtil;
-
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.Serializable;
-import java.lang.reflect.Field;
+import org.apache.logging.log4j.util.Strings;
+import org.apache.logging.log4j.util.Supplier;
 
 /**
  * Base implementation of a Logger. It is highly recommended that any Logger implementation extend this class.
@@ -2792,7 +2792,7 @@ public abstract class AbstractLogger implements ExtendedLogger, Serializable {
     public LogBuilder atDebug() {
         return atLevel(Level.DEBUG);
     }
-    
+
     /**
      * Construct an informational log event.
      * @return a LogBuilder.
@@ -2802,7 +2802,7 @@ public abstract class AbstractLogger implements ExtendedLogger, Serializable {
     public LogBuilder atInfo() {
         return atLevel(Level.INFO);
     }
-    
+
     /**
      * Construct a warning log event.
      * @return a LogBuilder.
@@ -2812,7 +2812,7 @@ public abstract class AbstractLogger implements ExtendedLogger, Serializable {
     public LogBuilder atWarn() {
         return atLevel(Level.WARN);
     }
-    
+
     /**
      * Construct an error log event.
      * @return a LogBuilder.
@@ -2822,7 +2822,7 @@ public abstract class AbstractLogger implements ExtendedLogger, Serializable {
     public LogBuilder atError() {
         return atLevel(Level.ERROR);
     }
-    
+
     /**
      * Construct a fatal log event.
      * @return a LogBuilder.
@@ -2832,7 +2832,7 @@ public abstract class AbstractLogger implements ExtendedLogger, Serializable {
     public LogBuilder atFatal() {
         return atLevel(Level.FATAL);
     }
-    
+
     /**
      * Construct a log event that will always be logged.
      * @return a LogBuilder.
@@ -2846,7 +2846,7 @@ public abstract class AbstractLogger implements ExtendedLogger, Serializable {
         }
         return builder.reset(Level.OFF);
     }
-    
+
     /**
      * Construct a log event.
      * @return a LogBuilder.
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/spi/CopyOnWriteSortedArrayThreadContextMap.java b/log4j-api/src/main/java/org/apache/logging/log4j/spi/CopyOnWriteSortedArrayThreadContextMap.java
index 213fed8aed..9846698891 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/spi/CopyOnWriteSortedArrayThreadContextMap.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/spi/CopyOnWriteSortedArrayThreadContextMap.java
@@ -16,16 +16,16 @@
  */
 package org.apache.logging.log4j.spi;
 
-import org.apache.logging.log4j.util.PropertiesUtil;
-import org.apache.logging.log4j.util.ReadOnlyStringMap;
-import org.apache.logging.log4j.util.SortedArrayStringMap;
-import org.apache.logging.log4j.util.StringMap;
-
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
 
+import org.apache.logging.log4j.util.PropertiesUtil;
+import org.apache.logging.log4j.util.ReadOnlyStringMap;
+import org.apache.logging.log4j.util.SortedArrayStringMap;
+import org.apache.logging.log4j.util.StringMap;
+
 import static org.apache.logging.log4j.spi.LoggingSystem.*;
 
 /**
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/spi/DefaultThreadContextMap.java b/log4j-api/src/main/java/org/apache/logging/log4j/spi/DefaultThreadContextMap.java
index ca2b167698..816c4051ad 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/spi/DefaultThreadContextMap.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/spi/DefaultThreadContextMap.java
@@ -16,17 +16,17 @@
  */
 package org.apache.logging.log4j.spi;
 
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
 import org.apache.logging.log4j.util.BiConsumer;
 import org.apache.logging.log4j.util.Cast;
 import org.apache.logging.log4j.util.PropertiesUtil;
 import org.apache.logging.log4j.util.ReadOnlyStringMap;
 import org.apache.logging.log4j.util.TriConsumer;
 
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
-
 import static org.apache.logging.log4j.spi.LoggingSystem.THREAD_CONTEXT_MAP_INHERITABLE_ENABLED;
 
 /**
@@ -59,7 +59,7 @@ public class DefaultThreadContextMap implements ThreadContextMap, ReadOnlyString
         // if not inheritable, return plain ThreadLocal with null as initial value
         return new ThreadLocal<>();
     }
-    
+
     public DefaultThreadContextMap() {
         this(true);
     }
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/spi/DefaultThreadContextStack.java b/log4j-api/src/main/java/org/apache/logging/log4j/spi/DefaultThreadContextStack.java
index fb5bc726c6..cdbc4df1b4 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/spi/DefaultThreadContextStack.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/spi/DefaultThreadContextStack.java
@@ -16,16 +16,16 @@
  */
 package org.apache.logging.log4j.spi;
 
-import org.apache.logging.log4j.ThreadContext.ContextStack;
-import org.apache.logging.log4j.util.StringBuilderFormattable;
-import org.apache.logging.log4j.util.Strings;
-import org.apache.logging.log4j.util.StringBuilders;
-
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 
+import org.apache.logging.log4j.ThreadContext.ContextStack;
+import org.apache.logging.log4j.util.StringBuilderFormattable;
+import org.apache.logging.log4j.util.StringBuilders;
+import org.apache.logging.log4j.util.Strings;
+
 /**
  * A copy-on-write thread-safe variant of {@code org.apache.logging.log4j.spi.ThreadContextStack} in which all mutative
  * operations (add, pop, and so on) are implemented by making a fresh copy of the underlying list.
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/spi/GarbageFreeSortedArrayThreadContextMap.java b/log4j-api/src/main/java/org/apache/logging/log4j/spi/GarbageFreeSortedArrayThreadContextMap.java
index 7194714fc0..cb516827a6 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/spi/GarbageFreeSortedArrayThreadContextMap.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/spi/GarbageFreeSortedArrayThreadContextMap.java
@@ -16,16 +16,16 @@
  */
 package org.apache.logging.log4j.spi;
 
-import org.apache.logging.log4j.util.PropertiesUtil;
-import org.apache.logging.log4j.util.ReadOnlyStringMap;
-import org.apache.logging.log4j.util.SortedArrayStringMap;
-import org.apache.logging.log4j.util.StringMap;
-
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
 
+import org.apache.logging.log4j.util.PropertiesUtil;
+import org.apache.logging.log4j.util.ReadOnlyStringMap;
+import org.apache.logging.log4j.util.SortedArrayStringMap;
+import org.apache.logging.log4j.util.StringMap;
+
 import static org.apache.logging.log4j.spi.LoggingSystem.*;
 
 /**
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggingSystem.java b/log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggingSystem.java
index 969db659d8..13c5c87347 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggingSystem.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/spi/LoggingSystem.java
@@ -14,20 +14,8 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.spi;
 
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.ThreadContext;
-import org.apache.logging.log4j.simple.SimpleLoggerContextFactory;
-import org.apache.logging.log4j.util.Constants;
-import org.apache.logging.log4j.util.Lazy;
-import org.apache.logging.log4j.util.LoaderUtil;
-import org.apache.logging.log4j.util.LowLevelLogUtil;
-import org.apache.logging.log4j.util.PropertiesUtil;
-import org.apache.logging.log4j.util.PropertyEnvironment;
-import org.apache.logging.log4j.util.ServiceRegistry;
-
 import java.io.IOException;
 import java.io.InputStream;
 import java.lang.invoke.MethodHandles;
@@ -44,6 +32,17 @@ import java.util.concurrent.locks.ReentrantLock;
 import java.util.function.Supplier;
 import java.util.stream.Collectors;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.ThreadContext;
+import org.apache.logging.log4j.simple.SimpleLoggerContextFactory;
+import org.apache.logging.log4j.util.Constants;
+import org.apache.logging.log4j.util.Lazy;
+import org.apache.logging.log4j.util.LoaderUtil;
+import org.apache.logging.log4j.util.LowLevelLogUtil;
+import org.apache.logging.log4j.util.PropertiesUtil;
+import org.apache.logging.log4j.util.PropertyEnvironment;
+import org.apache.logging.log4j.util.ServiceRegistry;
+
 /**
  * Handles initializing the Log4j API through {@link Provider} discovery. This keeps track of which
  * {@link LoggerContextFactory} to use in {@link LogManager} along with factories for {@link ThreadContextMap}
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/spi/ThreadContextMap.java b/log4j-api/src/main/java/org/apache/logging/log4j/spi/ThreadContextMap.java
index af357b20c6..8560097e18 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/spi/ThreadContextMap.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/spi/ThreadContextMap.java
@@ -16,13 +16,13 @@
  */
 package org.apache.logging.log4j.spi;
 
+import java.util.Map;
+
 import org.apache.logging.log4j.ThreadContext;
 import org.apache.logging.log4j.util.Cast;
 import org.apache.logging.log4j.util.SortedArrayStringMap;
 import org.apache.logging.log4j.util.StringMap;
 
-import java.util.Map;
-
 /**
  * Service provider interface to implement custom MDC behavior for {@link org.apache.logging.log4j.ThreadContext}.
  * <p>
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/status/SimpleLoggerFactory.java b/log4j-api/src/main/java/org/apache/logging/log4j/status/SimpleLoggerFactory.java
index 406f891f65..a28da9e5de 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/status/SimpleLoggerFactory.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/status/SimpleLoggerFactory.java
@@ -16,13 +16,13 @@
  */
 package org.apache.logging.log4j.status;
 
+import java.io.PrintStream;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.message.MessageFactory;
 import org.apache.logging.log4j.simple.SimpleLogger;
 import org.apache.logging.log4j.util.Strings;
 
-import java.io.PrintStream;
-
 /**
  * {@link org.apache.logging.log4j.simple.SimpleLogger} factory to be used by {@link StatusLogger} and {@link StatusConsoleListener}.
  */
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusConsoleListener.java b/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusConsoleListener.java
index bb04cc420d..f18134e34c 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusConsoleListener.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusConsoleListener.java
@@ -16,14 +16,14 @@
  */
 package org.apache.logging.log4j.status;
 
-import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.message.ParameterizedNoReferenceMessageFactory;
-
 import java.io.IOException;
 import java.io.PrintStream;
 import java.util.Objects;
 
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.message.ParameterizedNoReferenceMessageFactory;
+
 /**
  * {@link StatusListener} that writes to the console.
  */
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusLogger.java b/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusLogger.java
index 1a57b9a391..d6dba83a12 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusLogger.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusLogger.java
@@ -16,19 +16,6 @@
  */
 package org.apache.logging.log4j.status;
 
-import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.Marker;
-import org.apache.logging.log4j.message.Message;
-import org.apache.logging.log4j.message.MessageFactory;
-import org.apache.logging.log4j.message.ParameterizedNoReferenceMessageFactory;
-import org.apache.logging.log4j.simple.SimpleLogger;
-import org.apache.logging.log4j.simple.SimpleLoggerContext;
-import org.apache.logging.log4j.spi.AbstractLogger;
-import org.apache.logging.log4j.util.Constants;
-import org.apache.logging.log4j.util.LowLevelLogUtil;
-import org.apache.logging.log4j.util.PropertiesUtil;
-import org.apache.logging.log4j.util.PropertyEnvironment;
-
 import java.io.Closeable;
 import java.io.IOException;
 import java.util.ArrayList;
@@ -42,6 +29,19 @@ import java.util.concurrent.locks.ReadWriteLock;
 import java.util.concurrent.locks.ReentrantLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.Marker;
+import org.apache.logging.log4j.message.Message;
+import org.apache.logging.log4j.message.MessageFactory;
+import org.apache.logging.log4j.message.ParameterizedNoReferenceMessageFactory;
+import org.apache.logging.log4j.simple.SimpleLogger;
+import org.apache.logging.log4j.simple.SimpleLoggerContext;
+import org.apache.logging.log4j.spi.AbstractLogger;
+import org.apache.logging.log4j.util.Constants;
+import org.apache.logging.log4j.util.LowLevelLogUtil;
+import org.apache.logging.log4j.util.PropertiesUtil;
+import org.apache.logging.log4j.util.PropertyEnvironment;
+
 /**
  * Records events that occur in the logging system. By default, only error messages are logged to {@link System#err}.
  * Normally, the Log4j StatusLogger is configured via the root {@code <Configuration status="LEVEL"/>} node in a Log4j
@@ -137,7 +137,7 @@ public final class StatusLogger extends AbstractLogger {
      * <li>LOG4J2-3340 StatusLogger's log Level cannot be changed as advertised.</li>
      * </ol>
      * </p>
-     * 
+     *
      * @param name The logger name.
      * @param messageFactory The message factory.
      */
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/Activator.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/Activator.java
index 00ce8e92eb..2409119b0b 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/Activator.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/Activator.java
@@ -16,6 +16,13 @@
  */
 package org.apache.logging.log4j.util;
 
+import java.security.Permission;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ServiceConfigurationError;
+import java.util.ServiceLoader;
+
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.spi.LoggingSystem;
 import org.apache.logging.log4j.spi.Provider;
@@ -29,13 +36,6 @@ import org.osgi.framework.BundleEvent;
 import org.osgi.framework.SynchronousBundleListener;
 import org.osgi.framework.wiring.BundleWiring;
 
-import java.security.Permission;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ServiceConfigurationError;
-import java.util.ServiceLoader;
-
 /**
  * <em>Consider this class private.</em>
  * OSGi bundle activator. Used for locating an implementation of
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/Cast.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/Cast.java
index fefa49391b..d85e76caaf 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/Cast.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/Cast.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.util;
 
 @InternalApi
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/EnglishEnums.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/EnglishEnums.java
index 1afcfd238e..e4c819faba 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/EnglishEnums.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/EnglishEnums.java
@@ -20,7 +20,7 @@ import java.util.Locale;
 
 /**
  * <em>Consider this class private.</em>
- * 
+ *
  * <p>
  * Helps convert English Strings to English Enum values.
  * </p>
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/InternalApi.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/InternalApi.java
index 661a832127..d7b4526786 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/InternalApi.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/InternalApi.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.util;
 
 import java.lang.annotation.Documented;
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/Lazy.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/Lazy.java
index b91456d552..ec3edb5b61 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/Lazy.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/Lazy.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.util;
 
 import java.util.function.Function;
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/LazyUtil.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/LazyUtil.java
index 4a7ea7baa6..10991ca4ad 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/LazyUtil.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/LazyUtil.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.util;
 
 import java.lang.invoke.MethodHandles;
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/LoaderUtil.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/LoaderUtil.java
index 91aa473499..5ba881a4af 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/LoaderUtil.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/LoaderUtil.java
@@ -242,7 +242,7 @@ public final class LoaderUtil {
 
     /**
      * Loads and instantiates a Class using the default constructor.
-     * 
+     *
      * @param <T> the type of the class modeled by the {@code Class} object.
      * @param clazz The class.
      * @return new instance of the class.
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/LowLevelLogUtil.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/LowLevelLogUtil.java
index e074d4d3fd..da363defc0 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/LowLevelLogUtil.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/LowLevelLogUtil.java
@@ -14,13 +14,12 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.util;
 
-import org.apache.logging.log4j.Logger;
-
 import java.io.PrintWriter;
 
+import org.apache.logging.log4j.Logger;
+
 /**
  * PrintWriter-based logging utility for classes too low level to use {@link org.apache.logging.log4j.status.StatusLogger}.
  * Such classes cannot use StatusLogger as StatusLogger or {@link org.apache.logging.log4j.simple.SimpleLogger} depends
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/MessageSupplier.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/MessageSupplier.java
index 341ab99dbc..8bed8d6b7e 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/MessageSupplier.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/MessageSupplier.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.util;
 
 import org.apache.logging.log4j.message.Message;
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertyEnvironment.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertyEnvironment.java
index a5b50bd899..fb53ec4237 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertyEnvironment.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertyEnvironment.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.util;
 
 import java.nio.charset.Charset;
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/ServiceLoaderUtil.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/ServiceLoaderUtil.java
index 1ea67e41cc..99a24561ea 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/ServiceLoaderUtil.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/ServiceLoaderUtil.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.util;
 
 import java.lang.invoke.CallSite;
@@ -49,9 +48,9 @@ public final class ServiceLoaderUtil {
 
     /**
      * Retrieves the available services from the caller's classloader.
-     * 
+     *
      * Broken services will be ignored.
-     * 
+     *
      * @param <T>         The service type.
      * @param serviceType The class of the service.
      * @param lookup      The calling class data.
@@ -64,9 +63,9 @@ public final class ServiceLoaderUtil {
     /**
      * Retrieves the available services from the caller's classloader and possibly
      * the thread context classloader.
-     * 
+     *
      * Broken services will be ignored.
-     * 
+     *
      * @param <T>         The service type.
      * @param serviceType The class of the service.
      * @param lookup      The calling class data.
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/ServiceRegistry.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/ServiceRegistry.java
index b29667c25a..9f36072c0e 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/ServiceRegistry.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/ServiceRegistry.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.util;
 
 import java.lang.invoke.MethodHandles.Lookup;
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/Strings.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/Strings.java
index 88b62695e5..8a6fdfefb0 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/Strings.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/Strings.java
@@ -23,7 +23,7 @@ import java.util.Optional;
 
 /**
  * <em>Consider this class private.</em>
- * 
+ *
  * @see <a href="http://commons.apache.org/proper/commons-lang/">Apache Commons Lang</a>
  */
 @InternalApi
@@ -41,7 +41,7 @@ public final class Strings {
      * The empty string array.
      */
     public static final String[] EMPTY_ARRAY = {};
-    
+
     /**
      * OS-dependent line separator, defaults to {@code "\n"} if the system property {@code ""line.separator"} cannot be
      * read.
@@ -55,7 +55,7 @@ public final class Strings {
 
     /**
      * Returns a double quoted string.
-     * 
+     *
      * @param str a String
      * @return {@code "str"}
      */
@@ -165,7 +165,7 @@ public final class Strings {
      * <p>
      * Copied from Apache Commons Lang org.apache.commons.lang3.StringUtils.
      * </p>
-     * 
+     *
      * @param str  the String to get the leftmost characters from, may be null
      * @param len  the length of the required String
      * @return the leftmost characters, {@code null} if null String input
@@ -185,7 +185,7 @@ public final class Strings {
 
     /**
      * Returns a quoted string.
-     * 
+     *
      * @param str a String
      * @return {@code 'str'}
      */
@@ -202,7 +202,7 @@ public final class Strings {
     public static String toRootUpperCase(final String str) {
         return str.toUpperCase(Locale.ROOT);
     }
-    
+
     /**
      * <p>
      * Removes control characters (char &lt;= 32) from both ends of this String returning {@code null} if the String is
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/Supplier.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/Supplier.java
index d9215cf421..e212d80572 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/Supplier.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/Supplier.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.util;
 
 /**
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/SystemPropertiesPropertySource.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/SystemPropertiesPropertySource.java
index 15d4145d8e..b3d1c3ccdf 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/SystemPropertiesPropertySource.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/SystemPropertiesPropertySource.java
@@ -29,79 +29,79 @@ import java.util.Properties;
  */
 public class SystemPropertiesPropertySource implements PropertySource {
 
-	private static final int DEFAULT_PRIORITY = 0;
-	private static final String PREFIX = "log4j2.";
+    private static final int DEFAULT_PRIORITY = 0;
+    private static final String PREFIX = "log4j2.";
 
-	/**
-	 * Used by bootstrap code to get system properties without loading PropertiesUtil.
-	 */
-	public static String getSystemProperty(final String key, final String defaultValue) {
-		try {
-			return System.getProperty(key, defaultValue);
-		} catch (SecurityException e) {
-			// Silently ignore the exception
-			return defaultValue;
-		}
-	}
+    /**
+     * Used by bootstrap code to get system properties without loading PropertiesUtil.
+     */
+    public static String getSystemProperty(final String key, final String defaultValue) {
+        try {
+            return System.getProperty(key, defaultValue);
+        } catch (SecurityException e) {
+            // Silently ignore the exception
+            return defaultValue;
+        }
+    }
 
-	@Override
-	public int getPriority() {
-		return DEFAULT_PRIORITY;
-	}
+    @Override
+    public int getPriority() {
+        return DEFAULT_PRIORITY;
+    }
 
-	@Override
-	public void forEach(final BiConsumer<String, String> action) {
-		final Properties properties;
-		try {
-			properties = System.getProperties();
-		} catch (final SecurityException e) {
-			// (1) There is no status logger.
-			// (2) LowLevelLogUtil also consults system properties ("line.separator") to
-			// open a BufferedWriter, so this may fail as well. Just having a hard reference
-			// in this code to LowLevelLogUtil would cause a problem.
-			// (3) We could log to System.err (nah) or just be quiet as we do now.
-			return;
-		}
-		// Lock properties only long enough to get a thread-safe SAFE snapshot of its
-		// current keys, an array.
-		final Object[] keySet;
-		synchronized (properties) {
-			keySet = properties.keySet().toArray();
-		}
-		// Then traverse for an unknown amount of time.
-		// Some keys may now be absent, in which case, the value is null.
-		for (final Object key : keySet) {
-			final String keyStr = Objects.toString(key, null);
-			action.accept(keyStr, properties.getProperty(keyStr));
-		}
-	}
+    @Override
+    public void forEach(final BiConsumer<String, String> action) {
+        final Properties properties;
+        try {
+            properties = System.getProperties();
+        } catch (final SecurityException e) {
+            // (1) There is no status logger.
+            // (2) LowLevelLogUtil also consults system properties ("line.separator") to
+            // open a BufferedWriter, so this may fail as well. Just having a hard reference
+            // in this code to LowLevelLogUtil would cause a problem.
+            // (3) We could log to System.err (nah) or just be quiet as we do now.
+            return;
+        }
+        // Lock properties only long enough to get a thread-safe SAFE snapshot of its
+        // current keys, an array.
+        final Object[] keySet;
+        synchronized (properties) {
+            keySet = properties.keySet().toArray();
+        }
+        // Then traverse for an unknown amount of time.
+        // Some keys may now be absent, in which case, the value is null.
+        for (final Object key : keySet) {
+            final String keyStr = Objects.toString(key, null);
+            action.accept(keyStr, properties.getProperty(keyStr));
+        }
+    }
 
-	@Override
-	public CharSequence getNormalForm(final Iterable<? extends CharSequence> tokens) {
-		return PREFIX + Util.joinAsCamelCase(tokens);
-	}
+    @Override
+    public CharSequence getNormalForm(final Iterable<? extends CharSequence> tokens) {
+        return PREFIX + Util.joinAsCamelCase(tokens);
+    }
 
-	@Override
-	public Collection<String> getPropertyNames() {
-		try {
-			return System.getProperties().stringPropertyNames();
-		} catch (final SecurityException e) {
-			return PropertySource.super.getPropertyNames();
-		}
-	}
+    @Override
+    public Collection<String> getPropertyNames() {
+        try {
+            return System.getProperties().stringPropertyNames();
+        } catch (final SecurityException e) {
+            return PropertySource.super.getPropertyNames();
+        }
+    }
 
-	@Override
-	public String getProperty(String key) {
-		try {
-			return System.getProperty(key);
-		} catch (final SecurityException e) {
-			return PropertySource.super.getProperty(key);
-		}
-	}
+    @Override
+    public String getProperty(String key) {
+        try {
+            return System.getProperty(key);
+        } catch (final SecurityException e) {
+            return PropertySource.super.getProperty(key);
+        }
+    }
 
-	@Override
-	public boolean containsProperty(String key) {
-		return getProperty(key) != null;
-	}
+    @Override
+    public boolean containsProperty(String key) {
+        return getProperty(key) != null;
+    }
 
 }
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/TimeUnit.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/TimeUnit.java
index 9ef3a73207..ac2e0004cb 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/TimeUnit.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/TimeUnit.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.util;
 
 import java.time.Duration;
diff --git a/log4j-core-its/src/test/java/org/apache/logging/log4j/core/appender/SocketAppenderSocketOptionsTest.java b/log4j-core-its/src/test/java/org/apache/logging/log4j/core/appender/SocketAppenderSocketOptionsTest.java
index 2b550023a8..bad65d4eee 100644
--- a/log4j-core-its/src/test/java/org/apache/logging/log4j/core/appender/SocketAppenderSocketOptionsTest.java
+++ b/log4j-core-its/src/test/java/org/apache/logging/log4j/core/appender/SocketAppenderSocketOptionsTest.java
@@ -16,6 +16,9 @@
  */
 package org.apache.logging.log4j.core.appender;
 
+import java.io.IOException;
+import java.net.Socket;
+
 import org.apache.logging.log4j.core.appender.SocketAppenderTest.TcpSocketTestServer;
 import org.apache.logging.log4j.core.net.AbstractSocketManager;
 import org.apache.logging.log4j.core.net.Rfc1349TrafficClass;
@@ -29,9 +32,6 @@ import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import java.io.IOException;
-import java.net.Socket;
-
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.junit.jupiter.api.Assertions.*;
 
diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/AllocatePorts.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/AllocatePorts.java
index d807ca18f4..51a12e324d 100644
--- a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/AllocatePorts.java
+++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/AllocatePorts.java
@@ -14,16 +14,15 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.core.test.junit;
 
-import org.junit.jupiter.api.extension.ExtendWith;
-
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
+import org.junit.jupiter.api.extension.ExtendWith;
+
 /**
  * Sets system properties to free port numbers. These properties are refreshed for each test method.
  */
diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/ConfigurationResolver.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/ConfigurationResolver.java
index a545fd2342..9b809fc4a6 100644
--- a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/ConfigurationResolver.java
+++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/ConfigurationResolver.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.core.test.junit;
 
 import org.apache.logging.log4j.core.LoggerContext;
diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/ContextSelectorCallback.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/ContextSelectorCallback.java
index 75f339e981..7848c77895 100644
--- a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/ContextSelectorCallback.java
+++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/ContextSelectorCallback.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.core.test.junit;
 
 import org.apache.logging.log4j.LogManager;
diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/LoggerContextResolver.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/LoggerContextResolver.java
index e2b01200fa..53bd60172b 100644
--- a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/LoggerContextResolver.java
+++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/LoggerContextResolver.java
@@ -14,9 +14,12 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.core.test.junit;
 
+import java.net.URI;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.LoggerContextAccessor;
@@ -36,10 +39,6 @@ import org.junit.jupiter.api.extension.ParameterContext;
 import org.junit.jupiter.api.extension.ParameterResolutionException;
 import org.junit.platform.commons.support.AnnotationSupport;
 
-import java.net.URI;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 class LoggerContextResolver extends TypeBasedParameterResolver<LoggerContext> implements BeforeAllCallback,
diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/PortAllocatorCallback.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/PortAllocatorCallback.java
index c9b04bc979..bab800725d 100644
--- a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/PortAllocatorCallback.java
+++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/PortAllocatorCallback.java
@@ -14,9 +14,10 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.core.test.junit;
 
+import java.util.stream.Stream;
+
 import org.apache.logging.log4j.core.test.AvailablePortFinder;
 import org.junit.jupiter.api.extension.AfterAllCallback;
 import org.junit.jupiter.api.extension.AfterEachCallback;
@@ -25,8 +26,6 @@ import org.junit.jupiter.api.extension.BeforeEachCallback;
 import org.junit.jupiter.api.extension.ExtensionContext;
 import org.junit.platform.commons.support.AnnotationSupport;
 
-import java.util.stream.Stream;
-
 class PortAllocatorCallback implements BeforeEachCallback, AfterEachCallback, BeforeAllCallback, AfterAllCallback {
     @Override
     public void beforeAll(final ExtensionContext context) throws Exception {
diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/util/Profiler.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/util/Profiler.java
index 99dfa8d257..e63e6a57a3 100644
--- a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/util/Profiler.java
+++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/util/Profiler.java
@@ -18,8 +18,8 @@ package org.apache.logging.log4j.core.test.util;
 
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.Strings;
 import org.apache.logging.log4j.util.LoaderUtil;
+import org.apache.logging.log4j.util.Strings;
 
 /**
  * YourKit Java Profiler helper class.
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingAppenderOnStartupTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingAppenderOnStartupTest.java
index 20adc79938..f755a159f8 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingAppenderOnStartupTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingAppenderOnStartupTest.java
@@ -16,14 +16,6 @@
  */
 package org.apache.logging.log4j.core.appender.rolling;
 
-import org.apache.commons.io.file.PathUtils;
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.core.LoggerContext;
-import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Test;
-
 import java.io.IOException;
 import java.nio.file.DirectoryStream;
 import java.nio.file.Files;
@@ -35,6 +27,14 @@ import java.time.Instant;
 import java.time.temporal.ChronoUnit;
 import java.util.List;
 
+import org.apache.commons.io.file.PathUtils;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.core.LoggerContext;
+import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 /**
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncQueueFullPolicyFactoryTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncQueueFullPolicyFactoryTest.java
index 9589a01a9f..006d422c93 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncQueueFullPolicyFactoryTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncQueueFullPolicyFactoryTest.java
@@ -16,6 +16,8 @@
  */
 package org.apache.logging.log4j.core.async;
 
+import java.util.Locale;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.core.test.categories.AsyncLoggers;
 import org.apache.logging.log4j.util.PropertiesUtil;
@@ -24,8 +26,6 @@ import org.junit.Before;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
-import java.util.Locale;
-
 import static org.junit.Assert.assertEquals;
 
 /**
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncThreadContextTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncThreadContextTest.java
index 948c4d791f..27d5ab26a0 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncThreadContextTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncThreadContextTest.java
@@ -16,6 +16,12 @@
  */
 package org.apache.logging.log4j.core.async;
 
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.net.URI;
+
 import org.apache.logging.log4j.ThreadContext;
 import org.apache.logging.log4j.core.Logger;
 import org.apache.logging.log4j.core.LoggerContext;
@@ -31,20 +37,14 @@ import org.apache.logging.log4j.plugins.di.Injector;
 import org.apache.logging.log4j.spi.DefaultThreadContextMap;
 import org.apache.logging.log4j.spi.ReadOnlyThreadContextMap;
 import org.apache.logging.log4j.test.junit.CleanUpFiles;
-import org.apache.logging.log4j.util.Unbox;
 import org.apache.logging.log4j.util.PropertiesUtil;
+import org.apache.logging.log4j.util.Unbox;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.CsvSource;
 
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.net.URI;
-
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNull;
 
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncWaitStrategyFactoryConfigGlobalLoggersTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncWaitStrategyFactoryConfigGlobalLoggersTest.java
index fd805fce34..708d8cad7f 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncWaitStrategyFactoryConfigGlobalLoggersTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncWaitStrategyFactoryConfigGlobalLoggersTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.logging.log4j.core.async;
 
-import com.lmax.disruptor.YieldingWaitStrategy;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.ConfigurationFactory;
@@ -28,6 +27,8 @@ import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
+import com.lmax.disruptor.YieldingWaitStrategy;
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/RequiredValidatorTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/RequiredValidatorTest.java
index 696756dd9e..d8a5a3c95f 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/RequiredValidatorTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/RequiredValidatorTest.java
@@ -16,6 +16,8 @@
  */
 package org.apache.logging.log4j.core.config.plugins.validation.validators;
 
+import java.util.function.Function;
+
 import org.apache.logging.log4j.plugins.Namespace;
 import org.apache.logging.log4j.plugins.Node;
 import org.apache.logging.log4j.plugins.di.DI;
@@ -29,8 +31,6 @@ import org.apache.logging.log4j.test.junit.StatusLoggerLevel;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import java.util.function.Function;
-
 import static org.junit.jupiter.api.Assertions.*;
 
 @StatusLoggerLevel("OFF")
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/ValidHostValidatorTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/ValidHostValidatorTest.java
index 1a472526dc..853ea43338 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/ValidHostValidatorTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/ValidHostValidatorTest.java
@@ -16,6 +16,8 @@
  */
 package org.apache.logging.log4j.core.config.plugins.validation.validators;
 
+import java.util.function.Function;
+
 import org.apache.logging.log4j.plugins.Namespace;
 import org.apache.logging.log4j.plugins.Node;
 import org.apache.logging.log4j.plugins.di.DI;
@@ -29,8 +31,6 @@ import org.apache.logging.log4j.test.junit.StatusLoggerLevel;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import java.util.function.Function;
-
 import static org.junit.jupiter.api.Assertions.*;
 
 @StatusLoggerLevel("OFF")
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/ValidPortValidatorTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/ValidPortValidatorTest.java
index a49f496e32..38059da891 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/ValidPortValidatorTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/ValidPortValidatorTest.java
@@ -16,6 +16,8 @@
  */
 package org.apache.logging.log4j.core.config.plugins.validation.validators;
 
+import java.util.function.Function;
+
 import org.apache.logging.log4j.plugins.Namespace;
 import org.apache.logging.log4j.plugins.Node;
 import org.apache.logging.log4j.plugins.di.DI;
@@ -28,8 +30,6 @@ import org.apache.logging.log4j.test.junit.StatusLoggerLevel;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import java.util.function.Function;
-
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertNull;
 
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/ValidatingPluginWithFailoverTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/ValidatingPluginWithFailoverTest.java
index 893e1ac0ea..788c685585 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/ValidatingPluginWithFailoverTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/ValidatingPluginWithFailoverTest.java
@@ -16,6 +16,8 @@
  */
 package org.apache.logging.log4j.core.config.plugins.validation.validators;
 
+import java.util.function.Function;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.core.Core;
 import org.apache.logging.log4j.core.appender.FailoverAppender;
@@ -37,8 +39,6 @@ import org.apache.logging.log4j.test.junit.StatusLoggerLevel;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import java.util.function.Function;
-
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.mockito.Mockito.*;
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/ValidatingPluginWithGenericBuilderTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/ValidatingPluginWithGenericBuilderTest.java
index c15a9b164a..a5c39d0e5d 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/ValidatingPluginWithGenericBuilderTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/ValidatingPluginWithGenericBuilderTest.java
@@ -16,6 +16,8 @@
  */
 package org.apache.logging.log4j.core.config.plugins.validation.validators;
 
+import java.util.function.Function;
+
 import org.apache.logging.log4j.plugins.Namespace;
 import org.apache.logging.log4j.plugins.Node;
 import org.apache.logging.log4j.plugins.di.DI;
@@ -28,8 +30,6 @@ import org.apache.logging.log4j.test.junit.StatusLoggerLevel;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import java.util.function.Function;
-
 import static org.junit.jupiter.api.Assertions.*;
 
 @StatusLoggerLevel("OFF")
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/ValidatingPluginWithGenericSubclassFoo1BuilderTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/ValidatingPluginWithGenericSubclassFoo1BuilderTest.java
index e749bc34a1..918ff808f3 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/ValidatingPluginWithGenericSubclassFoo1BuilderTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/ValidatingPluginWithGenericSubclassFoo1BuilderTest.java
@@ -16,6 +16,8 @@
  */
 package org.apache.logging.log4j.core.config.plugins.validation.validators;
 
+import java.util.function.Function;
+
 import org.apache.logging.log4j.plugins.Namespace;
 import org.apache.logging.log4j.plugins.Node;
 import org.apache.logging.log4j.plugins.di.DI;
@@ -28,8 +30,6 @@ import org.apache.logging.log4j.test.junit.StatusLoggerLevel;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import java.util.function.Function;
-
 import static org.junit.jupiter.api.Assertions.*;
 
 @StatusLoggerLevel("OFF")
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/ValidatingPluginWithTypedBuilderTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/ValidatingPluginWithTypedBuilderTest.java
index 1337b3b560..566130b8cf 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/ValidatingPluginWithTypedBuilderTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/plugins/validation/validators/ValidatingPluginWithTypedBuilderTest.java
@@ -16,6 +16,8 @@
  */
 package org.apache.logging.log4j.core.config.plugins.validation.validators;
 
+import java.util.function.Function;
+
 import org.apache.logging.log4j.plugins.Namespace;
 import org.apache.logging.log4j.plugins.Node;
 import org.apache.logging.log4j.plugins.di.DI;
@@ -28,8 +30,6 @@ import org.apache.logging.log4j.test.junit.StatusLoggerLevel;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import java.util.function.Function;
-
 import static org.junit.jupiter.api.Assertions.*;
 
 @StatusLoggerLevel("OFF")
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/impl/ThreadContextDataInjectorTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/impl/ThreadContextDataInjectorTest.java
index bebafb261d..e067ebdb11 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/impl/ThreadContextDataInjectorTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/impl/ThreadContextDataInjectorTest.java
@@ -16,6 +16,9 @@
  */
 package org.apache.logging.log4j.core.impl;
 
+import java.util.Collection;
+import java.util.concurrent.ExecutionException;
+
 import org.apache.logging.log4j.ThreadContext;
 import org.apache.logging.log4j.core.ContextDataInjector;
 import org.apache.logging.log4j.spi.ReadOnlyThreadContextMap;
@@ -31,9 +34,6 @@ import org.junit.runners.Parameterized;
 import org.junit.runners.Parameterized.Parameter;
 import org.junit.runners.Parameterized.Parameters;
 
-import java.util.Collection;
-import java.util.concurrent.ExecutionException;
-
 import static java.util.Arrays.asList;
 import static java.util.concurrent.Executors.newSingleThreadExecutor;
 import static org.apache.logging.log4j.ThreadContext.getThreadContextMap;
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/layout/GelfLayoutTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/layout/GelfLayoutTest.java
index d4235610c2..0b63af7f98 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/layout/GelfLayoutTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/layout/GelfLayoutTest.java
@@ -16,7 +16,13 @@
  */
 package org.apache.logging.log4j.core.layout;
 
-import com.fasterxml.jackson.core.io.JsonStringEncoder;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+import java.util.zip.GZIPInputStream;
+import java.util.zip.InflaterInputStream;
+
 import org.apache.commons.io.IOUtils;
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.ThreadContext;
@@ -33,18 +39,13 @@ import org.apache.logging.log4j.core.test.appender.ListAppender;
 import org.apache.logging.log4j.core.util.KeyValuePair;
 import org.apache.logging.log4j.core.util.NetUtils;
 import org.apache.logging.log4j.test.junit.UsingAnyThreadContext;
-import org.apache.logging.log4j.util.Lazy;
 import org.apache.logging.log4j.util.Chars;
+import org.apache.logging.log4j.util.Lazy;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.List;
-import java.util.zip.GZIPInputStream;
-import java.util.zip.InflaterInputStream;
+import com.fasterxml.jackson.core.io.JsonStringEncoder;
 
 import static net.javacrumbs.jsonunit.JsonAssert.assertJsonEquals;
 import static org.assertj.core.api.Assertions.assertThat;
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/layout/HtmlLayoutTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/layout/HtmlLayoutTest.java
index fd31532abb..0a45fca98b 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/layout/HtmlLayoutTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/layout/HtmlLayoutTest.java
@@ -16,6 +16,17 @@
  */
 package org.apache.logging.log4j.core.layout;
 
+import java.lang.management.ManagementFactory;
+import java.nio.charset.StandardCharsets;
+import java.text.MessageFormat;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.Calendar;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.ThreadContext;
 import org.apache.logging.log4j.core.*;
@@ -33,17 +44,6 @@ import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
-import java.lang.management.ManagementFactory;
-import java.nio.charset.StandardCharsets;
-import java.text.MessageFormat;
-import java.time.ZoneId;
-import java.time.ZonedDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.Calendar;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
 import static org.apache.logging.log4j.core.time.internal.format.FixedDateFormat.FixedFormat;
 import static org.junit.jupiter.api.Assertions.*;
 
@@ -261,7 +261,7 @@ public class HtmlLayoutTest {
 
         // LOG4J2-3019 HtmlLayoutTest.testLayoutWithDatePatternFixedFormat test fails on windows
         // https://issues.apache.org/jira/browse/LOG4J2-3019
-        // java.time.format.DateTimeFormatterBuilder.toFormatter() defaults to using 
+        // java.time.format.DateTimeFormatterBuilder.toFormatter() defaults to using
         // Locale.getDefault(Locale.Category.FORMAT)
         final Locale formatLocale = Locale.getDefault(Locale.Category.FORMAT);
         final Locale locale = Locale.getDefault().equals(formatLocale) ? formatLocale : Locale.getDefault();
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/layout/PatternLayoutTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/layout/PatternLayoutTest.java
index f5211d307f..3cc58cc5ce 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/layout/PatternLayoutTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/layout/PatternLayoutTest.java
@@ -16,6 +16,10 @@
  */
 package org.apache.logging.log4j.core.layout;
 
+import java.nio.ByteBuffer;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.MarkerManager;
 import org.apache.logging.log4j.ThreadContext;
@@ -34,10 +38,6 @@ import org.apache.logging.log4j.util.Strings;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
-import java.nio.ByteBuffer;
-import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
-
 import static org.junit.jupiter.api.Assertions.*;
 
 @UsingAnyThreadContext
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/layout/Rfc5424LayoutTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/layout/Rfc5424LayoutTest.java
index 80bc899987..d053b92e51 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/layout/Rfc5424LayoutTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/layout/Rfc5424LayoutTest.java
@@ -16,6 +16,12 @@
  */
 package org.apache.logging.log4j.core.layout;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Locale;
+import java.util.function.Function;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.MarkerManager;
 import org.apache.logging.log4j.ThreadContext;
@@ -49,12 +55,6 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.ValueSource;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Locale;
-import java.util.function.Function;
-
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.junit.jupiter.api.Assertions.*;
 
@@ -334,7 +334,7 @@ public class Rfc5424LayoutTest {
 
             assertTrue(list.size() > 1, "Not enough list entries");
             final String string = list.get(1);
-			      assertTrue(string.contains("IllegalArgumentException"), "No Exception in " + string);
+                  assertTrue(string.contains("IllegalArgumentException"), "No Exception in " + string);
 
             appender.clear();
         } finally {
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/layout/SyslogLayoutTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/layout/SyslogLayoutTest.java
index bacc71a710..a75753ebea 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/layout/SyslogLayoutTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/layout/SyslogLayoutTest.java
@@ -16,6 +16,9 @@
  */
 package org.apache.logging.log4j.core.layout;
 
+import java.util.List;
+import java.util.Locale;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.MarkerManager;
 import org.apache.logging.log4j.ThreadContext;
@@ -33,9 +36,6 @@ import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
-import java.util.List;
-import java.util.Locale;
-
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 @UsingAnyThreadContext
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/pattern/DatePatternConverterTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/pattern/DatePatternConverterTest.java
index 2a664c4756..fdf6ca365e 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/pattern/DatePatternConverterTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/pattern/DatePatternConverterTest.java
@@ -16,25 +16,25 @@
  */
 package org.apache.logging.log4j.core.pattern;
 
+import java.text.SimpleDateFormat;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Collection;
+import java.util.Date;
+import java.util.TimeZone;
+
 import org.apache.logging.log4j.core.AbstractLogEvent;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.time.Instant;
 import org.apache.logging.log4j.core.time.MutableInstant;
 import org.apache.logging.log4j.core.time.internal.format.FixedDateFormat;
 import org.apache.logging.log4j.core.time.internal.format.FixedDateFormat.FixedTimeZoneFormat;
-import org.apache.logging.log4j.util.Strings;
 import org.apache.logging.log4j.util.Constants;
+import org.apache.logging.log4j.util.Strings;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
-import java.text.SimpleDateFormat;
-import java.util.Arrays;
-import java.util.Calendar;
-import java.util.Collection;
-import java.util.Date;
-import java.util.TimeZone;
-
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/time/InstantFormatterTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/time/InstantFormatterTest.java
index 9da1852f83..5c47906832 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/time/InstantFormatterTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/time/InstantFormatterTest.java
@@ -16,6 +16,9 @@
  */
 package org.apache.logging.log4j.core.time;
 
+import java.util.Locale;
+import java.util.TimeZone;
+
 import org.apache.logging.log4j.core.time.internal.format.FastDateFormat;
 import org.apache.logging.log4j.core.time.internal.format.FixedDateFormat;
 import org.assertj.core.api.Assertions;
@@ -23,9 +26,6 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.CsvSource;
 
-import java.util.Locale;
-import java.util.TimeZone;
-
 class InstantFormatterTest {
 
     @ParameterizedTest
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/Core.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/Core.java
index d6c408575f..dca48ec14c 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/Core.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/Core.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.core;
 
 import org.apache.logging.log4j.plugins.Namespace;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
index 18f5c1a101..7ef54dab99 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
@@ -16,6 +16,21 @@
  */
 package org.apache.logging.log4j.core;
 
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.io.File;
+import java.lang.ref.WeakReference;
+import java.net.URI;
+import java.util.Collection;
+import java.util.List;
+import java.util.Objects;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
+
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.ThreadContext;
 import org.apache.logging.log4j.core.config.Configuration;
@@ -42,21 +57,6 @@ import org.apache.logging.log4j.spi.LoggerRegistry;
 import org.apache.logging.log4j.spi.Terminable;
 import org.apache.logging.log4j.util.PropertiesUtil;
 
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.io.File;
-import java.lang.ref.WeakReference;
-import java.net.URI;
-import java.util.Collection;
-import java.util.List;
-import java.util.Objects;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.CopyOnWriteArrayList;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.ReentrantLock;
-
 import static org.apache.logging.log4j.core.util.ShutdownCallbackRegistry.SHUTDOWN_HOOK_MARKER;
 
 /**
@@ -448,7 +448,7 @@ public class LoggerContext extends AbstractLifeCycle
      * @throws NullPointerException if the specified name is {@code null}
      */
     public void setName(final String name) {
-    	contextName = Objects.requireNonNull(name);
+        contextName = Objects.requireNonNull(name);
     }
 
     @Override
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 ab5fe34cbf..bdcebd9079 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
@@ -16,6 +16,17 @@
  */
 package org.apache.logging.log4j.core.appender;
 
+import java.io.FileDescriptor;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.lang.reflect.Constructor;
+import java.nio.charset.Charset;
+import java.util.concurrent.atomic.AtomicInteger;
+
 import org.apache.logging.log4j.core.Appender;
 import org.apache.logging.log4j.core.Filter;
 import org.apache.logging.log4j.core.Layout;
@@ -28,20 +39,9 @@ import org.apache.logging.log4j.plugins.Plugin;
 import org.apache.logging.log4j.plugins.PluginBuilderAttribute;
 import org.apache.logging.log4j.plugins.PluginFactory;
 import org.apache.logging.log4j.plugins.validation.constraints.Required;
-import org.apache.logging.log4j.util.PropertyEnvironment;
 import org.apache.logging.log4j.util.Chars;
 import org.apache.logging.log4j.util.PropertiesUtil;
-
-import java.io.FileDescriptor;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.io.Serializable;
-import java.io.UnsupportedEncodingException;
-import java.lang.reflect.Constructor;
-import java.nio.charset.Charset;
-import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.logging.log4j.util.PropertyEnvironment;
 
 /**
  * Appends log events to <code>System.out</code> or <code>System.err</code> using a layout specified by the user. The
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SyslogAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SyslogAppender.java
index 2c3e477585..03525b3147 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SyslogAppender.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/SyslogAppender.java
@@ -16,6 +16,10 @@
  */
 package org.apache.logging.log4j.core.appender;
 
+import java.io.Serializable;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+
 import org.apache.logging.log4j.core.Appender;
 import org.apache.logging.log4j.core.Filter;
 import org.apache.logging.log4j.core.Layout;
@@ -35,10 +39,6 @@ import org.apache.logging.log4j.plugins.PluginBuilderAttribute;
 import org.apache.logging.log4j.plugins.PluginElement;
 import org.apache.logging.log4j.plugins.PluginFactory;
 
-import java.io.Serializable;
-import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
-
 /**
  * The Syslog Appender.
  */
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLogger.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLogger.java
index 4fe794579f..e314e6cf9c 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLogger.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLogger.java
@@ -16,8 +16,8 @@
  */
 package org.apache.logging.log4j.core.async;
 
-import com.lmax.disruptor.EventTranslatorVararg;
-import com.lmax.disruptor.dsl.Disruptor;
+import java.util.List;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.Marker;
 import org.apache.logging.log4j.ThreadContext;
@@ -37,10 +37,11 @@ import org.apache.logging.log4j.message.MessageFactory;
 import org.apache.logging.log4j.message.ReusableMessage;
 import org.apache.logging.log4j.spi.AbstractLogger;
 import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.StringMap;
 import org.apache.logging.log4j.util.StackLocatorUtil;
+import org.apache.logging.log4j.util.StringMap;
 
-import java.util.List;
+import com.lmax.disruptor.EventTranslatorVararg;
+import com.lmax.disruptor.dsl.Disruptor;
 
 /**
  * AsyncLogger is a logger designed for high throughput and low latency logging. It does not perform any I/O in the
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncQueueFullPolicyFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncQueueFullPolicyFactory.java
index dc422234ce..b73f4034b4 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncQueueFullPolicyFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncQueueFullPolicyFactory.java
@@ -20,8 +20,8 @@ import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.core.util.Loader;
 import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.PropertyEnvironment;
 import org.apache.logging.log4j.util.PropertiesUtil;
+import org.apache.logging.log4j.util.PropertyEnvironment;
 
 /**
  * Creates {@link AsyncQueueFullPolicy} instances based on user-specified system properties. The {@code AsyncQueueFullPolicy}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DefaultAsyncWaitStrategyFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DefaultAsyncWaitStrategyFactory.java
index 6e6278dce2..f2e9b5d3af 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DefaultAsyncWaitStrategyFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DefaultAsyncWaitStrategyFactory.java
@@ -16,17 +16,18 @@
  */
 package org.apache.logging.log4j.core.async;
 
+import java.util.concurrent.TimeUnit;
+
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.util.PropertiesUtil;
+import org.apache.logging.log4j.util.Strings;
+
 import com.lmax.disruptor.BlockingWaitStrategy;
 import com.lmax.disruptor.BusySpinWaitStrategy;
 import com.lmax.disruptor.SleepingWaitStrategy;
 import com.lmax.disruptor.WaitStrategy;
 import com.lmax.disruptor.YieldingWaitStrategy;
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.Strings;
-import org.apache.logging.log4j.util.PropertiesUtil;
-
-import java.util.concurrent.TimeUnit;
 
 class DefaultAsyncWaitStrategyFactory implements AsyncWaitStrategyFactory {
     static final String DEFAULT_WAIT_STRATEGY_CLASSNAME = TimeoutBlockingWaitStrategy.class.getName();
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
index 8c8e252610..f82f7ad228 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
@@ -16,6 +16,26 @@
  */
 package org.apache.logging.log4j.core.config;
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Serializable;
+import java.lang.invoke.MethodHandles;
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.TimeUnit;
+import java.util.function.Function;
+import java.util.function.Supplier;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.core.Appender;
 import org.apache.logging.log4j.core.Core;
@@ -59,32 +79,12 @@ import org.apache.logging.log4j.plugins.di.Key;
 import org.apache.logging.log4j.plugins.di.Keys;
 import org.apache.logging.log4j.plugins.model.PluginNamespace;
 import org.apache.logging.log4j.plugins.model.PluginType;
-import org.apache.logging.log4j.util.Lazy;
 import org.apache.logging.log4j.util.Cast;
+import org.apache.logging.log4j.util.Lazy;
 import org.apache.logging.log4j.util.NameUtil;
 import org.apache.logging.log4j.util.PropertiesUtil;
 import org.apache.logging.log4j.util.ServiceRegistry;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Serializable;
-import java.lang.invoke.MethodHandles;
-import java.lang.ref.WeakReference;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.CopyOnWriteArrayList;
-import java.util.concurrent.TimeUnit;
-import java.util.function.Function;
-import java.util.function.Supplier;
-
 /**
  * The base Configuration. Many configuration implementations will extend this class.
  */
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AppenderControl.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AppenderControl.java
index 0f7fee43c5..b99145494a 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AppenderControl.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AppenderControl.java
@@ -16,6 +16,8 @@
  */
 package org.apache.logging.log4j.core.config;
 
+import java.util.Objects;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.core.Appender;
 import org.apache.logging.log4j.core.Filter;
@@ -25,8 +27,6 @@ import org.apache.logging.log4j.core.filter.AbstractFilterable;
 import org.apache.logging.log4j.core.filter.Filterable;
 import org.apache.logging.log4j.util.PerformanceSensitive;
 
-import java.util.Objects;
-
 /**
  * Wraps an {@link Appender} with details an appender implementation shouldn't need to know about.
  */
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AppenderControlArraySet.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AppenderControlArraySet.java
index cfa065610b..54e89ab38d 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AppenderControlArraySet.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AppenderControlArraySet.java
@@ -16,15 +16,15 @@
  */
 package org.apache.logging.log4j.core.config;
 
-import org.apache.logging.log4j.core.Appender;
-import org.apache.logging.log4j.util.PerformanceSensitive;
-
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
 import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
 
+import org.apache.logging.log4j.core.Appender;
+import org.apache.logging.log4j.util.PerformanceSensitive;
+
 /**
  * Data structure with similar semantics to CopyOnWriteArraySet, but giving direct access to the underlying array.
  *
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AwaitUnconditionallyReliabilityStrategy.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AwaitUnconditionallyReliabilityStrategy.java
index f1afcc9daf..c84a3cbb79 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AwaitUnconditionallyReliabilityStrategy.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AwaitUnconditionallyReliabilityStrategy.java
@@ -14,18 +14,17 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.core.config;
 
+import java.util.Objects;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.Marker;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.message.Message;
 import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.Supplier;
 import org.apache.logging.log4j.util.PropertiesUtil;
-
-import java.util.Objects;
+import org.apache.logging.log4j.util.Supplier;
 
 /**
  * Reliability strategy that sleeps unconditionally for some time before allowing a Configuration to be stopped.
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java
index 66336fe32d..de5d143156 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationFactory.java
@@ -16,6 +16,8 @@
  */
 package org.apache.logging.log4j.core.config;
 
+import java.net.URI;
+
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFactory;
@@ -28,10 +30,8 @@ import org.apache.logging.log4j.plugins.di.Injector;
 import org.apache.logging.log4j.plugins.di.Key;
 import org.apache.logging.log4j.plugins.model.PluginNamespace;
 import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.PropertyEnvironment;
 import org.apache.logging.log4j.util.LoaderUtil;
-
-import java.net.URI;
+import org.apache.logging.log4j.util.PropertyEnvironment;
 
 /**
  * Factory class for parsed {@link Configuration} objects from a configuration file.
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/Configurator.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/Configurator.java
index 06746ad6cd..96e7c1fd4e 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/Configurator.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/Configurator.java
@@ -16,6 +16,11 @@
  */
 package org.apache.logging.log4j.core.config;
 
+import java.net.URI;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -24,13 +29,8 @@ import org.apache.logging.log4j.core.impl.Log4jContextFactory;
 import org.apache.logging.log4j.core.util.NetUtils;
 import org.apache.logging.log4j.spi.LoggerContextFactory;
 import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.Strings;
 import org.apache.logging.log4j.util.StackLocatorUtil;
-
-import java.net.URI;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
+import org.apache.logging.log4j.util.Strings;
 
 /**
  * Initializes and configure the Logging system. This class provides several ways to construct a LoggerContext using
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/DefaultConfigurationFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/DefaultConfigurationFactory.java
index 1213e24ece..7e54fbae6f 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/DefaultConfigurationFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/DefaultConfigurationFactory.java
@@ -14,9 +14,16 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.core.config;
 
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URLDecoder;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.composite.CompositeConfiguration;
@@ -25,18 +32,10 @@ import org.apache.logging.log4j.core.util.NetUtils;
 import org.apache.logging.log4j.plugins.Inject;
 import org.apache.logging.log4j.plugins.di.Injector;
 import org.apache.logging.log4j.util.Lazy;
-import org.apache.logging.log4j.util.PropertyEnvironment;
-import org.apache.logging.log4j.util.Strings;
 import org.apache.logging.log4j.util.LoaderUtil;
 import org.apache.logging.log4j.util.PropertiesUtil;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URLDecoder;
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Optional;
+import org.apache.logging.log4j.util.PropertyEnvironment;
+import org.apache.logging.log4j.util.Strings;
 
 /**
  * Default factory for using a plugin selected based on the configuration source.
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java
index fa66787078..aeaf73c00b 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/LoggerConfig.java
@@ -16,6 +16,11 @@
  */
 package org.apache.logging.log4j.core.config;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Marker;
@@ -44,14 +49,9 @@ import org.apache.logging.log4j.plugins.PluginBuilderAttribute;
 import org.apache.logging.log4j.plugins.PluginElement;
 import org.apache.logging.log4j.plugins.PluginFactory;
 import org.apache.logging.log4j.plugins.validation.constraints.Required;
-import org.apache.logging.log4j.util.Strings;
 import org.apache.logging.log4j.util.PerformanceSensitive;
 import org.apache.logging.log4j.util.StackLocatorUtil;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
+import org.apache.logging.log4j.util.Strings;
 
 /**
  * Logger object that is created via configuration.
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/api/ConfigurationBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/api/ConfigurationBuilder.java
index d5f7d74928..60d21442f5 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/api/ConfigurationBuilder.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/api/ConfigurationBuilder.java
@@ -16,6 +16,10 @@
  */
 package org.apache.logging.log4j.core.config.builder.api;
 
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.concurrent.TimeUnit;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.core.Filter;
 import org.apache.logging.log4j.core.LoggerContext;
@@ -23,10 +27,6 @@ import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.config.ConfigurationSource;
 import org.apache.logging.log4j.plugins.util.Builder;
 
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.concurrent.TimeUnit;
-
 /**
  * Interface for building logging configurations.
  * @param <T> The Configuration type created by this builder.
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/BuiltConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/BuiltConfiguration.java
index b61463c623..fa5f6a27d2 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/BuiltConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/BuiltConfiguration.java
@@ -16,6 +16,11 @@
  */
 package org.apache.logging.log4j.core.config.builder.impl;
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Arrays;
+import java.util.List;
+
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.AbstractConfiguration;
 import org.apache.logging.log4j.core.config.ConfigurationSource;
@@ -27,11 +32,6 @@ import org.apache.logging.log4j.plugins.Node;
 import org.apache.logging.log4j.plugins.model.PluginType;
 import org.apache.logging.log4j.plugins.util.ResolverUtil;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Arrays;
-import java.util.List;
-
 /**
  * This is the general version of the Configuration created by the Builder. It may be extended to
  * enhance its functionality.
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/composite/DefaultMergeStrategy.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/composite/DefaultMergeStrategy.java
index cb8bd355b0..fe8c13d0df 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/composite/DefaultMergeStrategy.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/composite/DefaultMergeStrategy.java
@@ -16,6 +16,11 @@
  */
 package org.apache.logging.log4j.core.config.composite;
 
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.core.Filter;
 import org.apache.logging.log4j.core.config.AbstractConfiguration;
@@ -24,11 +29,6 @@ import org.apache.logging.log4j.plugins.Node;
 import org.apache.logging.log4j.plugins.model.PluginNamespace;
 import org.apache.logging.log4j.plugins.model.PluginType;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-
 /**
  * The default merge strategy for composite configurations.
  * <p>
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/jason/JsonConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/jason/JsonConfiguration.java
index 0ef1f46b92..d2fc448381 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/jason/JsonConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/jason/JsonConfiguration.java
@@ -14,9 +14,17 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.core.config.jason;
 
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.concurrent.atomic.AtomicInteger;
+
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.AbstractConfiguration;
 import org.apache.logging.log4j.core.config.Configuration;
@@ -31,15 +39,6 @@ import org.apache.logging.log4j.plugins.model.PluginType;
 import org.apache.logging.log4j.plugins.util.ResolverUtil;
 import org.apache.logging.log4j.util.Cast;
 
-import java.io.IOException;
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.concurrent.atomic.AtomicInteger;
-
 public class JsonConfiguration extends AbstractConfiguration implements Reconfigurable {
     private static final String[] VERBOSE_CLASSES = new String[] { ResolverUtil.class.getName() };
 
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/json/JsonConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/json/JsonConfiguration.java
index c56ef383f7..e125fd30d0 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/json/JsonConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/json/JsonConfiguration.java
@@ -16,9 +16,15 @@
  */
 package org.apache.logging.log4j.core.config.json;
 
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.AbstractConfiguration;
 import org.apache.logging.log4j.core.config.Configuration;
@@ -31,14 +37,9 @@ import org.apache.logging.log4j.plugins.Node;
 import org.apache.logging.log4j.plugins.model.PluginType;
 import org.apache.logging.log4j.plugins.util.ResolverUtil;
 
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
 
 /**
  * Creates a Node hierarchy from a JSON file.
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visit/PluginAttributeVisitor.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visit/PluginAttributeVisitor.java
index c5c74ffa31..95bec784b0 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visit/PluginAttributeVisitor.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visit/PluginAttributeVisitor.java
@@ -14,9 +14,15 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.core.config.plugins.visit;
 
+import java.lang.reflect.Field;
+import java.lang.reflect.Parameter;
+import java.lang.reflect.Type;
+import java.util.Collection;
+import java.util.Map;
+import java.util.function.Function;
+
 import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
 import org.apache.logging.log4j.plugins.Inject;
 import org.apache.logging.log4j.plugins.Named;
@@ -25,15 +31,8 @@ import org.apache.logging.log4j.plugins.convert.TypeConverter;
 import org.apache.logging.log4j.plugins.di.Injector;
 import org.apache.logging.log4j.plugins.di.Keys;
 import org.apache.logging.log4j.plugins.visit.NodeVisitor;
-import org.apache.logging.log4j.util.Strings;
 import org.apache.logging.log4j.util.StringBuilders;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Parameter;
-import java.lang.reflect.Type;
-import java.util.Collection;
-import java.util.Map;
-import java.util.function.Function;
+import org.apache.logging.log4j.util.Strings;
 
 // copied to log4j-core for backward compatibility
 @SuppressWarnings({ "DuplicatedCode", "deprecation" })
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visit/PluginConfigurationVisitor.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visit/PluginConfigurationVisitor.java
index 4c20b4ba5b..a9523d202e 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visit/PluginConfigurationVisitor.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visit/PluginConfigurationVisitor.java
@@ -14,9 +14,11 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.core.config.plugins.visit;
 
+import java.lang.reflect.Field;
+import java.lang.reflect.Parameter;
+
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.plugins.Inject;
@@ -27,9 +29,6 @@ import org.apache.logging.log4j.status.StatusLogger;
 import org.apache.logging.log4j.util.Cast;
 import org.apache.logging.log4j.util.StringBuilders;
 
-import java.lang.reflect.Field;
-import java.lang.reflect.Parameter;
-
 public class PluginConfigurationVisitor implements NodeVisitor {
     private static final Logger LOGGER = StatusLogger.getLogger();
 
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visit/PluginLoggerContextVisitor.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visit/PluginLoggerContextVisitor.java
index 3fee4318e2..b0774ec133 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visit/PluginLoggerContextVisitor.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visit/PluginLoggerContextVisitor.java
@@ -14,9 +14,12 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.core.config.plugins.visit;
 
+import java.lang.ref.WeakReference;
+import java.lang.reflect.Field;
+import java.lang.reflect.Parameter;
+
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.plugins.PluginConfiguration;
@@ -28,10 +31,6 @@ import org.apache.logging.log4j.status.StatusLogger;
 import org.apache.logging.log4j.util.Cast;
 import org.apache.logging.log4j.util.StringBuilders;
 
-import java.lang.ref.WeakReference;
-import java.lang.reflect.Field;
-import java.lang.reflect.Parameter;
-
 /**
  * PluginVisitor implementation for {@link PluginConfiguration}.
  */
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.java
index 11894e509a..2d98ced6b5 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.java
@@ -14,9 +14,13 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.core.config.properties;
 
+import java.util.Map;
+import java.util.Objects;
+import java.util.Properties;
+import java.util.concurrent.TimeUnit;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.core.Appender;
@@ -40,13 +44,8 @@ import org.apache.logging.log4j.core.config.builder.api.ScriptFileComponentBuild
 import org.apache.logging.log4j.core.filter.AbstractFilter.AbstractFilterBuilder;
 import org.apache.logging.log4j.plugins.util.Builder;
 import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.Strings;
 import org.apache.logging.log4j.util.PropertiesUtil;
-
-import java.util.Map;
-import java.util.Objects;
-import java.util.Properties;
-import java.util.concurrent.TimeUnit;
+import org.apache.logging.log4j.util.Strings;
 
 /**
  * Helper builder for parsing properties files into a PropertiesConfiguration.
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/xml/XmlConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/xml/XmlConfiguration.java
index b15faf5eec..3ed0caf7c1 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/xml/XmlConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/xml/XmlConfiguration.java
@@ -16,6 +16,22 @@
  */
 package org.apache.logging.log4j.core.config.xml;
 
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import javax.xml.XMLConstants;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.validation.Schema;
+import javax.xml.validation.SchemaFactory;
+import javax.xml.validation.Validator;
+
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.AbstractConfiguration;
 import org.apache.logging.log4j.core.config.Configuration;
@@ -39,22 +55,6 @@ import org.w3c.dom.Text;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 
-import javax.xml.XMLConstants;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.stream.StreamSource;
-import javax.xml.validation.Schema;
-import javax.xml.validation.SchemaFactory;
-import javax.xml.validation.Validator;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
 /**
  * Creates a Node hierarchy from an XML file.
  */
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java
index 6aa906d520..efa7c1b9e6 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java
@@ -16,6 +16,12 @@
  */
 package org.apache.logging.log4j.core.filter;
 
+import java.util.Map;
+import java.util.Objects;
+import java.util.function.Supplier;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.Marker;
 import org.apache.logging.log4j.ThreadContext;
@@ -33,15 +39,9 @@ import org.apache.logging.log4j.plugins.Plugin;
 import org.apache.logging.log4j.plugins.PluginAttribute;
 import org.apache.logging.log4j.plugins.PluginElement;
 import org.apache.logging.log4j.plugins.PluginFactory;
+import org.apache.logging.log4j.util.PerformanceSensitive;
 import org.apache.logging.log4j.util.ReadOnlyStringMap;
 import org.apache.logging.log4j.util.StringMap;
-import org.apache.logging.log4j.util.PerformanceSensitive;
-
-import java.util.Map;
-import java.util.Objects;
-import java.util.function.Supplier;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 /**
  * Compares against a log level that is associated with a context value. By default the context is the
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/MapFilter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/MapFilter.java
index 32eb971060..26d43a29df 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/MapFilter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/MapFilter.java
@@ -16,6 +16,12 @@
  */
 package org.apache.logging.log4j.core.filter;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.Marker;
 import org.apache.logging.log4j.core.Filter;
@@ -31,15 +37,9 @@ import org.apache.logging.log4j.plugins.PluginElement;
 import org.apache.logging.log4j.plugins.PluginFactory;
 import org.apache.logging.log4j.util.IndexedReadOnlyStringMap;
 import org.apache.logging.log4j.util.IndexedStringMap;
+import org.apache.logging.log4j.util.PerformanceSensitive;
 import org.apache.logging.log4j.util.ReadOnlyStringMap;
 import org.apache.logging.log4j.util.SortedArrayStringMap;
-import org.apache.logging.log4j.util.PerformanceSensitive;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
 
 /**
  * A Filter that operates on a Map.
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ContextDataFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ContextDataFactory.java
index b49ac7fca2..cb745fff62 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ContextDataFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ContextDataFactory.java
@@ -16,18 +16,18 @@
  */
 package org.apache.logging.log4j.core.impl;
 
+import java.lang.reflect.Constructor;
+import java.util.Map;
+import java.util.Map.Entry;
+
 import org.apache.logging.log4j.core.ContextDataInjector;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.util.Loader;
 import org.apache.logging.log4j.util.IndexedStringMap;
+import org.apache.logging.log4j.util.PropertiesUtil;
 import org.apache.logging.log4j.util.ReadOnlyStringMap;
 import org.apache.logging.log4j.util.SortedArrayStringMap;
 import org.apache.logging.log4j.util.StringMap;
-import org.apache.logging.log4j.util.PropertiesUtil;
-
-import java.lang.reflect.Constructor;
-import java.util.Map;
-import java.util.Map.Entry;
 
 /**
  * Factory for creating the StringMap instances used to initialize LogEvents' {@linkplain LogEvent#getContextData()
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ContextDataInjectorFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ContextDataInjectorFactory.java
index 3ebd1a7639..74925f6cb9 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ContextDataInjectorFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ContextDataInjectorFactory.java
@@ -24,8 +24,8 @@ import org.apache.logging.log4j.spi.CopyOnWrite;
 import org.apache.logging.log4j.spi.DefaultThreadContextMap;
 import org.apache.logging.log4j.spi.ReadOnlyThreadContextMap;
 import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.ReadOnlyStringMap;
 import org.apache.logging.log4j.util.PropertiesUtil;
+import org.apache.logging.log4j.util.ReadOnlyStringMap;
 
 /**
  * Factory for ContextDataInjectors. Returns a new {@code ContextDataInjector} instance based on the value of system
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/DefaultBundle.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/DefaultBundle.java
index f6361fa44b..dc7cc9e276 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/DefaultBundle.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/DefaultBundle.java
@@ -14,9 +14,11 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.core.impl;
 
+import java.util.Map;
+import java.util.function.Supplier;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.ThreadContext;
@@ -56,11 +58,8 @@ import org.apache.logging.log4j.spi.CopyOnWrite;
 import org.apache.logging.log4j.spi.DefaultThreadContextMap;
 import org.apache.logging.log4j.spi.ReadOnlyThreadContextMap;
 import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.PropertyEnvironment;
 import org.apache.logging.log4j.util.PropertiesUtil;
-
-import java.util.Map;
-import java.util.function.Supplier;
+import org.apache.logging.log4j.util.PropertyEnvironment;
 
 import static org.apache.logging.log4j.util.Constants.isThreadLocalsEnabled;
 
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
index b8ff0a8948..28be3a6405 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
@@ -16,6 +16,13 @@
  */
 package org.apache.logging.log4j.core.impl;
 
+import java.io.IOException;
+import java.io.InvalidObjectException;
+import java.io.ObjectInputStream;
+import java.io.Serializable;
+import java.rmi.MarshalledObject;
+import java.util.Objects;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.Marker;
 import org.apache.logging.log4j.ThreadContext;
@@ -33,16 +40,9 @@ import org.apache.logging.log4j.message.ReusableMessage;
 import org.apache.logging.log4j.message.SimpleMessage;
 import org.apache.logging.log4j.message.TimestampMessage;
 import org.apache.logging.log4j.util.ReadOnlyStringMap;
+import org.apache.logging.log4j.util.StackLocatorUtil;
 import org.apache.logging.log4j.util.StringMap;
 import org.apache.logging.log4j.util.Strings;
-import org.apache.logging.log4j.util.StackLocatorUtil;
-
-import java.io.IOException;
-import java.io.InvalidObjectException;
-import java.io.ObjectInputStream;
-import java.io.Serializable;
-import java.rmi.MarshalledObject;
-import java.util.Objects;
 
 /**
  * Implementation of a LogEvent.
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/MutableLogEvent.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/MutableLogEvent.java
index 3bd6563e72..787a912175 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/MutableLogEvent.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/MutableLogEvent.java
@@ -16,6 +16,10 @@
  */
 package org.apache.logging.log4j.core.impl;
 
+import java.io.InvalidObjectException;
+import java.io.ObjectInputStream;
+import java.util.Arrays;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.Marker;
 import org.apache.logging.log4j.ThreadContext;
@@ -33,14 +37,10 @@ import org.apache.logging.log4j.message.ReusableMessage;
 import org.apache.logging.log4j.message.SimpleMessage;
 import org.apache.logging.log4j.message.TimestampMessage;
 import org.apache.logging.log4j.util.ReadOnlyStringMap;
-import org.apache.logging.log4j.util.StringMap;
-import org.apache.logging.log4j.util.Strings;
 import org.apache.logging.log4j.util.StackLocatorUtil;
 import org.apache.logging.log4j.util.StringBuilders;
-
-import java.io.InvalidObjectException;
-import java.io.ObjectInputStream;
-import java.util.Arrays;
+import org.apache.logging.log4j.util.StringMap;
+import org.apache.logging.log4j.util.Strings;
 
 /**
  * Mutable implementation of the {@code LogEvent} interface.
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java
index d00a6d6d95..00a35f32c2 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/AbstractStringLayout.java
@@ -16,6 +16,9 @@
  */
 package org.apache.logging.log4j.core.layout;
 
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.StringLayout;
 import org.apache.logging.log4j.core.config.Configuration;
@@ -26,12 +29,9 @@ import org.apache.logging.log4j.core.util.StringEncoder;
 import org.apache.logging.log4j.plugins.PluginBuilderAttribute;
 import org.apache.logging.log4j.plugins.PluginElement;
 import org.apache.logging.log4j.spi.AbstractLogger;
-import org.apache.logging.log4j.util.Strings;
 import org.apache.logging.log4j.util.PropertiesUtil;
 import org.apache.logging.log4j.util.StringBuilders;
-
-import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
+import org.apache.logging.log4j.util.Strings;
 
 /**
  * Abstract base class for Layouts that result in a String.
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java
index e20ffd61a7..86c83e40eb 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java
@@ -16,6 +16,12 @@
  */
 package org.apache.logging.log4j.core.layout;
 
+import java.nio.charset.Charset;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.logging.log4j.core.Layout;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.config.Configuration;
@@ -31,15 +37,9 @@ import org.apache.logging.log4j.plugins.Plugin;
 import org.apache.logging.log4j.plugins.PluginBuilderAttribute;
 import org.apache.logging.log4j.plugins.PluginElement;
 import org.apache.logging.log4j.plugins.PluginFactory;
+import org.apache.logging.log4j.util.PropertiesUtil;
 import org.apache.logging.log4j.util.PropertyEnvironment;
 import org.apache.logging.log4j.util.Strings;
-import org.apache.logging.log4j.util.PropertiesUtil;
-
-import java.nio.charset.Charset;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
 
 /**
  * A flexible layout configurable with pattern string.
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/Rfc5424Layout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/Rfc5424Layout.java
index bed7602c95..f18b58025c 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/Rfc5424Layout.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/Rfc5424Layout.java
@@ -16,6 +16,19 @@
  */
 package org.apache.logging.log4j.core.layout;
 
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.GregorianCalendar;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.SortedMap;
+import java.util.TreeMap;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LoggingException;
 import org.apache.logging.log4j.core.Layout;
@@ -49,19 +62,6 @@ import org.apache.logging.log4j.plugins.PluginFactory;
 import org.apache.logging.log4j.util.StringBuilders;
 import org.apache.logging.log4j.util.Strings;
 
-import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.GregorianCalendar;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.SortedMap;
-import java.util.TreeMap;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
 /**
  * Formats a log event in accordance with RFC 5424.
  *
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/JmxRuntimeInputArgumentsLookup.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/JmxRuntimeInputArgumentsLookup.java
index 083b355069..848b646f64 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/JmxRuntimeInputArgumentsLookup.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/JmxRuntimeInputArgumentsLookup.java
@@ -16,15 +16,15 @@
  */
 package org.apache.logging.log4j.core.lookup;
 
+import java.lang.management.ManagementFactory;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.plugins.Plugin;
 import org.apache.logging.log4j.plugins.PluginFactory;
 import org.apache.logging.log4j.util.Lazy;
 
-import java.lang.management.ManagementFactory;
-import java.util.List;
-import java.util.Map;
-
 /**
  * Maps JVM input arguments (but not main arguments) using JMX to acquire JVM arguments.
  *
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/message/ExtendedThreadInformation.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/message/ExtendedThreadInformation.java
index 0ec02d5034..af7bf8b833 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/message/ExtendedThreadInformation.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/message/ExtendedThreadInformation.java
@@ -16,13 +16,13 @@
  */
 package org.apache.logging.log4j.core.message;
 
-import org.apache.logging.log4j.message.ThreadInformation;
-import org.apache.logging.log4j.util.StringBuilders;
-
 import java.lang.management.LockInfo;
 import java.lang.management.MonitorInfo;
 import java.lang.management.ThreadInfo;
 
+import org.apache.logging.log4j.message.ThreadInformation;
+import org.apache.logging.log4j.util.StringBuilders;
+
 /**
  * Provides information on locks and monitors in the thread dump. This class requires Java 1.6 to compile and
  * run.
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UrlConnectionFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UrlConnectionFactory.java
index d60753a920..445cfe356c 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UrlConnectionFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UrlConnectionFactory.java
@@ -16,16 +16,6 @@
  */
 package org.apache.logging.log4j.core.net;
 
-import org.apache.logging.log4j.core.config.ConfigurationFactory;
-import org.apache.logging.log4j.core.net.ssl.LaxHostnameVerifier;
-import org.apache.logging.log4j.core.net.ssl.SslConfiguration;
-import org.apache.logging.log4j.core.net.ssl.SslConfigurationFactory;
-import org.apache.logging.log4j.core.util.AuthorizationProvider;
-import org.apache.logging.log4j.util.PropertiesUtil;
-import org.apache.logging.log4j.util.PropertyEnvironment;
-import org.apache.logging.log4j.util.Strings;
-
-import javax.net.ssl.HttpsURLConnection;
 import java.io.IOException;
 import java.net.HttpURLConnection;
 import java.net.JarURLConnection;
@@ -35,6 +25,16 @@ import java.net.URLConnection;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Locale;
+import javax.net.ssl.HttpsURLConnection;
+
+import org.apache.logging.log4j.core.config.ConfigurationFactory;
+import org.apache.logging.log4j.core.net.ssl.LaxHostnameVerifier;
+import org.apache.logging.log4j.core.net.ssl.SslConfiguration;
+import org.apache.logging.log4j.core.net.ssl.SslConfigurationFactory;
+import org.apache.logging.log4j.core.util.AuthorizationProvider;
+import org.apache.logging.log4j.util.PropertiesUtil;
+import org.apache.logging.log4j.util.PropertyEnvironment;
+import org.apache.logging.log4j.util.Strings;
 
 /**
  * Constructs an HTTPURLConnection. This class should be considered to be internal
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/osgi/Activator.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/osgi/Activator.java
index ac85302cd1..9ae5aa3dc1 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/osgi/Activator.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/osgi/Activator.java
@@ -14,9 +14,12 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.core.osgi;
 
+import java.util.Hashtable;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicReference;
+
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.core.util.Constants;
 import org.apache.logging.log4j.core.util.ContextDataProvider;
@@ -33,10 +36,6 @@ import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceRegistration;
 import org.osgi.framework.wiring.BundleWiring;
 
-import java.util.Hashtable;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicReference;
-
 /**
  * OSGi BundleActivator.
  */
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/AnsiEscape.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/AnsiEscape.java
index 73683619d3..c83123453e 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/AnsiEscape.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/AnsiEscape.java
@@ -16,14 +16,14 @@
  */
 package org.apache.logging.log4j.core.pattern;
 
-import org.apache.logging.log4j.core.util.Patterns;
-import org.apache.logging.log4j.util.EnglishEnums;
-
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Locale;
 import java.util.Map;
 
+import org.apache.logging.log4j.core.util.Patterns;
+import org.apache.logging.log4j.util.EnglishEnums;
+
 /**
  * Converts text into ANSI escape sequences.
  * <p>
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/EqualsBaseReplacementConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/EqualsBaseReplacementConverter.java
index ef2c105843..df4571a7f9 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/EqualsBaseReplacementConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/EqualsBaseReplacementConverter.java
@@ -16,11 +16,11 @@
  */
 package org.apache.logging.log4j.core.pattern;
 
+import java.util.List;
+
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.util.PerformanceSensitive;
 
-import java.util.List;
-
 /**
  * Equals pattern converter.
  */
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/HighlightConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/HighlightConverter.java
index d9ca614b07..a8ba3983ce 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/HighlightConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/HighlightConverter.java
@@ -16,20 +16,20 @@
  */
 package org.apache.logging.log4j.core.pattern;
 
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.layout.PatternLayout;
 import org.apache.logging.log4j.plugins.Namespace;
 import org.apache.logging.log4j.plugins.Plugin;
-import org.apache.logging.log4j.util.Strings;
 import org.apache.logging.log4j.util.PerformanceSensitive;
-
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
+import org.apache.logging.log4j.util.Strings;
 
 /**
  * Highlight pattern converter. Formats the result of a pattern using a color appropriate for the Level in the LogEvent.
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/LineSeparatorPatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/LineSeparatorPatternConverter.java
index 62d568c6a4..6ab333d898 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/LineSeparatorPatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/LineSeparatorPatternConverter.java
@@ -19,8 +19,8 @@ package org.apache.logging.log4j.core.pattern;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.plugins.Namespace;
 import org.apache.logging.log4j.plugins.Plugin;
-import org.apache.logging.log4j.util.Strings;
 import org.apache.logging.log4j.util.PerformanceSensitive;
+import org.apache.logging.log4j.util.Strings;
 
 /**
  * Formats a line separator.
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MdcPatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MdcPatternConverter.java
index 814edb54a5..9649886607 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MdcPatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MdcPatternConverter.java
@@ -19,10 +19,10 @@ package org.apache.logging.log4j.core.pattern;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.plugins.Namespace;
 import org.apache.logging.log4j.plugins.Plugin;
-import org.apache.logging.log4j.util.ReadOnlyStringMap;
-import org.apache.logging.log4j.util.TriConsumer;
 import org.apache.logging.log4j.util.PerformanceSensitive;
+import org.apache.logging.log4j.util.ReadOnlyStringMap;
 import org.apache.logging.log4j.util.StringBuilders;
+import org.apache.logging.log4j.util.TriConsumer;
 
 /**
  * Able to handle the contents of the LogEvent's MDC and either
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MessagePatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MessagePatternConverter.java
index 7fbcfdb6ee..0e595aa065 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MessagePatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/MessagePatternConverter.java
@@ -16,6 +16,10 @@
  */
 package org.apache.logging.log4j.core.pattern;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.util.Loader;
@@ -25,13 +29,9 @@ import org.apache.logging.log4j.plugins.Namespace;
 import org.apache.logging.log4j.plugins.Plugin;
 import org.apache.logging.log4j.status.StatusLogger;
 import org.apache.logging.log4j.util.MultiFormatStringBuilderFormattable;
+import org.apache.logging.log4j.util.PerformanceSensitive;
 import org.apache.logging.log4j.util.StringBuilderFormattable;
 import org.apache.logging.log4j.util.Strings;
-import org.apache.logging.log4j.util.PerformanceSensitive;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Locale;
 
 /**
  * Returns the event's rendered message in a StringBuilder.
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/NameAbbreviator.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/NameAbbreviator.java
index cfec788cdb..02997ed046 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/NameAbbreviator.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/NameAbbreviator.java
@@ -16,11 +16,11 @@
  */
 package org.apache.logging.log4j.core.pattern;
 
-import org.apache.logging.log4j.util.PerformanceSensitive;
-
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.logging.log4j.util.PerformanceSensitive;
+
 
 /**
  * NameAbbreviator generates abbreviated logger and class names.
@@ -260,7 +260,7 @@ public abstract class NameAbbreviator {
      * Fragment of an pattern abbreviator.
      */
     private static final class PatternAbbreviatorFragment {
-        
+
         static final PatternAbbreviatorFragment[] EMPTY_ARRAY = {};
 
         /**
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/PatternParser.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/PatternParser.java
index cbf003d62e..1ee7c43d47 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/PatternParser.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/PatternParser.java
@@ -16,6 +16,15 @@
  */
 package org.apache.logging.log4j.core.pattern;
 
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.time.SystemNanoClock;
@@ -26,15 +35,6 @@ import org.apache.logging.log4j.plugins.model.PluginType;
 import org.apache.logging.log4j.status.StatusLogger;
 import org.apache.logging.log4j.util.Strings;
 
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-
 /**
  * Most of the work of the {@link org.apache.logging.log4j.core.layout.PatternLayout} class is delegated to the
  * PatternParser class.
@@ -466,16 +466,16 @@ public final class PatternParser {
 
                 default:
 
-	                if (c >= '0' && c <= '9') {
-	                    formattingInfo = new FormattingInfo(formattingInfo.isLeftAligned(), formattingInfo.getMinLength(),
-	                            c - '0', formattingInfo.isLeftTruncate(), formattingInfo.isZeroPad());
-	                    state = ParserState.MAX_STATE;
-	                } else {
-	                    LOGGER.error("Error occurred in position " + i + ".\n Was expecting digit, instead got char \"" + c
-	                            + "\".");
+                    if (c >= '0' && c <= '9') {
+                        formattingInfo = new FormattingInfo(formattingInfo.isLeftAligned(), formattingInfo.getMinLength(),
+                                c - '0', formattingInfo.isLeftTruncate(), formattingInfo.isZeroPad());
+                        state = ParserState.MAX_STATE;
+                    } else {
+                        LOGGER.error("Error occurred in position " + i + ".\n Was expecting digit, instead got char \"" + c
+                                + "\".");
 
-	                    state = ParserState.LITERAL_STATE;
-	                }
+                        state = ParserState.LITERAL_STATE;
+                    }
                 }
 
                 break;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/RelativeTimePatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/RelativeTimePatternConverter.java
index 8687c27782..5c8cd68a3e 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/RelativeTimePatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/RelativeTimePatternConverter.java
@@ -16,13 +16,13 @@
  */
 package org.apache.logging.log4j.core.pattern;
 
+import java.lang.management.ManagementFactory;
+
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.plugins.Namespace;
 import org.apache.logging.log4j.plugins.Plugin;
 import org.apache.logging.log4j.util.PerformanceSensitive;
 
-import java.lang.management.ManagementFactory;
-
 /**
  * Returns the relative time in milliseconds since JVM Startup.
  */
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/RepeatPatternConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/RepeatPatternConverter.java
index b07b30ecee..59d6a8d8f2 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/RepeatPatternConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/RepeatPatternConverter.java
@@ -20,8 +20,8 @@ import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.plugins.Namespace;
 import org.apache.logging.log4j.plugins.Plugin;
-import org.apache.logging.log4j.util.Strings;
 import org.apache.logging.log4j.util.PerformanceSensitive;
+import org.apache.logging.log4j.util.Strings;
 
 /**
  * Equals pattern converter.
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/BasicContextSelector.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/BasicContextSelector.java
index e814928a27..4d3e029975 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/BasicContextSelector.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/BasicContextSelector.java
@@ -1,117 +1,117 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * 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 "License"); you may not use this file except in compliance with
- * 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.
- */
-package org.apache.logging.log4j.core.selector;
-
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.core.LoggerContext;
-import org.apache.logging.log4j.core.impl.ContextAnchor;
-import org.apache.logging.log4j.plugins.Inject;
-import org.apache.logging.log4j.plugins.Singleton;
-import org.apache.logging.log4j.plugins.di.Injector;
-import org.apache.logging.log4j.spi.LoggerContextShutdownAware;
-import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.Lazy;
-
-import java.net.URI;
-import java.util.List;
-import java.util.concurrent.TimeUnit;
-
-/**
- * Returns either this Thread's context or the default LoggerContext.
- */
-@Singleton
-public class BasicContextSelector implements ContextSelector, LoggerContextShutdownAware {
-
-    private static final Logger LOGGER = StatusLogger.getLogger();
-
-    protected final Lazy<LoggerContext> context = Lazy.lazy(this::createContext);
-    protected final Injector injector;
-
-    @Inject
-    public BasicContextSelector(final Injector injector) {
-        this.injector = injector;
-    }
-
-    @Override
-    public void shutdown(final String fqcn, final ClassLoader loader, final boolean currentContext, final boolean allContexts) {
-        final LoggerContext ctx = getContext(fqcn, loader, currentContext);
-        if (ctx != null && ctx.isStarted()) {
-            ctx.stop(DEFAULT_STOP_TIMEOUT, TimeUnit.MILLISECONDS);
-        }
-    }
-
-    @Override
-    public void contextShutdown(org.apache.logging.log4j.spi.LoggerContext loggerContext) {
-        if (loggerContext instanceof LoggerContext) {
-            removeContext((LoggerContext) loggerContext);
-        }
-    }
-
-    @Override
-    public boolean hasContext(final String fqcn, final ClassLoader loader, final boolean currentContext) {
-        final LoggerContext ctx = getContext(fqcn, loader, currentContext);
-        return ctx != null && ctx.isStarted();
-    }
-
-    @Override
-    public LoggerContext getContext(final String fqcn, final ClassLoader loader, final boolean currentContext) {
-        return getContext(fqcn, loader, currentContext, null);
-    }
-
-    @Override
-    public LoggerContext getContext(final String fqcn, final ClassLoader loader, final boolean currentContext,
-            final URI configLocation) {
-        if (currentContext) {
-            final LoggerContext ctx = ContextAnchor.THREAD_CONTEXT.get();
-            if (ctx != null) {
-                return ctx;
-            }
-        }
-        final LoggerContext ctx = context.get();
-        if (configLocation != null) {
-            if (ctx.getConfigLocation() == null) {
-                LOGGER.debug("Setting configuration to {}", configLocation);
-                ctx.setConfigLocation(configLocation);
-            } else if (!ctx.getConfigLocation().equals(configLocation)) {
-                LOGGER.warn("getContext called with URI {}. Existing LoggerContext has URI {}", configLocation,
-                        ctx.getConfigLocation());
-            }
-        }
-        return ctx;
-    }
-
-    @Override
-    public void removeContext(final LoggerContext context) {
-        if (context == this.context.get()) {
-            this.context.set(null);
-        }
-    }
-
-    @Override
-    public boolean isClassLoaderDependent() {
-        return false;
-    }
-
-    @Override
-    public List<LoggerContext> getLoggerContexts() {
-        return List.of(context.value());
-    }
-
-    protected LoggerContext createContext() {
-        return new LoggerContext("Default", null, (URI) null, injector);
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * 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 "License"); you may not use this file except in compliance with
+ * 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.
+ */
+package org.apache.logging.log4j.core.selector;
+
+import java.net.URI;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.core.LoggerContext;
+import org.apache.logging.log4j.core.impl.ContextAnchor;
+import org.apache.logging.log4j.plugins.Inject;
+import org.apache.logging.log4j.plugins.Singleton;
+import org.apache.logging.log4j.plugins.di.Injector;
+import org.apache.logging.log4j.spi.LoggerContextShutdownAware;
+import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.util.Lazy;
+
+/**
+ * Returns either this Thread's context or the default LoggerContext.
+ */
+@Singleton
+public class BasicContextSelector implements ContextSelector, LoggerContextShutdownAware {
+
+    private static final Logger LOGGER = StatusLogger.getLogger();
+
+    protected final Lazy<LoggerContext> context = Lazy.lazy(this::createContext);
+    protected final Injector injector;
+
+    @Inject
+    public BasicContextSelector(final Injector injector) {
+        this.injector = injector;
+    }
+
+    @Override
+    public void shutdown(final String fqcn, final ClassLoader loader, final boolean currentContext, final boolean allContexts) {
+        final LoggerContext ctx = getContext(fqcn, loader, currentContext);
+        if (ctx != null && ctx.isStarted()) {
+            ctx.stop(DEFAULT_STOP_TIMEOUT, TimeUnit.MILLISECONDS);
+        }
+    }
+
+    @Override
+    public void contextShutdown(org.apache.logging.log4j.spi.LoggerContext loggerContext) {
+        if (loggerContext instanceof LoggerContext) {
+            removeContext((LoggerContext) loggerContext);
+        }
+    }
+
+    @Override
+    public boolean hasContext(final String fqcn, final ClassLoader loader, final boolean currentContext) {
+        final LoggerContext ctx = getContext(fqcn, loader, currentContext);
+        return ctx != null && ctx.isStarted();
+    }
+
+    @Override
+    public LoggerContext getContext(final String fqcn, final ClassLoader loader, final boolean currentContext) {
+        return getContext(fqcn, loader, currentContext, null);
+    }
+
+    @Override
+    public LoggerContext getContext(final String fqcn, final ClassLoader loader, final boolean currentContext,
+            final URI configLocation) {
+        if (currentContext) {
+            final LoggerContext ctx = ContextAnchor.THREAD_CONTEXT.get();
+            if (ctx != null) {
+                return ctx;
+            }
+        }
+        final LoggerContext ctx = context.get();
+        if (configLocation != null) {
+            if (ctx.getConfigLocation() == null) {
+                LOGGER.debug("Setting configuration to {}", configLocation);
+                ctx.setConfigLocation(configLocation);
+            } else if (!ctx.getConfigLocation().equals(configLocation)) {
+                LOGGER.warn("getContext called with URI {}. Existing LoggerContext has URI {}", configLocation,
+                        ctx.getConfigLocation());
+            }
+        }
+        return ctx;
+    }
+
+    @Override
+    public void removeContext(final LoggerContext context) {
+        if (context == this.context.get()) {
+            this.context.set(null);
+        }
+    }
+
+    @Override
+    public boolean isClassLoaderDependent() {
+        return false;
+    }
+
+    @Override
+    public List<LoggerContext> getLoggerContexts() {
+        return List.of(context.value());
+    }
+
+    protected LoggerContext createContext() {
+        return new LoggerContext("Default", null, (URI) null, injector);
+    }
+}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/ClassLoaderContextSelector.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/ClassLoaderContextSelector.java
index c912000892..f5f91b7383 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/ClassLoaderContextSelector.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/ClassLoaderContextSelector.java
@@ -16,16 +16,6 @@
  */
 package org.apache.logging.log4j.core.selector;
 
-import org.apache.logging.log4j.core.LoggerContext;
-import org.apache.logging.log4j.core.impl.ContextAnchor;
-import org.apache.logging.log4j.plugins.Inject;
-import org.apache.logging.log4j.plugins.Singleton;
-import org.apache.logging.log4j.plugins.di.Injector;
-import org.apache.logging.log4j.spi.LoggerContextShutdownAware;
-import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.Lazy;
-import org.apache.logging.log4j.util.StackLocatorUtil;
-
 import java.lang.ref.WeakReference;
 import java.net.URI;
 import java.util.ArrayList;
@@ -37,6 +27,16 @@ import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
 
+import org.apache.logging.log4j.core.LoggerContext;
+import org.apache.logging.log4j.core.impl.ContextAnchor;
+import org.apache.logging.log4j.plugins.Inject;
+import org.apache.logging.log4j.plugins.Singleton;
+import org.apache.logging.log4j.plugins.di.Injector;
+import org.apache.logging.log4j.spi.LoggerContextShutdownAware;
+import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.util.Lazy;
+import org.apache.logging.log4j.util.StackLocatorUtil;
+
 /**
  * This ContextSelector chooses a LoggerContext based upon the ClassLoader of the caller. This allows Loggers assigned
  * to static variables to be released along with the classes that own then. Other ContextSelectors will generally cause
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/time/InstantFormatter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/time/InstantFormatter.java
index f467240902..b83bde1739 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/time/InstantFormatter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/time/InstantFormatter.java
@@ -16,11 +16,6 @@
  */
 package org.apache.logging.log4j.core.time;
 
-import org.apache.logging.log4j.core.time.internal.format.FastDateFormat;
-import org.apache.logging.log4j.core.time.internal.format.FixedDateFormat;
-import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.Strings;
-
 import java.time.format.DateTimeFormatter;
 import java.util.Arrays;
 import java.util.Calendar;
@@ -28,6 +23,11 @@ import java.util.Locale;
 import java.util.Objects;
 import java.util.TimeZone;
 
+import org.apache.logging.log4j.core.time.internal.format.FastDateFormat;
+import org.apache.logging.log4j.core.time.internal.format.FixedDateFormat;
+import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.util.Strings;
+
 /**
  * A composite {@link Instant} formatter trying to employ either {@link FixedDateFormat}, {@link FastDateFormat}, or {@link DateTimeFormatter} in the given order due to performance reasons.
  * <p>
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/time/MutableInstant.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/time/MutableInstant.java
index 1bd20f3e78..1737cf326e 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/time/MutableInstant.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/time/MutableInstant.java
@@ -16,8 +16,6 @@
  */
 package org.apache.logging.log4j.core.time;
 
-import org.apache.logging.log4j.util.PerformanceSensitive;
-
 import java.io.Serializable;
 import java.time.temporal.ChronoField;
 import java.time.temporal.TemporalAccessor;
@@ -27,6 +25,8 @@ import java.time.temporal.TemporalQuery;
 import java.time.temporal.UnsupportedTemporalTypeException;
 import java.time.temporal.ValueRange;
 
+import org.apache.logging.log4j.util.PerformanceSensitive;
+
 import static java.time.temporal.ChronoField.*;
 import static java.time.temporal.ChronoUnit.NANOS;
 
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/CachedClock.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/CachedClock.java
index 312ec10f98..31809604f7 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/CachedClock.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/CachedClock.java
@@ -16,13 +16,13 @@
  */
 package org.apache.logging.log4j.core.time.internal;
 
+import java.util.concurrent.locks.LockSupport;
+
 import org.apache.logging.log4j.core.time.Clock;
 import org.apache.logging.log4j.core.util.Log4jThread;
 import org.apache.logging.log4j.plugins.Factory;
 import org.apache.logging.log4j.util.Lazy;
 
-import java.util.concurrent.locks.LockSupport;
-
 /**
  * Implementation of the {@code Clock} interface that tracks the time in a
  * private long field that is updated by a background thread once every
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/CoarseCachedClock.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/CoarseCachedClock.java
index e8bb95d6b0..1923c113eb 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/CoarseCachedClock.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/time/internal/CoarseCachedClock.java
@@ -16,12 +16,12 @@
  */
 package org.apache.logging.log4j.core.time.internal;
 
+import java.util.concurrent.locks.LockSupport;
+
 import org.apache.logging.log4j.core.time.Clock;
 import org.apache.logging.log4j.core.util.Log4jThread;
 import org.apache.logging.log4j.util.Lazy;
 
-import java.util.concurrent.locks.LockSupport;
-
 /**
  * This Clock implementation is similar to CachedClock. It is slightly faster at
  * the cost of some accuracy.
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/BasicAuthorizationProvider.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/BasicAuthorizationProvider.java
index 5a35fbf696..287fbf9cc2 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/BasicAuthorizationProvider.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/BasicAuthorizationProvider.java
@@ -16,13 +16,13 @@
  */
 package org.apache.logging.log4j.core.util;
 
+import java.net.URLConnection;
+import java.util.Base64;
+
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.PropertyEnvironment;
 import org.apache.logging.log4j.util.LoaderUtil;
-
-import java.net.URLConnection;
-import java.util.Base64;
+import org.apache.logging.log4j.util.PropertyEnvironment;
 
 /**
  * Provides the Basic Authorization header to a request.
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Loader.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Loader.java
index ee2ecc3c6d..d5aa464078 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Loader.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Loader.java
@@ -16,15 +16,15 @@
  */
 package org.apache.logging.log4j.core.util;
 
+import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
+import java.net.URL;
+
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.status.StatusLogger;
 import org.apache.logging.log4j.util.LoaderUtil;
 import org.apache.logging.log4j.util.PropertiesUtil;
 
-import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
-import java.net.URL;
-
 /**
  * Load resources (or images) from various sources.
  */
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/OptionConverter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/OptionConverter.java
index a85b79858a..ad1d1f6580 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/OptionConverter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/OptionConverter.java
@@ -16,18 +16,18 @@
  */
 package org.apache.logging.log4j.core.util;
 
-import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.Strings;
-import org.apache.logging.log4j.util.PropertiesUtil;
-
 import java.io.InterruptedIOException;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
 import java.util.Properties;
 
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.util.PropertiesUtil;
+import org.apache.logging.log4j.util.Strings;
+
 /**
  * A convenience class to convert property values to specific types.
  */
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Watcher.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Watcher.java
index b020a5ea54..cf085db5f1 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Watcher.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Watcher.java
@@ -16,14 +16,14 @@
  */
 package org.apache.logging.log4j.core.util;
 
+import java.util.List;
+
 import org.apache.logging.log4j.core.config.ConfigurationListener;
 import org.apache.logging.log4j.core.config.Reconfigurable;
 import org.apache.logging.log4j.plugins.Namespace;
 import org.apache.logging.log4j.plugins.di.Key;
 import org.apache.logging.log4j.plugins.model.PluginNamespace;
 
-import java.util.List;
-
 /**
  * Watches for changes in a Source and performs an action when it is modified.
  *
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatcherFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatcherFactory.java
index 07b5d7fa0e..3aff76f6b1 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatcherFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/WatcherFactory.java
@@ -16,6 +16,11 @@
  */
 package org.apache.logging.log4j.core.util;
 
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.util.List;
+import java.util.Objects;
+
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.config.ConfigurationFileWatcher;
@@ -25,11 +30,6 @@ import org.apache.logging.log4j.plugins.model.PluginNamespace;
 import org.apache.logging.log4j.plugins.model.PluginType;
 import org.apache.logging.log4j.status.StatusLogger;
 
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.util.List;
-import java.util.Objects;
-
 /**
  * Creates Watchers of various types.
  */
diff --git a/log4j-couchdb/src/main/java/org/apache/logging/log4j/couchdb/CouchDbProvider.java b/log4j-couchdb/src/main/java/org/apache/logging/log4j/couchdb/CouchDbProvider.java
index e588d22f62..2f81f9cdec 100644
--- a/log4j-couchdb/src/main/java/org/apache/logging/log4j/couchdb/CouchDbProvider.java
+++ b/log4j-couchdb/src/main/java/org/apache/logging/log4j/couchdb/CouchDbProvider.java
@@ -16,6 +16,8 @@
  */
 package org.apache.logging.log4j.couchdb;
 
+import java.lang.reflect.Method;
+
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.core.appender.nosql.NoSqlProvider;
 import org.apache.logging.log4j.plugins.Configurable;
@@ -27,14 +29,12 @@ import org.apache.logging.log4j.plugins.di.Injector;
 import org.apache.logging.log4j.plugins.validation.constraints.ValidHost;
 import org.apache.logging.log4j.plugins.validation.constraints.ValidPort;
 import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.Strings;
 import org.apache.logging.log4j.util.Cast;
 import org.apache.logging.log4j.util.LoaderUtil;
+import org.apache.logging.log4j.util.Strings;
 import org.lightcouch.CouchDbClient;
 import org.lightcouch.CouchDbProperties;
 
-import java.lang.reflect.Method;
-
 /**
  * The Apache CouchDB implementation of {@link NoSqlProvider}.
  */
diff --git a/log4j-csv/src/test/java/org/apache/logging/log4j/csv/layout/CsvLogEventLayoutTest.java b/log4j-csv/src/test/java/org/apache/logging/log4j/csv/layout/CsvLogEventLayoutTest.java
index ab63cc6e3a..228b6e7d4d 100644
--- a/log4j-csv/src/test/java/org/apache/logging/log4j/csv/layout/CsvLogEventLayoutTest.java
+++ b/log4j-csv/src/test/java/org/apache/logging/log4j/csv/layout/CsvLogEventLayoutTest.java
@@ -16,6 +16,10 @@
  */
 package org.apache.logging.log4j.csv.layout;
 
+import java.nio.charset.StandardCharsets;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.commons.csv.CSVFormat;
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.core.Appender;
@@ -30,10 +34,6 @@ import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
-import java.nio.charset.StandardCharsets;
-import java.util.List;
-import java.util.Map;
-
 import static org.junit.jupiter.api.Assertions.*;
 
 /**
diff --git a/log4j-docker/src/main/java/org/apache/logging/log4j/docker/DockerLookup.java b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/DockerLookup.java
index 33a8e13f42..fd08740bbe 100644
--- a/log4j-docker/src/main/java/org/apache/logging/log4j/docker/DockerLookup.java
+++ b/log4j-docker/src/main/java/org/apache/logging/log4j/docker/DockerLookup.java
@@ -16,8 +16,11 @@
  */
 package org.apache.logging.log4j.docker;
 
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import java.io.IOException;
+import java.net.URL;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.lookup.AbstractLookup;
@@ -27,13 +30,11 @@ import org.apache.logging.log4j.docker.model.Container;
 import org.apache.logging.log4j.docker.model.Network;
 import org.apache.logging.log4j.plugins.Plugin;
 import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.PropertyEnvironment;
 import org.apache.logging.log4j.util.PropertiesUtil;
+import org.apache.logging.log4j.util.PropertyEnvironment;
 
-import java.io.IOException;
-import java.net.URL;
-import java.util.List;
-import java.util.Map;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
 
 /**
  * Looks up keys for a Docker container.
diff --git a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAppender.java b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAppender.java
index e441801f83..788a070109 100644
--- a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAppender.java
+++ b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeAppender.java
@@ -16,6 +16,10 @@
  */
 package org.apache.logging.log4j.flume.appender;
 
+import java.io.Serializable;
+import java.util.Locale;
+import java.util.concurrent.TimeUnit;
+
 import org.apache.logging.log4j.core.Appender;
 import org.apache.logging.log4j.core.Filter;
 import org.apache.logging.log4j.core.Layout;
@@ -35,10 +39,6 @@ import org.apache.logging.log4j.plugins.PluginFactory;
 import org.apache.logging.log4j.plugins.di.Injector;
 import org.apache.logging.log4j.util.Timer;
 
-import java.io.Serializable;
-import java.util.Locale;
-import java.util.concurrent.TimeUnit;
-
 /**
  * An Appender that uses the Avro protocol to route events to Flume.
  */
diff --git a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedManager.java b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedManager.java
index db570f3c50..90593b17a8 100644
--- a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedManager.java
+++ b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedManager.java
@@ -1,290 +1,290 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * 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 "License"); you may not use this file except in compliance with
- * 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.
- */
-package org.apache.logging.log4j.flume.appender;
-
-import org.apache.flume.Event;
-import org.apache.flume.EventDeliveryException;
-import org.apache.flume.agent.embedded.EmbeddedAgent;
-import org.apache.logging.log4j.LoggingException;
-import org.apache.logging.log4j.core.appender.ManagerFactory;
-import org.apache.logging.log4j.core.config.ConfigurationException;
-import org.apache.logging.log4j.core.config.Property;
-import org.apache.logging.log4j.util.Strings;
-import org.apache.logging.log4j.util.NameUtil;
-import org.apache.logging.log4j.util.PropertiesUtil;
-
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
-/**
- *
- */
-public class FlumeEmbeddedManager extends AbstractFlumeManager {
-
-    private static final String FILE_SEP = PropertiesUtil.getProperties().getStringProperty("file.separator");
-
-    private static final String IN_MEMORY = "InMemory";
-
-    private static final FlumeManagerFactory factory = new FlumeManagerFactory();
-
-    private final EmbeddedAgent agent;
-
-    private final String shortName;
-
-
-    /**
-     * Constructor
-     * @param name The unique name of this manager.
-     * @param shortName The short version of the agent name.
-     * @param agent The embedded agent.
-     */
-    protected FlumeEmbeddedManager(final String name, final String shortName, final EmbeddedAgent agent) {
-        super(name);
-        this.agent = agent;
-        this.shortName = shortName;
-    }
-
-    /**
-     * Returns a FlumeEmbeddedManager.
-     * @param name The name of the manager.
-     * @param agents The agents to use.
-     * @param properties Properties for the embedded manager.
-     * @param batchSize The number of events to include in a batch.
-     * @param dataDir The directory where the Flume FileChannel should write to.
-     * @return A FlumeAvroManager.
-     */
-    public static FlumeEmbeddedManager getManager(final String name, final Agent[] agents, final Property[] properties,
-                                                  int batchSize, final String dataDir) {
-
-        if (batchSize <= 0) {
-            batchSize = 1;
-        }
-
-        if ((agents == null || agents.length == 0) && (properties == null || properties.length == 0)) {
-            throw new IllegalArgumentException("Either an Agent or properties are required");
-        } else if (agents != null && agents.length > 0 && properties != null && properties.length > 0) {
-            throw new IllegalArgumentException("Cannot configure both Agents and Properties.");
-        }
-
-        final String managerName = createManagerName(name, agents, properties);
-        return getManager(managerName, factory,
-                new FactoryData(name, agents, properties, batchSize, dataDir));
-
-    }
-
-    private static String createManagerName(
-            final String name,
-            final Agent[] agents,
-            final Property[] properties) {
-
-        final StringBuilder sb = new StringBuilder();
-        boolean first = true;
-
-        if (agents != null && agents.length > 0) {
-            sb.append(name).append('[');
-            for (final Agent agent : agents) {
-                if (!first) {
-                    sb.append('_');
-                }
-                sb.append(agent.getHost()).append('-').append(agent.getPort());
-                first = false;
-            }
-            sb.append(']');
-        } else {
-            String sep = Strings.EMPTY;
-            sb.append(name).append('-');
-            final StringBuilder props = new StringBuilder();
-            for (final Property prop : properties) {
-                props.append(sep);
-                props.append(prop.getName()).append('=').append(prop.getValue());
-                sep = "_";
-            }
-            sb.append(NameUtil.md5(props.toString()));
-        }
-
-        return sb.toString();
-
-    }
-
-    @Override
-    public void send(final Event event) {
-        try {
-            agent.put(event);
-        } catch (final EventDeliveryException ex) {
-            throw new LoggingException("Unable to deliver event to Flume Appender " + shortName, ex);
-        }
-    }
-
-    @Override
-    protected boolean releaseSub(final long timeout, final TimeUnit timeUnit) {
-        agent.stop();
-        return true;
-    }
-
-    /**
-     * Factory data.
-     */
-    private static class FactoryData {
-        private final Agent[] agents;
-        private final Property[] properties;
-        private final int batchSize;
-        private final String dataDir;
-        private final String name;
-
-        /**
-         * Constructor.
-         * @param name The name of the Appender.
-         * @param agents The agents.
-         * @param properties The Flume configuration properties.
-         * @param batchSize The number of events to include in a batch.
-         * @param dataDir The directory where Flume should write to.
-         */
-        public FactoryData(final String name, final Agent[] agents, final Property[] properties, final int batchSize,
-                           final String dataDir) {
-            this.name = name;
-            this.agents = agents;
-            this.batchSize = batchSize;
-            this.properties = properties;
-            this.dataDir = dataDir;
-        }
-    }
-
-    /**
-     * Avro Manager Factory.
-     */
-    private static class FlumeManagerFactory implements ManagerFactory<FlumeEmbeddedManager, FactoryData> {
-
-        /**
-         * Create the FlumeAvroManager.
-         * @param name The name of the entity to manage.
-         * @param data The data required to create the entity.
-         * @return The FlumeAvroManager.
-         */
-        @Override
-        public FlumeEmbeddedManager createManager(final String name, final FactoryData data) {
-            try {
-                final Map<String, String> props = createProperties(data.name, data.agents, data.properties,
-                    data.batchSize, data.dataDir);
-                final EmbeddedAgent agent = new EmbeddedAgent(name);
-                agent.configure(props);
-                agent.start();
-                LOGGER.debug("Created Agent " + name);
-                return new FlumeEmbeddedManager(name, data.name, agent);
-            } catch (final Exception ex) {
-                LOGGER.error("Could not create FlumeEmbeddedManager", ex);
-            }
-            return null;
-        }
-
-        private Map<String, String> createProperties(final String name, final Agent[] agents,
-                                                     final Property[] properties, final int batchSize, String dataDir) {
-            final Map<String, String> props = new HashMap<>();
-
-            if ((agents == null || agents.length == 0) && (properties == null || properties.length == 0)) {
-                LOGGER.error("No Flume configuration provided");
-                throw new ConfigurationException("No Flume configuration provided");
-            }
-
-            if (agents != null && agents.length > 0 && properties != null && properties.length > 0) {
-                LOGGER.error("Agents and Flume configuration cannot both be specified");
-                throw new ConfigurationException("Agents and Flume configuration cannot both be specified");
-            }
-
-            if (agents != null && agents.length > 0) {
-
-                if (Strings.isNotEmpty(dataDir)) {
-                    if (dataDir.equals(IN_MEMORY)) {
-                        props.put("channel.type", "memory");
-                    } else {
-                        props.put("channel.type", "file");
-
-                        if (!dataDir.endsWith(FILE_SEP)) {
-                            dataDir = dataDir + FILE_SEP;
-                        }
-
-                        props.put("channel.checkpointDir", dataDir + "checkpoint");
-                        props.put("channel.dataDirs", dataDir + "data");
-                    }
-
-                } else {
-                    props.put("channel.type", "file");
-                }
-
-                final StringBuilder sb = new StringBuilder();
-                String leading = Strings.EMPTY;
-                final int priority = agents.length;
-                for (int i = 0; i < priority; ++i) {
-                    sb.append(leading).append("agent").append(i);
-                    leading = " ";
-                    final String prefix = "agent" + i;
-                    props.put(prefix + ".type", "avro");
-                    props.put(prefix + ".hostname", agents[i].getHost());
-                    props.put(prefix + ".port", Integer.toString(agents[i].getPort()));
-                    props.put(prefix + ".batch-size", Integer.toString(batchSize));
-                    props.put("processor.priority." + prefix, Integer.toString(agents.length - i));
-                }
-                props.put("sinks", sb.toString());
-                props.put("processor.type", "failover");
-            } else {
-                String[] sinks = null;
-
-                for (final Property property : properties) {
-                    final String key = property.getName();
-
-                    if (Strings.isEmpty(key)) {
-                        final String msg = "A property name must be provided";
-                        LOGGER.error(msg);
-                        throw new ConfigurationException(msg);
-                    }
-
-                    final String upperKey = key.toUpperCase(Locale.ENGLISH);
-
-                    if (upperKey.startsWith(name.toUpperCase(Locale.ENGLISH))) {
-                        final String msg =
-                            "Specification of the agent name is not allowed in Flume Appender configuration: " + key;
-                        LOGGER.error(msg);
-                        throw new ConfigurationException(msg);
-                    }
-
-                    final String value = property.getValue();
-                    if (Strings.isEmpty(value)) {
-                        final String msg = "A value for property " + key + " must be provided";
-                        LOGGER.error(msg);
-                        throw new ConfigurationException(msg);
-                    }
-
-                    if (upperKey.equals("SINKS")) {
-                        sinks = value.trim().split(" ");
-                    }
-
-                    props.put(key, value);
-                }
-
-                if (sinks == null || sinks.length == 0) {
-                    final String msg = "At least one Sink must be specified";
-                    LOGGER.error(msg);
-                    throw new ConfigurationException(msg);
-                }
-            }
-            return props;
-        }
-
-    }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * 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 "License"); you may not use this file except in compliance with
+ * 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.
+ */
+package org.apache.logging.log4j.flume.appender;
+
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.flume.Event;
+import org.apache.flume.EventDeliveryException;
+import org.apache.flume.agent.embedded.EmbeddedAgent;
+import org.apache.logging.log4j.LoggingException;
+import org.apache.logging.log4j.core.appender.ManagerFactory;
+import org.apache.logging.log4j.core.config.ConfigurationException;
+import org.apache.logging.log4j.core.config.Property;
+import org.apache.logging.log4j.util.NameUtil;
+import org.apache.logging.log4j.util.PropertiesUtil;
+import org.apache.logging.log4j.util.Strings;
+
+/**
+ *
+ */
+public class FlumeEmbeddedManager extends AbstractFlumeManager {
+
+    private static final String FILE_SEP = PropertiesUtil.getProperties().getStringProperty("file.separator");
+
+    private static final String IN_MEMORY = "InMemory";
+
+    private static final FlumeManagerFactory factory = new FlumeManagerFactory();
+
+    private final EmbeddedAgent agent;
+
+    private final String shortName;
+
+
+    /**
+     * Constructor
+     * @param name The unique name of this manager.
+     * @param shortName The short version of the agent name.
+     * @param agent The embedded agent.
+     */
+    protected FlumeEmbeddedManager(final String name, final String shortName, final EmbeddedAgent agent) {
+        super(name);
+        this.agent = agent;
+        this.shortName = shortName;
+    }
+
+    /**
+     * Returns a FlumeEmbeddedManager.
+     * @param name The name of the manager.
+     * @param agents The agents to use.
+     * @param properties Properties for the embedded manager.
+     * @param batchSize The number of events to include in a batch.
+     * @param dataDir The directory where the Flume FileChannel should write to.
+     * @return A FlumeAvroManager.
+     */
+    public static FlumeEmbeddedManager getManager(final String name, final Agent[] agents, final Property[] properties,
+                                                  int batchSize, final String dataDir) {
+
+        if (batchSize <= 0) {
+            batchSize = 1;
+        }
+
+        if ((agents == null || agents.length == 0) && (properties == null || properties.length == 0)) {
+            throw new IllegalArgumentException("Either an Agent or properties are required");
+        } else if (agents != null && agents.length > 0 && properties != null && properties.length > 0) {
+            throw new IllegalArgumentException("Cannot configure both Agents and Properties.");
+        }
+
+        final String managerName = createManagerName(name, agents, properties);
+        return getManager(managerName, factory,
+                new FactoryData(name, agents, properties, batchSize, dataDir));
+
+    }
+
+    private static String createManagerName(
+            final String name,
+            final Agent[] agents,
+            final Property[] properties) {
+
+        final StringBuilder sb = new StringBuilder();
+        boolean first = true;
+
+        if (agents != null && agents.length > 0) {
+            sb.append(name).append('[');
+            for (final Agent agent : agents) {
+                if (!first) {
+                    sb.append('_');
+                }
+                sb.append(agent.getHost()).append('-').append(agent.getPort());
+                first = false;
+            }
+            sb.append(']');
+        } else {
+            String sep = Strings.EMPTY;
+            sb.append(name).append('-');
+            final StringBuilder props = new StringBuilder();
+            for (final Property prop : properties) {
+                props.append(sep);
+                props.append(prop.getName()).append('=').append(prop.getValue());
+                sep = "_";
+            }
+            sb.append(NameUtil.md5(props.toString()));
+        }
+
+        return sb.toString();
+
+    }
+
+    @Override
+    public void send(final Event event) {
+        try {
+            agent.put(event);
+        } catch (final EventDeliveryException ex) {
+            throw new LoggingException("Unable to deliver event to Flume Appender " + shortName, ex);
+        }
+    }
+
+    @Override
+    protected boolean releaseSub(final long timeout, final TimeUnit timeUnit) {
+        agent.stop();
+        return true;
+    }
+
+    /**
+     * Factory data.
+     */
+    private static class FactoryData {
+        private final Agent[] agents;
+        private final Property[] properties;
+        private final int batchSize;
+        private final String dataDir;
+        private final String name;
+
+        /**
+         * Constructor.
+         * @param name The name of the Appender.
+         * @param agents The agents.
+         * @param properties The Flume configuration properties.
+         * @param batchSize The number of events to include in a batch.
+         * @param dataDir The directory where Flume should write to.
+         */
+        public FactoryData(final String name, final Agent[] agents, final Property[] properties, final int batchSize,
+                           final String dataDir) {
+            this.name = name;
+            this.agents = agents;
+            this.batchSize = batchSize;
+            this.properties = properties;
+            this.dataDir = dataDir;
+        }
+    }
+
+    /**
+     * Avro Manager Factory.
+     */
+    private static class FlumeManagerFactory implements ManagerFactory<FlumeEmbeddedManager, FactoryData> {
+
+        /**
+         * Create the FlumeAvroManager.
+         * @param name The name of the entity to manage.
+         * @param data The data required to create the entity.
+         * @return The FlumeAvroManager.
+         */
+        @Override
+        public FlumeEmbeddedManager createManager(final String name, final FactoryData data) {
+            try {
+                final Map<String, String> props = createProperties(data.name, data.agents, data.properties,
+                    data.batchSize, data.dataDir);
+                final EmbeddedAgent agent = new EmbeddedAgent(name);
+                agent.configure(props);
+                agent.start();
+                LOGGER.debug("Created Agent " + name);
+                return new FlumeEmbeddedManager(name, data.name, agent);
+            } catch (final Exception ex) {
+                LOGGER.error("Could not create FlumeEmbeddedManager", ex);
+            }
+            return null;
+        }
+
+        private Map<String, String> createProperties(final String name, final Agent[] agents,
+                                                     final Property[] properties, final int batchSize, String dataDir) {
+            final Map<String, String> props = new HashMap<>();
+
+            if ((agents == null || agents.length == 0) && (properties == null || properties.length == 0)) {
+                LOGGER.error("No Flume configuration provided");
+                throw new ConfigurationException("No Flume configuration provided");
+            }
+
+            if (agents != null && agents.length > 0 && properties != null && properties.length > 0) {
+                LOGGER.error("Agents and Flume configuration cannot both be specified");
+                throw new ConfigurationException("Agents and Flume configuration cannot both be specified");
+            }
+
+            if (agents != null && agents.length > 0) {
+
+                if (Strings.isNotEmpty(dataDir)) {
+                    if (dataDir.equals(IN_MEMORY)) {
+                        props.put("channel.type", "memory");
+                    } else {
+                        props.put("channel.type", "file");
+
+                        if (!dataDir.endsWith(FILE_SEP)) {
+                            dataDir = dataDir + FILE_SEP;
+                        }
+
+                        props.put("channel.checkpointDir", dataDir + "checkpoint");
+                        props.put("channel.dataDirs", dataDir + "data");
+                    }
+
+                } else {
+                    props.put("channel.type", "file");
+                }
+
+                final StringBuilder sb = new StringBuilder();
+                String leading = Strings.EMPTY;
+                final int priority = agents.length;
+                for (int i = 0; i < priority; ++i) {
+                    sb.append(leading).append("agent").append(i);
+                    leading = " ";
+                    final String prefix = "agent" + i;
+                    props.put(prefix + ".type", "avro");
+                    props.put(prefix + ".hostname", agents[i].getHost());
+                    props.put(prefix + ".port", Integer.toString(agents[i].getPort()));
+                    props.put(prefix + ".batch-size", Integer.toString(batchSize));
+                    props.put("processor.priority." + prefix, Integer.toString(agents.length - i));
+                }
+                props.put("sinks", sb.toString());
+                props.put("processor.type", "failover");
+            } else {
+                String[] sinks = null;
+
+                for (final Property property : properties) {
+                    final String key = property.getName();
+
+                    if (Strings.isEmpty(key)) {
+                        final String msg = "A property name must be provided";
+                        LOGGER.error(msg);
+                        throw new ConfigurationException(msg);
+                    }
+
+                    final String upperKey = key.toUpperCase(Locale.ENGLISH);
+
+                    if (upperKey.startsWith(name.toUpperCase(Locale.ENGLISH))) {
+                        final String msg =
+                            "Specification of the agent name is not allowed in Flume Appender configuration: " + key;
+                        LOGGER.error(msg);
+                        throw new ConfigurationException(msg);
+                    }
+
+                    final String value = property.getValue();
+                    if (Strings.isEmpty(value)) {
+                        final String msg = "A value for property " + key + " must be provided";
+                        LOGGER.error(msg);
+                        throw new ConfigurationException(msg);
+                    }
+
+                    if (upperKey.equals("SINKS")) {
+                        sinks = value.trim().split(" ");
+                    }
+
+                    props.put(key, value);
+                }
+
+                if (sinks == null || sinks.length == 0) {
+                    final String msg = "At least one Sink must be specified";
+                    LOGGER.error(msg);
+                    throw new ConfigurationException(msg);
+                }
+            }
+            return props;
+        }
+
+    }
+
+}
diff --git a/log4j-iostreams/src/main/java/org/apache/logging/log4j/io/IoBuilder.java b/log4j-iostreams/src/main/java/org/apache/logging/log4j/io/IoBuilder.java
index e32e865993..08d75d4fde 100644
--- a/log4j-iostreams/src/main/java/org/apache/logging/log4j/io/IoBuilder.java
+++ b/log4j-iostreams/src/main/java/org/apache/logging/log4j/io/IoBuilder.java
@@ -16,14 +16,6 @@
  */
 package org.apache.logging.log4j.io;
 
-import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.LoggingException;
-import org.apache.logging.log4j.Marker;
-import org.apache.logging.log4j.spi.ExtendedLogger;
-import org.apache.logging.log4j.util.StackLocatorUtil;
-
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.PrintStream;
@@ -34,6 +26,14 @@ import java.io.Writer;
 import java.nio.charset.Charset;
 import java.util.Objects;
 
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LoggingException;
+import org.apache.logging.log4j.Marker;
+import org.apache.logging.log4j.spi.ExtendedLogger;
+import org.apache.logging.log4j.util.StackLocatorUtil;
+
 /**
  * Builder class to wrap {@link Logger Loggers} into Java IO compatible classes.
  *
diff --git a/log4j-jakarta-web/src/main/java/org/apache/logging/log4j/web/Log4jWebInitializerImpl.java b/log4j-jakarta-web/src/main/java/org/apache/logging/log4j/web/Log4jWebInitializerImpl.java
index f1bddeb460..5993487ccb 100644
--- a/log4j-jakarta-web/src/main/java/org/apache/logging/log4j/web/Log4jWebInitializerImpl.java
+++ b/log4j-jakarta-web/src/main/java/org/apache/logging/log4j/web/Log4jWebInitializerImpl.java
@@ -16,7 +16,18 @@
  */
 package org.apache.logging.log4j.web;
 
-import jakarta.servlet.ServletContext;
+import java.net.URI;
+import java.net.URL;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.TimeUnit;
+
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.core.AbstractLifeCycle;
 import org.apache.logging.log4j.core.LoggerContext;
@@ -32,20 +43,10 @@ import org.apache.logging.log4j.core.selector.NamedContextSelector;
 import org.apache.logging.log4j.core.util.Loader;
 import org.apache.logging.log4j.core.util.NetUtils;
 import org.apache.logging.log4j.spi.LoggerContextFactory;
-import org.apache.logging.log4j.util.Strings;
 import org.apache.logging.log4j.util.LoaderUtil;
+import org.apache.logging.log4j.util.Strings;
 
-import java.net.URI;
-import java.net.URL;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.TimeUnit;
+import jakarta.servlet.ServletContext;
 
 /**
  * This class initializes and deinitializes Log4j no matter how the initialization occurs.
diff --git a/log4j-jeromq/src/main/java/org/apache/logging/log4j/jeromq/appender/JeroMqManager.java b/log4j-jeromq/src/main/java/org/apache/logging/log4j/jeromq/appender/JeroMqManager.java
index 15a281ff0e..e50972df03 100644
--- a/log4j-jeromq/src/main/java/org/apache/logging/log4j/jeromq/appender/JeroMqManager.java
+++ b/log4j-jeromq/src/main/java/org/apache/logging/log4j/jeromq/appender/JeroMqManager.java
@@ -14,9 +14,12 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.jeromq.appender;
 
+import java.util.Arrays;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.core.appender.AbstractManager;
 import org.apache.logging.log4j.core.appender.ManagerFactory;
@@ -25,10 +28,6 @@ import org.apache.logging.log4j.core.util.ShutdownCallbackRegistry;
 import org.apache.logging.log4j.util.PropertiesUtil;
 import org.zeromq.ZMQ;
 
-import java.util.Arrays;
-import java.util.List;
-import java.util.concurrent.TimeUnit;
-
 /**
  * Manager for publishing messages via JeroMq.
  *
diff --git a/log4j-jpa/src/main/java/org/apache/logging/log4j/jpa/appender/JpaAppender.java b/log4j-jpa/src/main/java/org/apache/logging/log4j/jpa/appender/JpaAppender.java
index 52aa8ac1ea..d78e669a84 100644
--- a/log4j-jpa/src/main/java/org/apache/logging/log4j/jpa/appender/JpaAppender.java
+++ b/log4j-jpa/src/main/java/org/apache/logging/log4j/jpa/appender/JpaAppender.java
@@ -16,6 +16,8 @@
  */
 package org.apache.logging.log4j.jpa.appender;
 
+import java.lang.reflect.Constructor;
+
 import org.apache.logging.log4j.core.Appender;
 import org.apache.logging.log4j.core.Filter;
 import org.apache.logging.log4j.core.LogEvent;
@@ -28,10 +30,8 @@ import org.apache.logging.log4j.plugins.Plugin;
 import org.apache.logging.log4j.plugins.PluginAttribute;
 import org.apache.logging.log4j.plugins.PluginElement;
 import org.apache.logging.log4j.plugins.PluginFactory;
-import org.apache.logging.log4j.util.Strings;
 import org.apache.logging.log4j.util.LoaderUtil;
-
-import java.lang.reflect.Constructor;
+import org.apache.logging.log4j.util.Strings;
 
 /**
  * This Appender writes logging events to a relational database using the Java Persistence API. It requires a
diff --git a/log4j-jpa/src/main/java/org/apache/logging/log4j/jpa/converter/ContextDataJsonAttributeConverter.java b/log4j-jpa/src/main/java/org/apache/logging/log4j/jpa/converter/ContextDataJsonAttributeConverter.java
index 7642f9ba64..a390baffbc 100644
--- a/log4j-jpa/src/main/java/org/apache/logging/log4j/jpa/converter/ContextDataJsonAttributeConverter.java
+++ b/log4j-jpa/src/main/java/org/apache/logging/log4j/jpa/converter/ContextDataJsonAttributeConverter.java
@@ -16,21 +16,22 @@
  */
 package org.apache.logging.log4j.jpa.converter;
 
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.node.JsonNodeFactory;
-import com.fasterxml.jackson.databind.node.ObjectNode;
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.Map;
+import javax.persistence.AttributeConverter;
+import javax.persistence.Converter;
+import javax.persistence.PersistenceException;
+
 import org.apache.logging.log4j.core.impl.ContextDataFactory;
 import org.apache.logging.log4j.util.ReadOnlyStringMap;
 import org.apache.logging.log4j.util.StringMap;
 import org.apache.logging.log4j.util.Strings;
 
-import javax.persistence.AttributeConverter;
-import javax.persistence.Converter;
-import javax.persistence.PersistenceException;
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.Map;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.JsonNodeFactory;
+import com.fasterxml.jackson.databind.node.ObjectNode;
 
 /**
  * A JPA 2.1 attribute converter for {@link ReadOnlyStringMap}s in
diff --git a/log4j-jpa/src/test/java/org/apache/logging/log4j/jpa/appender/AbstractJpaAppenderTest.java b/log4j-jpa/src/test/java/org/apache/logging/log4j/jpa/appender/AbstractJpaAppenderTest.java
index 49112475bc..f36bdbdd8e 100644
--- a/log4j-jpa/src/test/java/org/apache/logging/log4j/jpa/appender/AbstractJpaAppenderTest.java
+++ b/log4j-jpa/src/test/java/org/apache/logging/log4j/jpa/appender/AbstractJpaAppenderTest.java
@@ -16,6 +16,13 @@
  */
 package org.apache.logging.log4j.jpa.appender;
 
+import java.io.ByteArrayOutputStream;
+import java.io.PrintWriter;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.core.Appender;
@@ -28,13 +35,6 @@ import org.apache.logging.log4j.util.PropertiesUtil;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
-import java.io.ByteArrayOutputStream;
-import java.io.PrintWriter;
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-
 import static org.junit.Assert.*;
 
 @Category(Appenders.Jpa.class)
diff --git a/log4j-jpl/src/main/java/org/apache/logging/log4j/jpl/Log4jSystemLoggerAdapter.java b/log4j-jpl/src/main/java/org/apache/logging/log4j/jpl/Log4jSystemLoggerAdapter.java
index 252f6f92bc..1421035825 100644
--- a/log4j-jpl/src/main/java/org/apache/logging/log4j/jpl/Log4jSystemLoggerAdapter.java
+++ b/log4j-jpl/src/main/java/org/apache/logging/log4j/jpl/Log4jSystemLoggerAdapter.java
@@ -14,17 +14,16 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.jpl;
 
+import java.lang.System.Logger;
+import java.lang.System.LoggerFinder;
+
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.spi.AbstractLoggerAdapter;
 import org.apache.logging.log4j.spi.LoggerContext;
 import org.apache.logging.log4j.util.StackLocatorUtil;
 
-import java.lang.System.Logger;
-import java.lang.System.LoggerFinder;
-
 /**
  * {@link Logger} registry implementation using just log4j-api.
  *
diff --git a/log4j-jul/src/main/java/org/apache/logging/log4j/jul/AbstractLoggerAdapter.java b/log4j-jul/src/main/java/org/apache/logging/log4j/jul/AbstractLoggerAdapter.java
index 9cef5e679c..9337642f73 100644
--- a/log4j-jul/src/main/java/org/apache/logging/log4j/jul/AbstractLoggerAdapter.java
+++ b/log4j-jul/src/main/java/org/apache/logging/log4j/jul/AbstractLoggerAdapter.java
@@ -16,12 +16,12 @@
  */
 package org.apache.logging.log4j.jul;
 
+import java.util.logging.Logger;
+
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.spi.LoggerContext;
 import org.apache.logging.log4j.util.StackLocatorUtil;
 
-import java.util.logging.Logger;
-
 /**
  * Abstract Logger registry. Due to the optionality of using log4j-core, there are two registries available at runtime
  * to create: {@link ApiLoggerAdapter} and {@link CoreLoggerAdapter}.
diff --git a/log4j-jul/src/main/java/org/apache/logging/log4j/jul/LogManager.java b/log4j-jul/src/main/java/org/apache/logging/log4j/jul/LogManager.java
index 5dae127c4d..6225b4c00e 100644
--- a/log4j-jul/src/main/java/org/apache/logging/log4j/jul/LogManager.java
+++ b/log4j-jul/src/main/java/org/apache/logging/log4j/jul/LogManager.java
@@ -16,17 +16,17 @@
  */
 package org.apache.logging.log4j.jul;
 
-import org.apache.logging.log4j.LoggingException;
-import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.LoaderUtil;
-import org.apache.logging.log4j.util.PropertiesUtil;
-
 import java.util.Collections;
 import java.util.Enumeration;
 import java.util.HashSet;
 import java.util.Set;
 import java.util.logging.Logger;
 
+import org.apache.logging.log4j.LoggingException;
+import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.util.LoaderUtil;
+import org.apache.logging.log4j.util.PropertiesUtil;
+
 /**
  * Log4j implementation of {@link java.util.logging.LogManager}. Note that the system property
  * {@code java.util.logging.manager} must be set to {@code org.apache.logging.log4j.jul.LogManager} in order to use
diff --git a/log4j-kafka/src/main/java/org/apache/logging/log4j/kafka/appender/KafkaAppender.java b/log4j-kafka/src/main/java/org/apache/logging/log4j/kafka/appender/KafkaAppender.java
index 9ae8989921..9d5567d29d 100644
--- a/log4j-kafka/src/main/java/org/apache/logging/log4j/kafka/appender/KafkaAppender.java
+++ b/log4j-kafka/src/main/java/org/apache/logging/log4j/kafka/appender/KafkaAppender.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.kafka.appender;
 
 import java.io.Serializable;
diff --git a/log4j-kafka/src/main/java/org/apache/logging/log4j/kafka/appender/KafkaManager.java b/log4j-kafka/src/main/java/org/apache/logging/log4j/kafka/appender/KafkaManager.java
index ba57dda66f..c28a5fa051 100644
--- a/log4j-kafka/src/main/java/org/apache/logging/log4j/kafka/appender/KafkaManager.java
+++ b/log4j-kafka/src/main/java/org/apache/logging/log4j/kafka/appender/KafkaManager.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.kafka.appender;
 
 import java.nio.charset.StandardCharsets;
diff --git a/log4j-kafka/src/test/java/org/apache/logging/log4j/kafka/appender/KafkaAppenderCloseTimeoutTest.java b/log4j-kafka/src/test/java/org/apache/logging/log4j/kafka/appender/KafkaAppenderCloseTimeoutTest.java
index 7fcc621ebb..422daa82eb 100644
--- a/log4j-kafka/src/test/java/org/apache/logging/log4j/kafka/appender/KafkaAppenderCloseTimeoutTest.java
+++ b/log4j-kafka/src/test/java/org/apache/logging/log4j/kafka/appender/KafkaAppenderCloseTimeoutTest.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.kafka.appender;
 
 import java.time.Duration;
diff --git a/log4j-kafka/src/test/java/org/apache/logging/log4j/kafka/appender/KafkaAppenderTest.java b/log4j-kafka/src/test/java/org/apache/logging/log4j/kafka/appender/KafkaAppenderTest.java
index 03acb4378e..e638482d3c 100644
--- a/log4j-kafka/src/test/java/org/apache/logging/log4j/kafka/appender/KafkaAppenderTest.java
+++ b/log4j-kafka/src/test/java/org/apache/logging/log4j/kafka/appender/KafkaAppenderTest.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.kafka.appender;
 
 import java.io.ByteArrayInputStream;
@@ -35,10 +34,10 @@ import org.apache.kafka.clients.producer.ProducerRecord;
 import org.apache.kafka.common.serialization.ByteArraySerializer;
 import org.apache.kafka.common.serialization.Serializer;
 import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.core.test.categories.Appenders;
 import org.apache.logging.log4j.core.Appender;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.impl.Log4jLogEvent;
+import org.apache.logging.log4j.core.test.categories.Appenders;
 import org.apache.logging.log4j.core.test.junit.LoggerContextRule;
 import org.apache.logging.log4j.message.SimpleMessage;
 import org.apache.logging.log4j.util.FilteredObjectInputStream;
diff --git a/log4j-kafka/src/test/java/org/apache/logging/log4j/kafka/appender/KafkaManagerProducerThreadLeakTest.java b/log4j-kafka/src/test/java/org/apache/logging/log4j/kafka/appender/KafkaManagerProducerThreadLeakTest.java
index dc63ece6f2..bf18a18fc7 100644
--- a/log4j-kafka/src/test/java/org/apache/logging/log4j/kafka/appender/KafkaManagerProducerThreadLeakTest.java
+++ b/log4j-kafka/src/test/java/org/apache/logging/log4j/kafka/appender/KafkaManagerProducerThreadLeakTest.java
@@ -16,8 +16,8 @@
  */
 package org.apache.logging.log4j.kafka.appender;
 
-import org.apache.logging.log4j.core.test.categories.Appenders;
 import org.apache.logging.log4j.core.LoggerContext;
+import org.apache.logging.log4j.core.test.categories.Appenders;
 import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
 import org.junit.experimental.categories.Category;
 import org.junit.jupiter.api.Test;
diff --git a/log4j-kubernetes/src/main/java/org/apache/logging/log4j/kubernetes/KubernetesClientProperties.java b/log4j-kubernetes/src/main/java/org/apache/logging/log4j/kubernetes/KubernetesClientProperties.java
index 9691885f3b..f6fb90c7ee 100644
--- a/log4j-kubernetes/src/main/java/org/apache/logging/log4j/kubernetes/KubernetesClientProperties.java
+++ b/log4j-kubernetes/src/main/java/org/apache/logging/log4j/kubernetes/KubernetesClientProperties.java
@@ -16,11 +16,12 @@
  */
 package org.apache.logging.log4j.kubernetes;
 
-import io.fabric8.kubernetes.client.Config;
-import org.apache.logging.log4j.util.PropertyEnvironment;
+import java.time.Duration;
+
 import org.apache.logging.log4j.util.PropertiesUtil;
+import org.apache.logging.log4j.util.PropertyEnvironment;
 
-import java.time.Duration;
+import io.fabric8.kubernetes.client.Config;
 
 /**
  * Obtains properties used to configure the Kubernetes client.
diff --git a/log4j-kubernetes/src/main/java/org/apache/logging/log4j/kubernetes/KubernetesLookup.java b/log4j-kubernetes/src/main/java/org/apache/logging/log4j/kubernetes/KubernetesLookup.java
index 0ad12ca939..e1d0ee065e 100644
--- a/log4j-kubernetes/src/main/java/org/apache/logging/log4j/kubernetes/KubernetesLookup.java
+++ b/log4j-kubernetes/src/main/java/org/apache/logging/log4j/kubernetes/KubernetesLookup.java
@@ -16,11 +16,13 @@
  */
 package org.apache.logging.log4j.kubernetes;
 
-import io.fabric8.kubernetes.api.model.Container;
-import io.fabric8.kubernetes.api.model.ContainerStatus;
-import io.fabric8.kubernetes.api.model.Pod;
-import io.fabric8.kubernetes.client.Config;
-import io.fabric8.kubernetes.client.KubernetesClient;
+import java.net.URL;
+import java.nio.file.Paths;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
+
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.core.LogEvent;
@@ -28,15 +30,14 @@ import org.apache.logging.log4j.core.lookup.AbstractLookup;
 import org.apache.logging.log4j.core.lookup.Lookup;
 import org.apache.logging.log4j.plugins.Plugin;
 import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.Strings;
 import org.apache.logging.log4j.util.LoaderUtil;
+import org.apache.logging.log4j.util.Strings;
 
-import java.net.URL;
-import java.nio.file.Paths;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.ReentrantLock;
+import io.fabric8.kubernetes.api.model.Container;
+import io.fabric8.kubernetes.api.model.ContainerStatus;
+import io.fabric8.kubernetes.api.model.Pod;
+import io.fabric8.kubernetes.client.Config;
+import io.fabric8.kubernetes.client.KubernetesClient;
 
 
 /**
diff --git a/log4j-layout-jackson-json/src/test/java/org/apache/logging/log4j/jackson/json/layout/JsonLayoutTest.java b/log4j-layout-jackson-json/src/test/java/org/apache/logging/log4j/jackson/json/layout/JsonLayoutTest.java
index af005df15f..7eacd23781 100644
--- a/log4j-layout-jackson-json/src/test/java/org/apache/logging/log4j/jackson/json/layout/JsonLayoutTest.java
+++ b/log4j-layout-jackson-json/src/test/java/org/apache/logging/log4j/jackson/json/layout/JsonLayoutTest.java
@@ -16,6 +16,11 @@
  */
 package org.apache.logging.log4j.jackson.json.layout;
 
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.ThreadContext;
 import org.apache.logging.log4j.core.Appender;
@@ -53,11 +58,6 @@ import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
-import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
-import java.util.List;
-import java.util.Map;
-
 import static org.hamcrest.CoreMatchers.containsString;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.jupiter.api.Assertions.*;
@@ -68,16 +68,16 @@ import static org.junit.jupiter.api.Assertions.*;
 @UsingAnyThreadContext
 public class JsonLayoutTest {
     private static class TestClass {
-		private int value;
+        private int value;
 
-		public int getValue() {
-			return value;
-		}
+        public int getValue() {
+            return value;
+        }
 
-		public void setValue(final int value) {
-			this.value = value;
-		}
-	}
+        public void setValue(final int value) {
+            this.value = value;
+        }
+    }
 
     private static final String DQUOTE = "\"";
 
@@ -144,10 +144,10 @@ public class JsonLayoutTest {
     }
 
     private String prepareJsonForObjectMessageAsJsonObjectTests(final int value, final boolean objectMessageAsJsonObject) {
-    	final TestClass testClass = new TestClass();
-		testClass.setValue(value);
-		// @formatter:off
-		final Log4jLogEvent expected = Log4jLogEvent.newBuilder()
+        final TestClass testClass = new TestClass();
+        testClass.setValue(value);
+        // @formatter:off
+        final Log4jLogEvent expected = Log4jLogEvent.newBuilder()
             .setLoggerName("a.B")
             .setLoggerFqcn("f.q.c.n")
             .setLevel(Level.DEBUG)
@@ -155,10 +155,10 @@ public class JsonLayoutTest {
             .setThreadName("threadName")
             .setTimeMillis(1).build();
         // @formatter:off
-		final AbstractJacksonLayout layout = JsonLayout.newBuilder()
-				.setCompact(true)
-				.setObjectMessageAsJsonObject(objectMessageAsJsonObject)
-				.build();
+        final AbstractJacksonLayout layout = JsonLayout.newBuilder()
+                .setCompact(true)
+                .setObjectMessageAsJsonObject(objectMessageAsJsonObject)
+                .build();
         // @formatter:off
         return layout.toSerializable(expected);
     }
@@ -603,14 +603,14 @@ public class JsonLayoutTest {
 
     @Test
     public void testObjectMessageAsJsonObject() {
-    		final String str = prepareJsonForObjectMessageAsJsonObjectTests(1234, true);
-    		assertTrue(str.contains("\"message\":{\"value\":1234}"), str);
+            final String str = prepareJsonForObjectMessageAsJsonObjectTests(1234, true);
+            assertTrue(str.contains("\"message\":{\"value\":1234}"), str);
     }
 
     @Test
     public void testObjectMessageAsJsonString() {
-    		final String str = prepareJsonForObjectMessageAsJsonObjectTests(1234, false);
-		assertTrue(str.contains("\"message\":\"" + this.getClass().getCanonicalName() + "$TestClass@"), str);
+            final String str = prepareJsonForObjectMessageAsJsonObjectTests(1234, false);
+        assertTrue(str.contains("\"message\":\"" + this.getClass().getCanonicalName() + "$TestClass@"), str);
     }
 
     @Test
@@ -625,7 +625,7 @@ public class JsonLayoutTest {
         assertTrue(str.contains("\"extendedStackTrace\":\"java.lang.NullPointerException"), str);
     }
 
-	private String toPropertySeparator(final boolean compact) {
+    private String toPropertySeparator(final boolean compact) {
         return compact ? ":" : " : ";
     }
 
diff --git a/log4j-layout-jackson-xml/src/test/java/org/apache/logging/log4j/jackson/xml/layout/XmlLayoutTest.java b/log4j-layout-jackson-xml/src/test/java/org/apache/logging/log4j/jackson/xml/layout/XmlLayoutTest.java
index 96b1705cf9..b99806ec20 100644
--- a/log4j-layout-jackson-xml/src/test/java/org/apache/logging/log4j/jackson/xml/layout/XmlLayoutTest.java
+++ b/log4j-layout-jackson-xml/src/test/java/org/apache/logging/log4j/jackson/xml/layout/XmlLayoutTest.java
@@ -16,9 +16,11 @@
  */
 package org.apache.logging.log4j.jackson.xml.layout;
 
-import com.fasterxml.jackson.annotation.JsonPropertyOrder;
-import com.fasterxml.jackson.core.JsonParseException;
-import com.fasterxml.jackson.databind.JsonMappingException;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.Marker;
 import org.apache.logging.log4j.MarkerManager;
@@ -47,10 +49,9 @@ import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
-import java.io.IOException;
-import java.nio.charset.StandardCharsets;
-import java.util.List;
-import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.databind.JsonMappingException;
 
 import static org.junit.jupiter.api.Assertions.*;
 
diff --git a/log4j-layout-jackson-yaml/src/test/java/org/apache/logging/log4j/jackson/yaml/layout/YamlLayoutTest.java b/log4j-layout-jackson-yaml/src/test/java/org/apache/logging/log4j/jackson/yaml/layout/YamlLayoutTest.java
index 1f16b0b90a..413ccf92cb 100644
--- a/log4j-layout-jackson-yaml/src/test/java/org/apache/logging/log4j/jackson/yaml/layout/YamlLayoutTest.java
+++ b/log4j-layout-jackson-yaml/src/test/java/org/apache/logging/log4j/jackson/yaml/layout/YamlLayoutTest.java
@@ -16,6 +16,10 @@
  */
 package org.apache.logging.log4j.jackson.yaml.layout;
 
+import java.nio.charset.StandardCharsets;
+import java.util.List;
+import java.util.Map;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.ThreadContext;
 import org.apache.logging.log4j.core.Appender;
@@ -41,10 +45,6 @@ import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
-import java.nio.charset.StandardCharsets;
-import java.util.List;
-import java.util.Map;
-
 import static org.hamcrest.CoreMatchers.*;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.jupiter.api.Assertions.*;
diff --git a/log4j-layout-template-json-test/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutTest.java b/log4j-layout-template-json-test/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutTest.java
index 42a31322ab..a1a53a4d4d 100644
--- a/log4j-layout-template-json-test/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutTest.java
+++ b/log4j-layout-template-json-test/src/test/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutTest.java
@@ -16,9 +16,32 @@
  */
 package org.apache.logging.log4j.layout.template.json;
 
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.MappingIterator;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import java.io.ByteArrayOutputStream;
+import java.io.EOFException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintStream;
+import java.io.UnsupportedEncodingException;
+import java.math.BigDecimal;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.nio.ByteBuffer;
+import java.nio.charset.Charset;
+import java.time.Instant;
+import java.time.temporal.ChronoField;
+import java.time.temporal.TemporalAccessor;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ArrayBlockingQueue;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.Marker;
 import org.apache.logging.log4j.MarkerManager;
@@ -53,31 +76,9 @@ import org.apache.logging.log4j.plugins.PluginFactory;
 import org.apache.logging.log4j.util.Strings;
 import org.junit.jupiter.api.Test;
 
-import java.io.ByteArrayOutputStream;
-import java.io.EOFException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.PrintStream;
-import java.io.UnsupportedEncodingException;
-import java.math.BigDecimal;
-import java.net.ServerSocket;
-import java.net.Socket;
-import java.nio.ByteBuffer;
-import java.nio.charset.Charset;
-import java.time.Instant;
-import java.time.temporal.ChronoField;
-import java.time.temporal.TemporalAccessor;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ArrayBlockingQueue;
-import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.stream.Collectors;
-import java.util.stream.IntStream;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.MappingIterator;
+import com.fasterxml.jackson.databind.ObjectMapper;
 
 import static org.apache.logging.log4j.layout.template.json.TestHelpers.*;
 import static org.assertj.core.api.Assertions.assertThat;
diff --git a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutDefaults.java b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutDefaults.java
index e33e280a4a..e47acfb94a 100644
--- a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutDefaults.java
+++ b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/JsonTemplateLayoutDefaults.java
@@ -16,16 +16,16 @@
  */
 package org.apache.logging.log4j.layout.template.json;
 
-import org.apache.logging.log4j.layout.template.json.util.RecyclerFactories;
-import org.apache.logging.log4j.layout.template.json.util.RecyclerFactory;
-import org.apache.logging.log4j.util.PropertyEnvironment;
-import org.apache.logging.log4j.util.PropertiesUtil;
-
 import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
 import java.util.Locale;
 import java.util.TimeZone;
 
+import org.apache.logging.log4j.layout.template.json.util.RecyclerFactories;
+import org.apache.logging.log4j.layout.template.json.util.RecyclerFactory;
+import org.apache.logging.log4j.util.PropertiesUtil;
+import org.apache.logging.log4j.util.PropertyEnvironment;
+
 public final class JsonTemplateLayoutDefaults {
 
     private JsonTemplateLayoutDefaults() {}
diff --git a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/util/JsonWriter.java b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/util/JsonWriter.java
index 480647de8c..3ca6dc625a 100644
--- a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/util/JsonWriter.java
+++ b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/util/JsonWriter.java
@@ -16,11 +16,6 @@
  */
 package org.apache.logging.log4j.layout.template.json.util;
 
-import org.apache.logging.log4j.util.IndexedReadOnlyStringMap;
-import org.apache.logging.log4j.util.Lazy;
-import org.apache.logging.log4j.util.StringBuilderFormattable;
-import org.apache.logging.log4j.util.StringMap;
-
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.util.Collection;
@@ -29,6 +24,11 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.function.BiConsumer;
 
+import org.apache.logging.log4j.util.IndexedReadOnlyStringMap;
+import org.apache.logging.log4j.util.Lazy;
+import org.apache.logging.log4j.util.StringBuilderFormattable;
+import org.apache.logging.log4j.util.StringMap;
+
 /**
  * A simple JSON writer with support for common Java data types.
  * <p>
diff --git a/log4j-mongodb3/src/main/java/org/apache/logging/log4j/mongodb3/MongoDb3Provider.java b/log4j-mongodb3/src/main/java/org/apache/logging/log4j/mongodb3/MongoDb3Provider.java
index 4e0560d667..d9f73750ea 100644
--- a/log4j-mongodb3/src/main/java/org/apache/logging/log4j/mongodb3/MongoDb3Provider.java
+++ b/log4j-mongodb3/src/main/java/org/apache/logging/log4j/mongodb3/MongoDb3Provider.java
@@ -16,12 +16,9 @@
  */
 package org.apache.logging.log4j.mongodb3;
 
-import com.mongodb.MongoClient;
-import com.mongodb.MongoClientOptions;
-import com.mongodb.MongoCredential;
-import com.mongodb.ServerAddress;
-import com.mongodb.WriteConcern;
-import com.mongodb.client.MongoDatabase;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.core.appender.nosql.NoSqlProvider;
 import org.apache.logging.log4j.core.filter.AbstractFilterable;
@@ -36,14 +33,18 @@ import org.apache.logging.log4j.plugins.validation.constraints.Required;
 import org.apache.logging.log4j.plugins.validation.constraints.ValidHost;
 import org.apache.logging.log4j.plugins.validation.constraints.ValidPort;
 import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.Strings;
 import org.apache.logging.log4j.util.Cast;
 import org.apache.logging.log4j.util.LoaderUtil;
+import org.apache.logging.log4j.util.Strings;
 import org.bson.codecs.configuration.CodecRegistries;
 import org.bson.codecs.configuration.CodecRegistry;
 
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
+import com.mongodb.MongoClient;
+import com.mongodb.MongoClientOptions;
+import com.mongodb.MongoCredential;
+import com.mongodb.ServerAddress;
+import com.mongodb.WriteConcern;
+import com.mongodb.client.MongoDatabase;
 
 /**
  * The MongoDB implementation of {@link NoSqlProvider} using the MongoDB driver version 3 API.
diff --git a/log4j-mongodb3/src/test/java/org/apache/logging/log4j/mongodb3/MongoDb3TestRule.java b/log4j-mongodb3/src/test/java/org/apache/logging/log4j/mongodb3/MongoDb3TestRule.java
index d8727d3cc8..5891733d55 100644
--- a/log4j-mongodb3/src/test/java/org/apache/logging/log4j/mongodb3/MongoDb3TestRule.java
+++ b/log4j-mongodb3/src/test/java/org/apache/logging/log4j/mongodb3/MongoDb3TestRule.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.mongodb3;
 
 import java.util.Objects;
diff --git a/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4TestRule.java b/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4TestRule.java
index 782929302c..69c8087f49 100644
--- a/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4TestRule.java
+++ b/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4TestRule.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.mongodb4;
 
 import java.util.Objects;
@@ -183,4 +182,4 @@ public class MongoDb4TestRule implements TestRule {
         return builder.toString();
     }
 
-}
\ No newline at end of file
+}
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/AnnotationVsMarkerInterface.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/AnnotationVsMarkerInterface.java
index 2655d50ca2..c9ac835889 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/AnnotationVsMarkerInterface.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/AnnotationVsMarkerInterface.java
@@ -14,13 +14,14 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.perf.jmh;
 
+import java.util.concurrent.TimeUnit;
+
+import org.apache.logging.log4j.util.PerformanceSensitive;
 import org.apache.logging.log4j.util.SortedArrayStringMap;
 import org.apache.logging.log4j.util.StringBuilderFormattable;
 import org.apache.logging.log4j.util.StringMap;
-import org.apache.logging.log4j.util.PerformanceSensitive;
 import org.openjdk.jmh.annotations.Benchmark;
 import org.openjdk.jmh.annotations.BenchmarkMode;
 import org.openjdk.jmh.annotations.Fork;
@@ -31,8 +32,6 @@ import org.openjdk.jmh.annotations.Scope;
 import org.openjdk.jmh.annotations.State;
 import org.openjdk.jmh.annotations.Warmup;
 
-import java.util.concurrent.TimeUnit;
-
 /**
  * Tests performance of marker interface vs annotation.
  */
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/JdbcAppenderBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/JdbcAppenderBenchmark.java
index 76f6c91c84..ed1befbd9b 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/JdbcAppenderBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/JdbcAppenderBenchmark.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.perf.jmh;
 
 import java.sql.Connection;
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/JpaAppenderBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/JpaAppenderBenchmark.java
index 5ebd28e54f..0d5ed96192 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/JpaAppenderBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/JpaAppenderBenchmark.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.perf.jmh;
 
 import java.sql.Connection;
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ReflectionBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ReflectionBenchmark.java
index 1cedbe5a58..3adb5dbc2e 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ReflectionBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ReflectionBenchmark.java
@@ -16,6 +16,10 @@
  */
 package org.apache.logging.log4j.perf.jmh;
 
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Random;
+
 import org.apache.logging.log4j.message.Message;
 import org.apache.logging.log4j.message.StringFormattedMessage;
 import org.apache.logging.log4j.util.StackLocatorUtil;
@@ -25,10 +29,6 @@ import org.openjdk.jmh.annotations.Scope;
 import org.openjdk.jmh.annotations.Setup;
 import org.openjdk.jmh.annotations.State;
 
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.util.Random;
-
 /**
  * <p>
  * Benchmarks the different ways the caller class can be obtained. To run this in sampling mode (latency test):
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/SortedArrayVsHashMapBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/SortedArrayVsHashMapBenchmark.java
index c24d91d994..2854922cdd 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/SortedArrayVsHashMapBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/SortedArrayVsHashMapBenchmark.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.perf.jmh;
 
 import java.util.HashMap;
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/nogc/OpenHashStringMap.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/nogc/OpenHashStringMap.java
index 942641506e..be2c99a8d0 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/nogc/OpenHashStringMap.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/nogc/OpenHashStringMap.java
@@ -16,12 +16,6 @@
  */
 package org.apache.logging.log4j.perf.nogc;
 
-import org.apache.logging.log4j.spi.ThreadContextMap;
-import org.apache.logging.log4j.util.BiConsumer;
-import org.apache.logging.log4j.util.ReadOnlyStringMap;
-import org.apache.logging.log4j.util.StringMap;
-import org.apache.logging.log4j.util.TriConsumer;
-
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
@@ -32,6 +26,12 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
 
+import org.apache.logging.log4j.spi.ThreadContextMap;
+import org.apache.logging.log4j.util.BiConsumer;
+import org.apache.logging.log4j.util.ReadOnlyStringMap;
+import org.apache.logging.log4j.util.StringMap;
+import org.apache.logging.log4j.util.TriConsumer;
+
 /**
  * Open hash map-based implementation of the {@code ReadOnlyStringMap} interface.
  * Implementation based on <a href="http://fastutil.di.unimi.it/">fastutil</a>'s
@@ -296,7 +296,7 @@ public class OpenHashStringMap<K, V> implements StringMap, ThreadContextMap {
     }
 
     @Override
-	public boolean equals(final Object obj) {
+    public boolean equals(final Object obj) {
         if (obj == this) {
             return true;
         }
@@ -641,8 +641,8 @@ public class OpenHashStringMap<K, V> implements StringMap, ThreadContextMap {
     public boolean trim(final int n) {
         final int l = HashCommon.nextPowerOfTwo((int) Math.ceil(n / loadFactor));
         if (l >= n || size > HashCommon.maxFill(l, loadFactor)) {
-			return true;
-		}
+            return true;
+        }
         try {
             rehash(l);
         } catch (final OutOfMemoryError cantDoIt) { // unusual to catch OOME but in this case appropriate
@@ -697,7 +697,7 @@ public class OpenHashStringMap<K, V> implements StringMap, ThreadContextMap {
      * @return a hash code for this map.
      */
     @Override
-	public int hashCode() {
+    public int hashCode() {
         int result = 0;
         for (int j = realSize(), i = 0, t = 0; j-- != 0;) {
             while (keys[i] == null) {
@@ -898,8 +898,8 @@ public class OpenHashStringMap<K, V> implements StringMap, ThreadContextMap {
          * @return the maximum number of entries before rehashing.
          */
         public static int maxFill(final int n, final float f) {
-		/* We must guarantee that there is always at least
-		 * one free entry (even with pathological load factors). */
+        /* We must guarantee that there is always at least
+         * one free entry (even with pathological load factors). */
             return Math.min((int) Math.ceil(n * f), n - 1);
         }
 
diff --git a/log4j-plugin-processor/src/main/java/org/apache/logging/log4j/plugin/processor/PluginProcessor.java b/log4j-plugin-processor/src/main/java/org/apache/logging/log4j/plugin/processor/PluginProcessor.java
index 87eb4197b7..77cc19e009 100644
--- a/log4j-plugin-processor/src/main/java/org/apache/logging/log4j/plugin/processor/PluginProcessor.java
+++ b/log4j-plugin-processor/src/main/java/org/apache/logging/log4j/plugin/processor/PluginProcessor.java
@@ -14,18 +14,21 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.plugin.processor;
 
-import org.apache.logging.log4j.LoggingException;
-import org.apache.logging.log4j.plugins.Configurable;
-import org.apache.logging.log4j.plugins.Namespace;
-import org.apache.logging.log4j.plugins.Node;
-import org.apache.logging.log4j.plugins.Plugin;
-import org.apache.logging.log4j.plugins.PluginAliases;
-import org.apache.logging.log4j.plugins.model.PluginEntry;
-import org.apache.logging.log4j.util.Strings;
-
+import java.io.BufferedWriter;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.Set;
 import javax.annotation.processing.AbstractProcessor;
 import javax.annotation.processing.Messager;
 import javax.annotation.processing.RoundEnvironment;
@@ -42,19 +45,15 @@ import javax.tools.Diagnostic.Kind;
 import javax.tools.FileObject;
 import javax.tools.JavaFileObject;
 import javax.tools.StandardLocation;
-import java.io.BufferedWriter;
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
-import java.util.Set;
+
+import org.apache.logging.log4j.LoggingException;
+import org.apache.logging.log4j.plugins.Configurable;
+import org.apache.logging.log4j.plugins.Namespace;
+import org.apache.logging.log4j.plugins.Node;
+import org.apache.logging.log4j.plugins.Plugin;
+import org.apache.logging.log4j.plugins.PluginAliases;
+import org.apache.logging.log4j.plugins.model.PluginEntry;
+import org.apache.logging.log4j.util.Strings;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 
diff --git a/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugin/processor/PluginProcessorTest.java b/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugin/processor/PluginProcessorTest.java
index 0ba6a36948..e07a0697c2 100644
--- a/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugin/processor/PluginProcessorTest.java
+++ b/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugin/processor/PluginProcessorTest.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.plugin.processor;
 
 import org.apache.logging.log4j.plugins.Configurable;
diff --git a/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/condition/OnPropertyConditionTest.java b/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/condition/OnPropertyConditionTest.java
index 1c3d010575..d6e50b0478 100644
--- a/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/condition/OnPropertyConditionTest.java
+++ b/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/condition/OnPropertyConditionTest.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.plugins.condition;
 
 import org.apache.logging.log4j.plugins.Factory;
diff --git a/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/di/InjectorTest.java b/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/di/InjectorTest.java
index 3910077121..b92ebe95b6 100644
--- a/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/di/InjectorTest.java
+++ b/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/di/InjectorTest.java
@@ -14,9 +14,23 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.plugins.di;
 
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.util.Collection;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Optional;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.function.Function;
+import java.util.function.Supplier;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
 import org.apache.logging.log4j.plugins.Configurable;
 import org.apache.logging.log4j.plugins.Factory;
 import org.apache.logging.log4j.plugins.Inject;
@@ -47,21 +61,6 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.parallel.ResourceLock;
 import org.junit.jupiter.api.parallel.Resources;
 
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.util.Collection;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Optional;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.function.Function;
-import java.util.function.Supplier;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
diff --git a/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/processor/PluginCacheTest.java b/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/processor/PluginCacheTest.java
index 365a111852..8fa192fd0b 100644
--- a/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/processor/PluginCacheTest.java
+++ b/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/processor/PluginCacheTest.java
@@ -14,19 +14,18 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.plugins.processor;
 
-import org.apache.logging.log4j.plugins.model.PluginCache;
-import org.apache.logging.log4j.plugins.model.PluginEntry;
-import org.junit.jupiter.api.Test;
-
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 
+import org.apache.logging.log4j.plugins.model.PluginCache;
+import org.apache.logging.log4j.plugins.model.PluginEntry;
+import org.junit.jupiter.api.Test;
+
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class PluginCacheTest {
diff --git a/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/util/ResolverUtilCustomProtocolTest.java b/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/util/ResolverUtilCustomProtocolTest.java
index 6a62a83b18..c22d9e68f8 100644
--- a/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/util/ResolverUtilCustomProtocolTest.java
+++ b/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/util/ResolverUtilCustomProtocolTest.java
@@ -14,13 +14,8 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.plugins.util;
 
-import org.apache.logging.log4j.plugins.model.PluginRegistry;
-import org.apache.logging.log4j.test.junit.UsingURLStreamHandlerFactory;
-import org.junit.jupiter.api.Test;
-
 import java.io.File;
 import java.io.IOException;
 import java.net.Proxy;
@@ -33,6 +28,10 @@ import java.util.Collections;
 import java.util.Enumeration;
 import java.util.List;
 
+import org.apache.logging.log4j.plugins.model.PluginRegistry;
+import org.apache.logging.log4j.test.junit.UsingURLStreamHandlerFactory;
+import org.junit.jupiter.api.Test;
+
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
diff --git a/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/util/ResolverUtilTest.java b/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/util/ResolverUtilTest.java
index a3756a53df..497e4e23df 100644
--- a/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/util/ResolverUtilTest.java
+++ b/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/util/ResolverUtilTest.java
@@ -14,19 +14,8 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.plugins.util;
 
-import org.apache.logging.log4j.plugins.model.PluginRegistry;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.io.TempDir;
-
-import javax.tools.Diagnostic;
-import javax.tools.DiagnosticCollector;
-import javax.tools.JavaCompiler;
-import javax.tools.JavaFileObject;
-import javax.tools.StandardJavaFileManager;
-import javax.tools.ToolProvider;
 import java.io.File;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
@@ -45,6 +34,16 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
+import javax.tools.Diagnostic;
+import javax.tools.DiagnosticCollector;
+import javax.tools.JavaCompiler;
+import javax.tools.JavaFileObject;
+import javax.tools.StandardJavaFileManager;
+import javax.tools.ToolProvider;
+
+import org.apache.logging.log4j.plugins.model.PluginRegistry;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.junit.jupiter.api.Assertions.*;
diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/Node.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/Node.java
index 38bca235c1..1445818207 100644
--- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/Node.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/Node.java
@@ -16,9 +16,6 @@
  */
 package org.apache.logging.log4j.plugins;
 
-import org.apache.logging.log4j.plugins.model.PluginType;
-import org.apache.logging.log4j.util.Cast;
-
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
@@ -26,6 +23,9 @@ import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 
+import org.apache.logging.log4j.plugins.model.PluginType;
+import org.apache.logging.log4j.util.Cast;
+
 /**
  * Configurations are represented as a tree of Node instances. Each Node may have
  * {@linkplain #getAttributes() attributes}, {@linkplain #getChildren() children nodes},
diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/Plugin.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/Plugin.java
index f7dd5118ac..5ae50cae3f 100644
--- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/Plugin.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/Plugin.java
@@ -16,17 +16,17 @@
  */
 package org.apache.logging.log4j.plugins;
 
-import org.apache.logging.log4j.plugins.model.PluginService;
-import org.apache.logging.log4j.plugins.name.NameProvider;
-import org.apache.logging.log4j.plugins.name.PluginNameProvider;
-import org.apache.logging.log4j.util.Strings;
-
 import java.lang.annotation.Documented;
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
+import org.apache.logging.log4j.plugins.model.PluginService;
+import org.apache.logging.log4j.plugins.name.NameProvider;
+import org.apache.logging.log4j.plugins.name.PluginNameProvider;
+import org.apache.logging.log4j.util.Strings;
+
 /**
  * <p>Annotation that identifies a Class as a Plugin. Plugins are indexed classes with a name that can typically
  * be used to refer to that plugin class in a configuration. Plugin names must be unique within a plugin
diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/convert/TypeConverter.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/convert/TypeConverter.java
index a403dd11e5..5814055f9c 100644
--- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/convert/TypeConverter.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/convert/TypeConverter.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.plugins.convert;
 
 import org.apache.logging.log4j.status.StatusLogger;
diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/BindingMap.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/BindingMap.java
index e8de2ea3c9..21462eaaef 100644
--- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/BindingMap.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/BindingMap.java
@@ -14,16 +14,15 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.plugins.di;
 
-import org.apache.logging.log4j.util.Cast;
-
 import java.util.Collection;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.function.Supplier;
 
+import org.apache.logging.log4j.util.Cast;
+
 class BindingMap {
     private final Map<Key<?>, Binding<?>> bindings;
 
diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/DefaultInjector.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/DefaultInjector.java
index bdef3e4924..12bc867140 100644
--- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/DefaultInjector.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/DefaultInjector.java
@@ -14,37 +14,8 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.plugins.di;
 
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.plugins.FactoryType;
-import org.apache.logging.log4j.plugins.Inject;
-import org.apache.logging.log4j.plugins.Node;
-import org.apache.logging.log4j.plugins.PluginException;
-import org.apache.logging.log4j.plugins.QualifierType;
-import org.apache.logging.log4j.plugins.ScopeType;
-import org.apache.logging.log4j.plugins.Singleton;
-import org.apache.logging.log4j.plugins.condition.Conditional;
-import org.apache.logging.log4j.plugins.convert.TypeConverter;
-import org.apache.logging.log4j.plugins.convert.TypeConverters;
-import org.apache.logging.log4j.plugins.model.PluginNamespace;
-import org.apache.logging.log4j.plugins.model.PluginRegistry;
-import org.apache.logging.log4j.plugins.model.PluginType;
-import org.apache.logging.log4j.plugins.util.AnnotationUtil;
-import org.apache.logging.log4j.plugins.util.OrderedComparator;
-import org.apache.logging.log4j.plugins.util.TypeUtil;
-import org.apache.logging.log4j.plugins.validation.Constraint;
-import org.apache.logging.log4j.plugins.validation.ConstraintValidationException;
-import org.apache.logging.log4j.plugins.validation.ConstraintValidator;
-import org.apache.logging.log4j.plugins.visit.NodeVisitor;
-import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.Lazy;
-import org.apache.logging.log4j.util.Cast;
-import org.apache.logging.log4j.util.EnglishEnums;
-import org.apache.logging.log4j.util.ServiceRegistry;
-import org.apache.logging.log4j.util.StringBuilders;
-
 import java.lang.annotation.Annotation;
 import java.lang.invoke.MethodHandles;
 import java.lang.reflect.AnnotatedElement;
@@ -72,6 +43,34 @@ import java.util.function.Supplier;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.plugins.FactoryType;
+import org.apache.logging.log4j.plugins.Inject;
+import org.apache.logging.log4j.plugins.Node;
+import org.apache.logging.log4j.plugins.PluginException;
+import org.apache.logging.log4j.plugins.QualifierType;
+import org.apache.logging.log4j.plugins.ScopeType;
+import org.apache.logging.log4j.plugins.Singleton;
+import org.apache.logging.log4j.plugins.condition.Conditional;
+import org.apache.logging.log4j.plugins.convert.TypeConverter;
+import org.apache.logging.log4j.plugins.convert.TypeConverters;
+import org.apache.logging.log4j.plugins.model.PluginNamespace;
+import org.apache.logging.log4j.plugins.model.PluginRegistry;
+import org.apache.logging.log4j.plugins.model.PluginType;
+import org.apache.logging.log4j.plugins.util.AnnotationUtil;
+import org.apache.logging.log4j.plugins.util.OrderedComparator;
+import org.apache.logging.log4j.plugins.util.TypeUtil;
+import org.apache.logging.log4j.plugins.validation.Constraint;
+import org.apache.logging.log4j.plugins.validation.ConstraintValidationException;
+import org.apache.logging.log4j.plugins.validation.ConstraintValidator;
+import org.apache.logging.log4j.plugins.visit.NodeVisitor;
+import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.util.Cast;
+import org.apache.logging.log4j.util.EnglishEnums;
+import org.apache.logging.log4j.util.Lazy;
+import org.apache.logging.log4j.util.ServiceRegistry;
+import org.apache.logging.log4j.util.StringBuilders;
+
 class DefaultInjector implements Injector {
     private static final Logger LOGGER = StatusLogger.getLogger();
     private static final Set<Class<?>> COLLECTION_INJECTION_TYPES = Set.of(
diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/Key.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/Key.java
index 5b9be205a5..e62d0f1c5f 100644
--- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/Key.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/Key.java
@@ -14,16 +14,8 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.plugins.di;
 
-import org.apache.logging.log4j.plugins.Ordered;
-import org.apache.logging.log4j.plugins.QualifierType;
-import org.apache.logging.log4j.plugins.util.AnnotationUtil;
-import org.apache.logging.log4j.plugins.util.TypeUtil;
-import org.apache.logging.log4j.util.Strings;
-import org.apache.logging.log4j.util.Cast;
-
 import java.lang.annotation.Annotation;
 import java.lang.reflect.AnnotatedElement;
 import java.lang.reflect.AnnotatedType;
@@ -36,6 +28,13 @@ import java.util.Locale;
 import java.util.Objects;
 import java.util.function.Supplier;
 
+import org.apache.logging.log4j.plugins.Ordered;
+import org.apache.logging.log4j.plugins.QualifierType;
+import org.apache.logging.log4j.plugins.util.AnnotationUtil;
+import org.apache.logging.log4j.plugins.util.TypeUtil;
+import org.apache.logging.log4j.util.Cast;
+import org.apache.logging.log4j.util.Strings;
+
 /**
  * Type with an optional {@link QualifierType} type, name, and namespace. Keys are used for binding to and looking up instance
  * factories via {@link Injector}.
diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/Keys.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/Keys.java
index 0ed20eb963..7b0bc5d63f 100644
--- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/Keys.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/Keys.java
@@ -14,21 +14,8 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.plugins.di;
 
-import org.apache.logging.log4j.plugins.Named;
-import org.apache.logging.log4j.plugins.Namespace;
-import org.apache.logging.log4j.plugins.internal.util.BeanUtils;
-import org.apache.logging.log4j.plugins.name.AliasesProvider;
-import org.apache.logging.log4j.plugins.name.AnnotatedElementAliasesProvider;
-import org.apache.logging.log4j.plugins.name.AnnotatedElementNameProvider;
-import org.apache.logging.log4j.plugins.name.NameProvider;
-import org.apache.logging.log4j.plugins.util.AnnotationUtil;
-import org.apache.logging.log4j.util.ReflectionUtil;
-import org.apache.logging.log4j.util.Strings;
-import org.apache.logging.log4j.util.Cast;
-
 import java.lang.annotation.Annotation;
 import java.lang.reflect.AnnotatedElement;
 import java.lang.reflect.AnnotatedType;
@@ -40,6 +27,18 @@ import java.util.List;
 import java.util.Optional;
 import java.util.function.Function;
 
+import org.apache.logging.log4j.plugins.Named;
+import org.apache.logging.log4j.plugins.Namespace;
+import org.apache.logging.log4j.plugins.internal.util.BeanUtils;
+import org.apache.logging.log4j.plugins.name.AliasesProvider;
+import org.apache.logging.log4j.plugins.name.AnnotatedElementAliasesProvider;
+import org.apache.logging.log4j.plugins.name.AnnotatedElementNameProvider;
+import org.apache.logging.log4j.plugins.name.NameProvider;
+import org.apache.logging.log4j.plugins.util.AnnotationUtil;
+import org.apache.logging.log4j.util.Cast;
+import org.apache.logging.log4j.util.ReflectionUtil;
+import org.apache.logging.log4j.util.Strings;
+
 public final class Keys {
     private Keys() {
         throw new IllegalStateException("Utility class");
diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/model/PluginCache.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/model/PluginCache.java
index e1a0cb7f71..f3756d9a52 100644
--- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/model/PluginCache.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/model/PluginCache.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.plugins.model;
 
 import java.io.BufferedInputStream;
diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/model/PluginEntry.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/model/PluginEntry.java
index fb507b4dbc..722c6328f8 100644
--- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/model/PluginEntry.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/model/PluginEntry.java
@@ -14,13 +14,12 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.plugins.model;
 
-import org.apache.logging.log4j.util.Strings;
-
 import java.util.function.Supplier;
 
+import org.apache.logging.log4j.util.Strings;
+
 /**
  * Descriptor for {@link org.apache.logging.log4j.plugins.Plugin} metadata.
  */
diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/model/PluginNamespace.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/model/PluginNamespace.java
index f29778fb73..fc2f51f1be 100644
--- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/model/PluginNamespace.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/model/PluginNamespace.java
@@ -14,15 +14,8 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.plugins.model;
 
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.plugins.Ordered;
-import org.apache.logging.log4j.plugins.Singleton;
-import org.apache.logging.log4j.plugins.util.OrderedComparator;
-import org.apache.logging.log4j.status.StatusLogger;
-
 import java.util.AbstractCollection;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
@@ -30,6 +23,12 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.function.BiConsumer;
 
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.plugins.Ordered;
+import org.apache.logging.log4j.plugins.Singleton;
+import org.apache.logging.log4j.plugins.util.OrderedComparator;
+import org.apache.logging.log4j.status.StatusLogger;
+
 /**
  * Plugin namespaces are mappings of plugin keys to plugin classes where plugin keys are lower-cased
  * versions of plugin names.
diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/model/PluginRegistry.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/model/PluginRegistry.java
index 24da49c4c1..ae44270768 100644
--- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/model/PluginRegistry.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/model/PluginRegistry.java
@@ -14,21 +14,8 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.plugins.model;
 
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.plugins.Configurable;
-import org.apache.logging.log4j.plugins.Plugin;
-import org.apache.logging.log4j.plugins.PluginAliases;
-import org.apache.logging.log4j.plugins.Singleton;
-import org.apache.logging.log4j.plugins.di.Keys;
-import org.apache.logging.log4j.plugins.util.ResolverUtil;
-import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.Lazy;
-import org.apache.logging.log4j.util.Strings;
-import org.apache.logging.log4j.util.LoaderUtil;
-
 import java.io.IOException;
 import java.net.URI;
 import java.net.URL;
@@ -43,6 +30,18 @@ import java.util.ServiceLoader;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.plugins.Configurable;
+import org.apache.logging.log4j.plugins.Plugin;
+import org.apache.logging.log4j.plugins.PluginAliases;
+import org.apache.logging.log4j.plugins.Singleton;
+import org.apache.logging.log4j.plugins.di.Keys;
+import org.apache.logging.log4j.plugins.util.ResolverUtil;
+import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.util.Lazy;
+import org.apache.logging.log4j.util.LoaderUtil;
+import org.apache.logging.log4j.util.Strings;
+
 import static org.apache.logging.log4j.util.Unbox.box;
 
 /**
diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/model/PluginType.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/model/PluginType.java
index 0683603d3b..a8f53aee50 100644
--- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/model/PluginType.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/model/PluginType.java
@@ -16,8 +16,8 @@
  */
 package org.apache.logging.log4j.plugins.model;
 
-import org.apache.logging.log4j.util.Lazy;
 import org.apache.logging.log4j.util.Cast;
+import org.apache.logging.log4j.util.Lazy;
 
 /**
  * Plugin Descriptor. This is a memento object for Plugin annotations paired to their annotated classes.
diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/osgi/Activator.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/osgi/Activator.java
index e5d170b082..b4c615d390 100644
--- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/osgi/Activator.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/osgi/Activator.java
@@ -14,9 +14,12 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.plugins.osgi;
 
+import java.security.Permission;
+import java.util.Collection;
+import java.util.concurrent.atomic.AtomicReference;
+
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.plugins.model.PluginRegistry;
 import org.apache.logging.log4j.plugins.model.PluginService;
@@ -32,10 +35,6 @@ import org.osgi.framework.ServiceReference;
 import org.osgi.framework.SynchronousBundleListener;
 import org.osgi.framework.wiring.BundleWiring;
 
-import java.security.Permission;
-import java.util.Collection;
-import java.util.concurrent.atomic.AtomicReference;
-
 /**
  * OSGi BundleActivator.
  */
diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/visit/PluginAttributeVisitor.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/visit/PluginAttributeVisitor.java
index ee17b075ae..3d9c541e9e 100644
--- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/visit/PluginAttributeVisitor.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/visit/PluginAttributeVisitor.java
@@ -14,9 +14,15 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.plugins.visit;
 
+import java.lang.reflect.Field;
+import java.lang.reflect.Parameter;
+import java.lang.reflect.Type;
+import java.util.Collection;
+import java.util.Map;
+import java.util.function.Function;
+
 import org.apache.logging.log4j.plugins.Inject;
 import org.apache.logging.log4j.plugins.Named;
 import org.apache.logging.log4j.plugins.Node;
@@ -24,15 +30,8 @@ import org.apache.logging.log4j.plugins.PluginAttribute;
 import org.apache.logging.log4j.plugins.convert.TypeConverter;
 import org.apache.logging.log4j.plugins.di.Injector;
 import org.apache.logging.log4j.plugins.di.Keys;
-import org.apache.logging.log4j.util.Strings;
 import org.apache.logging.log4j.util.StringBuilders;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Parameter;
-import java.lang.reflect.Type;
-import java.util.Collection;
-import java.util.Map;
-import java.util.function.Function;
+import org.apache.logging.log4j.util.Strings;
 
 // copied to log4j-core for backward compatibility
 @SuppressWarnings("DuplicatedCode")
diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/visit/PluginElementVisitor.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/visit/PluginElementVisitor.java
index e9a93ca901..96d31b520c 100644
--- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/visit/PluginElementVisitor.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/visit/PluginElementVisitor.java
@@ -14,19 +14,8 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.plugins.visit;
 
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.plugins.Node;
-import org.apache.logging.log4j.plugins.di.Keys;
-import org.apache.logging.log4j.plugins.model.PluginType;
-import org.apache.logging.log4j.plugins.util.TypeUtil;
-import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.Strings;
-import org.apache.logging.log4j.util.Cast;
-import org.apache.logging.log4j.util.StringBuilders;
-
 import java.lang.reflect.Array;
 import java.lang.reflect.Field;
 import java.lang.reflect.Parameter;
@@ -37,6 +26,16 @@ import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.plugins.Node;
+import org.apache.logging.log4j.plugins.di.Keys;
+import org.apache.logging.log4j.plugins.model.PluginType;
+import org.apache.logging.log4j.plugins.util.TypeUtil;
+import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.util.Cast;
+import org.apache.logging.log4j.util.StringBuilders;
+import org.apache.logging.log4j.util.Strings;
+
 public class PluginElementVisitor implements NodeVisitor {
     private static final Logger LOGGER = StatusLogger.getLogger();
 
diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/visit/PluginNodeVisitor.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/visit/PluginNodeVisitor.java
index 6bb84d321c..40d50e5a7f 100644
--- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/visit/PluginNodeVisitor.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/visit/PluginNodeVisitor.java
@@ -14,9 +14,11 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.plugins.visit;
 
+import java.lang.reflect.Field;
+import java.lang.reflect.Parameter;
+
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.plugins.Node;
 import org.apache.logging.log4j.plugins.util.TypeUtil;
@@ -24,9 +26,6 @@ import org.apache.logging.log4j.status.StatusLogger;
 import org.apache.logging.log4j.util.Cast;
 import org.apache.logging.log4j.util.StringBuilders;
 
-import java.lang.reflect.Field;
-import java.lang.reflect.Parameter;
-
 public class PluginNodeVisitor implements NodeVisitor {
     private static final Logger LOGGER = StatusLogger.getLogger();
 
diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/visit/PluginValueVisitor.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/visit/PluginValueVisitor.java
index d1ee7812fb..d260bf88cf 100644
--- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/visit/PluginValueVisitor.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/visit/PluginValueVisitor.java
@@ -14,24 +14,23 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.log4j.plugins.visit;
 
+import java.lang.reflect.Field;
+import java.lang.reflect.Parameter;
+import java.util.Collection;
+import java.util.Optional;
+import java.util.function.Function;
+
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.plugins.Inject;
 import org.apache.logging.log4j.plugins.Named;
 import org.apache.logging.log4j.plugins.Node;
 import org.apache.logging.log4j.plugins.di.Keys;
 import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.Strings;
 import org.apache.logging.log4j.util.Cast;
 import org.apache.logging.log4j.util.StringBuilders;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Parameter;
-import java.util.Collection;
-import java.util.Optional;
-import java.util.function.Function;
+import org.apache.logging.log4j.util.Strings;
 
 public class PluginValueVisitor implements NodeVisitor {
     private static final Logger LOGGER = StatusLogger.getLogger();
diff --git a/log4j-samples/log4j-samples-configuration/pom.xml b/log4j-samples/log4j-samples-configuration/pom.xml
index 0c803e11b2..9c6d4c8358 100644
--- a/log4j-samples/log4j-samples-configuration/pom.xml
+++ b/log4j-samples/log4j-samples-configuration/pom.xml
@@ -27,6 +27,7 @@
   <name>Apache Log4j Samples: Configuration</name>
   <url>http://maven.apache.org</url>
   <properties>
+    <log4jParentDir>${basedir}/../..</log4jParentDir>
     <module.name>org.apache.logging.log4j.samples.configuration</module.name>
   </properties>
 
diff --git a/log4j-samples/log4j-samples-configuration/src/main/java/org/apache/logging/log4j/configuration/CustomConfiguration.java b/log4j-samples/log4j-samples-configuration/src/main/java/org/apache/logging/log4j/configuration/CustomConfiguration.java
index b2902231a2..1e80d77ce5 100644
--- a/log4j-samples/log4j-samples-configuration/src/main/java/org/apache/logging/log4j/configuration/CustomConfiguration.java
+++ b/log4j-samples/log4j-samples-configuration/src/main/java/org/apache/logging/log4j/configuration/CustomConfiguration.java
@@ -16,6 +16,8 @@
  */
 package org.apache.logging.log4j.configuration;
 
+import java.io.Serializable;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.core.Appender;
 import org.apache.logging.log4j.core.Layout;
@@ -27,8 +29,6 @@ import org.apache.logging.log4j.core.config.LoggerConfig;
 import org.apache.logging.log4j.core.layout.PatternLayout;
 import org.apache.logging.log4j.util.PropertiesUtil;
 
-import java.io.Serializable;
-
 /**
  * This Configuration is the same as the DefaultConfiguration but shows how a custom configuration can be built
  * programmatically
diff --git a/log4j-samples/log4j-samples-flume-embedded/pom.xml b/log4j-samples/log4j-samples-flume-embedded/pom.xml
index d4b34dedda..90ffd2ffe2 100644
--- a/log4j-samples/log4j-samples-flume-embedded/pom.xml
+++ b/log4j-samples/log4j-samples-flume-embedded/pom.xml
@@ -27,6 +27,7 @@
   <name>Apache Log4j Samples: Flume - Embedded</name>
   <url>http://maven.apache.org</url>
   <properties>
+    <log4jParentDir>${basedir}/../..</log4jParentDir>
     <module.name>org.apache.logging.log4j.samples.flume.embedded</module.name>
   </properties>
   <dependencies>
diff --git a/log4j-samples/log4j-samples-flume-remote/pom.xml b/log4j-samples/log4j-samples-flume-remote/pom.xml
index c311ff80b5..8936f4f3bd 100644
--- a/log4j-samples/log4j-samples-flume-remote/pom.xml
+++ b/log4j-samples/log4j-samples-flume-remote/pom.xml
@@ -26,6 +26,7 @@
   <packaging>war</packaging>
   <name>Apache Log4j Samples: Flume - Remote</name>
   <properties>
+    <log4jParentDir>${basedir}/../..</log4jParentDir>
     <module.name>org.apache.logging.log4j.samples.flume.remote</module.name>
   </properties>
 
diff --git a/log4j-samples/log4j-samples-loggerProperties/pom.xml b/log4j-samples/log4j-samples-loggerProperties/pom.xml
index c7f86cba91..29f70b8961 100644
--- a/log4j-samples/log4j-samples-loggerProperties/pom.xml
+++ b/log4j-samples/log4j-samples-loggerProperties/pom.xml
@@ -27,6 +27,7 @@
   <name>Apache Log4j Samples: LoggerProperties</name>
   <url>http://maven.apache.org</url>
   <properties>
+    <log4jParentDir>${basedir}/../..</log4jParentDir>
     <module.name>org.apache.logging.log4j.samples.logger_properties</module.name>
   </properties>
   <dependencies>
diff --git a/log4j-script/src/test/java/org/apache/logging/log4j/script/config/builder/ConfigurationAssemblerTest.java b/log4j-script/src/test/java/org/apache/logging/log4j/script/config/builder/ConfigurationAssemblerTest.java
index 9b4a38f13d..9dfd35d8d8 100644
--- a/log4j-script/src/test/java/org/apache/logging/log4j/script/config/builder/ConfigurationAssemblerTest.java
+++ b/log4j-script/src/test/java/org/apache/logging/log4j/script/config/builder/ConfigurationAssemblerTest.java
@@ -16,6 +16,9 @@
  */
 package org.apache.logging.log4j.script.config.builder;
 
+import java.util.List;
+import java.util.Map;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -37,9 +40,6 @@ import org.apache.logging.log4j.core.layout.PatternLayout;
 import org.apache.logging.log4j.core.util.Constants;
 import org.junit.jupiter.api.Test;
 
-import java.util.List;
-import java.util.Map;
-
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.instanceOf;
 import static org.junit.jupiter.api.Assertions.*;
diff --git a/log4j-script/src/test/java/org/apache/logging/log4j/script/config/builder/ConfigurationBuilderTest.java b/log4j-script/src/test/java/org/apache/logging/log4j/script/config/builder/ConfigurationBuilderTest.java
index 32b870d202..10ea1a164f 100644
--- a/log4j-script/src/test/java/org/apache/logging/log4j/script/config/builder/ConfigurationBuilderTest.java
+++ b/log4j-script/src/test/java/org/apache/logging/log4j/script/config/builder/ConfigurationBuilderTest.java
@@ -16,6 +16,8 @@
  */
 package org.apache.logging.log4j.script.config.builder;
 
+import java.util.concurrent.TimeUnit;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.core.Filter;
 import org.apache.logging.log4j.core.appender.ConsoleAppender;
@@ -25,8 +27,6 @@ import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFact
 import org.apache.logging.log4j.core.config.builder.impl.BuiltConfiguration;
 import org.junit.jupiter.api.Test;
 
-import java.util.concurrent.TimeUnit;
-
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class ConfigurationBuilderTest {
diff --git a/log4j-script/src/test/java/org/apache/logging/log4j/script/config/builder/CustomConfigurationFactory.java b/log4j-script/src/test/java/org/apache/logging/log4j/script/config/builder/CustomConfigurationFactory.java
index 2bdfa9d40b..658b0f6821 100644
--- a/log4j-script/src/test/java/org/apache/logging/log4j/script/config/builder/CustomConfigurationFactory.java
+++ b/log4j-script/src/test/java/org/apache/logging/log4j/script/config/builder/CustomConfigurationFactory.java
@@ -16,6 +16,8 @@
  */
 package org.apache.logging.log4j.script.config.builder;
 
+import java.net.URI;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.core.Filter;
 import org.apache.logging.log4j.core.LoggerContext;
@@ -27,8 +29,6 @@ import org.apache.logging.log4j.core.config.builder.api.AppenderComponentBuilder
 import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilder;
 import org.apache.logging.log4j.core.config.builder.impl.BuiltConfiguration;
 
-import java.net.URI;
-
 /**
  * Normally this would be a plugin. However, we don't want it used for everything so it will be defined
  * via a system property.
diff --git a/log4j-slf4j-impl/src/main/java/org/apache/logging/slf4j/Log4jLogger.java b/log4j-slf4j-impl/src/main/java/org/apache/logging/slf4j/Log4jLogger.java
index 80119856b7..39cb2e739f 100644
--- a/log4j-slf4j-impl/src/main/java/org/apache/logging/slf4j/Log4jLogger.java
+++ b/log4j-slf4j-impl/src/main/java/org/apache/logging/slf4j/Log4jLogger.java
@@ -16,6 +16,11 @@
  */
 package org.apache.logging.slf4j;
 
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.Serializable;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.message.Message;
@@ -27,11 +32,6 @@ import org.slf4j.Marker;
 import org.slf4j.MarkerFactory;
 import org.slf4j.spi.LocationAwareLogger;
 
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.Serializable;
-
 /**
  * SLF4J logger implementation that uses Log4j.
  */
diff --git a/log4j-slf4j2-impl/src/main/java/org/apache/logging/slf4j/Log4jLogger.java b/log4j-slf4j2-impl/src/main/java/org/apache/logging/slf4j/Log4jLogger.java
index 2b601be0ee..adff474c4f 100644
--- a/log4j-slf4j2-impl/src/main/java/org/apache/logging/slf4j/Log4jLogger.java
+++ b/log4j-slf4j2-impl/src/main/java/org/apache/logging/slf4j/Log4jLogger.java
@@ -464,5 +464,5 @@ public class Log4jLogger implements LocationAwareLogger, Serializable {
         return logger.isEnabled(getLevel(level.toInt()));
     }
 
-    
+
 }
diff --git a/log4j-slf4j2-impl/src/main/java/org/apache/logging/slf4j/Log4jLoggerFactory.java b/log4j-slf4j2-impl/src/main/java/org/apache/logging/slf4j/Log4jLoggerFactory.java
index f1733013b9..cf9b002aa9 100644
--- a/log4j-slf4j2-impl/src/main/java/org/apache/logging/slf4j/Log4jLoggerFactory.java
+++ b/log4j-slf4j2-impl/src/main/java/org/apache/logging/slf4j/Log4jLoggerFactory.java
@@ -16,6 +16,8 @@
  */
 package org.apache.logging.slf4j;
 
+import java.util.function.Predicate;
+
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.LoggingException;
 import org.apache.logging.log4j.spi.AbstractLoggerAdapter;
@@ -25,8 +27,6 @@ import org.apache.logging.log4j.util.StackLocatorUtil;
 import org.slf4j.ILoggerFactory;
 import org.slf4j.Logger;
 
-import java.util.function.Predicate;
-
 /**
  * Log4j implementation of SLF4J ILoggerFactory interface.
  */
diff --git a/log4j-slf4j2-impl/src/main/java/org/apache/logging/slf4j/Log4jMarker.java b/log4j-slf4j2-impl/src/main/java/org/apache/logging/slf4j/Log4jMarker.java
index fb21659103..1b96e1a010 100644
--- a/log4j-slf4j2-impl/src/main/java/org/apache/logging/slf4j/Log4jMarker.java
+++ b/log4j-slf4j2-impl/src/main/java/org/apache/logging/slf4j/Log4jMarker.java
@@ -47,43 +47,43 @@ class Log4jMarker implements Marker {
 
     @Override
     public void add(final Marker marker) {
-		if (marker == null) {
-			throw new IllegalArgumentException();
-		}
+        if (marker == null) {
+            throw new IllegalArgumentException();
+        }
         final Marker m = factory.getMarker(marker.getName());
         this.marker.addParents(((Log4jMarker)m).getLog4jMarker());
     }
 
     @Override
-	public boolean contains(final Marker marker) {
-		if (marker == null) {
-			throw new IllegalArgumentException();
-		}
-		return this.marker.isInstanceOf(marker.getName());
-	}
+    public boolean contains(final Marker marker) {
+        if (marker == null) {
+            throw new IllegalArgumentException();
+        }
+        return this.marker.isInstanceOf(marker.getName());
+    }
 
     @Override
-	public boolean contains(final String s) {
-		return s != null ? this.marker.isInstanceOf(s) : false;
-	}
+    public boolean contains(final String s) {
+        return s != null ? this.marker.isInstanceOf(s) : false;
+    }
 
     @Override
-	public boolean equals(final Object obj) {
-		if (this == obj) {
-			return true;
-		}
-		if (obj == null) {
-			return false;
-		}
-		if (!(obj instanceof Log4jMarker)) {
-			return false;
-		}
-		final Log4jMarker other = (Log4jMarker) obj;
-		if (!Objects.equals(marker, other.marker)) {
-			return false;
-		}
-		return true;
-	}
+    public boolean equals(final Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (obj == null) {
+            return false;
+        }
+        if (!(obj instanceof Log4jMarker)) {
+            return false;
+        }
+        final Log4jMarker other = (Log4jMarker) obj;
+        if (!Objects.equals(marker, other.marker)) {
+            return false;
+        }
+        return true;
+    }
 
     public org.apache.logging.log4j.Marker getLog4jMarker() {
         return marker;
@@ -100,27 +100,27 @@ class Log4jMarker implements Marker {
     }
 
     @Override
-	public int hashCode() {
-		return 31 + Objects.hashCode(marker);
-	}
+    public int hashCode() {
+        return 31 + Objects.hashCode(marker);
+    }
 
     @Override
     public boolean hasReferences() {
         return marker.hasParents();
     }
 
-	@Override
+    @Override
     public Iterator<Marker> iterator() {
         final org.apache.logging.log4j.Marker[] log4jParents = this.marker.getParents();
         final List<Marker> parents = new ArrayList<>(log4jParents.length);
-		for (final org.apache.logging.log4j.Marker m : log4jParents) {
+        for (final org.apache.logging.log4j.Marker m : log4jParents) {
             parents.add(factory.getMarker(m.getName()));
         }
         return parents.iterator();
     }
 
-	@Override
-	public boolean remove(final Marker marker) {
-		return marker != null ? this.marker.remove(MarkerManager.getMarker(marker.getName())) : false;
-	}
+    @Override
+    public boolean remove(final Marker marker) {
+        return marker != null ? this.marker.remove(MarkerManager.getMarker(marker.getName())) : false;
+    }
 }
diff --git a/log4j-slf4j2-impl/src/main/java/org/apache/logging/slf4j/Log4jMarkerFactory.java b/log4j-slf4j2-impl/src/main/java/org/apache/logging/slf4j/Log4jMarkerFactory.java
index 9073fa9242..ff5b22c1ad 100644
--- a/log4j-slf4j2-impl/src/main/java/org/apache/logging/slf4j/Log4jMarkerFactory.java
+++ b/log4j-slf4j2-impl/src/main/java/org/apache/logging/slf4j/Log4jMarkerFactory.java
@@ -80,7 +80,7 @@ public class Log4jMarkerFactory implements IMarkerFactory {
 
     /**
      * Gets the Log4j2 marker associated to this SLF4J marker or creates a new one.
-     * 
+     *
      * @param marker a SLF4J marker
      * @return a Log4j2 marker
      */
diff --git a/log4j-slf4j2-impl/src/test/java/org/apache/logging/other/pkg/LoggerContextAnchorTest.java b/log4j-slf4j2-impl/src/test/java/org/apache/logging/other/pkg/LoggerContextAnchorTest.java
index 2b0fe91c20..1dd8d922c4 100644
--- a/log4j-slf4j2-impl/src/test/java/org/apache/logging/other/pkg/LoggerContextAnchorTest.java
+++ b/log4j-slf4j2-impl/src/test/java/org/apache/logging/other/pkg/LoggerContextAnchorTest.java
@@ -16,6 +16,9 @@
  */
 package org.apache.logging.other.pkg;
 
+import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
+
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.status.StatusData;
 import org.apache.logging.log4j.status.StatusListener;
@@ -23,9 +26,6 @@ import org.apache.logging.log4j.status.StatusLogger;
 import org.junit.Test;
 import org.slf4j.LoggerFactory;
 
-import java.util.List;
-import java.util.concurrent.CopyOnWriteArrayList;
-
 import static org.junit.Assert.assertEquals;
 
 /**
diff --git a/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/CallerInformationTest.java b/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/CallerInformationTest.java
index 25372bf4b1..255eb529dd 100644
--- a/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/CallerInformationTest.java
+++ b/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/CallerInformationTest.java
@@ -16,8 +16,6 @@
  */
 package org.apache.logging.slf4j;
 
-import static org.junit.Assert.assertEquals;
-
 import java.util.List;
 
 import org.apache.logging.log4j.core.test.appender.ListAppender;
@@ -27,6 +25,8 @@ import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.junit.Assert.assertEquals;
+
 public class CallerInformationTest {
 
     // config from log4j-core test-jar
diff --git a/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/CustomFlatMarker.java b/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/CustomFlatMarker.java
index 0138cead6e..1d0877db49 100644
--- a/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/CustomFlatMarker.java
+++ b/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/CustomFlatMarker.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.slf4j;
 
 import java.util.Iterator;
diff --git a/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/Log4j1222Test.java b/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/Log4j1222Test.java
index 59f69e0d2d..2f7003fefb 100644
--- a/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/Log4j1222Test.java
+++ b/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/Log4j1222Test.java
@@ -28,30 +28,30 @@ import static org.junit.Assert.*;
 public class Log4j1222Test
 {
 
-	@Test
-	public void homepageRendersSuccessfully()
-	{
+    @Test
+    public void homepageRendersSuccessfully()
+    {
         System.setProperty("log4j.configurationFile", "log4j2-console.xml");
-		Runtime.getRuntime().addShutdownHook(new ShutdownHook());
-	}
+        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 = LoggerFactory.getLogger(Log4j1222Test.class);
-		}
+        private static class Holder {
+            private static final Logger LOGGER = LoggerFactory.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("Logger is of type " + Holder.LOGGER.getClass().getName(), Holder.LOGGER instanceof Log4jLogger);
+        private void trigger() {
+            Holder.LOGGER.info("Attempt to trigger");
+            assertTrue("Logger is of type " + Holder.LOGGER.getClass().getName(), Holder.LOGGER instanceof Log4jLogger);
 
-		}
-	}
+        }
+    }
 }
diff --git a/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/Log4j2_1482_Slf4jTest.java b/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/Log4j2_1482_Slf4jTest.java
index 4df098b61e..b834a9a24d 100644
--- a/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/Log4j2_1482_Slf4jTest.java
+++ b/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/Log4j2_1482_Slf4jTest.java
@@ -14,7 +14,6 @@
  * See the license for the specific language governing permissions and
  * limitations under the license.
  */
-
 package org.apache.logging.slf4j;
 
 import org.apache.logging.log4j.core.test.layout.Log4j2_1482_Test;
@@ -26,16 +25,16 @@ import org.slf4j.LoggerFactory;
  */
 public class Log4j2_1482_Slf4jTest extends Log4j2_1482_Test {
 
-	@Override
-	protected void log(final int runNumber) {
-		if (runNumber == 2) {
-			// System.out.println("Set a breakpoint here.");
-		}
-		final Logger logger = LoggerFactory.getLogger("auditcsvfile");
-		final int val1 = 9, val2 = 11, val3 = 12;
-		logger.info("Info Message!", val1, val2, val3);
-		logger.info("Info Message!", val1, val2, val3);
-		logger.info("Info Message!", val1, val2, val3);
-	}
+    @Override
+    protected void log(final int runNumber) {
+        if (runNumber == 2) {
+            // System.out.println("Set a breakpoint here.");
+        }
+        final Logger logger = LoggerFactory.getLogger("auditcsvfile");
+        final int val1 = 9, val2 = 11, val3 = 12;
+        logger.info("Info Message!", val1, val2, val3);
+        logger.info("Info Message!", val1, val2, val3);
+        logger.info("Info Message!", val1, val2, val3);
+    }
 
-}
\ No newline at end of file
+}
diff --git a/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/Log4jEventBuilderTest.java b/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/Log4jEventBuilderTest.java
index 82c3c21a5d..fe4ef656a0 100644
--- a/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/Log4jEventBuilderTest.java
+++ b/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/Log4jEventBuilderTest.java
@@ -16,8 +16,6 @@
  */
 package org.apache.logging.slf4j;
 
-import static org.assertj.core.api.Assertions.assertThat;
-
 import java.util.List;
 
 import org.apache.logging.log4j.core.Appender;
@@ -30,6 +28,8 @@ import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.assertj.core.api.Assertions.assertThat;
+
 @LoggerContextSource("log4j2-config.xml")
 public class Log4jEventBuilderTest {
 
diff --git a/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/Log4jMDCAdapterTest.java b/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/Log4jMDCAdapterTest.java
index 4fa9038be1..f9d883af93 100644
--- a/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/Log4jMDCAdapterTest.java
+++ b/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/Log4jMDCAdapterTest.java
@@ -16,8 +16,6 @@
  */
 package org.apache.logging.slf4j;
 
-import static org.assertj.core.api.Assertions.assertThat;
-
 import java.util.ArrayDeque;
 import java.util.Deque;
 import java.util.stream.IntStream;
@@ -26,6 +24,8 @@ import java.util.stream.Stream;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.MethodSource;
 
+import static org.assertj.core.api.Assertions.assertThat;
+
 public class Log4jMDCAdapterTest {
 
     private static final Log4jMDCAdapter MDC_ADAPTER = new Log4jMDCAdapter();
diff --git a/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/Log4jMarkerTest.java b/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/Log4jMarkerTest.java
index ac6ad22b39..3d4102abab 100644
--- a/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/Log4jMarkerTest.java
+++ b/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/Log4jMarkerTest.java
@@ -32,16 +32,16 @@ public class Log4jMarkerTest {
 
     }
 
-	@Test
-	public void testEquals() {
-		final Marker markerA = MarkerManager.getMarker(Log4jMarkerTest.class.getName() + "-A");
-		final Marker markerB = MarkerManager.getMarker(Log4jMarkerTest.class.getName() + "-B");
-		final Log4jMarker marker1 = new Log4jMarker(markerFactory, markerA);
-		final Log4jMarker marker2 = new Log4jMarker(markerFactory, markerA);
-		final Log4jMarker marker3 = new Log4jMarker(markerFactory, markerB);
-		Assert.assertEquals(marker1, marker2);
-		Assert.assertNotEquals(marker1, null);
-		Assert.assertNotEquals(null, marker1);
-		Assert.assertNotEquals(marker1, marker3);
-	}
+    @Test
+    public void testEquals() {
+        final Marker markerA = MarkerManager.getMarker(Log4jMarkerTest.class.getName() + "-A");
+        final Marker markerB = MarkerManager.getMarker(Log4jMarkerTest.class.getName() + "-B");
+        final Log4jMarker marker1 = new Log4jMarker(markerFactory, markerA);
+        final Log4jMarker marker2 = new Log4jMarker(markerFactory, markerA);
+        final Log4jMarker marker3 = new Log4jMarker(markerFactory, markerB);
+        Assert.assertEquals(marker1, marker2);
+        Assert.assertNotEquals(marker1, null);
+        Assert.assertNotEquals(null, marker1);
+        Assert.assertNotEquals(marker1, marker3);
+    }
 }
diff --git a/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/LoggerContextTest.java b/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/LoggerContextTest.java
index de37a3614f..eb912787bc 100644
--- a/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/LoggerContextTest.java
+++ b/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/LoggerContextTest.java
@@ -16,13 +16,13 @@
  */
 package org.apache.logging.slf4j;
 
+import java.util.Set;
+
 import org.apache.logging.log4j.core.LifeCycle;
 import org.apache.logging.log4j.spi.LoggerContext;
 import org.junit.Test;
 import org.slf4j.LoggerFactory;
 
-import java.util.Set;
-
 import static org.junit.Assert.assertTrue;
 
 /**
diff --git a/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/LoggerTest.java b/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/LoggerTest.java
index 2ae692bcc3..86096f44ac 100644
--- a/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/LoggerTest.java
+++ b/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/LoggerTest.java
@@ -16,10 +16,6 @@
  */
 package org.apache.logging.slf4j;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
 import java.util.List;
 
 import org.apache.logging.log4j.core.LogEvent;
@@ -38,6 +34,10 @@ import org.slf4j.ext.XLogger;
 import org.slf4j.ext.XLoggerFactory;
 import org.slf4j.spi.LocationAwareLogger;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
 /**
  *
  */
diff --git a/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/MarkerTest.java b/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/MarkerTest.java
index c078fe03fe..4dc0c52848 100644
--- a/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/MarkerTest.java
+++ b/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/MarkerTest.java
@@ -31,156 +31,156 @@ import static org.junit.Assert.*;
  */
 public class MarkerTest {
 
-	private static final String CHILD_MAKER_NAME = MarkerTest.class.getSimpleName() + "-TEST";
-	private static final String PARENT_MARKER_NAME = MarkerTest.class.getSimpleName() + "-PARENT";
-	private static Log4jMarkerFactory markerFactory;
+    private static final String CHILD_MAKER_NAME = MarkerTest.class.getSimpleName() + "-TEST";
+    private static final String PARENT_MARKER_NAME = MarkerTest.class.getSimpleName() + "-PARENT";
+    private static Log4jMarkerFactory markerFactory;
 
-	@BeforeClass
+    @BeforeClass
     public static void startup() {
-	    markerFactory = ((Log4jLoggerFactory) org.slf4j.LoggerFactory.getILoggerFactory()).getMarkerFactory();
+        markerFactory = ((Log4jLoggerFactory) org.slf4j.LoggerFactory.getILoggerFactory()).getMarkerFactory();
 
     }
 
     @Before
-	@After
-	public void clearMarkers() {
-		MarkerManager.clear();
-	}
-
-	@Test
-	public void testAddMarker() {
-		final String childMakerName = CHILD_MAKER_NAME + "-AM";
-		final String parentMarkerName = PARENT_MARKER_NAME + "-AM";
-		final org.slf4j.Marker slf4jMarker = org.slf4j.MarkerFactory.getMarker(childMakerName);
-		final org.slf4j.Marker slf4jParent = org.slf4j.MarkerFactory.getMarker(parentMarkerName);
-		slf4jMarker.add(slf4jParent);
-		final Marker log4jParent = MarkerManager.getMarker(parentMarkerName);
-		final Marker log4jMarker = MarkerManager.getMarker(childMakerName);
-
-		assertTrue("Incorrect Marker class", slf4jMarker instanceof Log4jMarker);
-		assertTrue(String.format("%s (log4jMarker=%s) is not an instance of %s (log4jParent=%s) in Log4j",
-				childMakerName, parentMarkerName, log4jMarker, log4jParent), log4jMarker.isInstanceOf(log4jParent));
-		assertTrue(String.format("%s (slf4jMarker=%s) is not an instance of %s (log4jParent=%s) in SLF4J",
-				childMakerName, parentMarkerName, slf4jMarker, slf4jParent), slf4jMarker.contains(slf4jParent));
-	}
-
-	@Test
-	public void testAddNullMarker() {
-		final String childMarkerName = CHILD_MAKER_NAME + "-ANM";
-		final String parentMakerName = PARENT_MARKER_NAME + "-ANM";
-		final org.slf4j.Marker slf4jMarker = org.slf4j.MarkerFactory.getMarker(childMarkerName);
-		final org.slf4j.Marker slf4jParent = org.slf4j.MarkerFactory.getMarker(parentMakerName);
-		slf4jMarker.add(slf4jParent);
-		final Marker log4jParent = MarkerManager.getMarker(parentMakerName);
-		final Marker log4jMarker = MarkerManager.getMarker(childMarkerName);
-		final Log4jMarker log4jSlf4jParent = new Log4jMarker(markerFactory, log4jParent);
-		final Log4jMarker log4jSlf4jMarker = new Log4jMarker(markerFactory, log4jMarker);
-		final org.slf4j.Marker nullMarker = null;
-		try {
-			log4jSlf4jParent.add(nullMarker);
-			fail("Expected " + IllegalArgumentException.class.getName());
-		} catch (final IllegalArgumentException e) {
-			// expected
-		}
-		try {
-			log4jSlf4jMarker.add(nullMarker);
-			fail("Expected " + IllegalArgumentException.class.getName());
-		} catch (final IllegalArgumentException e) {
-			// expected
-		}
-	}
-
-	@Test
-	public void testAddSameMarker() {
-		final String childMarkerName = CHILD_MAKER_NAME + "-ASM";
-		final String parentMakerName = PARENT_MARKER_NAME + "-ASM";
-		final org.slf4j.Marker slf4jMarker = org.slf4j.MarkerFactory.getMarker(childMarkerName);
-		final org.slf4j.Marker slf4jParent = org.slf4j.MarkerFactory.getMarker(parentMakerName);
-		slf4jMarker.add(slf4jParent);
-		slf4jMarker.add(slf4jParent);
-		final Marker log4jParent = MarkerManager.getMarker(parentMakerName);
-		final Marker log4jMarker = MarkerManager.getMarker(childMarkerName);
-		assertTrue(String.format("%s (log4jMarker=%s) is not an instance of %s (log4jParent=%s) in Log4j",
-				childMarkerName, parentMakerName, log4jMarker, log4jParent), log4jMarker.isInstanceOf(log4jParent));
-		assertTrue(String.format("%s (slf4jMarker=%s) is not an instance of %s (log4jParent=%s) in SLF4J",
-				childMarkerName, parentMakerName, slf4jMarker, slf4jParent), slf4jMarker.contains(slf4jParent));
-	}
-
-	@Test
-	public void testEquals() {
-		final String childMarkerName = CHILD_MAKER_NAME + "-ASM";
-		final String parentMakerName = PARENT_MARKER_NAME + "-ASM";
-		final org.slf4j.Marker slf4jMarker = org.slf4j.MarkerFactory.getMarker(childMarkerName);
-		final org.slf4j.Marker slf4jMarker2 = org.slf4j.MarkerFactory.getMarker(childMarkerName);
-		final org.slf4j.Marker slf4jParent = org.slf4j.MarkerFactory.getMarker(parentMakerName);
-		slf4jMarker.add(slf4jParent);
-		final Marker log4jParent = MarkerManager.getMarker(parentMakerName);
-		final Marker log4jMarker = MarkerManager.getMarker(childMarkerName);
-		final Marker log4jMarker2 = MarkerManager.getMarker(childMarkerName);
-		assertEquals(log4jParent, log4jParent);
-		assertEquals(log4jMarker, log4jMarker);
-		assertEquals(log4jMarker, log4jMarker2);
-		assertEquals(slf4jMarker, slf4jMarker2);
-		assertNotEquals(log4jParent, log4jMarker);
-		assertNotEquals(log4jMarker, log4jParent);
-	}
-
-	@Test
-	public void testContainsNullMarker() {
-		final String childMarkerName = CHILD_MAKER_NAME + "-CM";
-		final String parentMakerName = PARENT_MARKER_NAME + "-CM";
-		final org.slf4j.Marker slf4jMarker = org.slf4j.MarkerFactory.getMarker(childMarkerName);
-		final org.slf4j.Marker slf4jParent = org.slf4j.MarkerFactory.getMarker(parentMakerName);
-		slf4jMarker.add(slf4jParent);
-		final Marker log4jParent = MarkerManager.getMarker(parentMakerName);
-		final Marker log4jMarker = MarkerManager.getMarker(childMarkerName);
-		final Log4jMarker log4jSlf4jParent = new Log4jMarker(markerFactory, log4jParent);
-		final Log4jMarker log4jSlf4jMarker = new Log4jMarker(markerFactory, log4jMarker);
-		final org.slf4j.Marker nullMarker = null;
-		try {
-			Assert.assertFalse(log4jSlf4jParent.contains(nullMarker));
-			fail("Expected " + IllegalArgumentException.class.getName());
-		} catch (final IllegalArgumentException e) {
-			// expected
-		}
-		try {
-			Assert.assertFalse(log4jSlf4jMarker.contains(nullMarker));
-			fail("Expected " + IllegalArgumentException.class.getName());
-		} catch (final IllegalArgumentException e) {
-			// expected
-		}
-	}
-
-	@Test
-	public void testContainsNullString() {
-		final String childMarkerName = CHILD_MAKER_NAME + "-CS";
-		final String parentMakerName = PARENT_MARKER_NAME + "-CS";
-		final org.slf4j.Marker slf4jMarker = org.slf4j.MarkerFactory.getMarker(childMarkerName);
-		final org.slf4j.Marker slf4jParent = org.slf4j.MarkerFactory.getMarker(parentMakerName);
-		slf4jMarker.add(slf4jParent);
-		final Marker log4jParent = MarkerManager.getMarker(parentMakerName);
-		final Marker log4jMarker = MarkerManager.getMarker(childMarkerName);
-		final Log4jMarker log4jSlf4jParent = new Log4jMarker(markerFactory, log4jParent);
-		final Log4jMarker log4jSlf4jMarker = new Log4jMarker(markerFactory, log4jMarker);
-		final String nullStr = null;
-		Assert.assertFalse(log4jSlf4jParent.contains(nullStr));
-		Assert.assertFalse(log4jSlf4jMarker.contains(nullStr));
-	}
-
-	@Test
-	public void testRemoveNullMarker() {
-		final String childMakerName = CHILD_MAKER_NAME + "-CM";
-		final String parentMakerName = PARENT_MARKER_NAME + "-CM";
-		final org.slf4j.Marker slf4jMarker = org.slf4j.MarkerFactory.getMarker(childMakerName);
-		final org.slf4j.Marker slf4jParent = org.slf4j.MarkerFactory.getMarker(parentMakerName);
-		slf4jMarker.add(slf4jParent);
-		final Marker log4jParent = MarkerManager.getMarker(parentMakerName);
-		final Marker log4jMarker = MarkerManager.getMarker(childMakerName);
-		final Log4jMarker log4jSlf4jParent = new Log4jMarker(markerFactory, log4jParent);
-		final Log4jMarker log4jSlf4jMarker = new Log4jMarker(markerFactory, log4jMarker);
-		final org.slf4j.Marker nullMarker = null;
-		Assert.assertFalse(log4jSlf4jParent.remove(nullMarker));
-		Assert.assertFalse(log4jSlf4jMarker.remove(nullMarker));
-	}
+    @After
+    public void clearMarkers() {
+        MarkerManager.clear();
+    }
+
+    @Test
+    public void testAddMarker() {
+        final String childMakerName = CHILD_MAKER_NAME + "-AM";
+        final String parentMarkerName = PARENT_MARKER_NAME + "-AM";
+        final org.slf4j.Marker slf4jMarker = org.slf4j.MarkerFactory.getMarker(childMakerName);
+        final org.slf4j.Marker slf4jParent = org.slf4j.MarkerFactory.getMarker(parentMarkerName);
+        slf4jMarker.add(slf4jParent);
+        final Marker log4jParent = MarkerManager.getMarker(parentMarkerName);
+        final Marker log4jMarker = MarkerManager.getMarker(childMakerName);
+
+        assertTrue("Incorrect Marker class", slf4jMarker instanceof Log4jMarker);
+        assertTrue(String.format("%s (log4jMarker=%s) is not an instance of %s (log4jParent=%s) in Log4j",
+                childMakerName, parentMarkerName, log4jMarker, log4jParent), log4jMarker.isInstanceOf(log4jParent));
+        assertTrue(String.format("%s (slf4jMarker=%s) is not an instance of %s (log4jParent=%s) in SLF4J",
+                childMakerName, parentMarkerName, slf4jMarker, slf4jParent), slf4jMarker.contains(slf4jParent));
+    }
+
+    @Test
+    public void testAddNullMarker() {
+        final String childMarkerName = CHILD_MAKER_NAME + "-ANM";
+        final String parentMakerName = PARENT_MARKER_NAME + "-ANM";
+        final org.slf4j.Marker slf4jMarker = org.slf4j.MarkerFactory.getMarker(childMarkerName);
+        final org.slf4j.Marker slf4jParent = org.slf4j.MarkerFactory.getMarker(parentMakerName);
+        slf4jMarker.add(slf4jParent);
+        final Marker log4jParent = MarkerManager.getMarker(parentMakerName);
+        final Marker log4jMarker = MarkerManager.getMarker(childMarkerName);
+        final Log4jMarker log4jSlf4jParent = new Log4jMarker(markerFactory, log4jParent);
+        final Log4jMarker log4jSlf4jMarker = new Log4jMarker(markerFactory, log4jMarker);
+        final org.slf4j.Marker nullMarker = null;
+        try {
+            log4jSlf4jParent.add(nullMarker);
+            fail("Expected " + IllegalArgumentException.class.getName());
+        } catch (final IllegalArgumentException e) {
+            // expected
+        }
+        try {
+            log4jSlf4jMarker.add(nullMarker);
+            fail("Expected " + IllegalArgumentException.class.getName());
+        } catch (final IllegalArgumentException e) {
+            // expected
+        }
+    }
+
+    @Test
+    public void testAddSameMarker() {
+        final String childMarkerName = CHILD_MAKER_NAME + "-ASM";
+        final String parentMakerName = PARENT_MARKER_NAME + "-ASM";
+        final org.slf4j.Marker slf4jMarker = org.slf4j.MarkerFactory.getMarker(childMarkerName);
+        final org.slf4j.Marker slf4jParent = org.slf4j.MarkerFactory.getMarker(parentMakerName);
+        slf4jMarker.add(slf4jParent);
+        slf4jMarker.add(slf4jParent);
+        final Marker log4jParent = MarkerManager.getMarker(parentMakerName);
+        final Marker log4jMarker = MarkerManager.getMarker(childMarkerName);
+        assertTrue(String.format("%s (log4jMarker=%s) is not an instance of %s (log4jParent=%s) in Log4j",
+                childMarkerName, parentMakerName, log4jMarker, log4jParent), log4jMarker.isInstanceOf(log4jParent));
+        assertTrue(String.format("%s (slf4jMarker=%s) is not an instance of %s (log4jParent=%s) in SLF4J",
+                childMarkerName, parentMakerName, slf4jMarker, slf4jParent), slf4jMarker.contains(slf4jParent));
+    }
+
+    @Test
+    public void testEquals() {
+        final String childMarkerName = CHILD_MAKER_NAME + "-ASM";
+        final String parentMakerName = PARENT_MARKER_NAME + "-ASM";
+        final org.slf4j.Marker slf4jMarker = org.slf4j.MarkerFactory.getMarker(childMarkerName);
+        final org.slf4j.Marker slf4jMarker2 = org.slf4j.MarkerFactory.getMarker(childMarkerName);
+        final org.slf4j.Marker slf4jParent = org.slf4j.MarkerFactory.getMarker(parentMakerName);
+        slf4jMarker.add(slf4jParent);
+        final Marker log4jParent = MarkerManager.getMarker(parentMakerName);
+        final Marker log4jMarker = MarkerManager.getMarker(childMarkerName);
+        final Marker log4jMarker2 = MarkerManager.getMarker(childMarkerName);
+        assertEquals(log4jParent, log4jParent);
+        assertEquals(log4jMarker, log4jMarker);
+        assertEquals(log4jMarker, log4jMarker2);
+        assertEquals(slf4jMarker, slf4jMarker2);
+        assertNotEquals(log4jParent, log4jMarker);
+        assertNotEquals(log4jMarker, log4jParent);
+    }
+
+    @Test
+    public void testContainsNullMarker() {
+        final String childMarkerName = CHILD_MAKER_NAME + "-CM";
+        final String parentMakerName = PARENT_MARKER_NAME + "-CM";
+        final org.slf4j.Marker slf4jMarker = org.slf4j.MarkerFactory.getMarker(childMarkerName);
+        final org.slf4j.Marker slf4jParent = org.slf4j.MarkerFactory.getMarker(parentMakerName);
+        slf4jMarker.add(slf4jParent);
+        final Marker log4jParent = MarkerManager.getMarker(parentMakerName);
+        final Marker log4jMarker = MarkerManager.getMarker(childMarkerName);
+        final Log4jMarker log4jSlf4jParent = new Log4jMarker(markerFactory, log4jParent);
+        final Log4jMarker log4jSlf4jMarker = new Log4jMarker(markerFactory, log4jMarker);
+        final org.slf4j.Marker nullMarker = null;
+        try {
+            Assert.assertFalse(log4jSlf4jParent.contains(nullMarker));
+            fail("Expected " + IllegalArgumentException.class.getName());
+        } catch (final IllegalArgumentException e) {
+            // expected
+        }
+        try {
+            Assert.assertFalse(log4jSlf4jMarker.contains(nullMarker));
+            fail("Expected " + IllegalArgumentException.class.getName());
+        } catch (final IllegalArgumentException e) {
+            // expected
+        }
+    }
+
+    @Test
+    public void testContainsNullString() {
+        final String childMarkerName = CHILD_MAKER_NAME + "-CS";
+        final String parentMakerName = PARENT_MARKER_NAME + "-CS";
+        final org.slf4j.Marker slf4jMarker = org.slf4j.MarkerFactory.getMarker(childMarkerName);
+        final org.slf4j.Marker slf4jParent = org.slf4j.MarkerFactory.getMarker(parentMakerName);
+        slf4jMarker.add(slf4jParent);
+        final Marker log4jParent = MarkerManager.getMarker(parentMakerName);
+        final Marker log4jMarker = MarkerManager.getMarker(childMarkerName);
+        final Log4jMarker log4jSlf4jParent = new Log4jMarker(markerFactory, log4jParent);
+        final Log4jMarker log4jSlf4jMarker = new Log4jMarker(markerFactory, log4jMarker);
+        final String nullStr = null;
+        Assert.assertFalse(log4jSlf4jParent.contains(nullStr));
+        Assert.assertFalse(log4jSlf4jMarker.contains(nullStr));
+    }
+
+    @Test
+    public void testRemoveNullMarker() {
+        final String childMakerName = CHILD_MAKER_NAME + "-CM";
+        final String parentMakerName = PARENT_MARKER_NAME + "-CM";
+        final org.slf4j.Marker slf4jMarker = org.slf4j.MarkerFactory.getMarker(childMakerName);
+        final org.slf4j.Marker slf4jParent = org.slf4j.MarkerFactory.getMarker(parentMakerName);
+        slf4jMarker.add(slf4jParent);
+        final Marker log4jParent = MarkerManager.getMarker(parentMakerName);
+        final Marker log4jMarker = MarkerManager.getMarker(childMakerName);
+        final Log4jMarker log4jSlf4jParent = new Log4jMarker(markerFactory, log4jParent);
+        final Log4jMarker log4jSlf4jMarker = new Log4jMarker(markerFactory, log4jMarker);
+        final org.slf4j.Marker nullMarker = null;
+        Assert.assertFalse(log4jSlf4jParent.remove(nullMarker));
+        Assert.assertFalse(log4jSlf4jMarker.remove(nullMarker));
+    }
 
 }
diff --git a/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/OverflowTest.java b/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/OverflowTest.java
index 45939192ba..bcaf24b214 100644
--- a/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/OverflowTest.java
+++ b/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/OverflowTest.java
@@ -16,12 +16,12 @@
  */
 package org.apache.logging.slf4j;
 
-import static org.junit.Assert.fail;
-
 import org.apache.logging.log4j.LoggingException;
 import org.junit.Test;
 import org.slf4j.LoggerFactory;
 
+import static org.junit.Assert.fail;
+
 /**
  * Tests StackOverflow when slf4j-impl and to-slf4j are both present.
  */
diff --git a/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/SerializeTest.java b/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/SerializeTest.java
index 7108eef7f3..e2321c7a29 100644
--- a/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/SerializeTest.java
+++ b/log4j-slf4j2-impl/src/test/java/org/apache/logging/slf4j/SerializeTest.java
@@ -16,9 +16,6 @@
  */
 package org.apache.logging.slf4j;
 
-import static org.apache.logging.log4j.test.SerializableMatchers.serializesRoundTrip;
-import static org.hamcrest.MatcherAssert.assertThat;
-
 import java.io.Serializable;
 
 import org.apache.logging.log4j.core.test.junit.LoggerContextRule;
@@ -27,6 +24,9 @@ import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.apache.logging.log4j.test.SerializableMatchers.serializesRoundTrip;
+import static org.hamcrest.MatcherAssert.assertThat;
+
 /**
  *
  */
diff --git a/log4j-smtp/src/main/java/org/apache/logging/log4j/smtp/appender/SmtpManager.java b/log4j-smtp/src/main/java/org/apache/logging/log4j/smtp/appender/SmtpManager.java
index 46f3ac6282..d0f2b2f5d5 100644
--- a/log4j-smtp/src/main/java/org/apache/logging/log4j/smtp/appender/SmtpManager.java
+++ b/log4j-smtp/src/main/java/org/apache/logging/log4j/smtp/appender/SmtpManager.java
@@ -21,7 +21,6 @@ import java.io.IOException;
 import java.io.OutputStream;
 import java.util.Date;
 import java.util.Properties;
-
 import javax.activation.DataSource;
 import javax.mail.Authenticator;
 import javax.mail.Message;
diff --git a/log4j-spring-boot/src/main/java/org/apache/logging/log4j/spring/boot/Log4j2SpringBootLoggingSystem.java b/log4j-spring-boot/src/main/java/org/apache/logging/log4j/spring/boot/Log4j2SpringBootLoggingSystem.java
index a1715e218b..cfe443abbd 100644
--- a/log4j-spring-boot/src/main/java/org/apache/logging/log4j/spring/boot/Log4j2SpringBootLoggingSystem.java
+++ b/log4j-spring-boot/src/main/java/org/apache/logging/log4j/spring/boot/Log4j2SpringBootLoggingSystem.java
@@ -16,6 +16,21 @@
  */
 package org.apache.logging.log4j.spring.boot;
 
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLDecoder;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Properties;
+
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.core.LoggerContext;
@@ -42,21 +57,6 @@ import org.springframework.util.Assert;
 import org.springframework.util.ClassUtils;
 import org.springframework.util.ResourceUtils;
 
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.net.URLDecoder;
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Properties;
-
 /**
  * Override Spring's implementation of the Log4j 2 Logging System to properly support Spring Cloud Config.
  */
diff --git a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/pom.xml b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/pom.xml
index d215342af4..bcf2b52791 100644
--- a/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/pom.xml
+++ b/log4j-spring-cloud-config/log4j-spring-cloud-config-samples/pom.xml
@@ -28,6 +28,7 @@
   <name>Apache Log4j Spring Cloud Config Samples</name>
   <url>http://maven.apache.org</url>
   <properties>
+    <log4jParentDir>${basedir}/../..</log4jParentDir>
     <revapi.skip>true</revapi.skip>
     <maven.doap.skip>true</maven.doap.skip>
     <maven.deploy.skip>true</maven.deploy.skip>
diff --git a/log4j-to-jul/src/main/java/org/apache/logging/log4j/tojul/JULLoggerContextFactory.java b/log4j-to-jul/src/main/java/org/apache/logging/log4j/tojul/JULLoggerContextFactory.java
index afc3c97305..254fa629e5 100644
--- a/log4j-to-jul/src/main/java/org/apache/logging/log4j/tojul/JULLoggerContextFactory.java
+++ b/log4j-to-jul/src/main/java/org/apache/logging/log4j/tojul/JULLoggerContextFactory.java
@@ -16,13 +16,13 @@
  */
 package org.apache.logging.log4j.tojul;
 
+import java.net.URI;
+
 import org.apache.logging.log4j.spi.LoggerContext;
 import org.apache.logging.log4j.spi.LoggerContextFactory;
 import org.apache.logging.log4j.status.StatusLogger;
 import org.apache.logging.log4j.util.LoaderUtil;
 
-import java.net.URI;
-
 /**
  * Implementation of Log4j {@link LoggerContextFactory} SPI.
  * This is a factory to produce the (one and only) {@link JULLoggerContext} instance.
diff --git a/log4j-to-jul/src/main/java/org/apache/logging/log4j/tojul/LazyLog4jLogRecord.java b/log4j-to-jul/src/main/java/org/apache/logging/log4j/tojul/LazyLog4jLogRecord.java
index d0c6a7f9bc..3c805bd610 100644
--- a/log4j-to-jul/src/main/java/org/apache/logging/log4j/tojul/LazyLog4jLogRecord.java
+++ b/log4j-to-jul/src/main/java/org/apache/logging/log4j/tojul/LazyLog4jLogRecord.java
@@ -16,11 +16,11 @@
  */
 package org.apache.logging.log4j.tojul;
 
-import org.apache.logging.log4j.util.StackLocatorUtil;
-
 import java.util.logging.Level;
 import java.util.logging.LogRecord;
 
+import org.apache.logging.log4j.util.StackLocatorUtil;
+
 /**
  * Extension of {@link java.util.logging.LogRecord} with lazy get source related methods based on Log4j's {@link StackLocatorUtil#calcLocation(String)}.
  */
diff --git a/log4j-to-slf4j/src/main/java/org/apache/logging/slf4j/MDCContextMap.java b/log4j-to-slf4j/src/main/java/org/apache/logging/slf4j/MDCContextMap.java
index f224d16ede..b084b84c30 100644
--- a/log4j-to-slf4j/src/main/java/org/apache/logging/slf4j/MDCContextMap.java
+++ b/log4j-to-slf4j/src/main/java/org/apache/logging/slf4j/MDCContextMap.java
@@ -16,14 +16,14 @@
  */
 package org.apache.logging.slf4j;
 
+import java.util.Map;
+import java.util.Map.Entry;
+
 import org.apache.logging.log4j.spi.ThreadContextMap;
 import org.apache.logging.log4j.util.SortedArrayStringMap;
 import org.apache.logging.log4j.util.StringMap;
 import org.slf4j.MDC;
 
-import java.util.Map;
-import java.util.Map.Entry;
-
 /**
  * Bind the ThreadContextMap to the SLF4J MDC.
  */
diff --git a/log4j-web/src/main/java/org/apache/logging/log4j/web/Log4jWebInitializerImpl.java b/log4j-web/src/main/java/org/apache/logging/log4j/web/Log4jWebInitializerImpl.java
index d43ebe909c..414c447f97 100644
--- a/log4j-web/src/main/java/org/apache/logging/log4j/web/Log4jWebInitializerImpl.java
+++ b/log4j-web/src/main/java/org/apache/logging/log4j/web/Log4jWebInitializerImpl.java
@@ -16,6 +16,19 @@
  */
 package org.apache.logging.log4j.web;
 
+import java.net.URI;
+import java.net.URL;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.TimeUnit;
+import javax.servlet.ServletContext;
+
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.core.AbstractLifeCycle;
 import org.apache.logging.log4j.core.LoggerContext;
@@ -31,21 +44,8 @@ import org.apache.logging.log4j.core.selector.NamedContextSelector;
 import org.apache.logging.log4j.core.util.Loader;
 import org.apache.logging.log4j.core.util.NetUtils;
 import org.apache.logging.log4j.spi.LoggerContextFactory;
-import org.apache.logging.log4j.util.Strings;
 import org.apache.logging.log4j.util.LoaderUtil;
-
-import javax.servlet.ServletContext;
-import java.net.URI;
-import java.net.URL;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.TimeUnit;
+import org.apache.logging.log4j.util.Strings;
 
 /**
  * This class initializes and deinitializes Log4j no matter how the initialization occurs.


[logging-log4j2] 03/03: Fix CI configuration

Posted by pk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit bfff3d7a735edda9c161675f23deacea7a942735
Author: Piotr P. Karwasz <pi...@karwasz.org>
AuthorDate: Wed Nov 9 23:20:50 2022 +0100

    Fix CI configuration
    
    By default the CI fetches only 1 commit.
---
 .github/workflows/build.yml            | 4 ++++
 .github/workflows/codeql-analysis.yml  | 2 ++
 .github/workflows/log4j-kafka-test.yml | 2 ++
 pom.xml                                | 4 ++--
 4 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 3b6d836593..172bbe0b41 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -37,6 +37,8 @@ jobs:
 
       - name: Checkout repository
         uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8   # 3.1.0
+        with:
+          fetch-depth: 32
 
       - name: Setup JDK 11
         uses: actions/setup-java@de1bb2b0c5634f0fc4438d7aa9944e68f9bf86cc   # 3.6.0
@@ -94,6 +96,8 @@ jobs:
 
       - name: Checkout repository
         uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8   # 3.1.0
+        with:
+          fetch-depth: 32
 
       - name: Setup JDK 11
         uses: actions/setup-java@de1bb2b0c5634f0fc4438d7aa9944e68f9bf86cc   # 3.6.0
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index b4554ec0b4..1bab4c774d 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -45,6 +45,8 @@ jobs:
 
       - name: Checkout repository
         uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8   # 3.1.0
+        with:
+          fetch-depth: 32
 
       # Initializes the CodeQL tools for scanning.
       - name: Initialize CodeQL
diff --git a/.github/workflows/log4j-kafka-test.yml b/.github/workflows/log4j-kafka-test.yml
index 07950e33bf..b5843042aa 100644
--- a/.github/workflows/log4j-kafka-test.yml
+++ b/.github/workflows/log4j-kafka-test.yml
@@ -31,6 +31,8 @@ jobs:
 
       - name: Checkout repository
         uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8   # 3.1.0
+        with:
+          fetch-depth: 32
 
       - name: Setup JDK 11
         uses: actions/setup-java@de1bb2b0c5634f0fc4438d7aa9944e68f9bf86cc   # 3.6.0
diff --git a/pom.xml b/pom.xml
index 1dcd5c87d9..4c49d8b808 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1410,8 +1410,8 @@
           <artifactId>spotless-maven-plugin</artifactId>
           <version>${spotless-maven-plugin.version}</version>
           <configuration>
-            <!-- Check only files modified since 2022-10-01 -->
-            <ratchetFrom>7a088eb05ba6e341c9fd19ca1ad3db4557624b02</ratchetFrom>
+            <!-- Check last 32 commits -->
+            <ratchetFrom>HEAD~31</ratchetFrom>
             <java>
               <licenseHeader>
                 <file>${log4jParentDir}/checkstyle-header.txt</file>


[logging-log4j2] 01/03: Add minimal checkstyle check

Posted by pk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 5c9dc350ae8a3fb369dff00b21aabfdc19144ef0
Author: Piotr P. Karwasz <pi...@karwasz.org>
AuthorDate: Wed Nov 9 22:36:55 2022 +0100

    Add minimal checkstyle check
    
    The `spotless` plugin check for import and whitespace problems in files
    edited since 2022-10-01.
---
 log4j-samples/pom.xml |  1 +
 pom.xml               | 40 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 41 insertions(+)

diff --git a/log4j-samples/pom.xml b/log4j-samples/pom.xml
index ea6242ea59..bf41523d08 100644
--- a/log4j-samples/pom.xml
+++ b/log4j-samples/pom.xml
@@ -28,6 +28,7 @@
   <name>Apache Log4j Samples</name>
   <url>http://maven.apache.org</url>
   <properties>
+    <log4jParentDir>${basedir}/..</log4jParentDir>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <revapi.skip>true</revapi.skip>
     <maven.doap.skip>true</maven.doap.skip>
diff --git a/pom.xml b/pom.xml
index 80d38d9fee..1dcd5c87d9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -265,6 +265,7 @@
     <maven-taglib-plugin.version>2.4</maven-taglib-plugin.version>
     <revapi-maven-plugin.version>0.12.2</revapi-maven-plugin.version>
     <spotbugs-maven-plugin.version>4.7.2.1</spotbugs-maven-plugin.version>
+    <spotless-maven-plugin.version>2.27.2</spotless-maven-plugin.version>
     <!-- surefire.plugin.version 2.18 yields http://jira.codehaus.org/browse/SUREFIRE-1121, which is fixed in 2.18.1 -->
     <!-- surefire.plugin.version 2.19 yields https://issues.apache.org/jira/browse/SUREFIRE-1193. -->
     <!-- all versions after 2.13 yield https://issues.apache.org/jira/browse/SUREFIRE-720 -->
@@ -1404,6 +1405,33 @@
             <threshold>Normal</threshold>
           </configuration>
         </plugin>
+        <plugin>
+          <groupId>com.diffplug.spotless</groupId>
+          <artifactId>spotless-maven-plugin</artifactId>
+          <version>${spotless-maven-plugin.version}</version>
+          <configuration>
+            <!-- Check only files modified since 2022-10-01 -->
+            <ratchetFrom>7a088eb05ba6e341c9fd19ca1ad3db4557624b02</ratchetFrom>
+            <java>
+              <licenseHeader>
+                <file>${log4jParentDir}/checkstyle-header.txt</file>
+              </licenseHeader>
+
+              <!-- Whitespace -->
+              <trimTrailingWhitespace/>
+              <endWithNewline/>
+              <indent>
+                <spaces>true</spaces>
+                <spacesPerTab>4</spacesPerTab>
+              </indent>
+
+              <!-- Imports -->
+              <importOrder>
+                <order>java,org,com,\#</order>
+              </importOrder>
+            </java>
+          </configuration>
+        </plugin>
       </plugins>
     </pluginManagement>
     <plugins>
@@ -1623,6 +1651,18 @@
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-source-plugin</artifactId>
       </plugin>
+      <plugin>
+        <groupId>com.diffplug.spotless</groupId>
+        <artifactId>spotless-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>default-spotless</id>
+            <goals>
+              <goal>check</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>