You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by vy...@apache.org on 2023/10/05 11:01:47 UTC

[logging-log4j2] branch release/2.21.0 updated (69f912c9c3 -> b355d9ad0f)

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

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


    from 69f912c9c3 Fix certain website issues
     new 32fe710548 Add `security@logging.apache.org` mailing list
     new f9b7cc580c Update Maven and its Wrapper versions to `3.9.4` and `3.2.0`, respectively
     new 14ccdbc46b Swap `/pom.xml` and `/log4j-bom/pom.xml`
     new b355d9ad0f Improve changelogs

The 4 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:
 .mvn/wrapper/maven-wrapper.properties              |   4 +-
 log4j-1.2-api/pom.xml                              |   1 +
 log4j-api-java9/pom.xml                            |   1 +
 log4j-api-test/pom.xml                             |   1 +
 log4j-api/pom.xml                                  |   1 +
 log4j-appserver/pom.xml                            |   1 +
 log4j-bom/pom.xml                                  | 250 ------
 log4j-cassandra/pom.xml                            |   1 +
 log4j-core-its/pom.xml                             |   1 +
 log4j-core-java9/pom.xml                           |   1 +
 log4j-core-test/pom.xml                            |   1 +
 log4j-core/pom.xml                                 |   1 +
 log4j-couchdb/pom.xml                              |   1 +
 log4j-docker/pom.xml                               |   1 +
 log4j-flume-ng/pom.xml                             |   1 +
 log4j-iostreams/pom.xml                            |   1 +
 log4j-jakarta-smtp/pom.xml                         |   1 +
 log4j-jakarta-web/pom.xml                          |   1 +
 log4j-jcl/pom.xml                                  |   1 +
 log4j-jdbc-dbcp2/pom.xml                           |   1 +
 log4j-jpa/pom.xml                                  |   1 +
 log4j-jpl/pom.xml                                  |   1 +
 log4j-jul/pom.xml                                  |   1 +
 log4j-kubernetes/pom.xml                           |   1 +
 log4j-layout-template-json-test/pom.xml            |   1 +
 log4j-layout-template-json/pom.xml                 |   1 +
 log4j-mongodb3/pom.xml                             |   1 +
 log4j-mongodb4/pom.xml                             |   1 +
 log4j-osgi/pom.xml                                 |   1 +
 pom.xml => log4j-parent/pom.xml                    | 591 +------------
 log4j-perf/pom.xml                                 |   1 +
 log4j-slf4j-impl/pom.xml                           |   1 +
 log4j-slf4j2-impl/pom.xml                          |   1 +
 log4j-spring-boot/pom.xml                          |   1 +
 log4j-spring-cloud-config/pom.xml                  |   1 +
 log4j-taglib/pom.xml                               |   1 +
 log4j-to-jul/pom.xml                               |   1 +
 log4j-to-slf4j/pom.xml                             |   1 +
 log4j-web/pom.xml                                  |   1 +
 pom.xml                                            | 944 ++++-----------------
 .../.2.x.x/1231_validation_path_condition.xml      |   2 +-
 .../.2.x.x/1232_log4j-to-sfl4j-2-OSGiMetadata.xml  |   4 +-
 .../1281_remove_locale-dependent_toLowerCase.xml   |   2 +-
 .../.2.x.x/1284_redirect_old_javadoc_urls.xml      |   2 +-
 .../.2.x.x/1312_add_environment_arbiter.xml        |   2 +-
 src/changelog/.2.x.x/1366_fix_java_sql_date.xml    |   2 +-
 ...1367_Missing-Bundle-Activation-OSGiMetadata.xml |   2 +-
 .../.2.x.x/1369_bump_build_requirement_jdk_11.xml  |   2 +-
 ...tringResolver_uses_instance_after_recycling.xml |   2 +-
 .../1381_support_parents_in_MarkerResolver.xml     |   2 +-
 .../1391_fix_NPE_in_PluginElementVisitor.xml       |   2 +-
 ..._fix_ArrayOutOfBound_in_Log4jFixedFormatter.xml |   2 +-
 ...5_fix_DatePatternConverter_when_TL_disabled.xml |   2 +-
 ...1530_fix_runtime-dependencies_documentation.xml |   2 +-
 .../.2.x.x/1533_set_fqcn_eventbuilder.xml          |   2 +-
 .../.2.x.x/1550_multiple_filter_invocations.xml    |   2 +-
 src/changelog/.2.x.x/1589_mongodb_tests.xml        |   2 +-
 .../.2.x.x/1640_java_9_stack_trace_element.xml     |   2 +-
 src/changelog/.2.x.x/1646_unsafe_cleaner.xml       |   2 +-
 .../.2.x.x/1650_fix_rollover_strategy_log4j1.xml   |   2 +-
 .../.2.x.x/1681_fix_and_improve_lookup_docs.xml    |   2 +-
 .../.2.x.x/1692_make_JTL_LocationAware.xml         |   2 +-
 .../1747_mongodb4-long-collection-size-conifg.xml  |   2 +-
 .../.2.x.x/1786_fix_async_context_data_loss.xml    |   2 +-
 .../.2.x.x/LOG4J2-170_Improve_XML_schema.xml       |   2 +-
 .../LOG4J2-3217_fix_NPE_in_ContextSelector.xml     |   2 +-
 .../LOG4J2-3657_fix_TL_usage_in_AbstractLogger.xml |   2 +-
 ...ix_notEmpty_converter_for_empty_collections.xml |   2 +-
 ...4J2-3663_fix_file_descriptor_leak_on_Tomcat.xml |   2 +-
 src/changelog/.2.x.x/OsgiServiceLocator_npe.xml    |   2 +-
 src/changelog/.2.x.x/PreventResourceLeak.xml       |   2 +-
 src/changelog/.2.x.x/UpdateSurefireRelease.xml     |  26 -
 .../new-release-process.xml}                       |   5 +-
 src/site/_release-notes/_2.x.x.adoc                |  64 +-
 74 files changed, 261 insertions(+), 1723 deletions(-)
 delete mode 100644 log4j-bom/pom.xml
 copy pom.xml => log4j-parent/pom.xml (61%)
 delete mode 100644 src/changelog/.2.x.x/UpdateSurefireRelease.xml
 copy src/changelog/{2.12.0/Update_tests_from_H2_1_4_197_to_1_4_199.xml => .2.x.x/new-release-process.xml} (88%)


[logging-log4j2] 03/04: Swap `/pom.xml` and `/log4j-bom/pom.xml`

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

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

commit 14ccdbc46bb50b410e5f058c58e187784d48fd80
Author: Volkan Yazıcı <vo...@yazi.ci>
AuthorDate: Thu Oct 5 12:45:34 2023 +0200

    Swap `/pom.xml` and `/log4j-bom/pom.xml`
    
    - `/pom.xml` is moved to `/log4j-parent/pom.xml`
    - `/log4j-bom/pom.xml` is moved to `/pom.xml`
    - Implements the BOM organization described by Maven[1].
      That is, `parent` inherits from `bom`.
    - Takes advantage of `flatten-bom` provided by `logging-parent`
    - Identical scheme to the one found in `-tools` and `-transformation`
    
    [1] https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#bill-of-materials-bom-poms
---
 log4j-1.2-api/pom.xml                   |   1 +
 log4j-api-java9/pom.xml                 |   1 +
 log4j-api-test/pom.xml                  |   1 +
 log4j-api/pom.xml                       |   1 +
 log4j-appserver/pom.xml                 |   1 +
 log4j-bom/pom.xml                       | 250 ---------
 log4j-cassandra/pom.xml                 |   1 +
 log4j-core-its/pom.xml                  |   1 +
 log4j-core-java9/pom.xml                |   1 +
 log4j-core-test/pom.xml                 |   1 +
 log4j-core/pom.xml                      |   1 +
 log4j-couchdb/pom.xml                   |   1 +
 log4j-docker/pom.xml                    |   1 +
 log4j-flume-ng/pom.xml                  |   1 +
 log4j-iostreams/pom.xml                 |   1 +
 log4j-jakarta-smtp/pom.xml              |   1 +
 log4j-jakarta-web/pom.xml               |   1 +
 log4j-jcl/pom.xml                       |   1 +
 log4j-jdbc-dbcp2/pom.xml                |   1 +
 log4j-jpa/pom.xml                       |   1 +
 log4j-jpl/pom.xml                       |   1 +
 log4j-jul/pom.xml                       |   1 +
 log4j-kubernetes/pom.xml                |   1 +
 log4j-layout-template-json-test/pom.xml |   1 +
 log4j-layout-template-json/pom.xml      |   1 +
 log4j-mongodb3/pom.xml                  |   1 +
 log4j-mongodb4/pom.xml                  |   1 +
 log4j-osgi/pom.xml                      |   1 +
 pom.xml => log4j-parent/pom.xml         | 596 +-------------------
 log4j-perf/pom.xml                      |   1 +
 log4j-slf4j-impl/pom.xml                |   1 +
 log4j-slf4j2-impl/pom.xml               |   1 +
 log4j-spring-boot/pom.xml               |   1 +
 log4j-spring-cloud-config/pom.xml       |   1 +
 log4j-taglib/pom.xml                    |   1 +
 log4j-to-jul/pom.xml                    |   1 +
 log4j-to-slf4j/pom.xml                  |   1 +
 log4j-web/pom.xml                       |   1 +
 pom.xml                                 | 933 +++++---------------------------
 39 files changed, 184 insertions(+), 1631 deletions(-)

diff --git a/log4j-1.2-api/pom.xml b/log4j-1.2-api/pom.xml
index a3d3fc1cda..ef87feea56 100644
--- a/log4j-1.2-api/pom.xml
+++ b/log4j-1.2-api/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
   <artifactId>log4j-1.2-api</artifactId>
   <packaging>jar</packaging>
diff --git a/log4j-api-java9/pom.xml b/log4j-api-java9/pom.xml
index dcc2191041..8322ef1f91 100644
--- a/log4j-api-java9/pom.xml
+++ b/log4j-api-java9/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
   <artifactId>log4j-api-java9</artifactId>
   <packaging>pom</packaging>
diff --git a/log4j-api-test/pom.xml b/log4j-api-test/pom.xml
index 8b19379332..1064727462 100644
--- a/log4j-api-test/pom.xml
+++ b/log4j-api-test/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
   <artifactId>log4j-api-test</artifactId>
   <packaging>jar</packaging>
diff --git a/log4j-api/pom.xml b/log4j-api/pom.xml
index c880efd890..73693471d0 100644
--- a/log4j-api/pom.xml
+++ b/log4j-api/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
   <artifactId>log4j-api</artifactId>
   <packaging>jar</packaging>
diff --git a/log4j-appserver/pom.xml b/log4j-appserver/pom.xml
index 2fa8acd967..513a6afdb9 100644
--- a/log4j-appserver/pom.xml
+++ b/log4j-appserver/pom.xml
@@ -23,6 +23,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
 
   <artifactId>log4j-appserver</artifactId>
diff --git a/log4j-bom/pom.xml b/log4j-bom/pom.xml
deleted file mode 100644
index c0b4cec6f2..0000000000
--- a/log4j-bom/pom.xml
+++ /dev/null
@@ -1,250 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ 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.
-  -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.apache.logging</groupId>
-    <artifactId>logging-parent</artifactId>
-    <version>10.1.1</version>
-  </parent>
-  <groupId>org.apache.logging.log4j</groupId>
-  <artifactId>log4j-bom</artifactId>
-  <version>${revision}</version>
-  <packaging>pom</packaging>
-  <name>Apache Log4j BOM</name>
-  <description>Apache Log4j Bill of Materials</description>
-
-  <scm>
-    <tag>log4j-2.20.1-rc1</tag>
-  </scm>
-
-  <properties>
-    <maven.site.skip>true</maven.site.skip>
-    <maven.site.deploy.skip>true</maven.site.deploy.skip>
-    <project.build.outputTimestamp>1676697577</project.build.outputTimestamp>
-    <!-- JDK version of the main Maven process (used in ASF parent POM) -->
-    <minimalJavaBuildVersion>[11, )</minimalJavaBuildVersion>
-    <revision>2.21.0-SNAPSHOT</revision>
-  </properties>
-
-  <dependencyManagement>
-    <dependencies>
-      <!-- Legacy Log4j 1.2 API -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-1.2-api</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- Log4j API -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-api</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-api-test</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- Application Service Support -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-appserver</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- Cassandra Appender Plugin -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-cassandra</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- Core Log4j -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-core</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-core-test</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- CouchDB Appender Plugin -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-couchdb</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- Docker support -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-docker</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- Apache Flume Bridge -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-flume-ng</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- Streaming API -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-iostreams</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- SMTP appender -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-jakarta-smtp</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-jakarta-web</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- Commons Logging Compatibility API -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-jcl</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- JMX GUI -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-jmx-gui</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- JPA Appender Plugin -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-jpa</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- Java System Platform Loggerr -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-jpl</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- java.util.logging adapter -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-jul</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- Kubernetes support -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-kubernetes</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- JSON template layout -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-layout-template-json</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-layout-template-json-test</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- MongoDB 3 Appender Plugin -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-mongodb3</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- MongoDB 4 Appender Plugin -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-mongodb4</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- OSGI tests -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-osgi</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- SLF4J 2.0 Compatibility API -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-slf4j2-impl</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- SLF4J Compatibility API -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-slf4j-impl</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- Spring Boot support  -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-spring-boot</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- Spring Cloud Config Client -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-spring-cloud-config-client</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- JSP Tag Library -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-taglib</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- JUL Adapter -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-to-jul</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- SLF4J Adapter -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-to-slf4j</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <!-- Web Application Support -->
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-web</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-site-plugin</artifactId>
-        <!-- version inherited from ASF Parent -->
-        <configuration>
-          <skip>true</skip>
-          <skipDeploy>true</skipDeploy>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-</project>
diff --git a/log4j-cassandra/pom.xml b/log4j-cassandra/pom.xml
index a6c721177d..9eef53dad7 100644
--- a/log4j-cassandra/pom.xml
+++ b/log4j-cassandra/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
 
   <artifactId>log4j-cassandra</artifactId>
diff --git a/log4j-core-its/pom.xml b/log4j-core-its/pom.xml
index 65e7e87909..7dfef3ef15 100644
--- a/log4j-core-its/pom.xml
+++ b/log4j-core-its/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
   <artifactId>log4j-core-its</artifactId>
   <packaging>jar</packaging>
diff --git a/log4j-core-java9/pom.xml b/log4j-core-java9/pom.xml
index 581c54e1f6..bbf58fc832 100644
--- a/log4j-core-java9/pom.xml
+++ b/log4j-core-java9/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
   <artifactId>log4j-core-java9</artifactId>
   <packaging>pom</packaging>
diff --git a/log4j-core-test/pom.xml b/log4j-core-test/pom.xml
index 0549847645..e89e581215 100644
--- a/log4j-core-test/pom.xml
+++ b/log4j-core-test/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
   <artifactId>log4j-core-test</artifactId>
   <packaging>jar</packaging>
diff --git a/log4j-core/pom.xml b/log4j-core/pom.xml
index 74d6bf3beb..3e3031003c 100644
--- a/log4j-core/pom.xml
+++ b/log4j-core/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
   <artifactId>log4j-core</artifactId>
   <packaging>jar</packaging>
diff --git a/log4j-couchdb/pom.xml b/log4j-couchdb/pom.xml
index 1c9be0e23d..a68fa998d8 100644
--- a/log4j-couchdb/pom.xml
+++ b/log4j-couchdb/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
 
   <artifactId>log4j-couchdb</artifactId>
diff --git a/log4j-docker/pom.xml b/log4j-docker/pom.xml
index b87d59c504..f460b33168 100644
--- a/log4j-docker/pom.xml
+++ b/log4j-docker/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
   <artifactId>log4j-docker</artifactId>
   <packaging>jar</packaging>
diff --git a/log4j-flume-ng/pom.xml b/log4j-flume-ng/pom.xml
index 9a78d6a8ba..292102728f 100644
--- a/log4j-flume-ng/pom.xml
+++ b/log4j-flume-ng/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
   <artifactId>log4j-flume-ng</artifactId>
   <packaging>jar</packaging>
diff --git a/log4j-iostreams/pom.xml b/log4j-iostreams/pom.xml
index 95b75d1663..b69f6579ef 100644
--- a/log4j-iostreams/pom.xml
+++ b/log4j-iostreams/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
   <artifactId>log4j-iostreams</artifactId>
   <packaging>jar</packaging>
diff --git a/log4j-jakarta-smtp/pom.xml b/log4j-jakarta-smtp/pom.xml
index 27129e8032..77fae53067 100644
--- a/log4j-jakarta-smtp/pom.xml
+++ b/log4j-jakarta-smtp/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
 
   <artifactId>log4j-jakarta-smtp</artifactId>
diff --git a/log4j-jakarta-web/pom.xml b/log4j-jakarta-web/pom.xml
index a279bd2745..5ea82df3ab 100644
--- a/log4j-jakarta-web/pom.xml
+++ b/log4j-jakarta-web/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
 
   <artifactId>log4j-jakarta-web</artifactId>
diff --git a/log4j-jcl/pom.xml b/log4j-jcl/pom.xml
index 56b8874bcc..01421fa980 100644
--- a/log4j-jcl/pom.xml
+++ b/log4j-jcl/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
   <artifactId>log4j-jcl</artifactId>
   <packaging>jar</packaging>
diff --git a/log4j-jdbc-dbcp2/pom.xml b/log4j-jdbc-dbcp2/pom.xml
index 6cfb82949c..aece89210b 100644
--- a/log4j-jdbc-dbcp2/pom.xml
+++ b/log4j-jdbc-dbcp2/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
 
   <artifactId>log4j-jdbc-dbcp2</artifactId>
diff --git a/log4j-jpa/pom.xml b/log4j-jpa/pom.xml
index 403edada27..0aeeeb8270 100644
--- a/log4j-jpa/pom.xml
+++ b/log4j-jpa/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
 
   <artifactId>log4j-jpa</artifactId>
diff --git a/log4j-jpl/pom.xml b/log4j-jpl/pom.xml
index 4ff470603a..b23275460c 100644
--- a/log4j-jpl/pom.xml
+++ b/log4j-jpl/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
 
   <artifactId>log4j-jpl</artifactId>
diff --git a/log4j-jul/pom.xml b/log4j-jul/pom.xml
index 23f59779d2..8f96b2a9cf 100644
--- a/log4j-jul/pom.xml
+++ b/log4j-jul/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
 
   <artifactId>log4j-jul</artifactId>
diff --git a/log4j-kubernetes/pom.xml b/log4j-kubernetes/pom.xml
index d32299200a..34a32863f6 100644
--- a/log4j-kubernetes/pom.xml
+++ b/log4j-kubernetes/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
   <artifactId>log4j-kubernetes</artifactId>
   <packaging>jar</packaging>
diff --git a/log4j-layout-template-json-test/pom.xml b/log4j-layout-template-json-test/pom.xml
index d92898980e..8d2bc5a3bb 100644
--- a/log4j-layout-template-json-test/pom.xml
+++ b/log4j-layout-template-json-test/pom.xml
@@ -23,6 +23,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
 
   <artifactId>log4j-layout-template-json-test</artifactId>
diff --git a/log4j-layout-template-json/pom.xml b/log4j-layout-template-json/pom.xml
index aabd87d589..1b21df5b97 100644
--- a/log4j-layout-template-json/pom.xml
+++ b/log4j-layout-template-json/pom.xml
@@ -23,6 +23,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
 
   <artifactId>log4j-layout-template-json</artifactId>
diff --git a/log4j-mongodb3/pom.xml b/log4j-mongodb3/pom.xml
index cecee97699..871a4b78a6 100644
--- a/log4j-mongodb3/pom.xml
+++ b/log4j-mongodb3/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
 
   <artifactId>log4j-mongodb3</artifactId>
diff --git a/log4j-mongodb4/pom.xml b/log4j-mongodb4/pom.xml
index 7df4640a76..4aa2a494ee 100644
--- a/log4j-mongodb4/pom.xml
+++ b/log4j-mongodb4/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
 
   <artifactId>log4j-mongodb4</artifactId>
diff --git a/log4j-osgi/pom.xml b/log4j-osgi/pom.xml
index c0c497d876..f394861fb2 100644
--- a/log4j-osgi/pom.xml
+++ b/log4j-osgi/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
   <artifactId>log4j-osgi</artifactId>
   <packaging>jar</packaging>
diff --git a/pom.xml b/log4j-parent/pom.xml
similarity index 61%
copy from pom.xml
copy to log4j-parent/pom.xml
index 6bafbf31e7..bd197f90a4 100644
--- a/pom.xml
+++ b/log4j-parent/pom.xml
@@ -15,329 +15,25 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
-    <groupId>org.apache.logging</groupId>
-    <artifactId>logging-parent</artifactId>
-    <version>10.1.1</version>
-    <relativePath />
+    <groupId>org.apache.logging.log4j</groupId>
+    <artifactId>log4j-bom</artifactId>
+    <version>${revision}</version>
   </parent>
 
-  <groupId>org.apache.logging.log4j</groupId>
+  <!-- Using `log4j` instead of `log4j-parent` for backward compatibility: -->
   <artifactId>log4j</artifactId>
-  <version>${revision}</version>
   <packaging>pom</packaging>
 
-  <name>Apache Log4j 2</name>
-  <description>Apache Log4j 2</description>
-  <url>https://logging.apache.org/log4j/2.x/</url>
-
-  <inceptionYear>1999</inceptionYear>
-
-  <developers>
-
-    <developer>
-      <id>rgoers</id>
-      <name>Ralph Goers</name>
-      <email>rgoers@apache.org</email>
-      <organization>Nextiva</organization>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>America/Phoenix</timezone>
-    </developer>
-
-    <developer>
-      <id>ggregory</id>
-      <name>Gary Gregory</name>
-      <email>ggregory@apache.org</email>
-      <url>https://www.garygregory.com</url>
-      <organization>The Apache Software Foundation</organization>
-      <organizationUrl>https://www.apache.org/</organizationUrl>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>America/New_York</timezone>
-    </developer>
-
-    <developer>
-      <id>sdeboy</id>
-      <name>Scott Deboy</name>
-      <email>sdeboy@apache.org</email>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>America/Los_Angeles</timezone>
-    </developer>
-
-    <developer>
-      <id>rpopma</id>
-      <name>Remko Popma</name>
-      <email>rpopma@apache.org</email>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>Asia/Tokyo</timezone>
-    </developer>
-
-    <developer>
-      <id>nickwilliams</id>
-      <name>Nick Williams</name>
-      <email>nickwilliams@apache.org</email>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>America/Chicago</timezone>
-    </developer>
-
-    <developer>
-      <id>mattsicker</id>
-      <name>Matt Sicker</name>
-      <email>mattsicker@apache.org</email>
-      <organization>Apple</organization>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>America/Chicago</timezone>
-    </developer>
-
-    <developer>
-      <id>bbrouwer</id>
-      <name>Bruce Brouwer</name>
-      <email>bruce.brouwer@gmail.com</email>
-      <roles>
-        <role>Committer</role>
-      </roles>
-      <timezone>America/Detroit</timezone>
-    </developer>
-
-    <developer>
-      <id>rgupta</id>
-      <name>Raman Gupta</name>
-      <email>rgupta@apache.org</email>
-      <roles>
-        <role>Committer</role>
-      </roles>
-      <timezone>Asia/Kolkata</timezone>
-    </developer>
-
-    <developer>
-      <id>mikes</id>
-      <name>Mikael Ståldal</name>
-      <email>mikes@apache.org</email>
-      <organization>Spotify</organization>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>Europe/Stockholm</timezone>
-    </developer>
-
-    <developer>
-      <id>ckozak</id>
-      <name>Carter Kozak</name>
-      <email>ckozak@apache.org</email>
-      <url>https://github.com/carterkozak</url>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>America/New York</timezone>
-    </developer>
-
-    <developer>
-      <id>vy</id>
-      <name>Volkan Yazıcı</name>
-      <email>vy@apache.org</email>
-      <roles>
-        <role>PMC Chair</role>
-      </roles>
-      <timezone>Europe/Amsterdam</timezone>
-    </developer>
-
-    <developer>
-      <id>rgrabowski</id>
-      <name>Ron Grabowski</name>
-      <email>rgrabowski@apache.org</email>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>America/New_York</timezone>
-    </developer>
-
-    <developer>
-      <id>pkarwasz</id>
-      <name>Piotr P. Karwasz</name>
-      <email>pkarwasz@apache.org</email>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>Europe/Warsaw</timezone>
-    </developer>
-
-    <developer>
-      <id>grobmeier</id>
-      <name>Christian Grobmeier</name>
-      <email>grobmeier@apache.org</email>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>Europe/Berlin</timezone>
-    </developer>
-
-  </developers>
-
-  <mailingLists>
-
-    <mailingList>
-      <name>log4j-user</name>
-      <subscribe>log4j-user-subscribe@logging.apache.org</subscribe>
-      <unsubscribe>log4j-user-unsubscribe@logging.apache.org</unsubscribe>
-      <post>log4j-user@logging.apache.org</post>
-      <archive>https://lists.apache.org/list.html?log4j-user@logging.apache.org</archive>
-    </mailingList>
-
-    <mailingList>
-      <name>dev</name>
-      <subscribe>dev-subscribe@logging.apache.org</subscribe>
-      <unsubscribe>dev-unsubscribe@logging.apache.org</unsubscribe>
-      <post>dev@logging.apache.org</post>
-      <archive>https://lists.apache.org/list.html?dev@logging.apache.org</archive>
-    </mailingList>
-
-    <mailingList>
-      <name>security</name>
-      <subscribe>security-subscribe@logging.apache.org</subscribe>
-      <unsubscribe>security-unsubscribe@logging.apache.org</unsubscribe>
-      <post>security@logging.apache.org</post>
-      <archive>https://lists.apache.org/list.html?security@logging.apache.org</archive>
-    </mailingList>
-
-  </mailingLists>
-
-  <modules>
-
-    <!-- Unpublished modules first: -->
-    <module>log4j-api-java9</module>
-    <module>log4j-core-java9</module>
-
-    <!-- Modules in alphabetical order: -->
-    <module>log4j-1.2-api</module>
-    <module>log4j-api</module>
-    <module>log4j-api-test</module>
-    <module>log4j-appserver</module>
-    <module>log4j-bom</module>
-    <module>log4j-cassandra</module>
-    <module>log4j-core</module>
-    <module>log4j-core-its</module>
-    <module>log4j-core-test</module>
-    <module>log4j-couchdb</module>
-    <module>log4j-docker</module>
-    <module>log4j-flume-ng</module>
-    <module>log4j-iostreams</module>
-    <module>log4j-jakarta-smtp</module>
-    <module>log4j-jakarta-web</module>
-    <module>log4j-jcl</module>
-    <module>log4j-jpa</module>
-    <module>log4j-jpl</module>
-    <module>log4j-jdbc-dbcp2</module>
-    <module>log4j-jul</module>
-    <module>log4j-kubernetes</module>
-    <module>log4j-layout-template-json</module>
-    <module>log4j-layout-template-json-test</module>
-    <module>log4j-mongodb3</module>
-    <module>log4j-mongodb4</module>
-    <module>log4j-osgi</module>
-    <module>log4j-perf</module>
-    <module>log4j-slf4j-impl</module>
-    <module>log4j-slf4j2-impl</module>
-    <module>log4j-spring-boot</module>
-    <module>log4j-spring-cloud-config</module>
-    <module>log4j-taglib</module>
-    <module>log4j-to-slf4j</module>
-    <module>log4j-to-jul</module>
-    <module>log4j-web</module>
-
-  </modules>
-
-  <scm>
-    <connection>scm:git:https://github.com/apache/logging-log4j2.git</connection>
-    <developerConnection>scm:git:https://github.com/apache/logging-log4j2.git</developerConnection>
-    <tag>2.x</tag>
-    <url>https://github.com/apache/logging-log4j2</url>
-  </scm>
-
-  <issueManagement>
-    <system>GitHub Issues</system>
-    <url>https://github.com/apache/logging-log4j2/issues</url>
-  </issueManagement>
-
-  <ciManagement>
-    <system>GitHub Actions</system>
-    <url>https://github.com/apache/logging-log4j2/actions</url>
-  </ciManagement>
-
-  <distributionManagement>
-    <!-- `site` is only included to make `maven-site-plugin` stop complaining: -->
-    <site>
-      <id>www.example.com</id>
-      <url>scp://www.example.com/www/docs/project/</url>
-    </site>
-    <downloadUrl>https://logging.apache.org/log4j/2.x/download.html</downloadUrl>
-    <!-- `repository` from ASF parent POM (id: apache.releases.https) -->
-    <!-- `snapshotRepository` from ASF parent POM (id: apache.snapshots.https) -->
-  </distributionManagement>
+  <name>Apache Log4j Parent</name>
+  <description>Apache Log4j Parent</description>
 
   <properties>
 
-    <!-- ===========================
-         Release-specific properties
-         =========================== -->
-    <revision>2.21.0-SNAPSHOT</revision>
-
-    <!-- =================
-         Common properties
-         ================= -->
-    <manifestfile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestfile>
-    <maven.compiler.release>8</maven.compiler.release>
-    <maven.compiler.target>${maven.compiler.release}</maven.compiler.target>
-    <!-- JDK version of the main Maven process (used in ASF parent POM) -->
-    <minimalJavaBuildVersion>[11, )</minimalJavaBuildVersion>
-    <docLabel>Site Documentation</docLabel>
-    <projectDir />
-    <module.name />
-    <!-- TODO: fix errors and reenable SpotBugs -->
-    <spotbugs.skip>true</spotbugs.skip>
-
-    <!-- ========================
-         Site-specific properties
-         ======================== -->
-    <!-- `maven-javadoc-plugin` is only used to generate Javadoc HTML used in the website.
-         We don't deploy any Javadoc JARs.
-         We also don't generate Javadoc HTML for all modules, but only for two modules: `log4j-api` and `log4j-core`. -->
-    <javadoc.skip>true</javadoc.skip>
-    <!-- Skipping `maven-site-plugin` globally.
-         It is manually enabled only for the parent module below. -->
-    <maven.site.skip>true</maven.site.skip>
-    <maven.site.deploy.skip>true</maven.site.deploy.skip>
-
-    <!-- ██     ██  █████  ██████  ███    ██ ██ ███    ██  ██████  ██
-         ██     ██ ██   ██ ██   ██ ████   ██ ██ ████   ██ ██       ██
-         ██  █  ██ ███████ ██████  ██ ██  ██ ██ ██ ██  ██ ██   ███ ██
-         ██ ███ ██ ██   ██ ██   ██ ██  ██ ██ ██ ██  ██ ██ ██    ██
-          ███ ███  ██   ██ ██   ██ ██   ████ ██ ██   ████  ██████  ██
-
-         Dependency and plugin version properties might have many implications beyond their simple appearance!
-         Walk through the following checklist before making a change in these properties!
-
-         1. Follow the `<artifactId>.version` naming convention
-         2. Make sure properties are sorted in alphabetical order
-         3. Check parent POMs for any associations.
-            For instance, Maven Surefire Plugin version property is such an exception.
-            It is named as `surefire.version` rather than `maven-surefire-plugin.version`, since `surefire.version` is already employed by `apache.org:apache` parent POM.
-         4. Think of consequences when users _import_ this POM along with, e.g., `spring-boot-dependencies` BOM -->
-
     <!-- =================================================
          Plugin version properties (in alphabetical order)
          ================================================= -->
@@ -452,19 +148,12 @@
     <httpclient.version>4.5.14</httpclient.version>
     <httpcore.version>4.4.16</httpcore.version>
     <jna.version>5.13.0</jna.version>
+
   </properties>
 
   <dependencyManagement>
     <dependencies>
 
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-bom</artifactId>
-        <version>${project.version}</version>
-        <type>pom</type>
-        <scope>import</scope>
-      </dependency>
-
       <dependency>
         <groupId>org.ow2.asm</groupId>
         <artifactId>asm-bom</artifactId>
@@ -1318,7 +1007,6 @@
   </dependencies>
 
   <build>
-
     <pluginManagement>
       <plugins>
 
@@ -1345,274 +1033,6 @@
 
       </plugins>
     </pluginManagement>
-
-    <plugins>
-
-      <!-- Apache RAT (Release Audit Tool) check to verify licenses.
-           `apache-rat-plugin`: https://creadur.apache.org/rat/apache-rat-plugin/
-           Release Audit Tool: https://creadur.apache.org/rat/index.html -->
-      <plugin>
-        <groupId>org.apache.rat</groupId>
-        <artifactId>apache-rat-plugin</artifactId>
-        <configuration>
-          <consoleOutput>true</consoleOutput>
-          <excludes combine.children="append">
-            <!-- Matches other RAT configurations in this POM -->
-            <exclude>src/main/resources/META-INF/services/**/*</exclude>
-            <exclude>src/test/resources/**/*</exclude>
-            <!-- IDE settings imports -->
-            <exclude>src/ide/**</exclude>
-            <!-- jQuery is MIT-licensed, but RAT can't figure it out -->
-            <exclude>src/site/resources/js/jquery.js</exclude>
-            <exclude>src/site/resources/js/jquery.min.js</exclude>
-            <!-- Generated files -->
-            <exclude>**/.toDelete</exclude>
-            <exclude>velocity.log</exclude>
-            <!-- Other -->
-            <exclude>felix-cache/**</exclude>
-            <exclude>**/README.md</exclude>
-            <exclude>SECURITY.md</exclude>
-            <exclude>**/*.yml</exclude>
-            <exclude>**/*.yaml</exclude>
-            <exclude>**/*.json</exclude>
-            <excllude>**/images/*.drawio</excllude>
-            <exclude>**/fluent-bit.conf</exclude>
-            <exclude>**/rabbitmq.config</exclude>
-            <exclude>**/MANIFEST.MF</exclude>
-            <exclude>.surefire-*</exclude>
-          </excludes>
-        </configuration>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <configuration>
-          <!-- TODO: this only applies to `log4j-core` dependents -->
-          <annotationProcessorPaths combine.children="append">
-            <path>
-              <groupId>org.apache.logging.log4j</groupId>
-              <artifactId>log4j-core</artifactId>
-              <version>${project.version}</version>
-            </path>
-          </annotationProcessorPaths>
-        </configuration>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <configuration>
-          <forkCount>1C</forkCount>
-          <reuseForks>false</reuseForks>
-          <runOrder>alphabetical</runOrder>
-          <systemPropertyVariables>
-            <java.awt.headless>true</java.awt.headless>
-          </systemPropertyVariables>
-        </configuration>
-      </plugin>
-
-      <!-- ███████ ████████  █████  ██████  ████████        ███████ ██ ████████ ███████
-           ██         ██    ██   ██ ██   ██    ██    ██     ██      ██    ██    ██
-           ███████    ██    ███████ ██████     ██           ███████ ██    ██    █████
-                ██    ██    ██   ██ ██   ██    ██    ██          ██ ██    ██    ██
-           ███████    ██    ██   ██ ██   ██    ██           ███████ ██    ██    ███████
-
-           This section consists of plugins responsible for generating the site.
-           Note that only this (i.e., the parent) module is supposed to have a `site` goal, it is skipped for all other modules! -->
-
-      <!-- Define `currentYear` property used while generating the site -->
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>build-helper-maven-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>define-currentYear-property</id>
-            <goals>
-              <goal>timestamp-property</goal>
-            </goals>
-            <phase>pre-site</phase>
-            <configuration>
-              <name>currentYear</name>
-              <pattern>yyyy</pattern>
-              <locale>en_US</locale>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-javadoc-plugin</artifactId>
-        <configuration combine.self="override">
-          <!-- `notimestamp` avoids `diff` noise and is required for reproducible builds: https://maven.apache.org/guides/mini/guide-reproducible-builds.html -->
-          <notimestamp>true</notimestamp>
-          <skip>${javadoc.skip}</skip>
-          <bottom><![CDATA[<p align="center">
-              Copyright &copy; {inceptionYear}-{currentYear} {organizationName}.
-              All Rights Reserved.<br/>
-              Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo, and the Apache Log4j logo are trademarks of The Apache Software Foundation.
-            </p>]]></bottom>
-          <failOnError>false</failOnError>
-        </configuration>
-        <executions>
-          <execution>
-            <id>generate-site-javadoc</id>
-            <goals>
-              <goal>javadoc-no-fork</goal>
-            </goals>
-            <phase>pre-site</phase>
-          </execution>
-        </executions>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-resources-plugin</artifactId>
-        <executions>
-          <!-- Copy `src/site` to `target/generated-sources/site` -->
-          <execution>
-            <id>copy-site</id>
-            <goals>
-              <goal>copy-resources</goal>
-            </goals>
-            <phase>pre-site</phase>
-            <inherited>false</inherited>
-            <configuration>
-              <outputDirectory>${project.build.directory}/generated-sources/site</outputDirectory>
-              <resources>
-                <resource>
-                  <directory>${project.basedir}/src/site</directory>
-                  <excludes>
-                    <exclude>/resources/glyphicons-halflings-2-1.zip</exclude>
-                    <exclude>/resources/logo/**/*</exclude>
-                  </excludes>
-                </resource>
-              </resources>
-            </configuration>
-          </execution>
-          <!-- Copy `target/site/apidocs` to the parent module's `target/site/javadoc/<artifactId>` folder -->
-          <execution>
-            <id>copy-javadoc</id>
-            <goals>
-              <goal>copy-resources</goal>
-            </goals>
-            <phase>site</phase>
-            <configuration>
-              <skip>${javadoc.skip}</skip>
-              <outputDirectory>${project.basedir}/target/site/javadoc/${project.artifactId}</outputDirectory>
-              <resources>
-                <resource>
-                  <directory>${project.build.directory}/site/apidocs</directory>
-                </resource>
-              </resources>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-project-info-reports-plugin</artifactId>
-        <inherited>false</inherited>
-        <executions>
-          <execution>
-            <id>team-list</id>
-            <goals>
-              <goal>team</goal>
-            </goals>
-            <phase>site</phase>
-          </execution>
-        </executions>
-      </plugin>
-
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-site-plugin</artifactId>
-        <inherited>false</inherited>
-        <configuration combine.self="override">
-          <skip>false</skip>
-          <generateProjectInfo>false</generateProjectInfo>
-          <generateReports>false</generateReports>
-          <siteDirectory>${project.build.directory}/generated-sources/site</siteDirectory>
-          <locales>en</locales>
-          <!-- Exclude the navigation file for Maven 1 sites as it interferes with the site generation. -->
-          <moduleExcludes>
-            <xdoc>navigation.xml</xdoc>
-          </moduleExcludes>
-          <attributes>
-            <Log4jReleaseVersion>${revision}</Log4jReleaseVersion>
-          </attributes>
-        </configuration>
-        <dependencies>
-          <dependency>
-            <groupId>org.asciidoctor</groupId>
-            <artifactId>asciidoctor-maven-plugin</artifactId>
-            <version>${asciidoctor-maven-plugin.version}</version>
-          </dependency>
-        </dependencies>
-      </plugin>
-
-      <!-- ███████ ███    ██ ██████         ███████ ██ ████████ ███████
-           ██      ████   ██ ██   ██ ██     ██      ██    ██    ██
-           █████   ██ ██  ██ ██   ██        ███████ ██    ██    █████
-           ██      ██  ██ ██ ██   ██ ██          ██ ██    ██    ██
-           ███████ ██   ████ ██████         ███████ ██    ██    ███████ -->
-
-    </plugins>
-
   </build>
 
-  <profiles>
-
-    <profile>
-      <id>java8-doclint-disabled</id>
-      <activation>
-        <jdk>[1.8,)</jdk>
-      </activation>
-      <properties>
-        <javadoc.opts>-Xdoclint:none</javadoc.opts>
-      </properties>
-    </profile>
-
-    <profile>
-      <id>java8-tests</id>
-      <activation>
-        <property>
-          <name>env.CI</name>
-          <value>true</value>
-        </property>
-      </activation>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-surefire-plugin</artifactId>
-            <configuration>
-              <jdkToolchain>
-                <version>[1.8, 9)</version>
-              </jdkToolchain>
-            </configuration>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-
-    <profile>
-      <id>sequential-tests</id>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-surefire-plugin</artifactId>
-            <configuration>
-              <forkCount>1</forkCount>
-            </configuration>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-
-  </profiles>
-
 </project>
diff --git a/log4j-perf/pom.xml b/log4j-perf/pom.xml
index 3fd11c8825..1de6ad109e 100644
--- a/log4j-perf/pom.xml
+++ b/log4j-perf/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
 
   <artifactId>log4j-perf</artifactId>
diff --git a/log4j-slf4j-impl/pom.xml b/log4j-slf4j-impl/pom.xml
index 1c15a9e40d..9e6c1f9637 100644
--- a/log4j-slf4j-impl/pom.xml
+++ b/log4j-slf4j-impl/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
   <artifactId>log4j-slf4j-impl</artifactId>
   <packaging>jar</packaging>
diff --git a/log4j-slf4j2-impl/pom.xml b/log4j-slf4j2-impl/pom.xml
index 75c62b9337..0842858dd4 100644
--- a/log4j-slf4j2-impl/pom.xml
+++ b/log4j-slf4j2-impl/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
   <artifactId>log4j-slf4j2-impl</artifactId>
   <packaging>jar</packaging>
diff --git a/log4j-spring-boot/pom.xml b/log4j-spring-boot/pom.xml
index 7698222d26..92d31ebbad 100644
--- a/log4j-spring-boot/pom.xml
+++ b/log4j-spring-boot/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
   <artifactId>log4j-spring-boot</artifactId>
   <packaging>jar</packaging>
diff --git a/log4j-spring-cloud-config/pom.xml b/log4j-spring-cloud-config/pom.xml
index f57538cc4a..beff2f854a 100644
--- a/log4j-spring-cloud-config/pom.xml
+++ b/log4j-spring-cloud-config/pom.xml
@@ -23,6 +23,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
 
   <artifactId>log4j-spring-cloud-config</artifactId>
diff --git a/log4j-taglib/pom.xml b/log4j-taglib/pom.xml
index 35d8d84d45..509338bad3 100644
--- a/log4j-taglib/pom.xml
+++ b/log4j-taglib/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
   <artifactId>log4j-taglib</artifactId>
   <packaging>jar</packaging>
diff --git a/log4j-to-jul/pom.xml b/log4j-to-jul/pom.xml
index 1a7379f0b0..f7bea6b387 100644
--- a/log4j-to-jul/pom.xml
+++ b/log4j-to-jul/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
   <artifactId>log4j-to-jul</artifactId>
   <packaging>jar</packaging>
diff --git a/log4j-to-slf4j/pom.xml b/log4j-to-slf4j/pom.xml
index c5efcc6e19..b45ab409ed 100644
--- a/log4j-to-slf4j/pom.xml
+++ b/log4j-to-slf4j/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
   <artifactId>log4j-to-slf4j</artifactId>
   <packaging>jar</packaging>
diff --git a/log4j-web/pom.xml b/log4j-web/pom.xml
index f5bc896de3..6b49d3d128 100644
--- a/log4j-web/pom.xml
+++ b/log4j-web/pom.xml
@@ -21,6 +21,7 @@
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>${revision}</version>
+    <relativePath>../log4j-parent</relativePath>
   </parent>
 
   <artifactId>log4j-web</artifactId>
diff --git a/pom.xml b/pom.xml
index 6bafbf31e7..de9a2eb9f8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,6 +17,15 @@
   -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd">
 
+  <!-- ██     ██  █████  ██████  ███    ██ ██ ███    ██  ██████  ██
+       ██     ██ ██   ██ ██   ██ ████   ██ ██ ████   ██ ██       ██
+       ██  █  ██ ███████ ██████  ██ ██  ██ ██ ██ ██  ██ ██   ███ ██
+       ██ ███ ██ ██   ██ ██   ██ ██  ██ ██ ██ ██  ██ ██ ██    ██
+        ███ ███  ██   ██ ██   ██ ██   ████ ██ ██   ████  ██████  ██
+
+       Log4j project modules should use `log4j-parent` as their parents, not this POM!
+       This POM constitutes the BOM to be imported by applications using Log4j project modules. -->
+
   <modelVersion>4.0.0</modelVersion>
 
   <parent>
@@ -27,12 +36,12 @@
   </parent>
 
   <groupId>org.apache.logging.log4j</groupId>
-  <artifactId>log4j</artifactId>
+  <artifactId>log4j-bom</artifactId>
   <version>${revision}</version>
   <packaging>pom</packaging>
 
-  <name>Apache Log4j 2</name>
-  <description>Apache Log4j 2</description>
+  <name>Apache Log4j BOM</name>
+  <description>Apache Log4j Bill-of-Materials</description>
   <url>https://logging.apache.org/log4j/2.x/</url>
 
   <inceptionYear>1999</inceptionYear>
@@ -218,16 +227,19 @@
 
   <modules>
 
-    <!-- Unpublished modules first: -->
+    <!-- the parent POM must come first: -->
+    <module>log4j-parent</module>
+
+    <!-- Next unpublished modules in alphabetical order: -->
     <module>log4j-api-java9</module>
     <module>log4j-core-java9</module>
 
-    <!-- Modules in alphabetical order: -->
+    <!-- Last comes the rest of the modules in alphabetical order.
+         Note that modules here must have a corresponding entry in `dependencyManagement > dependencies` block below! -->
     <module>log4j-1.2-api</module>
     <module>log4j-api</module>
     <module>log4j-api-test</module>
     <module>log4j-appserver</module>
-    <module>log4j-bom</module>
     <module>log4j-cassandra</module>
     <module>log4j-core</module>
     <module>log4j-core-its</module>
@@ -291,9 +303,7 @@
 
   <properties>
 
-    <!-- ===========================
-         Release-specific properties
-         =========================== -->
+    <!-- project version -->
     <revision>2.21.0-SNAPSHOT</revision>
 
     <!-- =================
@@ -307,7 +317,7 @@
     <docLabel>Site Documentation</docLabel>
     <projectDir />
     <module.name />
-    <!-- TODO: fix errors and reenable SpotBugs -->
+    <!-- TODO: fix errors and re-enable SpotBugs -->
     <spotbugs.skip>true</spotbugs.skip>
 
     <!-- ========================
@@ -318,7 +328,7 @@
          We also don't generate Javadoc HTML for all modules, but only for two modules: `log4j-api` and `log4j-core`. -->
     <javadoc.skip>true</javadoc.skip>
     <!-- Skipping `maven-site-plugin` globally.
-         It is manually enabled only for the parent module below. -->
+         It is manually enabled only for this root module below. -->
     <maven.site.skip>true</maven.site.skip>
     <maven.site.deploy.skip>true</maven.site.deploy.skip>
 
@@ -459,895 +469,228 @@
 
       <dependency>
         <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-bom</artifactId>
+        <artifactId>log4j-1.2-api</artifactId>
         <version>${project.version}</version>
-        <type>pom</type>
-        <scope>import</scope>
-      </dependency>
-
-      <dependency>
-        <groupId>org.ow2.asm</groupId>
-        <artifactId>asm-bom</artifactId>
-        <version>${asm.version}</version>
-        <type>pom</type>
-        <scope>import</scope>
-      </dependency>
-
-      <dependency>
-        <groupId>org.codehaus.groovy</groupId>
-        <artifactId>groovy-bom</artifactId>
-        <version>${groovy.version}</version>
-        <type>pom</type>
-        <scope>import</scope>
-      </dependency>
-
-      <dependency>
-        <groupId>com.fasterxml.jackson</groupId>
-        <artifactId>jackson-bom</artifactId>
-        <version>${jackson-bom.version}</version>
-        <type>pom</type>
-        <scope>import</scope>
-      </dependency>
-
-      <dependency>
-        <groupId>jakarta.platform</groupId>
-        <artifactId>jakarta.jakartaee-bom</artifactId>
-        <version>${jakartaee-bom.version}</version>
-        <type>pom</type>
-        <scope>import</scope>
-      </dependency>
-
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-bom</artifactId>
-        <version>${jetty.version}</version>
-        <type>pom</type>
-        <scope>import</scope>
-      </dependency>
-
-      <dependency>
-        <groupId>org.junit</groupId>
-        <artifactId>junit-bom</artifactId>
-        <version>${junit-jupiter.version}</version>
-        <type>pom</type>
-        <scope>import</scope>
-      </dependency>
-
-      <dependency>
-        <groupId>io.fabric8</groupId>
-        <artifactId>kubernetes-client-bom</artifactId>
-        <version>${kubernetes-client.version}</version>
-        <type>pom</type>
-        <scope>import</scope>
-      </dependency>
-
-      <dependency>
-        <groupId>org.mockito</groupId>
-        <artifactId>mockito-bom</artifactId>
-        <version>${mockito.version}</version>
-        <type>pom</type>
-        <scope>import</scope>
-      </dependency>
-
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-bom</artifactId>
-        <version>${netty.version}</version>
-        <type>pom</type>
-        <scope>import</scope>
-      </dependency>
-
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-framework-bom</artifactId>
-        <version>${spring-framework.version}</version>
-        <type>pom</type>
-        <scope>import</scope>
       </dependency>
 
       <dependency>
         <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-api-java9</artifactId>
+        <artifactId>log4j-api</artifactId>
         <version>${project.version}</version>
-        <type>zip</type>
       </dependency>
 
       <dependency>
         <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-core-java9</artifactId>
+        <artifactId>log4j-api-test</artifactId>
         <version>${project.version}</version>
-        <type>zip</type>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-broker</artifactId>
-        <version>${activemq.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.eclipse.angus</groupId>
-        <artifactId>angus-activation</artifactId>
-        <version>${angus-activation.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.assertj</groupId>
-        <artifactId>assertj-core</artifactId>
-        <version>${assertj.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.awaitility</groupId>
-        <artifactId>awaitility</artifactId>
-        <version>${awaitility.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache-extras.beanshell</groupId>
-        <artifactId>bsh</artifactId>
-        <version>${bsh.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.mongodb</groupId>
-        <artifactId>bson</artifactId>
-        <version>${mongodb.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>net.bytebuddy</groupId>
-        <artifactId>byte-buddy</artifactId>
-        <version>${byte-buddy.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.cassandra</groupId>
-        <artifactId>cassandra-all</artifactId>
-        <version>${cassandra.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>com.datastax.cassandra</groupId>
-        <artifactId>cassandra-driver-core</artifactId>
-        <version>${cassandra-driver.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.cassandra</groupId>
-        <artifactId>cassandra-thrift</artifactId>
-        <version>${cassandra.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>commons-codec</groupId>
-        <artifactId>commons-codec</artifactId>
-        <version>${commons-codec.version}</version>
-      </dependency>
-
-      <!-- Used for compressing to formats other than `zip` and `gz`: -->
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-compress</artifactId>
-        <version>${commons-compress.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-csv</artifactId>
-        <version>${commons-csv.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-dbcp2</artifactId>
-        <version>${commons-dbcp2.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>commons-httpclient</groupId>
-        <artifactId>commons-httpclient</artifactId>
-        <version>${commons-httpclient.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>commons-io</groupId>
-        <artifactId>commons-io</artifactId>
-        <version>${commons-io.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-lang3</artifactId>
-        <version>${commons-lang3.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>commons-logging</groupId>
-        <artifactId>commons-logging</artifactId>
-        <version>${commons-logging.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-pool2</artifactId>
-        <version>${commons-pool2.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>de.flapdoodle.embed</groupId>
-        <artifactId>de.flapdoodle.embed.mongo</artifactId>
-        <version>${flapdoodle-embed.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>de.flapdoodle.embed</groupId>
-        <artifactId>de.flapdoodle.embed.process</artifactId>
-        <version>${flapdoodle-embed.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>de.flapdoodle.reverse</groupId>
-        <artifactId>de.flapdoodle.reverse</artifactId>
-        <version>${flapdoodle-reverse.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>com.conversantmedia</groupId>
-        <artifactId>disruptor</artifactId>
-        <version>${conversant.disruptor.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>com.lmax</groupId>
-        <artifactId>disruptor</artifactId>
-        <version>${disruptor.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.elasticsearch.client</groupId>
-        <artifactId>elasticsearch-rest-high-level-client</artifactId>
-        <version>${elasticsearch.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.zapodot</groupId>
-        <artifactId>embedded-ldap-junit</artifactId>
-        <version>${embedded-ldap.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-channels</groupId>
-        <artifactId>flume-file-channel</artifactId>
-        <version>${flume.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.mortbay.jetty</groupId>
-            <artifactId>servlet-api</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.mortbay.jetty</groupId>
-            <artifactId>servlet-api-2.5</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-core</artifactId>
-        <version>${flume.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-embedded-agent</artifactId>
-        <version>${flume.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.codehaus.jackson</groupId>
-            <artifactId>jackson-core-asl</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.codehaus.jackson</groupId>
-            <artifactId>jackson-mapper-asl</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-node</artifactId>
-        <version>${flume.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.codehaus.jackson</groupId>
-            <artifactId>jackson-core-asl</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.codehaus.jackson</groupId>
-            <artifactId>jackson-mapper-asl</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-sdk</artifactId>
-        <version>${flume.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.codehaus.jackson</groupId>
-            <artifactId>jackson-core-asl</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.codehaus.jackson</groupId>
-            <artifactId>jackson-mapper-asl</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-
-      <!-- Transitive dependency: setting upper bound of declared versions -->
-      <dependency>
-        <groupId>com.google.guava</groupId>
-        <artifactId>guava</artifactId>
-        <version>${guava.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>com.google.guava</groupId>
-        <!-- https://javadoc.io/doc/com.google.guava/guava-testlib/latest/com/google/common/testing/TestLogHandler.html used in log4j-to-jul tests -->
-        <artifactId>guava-testlib</artifactId>
-        <version>${guava.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>com.h2database</groupId>
-        <artifactId>h2</artifactId>
-        <version>${h2.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.hadoop</groupId>
-        <artifactId>hadoop-core</artifactId>
-        <version>${hadoop.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.codehaus.jackson</groupId>
-            <artifactId>jackson-core-asl</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.codehaus.jackson</groupId>
-            <artifactId>jackson-mapper-asl</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.mortbay.jetty</groupId>
-            <artifactId>servlet-api</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-
-      <dependency>
-        <groupId>org.hamcrest</groupId>
-        <artifactId>hamcrest</artifactId>
-        <version>${hamcrest.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.hamcrest</groupId>
-        <artifactId>hamcrest-core</artifactId>
-        <version>${hamcrest.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.hamcrest</groupId>
-        <artifactId>hamcrest-library</artifactId>
-        <version>${hamcrest.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.hdrhistogram</groupId>
-        <artifactId>HdrHistogram</artifactId>
-        <version>${HdrHistogram.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.hsqldb</groupId>
-        <artifactId>hsqldb</artifactId>
-        <version>${hsqldb.version}</version>
-        <classifier>jdk8</classifier>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.httpcomponents</groupId>
-        <artifactId>httpclient</artifactId>
-        <version>${httpclient.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.httpcomponents</groupId>
-        <artifactId>httpcore</artifactId>
-        <version>${httpcore.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>jakarta.activation</groupId>
-        <artifactId>jakarta.activation-api</artifactId>
-        <version>${jakarta-activation.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.eclipse.angus</groupId>
-        <artifactId>jakarta.mail</artifactId>
-        <version>${angus-mail.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>jakarta.mail</groupId>
-        <artifactId>jakarta.mail-api</artifactId>
-        <version>${jakarta-mail.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.fusesource.jansi</groupId>
-        <artifactId>jansi</artifactId>
-        <version>${jansi.version}</version>
-      </dependency>
-
-      <!-- Used for garbage-free tests: -->
-      <dependency>
-        <groupId>com.google.code.java-allocation-instrumenter</groupId>
-        <artifactId>java-allocation-instrumenter</artifactId>
-        <version>${java-allocation-instrumenter.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>javax.activation</groupId>
-        <artifactId>javax.activation-api</artifactId>
-        <version>${javax-activation.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>javax.inject</groupId>
-        <artifactId>javax.inject</artifactId>
-        <version>${javax-inject.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>javax.jms</groupId>
-        <artifactId>javax.jms-api</artifactId>
-        <version>${javax-jms.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>com.sun.mail</groupId>
-        <artifactId>javax.mail</artifactId>
-        <version>${javax-mail.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>javax.mail</groupId>
-        <artifactId>javax.mail-api</artifactId>
-        <version>${javax-mail.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>javax.persistence</groupId>
-        <artifactId>javax.persistence-api</artifactId>
-        <version>${javax-persistence.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>javax.servlet.jsp</groupId>
-        <artifactId>javax.servlet.jsp-api</artifactId>
-        <version>${javax-servlet-jsp.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>javax.servlet</groupId>
-        <artifactId>javax.servlet-api</artifactId>
-        <version>${javax-servlet.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>com.sun</groupId>
-        <artifactId>jconsole</artifactId>
-        <version>${jconsole.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.jctools</groupId>
-        <artifactId>jctools-core</artifactId>
-        <version>${jctools.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>com.sleepycat</groupId>
-        <artifactId>je</artifactId>
-        <version>${je.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.zeromq</groupId>
-        <artifactId>jeromq</artifactId>
-        <version>${jeromq.version}</version>
-      </dependency>
-
-      <!-- Zeroconf advertiser tests: -->
-      <dependency>
-        <groupId>org.jmdns</groupId>
-        <artifactId>jmdns</artifactId>
-        <version>${jmdns.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.openjdk.jmh</groupId>
-        <artifactId>jmh-core</artifactId>
-        <version>${jmh.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.openjdk.jmh</groupId>
-        <artifactId>jmh-generator-annprocess</artifactId>
-        <version>${jmh.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>net.java.dev.jna</groupId>
-        <artifactId>jna</artifactId>
-        <version>${jna.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>net.javacrumbs.json-unit</groupId>
-        <artifactId>json-unit</artifactId>
-        <version>${json-unit.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>junit</groupId>
-        <artifactId>junit</artifactId>
-        <version>${junit.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.junit-pioneer</groupId>
-        <artifactId>junit-pioneer</artifactId>
-        <version>${junit-pioneer.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.kafka</groupId>
-        <artifactId>kafka-clients</artifactId>
-        <version>${kafka.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.lightcouch</groupId>
-        <artifactId>lightcouch</artifactId>
-        <version>${lightcouch.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>log4j</groupId>
-        <artifactId>log4j</artifactId>
-        <version>${log4j.version}</version>
-      </dependency>
-
-      <!-- Used for testing `JsonTemplateLayout`: -->
-      <dependency>
-        <groupId>co.elastic.logging</groupId>
-        <artifactId>log4j2-ecs-layout</artifactId>
-        <version>${log4j2-ecs-layout.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>ch.qos.logback</groupId>
-        <artifactId>logback-classic</artifactId>
-        <version>${logback.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>ch.qos.logback</groupId>
-        <artifactId>logback-classic</artifactId>
-        <version>${logback.version}</version>
-        <type>test-jar</type>
-      </dependency>
-
-      <dependency>
-        <groupId>ch.qos.logback</groupId>
-        <artifactId>logback-core</artifactId>
-        <version>${logback.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>ch.qos.logback</groupId>
-        <artifactId>logback-core</artifactId>
-        <version>${logback.version}</version>
-        <type>test-jar</type>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-appserver</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>org.apache.maven</groupId>
-        <artifactId>maven-core</artifactId>
-        <version>${maven.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-cassandra</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>org.mongodb</groupId>
-        <artifactId>mongodb-driver-core</artifactId>
-        <version>${mongodb.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-core</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>org.mongodb</groupId>
-        <artifactId>mongodb-driver-legacy</artifactId>
-        <version>${mongodb.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-core-test</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>org.mongodb</groupId>
-        <artifactId>mongodb-driver-sync</artifactId>
-        <version>${mongodb.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-couchdb</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>org.apache.felix.framework</artifactId>
-        <version>${felix.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-docker</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>org.eclipse.tycho</groupId>
-        <artifactId>org.eclipse.osgi</artifactId>
-        <version>${org.eclipse.osgi.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-flume-ng</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>org.eclipse.persistence</groupId>
-        <artifactId>org.eclipse.persistence.jpa</artifactId>
-        <version>${org.eclipse.persistence.version}</version>
-        <exclusions>
-          <!-- A copy of `javax.persistence:javax.persistence-api`: -->
-          <exclusion>
-            <groupId>org.eclipse.persistence</groupId>
-            <artifactId>jakarta.persistence</artifactId>
-          </exclusion>
-        </exclusions>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-iostreams</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>org.osgi</groupId>
-        <artifactId>org.osgi.core</artifactId>
-        <version>${osgi.api.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-jakarta-smtp</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>oro</groupId>
-        <artifactId>oro</artifactId>
-        <version>${oro.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-jakarta-web</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>org.ops4j.pax.exam</groupId>
-        <artifactId>pax-exam</artifactId>
-        <version>${pax-exam.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-jcl</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>org.ops4j.pax.exam</groupId>
-        <artifactId>pax-exam-container-native</artifactId>
-        <version>${pax-exam.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-jmx-gui</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>org.ops4j.pax.exam</groupId>
-        <artifactId>pax-exam-junit4</artifactId>
-        <version>${pax-exam.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-jpa</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>org.ops4j.pax.exam</groupId>
-        <artifactId>pax-exam-link-assembly</artifactId>
-        <version>${pax-exam.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-jpl</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>org.ops4j.pax.exam</groupId>
-        <artifactId>pax-exam-spi</artifactId>
-        <version>${pax-exam.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-jul</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-utils</artifactId>
-        <version>${plexus-utils.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-kubernetes</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-api</artifactId>
-        <version>${slf4j.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-layout-template-json</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-ext</artifactId>
-        <version>${slf4j.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-layout-template-json-test</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot</artifactId>
-        <version>${spring-boot.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-mongodb3</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-test</artifactId>
-        <version>${spring-boot.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-logging</artifactId>
-          </exclusion>
-        </exclusions>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-mongodb4</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>uk.org.webcompere</groupId>
-        <artifactId>system-stubs-core</artifactId>
-        <version>${system-stubs.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-osgi</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
-      <!-- Environment and system properties support for JUnit Jupiter: -->
       <dependency>
-        <groupId>uk.org.webcompere</groupId>
-        <artifactId>system-stubs-jupiter</artifactId>
-        <version>${system-stubs.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-slf4j2-impl</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>org.apache.tomcat</groupId>
-        <artifactId>tomcat-juli</artifactId>
-        <version>${tomcat-juli.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-slf4j-impl</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>org.apache.velocity</groupId>
-        <artifactId>velocity</artifactId>
-        <version>${velocity.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-spring-boot</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
-      <!-- Used for testing `HttpAppender`: -->
       <dependency>
-        <groupId>com.github.tomakehurst</groupId>
-        <artifactId>wiremock-jre8</artifactId>
-        <version>${wiremock.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-spring-cloud-config-client</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>com.fasterxml.woodstox</groupId>
-        <artifactId>woodstox-core</artifactId>
-        <version>${woodstox.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-taglib</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>org.xmlunit</groupId>
-        <artifactId>xmlunit-core</artifactId>
-        <version>${xmlunit.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-to-jul</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>org.xmlunit</groupId>
-        <artifactId>xmlunit-matchers</artifactId>
-        <version>${xmlunit.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-to-slf4j</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
       <dependency>
-        <groupId>org.tukaani</groupId>
-        <artifactId>xz</artifactId>
-        <version>${xz.version}</version>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-web</artifactId>
+        <version>${project.version}</version>
       </dependency>
 
     </dependencies>
   </dependencyManagement>
 
-  <!-- Common annotations used in all the modules -->
-  <dependencies>
-
-    <dependency>
-      <groupId>biz.aQute.bnd</groupId>
-      <artifactId>biz.aQute.bnd.annotation</artifactId>
-      <scope>provided</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.osgi</groupId>
-      <artifactId>osgi.annotation</artifactId>
-      <scope>provided</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.annotation.bundle</artifactId>
-      <scope>provided</scope>
-    </dependency>
-
-  </dependencies>
-
   <build>
 
-    <pluginManagement>
-      <plugins>
-
-        <!-- used by `docker` profile in `log4j-layout-template-json-test`: -->
-        <plugin>
-          <groupId>io.fabric8</groupId>
-          <artifactId>docker-maven-plugin</artifactId>
-          <version>${docker-maven-plugin.version}</version>
-        </plugin>
-
-        <!-- used by OSGi tests -->
-        <plugin>
-          <groupId>org.ops4j.pax.exam</groupId>
-          <artifactId>exam-maven-plugin</artifactId>
-          <version>${exam-maven-plugin.version}</version>
-        </plugin>
-
-        <!-- used to generate taglib documentation -->
-        <plugin>
-          <groupId>net.sourceforge.maven-taglib</groupId>
-          <artifactId>maven-taglib-plugin</artifactId>
-          <version>${maven-taglib-plugin.version}</version>
-        </plugin>
-
-      </plugins>
-    </pluginManagement>
-
     <plugins>
 
+      <!-- Enable BOM flattening -->
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>flatten-maven-plugin</artifactId>
+        <version>${flatten-maven-plugin.version}</version>
+        <executions>
+          <execution>
+            <id>flatten-bom</id>
+            <goals>
+              <goal>flatten</goal>
+            </goals>
+            <phase>process-resources</phase>
+            <inherited>false</inherited>
+            <configuration>
+              <pomElements>
+                <build>remove</build>
+                <!-- Keep the `parent`!
+                     This is a temporary fix and can be removed with the next `logging-parent` release fixing https://github.com/apache/logging-parent/issues/37 -->
+                <parent>keep</parent>
+              </pomElements>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
       <!-- Apache RAT (Release Audit Tool) check to verify licenses.
            `apache-rat-plugin`: https://creadur.apache.org/rat/apache-rat-plugin/
            Release Audit Tool: https://creadur.apache.org/rat/index.html -->
@@ -1432,6 +775,7 @@
               <goal>timestamp-property</goal>
             </goals>
             <phase>pre-site</phase>
+            <inherited>false</inherited>
             <configuration>
               <name>currentYear</name>
               <pattern>yyyy</pattern>
@@ -1462,6 +806,7 @@
               <goal>javadoc-no-fork</goal>
             </goals>
             <phase>pre-site</phase>
+            <inherited>false</inherited>
           </execution>
         </executions>
       </plugin>
@@ -1498,6 +843,7 @@
               <goal>copy-resources</goal>
             </goals>
             <phase>site</phase>
+            <inherited>false</inherited>
             <configuration>
               <skip>${javadoc.skip}</skip>
               <outputDirectory>${project.basedir}/target/site/javadoc/${project.artifactId}</outputDirectory>
@@ -1522,6 +868,7 @@
               <goal>team</goal>
             </goals>
             <phase>site</phase>
+            <inherited>false</inherited>
           </execution>
         </executions>
       </plugin>


[logging-log4j2] 01/04: Add `security@logging.apache.org` mailing list

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

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

commit 32fe710548a0d694e08a2206e490a25fac9b0432
Author: Volkan Yazıcı <vo...@yazi.ci>
AuthorDate: Thu Oct 5 10:50:52 2023 +0200

    Add `security@logging.apache.org` mailing list
---
 pom.xml | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/pom.xml b/pom.xml
index 352d652afb..6bafbf31e7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,7 +25,6 @@
     <version>10.1.1</version>
     <relativePath />
   </parent>
-  <!-- Dummy change to test release -->
 
   <groupId>org.apache.logging.log4j</groupId>
   <artifactId>log4j</artifactId>
@@ -38,8 +37,6 @@
 
   <inceptionYear>1999</inceptionYear>
 
-  <!-- Developer IDs are used to map author IDs to names while exporting changelogs.
-       Hence, updates here need to be reflected to `.changelog-entries.adoc.ftl` too. -->
   <developers>
 
     <developer>
@@ -209,6 +206,14 @@
       <archive>https://lists.apache.org/list.html?dev@logging.apache.org</archive>
     </mailingList>
 
+    <mailingList>
+      <name>security</name>
+      <subscribe>security-subscribe@logging.apache.org</subscribe>
+      <unsubscribe>security-unsubscribe@logging.apache.org</unsubscribe>
+      <post>security@logging.apache.org</post>
+      <archive>https://lists.apache.org/list.html?security@logging.apache.org</archive>
+    </mailingList>
+
   </mailingLists>
 
   <modules>


[logging-log4j2] 02/04: Update Maven and its Wrapper versions to `3.9.4` and `3.2.0`, respectively

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

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

commit f9b7cc580c159774389674e71107df7bcccfc63b
Author: Volkan Yazıcı <vo...@yazi.ci>
AuthorDate: Thu Oct 5 11:16:19 2023 +0200

    Update Maven and its Wrapper versions to `3.9.4` and `3.2.0`, respectively
---
 .mvn/wrapper/maven-wrapper.properties | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties
index ca5ab4bab1..3267ebce82 100644
--- a/.mvn/wrapper/maven-wrapper.properties
+++ b/.mvn/wrapper/maven-wrapper.properties
@@ -14,5 +14,5 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.7/apache-maven-3.8.7-bin.zip
-wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.4/apache-maven-3.9.4-bin.zip
+wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar


[logging-log4j2] 04/04: Improve changelogs

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

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

commit b355d9ad0f7fda306a063696ebc3abcca9f93214
Author: Volkan Yazıcı <vo...@yazi.ci>
AuthorDate: Thu Oct 5 13:01:26 2023 +0200

    Improve changelogs
---
 .../.2.x.x/1231_validation_path_condition.xml      |  2 +-
 .../.2.x.x/1232_log4j-to-sfl4j-2-OSGiMetadata.xml  |  4 +-
 .../1281_remove_locale-dependent_toLowerCase.xml   |  2 +-
 .../.2.x.x/1284_redirect_old_javadoc_urls.xml      |  2 +-
 .../.2.x.x/1312_add_environment_arbiter.xml        |  2 +-
 src/changelog/.2.x.x/1366_fix_java_sql_date.xml    |  2 +-
 ...1367_Missing-Bundle-Activation-OSGiMetadata.xml |  2 +-
 .../.2.x.x/1369_bump_build_requirement_jdk_11.xml  |  2 +-
 ...tringResolver_uses_instance_after_recycling.xml |  2 +-
 .../1381_support_parents_in_MarkerResolver.xml     |  2 +-
 .../1391_fix_NPE_in_PluginElementVisitor.xml       |  2 +-
 ..._fix_ArrayOutOfBound_in_Log4jFixedFormatter.xml |  2 +-
 ...5_fix_DatePatternConverter_when_TL_disabled.xml |  2 +-
 ...1530_fix_runtime-dependencies_documentation.xml |  2 +-
 .../.2.x.x/1533_set_fqcn_eventbuilder.xml          |  2 +-
 .../.2.x.x/1550_multiple_filter_invocations.xml    |  2 +-
 src/changelog/.2.x.x/1589_mongodb_tests.xml        |  2 +-
 .../.2.x.x/1640_java_9_stack_trace_element.xml     |  2 +-
 src/changelog/.2.x.x/1646_unsafe_cleaner.xml       |  2 +-
 .../.2.x.x/1650_fix_rollover_strategy_log4j1.xml   |  2 +-
 .../.2.x.x/1681_fix_and_improve_lookup_docs.xml    |  2 +-
 .../.2.x.x/1692_make_JTL_LocationAware.xml         |  2 +-
 .../1747_mongodb4-long-collection-size-conifg.xml  |  2 +-
 .../.2.x.x/1786_fix_async_context_data_loss.xml    |  2 +-
 .../.2.x.x/LOG4J2-170_Improve_XML_schema.xml       |  2 +-
 .../LOG4J2-3217_fix_NPE_in_ContextSelector.xml     |  2 +-
 .../LOG4J2-3657_fix_TL_usage_in_AbstractLogger.xml |  2 +-
 ...ix_notEmpty_converter_for_empty_collections.xml |  2 +-
 ...4J2-3663_fix_file_descriptor_leak_on_Tomcat.xml |  2 +-
 src/changelog/.2.x.x/OsgiServiceLocator_npe.xml    |  2 +-
 src/changelog/.2.x.x/PreventResourceLeak.xml       |  2 +-
 ...SurefireRelease.xml => new-release-process.xml} |  9 ++-
 src/site/_release-notes/_2.x.x.adoc                | 64 +++++++++++-----------
 33 files changed, 68 insertions(+), 69 deletions(-)

diff --git a/src/changelog/.2.x.x/1231_validation_path_condition.xml b/src/changelog/.2.x.x/1231_validation_path_condition.xml
index 8713c4d2ec..dc900af9e1 100644
--- a/src/changelog/.2.x.x/1231_validation_path_condition.xml
+++ b/src/changelog/.2.x.x/1231_validation_path_condition.xml
@@ -24,6 +24,6 @@
   <!-- Committer -->
   <author id="github:ppkarwasz"/>
   <description format="asciidoc">
-    Add validation to rolling file manager path conditions.
+    Added validation to rolling file manager path conditions
   </description>
 </entry>
diff --git a/src/changelog/.2.x.x/1232_log4j-to-sfl4j-2-OSGiMetadata.xml b/src/changelog/.2.x.x/1232_log4j-to-sfl4j-2-OSGiMetadata.xml
index 06e1ed824d..660158037f 100644
--- a/src/changelog/.2.x.x/1232_log4j-to-sfl4j-2-OSGiMetadata.xml
+++ b/src/changelog/.2.x.x/1232_log4j-to-sfl4j-2-OSGiMetadata.xml
@@ -23,7 +23,7 @@
   <author id="hanneswell"/>
   <author name="Hannes Wellmann"/>
   <description format="asciidoc">
-    Adapt the OSGi metadata of `log4j-to-slf4j` to work with SLF4J 1 and 2.
-    To achieve that use a version range of `[1.7,3)` for the imported SLF4J packages.
+    Adapted the OSGi metadata of `log4j-to-slf4j` to work with SLF4J 1 and 2.
+    To achieve that used a version range of `[1.7,3)` for the imported SLF4J packages.
   </description>
 </entry>
diff --git a/src/changelog/.2.x.x/1281_remove_locale-dependent_toLowerCase.xml b/src/changelog/.2.x.x/1281_remove_locale-dependent_toLowerCase.xml
index 790c89b992..bc55e0e3dd 100644
--- a/src/changelog/.2.x.x/1281_remove_locale-dependent_toLowerCase.xml
+++ b/src/changelog/.2.x.x/1281_remove_locale-dependent_toLowerCase.xml
@@ -23,5 +23,5 @@
   <author id="github:aawad6" name="Ammar Awad"/>
   <!-- Committer -->
   <author id="github:ppkarwasz"/>
-  <description format="asciidoc">Remove locale-dependent `toLowerCase/toUpperCase` calls.</description>
+  <description format="asciidoc">Removed locale-dependent `toLowerCase/toUpperCase` calls</description>
 </entry>
diff --git a/src/changelog/.2.x.x/1284_redirect_old_javadoc_urls.xml b/src/changelog/.2.x.x/1284_redirect_old_javadoc_urls.xml
index 6b258d5118..4750eb8cf7 100644
--- a/src/changelog/.2.x.x/1284_redirect_old_javadoc_urls.xml
+++ b/src/changelog/.2.x.x/1284_redirect_old_javadoc_urls.xml
@@ -22,5 +22,5 @@
   <issue id="1284" link="https://github.com/apache/logging-log4j2/pull/1284"/>
   <author id="vy"/>
   <author name="Alexander Brandes"/>
-  <description format="asciidoc"><![CDATA[Redirect old `/<module>/apidocs` URLs (broken in 2.20.0) to `/javadoc/<module>`]]></description>
+  <description format="asciidoc"><![CDATA[Redirected old `/<module>/apidocs` URLs (broken in 2.20.0) to `/javadoc/<module>`]]></description>
 </entry>
diff --git a/src/changelog/.2.x.x/1312_add_environment_arbiter.xml b/src/changelog/.2.x.x/1312_add_environment_arbiter.xml
index 9b0f432eb6..d39d3178cb 100644
--- a/src/changelog/.2.x.x/1312_add_environment_arbiter.xml
+++ b/src/changelog/.2.x.x/1312_add_environment_arbiter.xml
@@ -24,6 +24,6 @@
   <!-- Committer -->
   <author id="github:ppkarwasz"/>
   <description format="asciidoc">
-    Add environment variable arbiter.
+    Added environment variable arbiter
   </description>
 </entry>
diff --git a/src/changelog/.2.x.x/1366_fix_java_sql_date.xml b/src/changelog/.2.x.x/1366_fix_java_sql_date.xml
index 02f099658a..e5f712ad5c 100644
--- a/src/changelog/.2.x.x/1366_fix_java_sql_date.xml
+++ b/src/changelog/.2.x.x/1366_fix_java_sql_date.xml
@@ -22,6 +22,6 @@
   <issue id="1366" link="https://github.com/apache/logging-log4j2/pull/1366"/>
   <author id="github:Hikarikun92" name="Lucas Souza"/>
   <description format="asciidoc">
-    Fixed logging of java.sql.Date objects by appending it before Log4J tries to call java.util.Date.toInstant() on it.
+    Fixed logging of `java.sql.Date` objects by appending it before Log4J tries to call `java.util.Date.toInstant()` on it
   </description>
 </entry>
diff --git a/src/changelog/.2.x.x/1367_Missing-Bundle-Activation-OSGiMetadata.xml b/src/changelog/.2.x.x/1367_Missing-Bundle-Activation-OSGiMetadata.xml
index 10d27565a1..912c284bf9 100644
--- a/src/changelog/.2.x.x/1367_Missing-Bundle-Activation-OSGiMetadata.xml
+++ b/src/changelog/.2.x.x/1367_Missing-Bundle-Activation-OSGiMetadata.xml
@@ -24,7 +24,7 @@
   <!-- Committer -->
   <author name="github:ppkarwasz"/>
   <description format="asciidoc">
-    Adapt the OSGi metadata of `log4j-api`, `log4j-core`, `log4j-slf4j-impl` and `log4j-slf4j2-impl` to activate the bundle when it is accessed.
+    Adapted the OSGi metadata of `log4j-api`, `log4j-core`, `log4j-slf4j-impl` and `log4j-slf4j2-impl` to activate the bundle when it is accessed.
     To achieve that set the `Bundle-ActivationPolicy` to `lazy` for the log4j bundles.
   </description>
 </entry>
diff --git a/src/changelog/.2.x.x/1369_bump_build_requirement_jdk_11.xml b/src/changelog/.2.x.x/1369_bump_build_requirement_jdk_11.xml
index fc00e6790f..3c8c79b1fb 100644
--- a/src/changelog/.2.x.x/1369_bump_build_requirement_jdk_11.xml
+++ b/src/changelog/.2.x.x/1369_bump_build_requirement_jdk_11.xml
@@ -22,6 +22,6 @@
   <issue id="1369" link="https://github.com/apache/logging-log4j2/issues/1369"/>
   <author id="github:ppkarwasz"/>
   <description format="asciidoc">
-    Bump the minimum Java version required for the build to JDK 11. Runtime requirements remain unchanged.
+    Bumped the minimum Java version required for the build to JDK 11. Runtime requirements remain unchanged.
   </description>
 </entry>
diff --git a/src/changelog/.2.x.x/1380_StackTraceStringResolver_uses_instance_after_recycling.xml b/src/changelog/.2.x.x/1380_StackTraceStringResolver_uses_instance_after_recycling.xml
index e2446915b3..6283d4a0a8 100644
--- a/src/changelog/.2.x.x/1380_StackTraceStringResolver_uses_instance_after_recycling.xml
+++ b/src/changelog/.2.x.x/1380_StackTraceStringResolver_uses_instance_after_recycling.xml
@@ -21,5 +21,5 @@
        type="fixed">
   <issue id="1380" link="https://github.com/apache/logging-log4j2/pull/1380"/>
   <author id="vy"/>
-  <description format="asciidoc">Avoid using released objects in `StackTraceStringResolver` of JSON Template Layout</description>
+  <description format="asciidoc">Avoided using released objects in `StackTraceStringResolver` of `JsonTemplateLayout`</description>
 </entry>
diff --git a/src/changelog/.2.x.x/1381_support_parents_in_MarkerResolver.xml b/src/changelog/.2.x.x/1381_support_parents_in_MarkerResolver.xml
index 500e700af2..9b693480fe 100644
--- a/src/changelog/.2.x.x/1381_support_parents_in_MarkerResolver.xml
+++ b/src/changelog/.2.x.x/1381_support_parents_in_MarkerResolver.xml
@@ -22,5 +22,5 @@
   <issue id="1381" link="https://github.com/apache/logging-log4j2/pull/1381"/>
   <author name="Eric Herot"/>
   <author id="vy"/>
-  <description format="asciidoc">Add marker parent support to `JsonTemplateLayout`</description>
+  <description format="asciidoc">Added marker parent support to `JsonTemplateLayout`</description>
 </entry>
diff --git a/src/changelog/.2.x.x/1391_fix_NPE_in_PluginElementVisitor.xml b/src/changelog/.2.x.x/1391_fix_NPE_in_PluginElementVisitor.xml
index ecdf1d9523..5cbb523fec 100644
--- a/src/changelog/.2.x.x/1391_fix_NPE_in_PluginElementVisitor.xml
+++ b/src/changelog/.2.x.x/1391_fix_NPE_in_PluginElementVisitor.xml
@@ -22,5 +22,5 @@
   <issue id="1391" link="https://github.com/apache/logging-log4j2/issues/1391"/>
   <author name="Andrew Zakordonets" id="azakordonets"/>
   <author id="vy"/>
-  <description format="asciidoc">Fix NPE in `PluginElementVisitor`</description>
+  <description format="asciidoc">Fixed NPE in `PluginElementVisitor`</description>
 </entry>
diff --git a/src/changelog/.2.x.x/1418_fix_ArrayOutOfBound_in_Log4jFixedFormatter.xml b/src/changelog/.2.x.x/1418_fix_ArrayOutOfBound_in_Log4jFixedFormatter.xml
index a6b85cd770..e677540f75 100644
--- a/src/changelog/.2.x.x/1418_fix_ArrayOutOfBound_in_Log4jFixedFormatter.xml
+++ b/src/changelog/.2.x.x/1418_fix_ArrayOutOfBound_in_Log4jFixedFormatter.xml
@@ -21,5 +21,5 @@
        type="fixed">
   <issue id="1418" link="https://github.com/apache/logging-log4j2/pull/1418"/>
   <author id="pkarwasz"/>
-  <description format="asciidoc">Fix buffer size in `Log4jFixedFormatter` date time formatter.</description>
+  <description format="asciidoc">Fixed buffer size in `Log4jFixedFormatter` date time formatter</description>
 </entry>
diff --git a/src/changelog/.2.x.x/1485_fix_DatePatternConverter_when_TL_disabled.xml b/src/changelog/.2.x.x/1485_fix_DatePatternConverter_when_TL_disabled.xml
index 86886dd651..a68efa3207 100644
--- a/src/changelog/.2.x.x/1485_fix_DatePatternConverter_when_TL_disabled.xml
+++ b/src/changelog/.2.x.x/1485_fix_DatePatternConverter_when_TL_disabled.xml
@@ -22,5 +22,5 @@
   <issue id="1485" link="https://github.com/apache/logging-log4j2/issues/1485"/>
   <author name="Stephan Markwalder" id="smarkwal"/>
   <author id="vy"/>
-  <description format="asciidoc">Fix concurrent date-time formatting issue in `PatternLayout`</description>
+  <description format="asciidoc">Fixed concurrent date-time formatting issue in `PatternLayout`</description>
 </entry>
diff --git a/src/changelog/.2.x.x/1530_fix_runtime-dependencies_documentation.xml b/src/changelog/.2.x.x/1530_fix_runtime-dependencies_documentation.xml
index bb03dcc6be..2df4f53501 100644
--- a/src/changelog/.2.x.x/1530_fix_runtime-dependencies_documentation.xml
+++ b/src/changelog/.2.x.x/1530_fix_runtime-dependencies_documentation.xml
@@ -23,5 +23,5 @@
   <author id="github:harryssuperman"/>
   <!-- Committer -->
   <author id="github:ppkarwasz"/>
-  <description format="asciidoc">Fix runtime dependencies documentation.</description>
+  <description format="asciidoc">Fixed runtime dependencies documentation</description>
 </entry>
diff --git a/src/changelog/.2.x.x/1533_set_fqcn_eventbuilder.xml b/src/changelog/.2.x.x/1533_set_fqcn_eventbuilder.xml
index 221f0a6f53..e618439f08 100644
--- a/src/changelog/.2.x.x/1533_set_fqcn_eventbuilder.xml
+++ b/src/changelog/.2.x.x/1533_set_fqcn_eventbuilder.xml
@@ -24,6 +24,6 @@
   <!-- Committer -->
   <author name="github:pkarwasz"/>
   <description format="asciidoc">
-    Allow to override fqcn in `Log4jEventBuilder` by implementing `CallerBoundaryAware`.
+    Allowed to override FQCN in `Log4jEventBuilder` by implementing `CallerBoundaryAware`
   </description>
 </entry>
diff --git a/src/changelog/.2.x.x/1550_multiple_filter_invocations.xml b/src/changelog/.2.x.x/1550_multiple_filter_invocations.xml
index a865adc7f8..d636fd3d2f 100644
--- a/src/changelog/.2.x.x/1550_multiple_filter_invocations.xml
+++ b/src/changelog/.2.x.x/1550_multiple_filter_invocations.xml
@@ -21,5 +21,5 @@
        type="changed">
   <issue id="1550" link="https://github.com/apache/logging-log4j2/pull/1550"/>
   <author id="github:ppkarwasz"/>
-  <description format="asciidoc">Removes additional `isFiltered` checks in `AsyncLoggerConfig`.</description>
+  <description format="asciidoc">Removed additional `isFiltered` checks in `AsyncLoggerConfig`</description>
 </entry>
diff --git a/src/changelog/.2.x.x/1589_mongodb_tests.xml b/src/changelog/.2.x.x/1589_mongodb_tests.xml
index bbe16263c1..1a2d1e3c27 100644
--- a/src/changelog/.2.x.x/1589_mongodb_tests.xml
+++ b/src/changelog/.2.x.x/1589_mongodb_tests.xml
@@ -22,6 +22,6 @@
   <issue id="1589" link="https://github.com/apache/logging-log4j2/issues/1589"/>
   <author id="github:ppkarwasz"/>
   <description format="asciidoc">
-    Migrate MongoDB tests to JUnit 5 and Flapdoodle Embedded MongoDB 4.
+    Migrated MongoDB tests to JUnit 5 and Flapdoodle Embedded MongoDB 4
   </description>
 </entry>
diff --git a/src/changelog/.2.x.x/1640_java_9_stack_trace_element.xml b/src/changelog/.2.x.x/1640_java_9_stack_trace_element.xml
index 4cc1062409..cc384869b5 100644
--- a/src/changelog/.2.x.x/1640_java_9_stack_trace_element.xml
+++ b/src/changelog/.2.x.x/1640_java_9_stack_trace_element.xml
@@ -23,6 +23,6 @@
   <author id="github:rgoers"/>
   <author id="github:ppkarwasz"/>
   <description format="asciidoc">
-    Improve formatting and serialization of `StackTraceElement` on JDK 9+.
+    Improved formatting and serialization of `StackTraceElement` on JDK 9+
   </description>
 </entry>
diff --git a/src/changelog/.2.x.x/1646_unsafe_cleaner.xml b/src/changelog/.2.x.x/1646_unsafe_cleaner.xml
index 0def09cd9c..6cf0d1b631 100644
--- a/src/changelog/.2.x.x/1646_unsafe_cleaner.xml
+++ b/src/changelog/.2.x.x/1646_unsafe_cleaner.xml
@@ -22,6 +22,6 @@
   <issue id="1646" link="https://github.com/apache/logging-log4j2/issues/1646"/>
   <author id="github:ppkarwasz"/>
   <description format="asciidoc">
-    Fix `MemoryMappedFileAppender` buffer unmapping on JRE 9+.
+    Fixed `MemoryMappedFileAppender` buffer unmapping on JRE 9+
   </description>
 </entry>
diff --git a/src/changelog/.2.x.x/1650_fix_rollover_strategy_log4j1.xml b/src/changelog/.2.x.x/1650_fix_rollover_strategy_log4j1.xml
index 691dc4d5f8..2b587ab819 100644
--- a/src/changelog/.2.x.x/1650_fix_rollover_strategy_log4j1.xml
+++ b/src/changelog/.2.x.x/1650_fix_rollover_strategy_log4j1.xml
@@ -24,6 +24,6 @@
   <!-- Committer -->
   <author id="github:ppkarwasz"/>
   <description format="asciidoc">
-    Fixed rollover strategy in the Log4j 1.x compatibility layer.
+    Fixed rollover strategy in the Log4j 1.x compatibility layer
   </description>
 </entry>
diff --git a/src/changelog/.2.x.x/1681_fix_and_improve_lookup_docs.xml b/src/changelog/.2.x.x/1681_fix_and_improve_lookup_docs.xml
index 23af997d35..38fd13777b 100644
--- a/src/changelog/.2.x.x/1681_fix_and_improve_lookup_docs.xml
+++ b/src/changelog/.2.x.x/1681_fix_and_improve_lookup_docs.xml
@@ -24,6 +24,6 @@
   <author name="Yakov Shafranovich" id="github:yakovsh"/>
   <author id="github:vy"/>
   <description format="asciidoc">
-    Remove incorrect mention of `base64` lookup and improve the rest of the lookup manual
+    Removed incorrect mention of `base64` lookup and improve the rest of the lookup manual
   </description>
 </entry>
diff --git a/src/changelog/.2.x.x/1692_make_JTL_LocationAware.xml b/src/changelog/.2.x.x/1692_make_JTL_LocationAware.xml
index 0de933693e..316648b23f 100644
--- a/src/changelog/.2.x.x/1692_make_JTL_LocationAware.xml
+++ b/src/changelog/.2.x.x/1692_make_JTL_LocationAware.xml
@@ -23,6 +23,6 @@
   <author name="Jalyn Xing" id="github:jalynxing"/>
   <author id="github:vy"/>
   <description format="asciidoc">
-    `JsonTemplateLayout` was missing to implement `LocationAware` and this was causing location not being passed to underlying appenders
+    Implemented `LocationAware` for `JsonTemplateLayout`, since this was causing location not being passed to underlying appenders
   </description>
 </entry>
diff --git a/src/changelog/.2.x.x/1747_mongodb4-long-collection-size-conifg.xml b/src/changelog/.2.x.x/1747_mongodb4-long-collection-size-conifg.xml
index 0d680d56b0..e87d8d43e7 100644
--- a/src/changelog/.2.x.x/1747_mongodb4-long-collection-size-conifg.xml
+++ b/src/changelog/.2.x.x/1747_mongodb4-long-collection-size-conifg.xml
@@ -23,6 +23,6 @@
   <author name="Gary Gregory" id="github:garydgregory"/>
   <author name=" Jordi Font" id="github:jfont-teg"/>
   <description format="asciidoc">
-    The MongoDb4 appender now supports long values to configure `collectionSize`
+    Added support for `long` values in MongoDb 4 appender to configure `collectionSize`
   </description>
 </entry>
diff --git a/src/changelog/.2.x.x/1786_fix_async_context_data_loss.xml b/src/changelog/.2.x.x/1786_fix_async_context_data_loss.xml
index 87464737c2..40f5dbc664 100644
--- a/src/changelog/.2.x.x/1786_fix_async_context_data_loss.xml
+++ b/src/changelog/.2.x.x/1786_fix_async_context_data_loss.xml
@@ -22,6 +22,6 @@
   <issue id="1786" link="https://github.com/apache/logging-log4j2/issues/1786"/>
   <author id="github:ppkarwasz"/>
   <description format="asciidoc">
-    Fixes context data loss if `&lt;AsyncLogger&gt;` components are used with an all async logger context.
+    Fixed context data loss if `&lt;AsyncLogger&gt;` components are used with an all async logger context
   </description>
 </entry>
diff --git a/src/changelog/.2.x.x/LOG4J2-170_Improve_XML_schema.xml b/src/changelog/.2.x.x/LOG4J2-170_Improve_XML_schema.xml
index 1ed0538d25..8241de32b8 100644
--- a/src/changelog/.2.x.x/LOG4J2-170_Improve_XML_schema.xml
+++ b/src/changelog/.2.x.x/LOG4J2-170_Improve_XML_schema.xml
@@ -21,5 +21,5 @@
        type="fixed">
   <issue id="LOG4J2-170" link="https://issues.apache.org/jira/browse/LOG4J2-170"/>
   <author id="github:ppkarwasz"/>
-  <description format="asciidoc">Improve `Log4j-config.xsd` schema.</description>
+  <description format="asciidoc">Improved `Log4j-config.xsd` schema</description>
 </entry>
diff --git a/src/changelog/.2.x.x/LOG4J2-3217_fix_NPE_in_ContextSelector.xml b/src/changelog/.2.x.x/LOG4J2-3217_fix_NPE_in_ContextSelector.xml
index b801bbedbe..e1202d7281 100644
--- a/src/changelog/.2.x.x/LOG4J2-3217_fix_NPE_in_ContextSelector.xml
+++ b/src/changelog/.2.x.x/LOG4J2-3217_fix_NPE_in_ContextSelector.xml
@@ -23,5 +23,5 @@
   <issue id="1538" link="https://github.com/apache/logging-log4j2/pull/1538"/>
   <author id="pbodnar" name="Petr Bodnár"/>
   <author id="vy"/>
-  <description format="asciidoc">Fix NPE in `ContextSelector`</description>
+  <description format="asciidoc">Fixed NPE in `ContextSelector`</description>
 </entry>
diff --git a/src/changelog/.2.x.x/LOG4J2-3657_fix_TL_usage_in_AbstractLogger.xml b/src/changelog/.2.x.x/LOG4J2-3657_fix_TL_usage_in_AbstractLogger.xml
index 6a2cd42546..aaa9253253 100644
--- a/src/changelog/.2.x.x/LOG4J2-3657_fix_TL_usage_in_AbstractLogger.xml
+++ b/src/changelog/.2.x.x/LOG4J2-3657_fix_TL_usage_in_AbstractLogger.xml
@@ -22,5 +22,5 @@
   <issue id="LOG4J2-3657" link="https://issues.apache.org/jira/browse/LOG4J2-3657"/>
   <author name="Marat Kamalov"/>
   <author id="vy"/>
-  <description format="asciidoc">When ``ThreadLocal``s are disabled, avoid allocating them in `AbstractLogger` causing memory leaks due to retained reference to class loaders in web applications</description>
+  <description format="asciidoc">Avoided allocating ``ThreadLocal``s in `AbstractLogger` when they are disabled, since this was causing memory leaks due to retained reference to class loaders in web applications</description>
 </entry>
diff --git a/src/changelog/.2.x.x/LOG4J2-3660_fix_notEmpty_converter_for_empty_collections.xml b/src/changelog/.2.x.x/LOG4J2-3660_fix_notEmpty_converter_for_empty_collections.xml
index fa327d1a24..bac200f894 100644
--- a/src/changelog/.2.x.x/LOG4J2-3660_fix_notEmpty_converter_for_empty_collections.xml
+++ b/src/changelog/.2.x.x/LOG4J2-3660_fix_notEmpty_converter_for_empty_collections.xml
@@ -21,5 +21,5 @@
        type="fixed">
   <issue id="LOG4J2-3660" link="https://issues.apache.org/jira/browse/LOG4J2-3660"/>
   <author id="vy"/>
-  <description format="asciidoc">Fix `%notEmpty` directive of `PatternLayout` for empty MDC/NDC inputs</description>
+  <description format="asciidoc">Fixed `%notEmpty` directive of `PatternLayout` for empty MDC/NDC inputs</description>
 </entry>
diff --git a/src/changelog/.2.x.x/LOG4J2-3663_fix_file_descriptor_leak_on_Tomcat.xml b/src/changelog/.2.x.x/LOG4J2-3663_fix_file_descriptor_leak_on_Tomcat.xml
index cccf288d7b..ffc8476da4 100644
--- a/src/changelog/.2.x.x/LOG4J2-3663_fix_file_descriptor_leak_on_Tomcat.xml
+++ b/src/changelog/.2.x.x/LOG4J2-3663_fix_file_descriptor_leak_on_Tomcat.xml
@@ -23,5 +23,5 @@
   <author id="lenoch7" name="Radek Kraus"/>
   <!-- Committer -->
   <author id="pkarwasz"/>
-  <description format="asciidoc">Fix file descriptor leak on Tomcat.</description>
+  <description format="asciidoc">Fixed file descriptor leak on Tomcat</description>
 </entry>
diff --git a/src/changelog/.2.x.x/OsgiServiceLocator_npe.xml b/src/changelog/.2.x.x/OsgiServiceLocator_npe.xml
index 1e7aa4876a..1fdd318e40 100644
--- a/src/changelog/.2.x.x/OsgiServiceLocator_npe.xml
+++ b/src/changelog/.2.x.x/OsgiServiceLocator_npe.xml
@@ -21,7 +21,7 @@
        type="changed">
   <author id="ggregory"/>
   <description format="asciidoc">
-    Log a status error event instead of an NPE in
+    Started logging a status error event instead of an NPE in
     `OsgiServiceLocator.loadServices(Class, Lookup, boolean)`
     when a bundle has no valid `BundleContext` for a service type
   </description>
diff --git a/src/changelog/.2.x.x/PreventResourceLeak.xml b/src/changelog/.2.x.x/PreventResourceLeak.xml
index a7f0b19782..a2e8b0941f 100644
--- a/src/changelog/.2.x.x/PreventResourceLeak.xml
+++ b/src/changelog/.2.x.x/PreventResourceLeak.xml
@@ -22,6 +22,6 @@
   <author id="mernst"/>
   <author id="vy"/>
   <description format="asciidoc">
-    Ensure `FileOutputStream` is closed in `CommonsCompressAction.execute()`
+    Ensured `FileOutputStream` is closed in `CommonsCompressAction.execute()`
   </description>
 </entry>
diff --git a/src/changelog/.2.x.x/UpdateSurefireRelease.xml b/src/changelog/.2.x.x/new-release-process.xml
similarity index 86%
rename from src/changelog/.2.x.x/UpdateSurefireRelease.xml
rename to src/changelog/.2.x.x/new-release-process.xml
index 224e952464..6530dcb9e7 100644
--- a/src/changelog/.2.x.x/UpdateSurefireRelease.xml
+++ b/src/changelog/.2.x.x/new-release-process.xml
@@ -18,9 +18,8 @@
 <entry xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://logging.apache.org/log4j/changelog"
        xsi:schemaLocation="http://logging.apache.org/log4j/changelog https://logging.apache.org/log4j/changelog-0.1.1.xsd"
-       type="fixed">
-  <author id="rgoers"/>
-  <description format="asciidoc">
-    Update maven-surefire-plugin to 3.1.2.
-  </description>
+       type="changed">
+  <author name="github:pkarwasz"/>
+  <author name="github:vy"/>
+  <description format="asciidoc">Implemented a CI-based release process</description>
 </entry>
diff --git a/src/site/_release-notes/_2.x.x.adoc b/src/site/_release-notes/_2.x.x.adoc
index 98bd80d80b..88c8651c96 100644
--- a/src/site/_release-notes/_2.x.x.adoc
+++ b/src/site/_release-notes/_2.x.x.adoc
@@ -52,14 +52,15 @@ For complete information on Apache Log4j 2, including instructions on how to sub
 
 === Added
 
-* Add marker parent support to `JsonTemplateLayout` (https://github.com/apache/logging-log4j2/pull/1381[1381])
+* Added marker parent support to `JsonTemplateLayout` (https://github.com/apache/logging-log4j2/pull/1381[1381])
 
 === Changed
 
-* Bump the minimum Java version required for the build to JDK 11. Runtime requirements remain unchanged. (https://github.com/apache/logging-log4j2/issues/1369[1369])
+* Bumped the minimum Java version required for the build to JDK 11. Runtime requirements remain unchanged. (https://github.com/apache/logging-log4j2/issues/1369[1369])
 * Set the default `minLevel` and `maxLevel` of `LevelRangeFilter` to `OFF` and `ALL`, respectively (https://github.com/apache/logging-log4j2/pull/1503[1503])
-* Removes additional `isFiltered` checks in `AsyncLoggerConfig`. (https://github.com/apache/logging-log4j2/pull/1550[1550])
-* Log a status error event instead of an NPE in `OsgiServiceLocator.loadServices(Class, Lookup, boolean)` when a bundle has no valid `BundleContext` for a service type
+* Removed additional `isFiltered` checks in `AsyncLoggerConfig` (https://github.com/apache/logging-log4j2/pull/1550[1550])
+* Started logging a status error event instead of an NPE in `OsgiServiceLocator.loadServices(Class, Lookup, boolean)` when a bundle has no valid `BundleContext` for a service type
+* Implemented a CI-based release process
 
 === Removed
 
@@ -67,34 +68,33 @@ For complete information on Apache Log4j 2, including instructions on how to sub
 
 === Fixed
 
-* Add validation to rolling file manager path conditions. (https://github.com/apache/logging-log4j2/issues/1231[1231])
-* Adapt the OSGi metadata of `log4j-to-slf4j` to work with SLF4J 1 and 2. To achieve that use a version range of `[1.7,3)` for the imported SLF4J packages. (https://github.com/apache/logging-log4j2/issues/1232[1232])
-* Remove locale-dependent `toLowerCase/toUpperCase` calls. (https://github.com/apache/logging-log4j2/pull/1281[1281])
-* Redirect old `/<module>/apidocs` URLs (broken in 2.20.0) to `/javadoc/<module>` (https://github.com/apache/logging-log4j2/pull/1284[1284])
-* Add environment variable arbiter. (https://github.com/apache/logging-log4j2/issues/1312[1312])
-* Fixed logging of java.sql.Date objects by appending it before Log4J tries to call java.util.Date.toInstant() on it. (https://github.com/apache/logging-log4j2/pull/1366[1366])
-* Adapt the OSGi metadata of `log4j-api`, `log4j-core`, `log4j-slf4j-impl` and `log4j-slf4j2-impl` to activate the bundle when it is accessed. To achieve that set the `Bundle-ActivationPolicy` to `lazy` for the log4j bundles. (https://github.com/apache/logging-log4j2/issues/1367[1367])
-* Avoid using released objects in `StackTraceStringResolver` of JSON Template Layout (https://github.com/apache/logging-log4j2/pull/1380[1380])
+* Added validation to rolling file manager path conditions (https://github.com/apache/logging-log4j2/issues/1231[1231])
+* Adapted the OSGi metadata of `log4j-to-slf4j` to work with SLF4J 1 and 2. To achieve that used a version range of `[1.7,3)` for the imported SLF4J packages. (https://github.com/apache/logging-log4j2/issues/1232[1232])
+* Removed locale-dependent `toLowerCase/toUpperCase` calls (https://github.com/apache/logging-log4j2/pull/1281[1281])
+* Redirected old `/<module>/apidocs` URLs (broken in 2.20.0) to `/javadoc/<module>` (https://github.com/apache/logging-log4j2/pull/1284[1284])
+* Added environment variable arbiter (https://github.com/apache/logging-log4j2/issues/1312[1312])
+* Fixed logging of `java.sql.Date` objects by appending it before Log4J tries to call `java.util.Date.toInstant()` on it (https://github.com/apache/logging-log4j2/pull/1366[1366])
+* Adapted the OSGi metadata of `log4j-api`, `log4j-core`, `log4j-slf4j-impl` and `log4j-slf4j2-impl` to activate the bundle when it is accessed. To achieve that set the `Bundle-ActivationPolicy` to `lazy` for the log4j bundles. (https://github.com/apache/logging-log4j2/issues/1367[1367])
+* Avoided using released objects in `StackTraceStringResolver` of `JsonTemplateLayout` (https://github.com/apache/logging-log4j2/pull/1380[1380])
 * Added missing setter for `connectionStringSource` in `MongoDb4Provider` builder (https://github.com/apache/logging-log4j2/issues/1389[1389])
-* Fix NPE in `PluginElementVisitor` (https://github.com/apache/logging-log4j2/issues/1391[1391])
-* Fix buffer size in `Log4jFixedFormatter` date time formatter. (https://github.com/apache/logging-log4j2/pull/1418[1418])
-* Fix concurrent date-time formatting issue in `PatternLayout` (https://github.com/apache/logging-log4j2/issues/1485[1485])
-* Fix runtime dependencies documentation. (https://github.com/apache/logging-log4j2/pull/1530[1530])
-* Allow to override fqcn in `Log4jEventBuilder` by implementing `CallerBoundaryAware`. (https://github.com/apache/logging-log4j2/pull/1533[1533])
-* Migrate MongoDB tests to JUnit 5 and Flapdoodle Embedded MongoDB 4. (https://github.com/apache/logging-log4j2/issues/1589[1589])
+* Fixed NPE in `PluginElementVisitor` (https://github.com/apache/logging-log4j2/issues/1391[1391])
+* Fixed buffer size in `Log4jFixedFormatter` date time formatter (https://github.com/apache/logging-log4j2/pull/1418[1418])
+* Fixed concurrent date-time formatting issue in `PatternLayout` (https://github.com/apache/logging-log4j2/issues/1485[1485])
+* Fixed runtime dependencies documentation (https://github.com/apache/logging-log4j2/pull/1530[1530])
+* Allowed to override FQCN in `Log4jEventBuilder` by implementing `CallerBoundaryAware` (https://github.com/apache/logging-log4j2/pull/1533[1533])
+* Migrated MongoDB tests to JUnit 5 and Flapdoodle Embedded MongoDB 4 (https://github.com/apache/logging-log4j2/issues/1589[1589])
 * Rewrote message parameter formatter with improved escape handling (https://github.com/apache/logging-log4j2/issues/1626[1626])
-* Improve formatting and serialization of `StackTraceElement` on JDK 9+. (https://github.com/apache/logging-log4j2/issues/1640[1640])
-* Fix `MemoryMappedFileAppender` buffer unmapping on JRE 9+. (https://github.com/apache/logging-log4j2/issues/1646[1646])
-* Fixed rollover strategy in the Log4j 1.x compatibility layer. (https://github.com/apache/logging-log4j2/issues/1650[1650])
-* Remove incorrect mention of `base64` lookup and improve the rest of the lookup manual (https://github.com/apache/logging-log4j2/issues/1681[1681], https://issues.apache.org/jira/browse/LOG4J2-3504[LOG4J2-3504])
-* `JsonTemplateLayout` was missing to implement `LocationAware` and this was causing location not being passed to underlying appenders (https://github.com/apache/logging-log4j2/issues/1692[1692])
-* The MongoDb4 appender now supports long values to configure `collectionSize` (https://github.com/apache/logging-log4j2/issues/1747[1747])
-* Fixes context data loss if `<AsyncLogger>` components are used with an all async logger context. (https://github.com/apache/logging-log4j2/issues/1786[1786])
+* Improved formatting and serialization of `StackTraceElement` on JDK 9+ (https://github.com/apache/logging-log4j2/issues/1640[1640])
+* Fixed `MemoryMappedFileAppender` buffer unmapping on JRE 9+ (https://github.com/apache/logging-log4j2/issues/1646[1646])
+* Fixed rollover strategy in the Log4j 1.x compatibility layer (https://github.com/apache/logging-log4j2/issues/1650[1650])
+* Removed incorrect mention of `base64` lookup and improve the rest of the lookup manual (https://github.com/apache/logging-log4j2/issues/1681[1681], https://issues.apache.org/jira/browse/LOG4J2-3504[LOG4J2-3504])
+* Implemented `LocationAware` for `JsonTemplateLayout`, since this was causing location not being passed to underlying appenders (https://github.com/apache/logging-log4j2/issues/1692[1692])
+* Added support for `long` values in MongoDb 4 appender to configure `collectionSize` (https://github.com/apache/logging-log4j2/issues/1747[1747])
+* Fixed context data loss if `<AsyncLogger>` components are used with an all async logger context (https://github.com/apache/logging-log4j2/issues/1786[1786])
 * Fixed `JsonTemplateLayout` NPE thrown on custom log levels (https://github.com/apache/logging-log4j2/issues/1805[1805])
-* Improve `Log4j-config.xsd` schema. (https://issues.apache.org/jira/browse/LOG4J2-170[LOG4J2-170])
-* Fix NPE in `ContextSelector` (https://issues.apache.org/jira/browse/LOG4J2-3217[LOG4J2-3217], https://github.com/apache/logging-log4j2/pull/1538[1538])
-* When ``ThreadLocal``s are disabled, avoid allocating them in `AbstractLogger` causing memory leaks due to retained reference to class loaders in web applications (https://issues.apache.org/jira/browse/LOG4J2-3657[LOG4J2-3657])
-* Fix `%notEmpty` directive of `PatternLayout` for empty MDC/NDC inputs (https://issues.apache.org/jira/browse/LOG4J2-3660[LOG4J2-3660])
-* Fix file descriptor leak on Tomcat. (https://issues.apache.org/jira/browse/LOG4J2-3663[LOG4J2-3663])
-* Ensure `FileOutputStream` is closed in `CommonsCompressAction.execute()`
-* Update maven-surefire-plugin to 3.1.2.
+* Improved `Log4j-config.xsd` schema (https://issues.apache.org/jira/browse/LOG4J2-170[LOG4J2-170])
+* Fixed NPE in `ContextSelector` (https://issues.apache.org/jira/browse/LOG4J2-3217[LOG4J2-3217], https://github.com/apache/logging-log4j2/pull/1538[1538])
+* Avoided allocating ``ThreadLocal``s in `AbstractLogger` when they are disabled, since this was causing memory leaks due to retained reference to class loaders in web applications (https://issues.apache.org/jira/browse/LOG4J2-3657[LOG4J2-3657])
+* Fixed `%notEmpty` directive of `PatternLayout` for empty MDC/NDC inputs (https://issues.apache.org/jira/browse/LOG4J2-3660[LOG4J2-3660])
+* Fixed file descriptor leak on Tomcat (https://issues.apache.org/jira/browse/LOG4J2-3663[LOG4J2-3663])
+* Ensured `FileOutputStream` is closed in `CommonsCompressAction.execute()`