You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gg...@apache.org on 2019/03/13 16:21:08 UTC

[logging-log4j2] branch release-2.x updated: Update tests from H2 1.4.197 to 1.4.199.

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

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


The following commit(s) were added to refs/heads/release-2.x by this push:
     new 7f3421c  Update tests from H2 1.4.197 to 1.4.199.
7f3421c is described below

commit 7f3421c934997c3636bdb516980257b63c4368f7
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Wed Mar 13 12:21:02 2019 -0400

    Update tests from H2 1.4.197 to 1.4.199.
---
 pom.xml                 | 3436 +++++++++---------
 src/changes/changes.xml | 8999 ++++++++++++++++++++++++-----------------------
 2 files changed, 6219 insertions(+), 6216 deletions(-)

diff --git a/pom.xml b/pom.xml
index df33a12..907b1f0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,1718 +1,1718 @@
-<?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/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.apache.logging.log4j</groupId>
-  <artifactId>log4j</artifactId>
-  <packaging>pom</packaging>
-  <name>Apache Log4j 2</name>
-  <version>2.12.0-SNAPSHOT</version>
-  <parent>
-    <groupId>org.apache</groupId>
-    <artifactId>apache</artifactId>
-    <version>21</version>
-  </parent>
-  <prerequisites>
-    <maven>3.0.5</maven>
-  </prerequisites>
-  <description>Apache Log4j 2</description>
-  <url>https://logging.apache.org/log4j/2.x/</url>
-  <issueManagement>
-    <system>JIRA</system>
-    <url>https://issues.apache.org/jira/browse/LOG4J2</url>
-  </issueManagement>
-  <ciManagement>
-    <system>Jenkins</system>
-    <url>https://builds.apache.org/job/Log4j%202.x/</url>
-  </ciManagement>
-  <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>
-      <organization>Rocket Software</organization>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>America/Denver</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>
-      <properties>
-        <picUrl>http://people.apache.org/~rpopma/img/profilepic.jpg</picUrl>
-      </properties>
-    </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>CloudBees</organization>
-      <roles>
-        <role>PMC Chair</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>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>
-      <roles>
-        <role>PMC Member</role>
-      </roles>
-      <timezone>America/New York</timezone>
-    </developer>
-  </developers>
-  <!-- Contributors -->
-  <contributors>
-      <contributor>
-        <name>Murad Ersoy</name>
-        <email>muradersoy@gmail.com</email>
-        <url>https://www.behance.net/muradersoy</url>
-        <roles>
-          <role>Illustrator and Designer</role>
-          <role>created the new Log4j 2 logo.</role>
-        </roles>
-        <timezone>Europe/Istanbul</timezone>
-        <properties>
-          <picUrl>https://mir-s3-cdn-cf.behance.net/user/138/403dcf1521581.54d67f8fb01f7.jpg</picUrl>
-        </properties>
-      </contributor>
-   </contributors>
-  <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>
-      <otherArchives>
-        <otherArchive>http://mail-archives.apache.org/mod_mbox/logging-log4j-user/</otherArchive>
-        <otherArchive>http://marc.info/?l=log4j-user</otherArchive>
-        <otherArchive>http://dir.gmane.org/gmane.comp.jakarta.log4j.user</otherArchive>
-      </otherArchives>
-    </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>
-      <otherArchives>
-        <otherArchive>http://mail-archives.apache.org/mod_mbox/logging-dev/</otherArchive>
-        <otherArchive>http://marc.info/?l=dev</otherArchive>
-        <otherArchive>http://dir.gmane.org/gmane.comp.jakarta.log4j.devel</otherArchive>
-      </otherArchives>
-    </mailingList>
-  </mailingLists>
-  <scm>
-    <connection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git</connection>
-    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git</developerConnection>
-    <url>https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=summary</url>
-    <tag>log4j-${Log4jReleaseVersion}</tag>
-  </scm>
-  <properties>
-    <!-- make sure to update these for each release! -->
-    <log4jParentDir>${basedir}</log4jParentDir>
-    <Log4jReleaseVersion>2.11.2</Log4jReleaseVersion>
-    <Log4jReleaseManager>Ralph Goers</Log4jReleaseManager>
-    <Log4jReleaseKey>B3D8E1BA</Log4jReleaseKey>
-    <!--<Log4jReleaseManager>Matt Sicker</Log4jReleaseManager> -->
-    <!--<Log4jReleaseKey>748F15B2CF9BA8F024155E6ED7C92B70FA1C814D</Log4jReleaseKey> -->
-    <!-- note that any properties you want available in velocity templates must not use periods! -->
-    <slf4jVersion>1.7.25</slf4jVersion>
-    <logbackVersion>1.2.3</logbackVersion>
-    <jackson1Version>1.9.13</jackson1Version>
-    <jackson2Version>2.9.7</jackson2Version>
-    <springVersion>3.2.18.RELEASE</springVersion>
-    <flumeVersion>1.7.0</flumeVersion> <!-- Version 1.8.0 requires Java 8 -->
-    <disruptorVersion>3.4.2</disruptorVersion>
-    <conversantDisruptorVersion>1.2.10</conversantDisruptorVersion> <!-- Version 1.2.11 requires Java 8 -->
-    <mongodb2.version>2.14.3</mongodb2.version>
-    <mongodb3.version>3.9.0</mongodb3.version>
-    <compiler.plugin.version>3.8.0</compiler.plugin.version>
-    <pmd.plugin.version>3.10.0</pmd.plugin.version>
-    <findbugs.plugin.version>3.0.5</findbugs.plugin.version>
-    <changes.plugin.version>2.12.1</changes.plugin.version>
-    <javadoc.plugin.version>3.0.1</javadoc.plugin.version>
-    <!-- surefire.plugin.version 2.18 yields http://jira.codehaus.org/browse/SUREFIRE-1121, which is fixed in 2.18.1 -->
-    <!-- surefire.plugin.version 2.19 yields https://issues.apache.org/jira/browse/SUREFIRE-1193. -->
-    <!-- all versions after 2.13 yield https://issues.apache.org/jira/browse/SUREFIRE-720 -->
-    <surefire.plugin.version>2.21.0</surefire.plugin.version>
-    <failsafe.plugin.version>2.21.0</failsafe.plugin.version>
-    <checkstyle.plugin.version>3.0.0</checkstyle.plugin.version>
-    <deploy.plugin.version>2.8.2</deploy.plugin.version>
-    <rat.plugin.version>0.12</rat.plugin.version>
-    <pdf.plugin.version>1.2</pdf.plugin.version>
-    <cobertura.plugin.version>2.7</cobertura.plugin.version>
-    <jacoco.plugin.version>0.8.1</jacoco.plugin.version>
-    <release.plugin.version>2.5.3</release.plugin.version>
-    <scm.plugin.version>1.9.5</scm.plugin.version>
-    <jxr.plugin.version>2.5</jxr.plugin.version>
-    <revapi.plugin.version>0.10.5</revapi.plugin.version>
-    <revapi.skip>false</revapi.skip>
-    <clirr.plugin.version>2.8</clirr.plugin.version>
-    <!-- Maven site 3.7 uses the wrong stylesheet? -->
-    <site.plugin.version>3.4</site.plugin.version>
-    <!-- Maven site depends on Velocity and the escaping rules are different in newer versions. -->
-    <!-- See https://maven.apache.org/plugins/maven-site-plugin/migrate.html -->
-    <velocity.plugin.version>1.5</velocity.plugin.version>
-    <remote.resources.plugin.version>1.5</remote.resources.plugin.version>
-    <manifestfile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestfile>
-    <maven.compiler.source>1.7</maven.compiler.source>
-    <maven.compiler.target>1.7</maven.compiler.target>
-    <docLabel>Site Documentation</docLabel>
-    <projectDir />
-    <commonsLoggingVersion>1.2</commonsLoggingVersion>
-    <javax.persistence>2.1.1</javax.persistence>
-    <!-- The OSGi API version MUST always be the MINIMUM version Log4j supports -->
-    <osgi.api.version>4.3.1</osgi.api.version>
-    <!-- Version 5.15.0 requires Java 8 -->
-    <activemq.version>5.14.5</activemq.version>
-    <!-- Allow Clirr severity to be overriden by the command-line option -DminSeverity=level -->
-    <minSeverity>info</minSeverity>
-    <jctoolsVersion>1.2.1</jctoolsVersion>
-    <mockitoVersion>2.23.4</mockitoVersion>
-    <argLine>-Xms256m -Xmx1024m</argLine>
-    <javaTargetVersion>1.7</javaTargetVersion>
-    <module.name />
-  </properties>
-  <pluginRepositories>
-    <pluginRepository>
-      <id>apache</id>
-      <url>https://repository.apache.org/content/repositories/releases/</url>
-    </pluginRepository>
-<!--     <pluginRepository> -->
-<!--       <id>apache.snapshots</id> -->
-<!--       <name>Apache snapshots repository</name> -->
-<!--       <url>http://repository.apache.org/content/groups/snapshots</url> -->
-<!--       <snapshots> -->
-<!--         <enabled>true</enabled> -->
-<!--       </snapshots> -->
-<!--     </pluginRepository>     -->
-  </pluginRepositories>
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-api</artifactId>
-        <version>${slf4jVersion}</version>
-      </dependency>
-       <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-ext</artifactId>
-        <version>${slf4jVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>ch.qos.logback</groupId>
-        <artifactId>logback-core</artifactId>
-        <version>${logbackVersion}</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>ch.qos.logback</groupId>
-        <artifactId>logback-core</artifactId>
-        <type>test-jar</type>
-        <version>${logbackVersion}</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.tycho</groupId>
-        <artifactId>org.eclipse.osgi</artifactId>
-        <version>3.12.1.v20170821-1548</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>org.apache.felix.framework</artifactId>
-        <version>5.6.10</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.maven</groupId>
-        <artifactId>maven-core</artifactId>
-        <version>3.6.0</version>
-      </dependency>
-      <dependency>
-        <groupId>commons-codec</groupId>
-        <artifactId>commons-codec</artifactId>
-        <version>1.11</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-lang3</artifactId>
-        <version>3.7</version>
-      </dependency>
-      <dependency>
-        <groupId>ch.qos.logback</groupId>
-        <artifactId>logback-classic</artifactId>
-        <version>${logbackVersion}</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>ch.qos.logback</groupId>
-        <artifactId>logback-classic</artifactId>
-        <version>${logbackVersion}</version>
-        <type>test-jar</type>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-api-java9</artifactId>
-        <version>${project.version}</version>
-        <type>zip</type>
-      </dependency>
-      <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</artifactId>
-        <version>${project.version}</version>
-        <type>test-jar</type>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-core-java9</artifactId>
-        <version>${project.version}</version>
-        <type>zip</type>
-      </dependency>
-      <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</artifactId>
-        <version>${project.version}</version>
-        <type>test-jar</type>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-slf4j-impl</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-slf4j-impl</artifactId>
-        <version>${project.version}</version>
-        <type>zip</type>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-slf4j18-impl</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-jcl</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>commons-logging</groupId>
-        <artifactId>commons-logging</artifactId>
-        <version>${commonsLoggingVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-1.2-api</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-flume-ng</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-iostreams</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-jul</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-taglib</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-web</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>com.sleepycat</groupId>
-        <artifactId>je</artifactId>
-        <version>5.0.73</version>
-      </dependency>
-      <dependency>
-        <groupId>org.osgi</groupId>
-        <artifactId>org.osgi.core</artifactId>
-        <version>${osgi.api.version}</version>
-        <scope>provided</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.fusesource.jansi</groupId>
-        <artifactId>jansi</artifactId>
-        <version>1.17.1</version>
-        <optional>true</optional>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-sdk</artifactId>
-        <version>${flumeVersion}</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>
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-core</artifactId>
-        <version>${flumeVersion}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-embedded-agent</artifactId>
-        <version>${flumeVersion}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <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>
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-node</artifactId>
-        <version>${flumeVersion}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <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>
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-channels</groupId>
-        <artifactId>flume-file-channel</artifactId>
-        <version>${flumeVersion}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</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>junit</groupId>
-            <artifactId>junit</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.hadoop</groupId>
-        <artifactId>hadoop-core</artifactId>
-        <version>1.2.1</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>org.mortbay.jetty</groupId>
-            <artifactId>servlet-api</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <!-- Jackson 1 start -->
-      <dependency>
-        <groupId>org.codehaus.jackson</groupId>
-        <artifactId>jackson-core-asl</artifactId>
-        <version>${jackson1Version}</version>
-        <scope>runtime</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.jackson</groupId>
-        <artifactId>jackson-mapper-asl</artifactId>
-        <version>${jackson1Version}</version>
-        <scope>runtime</scope>
-      </dependency>
-      <!-- Jackson 1 end -->
-      <!-- Jackson 2 start -->
-      <dependency>
-        <groupId>com.fasterxml.jackson.core</groupId>
-        <artifactId>jackson-core</artifactId>
-        <version>${jackson2Version}</version>
-        <optional>true</optional>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.core</groupId>
-        <artifactId>jackson-databind</artifactId>
-        <version>${jackson2Version}</version>
-        <optional>true</optional>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.core</groupId>
-        <artifactId>jackson-annotations</artifactId>
-        <version>${jackson2Version}</version>
-        <optional>true</optional>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.dataformat</groupId>
-        <artifactId>jackson-dataformat-yaml</artifactId>
-        <version>${jackson2Version}</version>
-        <optional>true</optional>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.dataformat</groupId>
-        <artifactId>jackson-dataformat-xml</artifactId>
-        <version>${jackson2Version}</version>
-        <optional>true</optional>
-      </dependency>
-      <dependency>
-        <groupId>com.fasterxml.jackson.module</groupId>
-        <artifactId>jackson-module-jaxb-annotations</artifactId>
-        <version>${jackson2Version}</version>
-        <optional>true</optional>
-      </dependency>
-      <!-- Jackson 2 end -->
-      <dependency>
-        <groupId>com.sun.mail</groupId>
-        <artifactId>javax.mail</artifactId>
-        <version>1.6.2</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jboss.spec.javax.jms</groupId>
-        <artifactId>jboss-jms-api_1.1_spec</artifactId>
-        <version>1.0.1.Final</version>
-        <scope>provided</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-broker</artifactId>
-        <version>${activemq.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.kafka</groupId>
-        <artifactId>kafka-clients</artifactId>
-        <version>1.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.zeromq</groupId>
-        <artifactId>jeromq</artifactId>
-        <version>0.4.3</version>
-      </dependency>
-      <dependency>
-        <groupId>javax.servlet</groupId>
-        <artifactId>servlet-api</artifactId>
-        <version>2.5</version>
-        <scope>provided</scope>
-      </dependency>
-      <dependency>
-        <groupId>com.lmax</groupId>
-        <artifactId>disruptor</artifactId>
-        <version>${disruptorVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>com.conversantmedia</groupId>
-        <artifactId>disruptor</artifactId>
-        <version>${conversantDisruptorVersion}</version>
-        <!-- TODO: this can be switched based on a profile -->
-        <classifier>jdk7</classifier>
-      </dependency>
-      <dependency>
-        <groupId>org.jctools</groupId>
-        <artifactId>jctools-core</artifactId>
-        <version>${jctoolsVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>junit</groupId>
-        <artifactId>junit</artifactId>
-        <version>4.12</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.hamcrest</groupId>
-        <artifactId>hamcrest-all</artifactId>
-        <version>1.3</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-utils</artifactId>
-        <version>3.1.0</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.mockito</groupId>
-        <artifactId>mockito-core</artifactId>
-        <version>${mockitoVersion}</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-aop</artifactId>
-        <version>${springVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-beans</artifactId>
-        <version>${springVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-context</artifactId>
-        <version>${springVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-core</artifactId>
-        <version>${springVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-expression</artifactId>
-        <version>${springVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-oxm</artifactId>
-        <version>${springVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-test</artifactId>
-        <version>${springVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-web</artifactId>
-        <version>${springVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-webmvc</artifactId>
-        <version>${springVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.hsqldb</groupId>
-        <artifactId>hsqldb</artifactId>
-        <version>2.3.5</version>
-        <!-- version 2.4.0 requires Java 8 -->
-      </dependency>
-      <dependency>
-        <groupId>com.h2database</groupId>
-        <artifactId>h2</artifactId>
-        <version>1.4.197</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.persistence</groupId>
-        <artifactId>org.eclipse.persistence.jpa</artifactId>
-        <version>2.6.5</version>
-      </dependency>
-      <dependency>
-        <groupId>org.eclipse.persistence</groupId>
-        <artifactId>javax.persistence</artifactId>
-        <version>${javax.persistence}</version>
-        <scope>provided</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.mongodb</groupId>
-        <artifactId>mongo-java-driver</artifactId>
-        <version>${mongodb2.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.mongodb</groupId>
-        <artifactId>mongodb-driver</artifactId>
-        <version>${mongodb3.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.mongodb</groupId>
-        <artifactId>bson</artifactId>
-        <version>${mongodb3.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.lightcouch</groupId>
-        <artifactId>lightcouch</artifactId>
-        <version>0.0.6</version>
-      </dependency>
-      <dependency>
-        <groupId>com.datastax.cassandra</groupId>
-        <artifactId>cassandra-driver-core</artifactId>
-        <version>3.1.4</version>
-      </dependency>
-      <dependency>
-        <groupId>org.liquibase</groupId>
-        <artifactId>liquibase-core</artifactId>
-        <version>3.5.3</version>
-      </dependency>
-      <dependency>
-        <groupId>net.javacrumbs.json-unit</groupId>
-        <artifactId>json-unit</artifactId>
-        <version>1.31.1</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.xmlunit</groupId>
-        <artifactId>xmlunit-core</artifactId>
-        <version>2.5.1</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.xmlunit</groupId>
-        <artifactId>xmlunit-matchers</artifactId>
-        <version>2.5.1</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>commons-io</groupId>
-        <artifactId>commons-io</artifactId>
-        <version>2.6</version>
-        <scope>test</scope>
-      </dependency>
-      <!-- Used for testing HttpAppender -->
-      <dependency>
-        <groupId>com.github.tomakehurst</groupId>
-        <artifactId>wiremock</artifactId>
-        <scope>test</scope>
-        <version>2.19.0</version>
-      </dependency>
-      <!-- Used for compressing to formats other than zip and gz -->
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-compress</artifactId>
-        <version>1.18</version>
-      </dependency>
-      <dependency>
-        <groupId>org.tukaani</groupId>
-        <artifactId>xz</artifactId>
-        <version>1.8</version>
-        <scope>test</scope>
-      </dependency>
-      <!-- Used for the CSV layout -->
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-csv</artifactId>
-        <version>1.6</version>
-      </dependency>
-      <!-- GC-free -->
-      <dependency>
-        <groupId>com.google.code.java-allocation-instrumenter</groupId>
-        <artifactId>java-allocation-instrumenter</artifactId>
-        <version>3.0.1</version>
-      </dependency>
-      <dependency>
-        <groupId>org.hdrhistogram</groupId>
-        <artifactId>HdrHistogram</artifactId>
-        <version>2.1.9</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache-extras.beanshell</groupId>
-        <artifactId>bsh</artifactId>
-        <version>2.0b6</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.groovy</groupId>
-        <artifactId>groovy-jsr223</artifactId>
-        <version>2.5.3</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.groovy</groupId>
-        <artifactId>groovy-dateutil</artifactId>
-        <version>2.5.3</version>
-      </dependency>
-      <dependency>
-        <!-- Testing MongoDB -->
-        <groupId>de.flapdoodle.embed</groupId>
-        <artifactId>de.flapdoodle.embed.mongo</artifactId>
-        <version>2.1.1</version>
-        <scope>test</scope>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-  <build>
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <groupId>org.apache.felix</groupId>
-          <artifactId>maven-bundle-plugin</artifactId>
-          <version>3.5.0</version>
-          <inherited>true</inherited>
-          <extensions>true</extensions>
-          <executions>
-            <execution>
-              <goals>
-                <goal>manifest</goal>
-              </goals>
-              <phase>process-classes</phase>
-            </execution>
-          </executions>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-changes-plugin</artifactId>
-          <version>${changes.plugin.version}</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-release-plugin</artifactId>
-          <version>${release.plugin.version}</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-scm-plugin</artifactId>
-          <version>${scm.plugin.version}</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-checkstyle-plugin</artifactId>
-          <version>${checkstyle.plugin.version}</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-javadoc-plugin</artifactId>
-          <version>${javadoc.plugin.version}</version>
-          <configuration>
-            <bottom><![CDATA[<p align="center">Copyright &#169; {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>
-            <doclint>none</doclint>
-          </configuration>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-pmd-plugin</artifactId>
-          <version>${pmd.plugin.version}</version>
-        </plugin>
-        <!-- some nice default compiler options -->
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-compiler-plugin</artifactId>
-          <version>${compiler.plugin.version}</version>
-          <configuration>
-            <source>${maven.compiler.source}</source>
-            <target>${maven.compiler.target}</target>
-            <showDeprecation>true</showDeprecation>
-            <showWarnings>true</showWarnings>
-            <encoding>UTF-8</encoding>
-            <fork>true</fork>
-            <meminitial>256</meminitial>
-            <maxmem>1024</maxmem>
-            <compilerArguments>
-              <Xmaxwarns>10000</Xmaxwarns>
-              <Xlint />
-            </compilerArguments>
-          </configuration>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-surefire-plugin</artifactId>
-          <version>${surefire.plugin.version}</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-failsafe-plugin</artifactId>
-          <version>${failsafe.plugin.version}</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-source-plugin</artifactId>
-          <version>3.0.1</version>
-          <executions>
-            <execution>
-              <id>attach-sources</id>
-              <phase>verify</phase>
-              <goals>
-                <goal>jar-no-fork</goal>
-                <goal>test-jar-no-fork</goal>
-              </goals>
-            </execution>
-          </executions>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-jxr-plugin</artifactId>
-          <version>${jxr.plugin.version}</version>
-        </plugin>
-        <plugin>
-          <groupId>org.eluder.coveralls</groupId>
-          <artifactId>coveralls-maven-plugin</artifactId>
-          <version>4.3.0</version>
-        </plugin>
-        <plugin>
-          <groupId>org.jacoco</groupId>
-          <artifactId>jacoco-maven-plugin</artifactId>
-          <version>${jacoco.plugin.version}</version>
-          <executions>
-            <execution>
-                <id>prepare-agent</id>
-                <goals>
-                  <goal>prepare-agent</goal>
-                </goals>
-            </execution>
-            <execution>
-              <id>default-report</id>
-              <phase>prepare-package</phase>
-              <goals>
-                <goal>report</goal>
-              </goals>
-            </execution>
-          </executions>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-assembly-plugin</artifactId>
-          <version>3.1.0</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-jar-plugin</artifactId>
-          <version>3.1.0</version>
-          <executions>
-            <execution>
-              <id>default-jar</id>
-              <goals>
-                <goal>jar</goal>
-              </goals>
-              <configuration>
-                <archive>
-                  <manifestFile>${manifestfile}</manifestFile>
-                  <manifestEntries>
-                    <Specification-Title>${project.name}</Specification-Title>
-                    <Specification-Version>${project.version}</Specification-Version>
-                    <Specification-Vendor>${project.organization.name}</Specification-Vendor>
-                    <Implementation-Title>${project.name}</Implementation-Title>
-                    <Implementation-Version>${project.version}</Implementation-Version>
-                    <Implementation-Vendor>${project.organization.name}</Implementation-Vendor>
-                    <Implementation-Vendor-Id>org.apache</Implementation-Vendor-Id>
-                    <X-Compile-Source-JDK>${maven.compiler.source}</X-Compile-Source-JDK>
-                    <X-Compile-Target-JDK>${maven.compiler.target}</X-Compile-Target-JDK>
-                    <Automatic-Module-Name>${module.name}</Automatic-Module-Name>
-                  </manifestEntries>
-                </archive>
-              </configuration>
-            </execution>
-          </executions>
-
-        </plugin>
-      </plugins>
-    </pluginManagement>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-checkstyle-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <artifactId>maven-clean-plugin</artifactId>
-        <version>3.1.0</version>
-      </plugin>
-      <plugin>
-        <artifactId>maven-resources-plugin</artifactId>
-        <version>3.0.2</version>
-        <executions>
-          <execution>
-            <id>copy-sitecss</id>
-            <!-- fetch site.xml before creating site documentation -->
-            <phase>pre-site</phase>
-            <goals>
-              <goal>copy-resources</goal>
-            </goals>
-            <configuration>
-              <outputDirectory>${project.build.directory}/site</outputDirectory>
-              <resources>
-                <resource>
-                  <directory>${log4jParentDir}/src/site/resources</directory>
-                  <includes>
-                    <include>**/*</include>
-                  </includes>
-                </resource>
-              </resources>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <version>${surefire.plugin.version}</version>
-        <configuration>
-          <systemPropertyVariables>
-            <java.awt.headless>true</java.awt.headless>
-          </systemPropertyVariables>
-          <forkCount>1</forkCount>
-          <reuseForks>false</reuseForks>
-          <excludes>
-            <exclude>${log4j.skip.test1}</exclude>
-            <exclude>${log4j.skip.test2}</exclude>
-          </excludes>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-failsafe-plugin</artifactId>
-        <version>${failsafe.plugin.version}</version>
-        <executions>
-          <execution>
-            <goals>
-              <goal>integration-test</goal>
-              <goal>verify</goal>
-            </goals>
-          </execution>
-        </executions>
-        <configuration>
-          <systemPropertyVariables>
-            <java.awt.headless>true</java.awt.headless>
-          </systemPropertyVariables>
-          <argLine>-Xms256m -Xmx1024m</argLine>
-          <forkCount>1</forkCount>
-          <reuseForks>false</reuseForks>
-          <encoding>UTF-8</encoding>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-site-plugin</artifactId>
-        <version>${site.plugin.version}</version>
-        <dependencies>
-          <dependency>
-            <groupId>org.apache.velocity</groupId>
-            <artifactId>velocity</artifactId>
-            <version>${velocity.plugin.version}</version>
-          </dependency>
-          <dependency>
-            <groupId>org.apache.maven.wagon</groupId>
-            <artifactId>wagon-ssh</artifactId>
-            <version>3.1.0</version>
-          </dependency>
-        </dependencies>
-        <configuration>
-          <!-- only build English site even on other language OS -->
-          <locales>en</locales>
-          <!-- Exclude the navigation file for Maven 1 sites
-               and the changes file used by the changes-plugin,
-               as they interfere with the site generation. -->
-          <moduleExcludes>
-            <xdoc>navigation.xml,changes.xml</xdoc>
-          </moduleExcludes>
-          <templateDirectory>${log4jParentDir}/src/site</templateDirectory>
-          <template>site.vm</template>
-        </configuration>
-      </plugin>
-      <!-- <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>cobertura-maven-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>clean</id>
-            <goals>
-              <goal>clean</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin> -->
-      <!-- We need to disable the standard ASF configuration to be able to publish our own notice and license files -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-remote-resources-plugin</artifactId>
-        <executions>
-          <execution>
-            <goals>
-              <goal>process</goal>
-            </goals>
-            <configuration>
-              <skip>true</skip>
-              <resourceBundles />
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-pdf-plugin</artifactId>
-        <version>${pdf.plugin.version}</version>
-        <executions>
-          <execution>
-            <id>pdf</id>
-            <phase>site</phase>
-            <goals>
-              <goal>pdf</goal>
-            </goals>
-            <configuration>
-              <outputDirectory>${project.reporting.outputDirectory}</outputDirectory>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-source-plugin</artifactId>
-      </plugin>
-      <!-- RAT report -->
-      <plugin>
-        <groupId>org.apache.rat</groupId>
-        <artifactId>apache-rat-plugin</artifactId>
-        <version>${rat.plugin.version}</version>
-        <configuration>
-          <excludes>
-            <!-- Matches other RAT configurations in this POM -->
-            <exclude>src/main/resources/META-INF/services/**/*</exclude>
-            <!-- IntelliJ files -->
-            <exclude>.idea/**/*</exclude>
-            <exclude>src/test/resources/**/*</exclude>
-            <!-- IDE settings imports -->
-            <exclude>src/ide/**</exclude>
-            <!-- does it even make sense to apply a license to a GPG signature? -->
-            <exclude>**/*.asc</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>log4j-distribution/target/**/*</exclude>
-            <exclude>log4j-distribution/.project</exclude>
-            <exclude>log4j-distribution/.settings/**</exclude>
-            <exclude>velocity.log</exclude>
-            <!-- Other -->
-            <exclude>felix-cache/**</exclude>
-            <exclude>RELEASE-NOTES.md</exclude>
-            <exclude>**/revapi.json</exclude>
-          </excludes>
-        </configuration>
-      </plugin>
-      <!-- DOAP (RDF) metadata generation -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-doap-plugin</artifactId>
-        <version>1.2</version>
-        <configuration>
-          <doapOptions>
-            <programmingLanguage>Java</programmingLanguage>
-            <category>library</category>
-          </doapOptions>
-          <asfExtOptions>
-            <charter>
-              The Apache Logging Services Project creates and maintains open-source software related to the logging of
-              application behavior and released at no charge to the public.
-            </charter>
-            <pmc>https://logging.apache.org</pmc>
-          </asfExtOptions>
-        </configuration>
-        <executions>
-          <execution>
-            <id>site</id>
-            <phase>site</phase>
-            <goals>
-              <goal>generate</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-  <reporting>
-    <plugins>
-      <!-- Changes report -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-changes-plugin</artifactId>
-        <version>${changes.plugin.version}</version>
-        <reportSets>
-          <reportSet>
-            <reports>
-              <report>changes-report</report>
-              <report>jira-report</report>
-            </reports>
-          </reportSet>
-        </reportSets>
-        <configuration>
-          <statusIds>Resolved, Closed</statusIds>
-          <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Fix Version</columnNames>
-          <useJql>true</useJql>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-project-info-reports-plugin</artifactId>
-        <version>2.9</version>
-        <reportSets>
-          <reportSet>
-            <reports>
-              <report>index</report>
-              <report>dependencies</report>
-              <report>dependency-info</report>
-              <report>dependency-convergence</report>
-              <report>dependency-management</report>
-              <report>project-team</report>
-              <report>mailing-list</report>
-              <report>issue-tracking</report>
-              <report>license</report>
-              <report>scm</report>
-              <report>summary</report>
-            </reports>
-          </reportSet>
-        </reportSets>
-        <configuration>
-          <!-- you'd think these would be the defaults, right? -->
-          <customBundle>${project.basedir}/src/site/custom/project-info-report.properties</customBundle>
-          <webAccessUrl>${project.scm.url}</webAccessUrl>
-          <anonymousConnection>${project.scm.connection}</anonymousConnection>
-          <developerConnection>${project.scm.developerConnection}</developerConnection>
-          <scmTag>log4j-${Log4jReleaseVersion}</scmTag>
-        </configuration>
-      </plugin>
-      <!-- Surefire report -->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-report-plugin</artifactId>
-        <version>${surefire.plugin.version}</version>
-        <reportSets>
-          <reportSet>
-            <id>integration-tests</id>
-            <reports>
-              <report>failsafe-report-only</report>
-            </reports>
-          </reportSet>
-        </reportSets>
-      </plugin>
-      <!-- RAT report -->
-      <plugin>
-        <groupId>org.apache.rat</groupId>
-        <artifactId>apache-rat-plugin</artifactId>
-        <version>${rat.plugin.version}</version>
-        <configuration>
-          <excludes>
-            <!-- Matches other RAT configurations in this POM -->
-            <exclude>src/main/resources/META-INF/services/**/*</exclude>
-            <!-- IntelliJ files -->
-            <exclude>.idea/**/*</exclude>
-            <exclude>src/test/resources/**/*</exclude>
-            <!-- IDE settings imports -->
-            <exclude>src/ide/**</exclude>
-            <!-- does it even make sense to apply a license to a GPG signature? -->
-            <exclude>**/*.asc</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>log4j-distribution/target/**/*</exclude>
-            <exclude>log4j-distribution/.project</exclude>
-            <exclude>log4j-distribution/.settings/**</exclude>
-            <exclude>velocity.log</exclude>
-            <!-- Other -->
-            <exclude>felix-cache/**</exclude>
-            <exclude>RELEASE-NOTES.txt</exclude>
-            <exclude>**/revapi.json</exclude>
-          </excludes>
-        </configuration>
-      </plugin>
-    </plugins>
-  </reporting>
-  <distributionManagement>
-    <downloadUrl>https://logging.apache.org/log4j/2.x/download.html</downloadUrl>
-    <!-- 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>
-  </distributionManagement>
-  <modules>
-    <module>log4j-api-java9</module>
-    <module>log4j-api</module>
-    <module>log4j-core-java9</module>
-    <module>log4j-core</module>
-    <module>log4j-core-its</module>
-    <module>log4j-1.2-api</module>
-    <module>log4j-slf4j-impl</module>
-    <module>log4j-slf4j18-impl</module>
-    <module>log4j-to-slf4j</module>
-    <module>log4j-jcl</module>
-    <module>log4j-flume-ng</module>
-    <module>log4j-taglib</module>
-    <module>log4j-jmx-gui</module>
-    <module>log4j-samples</module>
-    <module>log4j-bom</module>
-    <module>log4j-jdbc-dbcp2</module>
-    <module>log4j-jpa</module>
-    <module>log4j-couchdb</module>
-    <module>log4j-mongodb2</module>
-    <module>log4j-mongodb3</module>
-    <module>log4j-cassandra</module>
-    <module>log4j-web</module>
-    <module>log4j-perf</module>
-    <module>log4j-iostreams</module>
-    <module>log4j-jul</module>
-    <module>log4j-liquibase</module>
-    <module>log4j-appserver</module>
-    <module>log4j-osgi</module>
-  </modules>
-  <profiles>
-    <profile>
-      <id>pdf</id>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-pdf-plugin</artifactId>
-            <version>${pdf.plugin.version}</version>
-            <executions>
-              <execution>
-                <id>pdf</id>
-                <phase>generate-resources</phase>
-                <goals>
-                  <goal>pdf</goal>
-                </goals>
-                <configuration>
-                  <outputDirectory>${project.reporting.outputDirectory}</outputDirectory>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-    <profile>
-      <id>release-notes</id>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-changes-plugin</artifactId>
-            <version>${changes.plugin.version}</version>
-            <configuration>
-              <template>announcement.vm</template>
-              <templateDirectory>src/changes</templateDirectory>
-              <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
-              <announcementDirectory>.</announcementDirectory>
-              <announcementFile>RELEASE-NOTES.md</announcementFile>
-              <issueManagementSystems>
-                <issueManagementSystem>changes.xml</issueManagementSystem>
-                <!--<issueManagementSystem>JIRA</issueManagementSystem> -->
-              </issueManagementSystems>
-              <version>${Log4jReleaseVersion}</version>
-              <announceParameters>
-                <releaseVersion>${Log4jReleaseVersion}</releaseVersion>
-                <releaseCount>${Log4jReleaseCount}</releaseCount>
-              </announceParameters>
-              <useJql>true</useJql>
-            </configuration>
-            <executions>
-              <execution>
-                <id>create-release-notes</id>
-                <phase>generate-resources</phase>
-                <goals>
-                  <goal>announcement-generate</goal>
-                </goals>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-    <profile>
-      <id>apache-release</id>
-      <build>
-        <plugins>
-          <plugin>
-            <artifactId>maven-assembly-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>source-release-assembly</id>
-                <configuration>
-                  <skipAssembly>true</skipAssembly>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-      <modules>
-        <module>log4j-distribution</module>
-      </modules>
-    </profile>
-    <profile>
-      <id>rat</id>
-      <build>
-        <plugins>
-          <!-- RAT report -->
-          <plugin>
-            <groupId>org.apache.rat</groupId>
-            <artifactId>apache-rat-plugin</artifactId>
-            <version>${rat.plugin.version}</version>
-            <configuration>
-              <excludes>
-                <!-- Matches other RAT configurations in this POM -->
-                <exclude>src/main/resources/META-INF/services/**/*</exclude>
-                <!-- IntelliJ files -->
-                <exclude>.idea/**/*</exclude>
-                <exclude>src/test/resources/**/*</exclude>
-                <!-- IDE settings imports -->
-                <exclude>src/ide/**</exclude>
-                <!-- does it even make sense to apply a license to a GPG signature? -->
-                <exclude>**/*.asc</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>log4j-distribution/target/**/*</exclude>
-                <exclude>log4j-distribution/.project</exclude>
-                <exclude>log4j-distribution/.settings/**</exclude>
-                <exclude>velocity.log</exclude>
-                <!-- Other -->
-                <exclude>felix-cache/**</exclude>
-                <exclude>RELEASE-NOTES.md</exclude>
-                <exclude>**/revapi.json</exclude>
-              </excludes>
-            </configuration>
-            <executions>
-              <execution>
-                <phase>verify</phase>
-                <goals>
-                  <goal>check</goal>
-                </goals>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-    <profile>
-      <!-- http://www.yourkit.com/docs/80/help/agent.jsp -->
-      <id>yourkit-mac</id>
-      <!--
-      <activation>
-        <os>
-          <family>Mac</family>
-        </os>
-        <file>
-          <exists>${yourkit.home}/bin/mac/libyjpagent.jnilib</exists>
-        </file>
-      </activation>
-      -->
-      <properties>
-        <yourkit.home>/Applications/YJP.app</yourkit.home>
-      </properties>
-      <dependencies>
-        <dependency>
-          <groupId>com.yourkit</groupId>
-          <artifactId>yjp-controller-api-redist</artifactId>
-          <version>2013</version>
-          <scope>system</scope>
-          <systemPath>${yourkit.home}/lib/yjp-controller-api-redist.jar</systemPath>
-        </dependency>
-      </dependencies>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-surefire-plugin</artifactId>
-            <configuration>
-              <argLine>-agentpath:"${yourkit.home}/bin/mac/libyjpagent.jnilib"</argLine>
-            </configuration>
-          </plugin>
-          <plugin>
-            <artifactId>maven-failsafe-plugin</artifactId>
-            <configuration>
-              <argLine>-agentpath:"${yourkit.home}/bin/mac/libyjpagent.jnilib"</argLine>
-            </configuration>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-    <profile>
-      <id>jdk8orGreater</id>
-      <activation>
-        <jdk>[1.8,)</jdk>
-      </activation>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.revapi</groupId>
-            <artifactId>revapi-maven-plugin</artifactId>
-            <version>${revapi.plugin.version}</version>
-            <dependencies>
-              <dependency>
-                <groupId>org.revapi</groupId>
-                <artifactId>revapi-java</artifactId>
-                <version>0.18.2</version>
-              </dependency>
-            </dependencies>
-            <executions>
-              <execution>
-                <goals><goal>check</goal></goals>
-                <configuration>
-                  <checkDependencies>false</checkDependencies>
-                  <skip>${revapi.skip}</skip>
-                  <failOnMissingConfigurationFiles>false</failOnMissingConfigurationFiles>
-                  <analysisConfigurationFiles>
-                    <path>revapi.json</path>
-                  </analysisConfigurationFiles>
-                  <analysisConfiguration><![CDATA[
-[
-  {
-     "extension": "revapi.java",
-     "configuration": {
-       "missing-classes": {
-         "behavior": "report",
-         "ignoreMissingAnnotations": false
-       },
-       "reportUsesFor": [
-          "java.missing.newClass",
-          "java.class.nonPublicPartOfAPI"
-       ],
-       "filter": {
-         "classes": {
-           "regex": true,
-           "include": [
-             "org\\.apache\\.logging\\.log4j(\\..+)?"
-           ]
-         },
-         "packages": {
-           "regex": true,
-           "include": [
-             "org\\.apache\\.logging\\.log4j(\\..+)?"
-           ]
-         }
-       }
-     }
-  }
-]
-              ]]></analysisConfiguration>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-      <reporting>
-        <plugins>
-          <plugin>
-            <groupId>org.revapi</groupId>
-            <artifactId>revapi-maven-plugin</artifactId>
-            <version>${revapi.plugin.version}</version>
-            <reportSets>
-              <reportSet>
-                <inherited>false</inherited>
-                <reports>
-                  <report>report-aggregate</report>
-                </reports>
-              </reportSet>
-              <reportSet>
-                <reports>
-                  <report>report</report>
-                </reports>
-              </reportSet>
-            </reportSets>
-          </plugin>
-        </plugins>
-      </reporting>
-    </profile>
-    <profile>
-      <id>jdk7</id>
-      <activation>
-        <jdk>1.7</jdk>
-      </activation>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.codehaus.mojo</groupId>
-            <artifactId>clirr-maven-plugin</artifactId>
-            <version>${clirr.plugin.version}</version>
-            <dependencies>
-              <dependency>
-                <groupId>org.apache.bcel</groupId>
-                <artifactId>bcel</artifactId>
-                <version>6.2</version>
-              </dependency>
-            </dependencies>
-            <configuration>
-              <minSeverity>${minSeverity}</minSeverity>
-            </configuration>
-          </plugin>
-          <plugin>
-            <artifactId>maven-surefire-plugin</artifactId>
-            <configuration>
-              <argLine>-XX:MaxPermSize=512m</argLine>
-            </configuration>
-          </plugin>
-          <plugin>
-            <artifactId>maven-failsafe-plugin</artifactId>
-            <configuration>
-              <argLine>-XX:MaxPermSize=512m</argLine>
-            </configuration>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-    <profile>
-      <id>useJava7</id>
-      <activation>
-        <property>
-          <name>useJava7</name>
-        </property>
-      </activation>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-toolchains-plugin</artifactId>
-            <version>1.1</version>
-            <executions>
-              <execution>
-                <goals>
-                  <goal>toolchain</goal>
-                </goals>
-              </execution>
-            </executions>
-            <configuration>
-              <toolchains>
-                <jdk>
-                  <version>1.7</version>
-                </jdk>
-              </toolchains>
-            </configuration>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-    <profile>
-      <id>java8-doclint-disabled</id>
-      <activation>
-        <jdk>[1.8,)</jdk>
-      </activation>
-      <properties>
-        <javadoc.opts>-Xdoclint:none</javadoc.opts>
-      </properties>
-    </profile>
-  </profiles>
-</project>
+<?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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.logging.log4j</groupId>
+  <artifactId>log4j</artifactId>
+  <packaging>pom</packaging>
+  <name>Apache Log4j 2</name>
+  <version>2.12.0-SNAPSHOT</version>
+  <parent>
+    <groupId>org.apache</groupId>
+    <artifactId>apache</artifactId>
+    <version>21</version>
+  </parent>
+  <prerequisites>
+    <maven>3.0.5</maven>
+  </prerequisites>
+  <description>Apache Log4j 2</description>
+  <url>https://logging.apache.org/log4j/2.x/</url>
+  <issueManagement>
+    <system>JIRA</system>
+    <url>https://issues.apache.org/jira/browse/LOG4J2</url>
+  </issueManagement>
+  <ciManagement>
+    <system>Jenkins</system>
+    <url>https://builds.apache.org/job/Log4j%202.x/</url>
+  </ciManagement>
+  <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>
+      <organization>Rocket Software</organization>
+      <roles>
+        <role>PMC Member</role>
+      </roles>
+      <timezone>America/Denver</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>
+      <properties>
+        <picUrl>http://people.apache.org/~rpopma/img/profilepic.jpg</picUrl>
+      </properties>
+    </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>CloudBees</organization>
+      <roles>
+        <role>PMC Chair</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>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>
+      <roles>
+        <role>PMC Member</role>
+      </roles>
+      <timezone>America/New York</timezone>
+    </developer>
+  </developers>
+  <!-- Contributors -->
+  <contributors>
+      <contributor>
+        <name>Murad Ersoy</name>
+        <email>muradersoy@gmail.com</email>
+        <url>https://www.behance.net/muradersoy</url>
+        <roles>
+          <role>Illustrator and Designer</role>
+          <role>created the new Log4j 2 logo.</role>
+        </roles>
+        <timezone>Europe/Istanbul</timezone>
+        <properties>
+          <picUrl>https://mir-s3-cdn-cf.behance.net/user/138/403dcf1521581.54d67f8fb01f7.jpg</picUrl>
+        </properties>
+      </contributor>
+   </contributors>
+  <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>
+      <otherArchives>
+        <otherArchive>http://mail-archives.apache.org/mod_mbox/logging-log4j-user/</otherArchive>
+        <otherArchive>http://marc.info/?l=log4j-user</otherArchive>
+        <otherArchive>http://dir.gmane.org/gmane.comp.jakarta.log4j.user</otherArchive>
+      </otherArchives>
+    </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>
+      <otherArchives>
+        <otherArchive>http://mail-archives.apache.org/mod_mbox/logging-dev/</otherArchive>
+        <otherArchive>http://marc.info/?l=dev</otherArchive>
+        <otherArchive>http://dir.gmane.org/gmane.comp.jakarta.log4j.devel</otherArchive>
+      </otherArchives>
+    </mailingList>
+  </mailingLists>
+  <scm>
+    <connection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git</connection>
+    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/logging-log4j2.git</developerConnection>
+    <url>https://git-wip-us.apache.org/repos/asf?p=logging-log4j2.git;a=summary</url>
+    <tag>log4j-${Log4jReleaseVersion}</tag>
+  </scm>
+  <properties>
+    <!-- make sure to update these for each release! -->
+    <log4jParentDir>${basedir}</log4jParentDir>
+    <Log4jReleaseVersion>2.11.2</Log4jReleaseVersion>
+    <Log4jReleaseManager>Ralph Goers</Log4jReleaseManager>
+    <Log4jReleaseKey>B3D8E1BA</Log4jReleaseKey>
+    <!--<Log4jReleaseManager>Matt Sicker</Log4jReleaseManager> -->
+    <!--<Log4jReleaseKey>748F15B2CF9BA8F024155E6ED7C92B70FA1C814D</Log4jReleaseKey> -->
+    <!-- note that any properties you want available in velocity templates must not use periods! -->
+    <slf4jVersion>1.7.25</slf4jVersion>
+    <logbackVersion>1.2.3</logbackVersion>
+    <jackson1Version>1.9.13</jackson1Version>
+    <jackson2Version>2.9.7</jackson2Version>
+    <springVersion>3.2.18.RELEASE</springVersion>
+    <flumeVersion>1.7.0</flumeVersion> <!-- Version 1.8.0 requires Java 8 -->
+    <disruptorVersion>3.4.2</disruptorVersion>
+    <conversantDisruptorVersion>1.2.10</conversantDisruptorVersion> <!-- Version 1.2.11 requires Java 8 -->
+    <mongodb2.version>2.14.3</mongodb2.version>
+    <mongodb3.version>3.9.0</mongodb3.version>
+    <compiler.plugin.version>3.8.0</compiler.plugin.version>
+    <pmd.plugin.version>3.10.0</pmd.plugin.version>
+    <findbugs.plugin.version>3.0.5</findbugs.plugin.version>
+    <changes.plugin.version>2.12.1</changes.plugin.version>
+    <javadoc.plugin.version>3.0.1</javadoc.plugin.version>
+    <!-- surefire.plugin.version 2.18 yields http://jira.codehaus.org/browse/SUREFIRE-1121, which is fixed in 2.18.1 -->
+    <!-- surefire.plugin.version 2.19 yields https://issues.apache.org/jira/browse/SUREFIRE-1193. -->
+    <!-- all versions after 2.13 yield https://issues.apache.org/jira/browse/SUREFIRE-720 -->
+    <surefire.plugin.version>2.21.0</surefire.plugin.version>
+    <failsafe.plugin.version>2.21.0</failsafe.plugin.version>
+    <checkstyle.plugin.version>3.0.0</checkstyle.plugin.version>
+    <deploy.plugin.version>2.8.2</deploy.plugin.version>
+    <rat.plugin.version>0.12</rat.plugin.version>
+    <pdf.plugin.version>1.2</pdf.plugin.version>
+    <cobertura.plugin.version>2.7</cobertura.plugin.version>
+    <jacoco.plugin.version>0.8.1</jacoco.plugin.version>
+    <release.plugin.version>2.5.3</release.plugin.version>
+    <scm.plugin.version>1.9.5</scm.plugin.version>
+    <jxr.plugin.version>2.5</jxr.plugin.version>
+    <revapi.plugin.version>0.10.5</revapi.plugin.version>
+    <revapi.skip>false</revapi.skip>
+    <clirr.plugin.version>2.8</clirr.plugin.version>
+    <!-- Maven site 3.7 uses the wrong stylesheet? -->
+    <site.plugin.version>3.4</site.plugin.version>
+    <!-- Maven site depends on Velocity and the escaping rules are different in newer versions. -->
+    <!-- See https://maven.apache.org/plugins/maven-site-plugin/migrate.html -->
+    <velocity.plugin.version>1.5</velocity.plugin.version>
+    <remote.resources.plugin.version>1.5</remote.resources.plugin.version>
+    <manifestfile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestfile>
+    <maven.compiler.source>1.7</maven.compiler.source>
+    <maven.compiler.target>1.7</maven.compiler.target>
+    <docLabel>Site Documentation</docLabel>
+    <projectDir />
+    <commonsLoggingVersion>1.2</commonsLoggingVersion>
+    <javax.persistence>2.1.1</javax.persistence>
+    <!-- The OSGi API version MUST always be the MINIMUM version Log4j supports -->
+    <osgi.api.version>4.3.1</osgi.api.version>
+    <!-- Version 5.15.0 requires Java 8 -->
+    <activemq.version>5.14.5</activemq.version>
+    <!-- Allow Clirr severity to be overriden by the command-line option -DminSeverity=level -->
+    <minSeverity>info</minSeverity>
+    <jctoolsVersion>1.2.1</jctoolsVersion>
+    <mockitoVersion>2.23.4</mockitoVersion>
+    <argLine>-Xms256m -Xmx1024m</argLine>
+    <javaTargetVersion>1.7</javaTargetVersion>
+    <module.name />
+  </properties>
+  <pluginRepositories>
+    <pluginRepository>
+      <id>apache</id>
+      <url>https://repository.apache.org/content/repositories/releases/</url>
+    </pluginRepository>
+<!--     <pluginRepository> -->
+<!--       <id>apache.snapshots</id> -->
+<!--       <name>Apache snapshots repository</name> -->
+<!--       <url>http://repository.apache.org/content/groups/snapshots</url> -->
+<!--       <snapshots> -->
+<!--         <enabled>true</enabled> -->
+<!--       </snapshots> -->
+<!--     </pluginRepository>     -->
+  </pluginRepositories>
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>slf4j-api</artifactId>
+        <version>${slf4jVersion}</version>
+      </dependency>
+       <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>slf4j-ext</artifactId>
+        <version>${slf4jVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>ch.qos.logback</groupId>
+        <artifactId>logback-core</artifactId>
+        <version>${logbackVersion}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>ch.qos.logback</groupId>
+        <artifactId>logback-core</artifactId>
+        <type>test-jar</type>
+        <version>${logbackVersion}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.tycho</groupId>
+        <artifactId>org.eclipse.osgi</artifactId>
+        <version>3.12.1.v20170821-1548</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>org.apache.felix.framework</artifactId>
+        <version>5.6.10</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.maven</groupId>
+        <artifactId>maven-core</artifactId>
+        <version>3.6.0</version>
+      </dependency>
+      <dependency>
+        <groupId>commons-codec</groupId>
+        <artifactId>commons-codec</artifactId>
+        <version>1.11</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.commons</groupId>
+        <artifactId>commons-lang3</artifactId>
+        <version>3.7</version>
+      </dependency>
+      <dependency>
+        <groupId>ch.qos.logback</groupId>
+        <artifactId>logback-classic</artifactId>
+        <version>${logbackVersion}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>ch.qos.logback</groupId>
+        <artifactId>logback-classic</artifactId>
+        <version>${logbackVersion}</version>
+        <type>test-jar</type>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-api-java9</artifactId>
+        <version>${project.version}</version>
+        <type>zip</type>
+      </dependency>
+      <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</artifactId>
+        <version>${project.version}</version>
+        <type>test-jar</type>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-core-java9</artifactId>
+        <version>${project.version}</version>
+        <type>zip</type>
+      </dependency>
+      <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</artifactId>
+        <version>${project.version}</version>
+        <type>test-jar</type>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-slf4j-impl</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-slf4j-impl</artifactId>
+        <version>${project.version}</version>
+        <type>zip</type>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-slf4j18-impl</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-jcl</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>commons-logging</groupId>
+        <artifactId>commons-logging</artifactId>
+        <version>${commonsLoggingVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-1.2-api</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-flume-ng</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-iostreams</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-jul</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-taglib</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-web</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>com.sleepycat</groupId>
+        <artifactId>je</artifactId>
+        <version>5.0.73</version>
+      </dependency>
+      <dependency>
+        <groupId>org.osgi</groupId>
+        <artifactId>org.osgi.core</artifactId>
+        <version>${osgi.api.version}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.fusesource.jansi</groupId>
+        <artifactId>jansi</artifactId>
+        <version>1.17.1</version>
+        <optional>true</optional>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-sdk</artifactId>
+        <version>${flumeVersion}</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>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-core</artifactId>
+        <version>${flumeVersion}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-log4j12</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>log4j</groupId>
+            <artifactId>log4j</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-embedded-agent</artifactId>
+        <version>${flumeVersion}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-log4j12</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>log4j</groupId>
+            <artifactId>log4j</artifactId>
+          </exclusion>
+          <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>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-node</artifactId>
+        <version>${flumeVersion}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-log4j12</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>log4j</groupId>
+            <artifactId>log4j</artifactId>
+          </exclusion>
+          <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>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-channels</groupId>
+        <artifactId>flume-file-channel</artifactId>
+        <version>${flumeVersion}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-log4j12</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>junit</groupId>
+            <artifactId>junit</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.hadoop</groupId>
+        <artifactId>hadoop-core</artifactId>
+        <version>1.2.1</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>org.mortbay.jetty</groupId>
+            <artifactId>servlet-api</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <!-- Jackson 1 start -->
+      <dependency>
+        <groupId>org.codehaus.jackson</groupId>
+        <artifactId>jackson-core-asl</artifactId>
+        <version>${jackson1Version}</version>
+        <scope>runtime</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.jackson</groupId>
+        <artifactId>jackson-mapper-asl</artifactId>
+        <version>${jackson1Version}</version>
+        <scope>runtime</scope>
+      </dependency>
+      <!-- Jackson 1 end -->
+      <!-- Jackson 2 start -->
+      <dependency>
+        <groupId>com.fasterxml.jackson.core</groupId>
+        <artifactId>jackson-core</artifactId>
+        <version>${jackson2Version}</version>
+        <optional>true</optional>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.core</groupId>
+        <artifactId>jackson-databind</artifactId>
+        <version>${jackson2Version}</version>
+        <optional>true</optional>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.core</groupId>
+        <artifactId>jackson-annotations</artifactId>
+        <version>${jackson2Version}</version>
+        <optional>true</optional>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.dataformat</groupId>
+        <artifactId>jackson-dataformat-yaml</artifactId>
+        <version>${jackson2Version}</version>
+        <optional>true</optional>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.dataformat</groupId>
+        <artifactId>jackson-dataformat-xml</artifactId>
+        <version>${jackson2Version}</version>
+        <optional>true</optional>
+      </dependency>
+      <dependency>
+        <groupId>com.fasterxml.jackson.module</groupId>
+        <artifactId>jackson-module-jaxb-annotations</artifactId>
+        <version>${jackson2Version}</version>
+        <optional>true</optional>
+      </dependency>
+      <!-- Jackson 2 end -->
+      <dependency>
+        <groupId>com.sun.mail</groupId>
+        <artifactId>javax.mail</artifactId>
+        <version>1.6.2</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jboss.spec.javax.jms</groupId>
+        <artifactId>jboss-jms-api_1.1_spec</artifactId>
+        <version>1.0.1.Final</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.activemq</groupId>
+        <artifactId>activemq-broker</artifactId>
+        <version>${activemq.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.kafka</groupId>
+        <artifactId>kafka-clients</artifactId>
+        <version>1.1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.zeromq</groupId>
+        <artifactId>jeromq</artifactId>
+        <version>0.4.3</version>
+      </dependency>
+      <dependency>
+        <groupId>javax.servlet</groupId>
+        <artifactId>servlet-api</artifactId>
+        <version>2.5</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>com.lmax</groupId>
+        <artifactId>disruptor</artifactId>
+        <version>${disruptorVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>com.conversantmedia</groupId>
+        <artifactId>disruptor</artifactId>
+        <version>${conversantDisruptorVersion}</version>
+        <!-- TODO: this can be switched based on a profile -->
+        <classifier>jdk7</classifier>
+      </dependency>
+      <dependency>
+        <groupId>org.jctools</groupId>
+        <artifactId>jctools-core</artifactId>
+        <version>${jctoolsVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>junit</groupId>
+        <artifactId>junit</artifactId>
+        <version>4.12</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.hamcrest</groupId>
+        <artifactId>hamcrest-all</artifactId>
+        <version>1.3</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.plexus</groupId>
+        <artifactId>plexus-utils</artifactId>
+        <version>3.1.0</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.mockito</groupId>
+        <artifactId>mockito-core</artifactId>
+        <version>${mockitoVersion}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-aop</artifactId>
+        <version>${springVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-beans</artifactId>
+        <version>${springVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-context</artifactId>
+        <version>${springVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-core</artifactId>
+        <version>${springVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-expression</artifactId>
+        <version>${springVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-oxm</artifactId>
+        <version>${springVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-test</artifactId>
+        <version>${springVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-web</artifactId>
+        <version>${springVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.springframework</groupId>
+        <artifactId>spring-webmvc</artifactId>
+        <version>${springVersion}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.hsqldb</groupId>
+        <artifactId>hsqldb</artifactId>
+        <version>2.3.5</version>
+        <!-- version 2.4.0 requires Java 8 -->
+      </dependency>
+      <dependency>
+        <groupId>com.h2database</groupId>
+        <artifactId>h2</artifactId>
+        <version>1.4.199</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.persistence</groupId>
+        <artifactId>org.eclipse.persistence.jpa</artifactId>
+        <version>2.6.5</version>
+      </dependency>
+      <dependency>
+        <groupId>org.eclipse.persistence</groupId>
+        <artifactId>javax.persistence</artifactId>
+        <version>${javax.persistence}</version>
+        <scope>provided</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.mongodb</groupId>
+        <artifactId>mongo-java-driver</artifactId>
+        <version>${mongodb2.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.mongodb</groupId>
+        <artifactId>mongodb-driver</artifactId>
+        <version>${mongodb3.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.mongodb</groupId>
+        <artifactId>bson</artifactId>
+        <version>${mongodb3.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.lightcouch</groupId>
+        <artifactId>lightcouch</artifactId>
+        <version>0.0.6</version>
+      </dependency>
+      <dependency>
+        <groupId>com.datastax.cassandra</groupId>
+        <artifactId>cassandra-driver-core</artifactId>
+        <version>3.1.4</version>
+      </dependency>
+      <dependency>
+        <groupId>org.liquibase</groupId>
+        <artifactId>liquibase-core</artifactId>
+        <version>3.5.3</version>
+      </dependency>
+      <dependency>
+        <groupId>net.javacrumbs.json-unit</groupId>
+        <artifactId>json-unit</artifactId>
+        <version>1.31.1</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.xmlunit</groupId>
+        <artifactId>xmlunit-core</artifactId>
+        <version>2.5.1</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.xmlunit</groupId>
+        <artifactId>xmlunit-matchers</artifactId>
+        <version>2.5.1</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>commons-io</groupId>
+        <artifactId>commons-io</artifactId>
+        <version>2.6</version>
+        <scope>test</scope>
+      </dependency>
+      <!-- Used for testing HttpAppender -->
+      <dependency>
+        <groupId>com.github.tomakehurst</groupId>
+        <artifactId>wiremock</artifactId>
+        <scope>test</scope>
+        <version>2.19.0</version>
+      </dependency>
+      <!-- Used for compressing to formats other than zip and gz -->
+      <dependency>
+        <groupId>org.apache.commons</groupId>
+        <artifactId>commons-compress</artifactId>
+        <version>1.18</version>
+      </dependency>
+      <dependency>
+        <groupId>org.tukaani</groupId>
+        <artifactId>xz</artifactId>
+        <version>1.8</version>
+        <scope>test</scope>
+      </dependency>
+      <!-- Used for the CSV layout -->
+      <dependency>
+        <groupId>org.apache.commons</groupId>
+        <artifactId>commons-csv</artifactId>
+        <version>1.6</version>
+      </dependency>
+      <!-- GC-free -->
+      <dependency>
+        <groupId>com.google.code.java-allocation-instrumenter</groupId>
+        <artifactId>java-allocation-instrumenter</artifactId>
+        <version>3.0.1</version>
+      </dependency>
+      <dependency>
+        <groupId>org.hdrhistogram</groupId>
+        <artifactId>HdrHistogram</artifactId>
+        <version>2.1.9</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache-extras.beanshell</groupId>
+        <artifactId>bsh</artifactId>
+        <version>2.0b6</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.groovy</groupId>
+        <artifactId>groovy-jsr223</artifactId>
+        <version>2.5.3</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.groovy</groupId>
+        <artifactId>groovy-dateutil</artifactId>
+        <version>2.5.3</version>
+      </dependency>
+      <dependency>
+        <!-- Testing MongoDB -->
+        <groupId>de.flapdoodle.embed</groupId>
+        <artifactId>de.flapdoodle.embed.mongo</artifactId>
+        <version>2.1.1</version>
+        <scope>test</scope>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+  <build>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.apache.felix</groupId>
+          <artifactId>maven-bundle-plugin</artifactId>
+          <version>3.5.0</version>
+          <inherited>true</inherited>
+          <extensions>true</extensions>
+          <executions>
+            <execution>
+              <goals>
+                <goal>manifest</goal>
+              </goals>
+              <phase>process-classes</phase>
+            </execution>
+          </executions>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-changes-plugin</artifactId>
+          <version>${changes.plugin.version}</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-release-plugin</artifactId>
+          <version>${release.plugin.version}</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-scm-plugin</artifactId>
+          <version>${scm.plugin.version}</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-checkstyle-plugin</artifactId>
+          <version>${checkstyle.plugin.version}</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-javadoc-plugin</artifactId>
+          <version>${javadoc.plugin.version}</version>
+          <configuration>
+            <bottom><![CDATA[<p align="center">Copyright &#169; {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>
+            <doclint>none</doclint>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-pmd-plugin</artifactId>
+          <version>${pmd.plugin.version}</version>
+        </plugin>
+        <!-- some nice default compiler options -->
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-compiler-plugin</artifactId>
+          <version>${compiler.plugin.version}</version>
+          <configuration>
+            <source>${maven.compiler.source}</source>
+            <target>${maven.compiler.target}</target>
+            <showDeprecation>true</showDeprecation>
+            <showWarnings>true</showWarnings>
+            <encoding>UTF-8</encoding>
+            <fork>true</fork>
+            <meminitial>256</meminitial>
+            <maxmem>1024</maxmem>
+            <compilerArguments>
+              <Xmaxwarns>10000</Xmaxwarns>
+              <Xlint />
+            </compilerArguments>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-surefire-plugin</artifactId>
+          <version>${surefire.plugin.version}</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-failsafe-plugin</artifactId>
+          <version>${failsafe.plugin.version}</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-source-plugin</artifactId>
+          <version>3.0.1</version>
+          <executions>
+            <execution>
+              <id>attach-sources</id>
+              <phase>verify</phase>
+              <goals>
+                <goal>jar-no-fork</goal>
+                <goal>test-jar-no-fork</goal>
+              </goals>
+            </execution>
+          </executions>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-jxr-plugin</artifactId>
+          <version>${jxr.plugin.version}</version>
+        </plugin>
+        <plugin>
+          <groupId>org.eluder.coveralls</groupId>
+          <artifactId>coveralls-maven-plugin</artifactId>
+          <version>4.3.0</version>
+        </plugin>
+        <plugin>
+          <groupId>org.jacoco</groupId>
+          <artifactId>jacoco-maven-plugin</artifactId>
+          <version>${jacoco.plugin.version}</version>
+          <executions>
+            <execution>
+                <id>prepare-agent</id>
+                <goals>
+                  <goal>prepare-agent</goal>
+                </goals>
+            </execution>
+            <execution>
+              <id>default-report</id>
+              <phase>prepare-package</phase>
+              <goals>
+                <goal>report</goal>
+              </goals>
+            </execution>
+          </executions>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-assembly-plugin</artifactId>
+          <version>3.1.0</version>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-jar-plugin</artifactId>
+          <version>3.1.0</version>
+          <executions>
+            <execution>
+              <id>default-jar</id>
+              <goals>
+                <goal>jar</goal>
+              </goals>
+              <configuration>
+                <archive>
+                  <manifestFile>${manifestfile}</manifestFile>
+                  <manifestEntries>
+                    <Specification-Title>${project.name}</Specification-Title>
+                    <Specification-Version>${project.version}</Specification-Version>
+                    <Specification-Vendor>${project.organization.name}</Specification-Vendor>
+                    <Implementation-Title>${project.name}</Implementation-Title>
+                    <Implementation-Version>${project.version}</Implementation-Version>
+                    <Implementation-Vendor>${project.organization.name}</Implementation-Vendor>
+                    <Implementation-Vendor-Id>org.apache</Implementation-Vendor-Id>
+                    <X-Compile-Source-JDK>${maven.compiler.source}</X-Compile-Source-JDK>
+                    <X-Compile-Target-JDK>${maven.compiler.target}</X-Compile-Target-JDK>
+                    <Automatic-Module-Name>${module.name}</Automatic-Module-Name>
+                  </manifestEntries>
+                </archive>
+              </configuration>
+            </execution>
+          </executions>
+
+        </plugin>
+      </plugins>
+    </pluginManagement>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-checkstyle-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <artifactId>maven-clean-plugin</artifactId>
+        <version>3.1.0</version>
+      </plugin>
+      <plugin>
+        <artifactId>maven-resources-plugin</artifactId>
+        <version>3.0.2</version>
+        <executions>
+          <execution>
+            <id>copy-sitecss</id>
+            <!-- fetch site.xml before creating site documentation -->
+            <phase>pre-site</phase>
+            <goals>
+              <goal>copy-resources</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>${project.build.directory}/site</outputDirectory>
+              <resources>
+                <resource>
+                  <directory>${log4jParentDir}/src/site/resources</directory>
+                  <includes>
+                    <include>**/*</include>
+                  </includes>
+                </resource>
+              </resources>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>${surefire.plugin.version}</version>
+        <configuration>
+          <systemPropertyVariables>
+            <java.awt.headless>true</java.awt.headless>
+          </systemPropertyVariables>
+          <forkCount>1</forkCount>
+          <reuseForks>false</reuseForks>
+          <excludes>
+            <exclude>${log4j.skip.test1}</exclude>
+            <exclude>${log4j.skip.test2}</exclude>
+          </excludes>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-failsafe-plugin</artifactId>
+        <version>${failsafe.plugin.version}</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>integration-test</goal>
+              <goal>verify</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <systemPropertyVariables>
+            <java.awt.headless>true</java.awt.headless>
+          </systemPropertyVariables>
+          <argLine>-Xms256m -Xmx1024m</argLine>
+          <forkCount>1</forkCount>
+          <reuseForks>false</reuseForks>
+          <encoding>UTF-8</encoding>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-site-plugin</artifactId>
+        <version>${site.plugin.version}</version>
+        <dependencies>
+          <dependency>
+            <groupId>org.apache.velocity</groupId>
+            <artifactId>velocity</artifactId>
+            <version>${velocity.plugin.version}</version>
+          </dependency>
+          <dependency>
+            <groupId>org.apache.maven.wagon</groupId>
+            <artifactId>wagon-ssh</artifactId>
+            <version>3.1.0</version>
+          </dependency>
+        </dependencies>
+        <configuration>
+          <!-- only build English site even on other language OS -->
+          <locales>en</locales>
+          <!-- Exclude the navigation file for Maven 1 sites
+               and the changes file used by the changes-plugin,
+               as they interfere with the site generation. -->
+          <moduleExcludes>
+            <xdoc>navigation.xml,changes.xml</xdoc>
+          </moduleExcludes>
+          <templateDirectory>${log4jParentDir}/src/site</templateDirectory>
+          <template>site.vm</template>
+        </configuration>
+      </plugin>
+      <!-- <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>cobertura-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>clean</id>
+            <goals>
+              <goal>clean</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin> -->
+      <!-- We need to disable the standard ASF configuration to be able to publish our own notice and license files -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-remote-resources-plugin</artifactId>
+        <executions>
+          <execution>
+            <goals>
+              <goal>process</goal>
+            </goals>
+            <configuration>
+              <skip>true</skip>
+              <resourceBundles />
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-pdf-plugin</artifactId>
+        <version>${pdf.plugin.version}</version>
+        <executions>
+          <execution>
+            <id>pdf</id>
+            <phase>site</phase>
+            <goals>
+              <goal>pdf</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>${project.reporting.outputDirectory}</outputDirectory>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-source-plugin</artifactId>
+      </plugin>
+      <!-- RAT report -->
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <version>${rat.plugin.version}</version>
+        <configuration>
+          <excludes>
+            <!-- Matches other RAT configurations in this POM -->
+            <exclude>src/main/resources/META-INF/services/**/*</exclude>
+            <!-- IntelliJ files -->
+            <exclude>.idea/**/*</exclude>
+            <exclude>src/test/resources/**/*</exclude>
+            <!-- IDE settings imports -->
+            <exclude>src/ide/**</exclude>
+            <!-- does it even make sense to apply a license to a GPG signature? -->
+            <exclude>**/*.asc</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>log4j-distribution/target/**/*</exclude>
+            <exclude>log4j-distribution/.project</exclude>
+            <exclude>log4j-distribution/.settings/**</exclude>
+            <exclude>velocity.log</exclude>
+            <!-- Other -->
+            <exclude>felix-cache/**</exclude>
+            <exclude>RELEASE-NOTES.md</exclude>
+            <exclude>**/revapi.json</exclude>
+          </excludes>
+        </configuration>
+      </plugin>
+      <!-- DOAP (RDF) metadata generation -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-doap-plugin</artifactId>
+        <version>1.2</version>
+        <configuration>
+          <doapOptions>
+            <programmingLanguage>Java</programmingLanguage>
+            <category>library</category>
+          </doapOptions>
+          <asfExtOptions>
+            <charter>
+              The Apache Logging Services Project creates and maintains open-source software related to the logging of
+              application behavior and released at no charge to the public.
+            </charter>
+            <pmc>https://logging.apache.org</pmc>
+          </asfExtOptions>
+        </configuration>
+        <executions>
+          <execution>
+            <id>site</id>
+            <phase>site</phase>
+            <goals>
+              <goal>generate</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <reporting>
+    <plugins>
+      <!-- Changes report -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-changes-plugin</artifactId>
+        <version>${changes.plugin.version}</version>
+        <reportSets>
+          <reportSet>
+            <reports>
+              <report>changes-report</report>
+              <report>jira-report</report>
+            </reports>
+          </reportSet>
+        </reportSets>
+        <configuration>
+          <statusIds>Resolved, Closed</statusIds>
+          <columnNames>Type,Key,Summary,Assignee,Status,Resolution,Fix Version</columnNames>
+          <useJql>true</useJql>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-project-info-reports-plugin</artifactId>
+        <version>2.9</version>
+        <reportSets>
+          <reportSet>
+            <reports>
+              <report>index</report>
+              <report>dependencies</report>
+              <report>dependency-info</report>
+              <report>dependency-convergence</report>
+              <report>dependency-management</report>
+              <report>project-team</report>
+              <report>mailing-list</report>
+              <report>issue-tracking</report>
+              <report>license</report>
+              <report>scm</report>
+              <report>summary</report>
+            </reports>
+          </reportSet>
+        </reportSets>
+        <configuration>
+          <!-- you'd think these would be the defaults, right? -->
+          <customBundle>${project.basedir}/src/site/custom/project-info-report.properties</customBundle>
+          <webAccessUrl>${project.scm.url}</webAccessUrl>
+          <anonymousConnection>${project.scm.connection}</anonymousConnection>
+          <developerConnection>${project.scm.developerConnection}</developerConnection>
+          <scmTag>log4j-${Log4jReleaseVersion}</scmTag>
+        </configuration>
+      </plugin>
+      <!-- Surefire report -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-report-plugin</artifactId>
+        <version>${surefire.plugin.version}</version>
+        <reportSets>
+          <reportSet>
+            <id>integration-tests</id>
+            <reports>
+              <report>failsafe-report-only</report>
+            </reports>
+          </reportSet>
+        </reportSets>
+      </plugin>
+      <!-- RAT report -->
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <version>${rat.plugin.version}</version>
+        <configuration>
+          <excludes>
+            <!-- Matches other RAT configurations in this POM -->
+            <exclude>src/main/resources/META-INF/services/**/*</exclude>
+            <!-- IntelliJ files -->
+            <exclude>.idea/**/*</exclude>
+            <exclude>src/test/resources/**/*</exclude>
+            <!-- IDE settings imports -->
+            <exclude>src/ide/**</exclude>
+            <!-- does it even make sense to apply a license to a GPG signature? -->
+            <exclude>**/*.asc</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>log4j-distribution/target/**/*</exclude>
+            <exclude>log4j-distribution/.project</exclude>
+            <exclude>log4j-distribution/.settings/**</exclude>
+            <exclude>velocity.log</exclude>
+            <!-- Other -->
+            <exclude>felix-cache/**</exclude>
+            <exclude>RELEASE-NOTES.txt</exclude>
+            <exclude>**/revapi.json</exclude>
+          </excludes>
+        </configuration>
+      </plugin>
+    </plugins>
+  </reporting>
+  <distributionManagement>
+    <downloadUrl>https://logging.apache.org/log4j/2.x/download.html</downloadUrl>
+    <!-- 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>
+  </distributionManagement>
+  <modules>
+    <module>log4j-api-java9</module>
+    <module>log4j-api</module>
+    <module>log4j-core-java9</module>
+    <module>log4j-core</module>
+    <module>log4j-core-its</module>
+    <module>log4j-1.2-api</module>
+    <module>log4j-slf4j-impl</module>
+    <module>log4j-slf4j18-impl</module>
+    <module>log4j-to-slf4j</module>
+    <module>log4j-jcl</module>
+    <module>log4j-flume-ng</module>
+    <module>log4j-taglib</module>
+    <module>log4j-jmx-gui</module>
+    <module>log4j-samples</module>
+    <module>log4j-bom</module>
+    <module>log4j-jdbc-dbcp2</module>
+    <module>log4j-jpa</module>
+    <module>log4j-couchdb</module>
+    <module>log4j-mongodb2</module>
+    <module>log4j-mongodb3</module>
+    <module>log4j-cassandra</module>
+    <module>log4j-web</module>
+    <module>log4j-perf</module>
+    <module>log4j-iostreams</module>
+    <module>log4j-jul</module>
+    <module>log4j-liquibase</module>
+    <module>log4j-appserver</module>
+    <module>log4j-osgi</module>
+  </modules>
+  <profiles>
+    <profile>
+      <id>pdf</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-pdf-plugin</artifactId>
+            <version>${pdf.plugin.version}</version>
+            <executions>
+              <execution>
+                <id>pdf</id>
+                <phase>generate-resources</phase>
+                <goals>
+                  <goal>pdf</goal>
+                </goals>
+                <configuration>
+                  <outputDirectory>${project.reporting.outputDirectory}</outputDirectory>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>release-notes</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-changes-plugin</artifactId>
+            <version>${changes.plugin.version}</version>
+            <configuration>
+              <template>announcement.vm</template>
+              <templateDirectory>src/changes</templateDirectory>
+              <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
+              <announcementDirectory>.</announcementDirectory>
+              <announcementFile>RELEASE-NOTES.md</announcementFile>
+              <issueManagementSystems>
+                <issueManagementSystem>changes.xml</issueManagementSystem>
+                <!--<issueManagementSystem>JIRA</issueManagementSystem> -->
+              </issueManagementSystems>
+              <version>${Log4jReleaseVersion}</version>
+              <announceParameters>
+                <releaseVersion>${Log4jReleaseVersion}</releaseVersion>
+                <releaseCount>${Log4jReleaseCount}</releaseCount>
+              </announceParameters>
+              <useJql>true</useJql>
+            </configuration>
+            <executions>
+              <execution>
+                <id>create-release-notes</id>
+                <phase>generate-resources</phase>
+                <goals>
+                  <goal>announcement-generate</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>apache-release</id>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-assembly-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>source-release-assembly</id>
+                <configuration>
+                  <skipAssembly>true</skipAssembly>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+      <modules>
+        <module>log4j-distribution</module>
+      </modules>
+    </profile>
+    <profile>
+      <id>rat</id>
+      <build>
+        <plugins>
+          <!-- RAT report -->
+          <plugin>
+            <groupId>org.apache.rat</groupId>
+            <artifactId>apache-rat-plugin</artifactId>
+            <version>${rat.plugin.version}</version>
+            <configuration>
+              <excludes>
+                <!-- Matches other RAT configurations in this POM -->
+                <exclude>src/main/resources/META-INF/services/**/*</exclude>
+                <!-- IntelliJ files -->
+                <exclude>.idea/**/*</exclude>
+                <exclude>src/test/resources/**/*</exclude>
+                <!-- IDE settings imports -->
+                <exclude>src/ide/**</exclude>
+                <!-- does it even make sense to apply a license to a GPG signature? -->
+                <exclude>**/*.asc</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>log4j-distribution/target/**/*</exclude>
+                <exclude>log4j-distribution/.project</exclude>
+                <exclude>log4j-distribution/.settings/**</exclude>
+                <exclude>velocity.log</exclude>
+                <!-- Other -->
+                <exclude>felix-cache/**</exclude>
+                <exclude>RELEASE-NOTES.md</exclude>
+                <exclude>**/revapi.json</exclude>
+              </excludes>
+            </configuration>
+            <executions>
+              <execution>
+                <phase>verify</phase>
+                <goals>
+                  <goal>check</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <!-- http://www.yourkit.com/docs/80/help/agent.jsp -->
+      <id>yourkit-mac</id>
+      <!--
+      <activation>
+        <os>
+          <family>Mac</family>
+        </os>
+        <file>
+          <exists>${yourkit.home}/bin/mac/libyjpagent.jnilib</exists>
+        </file>
+      </activation>
+      -->
+      <properties>
+        <yourkit.home>/Applications/YJP.app</yourkit.home>
+      </properties>
+      <dependencies>
+        <dependency>
+          <groupId>com.yourkit</groupId>
+          <artifactId>yjp-controller-api-redist</artifactId>
+          <version>2013</version>
+          <scope>system</scope>
+          <systemPath>${yourkit.home}/lib/yjp-controller-api-redist.jar</systemPath>
+        </dependency>
+      </dependencies>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <configuration>
+              <argLine>-agentpath:"${yourkit.home}/bin/mac/libyjpagent.jnilib"</argLine>
+            </configuration>
+          </plugin>
+          <plugin>
+            <artifactId>maven-failsafe-plugin</artifactId>
+            <configuration>
+              <argLine>-agentpath:"${yourkit.home}/bin/mac/libyjpagent.jnilib"</argLine>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>jdk8orGreater</id>
+      <activation>
+        <jdk>[1.8,)</jdk>
+      </activation>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.revapi</groupId>
+            <artifactId>revapi-maven-plugin</artifactId>
+            <version>${revapi.plugin.version}</version>
+            <dependencies>
+              <dependency>
+                <groupId>org.revapi</groupId>
+                <artifactId>revapi-java</artifactId>
+                <version>0.18.2</version>
+              </dependency>
+            </dependencies>
+            <executions>
+              <execution>
+                <goals><goal>check</goal></goals>
+                <configuration>
+                  <checkDependencies>false</checkDependencies>
+                  <skip>${revapi.skip}</skip>
+                  <failOnMissingConfigurationFiles>false</failOnMissingConfigurationFiles>
+                  <analysisConfigurationFiles>
+                    <path>revapi.json</path>
+                  </analysisConfigurationFiles>
+                  <analysisConfiguration><![CDATA[
+[
+  {
+     "extension": "revapi.java",
+     "configuration": {
+       "missing-classes": {
+         "behavior": "report",
+         "ignoreMissingAnnotations": false
+       },
+       "reportUsesFor": [
+          "java.missing.newClass",
+          "java.class.nonPublicPartOfAPI"
+       ],
+       "filter": {
+         "classes": {
+           "regex": true,
+           "include": [
+             "org\\.apache\\.logging\\.log4j(\\..+)?"
+           ]
+         },
+         "packages": {
+           "regex": true,
+           "include": [
+             "org\\.apache\\.logging\\.log4j(\\..+)?"
+           ]
+         }
+       }
+     }
+  }
+]
+              ]]></analysisConfiguration>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+      <reporting>
+        <plugins>
+          <plugin>
+            <groupId>org.revapi</groupId>
+            <artifactId>revapi-maven-plugin</artifactId>
+            <version>${revapi.plugin.version}</version>
+            <reportSets>
+              <reportSet>
+                <inherited>false</inherited>
+                <reports>
+                  <report>report-aggregate</report>
+                </reports>
+              </reportSet>
+              <reportSet>
+                <reports>
+                  <report>report</report>
+                </reports>
+              </reportSet>
+            </reportSets>
+          </plugin>
+        </plugins>
+      </reporting>
+    </profile>
+    <profile>
+      <id>jdk7</id>
+      <activation>
+        <jdk>1.7</jdk>
+      </activation>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>clirr-maven-plugin</artifactId>
+            <version>${clirr.plugin.version}</version>
+            <dependencies>
+              <dependency>
+                <groupId>org.apache.bcel</groupId>
+                <artifactId>bcel</artifactId>
+                <version>6.2</version>
+              </dependency>
+            </dependencies>
+            <configuration>
+              <minSeverity>${minSeverity}</minSeverity>
+            </configuration>
+          </plugin>
+          <plugin>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <configuration>
+              <argLine>-XX:MaxPermSize=512m</argLine>
+            </configuration>
+          </plugin>
+          <plugin>
+            <artifactId>maven-failsafe-plugin</artifactId>
+            <configuration>
+              <argLine>-XX:MaxPermSize=512m</argLine>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>useJava7</id>
+      <activation>
+        <property>
+          <name>useJava7</name>
+        </property>
+      </activation>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-toolchains-plugin</artifactId>
+            <version>1.1</version>
+            <executions>
+              <execution>
+                <goals>
+                  <goal>toolchain</goal>
+                </goals>
+              </execution>
+            </executions>
+            <configuration>
+              <toolchains>
+                <jdk>
+                  <version>1.7</version>
+                </jdk>
+              </toolchains>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>java8-doclint-disabled</id>
+      <activation>
+        <jdk>[1.8,)</jdk>
+      </activation>
+      <properties>
+        <javadoc.opts>-Xdoclint:none</javadoc.opts>
+      </properties>
+    </profile>
+  </profiles>
+</project>
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 4580e70..1671ffe 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -1,4498 +1,4501 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set sw=2: -->
-<!--
-   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.
--->
-<document xmlns="http://maven.apache.org/changes/1.0.0"
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/xsd/changes-1.0.0.xsd">
-  <properties>
-    <title>Changes</title>
-  </properties>
-  <body>
-    <!-- NOTE: the text node in an action element is interpreted as Markdown in the release notes! -->
-    <!-- The "type" attribute can have the following values:
-         - "add" - New Feature
-         - "fix" - Fixed Bug
-         - "update" - Change
-         - "remove" - Removed
-    -->
-    <release version="2.12.0" date="2019-MM-DD" description="GA Release 2.12.0">
-      <action issue="LOG4J2-2559" dev="ggregory" type="fix" due-to="Li Lei, Gary Gregory">
-        NullPointerException in JdbcAppender.createAppender().
-      </action>
-    </release>
-    <release version="2.11.2" date="2019-02-04" description="GA Release 2.11.2">
-      <action issue="LOG4J2-2500" dev="rgoers" type="fix">
-        Document that Properties element must be the first configuration element.
-      </action>
-      <action issue="LOG4J2-2543" dev="rgoers" type="fix" due-to="Dermot Hardy">
-        Add Log4j-to-SLF4J to BOM pom.xml.
-      </action>
-      <action issue="LOG4J2-2061" dev="rgoers" type="fix">
-        Use the file pattern as the FileManager "name" when no filename is present.
-      </action>
-      <action issue="LOG4J2-2009" dev="rgoers" type="fix">
-        Expose LoggerContext.setConfiguration as a public method.
-      </action>
-      <action issue="LOG4J2-2542" dev="rgoers" type="fix">
-        CronTriggeringPolicy was not rolling properly, especially when used with the SizeBasedTriggeringPolicy.
-      </action>
-      <action issue="LOG4J2-2266" dev="rgoers" type="fix">
-        Load PropertySources from any accessible ClassLoader. Hide any exceptions that may occur accessing a PropertySource.
-      </action>
-      <action issue="LOG4J2-1570" dev="rgoers" type="fix">
-        Logging with a lambda expression with a method call that also logs would cause logs within method call to reference line num and method name of the parent method.
-      </action>
-      <action issue="LOG4J2-1576" dev="rgoers" type="update">
-        Switch from CLIRR to RevAPI for detecting API changes.
-      </action>
-      <action issue="LOG4J2-2485" dev="rgoers" type="fix" due-to="Giovanni Matteo Fumarola">
-        SizeBasedTriggeringPolicy was not honored when using the DirectWriteRolloverStrategy if the machine restarts.
-      </action>
-      <action issue="LOG4J2-1906" dev="rgoers" type="fix">
-        Direct write was creating files with the wrong date/time.
-      </action>
-      <action issue="LOG4J2-2453" dev="rgoers" type="fix" due-to="theit">
-        Add Log4j-slf4j18-impl dependency to bom pom.
-      </action>
-      <action issue="LOG4J2-2515" dev="rgoers" type="fix" due-to="MakarovS">
-        Configuration documentation referenced incorrect method name.
-      </action>
-      <action issue="LOG4J2-2514" dev="rgoers" type="fix" due-to="smilebrian0515">
-        Make Strings.toRootUpperCase a static method so it can be accessed.
-      </action>
-      <action issue="LOG4J2-1571" dev="rgoers" type="fix" due-to="torbenmoeller">
-        Fixed Appenders section in Extending Log4j.
-      </action>
-      <action issue="LOG4J2-2391" dev="ckozak" type="update">
-        Improve exception logging performance. ThrowableProxy construction uses a faster
-        method to discover the current stack trace. ThrowablePatternConverter and
-        ExtendedThrowablePatternConverter default configurations no longer allocate
-        an additional buffer for stack trace contents.
-      </action>
-      <action issue="LOG4J2-2397" dev="ggregory" type="fix" due-to="EckelDong">
-        Predeployment of PersistenceUnit that using Log4j as session logger failed (#198).
-      </action>
-      <action issue="LOG4J2-2365" dev="ckozak" type="fix" due-to="Eugene Zimichev">
-        NameAbbreviator correctly abbreviates first fragments (#188).
-      </action>
-      <action issue="LOG4J2-2201" dev="ckozak" type="fix">
-        Fix memory leak in ReusableParameterizedMessage.
-      </action>
-      <action issue="LOG4J2-2363" dev="ckozak" type="fix" due-to="Brian Laub">
-        ReusableObjectMessage parameter is properly passed to appenders (#203).
-      </action>
-      <action issue="LOG4J2-2418" dev="ggregory" type="fix" due-to="Jonas Rutishauser">
-        NullPointerException when closing never used RollingRandomAccessFileAppender.
-      </action>
-      <action issue="LOG4J2-2422" dev="ggregory" type="fix" due-to="rswart, Gary Gregory">
-        Handle some unchecked exceptions while loading plugins.
-      </action>
-      <action issue="LOG4J2-2441" dev="ckozak" type="fix">
-        Setting a null ErrorHandler on AbstractAppender is not allowed and will no-op as expected.
-      </action>
-      <action issue="LOG4J2-2444" dev="ckozak" type="fix">
-        ErrorHandler is invoked with a LogEvent and Throwable when possible, where previously only a string was used.
-      </action>
-      <action issue="LOG4J2-2447" dev="ggregory" type="update">
-        Let the NullAppender default its name to "null".
-      </action>
-      <action issue="LOG4J2-2468" dev="ggregory" type="update">
-        Update Jackson from 2.9.6 to 2.9.7.
-      </action>
-      <action issue="LOG4J2-2469" dev="ggregory" type="update">
-        Update Apache Commons Compress from 1.17 to 1.18.
-      </action>
-      <action issue="LOG4J2-2470" dev="ggregory" type="update">
-        Update Apache Commons CSV from 1.5 to 1.6.
-      </action>
-      <action issue="LOG4J2-2471" dev="ggregory" type="update">
-        Update javax.mail from 1.6.1 to 1.6.2.
-      </action>
-      <action issue="LOG4J2-2472" dev="ggregory" type="update">
-        Update mongo-java-driver 3 from 3.8.0 to 3.8.2.
-      </action>
-      <action issue="LOG4J2-2413" dev="ggregory" type="fix" due-to="Andres Luuk, Gary Gregory">
-        Exceptions are added to all columns when a JDBC Appender's ColumnMapping uses a Pattern.
-      </action>
-      <action issue="LOG4J2-2466" dev="ggregory" type="fix" due-to="Paolo Bonanomi, Gary Gregory">
-        ColumnMapping literal not working.
-      </action>
-      <action issue="LOG4J2-2478" dev="ckozak" type="fix" due-to="Diego Elias Costa">
-        AbstractStringLayoutStringEncodingBenchmark returns the computed variables on each benchmark to avoid DCE.
-      </action>
-      <action issue="LOG4J2-2134" dev="ggregory" type="fix" due-to="David del Amo Mateos, Gary Gregory">
-      	StackOverflowError at AwaitCompletionReliabilityStrategy.
-      </action>
-      <action issue="LOG4J2-2481" dev="ggregory" type="fix">
-      	Avoid NullPointerExceptions in org.apache.logging.log4j.core.config.AbstractConfiguration for null arguments.
-      </action>
-      <action issue="LOG4J2-2457" dev="ggregory" type="fix" due-to="Heiko Schwanke, Gary Gregory">
-      	RollingRandomAccessFileManager ignores new file patterns from programmatic reconfiguration.
-      </action>
-      <action issue="LOG4J2-2482" dev="ggregory" type="fix" due-to="Rob Gansevles">
-        BasicContextSelector cannot be used in a OSGI application.
-      </action>
-      <action issue="LOG4J2-2476" dev="ggregory" type="fix" due-to="Al Bundy">
-        org.apache.log4j.SimpleLayout and ConsoleAppender missing in log4j-1.2-api.
-      </action>
-      <action issue="LOG4J2-2489" dev="ggregory" type="update">
-        JDBC Appender should release parameter resources ASAP.
-      </action>
-      <action issue="LOG4J2-2491" dev="ggregory" type="update">
-        Allow all Appenders to optionally carry a Property array.
-      </action>
-      <action issue="LOG4J2-2497" dev="ggregory" type="fix">
-        JmsAppender reconnectIntervalMillis cannot be set from a configuration file.
-      </action>
-      <action issue="LOG4J2-2499" dev="ggregory" type="fix">
-        JMS Appender may throw a NullPointerException when JMS is not up while the Appender is starting.
-      </action>
-      <action issue="LOG4J2-2496" dev="ggregory" type="add">
-        JDBC Appender should reconnect to the database when a connection goes stale.
-      </action>
-      <action issue="LOG4J2-2405" dev="ggregory" type="update" due-to="Marco Herrn">
-        Better handling of %highlight pattern when using jul-bridge.
-      </action>
-      <action issue="LOG4J2-2503" dev="ggregory" type="update">
-        Update MongoDB driver from 3.8.2 to 3.9.0 for log4j-mongodb3 module.
-      </action>
-      <action issue="LOG4J2-2505" dev="ggregory" type="add">
-        Let JDBC PoolingDriverConnectionSource with Apache Commons DBCP configure a PoolableConnectionFactory.
-      </action>
-      <action issue="LOG4J2-2508" dev="ggregory" type="fix">
-      	JDBC Appender fails when using both parameter, source, and literal ColumnMapping elements.
-      </action>
-      <action issue="LOG4J2-2509" dev="ggregory" type="add">
-        Allow a JDBC Appender to truncate strings to match a table's metadata column length limit.
-      </action>
-      <action issue="LOG4J2-1246" dev="ggregory" type="add">
-        PatternLayout %date conversion pattern should render time zone designator for ISO-ISO8601.
-      </action>
-      <action issue="LOG4J2-2527" dev="ckozak" type="fix">
-        Prevent ConcurrentModificationException while iterating over ListAppender events.
-      </action>
-      <action issue="LOG4J2-2522" dev="ckozak" type="fix" due-to="Adam Lesiak">
-        Fix regression using MapMessageLookup.lookup with MapMessages that do not implement StringMapMessage.
-      </action>
-      <action issue="LOG4J2-2530" dev="ckozak" type="fix" due-to="Travis Spencer">
-        Generalize checks using MapMessage implementations with do not extend StringMapMessage.
-        Introduce new JAVA_UNQUOTED MapMessage format type based on the JAVA formatting, but without
-        quoted values.
-      </action>
-      <action issue="LOG4J2-2533" dev="ckozak" type="fix" due-to="Michail Prusakov">
-        Fix a regression introduced by LOG4J2-2301 in 2.11.1 allowing allocation to occur in AsyncLoggerConfig.
-      </action>
-    </release>
-    <release version="2.11.1" date="2018-07-22" description="GA Release 2.11.1">
-      <action issue="LOG4J2-2389" dev="rgoers" type="fix" due-to="Liu Wen">
-        ThrowableProxy was saving and retrieving cache entries using different keys.
-      </action>
-      <action issue="LOG4J2-2316" dev="rgoers" type="fix">
-        If root LoggerConfig does not have a Level return ERROR.
-      </action>
-      <action issue="LOG4J2-2390" dev="rgoers" type="fix" due-to="anton-balaniuc">
-        Fix broken links in log4j web documentation.
-      </action>
-      <action issue="LOG4J2-1721" dev="rgoers" type="update" due-to="Phokham Nonava">
-        Allow composite configuration for context parameter.
-      </action>
-      <action issue="LOG4J2-2343" dev="rgoers" type="fix" due-to="Raymond Augé">
-        The OSGi Activator specified an incorrect version.
-      </action>
-      <action issue="LOG4J2-2305" dev="rgoers" type="fix" due-to="Björn Kautler">
-        Make java.util.ServiceLoader properly work in OSGi by using the Service Loader Mediator Specification.
-      </action>
-      <action issue="LOG4J2-2305" dev="rgoers" type="fix">
-        Split the SLF4J binding into 2 implementations - one for SLF4J 1.7.x and one for SLF4J 1.8+.
-      </action>
-      <action issue="LOG4J2-2268" dev="rgoers" type="fix" due-to="Tilman Hausherr">
-        Improve plugin error message when elements are missing.
-      </action>
-      <action issue="LOG4J2-2283" dev="ggregory" type="fix" due-to="Vishnu Priya Matha">
-        ParserConfigurationException when using Log4j with oracle.xml.jaxp.JXDocumentBuilderFactory.
-      </action>
-      <action issue="LOG4J2-2300" dev="ggregory" type="fix">
-        PoolingDriverConnectionSource does not take into account properties, user name, and password.
-      </action>
-      <action issue="LOG4J2-2302" dev="ggregory" type="update">
-        Status logger should show the Log4j name and version when initializing itself.
-      </action>
-      <action issue="LOG4J2-2304" dev="ggregory" type="update" due-to="wumengsheng">
-        Log4j2 2.8.2 JMX unregister NullPointerException.
-      </action>
-      <action issue="LOG4J2-2311" dev="ggregory" type="update">
-      	Update Jackson from 2.9.4 to 2.9.5.
-      </action>
-      <action issue="LOG4J2-2313" dev="ggregory" type="update">
-      	Update LMAX Disruptor from 3.3.7 to 3.4.2.
-      </action>
-      <action issue="LOG4J2-548" dev="ggregory" type="update" due-to="Shehata, Paresh Varke, Eric Victorson, Martin Laforet">
-      	Log4j 2.0 ERROR "Could not search jar" with JBoss EAP 6.2.
-      </action>
-      <action issue="LOG4J2-2307" dev="ckozak" type="fix">
-        MutableLogEvent and RingBufferLogEvent message mementos retain the original format string.
-      </action>
-      <action issue="LOG4J2-2032" dev="ckozak" type="fix" due-to="Kostiantyn Shchepanovskyi">
-        Curly braces in parameters are not treated as placeholders.
-      </action>
-      <action issue="LOG4J2-2317" dev="ckozak" type="fix">
-        MutableLogEvent.getNonNullImmutableMessage and Log4jLogEvent.makeMessageImmutable retain format and parameters.
-      </action>
-      <action issue="LOG4J2-2318" dev="ckozak" type="fix">
-        Messages are no longer mutated when the asynchronous queue is full. A warning is logged to the status logger instead.
-      </action>
-      <action issue="LOG4J2-2320" dev="ckozak" type="fix">
-        Fix NPE in AbstractLogger when another exception is thrown, masking the root cause.
-      </action>
-      <action issue="LOG4J2-2321" dev="ckozak" type="fix">
-        AsyncLogger uses the correct level when unspecified. This provides parity between AsyncLogger and Logger.
-      </action>
-      <action issue="LOG4J2-2322" dev="ckozak" type="fix">
-        Custom ContextSelector implementations which select an AsyncLoggerContext disable LoggerConfig.includeLocation
-        by default for parity with AsyncLoggerContextSelector.
-      </action>
-      <action issue="LOG4J2-2269" dev="ckozak" type="fix">
-        MutableLogEvent references to other objects are cleared after each use.
-        Fix a memory leak causing references to parameters to be held after synchronous logging with thread locals enabled.
-      </action>
-      <action issue="LOG4J2-2328" dev="ggregory" type="update">
-        Update JAnsi from 1.17 to 1.17.1.
-      </action>
-      <action issue="LOG4J2-2301" dev="ckozak" type="fix">
-        Mixed async loggers no longer forget parameter values, providing some appenders with an array of nulls.
-      </action>
-      <action issue="LOG4J2-2331" dev="ckozak" type="fix" due-to="Mike Baranski">
-        RollingFileManager debug logging avoids string concatenation and errant braces in favor of parameterized logging.
-      </action>
-      <action issue="LOG4J2-2333" dev="ckozak" type="fix">
-        Handle errors thrown in default disruptor ExceptionHandler implementations to avoid killing background threads.
-      </action>
-      <action issue="LOG4J2-2334" dev="ggregory" type="fix">
-        Add API org.apache.logging.log4j.core.appender.AsyncAppender.getQueueSize().
-      </action>
-      <action issue="LOG4J2-2336" dev="ckozak" type="fix">
-        Remove duplicate hyphen from the AsyncLoggerConfig background thread name.
-      </action>
-      <action issue="LOG4J2-2347" dev="ggregory" type="fix">
-        Update Apache Commons Compress from 1.16.1 to 1.17.
-      </action>
-      <action issue="LOG4J2-2351" dev="ckozak" type="update">
-        Added AbstractLogEvent.getMutableInstant to allow the MutableInstant instance to be modified by classes extending AbstractLogEvent.
-      </action>
-      <action issue="LOG4J2-2352" dev="ckozak" type="fix">
-        RingBufferLogEvent memento messages provide the expected format string, and no longer attempt to substitute parameters into curly braces in parameter toString values.
-        Both RingBufferLogEvent and MutableLogEvent memento implementations memoize results to avoid rebuilding formatted string values.
-      </action>
-      <action issue="LOG4J2-2355" dev="ckozak" type="fix" due-to="Henrik Brautaset Aronsen">
-        PropertiesUtil ignores non-string system properties. Fixes a NoClassDefFoundError initializing StatusLogger
-        caused by an NPE while initializing the static PropertiesUtil field.
-      </action>
-      <action issue="LOG4J2-2357" dev="ggregory" type="update">
-        Update Jackson from 2.9.5 to 2.9.6.
-      </action>
-      <action issue="LOG4J2-2358" dev="ggregory" type="update">
-        Update Kafka client from 1.0.0 to 1.1.0.
-      </action>
-      <action issue="LOG4J2-2362" dev="ckozak" type="fix">
-        Fixed a memory leak in which ReusableObjectMessage would hold a reference to the most recently logged object.
-      </action>
-      <action issue="LOG4J2-2312" dev="ckozak" type="fix">
-        Jackson layouts used with AsyncLoggerContextSelector output the expected format rather than only a JSON string of the message text.
-      </action>
-      <action issue="LOG4J2-2364" dev="ckozak" type="fix">
-        Fixed a memory leak in which ReusableParameterizedMessage would hold a reference to the most recently
-        logged throwable and provided varargs array.
-      </action>
-      <action issue="LOG4J2-2368" dev="ckozak" type="fix">
-        Nested logging doesn't clobber AbstractStringLayout cached StringBuidlers
-      </action>
-      <action issue="LOG4J2-2373" dev="ckozak" type="fix" due-to="Kevin Meurer">
-        StringBuilders.escapeJson implementation runs in linear time. Escaping large JSON strings
-        in EncodingPatternConverter and MapMessage will perform significantly better.
-      </action>
-      <action issue="LOG4J2-2376" dev="ckozak" type="fix" due-to="Kevin Meurer">
-        StringBuilders.escapeXml implementation runs in linear time. Escaping large XML strings
-        in EncodingPatternConverter and MapMessage will perform significantly better.
-      </action>
-      <action issue="LOG4J2-2377" dev="ggregory" type="fix" due-to="Mirko Rzehak, Gary Gregory">
-        NullPointerException in org.apache.logging.log4j.util.LoaderUtil.getClassLoaders() when using Bootstrap class loader.
-      </action>
-      <action issue="LOG4J2-2382" dev="ggregory" type="fix">
-        Update Mongodb 3 driver from 3.6.3 to 3.8.0.
-      </action>
-      <action issue="LOG4J2-2384" dev="ggregory" type="update">
-        Update Kafka client from 1.1.0 to 1.1.1.
-      </action>
-      <action issue="LOG4J2-2385" dev="ggregory" type="update">
-        Update Groovy from 2.4.13 to 2.5.1.
-      </action>
-      <action issue="LOG4J2-2386" dev="ggregory" type="update">
-        Update optional Apache Commons DBCP from 2.2.0 to 2.4.0.
-      </action>
-      <action issue="LOG4J2-2388" dev="ggregory" type="fix" due-to="Failled">
-        Thread indefinitely blocked when logging a message in an interrupted thread.
-      </action>
-    </release>
-    <release version="2.11.0" date="2018-03-11" description="GA Release 2.11.0">
-      <action issue="LOG4J2-2104" dev="rgoers" type="fix">
-        LoaderUtil was not looping properly over classloaders.
-      </action>
-      <action issue="LOG4J2-1976" dev="rgoers" type="fix">
-        Revert OSGi API version to 4.3.1.
-      </action>
-      <action issue="LOG4J2-2273" dev="rpopma" type="update" due-to="Bruno P. Kinoshita">
-        Documentation fix in manual page for custom configurations.
-      </action>
-      <action issue="LOG4J2-2252" dev="rpopma" type="update" due-to="Carter Kozak">
-        Reusable LogEvents now pass the original format string to downstream components like layouts and filters.
-      </action>
-      <action issue="LOG4J2-2253" dev="rpopma" type="add" due-to="Carter Kozak">
-        Add API to enable iterating over message parameters without creating temporary objects.
-      </action>
-      <action issue="LOG4J2-2271" dev="rgoers" type="fix">
-        Move module-info.class to META-INF/versions/9 directory.
-      </action>
-      <action issue="LOG4J2-2254" dev="rgoers" type="fix">
-        Incorrect automatics module name header was being included in manifests.
-      </action>
-      <action issue="LOG4J2-2247" dev="rgoers" type="fix">
-        NullPointerException would occur when header was provided to a Layout on RollingRandingAccessFileAppender
-        with DirectWriteRolloverStrategy.
-      </action>
-      <action issue="LOG4J2-2250" dev="rpopma" type="update">
-        The internal status logger timestamp format is now configurable with system property `log4j2.StatusLogger.DateFormat`.
-      </action>
-      <action issue="LOG4J2-2236" dev="rpopma" type="update">
-        Removed unnecessary dependency on jcommander since Log4j uses embedded picocli since 2.9.
-      </action>
-      <action issue="LOG4J2-1883" dev="rpopma" type="add" due-to="Anthony Maire">
-        Added support for precise (micro and nanosecond) timestamps when running on Java 9. A limited number of precise %d date formats are supported with PatternLayout. POTENTIAL BREAKING CHANGE: The XML, JSON and YAML formats have changed: they no longer have the "timeMillis" attribute and instead have an "Instant" element with "epochSecond" and "nanoOfSecond" attributes.
-      </action>
-      <action issue="LOG4J2-2190" dev="mikes" type="add" due-to="Franz Wong">
-        Output JSON object for ObjectMessage in JsonLayout.
-      </action>
-      <action issue="LOG4J2-2191" dev="rpopma" type="add">
-        Made log4j-core a multi-release ("multi-version") jar, added log4j-core-java9 module.
-      </action>
-      <action issue="LOG4J2-2129" dev="rgoers" type="fix" due-to="Blazej Bucko">
-        Log4j2 throws NoClassDefFoundError in Java 9 in java.util.ServiceLoader.
-      </action>
-      <action issue="LOG4J2-2158" dev="rpopma" type="fix" due-to="Björn Kautler">
-        Fixed bug where ThreadContext map was cleared, resulting in entries being only available for one log event.
-      </action>
-      <action issue="LOG4J2-2002" dev="mikes" type="fix" due-to="Paul Burrowes">
-        Avoid null attribute values in DefaultConfigurationBuilder.
-      </action>
-      <action issue="LOG4J2-2175" dev="mikes" type="fix" due-to="Behrang Saeedzadeh">
-        Fix typo in Property Substitution docs.
-      </action>
-      <action issue="LOG4J2-2163" dev="rgoers" type="fix">
-        Allow SortedArrayStringMap to be filtered upon deserialization. Fix build error in Java 9 when
-        compiling log4j-core test classes.
-      </action>
-      <action issue="LOG4J2-2157" dev="ggregory" type="fix" due-to="Malte Skoruppa">
-        Don't create exit message in traceExit(R) when logging is disabled.
-      </action>
-      <action issue="LOG4J2-2123" dev="rgoers" type="fix" due-to="Jacob Tolar">
-        DefaultMergeStrategy did not merge filters on loggers correctly.
-      </action>
-      <action issue="LOG4J2-2146" dev="rgoers" type="update">
-        Update version of maven bundle plugin to 3.4.0. Convert bundle plugin error to a warning.
-      </action>
-      <action issue="LOG4J2-2215" dev="rpopma" type="update">
-        Reduce compiler warnings in log4j-api.
-      </action>
-      <action issue="LOG4J2-2143" dev="mikes" type="add">
-        Add missing converters to PatternLayout.
-      </action>
-      <action issue="LOG4J2-2160" dev="ggregory" type="add">
-        Add API org.apache.logging.log4j.core.lookup.Interpolator.getStrLookupMap().
-      </action>
-      <action issue="LOG4J2-2127" dev="rpopma" type="update" due-to="Carter Kozak">
-        Removed unnecessary threadlocal StringBuilder field from MdcPatternConverter.
-      </action>
-      <action issue="LOG4J2-2126" dev="rpopma" type="fix" due-to="Oleg Kalnichevski">
-        Removed compile-time dependency on Java Management APIs from Log4J API module to improve compatibility with Android Platform which does not support JMX extensions.
-      </action>
-      <action issue="LOG4J2-2194" dev="rpopma" type="update">
-        Require Java 9 to compile the log4j-perf module to allow benchmarking with Java 9 APIs.
-      </action>
-      <action issue="LOG4J2-2193" dev="rpopma" type="update">
-        Update JMH to version 1.19 from 1.1.1.
-      </action>
-      <action issue="LOG4J2-2132" dev="ggregory" type="update">
-        Update ZeroMQ's jeromq from 0.4.2 to 0.4.3.
-      </action>
-      <action issue="LOG4J2-2165" dev="ggregory" type="update">
-        Update Jackson from 2.9.2 to 2.9.3.
-      </action>
-      <action issue="LOG4J2-2179" dev="ggregory" type="add">
-        The MongoDB Appender should use a keys and values for a Log4j MapMessage.
-      </action>
-      <action issue="LOG4J2-2180" dev="ggregory" type="add">
-        Add a MongoDbProvider builder for and deprecate org.apache.logging.log4j.mongodb.MongoDbProvider.createNoSqlProvider().
-      </action>
-      <action issue="LOG4J2-2181" dev="ggregory" type="add">
-        The JDBC Appender should use keys and values from a Log4j MapMessage.
-      </action>
-      <action issue="LOG4J2-2184" dev="ggregory" type="update">
-        Update MongoDB driver from 3.0.4 to 3.6.1.
-      </action>
-      <action issue="LOG4J2-2185" dev="ggregory" type="add">
-        Add a simple JDBC DriverManager-based ConnectionSource that uses JDBC's DriverManager#getConnection(String, String, String).
-      </action>
-      <action issue="LOG4J2-2197" dev="ggregory" type="update" due-to="Fabrice Daugan">
-        Document default property value support.
-      </action>
-      <action issue="LOG4J2-2198" dev="ggregory" type="update">
-        Update MongoDB dependencies from classic to modern.
-      </action>
-      <action issue="LOG4J2-2186" dev="ggregory" type="add">
-        Add a JDBC ConnectionSource that provides pooling through Apache Commons DBCP 2.
-      </action>
-      <action issue="LOG4J2-2187" dev="ggregory" type="add">
-        Add a hook for a Connection Source for a JDBC Appender to release its resources.
-      </action>
-      <action issue="LOG4J2-2203" dev="ggregory" type="add">
-        Add org.apache.logging.log4j.core.util.WatchManager#unwatch(File).
-      </action>
-      <action issue="LOG4J2-2204" dev="ggregory" type="update">
-        org.apache.logging.log4j.core.util.WatchManager.getWatchers() should pre-allocate its new Map.
-      </action>
-      <action issue="LOG4J2-2206" dev="ggregory" type="add">
-        Add method org.apache.logging.log4j.core.util.WatchManager.reset(File) and reset().
-      </action>
-      <action issue="LOG4J2-2208" dev="ggregory" type="add">
-        Add debug logging to org.apache.logging.log4j.mongodb.MongoDbConnection.
-      </action>
-      <action issue="LOG4J2-2209" dev="ggregory" type="update">
-        Rename existing MongoDb plugin and related artifacts from MongoDb to MongoDb2.
-      </action>
-      <action issue="LOG4J2-2210" dev="ggregory" type="update" due-to="Björn Kautler">
-        Fix error log message for Script which says ScriptFile instead.
-      </action>
-      <action issue="LOG4J2-2212" dev="ggregory" type="update" due-to="Daniel Feist, Gary Gregory">
-        Unnecessary contention in CopyOnWriteSortedArrayThreadContextMap.
-      </action>
-      <action issue="LOG4J2-2213" dev="ggregory" type="update" due-to="Daniel Feist, Gary Gregory">
-        Unnecessary contention in GarbageFreeSortedArrayThreadContextMap.
-      </action>
-      <action issue="LOG4J2-2214" dev="ggregory" type="update" due-to="Daniel Feist, Gary Gregory">
-        Unnecessary contention in DefaultThreadContextMap.
-      </action>
-      <action issue="LOG4J2-2182" dev="ggregory" type="update" due-to="liwenxian2017, Gary Gregory">
-        NullPointerException at org.apache.logging.log4j.util.Activator.loadProvider(Activator.java:81) in log4j 2.10.0.
-      </action>
-      <action issue="LOG4J2-2202" dev="ggregory" type="update" due-to="Kilian, Gary Gregory">
-        MarkerFilter onMismatch invalid attribute in .properties.
-      </action>
-      <action issue="LOG4J2-2219" dev="ggregory" type="update" due-to="Kilian, Gary Gregory">
-        Configuration builder classes should look for "onMismatch", not "onMisMatch".
-      </action>
-      <action issue="LOG4J2-2205" dev="ggregory" type="update" due-to="Gary Gregory">
-        New module log4j-mongodb3: Remove use of deprecated MongoDB APIs and code to the Java driver version 3 API.
-      </action>
-      <action issue="LOG4J2-2188" dev="ggregory" type="update" due-to="Gary Gregory">
-        Split off JPA support into a new module log4j-jpa.
-      </action>
-      <action issue="LOG4J2-2229" dev="ggregory" type="update" due-to="Gary Gregory">
-        Update Jackson from 2.9.3 to 2.9.4.
-      </action>
-      <action issue="LOG4J2-2243" dev="ggregory" type="update" due-to="Gary Gregory">
-        Cannot see or copy all of certain JAnsi exception messages on Windows due to NUL characters.
-      </action>
-      <action issue="LOG4J2-2245" dev="ggregory" type="update" due-to="Gary Gregory">
-        Update Apache Commons Compress from 1.15 to 1.16.1.
-      </action>
-      <action issue="LOG4J2-2259" dev="ggregory" type="update">
-        Update MongoDB 3 module from driver 3.6.1 to 3.6.3.
-      </action>
-      <action issue="LOG4J2-2260" dev="ggregory" type="update">
-        [SMTP] Update javax.mail from 1.6.0 to 1.6.1.
-      </action>
-      <action issue="LOG4J2-2264" dev="ggregory" type="update">
-        Update JAnsi from 1.16 to 1.17.
-      </action>
-      <action issue="LOG4J2-2270" dev="ggregory" type="fix" due-to="Cyril Martin">
-        Strings::join, when called with [null] returns "null" instead of EMPTY.
-      </action>
-      <action issue="LOG4J2-2276" dev="ggregory" type="fix" due-to="Sean Baxter">
-        ConcurrentModificationException from org.apache.logging.log4j.status.StatusLogger.&lt;clinit>(StatusLogger.java:71).
-      </action>
-      <action issue="LOG4J2-2274" dev="ggregory" type="fix" due-to="Sebastien Lannez">
-        Allow EnvironmentPropertySource to run with a SecurityManager that rejects environment variable access.
-      </action>
-      <action issue="LOG4J2-2279" dev="ggregory" type="fix" due-to="Gary Gregory">
-        Allow SystemPropertiesPropertySource to run with a SecurityManager that rejects system property access.
-      </action>
-    </release>
-    <release version="2.10.0" date="2017-11-18" description="GA Release 2.10.0">
-      <action issue="LOG4J2-2289" dev="ggregory" type="fix" due-to="Hari Menon">
-        XML Schema for DynamicFilterThreshold does not accept multiple KeyValuePairs.
-      </action>
-      <action issue="LOG4J2-2120" dev="mikes" type="add" due-to="Carter Douglas Kozak">
-        Properly escape newlines and other control characters in JSON.
-      </action>
-      <action issue="LOG4J2-2109" dev="mikes" type="add" due-to="Carter Douglas Kozak">
-        Add property to disable message pattern converter lookups.
-      </action>
-      <action issue="LOG4J2-2112" dev="mikes" type="add" due-to="Carter Douglas Kozak">
-        MapMessage should use deep toString for values.
-      </action>
-      <action issue="LOG4J2-2107" dev="mikes" type="fix" due-to="Carter Douglas Kozak">
-        MapMessage supports both StringBuilderFormattable and MultiformatMessage.
-      </action>
-      <action issue="LOG4J2-2102" dev="mikes" type="fix" due-to="Carter Douglas Kozak">
-        MapMessage JSON encoding will escape keys and values.
-      </action>
-      <action issue="LOG4J2-2101" dev="mikes" type="fix" due-to="Carter Douglas Kozak">
-        Non-string value in MapMessage caused ClassCastException.
-      </action>
-      <action issue="LOG4J2-2103" dev="mikes" type="add">
-        XML encoding for PatternLayout.
-      </action>
-      <action issue="LOG4J2-2114" dev="ggregory" type="add">
-        Provide a native Log4j 2 implementation of Eclipse Jetty's org.eclipse.jetty.util.log.Logger.
-      </action>
-      <action issue="LOG4J2-1203" dev="mikes" type="add" due-to="Robert Turner">
-        Allow filtering of line breaks in layout pattern.
-      </action>
-      <action issue="LOG4J2-2098" dev="rgoers" type="add">
-        Add a noop AppenderSkeleton for applications still using Log4j 1.x.
-      </action>
-      <action issue="LOG4J2-2091" dev="mikes" type="fix" due-to="Carter Douglas Kozak">
-        Log4j respects the configured "log4j2.is.webapp" property
-      </action>
-      <action issue="LOG4J2-2100" dev="ggregory" type="fix">
-        LevelMixIn class for Jackson is coded incorrectly
-      </action>
-      <action issue="LOG4J2-2087" dev="rpopma" type="fix" due-to="Andy Gumbrecht">
-        Jansi now needs to be enabled explicitly (by setting system property `log4j.skipJansi` to `false`). To avoid causing problems for web applications, Log4j will no longer automatically try to load Jansi without explicit configuration.
-      </action>
-      <action issue="LOG4J2-2060" dev="rpopma" type="fix">
-        AbstractDatabaseManager should make a copy of LogEvents before holding references to them: AsyncLogger log events are mutable.
-      </action>
-      <action issue="LOG4J2-2076" dev="mikes" type="update">
-        Split up log4j-nosql into one module per appender.
-      </action>
-      <action issue="LOG4J2-2088" dev="rpopma" type="update">
-        Upgrade picocli to 2.0.3 from 0.9.8.
-      </action>
-      <action issue="LOG4J2-2062" dev="mikes" type="add" due-to="Jorge Sanchez">
-        Add possibility of sending the key of a message to Kafka using KafkaAppender.
-      </action>
-      <action issue="LOG4J2-2056" dev="rgoers" type="add">
-        Modularize Log4j-api and make most other log4j jars automatic modules.
-      </action>
-      <action issue="LOG4J2-1431" dev="mattsicker" type="add">
-        Simplify log4j system property naming scheme.
-      </action>
-      <action issue="LOG4J2-1809" dev="mattsicker" type="add">
-        Add global configuration environment SPI.
-      </action>
-      <action issue="LOG4J2-2025" dev="rgoers" type="update">
-        Provide support for overriding the Tomcat Log class in Tomcat 8.5+.
-      </action>
-      <action issue="LOG4J2-1694" dev="mikes" type="add" due-to="Michal Dvořák">
-        Add fields with fixed values to JSON/XML/YAML layouts.
-      </action>
-      <action issue="LOG4J2-2054" dev="rpopma" type="add">
-      Provide ways to configure SSL that avoid plain-text passwords in the log4j configuration. The configuration may
-        now specify a system environment variable that holds the password, or the path to a file that holds the password.
-      </action>
-      <action issue="LOG4J2-2057" dev="rgoers" type="update">
-        Support new SLF4J binding mechanism introduced in SLF4J 1.8.
-      </action>
-      <action issue="LOG4J2-2052" dev="rpopma" type="update">
-        Disable thread name caching by default when running on Java 8u102 or later.
-      </action>
-      <action issue="LOG4J2-2055" dev="rgoers" type="fix">
-        If Log4j is used as the Tomcat logging implementation startup might fail if an application also uses Log4j.
-      </action>
-      <action issue="LOG4J2-1896" dev="rpopma" type="update">
-        Update classes in org.apache.logging.log4j.core.net.ssl in APIs from String to a PasswordProvider producing
-        char[] for passwords.
-      </action>
-      <action issue="LOG4J2-2031" dev="rpopma" type="fix">
-        Until this change, messages appeared out of order in log file any time when the async logging queue was full.
-        With this change, messages are only logged out of order to prevent deadlock when Log4j2 detects recursive
-        logging while the queue is full.
-      </action>
-      <action issue="LOG4J2-2053" dev="ggregory" type="fix">
-        Exception java.nio.charset.UnsupportedCharsetException: cp65001 in 2.9.0.
-      </action>
-      <action issue="LOG4J2-1216" dev="ggregory" type="fix" due-to="Thies Wellpott, Barna Zsombor Klara, GFriedrich">
-        Nested pattern layout options broken.
-      </action>
-      <action issue="LOG4J2-2070" dev="ggregory" type="fix" due-to="Doug Hughes">
-        Log4j1XmlLayout does not provide the entire stack trace, it is missing the caused by information.
-      </action>
-      <action issue="LOG4J2-2036" dev="ggregory" type="fix" due-to="Robert Haycock">
-        CompositeConfiguration supports Reconfiguration. PR #115.
-      </action>
-      <action issue="LOG4J2-2071" dev="ggregory" type="add" due-to="Carter Kozak">
-        Add org.apache.logging.log4j.core.config.composite.CompositeConfiguration#toString().
-      </action>
-      <action issue="LOG4J2-2073" dev="ggregory" type="fix" due-to="Patrick Lucas">
-        Log4j-config.xsd should make AppenderRef optional for each Logger element.
-      </action>
-      <action issue="LOG4J2-2074" dev="ggregory" type="fix">
-        The console appender should say why it cannot load JAnsi.
-      </action>
-      <action issue="LOG4J2-2085" dev="ggregory" type="fix" due-to="István Neuwirth">
-        Wrong Apache Commons CSV version referenced in the Javadoc of CsvParameterLayout.
-      </action>
-      <action issue="LOG4J2-2078" dev="ggregory" type="update">
-        Update LMAX disruptor from 3.3.6 to 3.3.7.
-      </action>
-      <action issue="LOG4J2-2081" dev="ggregory" type="update">
-        Update Apache Commons Compress from 1.14 to 1.15.
-      </action>
-      <action issue="LOG4J2-2089" dev="ggregory" type="update">
-        [TagLib] Update servlet-api provided dependency from 2.5 to 3.0.1.
-      </action>
-      <action issue="LOG4J2-2096" dev="ggregory" type="update">
-        Update Apache Kafka kafka-clients from 0.11.0.1 to 1.0.0.
-      </action>
-      <action issue="LOG4J2-2077" dev="ggregory" type="update">
-        Update from Jackson 2.9.1 to 2.9.2.
-      </action>
-      <action issue="LOG4J2-2117" dev="ggregory" type="update">
-        Jackson dependencies for 2.9.2 incorrectly bring in jackson-annotations 2.9.0 instead of 2.9.2.
-      </action>
-    </release>
-    <release version="2.9.1" date="2017-09-17" description="GA Release 2.9.1">
-      <action issue="LOG4J2-1988" dev="rpopma" type="fix">
-        Prevent ConcurrentModificationException with AsyncLoggerConfig.
-      </action>
-      <action issue="LOG4J2-1914" dev="rpopma" type="fix">
-        Prevent ConcurrentModificationException with AsyncLoggerConfig.
-      </action>
-      <action issue="LOG4J2-2048" dev="rpopma" type="fix">
-        Increase default queue size for AsyncAppender from 128 to 1024.
-      </action>
-      <action issue="LOG4J2-2035" dev="rpopma" type="fix">
-        Fix documentation to clarify disruptor-3.3.4 is now required for async loggers (previously the docs referred to disruptor-3.3.3 which was never released).
-      </action>
-      <action issue="LOG4J2-2030" dev="rgoers" type="fix">
-        Inspect all known ClassLoaders to locate the service provider.
-      </action>
-      <action issue="LOG4J2-2028" dev="rgoers" type="fix" due-to="Jason Tedor">
-        Java 9 StackLocator was not properly skipping the initial stack frames.
-      </action>
-      <action issue="LOG4J2-2023" dev="ggregory" type="update">
-        Use a class' canonical name instead of name to create its logger name.
-      </action>
-      <action issue="LOG4J2-2026" dev="ggregory" type="fix" due-to="Leon Finker">
-        java.lang.AbstractMethodError: javax.xml.parsers.DocumentBuilderFactory.setFeature().
-      </action>
-      <action issue="LOG4J2-2029" dev="ggregory" type="fix" due-to="Fabrizio Cucci">
-        Marker examples should not use deprecated flow APIs.
-      </action>
-      <action issue="LOG4J2-1936" dev="ggregory" type="fix" due-to="Helber Belmiro">
-        ClassNotFoundException when making all loggers asynchronous under OSGi environment.
-      </action>
-      <action issue="LOG4J2-2043" dev="ggregory" type="update">
-        Update Jackson from 2.9.0 to 2.9.1 (fix for Java 9.)
-      </action>
-      <action issue="LOG4J2-2044" dev="ggregory" type="update">
-        Update Apache Commons CSV from 1.4 to 1.5.
-      </action>
-      <action issue="LOG4J2-2045" dev="ggregory" type="update">
-        Update javax.mail from 1.5.6 to 1.6.0.
-      </action>
-      <action issue="LOG4J2-2046" dev="ggregory" type="update">
-        Update Apache Commons Compress from 1.13 to 1.14.
-      </action>
-      <action issue="LOG4J2-2047" dev="ggregory" type="update">
-        Update Cassandra driver from 3.1.0 to 3.1.4.
-      </action>
-      <action issue="LOG4J2-2049" dev="ggregory" type="update">
-        Update Apache Kafka Client from 0.11.0.0 to 0.11.0.1.
-      </action>
-    </release>
-    <release version="2.9.0" date="2017-08-26" description="GA Release 2.9.0">
-      <action issue="LOG4J2-1928" dev="rgoers" type="update">
-        Add support for DirectWriteRolloverStrategy to RollingRandomAccessFileAppender.
-      </action>
-      <action issue="LOG4J2-1833" dev="rgoers" type="fix">
-        Prevent NullPointerException when a file name is specified with the DirectWriteRolloverStrategy.
-      </action>
-      <action issue="LOG4J2-2022" dev="rgoers" type="update">
-        RFC5424Layout now prints the process id.
-      </action>
-      <action issue="LOG4J2-2020" dev="mikes" type="update">
-        Remove default layout from KafkaAppender.
-      </action>
-      <action issue="LOG4J2-2018" dev="rpopma" type="fix">
-        Fix incorrect documentation for LoggerNameLevelRewritePolicy.
-      </action>
-      <action issue="LOG4J2-922" dev="ggregory" type="fix" due-to="angus.aqlu, Paul Burrowes">
-        Parameter of mdcId in SyslogAppender has no default value.
-      </action>
-      <action issue="LOG4J2-2001" dev="ggregory" type="fix" due-to="Paul Burrowes">
-        StyleConverter.newInstance argument validation is incorrect.
-      </action>
-      <action issue="LOG4J2-1999" dev="ggregory" type="fix" due-to="Paul Burrowes">
-        HighlightConverter converts all unrecognized levels to DEBUG.
-      </action>
-      <action issue="LOG4J2-2013" dev="ggregory" type="fix" due-to="Taylor Patton, Gary Gregory">
-        SslSocketManager does not apply SSLContext on TCP reconnect.
-      </action>
-      <action issue="LOG4J2-2023" dev="ggregory" type="update">
-        Use a class' canonical name instead of name to create its logger name.
-      </action>
-      <action issue="LOG4J2-2015" dev="ggregory" type="update">
-        Allow KeyStoreConfiguration and TrustStoreConfiguration to find files as resources.
-      </action>
-      <action issue="LOG4J2-2011" dev="rpopma" type="update">
-        Replace JCommander command line parser with picocli to let users run Log4j2 utility applications without requiring an external dependency.
-      </action>
-      <action issue="LOG4J2-2008" dev="rgoers" type="add">
-        Support printing multiple StructuredData elements in RFC5424Layout.
-      </action>
-      <action issue="LOG4J2-1986" dev="mikes" type="add">
-        Public API for parsing the output from JsonLayout/XmlLayout/YamlLayout into a LogEvent.
-      </action>
-      <action issue="LOG4J2-1984" dev="rgoers" type="update">
-        Allow maxLength of StructuredData to be specified by the user.
-      </action>
-      <action issue="LOG4J2-1071" dev="ggregory" type="update" due-to="Ben Ludkiewicz, Benjamin Jaton">
-        Allow for bufferSize=0 in SMTP appender.
-      </action>
-      <action issue="LOG4J2-1981" dev="mikes" type="add">
-        JsonLayout, XmlLayout and YamlLayout support 0-byte termination of log events.
-      </action>
-      <action issue="LOG4J2-1864" dev="mattsicker" type="add" due-to="Matthias Kappeller">
-        Support capped collections for MongoDb appender.
-      </action>
-      <action issue="LOG4J2-2016" dev="ggregory" type="fix" due-to="Benjamin Jaton">
-        Mark FileRenameAction as successful when using alternative ways to move files.
-      </action>
-      <action issue="LOG4J2-2012" dev="ggregory" type="fix" due-to="Benjamin Jaton">
-        No compression when using a separate drive in Linux.
-      </action>
-      <action issue="LOG4J2-1888" dev="ggregory" type="fix" due-to="Misagh Moayyed">
-        Log4j throws a java.nio.charset.UnsupportedCharsetException: cp65001.
-      </action>
-      <action issue="LOG4J2-1990" dev="ggregory" type="fix" due-to="Philippe Mouawad">
-        ConcurrentModificationException logging a parameter of type Map.
-      </action>
-      <action issue="LOG4J2-1311" dev="ggregory" type="fix" due-to="Xibing Liang">
-        SocketAppender will lose several events after re-connection to server.
-      </action>
-      <action issue="LOG4J2-1977" dev="ggregory" type="fix" due-to="Jerry xnslong">
-        Consider the StringBuilder's capacity instead of content length when trimming.
-      </action>
-      <action issue="LOG4J2-1971" dev="rgoers" type="fix">
-        Register log4j-core as an OSGi service. Skip tests for LOG4J2-1766 on MacOS. Use group "staff" for LOG4J2-1699 test on MacOS.
-      </action>
-      <action issue="LOG4J2-1994" dev="ggregory" type="fix">
-        TcpSocketServer does not close accepted Sockets.
-      </action>
-      <action issue="LOG4J2-1987" dev="ggregory" type="fix" due-to="Andreas Felder">
-        Log4J JUL Bridge and RMI Security Manager causes access denied ("java.util.logging.LoggingPermission" "control")
-      </action>
-      <action issue="LOG4J2-1982" dev="ggregory" type="fix" due-to="Christoph Lembeck">
-        Log4j-config.xsd only allows one AppenderRef element for each Logger element.
-      </action>
-      <action issue="LOG4J2-1985" dev="ggregory" type="fix" due-to="Kenneth McFarland">
-        Fix default buffer size to match documentation (from 8102 to 8192 a.k.a. 8KB.)
-      </action>
-      <action issue="LOG4J2-1813" dev="rpopma" type="add">
-        Log4j2 will now print all internal logging to the console if system property `log4j2.debug` is defined with any value (or no value).
-      </action>
-      <action issue="LOG4J2-1261" dev="rpopma" type="update">
-        Async Loggers no longer use deprecated LMAX Disruptor APIs. (Disruptor-3.3.3 or higher is now required.)
-      </action>
-      <action issue="LOG4J2-1908" dev="rpopma" type="update">
-        Improved error message when misconfigured with multiple incompatible appenders targeting same file.
-      </action>
-      <action issue="LOG4J2-1954" dev="rpopma" type="update">
-        Configurations with multiple root loggers now fail loudly.
-      </action>
-      <action issue="LOG4J2-1958" dev="mikes" type="update">
-        Deprecate SerializedLayout and remove it as default.
-      </action>
-      <action issue="LOG4J2-1959" dev="mikes" type="update">
-        Disable DTD processing in XML configuration files.
-      </action>
-      <action issue="LOG4J2-1766" dev="ggregory" type="add" due-to="Pierrick HYMBERT">
-        Temporary compress directory during rollover (#88).
-      </action>
-      <action issue="LOG4J2-1950" dev="ggregory" type="update" due-to="Pierrick HYMBERT">
-        Fix docker build with jdk9 requirements (#84).
-      </action>
-      <action issue="LOG4J2-1801" dev="rpopma" type="update">
-        Add more detail to WARN "Ignoring log event" messages printed to the console after log4j was shut down.
-      </action>
-      <action issue="LOG4J2-1814" dev="rpopma" type="add">
-        Added wrapper classes CustomLoggerGenerator and ExtendedLoggerGenerator to avoid class name with a dollar ($) character which has special meaning in many *nix command line environments.
-      </action>
-      <action issue="LOG4J2-1884" dev="rpopma" type="add">
-        Added process ID (pid) pattern converter.
-      </action>
-      <action issue="LOG4J2-1926" dev="rpopma" type="update">
-        Facilitate log4j use in Android applications: remove dependency on RMI and Management APIs from log4j-api.
-      </action>
-      <action issue="LOG4J2-1699" dev="ggregory" type="add" due-to="Demetrios Dimatos, Pierrick HYMBERT">
-        Configurable Log File Permissions with PosixFilePermission.
-      </action>
-      <action issue="LOG4J2-1945" dev="ggregory" type="add">
-        Generate source jas for all test jars.
-      </action>
-      <action issue="LOG4J2-1934" dev="ggregory" type="add">
-        JMS Appender does not know how to recover from a broken connection.
-      </action>
-      <action issue="LOG4J2-1955" dev="ggregory" type="add">
-        JMS Appender should be able connect to a broker (later) even it is not present at configuration time.
-      </action>
-      <action issue="LOG4J2-1956" dev="ggregory" type="update">
-        JMS Appender broker password should be a char[], not a String.
-      </action>
-      <action issue="LOG4J2-1874" dev="rpopma" type="add" due-to="Roman Leventov">
-        Added methods ::writeBytes(ByteBuffer) and ::writeBytes(byte[], int, int) to ByteBufferDestination interface and use these methods in TextEncoderHelper where possible to prepare for future enhancements to reduce lock contention.
-      </action>
-      <action issue="LOG4J2-1912" dev="ggregory" type="fix" due-to="R Ri">
-        CompositeConfiguration logs warning "Unable to determine URI for configuration." However, the reconfiguration is completed.
-      </action>
-      <action issue="LOG4J2-1964" dev="ggregory" type="fix" due-to="Pierrick HYMBERT">
-        Dynamic reconfiguration does not work for filePattern of RollingFile.
-      </action>
-      <action issue="LOG4J2-1961" dev="ggregory" type="fix" due-to="Christian Vent">
-        Reconfigure breaks DirectWriteRolloverStrategy.
-      </action>
-      <action issue="LOG4J2-1943" dev="rgoers" type="fix">
-        The eventPrefix attribute was being ignored in the RFC5424Layout.
-      </action>
-      <action issue="LOG4J2-1953" dev="ggregory" type="fix">
-        JndiManager is not released when the JmsAppender builder catches an exception trying to build itself.
-      </action>
-      <action issue="LOG4J2-1911" dev="rgoers" type="fix">
-        Improve the documentation of the DynamicThresholdFilter.
-      </action>
-      <action issue="LOG4J2-1929" dev="ggregory" type="fix" due-to="Borys Sokolov">
-        EOFException with FormattedMessage.
-      </action>
-      <action issue="LOG4J2-1948" dev="ggregory" type="fix" due-to="Michael Lück">
-        Trim levels read from properties file to remove trailing spaces.
-      </action>
-      <action issue="LOG4J2-1971" dev="ggregory" type="fix" due-to="liwenxian2017">
-        ClassCastException: org.eclipse.osgi.internal.loader.SystemBundleLoader$1 cannot be cast to java.lang.ClassLoader.
-      </action>
-      <action issue="LOG4J2-1442" dev="mikes" type="add">
-        Generic HTTP appender.
-      </action>
-      <action issue="LOG4J2-1935" dev="ggregory" type="add">
-        Add with(String, primitive) methods to org.apache.logging.log4j.message.MapMessage.
-      </action>
-      <action issue="LOG4J2-1930" dev="ggregory" type="add">
-        Add forEach() methods to org.apache.logging.log4j.message.MapMessage.
-      </action>
-      <action issue="LOG4J2-1932" dev="ggregory" type="add">
-        Add containsKey() methods to org.apache.logging.log4j.message.MapMessage.
-      </action>
-      <action issue="LOG4J2-1917" dev="rgoers" type="update">
-        Support using java.util.ServiceLoader to locate Log4j 2 API providers.
-      </action>
-      <action issue="LOG4J2-1966" dev="ggregory" type="update" due-to="M Sazzadul Hoque">
-        Include separator option of PatternLayout in manual (and other updates).
-      </action>
-      <action issue="LOG4J2-1854" dev="mikes" type="add" due-to="Xavier Jodoin">
-        Support null byte delimiter in GelfLayout.
-      </action>
-      <action issue="LOG4J2-1359" dev="rgoers" type="add">
-        Add support for Java 9 StackWalker.
-      </action>
-      <action issue="LOG4J2-1880" dev="mikes" type="add">
-        Warn when a configuration file for an inactive ConfigurationFactory is found.
-      </action>
-      <action issue="LOG4J2-1855" dev="mattsicker" type="add" due-to="Anthony Maire">
-        Add an optional random delay in TimeBasedTriggeringPolicy
-      </action>
-      <action issue="LOG4J2-1876" dev="mikes" type="fix">
-        More reliable checking for runtime dependencies.
-      </action>
-      <action issue="LOG4J2-1867" dev="mikes" type="fix">
-        Fix configuration documentation.
-      </action>
-      <action issue="LOG4J2-1858" dev="rpopma" type="fix">
-        Ensure the ThreadLocal StringBuilder in ParameterizedMessage won't hold excessively much memory after logging a long message.
-      </action>
-      <action issue="LOG4J2-1885" dev="mattsicker" type="fix">
-        Fix documentation about default additivity value for loggers.
-      </action>
-      <action issue="LOG4J2-1920" dev="ggregory" type="fix" due-to="Ajitha">
-        ScriptEngineManager is not available in Android and causes a NoClassDefFoundError.
-      </action>
-      <action issue="LOG4J2-1989" dev="ggregory" type="fix" due-to="Kenneth McFarland">
-        Clarify Javadoc for AbstractTriggeringPolicy.
-      </action>
-      <action issue="LOG4J2-1993" dev="ggregory" type="fix" due-to="Kenneth McFarland">
-        Fix compiler warnings in LoggerConfigTest.
-      </action>
-      <action issue="LOG4J2-1851" dev="mikes" type="update">
-        Move server components from log4j-core to new log4-server module.
-      </action>
-      <action issue="LOG4J2-1860" dev="mikes" type="add">
-        Shortcut to add Property and KeyValuePair component in ConfigurationBuilder.
-      </action>
-      <action issue="LOG4J2-1294" dev="ggregory" type="add">
-        The JMS Appender should use a JMS MapMessage for a Log4j MapMessage.
-      </action>
-      <action issue="LOG4J2-1991" dev="ggregory" type="update" due-to="">
-        Refactor SimpleMessage to be concise and clear (#100)
-      </action>
-      <action issue="LOG4J2-2017" dev="ggregory" type="update">
-        Update Jackson from 2.8.9 to 2.9.0.
-      </action>
-      <action issue="LOG4J2-1868" dev="ggregory" type="update">
-        Update ZeroMQ's JeroMQ from 0.3.6 to 0.4.0.
-      </action>
-      <action issue="LOG4J2-1960" dev="ggregory" type="update">
-        Update ZeroMQ's JeroMQ from 0.4.0 to 0.4.1.
-      </action>
-      <action issue="LOG4J2-1974" dev="ggregory" type="update">
-        Update ZeroMQ's JeroMQ from 0.4.1 to 0.4.2.
-      </action>
-      <action issue="LOG4J2-1869" dev="ggregory" type="update">
-        Update Kafka client from 0.10.1.1 to 0.10.2.0
-      </action>
-      <action issue="LOG4J2-1962" dev="ggregory" type="update">
-        Update Kafka client from 0.10.2.0 to 0.11.0.0
-      </action>
-      <action issue="LOG4J2-1872" dev="ggregory" type="update">
-		Update JavaMail from 1.5.5 to 1.5.6.
-      </action>
-      <action issue="LOG4J2-1879" dev="ggregory" type="update">
-		Update JAnsi from 1.14 to 1.15.
-      </action>
-      <action issue="LOG4J2-1877" dev="ggregory" type="update" due-to="Chandra Tungathurthi">
-		Missing documentation for Max index limit in DefaultRolloverStrategy.
-      </action>
-      <action issue="LOG4J2-1899" dev="ggregory" type="update">
-        Add missing getters to classes in package org.apache.logging.log4j.core.net.ssl.
-      </action>
-      <action issue="LOG4J2-1900" dev="ggregory" type="update">
-        Update JAnsi from 1.15 to 1.16.
-      </action>
-      <action issue="LOG4J2-" dev="ggregory" type="update">
-        Update SLF4J from 1.7.24 to 1.7.25.
-      </action>
-      <action issue="LOG4J2-1938" dev="ggregory" type="update">
-        Update Jackson from 2.8.7 to 2.8.9.
-      </action>
-      <action issue="LOG4J2-1970" dev="rpopma" type="update">
-        Update HdrHistogram from 2.1.8 to 2.1.9.
-      </action>
-      <action issue="LOG4J2-1975" dev="ggregory" type="update">
-        Update javax.persistence from 2.1.0 to 2.1.1.
-      </action>
-      <action issue="LOG4J2-1976" dev="ggregory" type="update">
-        Update org.osgi.core from 4.3.1 to 6.0.0.
-      </action>
-    </release>
-    <release version="2.8.2" date="2017-04-02" description="GA Release 2.8.2">
-      <action issue="LOG4J2-1861" dev="mattsicker" type="fix">
-        Fix JavaDoc on org.apache.logging.log4j.ThreadContext about inheritance.
-      </action>
-      <action issue="LOG4J2-1862" dev="mattsicker" type="fix" due-to="wangyuntao">
-        Fix JavaDoc about @Order and OrderComparator ordering.
-      </action>
-      <action issue="LOG4J2-1849" dev="rpopma" type="fix">
-        Fixed daylight savings time (DST) issue with FixedDateFormat.
-      </action>
-      <action issue="LOG4J2-1850" dev="mattsicker" type="fix" due-to="Ludovic Hochet">
-        Fix CassandraRule and unit tests on Windows.
-      </action>
-      <action issue="LOG4J2-1840" dev="mattsicker" type="fix" due-to="Pradeep Balasundaram">
-        Fix typo in %replace converter documentation.
-      </action>
-      <action issue="LOG4J2-1846" dev="mikes" type="fix">
-        Handle when LogEvent.getLoggerName() returns null in LoggerNameLevelRewritePolicy.
-      </action>
-      <action issue="LOG4J2-1845" dev="mikes" type="fix">
-        Handle when LogEvent.getLoggerName() returns null in KafkaAppender.
-      </action>
-      <action issue="LOG4J2-1853" dev="ggregory" type="fix" due-to="wangyuntao">
-        The default value of RandomAccessFileAppender.Builder append field is wrong.
-      </action>
-      <action issue="LOG4J2-1863" dev="mattsicker" type="add">
-        Add support for filtering input in TcpSocketServer and UdpSocketServer.
-      </action>
-      <action issue="LOG4J2-1848" dev="mattsicker" type="add">
-        Add JSON encoding support to EncodingPatternConverter %encode{}.
-      </action>
-      <action issue="LOG4J2-1843" dev="mattsicker" type="add" due-to="Zilong Song">
-        Add support for appending common suffix to each line of throwable stack trace.
-      </action>
-      <action issue="LOG4J2-1838" dev="mattsicker" type="add" due-to="Zilong Song">
-        Add support for appending common suffix to each line of extended and root throwable stack trace.
-      </action>
-      <action issue="LOG4J2-1827" dev="rgoers" type="update">
-        Move integration tests to their own module to speed up build.
-      </action>
-      <action issue="LOG4J2-1835" dev="mattsicker" type="fix">
-        Fix documentation about the licensing for JeroMQ.
-      </action>
-      <action issue="LOG4J2-1836" dev="rgoers" type="fix">
-        Update the API version to 2.6.0.
-      </action>
-      <action issue="LOG4J2-1831" dev="ggregory" type="fix" due-to="Edward Serebrinskiy">
-        NullPointerException in HtmlLayout.
-      </action>
-      <action issue="LOG4J2-1820" dev="ggregory" type="fix" due-to="Jason Tedor">
-        Log4j 2.8 can lose exceptions when a security manager is present.
-      </action>
-      <action issue="LOG4J2-1856" dev="ggregory" type="update">
-        Update Jackson from 2.8.6 to 2.8.7.
-      </action>
-    </release>
-    <release version="2.8.1" date="2017-02-26" description="GA Release 2.8.1">
-      <action issue="LOG4J2-1804" dev="rgoers" type="fix" due-to="Pierrick Hymbert">
-        Allow %i in file pattern to be preceded with characters other than just '-'.
-      </action>
-      <action issue="LOG4J2-1822" dev="rgoers" type="update">
-        Update SLF4J to 1.7.24.
-      </action>
-      <action issue="LOG4J2-1812" dev="rpopma" type="update">
-        Improved error message when log4j 2 configuration file not found.
-      </action>
-      <action issue="LOG4J2-1810" dev="rgoers" type="update">
-        Update to use Logback 1.1.10 and then Logback 1.2 for tests.
-      </action>
-      <action issue="LOG4J2-1819" dev="ggregory" type="update">
-        Update Jackson from 2.8.5 to 2.8.6.
-      </action>
-      <action issue="LOG4J2-1753" dev="ggregory" type="fix" due-to="Ludovic Hochet">
-        Fix ClassNotFoundException org.apache.logging.log4j.core.util.ExecutorServices in OSGi tests.
-      </action>
-      <action issue="LOG4J2-1816" dev="rpopma" type="fix" due-to="shubhankar1100">
-        Change minOccur to minOccurs in Log4j-config.xsd.
-      </action>
-      <action issue="LOG4J2-1803" dev="rgoers" type="fix">
-        Fix Maven POM to ensure JMH generated classes in log4j-perf are included in benchmarks jar.
-      </action>
-      <action issue="LOG4J2-1800" dev="mikes" type="fix" due-to="Vincent Tieleman">
-        Report errors when sending to Kafka when using syncSend=false.
-      </action>
-      <action issue="LOG4J2-1805" dev="rpopma" type="fix">
-        Fixed rare race condition in FixedDateFormat, made FixedDateFormat::millisSinceMidnight method public.
-      </action>
-      <action issue="LOG4J2-1799" dev="rpopma" type="fix" due-to="Eduard Gizatullin">
-        Fixed bug in PropertiesUtil::getCharsetProperty that caused UnsupportedCharsetException for ConsoleAppender.
-      </action>
-      <action issue="LOG4J2-1806" dev="rpopma" type="fix" due-to="challarao">
-        Fix Javadoc for DefaultRolloverStrategy::purgeAscending
-      </action>
-      <action issue="LOG4J2-1818" dev="ggregory" type="fix" due-to="xkr47">
-        Fix rollover to work when filePattern contains no directory components.
-      </action>
-      <action issue="LOG4J2-1823" dev="mattsicker" type="add">
-        Remove deprecation on MessageSupplier lambda functions in Logger API.
-      </action>
-      <action issue="LOG4J2-1807" dev="ggregory" type="add">
-        [core] Add and implement LogEvent.toImmutable().
-      </action>
-    </release>
-    <release version="2.8" date="2017-01-21" description="GA Release 2.8">
-      <action issue="LOG4J2-1780" dev="mikes" type="fix">
-        Eliminate the use of the ExecutorServices in the LoggerContext.
-      </action>
-      <action issue="LOG4J2-1032" dev="rgoers" type="add">
-        Make DefaultRolloverStrategy more efficient when renaming files. Add nomax option to the fileIndex attribute.
-      </action>
-      <action issue="LOG4J2-1101" dev="rgoers" type="add">
-        RollingFileAppender now supports omitting the file name and writing directly to the archive files.
-      </action>
-      <action issue="LOG4J2-1786" dev="rpopma" type="fix">
-        ConfigurationScheduler now preserves interrupt flag during stop.
-      </action>
-      <action issue="LOG4J2-1243" dev="rgoers" type="add">
-        Allow default value in property to be a Lookup.
-      </action>
-      <action issue="LOG4J2-1779" dev="rpopma" type="fix">
-        Fixed bug where AsyncLogger did not resolve configuration properties.
-      </action>
-      <action issue="LOG4J2-1769" dev="rpopma" type="fix" due-to="Brandon Goodin">
-        Fixed concurrency issue affecting all layouts except PatternLayout and GelfLayout, which caused scrambled output and exceptions when logging synchronously from multiple threads.
-      </action>
-      <action issue="LOG4J2-1724" dev="mikes" type="fix" due-to="Alexander Krasnostavsky">
-        Using variables in GelfLayout's additional fields at runtime.
-      </action>
-      <action issue="LOG4J2-1762" dev="mikes" type="fix">
-        Add Builder to GelfLayout.
-      </action>
-      <action issue="LOG4J2-1649" dev="rgoers" type="fix" due-to="Georg Friedrich">
-        Insure the ConfigurationScheduler shuts down without blocking.
-      </action>
-      <action issue="LOG4J2-1653" dev="rgoers" type="fix" due-to=" Georg Friedrich">
-        CronTriggeringPolicy would use the wrong date/time when rolling over and create multiple triggering policies on reconfiguration.
-      </action>
-      <action issue="LOG4J2-1748" dev="mikes" type="fix">
-        Do not use non-daemon thread pool for rollover tasks.
-      </action>
-      <action issue="LOG4J2-1628" dev="rpopma" type="fix">
-        Fixed file locking regression in FileAppender introduced in 2.6.
-      </action>
-      <action issue="LOG4J2-1744" dev="rpopma" type="fix">
-        The custom logger Generate tool no longer requires the log4j-api module on the classpath.
-      </action>
-      <action issue="LOG4J2-1731" dev="rpopma" type="fix" due-to="Chris Ribble">
-        SslSocketManager now respects connectTimeoutMillis.
-      </action>
-      <action issue="LOG4J2-1682" dev="ggregory" type="fix" due-to="Markus Waidhofer">
-        Logger using LocalizedMessageFactory prints key instead of message.
-      </action>
-      <action issue="LOG4J2-1720" dev="mikes" type="fix">
-        Make GelfLayout independent of Jackson.
-      </action>
-      <action issue="LOG4J2-1719" dev="rpopma" type="fix">
-        Fixed race condition in ObjectMessage and SimpleMessage, ensuring that the log message contains the value the object has during the logging call.
-      </action>
-      <action issue="LOG4J2-1688" dev="rpopma" type="fix">
-        Fixed bug where elements of a log message parameter array were nulled out in garbage-free mode.
-      </action>
-      <action issue="LOG4J2-1692" dev="mikes" type="fix" due-to="Greg Thomas">
-        Add putAll() method to CloseableThreadContext.
-      </action>
-      <action issue="LOG4J2-1689" dev="mikes" type="fix">
-        Add CleanableThreadContextMap interface supporting method removeAll(Iterable&lt;String&gt;).
-      </action>
-      <action issue="LOG4J2-1685" dev="mikes" type="fix" due-to="Raman Gupta">
-        Option 'disableAnsi' in PatternLayout to unconditionally disable ANSI escape codes.
-      </action>
-      <action issue="LOG4J2-1706" dev="rpopma" type="fix">
-        Make TimeFilter usable as global filter and as logger filter.
-      </action>
-      <action issue="LOG4J2-1722" dev="rpopma" type="fix">
-        (GC) Avoid allocating temporary objects in VariablesNotEmptyReplacementConverter.
-      </action>
-      <action issue="LOG4J2-1717" dev="rpopma" type="fix">
-        (GC) Avoid allocating temporary objects in EncodingPatternConverter.
-      </action>
-      <action issue="LOG4J2-1716" dev="rpopma" type="fix">
-        (GC) Avoid allocating temporary objects in MapPatternConverter. (Note that constructing a MapMessage is not garbage-free.)
-      </action>
-      <action issue="LOG4J2-1683" dev="rpopma" type="fix">
-        (GC) Avoid allocating temporary objects in MapMessage.
-      </action>
-      <action issue="LOG4J2-1715" dev="rpopma" type="fix">
-        (GC) Avoid allocating temporary objects in NdcPatternConverter. (Note that use of the ThreadContext stack is not garbage-free.)
-      </action>
-      <action issue="LOG4J2-1714" dev="rpopma" type="fix">
-        (GC) Avoid allocating temporary objects in AbstractStyleNameConverter.
-      </action>
-      <action issue="LOG4J2-1680" dev="rpopma" type="fix">
-        (GC) Avoid allocating temporary objects in TimeFilter.
-      </action>
-      <action issue="LOG4J2-1679" dev="rpopma" type="fix">
-        (GC) Avoid allocating temporary objects in StructuredDataFilter.
-      </action>
-      <action issue="LOG4J2-1678" dev="rpopma" type="fix">
-        (GC) Avoid allocating temporary objects in ThreadContextMapFilter.
-      </action>
-      <action issue="LOG4J2-1677" dev="rpopma" type="fix">
-        (GC) Avoid allocating temporary objects in MapFilter.
-      </action>
-      <action issue="LOG4J2-1674" dev="rpopma" type="fix">
-        (GC) Avoid allocating temporary objects in ThresholdFilter.
-      </action>
-      <action issue="LOG4J2-1673" dev="rpopma" type="fix">
-        (GC) Avoid allocating temporary objects in MarkerFilter.
-      </action>
-      <action issue="LOG4J2-1672" dev="rpopma" type="fix">
-        (GC) Avoid allocating temporary objects in LevelRangeFilter.
-      </action>
-      <action issue="LOG4J2-1671" dev="rpopma" type="fix">
-        (GC) Avoid allocating temporary objects in EqualsIgnoreCaseReplacementConverter.
-      </action>
-      <action issue="LOG4J2-1670" dev="rpopma" type="fix">
-        (GC) Avoid allocating temporary objects in EqualsReplacementConverter.
-      </action>
-      <action issue="LOG4J2-1669" dev="rpopma" type="fix">
-        (GC) Avoid allocating temporary objects in MaxLengthConverter.
-      </action>
-      <action issue="LOG4J2-1668" dev="rpopma" type="fix">
-        (GC) Avoid allocating temporary objects in MarkerPatternConverter.
-      </action>
-      <action issue="LOG4J2-1667" dev="rpopma" type="fix">
-        (GC) Avoid allocating temporary objects in SequenceNumberPatternConverter.
-      </action>
-      <action issue="LOG4J2-1666" dev="rpopma" type="fix">
-        (GC) Avoid allocating temporary objects in RelativeTimePatternConverter.
-      </action>
-      <action issue="LOG4J2-1665" dev="rpopma" type="fix">
-        (GC) Avoid allocating temporary objects in IntegerPatternConverter.
-      </action>
-      <action issue="LOG4J2-1637" dev="rpopma" type="fix">
-        Fixed problems when used in OSGi containers (IllegalAccessError, NoClassDefFoundError).
-      </action>
-      <action issue="LOG4J2-1226" dev="rpopma" type="fix">
-        Improve LogEvent serialization to handle non-serializable Messages and deserializing when required classes are missing.
-      </action>
-      <action issue="LOG4J2-1663" dev="rpopma" type="fix">
-        Ensure SortedArrayStringMap can be serialized and deserialized without errors regardless of content.
-      </action>
-      <action issue="LOG4J2-1658" dev="rpopma" type="fix">
-        Prevent NPE in ThreadContextMapFactory::createThreadContextMap when initializing Log4j with Configurator::initialize and the BasicContextSelector is used.
-      </action>
-      <action issue="LOG4J2-1645" dev="mikes" type="fix">
-        Immutable empty StringMap.
-      </action>
-      <action issue="LOG4J2-1623" dev="mikes" type="fix">
-        Configurable JVM shutdown hook timeout.
-      </action>
-      <action issue="LOG4J2-1712" dev="ggregory" type="fix">
-        Pick up bug fixes from Apache Commons Lang's org.apache.commons.lang3.time package.
-      </action>
-      <action issue="LOG4J2-1636" dev="ggregory" type="fix" due-to="Eldar Gabdullin">
-        Console Appender does not pick up Oracle Java 8's sun.stdout.encoding and sun.stderr.encoding.
-      </action>
-      <action issue="LOG4J2-1639" dev="ggregory" type="fix" due-to="Sridhar Gopinath">
-        Fix MemoryMappedFileAppender.createAppender() Javadoc for immediateFlush.
-      </action>
-      <action issue="LOG4J2-1676" dev="ggregory" type="fix" due-to="Joern Huxhorn">
-        Some LogEvents may not carry a Throwable (Use Message.getThrowable() in log(Message) methods.)
-      </action>
-      <action issue="LOG4J2-1723" dev="ggregory" type="fix" due-to="Ludovic HOCHET">
-        Unwanted transitive dependency on geronimo-jms_1.1_spec causes OSGi tests to fail.
-      </action>
-      <action issue="LOG4J2-1664" dev="ggregory" type="fix" due-to="Ludovic HOCHET">
-        Improve OSGi unit tests.
-      </action>
-      <action issue="LOG4J2-1687" dev="ggregory" type="fix" due-to="Robert Christiansen">
-        NPE in ThrowableProxy when resolving stack in Java EE/OSGi environment.
-      </action>
-      <action issue="LOG4J2-1642" dev="ggregory" type="fix" due-to="Johno Crawford">
-        DefaultShutdownCallbackRegistry can throw a NoClassDefFoundError.
-      </action>
-      <action issue="LOG4J2-1474" dev="ggregory" type="fix" due-to="yin mingjun, Neon">
-        CronTriggeringPolicy raise exception and fail to rollover log file when evaluateOnStartup is true.
-      </action>
-      <action issue="LOG4J2-1734" dev="ggregory" type="fix">
-        SslSocketManagerFactory might leak Sockets when certain startup errors occur.
-      </action>
-      <action issue="LOG4J2-1736" dev="ggregory" type="fix">
-        TcpSocketManagerFactory might leak Sockets when certain startup errors occur.
-      </action>
-      <action issue="LOG4J2-1740" dev="ggregory" type="fix">
-        Add CronTriggeringPolicy programmatically leads to NPE.
-      </action>
-      <action issue="LOG4J2-1743" dev="ggregory" type="fix" due-to="Toby Shepheard">
-        CompositeConfiguration does not add filters to appenderRefs.
-      </action>
-      <action issue="LOG4J2-1756" dev="ggregory" type="fix"  due-to="shubhankar1100">
-        Adds xmlns in schema and some other tags.
-      </action>
-      <action issue="LOG4J2-1781" dev="mattsicker" type="update">
-        Update Conversant Disruptor from 1.2.7 to 1.2.10
-      </action>
-      <action issue="LOG4J2-1774" dev="mattsicker" type="update">
-        Replace MockEJB dependency in unit tests with Spring Test and Mockito.
-      </action>
-      <action issue="LOG4J2-1644" dev="ggregory" type="update" due-to="Tim Gokcen, Pavel Sivolobtchik">
-        Inefficient locking in AbstractLoggerAdapter.
-      </action>
-      <action issue="LOG4J2-1641" dev="ggregory" type="update">
-        Update JeroMQ from 0.3.5 to 0.3.6.
-      </action>
-      <action issue="LOG4J2-1647" dev="mattsicker" type="update">
-        Update Commons Lang from 3.4 to 3.5.
-      </action>
-      <action issue="LOG4J2-1646" dev="mattsicker" type="update">
-        Migrate to Mockito 2.x in unit tests.
-      </action>
-      <action issue="LOG4J2-1655" dev="ggregory" type="update">
-        Update Jackson from 2.8.3 to 2.8.4.
-      </action>
-      <action issue="LOG4J2-1735" dev="ggregory" type="update">
-        Update Jackson from 2.8.4 to 2.8.5.
-      </action>
-      <action issue="LOG4J2-1656" dev="ggregory" type="update">
-        Update Apache Flume from 1.6.0 to 1.7.0.
-      </action>
-      <action issue="LOG4J2-1698" dev="ggregory" type="update">
-        Update LMAX Disruptor from 3.3.5 to 3.3.6.
-      </action>
-      <action issue="LOG4J2-1700" dev="ggregory" type="update">
-        Update Jansi from 1.13 to 1.14.
-      </action>
-      <action issue="LOG4J2-1750" dev="ggregory" type="update">
-        Update Kafka from 0.10.0.1 to 0.10.1.1.
-      </action>
-      <action issue="LOG4J2-1751" dev="ggregory" type="update">
-        Update liquibase-core from 3.5.1 to 3.5.3.
-      </action>
-      <action issue="LOG4J2-1302" dev="rpopma" type="update">
-        The log4j-slf4j-impl module now declares a runtime dependency on log4j-core. While not technically required, this makes the log4j-slf4j-impl module behave similarly to slf4j-log4j12, and facilitates migration to Log4j 2.
-      </action>
-      <action issue="LOG4J2-1787" dev="mattsicker" type="add">
-        Document how to exclude transitive conflicting dependencies in Maven and Gradle.
-      </action>
-      <action issue="LOG4J2-1773" dev="mattsicker" type="add">
-        Add StatusLoggerRule to allow unit tests to set a status level.
-      </action>
-      <action issue="LOG4J2-424" dev="mattsicker" type="add">
-        Add non-string data type support to JdbcAppender via new ColumnMapping plugin.
-      </action>
-      <action issue="LOG4J2-1771" dev="mattsicker" type="add">
-        Add a Builder to ColumnConfig and deprecate ColumnConfig.createColumnConfig().
-      </action>
-      <action issue="LOG4J2-1770" dev="mattsicker" type="add">
-        Add a Builder to JdbcAppender and deprecate JdbcAppender.createAppender().
-      </action>
-      <action issue="LOG4J2-1764" dev="mattsicker" type="add">
-        Use MethodHandle in ContextDataFactory cached constructor.
-      </action>
-      <action issue="LOG4J2-1730" dev="mattsicker" type="add">
-        Add Apache Cassandra appender and ColumnMapping plugin.
-      </action>
-      <action issue="LOG4J2-1759" dev="mattsicker" type="add">
-        Add TypeConverter for java.util.UUID.
-      </action>
-      <action issue="LOG4J2-1758" dev="mattsicker" type="add">
-        Add TypeConverter for java.nio.file.Path.
-      </action>
-      <action issue="LOG4J2-1755" dev="mattsicker" type="add">
-        Add TypeConverter and constraint validators for java.net.InetAddress and port numbers.
-      </action>
-      <action issue="LOG4J2-969" dev="ggregory" type="add">
-        Refactor SyslogAppender so that Layout is a Plugin element.
-      </action>
-      <action issue="LOG4J2-1660" dev="rpopma" type="add">
-        Added public method ThreadContext::getThreadContextMap; removed class ThreadContextAccess.
-      </action>
-      <action issue="LOG4J2-1379" dev="mattsicker" type="add">
-        Add documentation regarding YAML configuration format.
-      </action>
-      <action issue="LOG4J2-1718" dev="rpopma" type="add">
-        Introduce marker interface AsynchronouslyFormattable.
-      </action>
-      <action issue="LOG4J2-1681" dev="rpopma" type="add">
-        Introduce interfaces IndexedStringMap and IndexedReadOnlyStringMap, supporting garbage-free iteration over sorted map.
-      </action>
-      <action issue="LOG4J2-1695" dev="ggregory" type="add">
-        Add a Builder to ScriptPatternSelector and deprecate ScriptPatternSelector.createSelector().
-      </action>
-      <action issue="LOG4J2-1696" dev="ggregory" type="add">
-        Add a Builder to MarkerPatternSelector and deprecate MarkerPatternSelector.createSelector().
-      </action>
-      <action issue="LOG4J2-1697" dev="ggregory" type="add">
-        Add a SerializerBuilder to PatternLayout and deprecate PatternLayout.createSerializer().
-      </action>
-      <action issue="LOG4J2-1701" dev="ggregory" type="add">
-        Add a Builder to RandomAccessFileAppender and deprecate RandomAccessFileAppender.createAppender().
-      </action>
-      <action issue="LOG4J2-1703" dev="ggregory" type="add">
-        Add a Builder to MemoryMappedFileAppender and deprecate MemoryMappedFileAppender.createAppender().
-      </action>
-      <action issue="LOG4J2-1704" dev="ggregory" type="add">
-        Add a Builder to RollingRandomAccessFileAppender and deprecate RollingRandomAccessFileAppender.createAppender().
-      </action>
-      <action issue="LOG4J2-1709" dev="ggregory" type="add">
-        Add a Builder to SyslogAppender and deprecate SyslogAppender.createAppender().
-      </action>
-      <action issue="LOG4J2-1707" dev="ggregory" type="add">
-        Allow TCP Socket Appender to set socket options.
-      </action>
-      <action issue="LOG4J2-1708" dev="ggregory" type="add">
-        Allow Secure Socket Appender to set socket options.
-      </action>
-      <action issue="LOG4J2-1737" dev="ggregory" type="add">
-        Add a Builder to SyslogLayout and deprecate SyslogLayout.createLayout(Facility, boolean, String, Charset).
-      </action>
-      <action issue="LOG4J2-1738" dev="ggregory" type="add">
-        Add a Builder to JsonLayout and deprecate org.apache.logging.log4j.core.layout.JsonLayout.createLayout(Configuration, boolean, boolean, boolean, boolean, boolean, boolean, String, String, Charset, boolean).
-      </action>
-      <action issue="LOG4J2-1739" dev="ggregory" type="add">
-        Add Builder to KafkaAppender and deprecate KafkaAppender.createAppender(Layout, Filter, String, boolean, String, Property[], Configuration).
-      </action>
-      <action issue="LOG4J2-1733" dev="ggregory" type="add" due-to="Vincent Tieleman">
-        Add SyncSend attribute to KafkaAppender (as in KafkaLog4jAppender).
-      </action>
-      <action issue="LOG4J2-2195" dev="ggregory" type="fix" due-to="Raman Gupta, Gary Gregory">
-        Cannot define both `filters` and `separator` for PatternLayout %xEx.
-      </action>
-      <action issue="LOG4J2-2221" dev="ggregory" type="fix" due-to="Raman Gupta, Gary Gregory">
-        RootThrowablePatternConverter does not use TextRenderer or line separator options.
-      </action>
-    </release>
-    <release version="2.7" date="2016-10-02" description="GA Release 2.7">
-      <action issue="LOG4J2-1618" dev="rpopma" type="fix" due-to="Raman Gupta">
-        Fixed ClassCastException when using JUL logging during shutdown.
-      </action>
-      <action issue="LOG4J2-1620" dev="ggregory" type="fix" due-to="Sascha Scholz">
-        2.7-rc1: RollingFileAppender immediateFlush default value should be true, not false.
-      </action>
-      <action issue="LOG4J2-1611" dev="rpopma" type="fix">
-        Improved performance of context data injector for web applications to be on par with standalone applications.
-      </action>
-      <action issue="LOG4J2-1591" dev="rpopma" type="fix">
-        Introduced new interface LifeCycle2 with stop(long,TimeUnit) method to avoid breaking backwards compatibility with new Configurator.shutdown(LoggerContext, long, TimeUnit) API.
-      </action>
-      <action issue="LOG4J2-1590" dev="rpopma" type="fix">
-        Fixed issue with filters extending AbstractFilter that did not override methods with unrolled varargs.
-      </action>
-      <action issue="LOG4J2-1583" dev="rpopma" type="fix" due-to="Larry West">
-        Fixed scrambled log messages triggered by nested logging from toString() method of a logging parameter object.
-      </action>
-      <action issue="LOG4J2-1259" dev="ggregory" type="fix" due-to="Misagh Moayyed, Steffen Offermann">
-        Log4j threads are no longer leaking on Tomcat shutdown.
-      </action>
-      <action issue="LOG4J2-1051" dev="rpopma" type="fix" due-to="Lukasz Lenart">
-        When starting on Google App Engine, Interpolator now suppresses the NoClassDefFoundError stack trace  for the jvmrunargs lookup.
-      </action>
-      <action issue="LOG4J2-1582" dev="rpopma" type="fix">
-        When initializing on platforms where JMX is not available, Interpolator component no longer prints stack trace for warning messages.
-      </action>
-      <action issue="LOG4J2-1581" dev="rpopma" type="fix">
-        Unregistering JMX components no longer prints a stack trace when the MBean has already been unregistered.
-      </action>
-      <action issue="LOG4J2-1313" dev="rpopma" type="fix" due-to="Philipp Knobel, Leon Finker">
-        Support Property values to be specified in configuration as a value attribute as well as an element.
-      </action>
-      <action issue="LOG4J2-1575" dev="rpopma" type="fix">
-        (GC) LoggerConfig now stores configuration properties in a List, not a Map to prevent creating temporary Iterator objects. Added method LoggerConfig#getPropertyList(), deprecated method #getProperties().
-      </action>
-      <action issue="LOG4J2-1457" dev="mattsicker" type="fix" due-to="Leon Finker">
-        Fixed class loader deadlock when using async logging and extended stack trace pattern.
-      </action>
-      <action issue="LOG4J2-1563" dev="ggregory" type="fix" due-to="Jason Tedor">
-        Fix to prevent Log4j 2.6.2 and higher from losing exceptions when a security manager is present.
-      </action>
-      <action issue="LOG4J2-1530" dev="mikes" type="fix">
-        Fixed issue where LogEvent.getContextStack() returned null.
-      </action>
-      <action issue="LOG4J2-1518" dev="rpopma" type="fix" due-to="Leon Finker">
-        Prevent deadlock in Async Loggers when queue is full and logged Object's toString() logs another message.
-      </action>
-      <action issue="LOG4J2-1542" dev="rpopma" type="fix" due-to="Rogério Lecarião Leite">
-        Prevent ArrayIndexOutOfBoundsException in ParameterizedMessage.formatTo for single-char or empty messages.
-      </action>
-      <action issue="LOG4J2-1549" dev="mikes" type="fix" due-to="Jason Bedard">
-        Fixed issue where AsyncLoggerContextSelector+PropertiesConfigurationBuilder defaulted to includeLocation=true.
-      </action>
-      <action issue="LOG4J2-1562" dev="ggregory" type="fix">
-        Prevent SocketAppender memory usage from growing unbounded if it cannot connect to a server.
-      </action>
-      <action issue="LOG4J2-1559" dev="ggregory" type="fix" due-to="Andrey Plotkin">
-        Prevent NPE in Level.isInRange.
-      </action>
-      <action issue="LOG4J2-1511" dev="ggregory" type="fix" due-to="Srikanth Surukuntu">
-        DynamicThresholdFilter filtered incorrectly when params were passed as individual arguments instead of varargs.
-      </action>
-      <action issue="LOG4J2-1548" dev="ggregory" type="fix">
-        [CronTriggeringPolicy] ConfigurationScheduler scheduled the task infinitely after first fire.
-      </action>
-      <action issue="LOG4J2-1506" dev="ggregory" type="fix" due-to="Johannes Schleger">
-        Log4j should not unregister JMX MBeans when log4j2.disable.jmx property is true.
-      </action>
-      <action issue="LOG4J2-1490" dev="ggregory" type="fix" due-to="Krzysztof Taborski">
-        Log4j2 should postpone creating log file until the appender actually receives an event.
-      </action>
-      <action issue="LOG4J2-1320" dev="ggregory" type="fix" due-to="Paresh Varke, Pierrick Hymbert">
-        Support loading custom plugins from jar files and directories whose classpath entries use the "vfs" URL protocol.
-      </action>
-      <action issue="LOG4J2-1541" dev="ggregory" type="fix">
-        Fix file handle resource leak in XmlConfiguration.XmlConfiguration(ConfigurationSource).
-      </action>
-      <action issue="LOG4J2-1538" dev="ggregory" type="fix" due-to="Igor Karpov">
-        Prevent NPE when dynamically removing filters.
-      </action>
-      <action issue="LOG4J2-1532" dev="ggregory" type="fix">
-        Attributes were not merged properly in composite configurations.
-      </action>
-      <action issue="LOG4J2-1529" dev="mattsicker" type="fix" due-to="Sridevi Narra">
-        Attributes were not merged properly in composite configurations.
-      </action>
-      <action issue="LOG4J2-1527" dev="rpopma" type="fix" due-to="Jose Leon">
-        Prevent NPE in RingBufferLogEvent.getFormattedMessage() when used in web applications.
-      </action>
-      <action issue="LOG4J2-905" dev="ggregory" type="fix" due-to="Moritz Löser">
-        Added ability to disable (date) lookup completely for compatibility with other libraries like Camel.
-      </action>
-      <action issue="LOG4J2-1526" dev="mikes" type="fix">
-        Added support for setting StatusLogger destination in ConfigurationBuilder.
-      </action>
-      <action issue="LOG4J2-1448" dev="rpopma" type="fix" due-to="Keith Laban">
-        Allow comma separated agents, host list to be passed to FlumeAppender.
-      </action>
-      <action issue="LOG4J2-1500" dev="ggregory" type="fix" due-to="Jose Leon">
-        Merging configurations failed with an NPE when comparing Nodes with different attributes.
-      </action>
-      <action issue="LOG4J2-1482" dev="ggregory" type="fix" due-to="Sumit Singhal">
-        Fixed improper header in CsvParameterLayout.
-      </action>
-      <action issue="LOG4J2-1199" dev="rpopma" type="fix">
-        Documented that JVM Input Arguments Lookup (JMX) is not available on Google App Engine.
-      </action>
-      <action issue="LOG4J2-1438" dev="rpopma" type="fix">
-        (GC) Added method getParameter() to ObjectMessage (and ReusableObjectMessage).
-      </action>
-      <action issue="LOG4J2-1488" dev="rpopma" type="fix" due-to="Richard Zschech">
-        (GC) Fixed ISO8601 %date conversion pattern with a period '.' separator for milliseconds is now garbage free.
-      </action>
-      <action issue="LOG4J2-1489" dev="rpopma" type="fix" due-to="Richard Zschech">
-        (GC) Fixed %date conversion patterns with a timezone parameter are now garbage free.
-      </action>
-      <action issue="LOG4J2-1279" dev="rpopma" type="fix" due-to="Tony Baines">
-        Prevent NullPointerException in FastDateParser$TimeZoneStrategy.
-      </action>
-      <action issue="LOG4J2-1341" dev="rpopma" type="fix" due-to="Richard Zschech">
-        (GC) HighlightConverter and StyleConverter are now GC-free.
-      </action>
-      <action issue="LOG4J2-1467" dev="rpopma, ggregory" type="fix" due-to="Ralf, Gary Gregory">
-        [OSGi] Fixed missing import package.
-      </action>
-      <action issue="LOG4J2-351" dev="rpopma, ggregory" type="fix" due-to="Roland Weiglhofer">
-        [OSGi] Fixed wrong Fragment-Host in manifest files.
-      </action>
-      <action issue="LOG4J2-1313" dev="rpopma" type="fix" due-to="Philipp Knobel">
-        Properties declared in configuration can now have their value either in the element body or in an attribute named "value".
-      </action>
-      <action issue="LOG4J2-1235" dev="ggregory" type="fix" due-to="Niranjan Rao, Sascha Scholz, Aleksey Zvolinsky">
-        org.apache.logging.log4j.core.appender.routing.IdlePurgePolicy was not working correctly.
-      </action>
-      <action issue="LOG4J2-1502" dev="ggregory" type="fix" due-to="Sumit Singhal">
-        Fixed issue where CsvParameterLayout and CsvLogEventLayout inserted NUL characters if data starts with {, (, [ or "
-      </action>
-      <action issue="LOG4J2-1573" dev="ggregory" type="fix" due-to="Steffen Offermann">
-        Layout is no longer optional.
-      </action>
-      <action issue="LOG4J2-1608" dev="ggregory" type="fix">
-        ServletAppender does not provide throwable object to ServletContext.
-      </action>
-      <action issue="LOG4J2-1599" dev="ggregory" type="fix">
-        Prevent potential NPE in org.apache.logging.log4j.message.ParameterFormatter.formatMessage3(StringBuilder, char[], int, Object[], int, int[]).
-      </action>
-      <action issue="LOG4J2-1600" dev="ggregory" type="fix">
-        Prevent potential NPE due to org.apache.logging.log4j.core.layout.MarkerPatternSelector.createSelector(PatternMatch[], String, boolean, boolean, Configuration).
-      </action>
-      <action issue="LOG4J2-1601" dev="ggregory" type="fix">
-        Prevent potential NPE due to org.apache.logging.log4j.core.layout.ScriptPatternSelector.createSelector(AbstractScript, PatternMatch[], String, boolean, boolean, Configuration).
-      </action>
-      <action issue="LOG4J2-1602" dev="ggregory" type="fix">
-        Prevent potential NPE in org.apache.logging.log4j.core.util.datetime.FormatCache.MultipartKey.equals(Object) when object is null.
-      </action>
-      <action issue="LOG4J2-1603" dev="ggregory" type="fix">
-        Redo hashCode() and equals() methods in org.apache.logging.log4j.core.net.ssl classes.
-      </action>
-      <action issue="LOG4J2-1610" dev="ggregory" type="fix" due-to="Shubhankar">
-        Add targetNamespace to log4j-config.xsd. GitHub #43.
-      </action>
-      <action issue="LOG4J2-1619" dev="ggregory" type="fix">
-        new Log4jLogEvent().toString() throws an NPE.
-      </action>
-      <action issue="LOG4J2-1578" dev="ggregory" type="add">
-        RoutingAppender can be configured with scripts. Add Script in a Routes element.
-      </action>
-      <action issue="LOG4J2-1597" dev="ggregory" type="add">
-        Add a ScriptAppenderSelector to create an Appender specified by a Script.
-      </action>
-      <action issue="LOG4J2-1349" dev="rpopma" type="add">
-        (GC) Added support for garbage-free ThreadContext map. Disabled by default, users need to enable this explicitly.
-      </action>
-      <action issue="LOG4J2-1447" dev="rpopma" type="add">
-        (GC) Changed LogEvent's internal data structure for context data to be garbage-free. Added method LogEvent#getContextData(), deprecated method #getContextMap().
-      </action>
-      <action issue="LOG4J2-1010" dev="rpopma" type="add" due-to="Mikael Ståldal">
-        Users can now inject context data from other sources than ThreadContext. Values can be any Object, not just Strings.
-      </action>
-      <action issue="LOG4J2-1568" dev="mattsicker" type="add">
-        Added support for java.util.concurrent.LinkedTransferQueue to AsyncAppender.
-      </action>
-      <action issue="LOG4J2-1430" dev="mattsicker" type="add" due-to="John Cairns">
-        Added optional support for Conversant DisruptorBlockingQueue in AsyncAppender.
-      </action>
-      <action issue="LOG4J2-1439" dev="mattsicker" type="add" due-to="Anthony Maire">
-        Added optional support for JCTools MPSC bounded lock-free queue in AsyncAppender.
-      </action>
-      <action issue="LOG4J2-1558" dev="ggregory" type="add">
-        SocketAppender now supports IO buffering.
-      </action>
-      <action issue="LOG4J2-1557" dev="ggregory" type="add">
-        Add a Builder for the SocketAppender (deprecates factory method).
-      </action>
-      <action issue="LOG4J2-1609" dev="ggregory" type="add">
-        Add a Builder to ServletAppender and deprecate factory method.
-      </action>
-      <action issue="LOG4J2-1553" dev="ggregory" type="add">
-        AbstractManager now implements AutoCloseable.
-      </action>
-      <action issue="LOG4J2-1528" dev="mikes" type="add">
-        Added ability to generate Log4j 2-style XML configuration file from ConfigurationBuilder.
-      </action>
-      <action issue="LOG4J2-1181" dev="mikes" type="add">
-        Added Logging API for Scala 2.10 and 2.11.
-      </action>
-      <action issue="LOG4J2-1512" dev="mikes" type="add">
-        Added options to exclude stack trace from JSON, XML and YAML layouts.
-      </action>
-      <action issue="LOG4J2-1539" dev="ggregory" type="add">
-        Added Core API Configurator.shutdown(LoggerContext, long, TimeUnit).
-      </action>
-      <action issue="LOG4J2-1501" dev="ggregory" type="add">
-        FileAppender is now able to create files on-demand.
-      </action>
-      <action issue="LOG4J2-1504" dev="ggregory" type="add">
-        RollingFileAppender is now able to create files on-demand.
-      </action>
-      <action issue="LOG4J2-1471" dev="ggregory" type="add">
-        [PatternLayout] Add an ANSI option to %xThrowable.
-      </action>
-      <action issue="LOG4J2-1472" dev="ggregory" type="add">
-        org.apache.logging.log4j.core.LoggerContext now implements Closeable.
-      </action>
-      <action issue="LOG4J2-1458" dev="ggregory" type="add">
-        [PatternLayout] Add an ANSI option to %message.
-      </action>
-      <action issue="LOG4J2-1505" dev="ggregory" type="add">
-        Create a Builder for the FileAppender plugin to facilitate adding attributes in the future.
-      </action>
-      <action issue="LOG4J2-1507" dev="ggregory" type="add">
-        Allow Builders to be completely generic.
-      </action>
-      <action issue="LOG4J2-1508" dev="ggregory" type="add">
-        Allow a Builder to subclass another Builder.
-      </action>
-      <action issue="LOG4J2-1516" dev="rpopma" type="add" due-to="Gary Gregory">
-        Add ThreadContextMap2 interface supporting method putAll(Map&lt;String, String&gt;).
-      </action>
-      <action issue="LOG4J2-1519" dev="ggregory" type="add">
-        Add ThreadContext.putAll(Map&lt;String, String&gt;).
-      </action>
-      <action issue="LOG4J2-1520" dev="ggregory" type="add">
-        Add JUnit Rule implementations to manage the thread context.
-      </action>
-      <action issue="LOG4J2-1547" dev="ggregory" type="add">
-        The Core AbstractConfiguration now tracks its LoggerContext and add Configuration.getLoggerContext().
-      </action>
-      <action issue="LOG4J2-1540" dev="ggregory" type="add">
-        The Core AbstractManager now tracks its LoggerContext.
-      </action>
-      <action issue="LOG4J2-1577" dev="ggregory" type="add">
-        Add a Builder to the RoutingAppender and deprecate factory method.
-      </action>
-      <action issue="LOG4J2-1604" dev="ggregory" type="update" due-to="Colin Hillman">
-        Log4j2 TcpSocketServer in background.
-      </action>
-      <action issue="LOG4J2-1574" dev="ggregory" type="update">
-        Allow the RollingFileAppender to use default pattern layout.
-      </action>
-      <action issue="LOG4J2-1556" dev="ggregory" type="update">
-        Custom Log4j threads now extend Log4jThread.
-      </action>
-      <action issue="LOG4J2-1605" dev="ggregory" type="update">
-        Improve error messages for TcpSocketServer and UdpSocketServer.
-      </action>
-      <action issue="LOG4J2-1458" dev="ggregory" type="update">
-        Updated Jackson from 2.7.5 to 2.8.0.
-      </action>
-      <action issue="LOG4J2-1494" dev="ggregory" type="update">
-        Updated Jackson from 2.8.0 to 2.8.1.
-      </action>
-      <action issue="LOG4J2-1569" dev="ggregory" type="update">
-        Updated Jackson from 2.8.1 to 2.8.2.
-      </action>
-      <action issue="LOG4J2-1598" dev="ggregory" type="update">
-        Updated Jackson from 2.8.2 to 2.8.3.
-      </action>
-      <action issue="LOG4J2-1495" dev="ggregory" type="update">
-        Updated LMAX Disruptor from 3.3.4 to 3.3.5.
-      </action>
-      <action issue="LOG4J2-1496" dev="ggregory" type="update">
-        Updated Kafka client from 0.9.1.0 to 0.10.0.0.
-      </action>
-      <action issue="LOG4J2-1533" dev="ggregory" type="update">
-        Updated Kafka client from 0.10.0.0 to 0.10.0.1.
-      </action>
-      <action issue="LOG4J2-1487" dev="ggregory" type="update">
-        Updated JMS test from ActiveMQ 5.13.3 to 5.13.4.
-      </action>
-      <action issue="LOG4J2-1551" dev="ggregory" type="update">
-        Updated JMS test from ActiveMQ 5.13.4 to 5.14.0.
-      </action>
-      <action issue="LOG4J2-1757" dev="ggregory" type="update">
-        Update Apache Commons Compress from 1.12 to 1.13.
-      </action>
-      <action issue="LOG4J2-1543" dev="ggregory" type="update">
-        Removed deprecated Core API org.apache.logging.log4j.core.util.Constants.UTF_8.
-      </action>
-      <action issue="LOG4J2-1544" dev="ggregory" type="update">
-        Removed deprecated Core API org.apache.logging.log4j.core.util.Assert.requireNonNull(T, String).
-      </action>
-      <action issue="LOG4J2-1545" dev="ggregory" type="update">
-        Removed deprecated Web API org.apache.logging.log4j.web.WebLookup.getServletContext().
-      </action>
-    </release>
-    <release version="2.6.2" date="2016-07-05" description="GA Release 2.6.2">
-      <action issue="LOG4J2-904" dev="rgoers" type="fix" due-to="Bernhard Mähr">
-        If copy and delete fails in rename action then resort to truncating the source file after copying it.
-      </action>
-      <action issue="LOG4J2-1250" dev="rgoers" type="fix">
-        CronTriggeringPolicy was not properly setting the prevFileTime value for the PatternProcessor so
-        file dates and times on rolled files were incorrect.
-      </action>
-      <action issue="LOG4J2-1452" dev="rpopma" type="fix" due-to="Mikael Ståldal">
-        Fixed issue where reusable messages broke flow tracing logic.
-      </action>
-      <action issue="LOG4J2-1440" dev="rgoers" type="fix">
-        Fix bug in OnStartupTriggeringPolicy that allowed it to roll over on every reconfiguration. Added
-        minSize attribute.
-      </action>
-      <action issue="LOG4J2-1414" dev="rpopma" type="fix" due-to="Ralph Goers">
-        Fixed minor issues with the 2.6.1 web site.
-      </action>
-      <action issue="LOG4J2-1434" dev="rpopma" type="fix" due-to="Luke Butters">
-        Ensure that the thread-local StringBuilders used by Layouts to format log events to text will not
-        retain excessive memory after a large message was logged.
-      </action>
-      <action issue="LOG4J2-1395" dev="mikes" type="add">
-        Add "direct" option to ConsoleAppender for increased performance.
-      </action>
-      <action issue="LOG4J2-1418" dev="mikes" type="fix">
-        Provide MessageFactory2 to custom Logger implementations.
-      </action>
-      <action issue="LOG4J2-1420" dev="rgoers" type="fix">
-        RollingRandomAccessFileManager was not properly rolling over on startup and was getting a NullPointerException.
-      </action>
-      <action issue="LOG4J2-1417" dev="rpopma" type="fix">
-        Fixed issue where Unbox utility ignored the value Constants.ENABLE_THREADLOCALS and always stored non-JDK classes in ThreadLocals.
-      </action>
-      <action issue="LOG4J2-1422" dev="rpopma" type="fix">
-        Fixed issue where AsyncAppenderQueueFullPolicyTest sometimes hangs.
-      </action>
-      <action issue="LOG4J2-1445" dev="ggregory" type="fix" due-to="Ludovic HOCHET">
-        OnStartupTriggeringPolicyTest fails on Windows saying the file is used by another process.
-      </action>
-      <action issue="LOG4J2-1437" dev="rpopma" type="add">
-        (GC) ObjectMessage and ReusableObjectMessage now avoid calling toString() on auto-boxed primitive parameters.
-      </action>
-      <action issue="LOG4J2-1415" dev="rpopma" type="add">
-        (GC) ParameterFormatter now avoids calling toString() on auto-boxed primitive message parameters.
-      </action>
-      <action issue="LOG4J2-1412" dev="rpopma" type="add">
-        Unbox utility's ringbuffer of StringBuilders is now configurable.
-      </action>
-      <action issue="LOG4J2-1432" dev="ggregory" type="update">
-        Update Jackson from 2.7.4 to 2.7.5.
-      </action>
-      <action issue="LOG4J2-1433" dev="ggregory" type="update">
-        Update Jansi from 1.11 to 1.13.
-      </action>
-      <action issue="LOG4J2-1444" dev="ggregory" type="update">
-        Update Apache Commons Compress from 1.11 to 1.12.
-      </action>
-    </release>
-    <release version="2.6.1" date="2016-06-05" description="GA Release 2.6.1">
-      <action issue="LOG4J2-1405" dev="rgoers" type="fix">
-        OnStartupTriggeringPolicy was forcing a rollover of empty files at startup and would append a second footer that was added by the prior shutdown.
-      </action>
-      <action issue="LOG4J2-1406" dev="rpopma" type="fix" due-to="Trask Stalnaker">
-        Fixed bug in ReusableParameterizedMessage where Throwable was never updated so first error was logged over and over again and subsequent errors were not logged.
-      </action>
-      <action issue="LOG4J2-1409" dev="rpopma" type="fix" due-to="Shahan">
-        Fixed ArrayIndexOutOfBoundsException that may occur in ReusableParameterizedMessage.
-      </action>
-      <action issue="LOG4J2-997" dev="rgoers" type="fix" due-to="Maytee Chinavanichkit">
-        Add filter and remove filter were not working properly in AbstractFilterable.
-      </action>
-      <action issue="LOG4J2-1032" dev="rgoers" type="fix">
-        Changed RenameAction to use java.nio to better report rename failures.
-      </action>
-      <action issue="LOG4J2-1407" dev="ggregory" type="fix">
-        Fixed misleading WARN log events from Log4j about message factories and unexpected formatting.
-      </action>
-      <action issue="LOG4J2-1408" dev="ggregory" type="fix">
-        Added the module log4j-liquibase to BOM POM.
-      </action>
-      <action issue="LOG4J2-1180" dev="ggregory" type="fix">
-        Logger cache now accounts for message factory.
-      </action>
-      <action issue="LOG4J2-1402" dev="rgoers" type="fix">
-        Fix regression in properties configuration to support arbitrary component ids.
-      </action>
-      <action issue="LOG4J2-1385" dev="ggregory" type="update">
-        (GC) CSV layouts should not create a new CSVPrinter for each log event. Requires Apache Commons CSV 1.4.
-      </action>
-      <action issue="LOG4J2-1398" dev="ggregory" type="update">
-        Update liquibase-core from 3.4.2 to 3.5.1.
-      </action>
-      <action issue="LOG4J2-1399" dev="ggregory" type="update">
-        Update Apache Commons CSV from 1.3 to 1.4.
-      </action>
-      <action issue="LOG4J2-1411" dev="mattsicker" type="add">
-        Added documentation about plugin builders compared to factories.
-      </action>
-      <action issue="LOG4J2-1394" dev="mattsicker,mikes" type="fix">
-        Fixed minor issues with the 2.6 web site.
-      </action>
-    </release>
-    <release version="2.6" date="2016-05-25" description="GA Release 2.6">
-      <action issue="LOG4J2-1270" dev="rpopma" type="add">
-        (GC) Added support for garbage-free logging in steady state.
-        This includes Async Loggers and logging synchronously to the console and to a file,
-        but does not include the AsyncAppender. This release makes the GelfLayout and
-        the main patterns in the PatternLayout garbage-free.
-      </action>
-      <action issue="LOG4J2-1297" dev="rpopma" type="add">
-        (GC) Added manual page on garbage-free logging.
-      </action>
-      <action issue="LOG4J2-1373" dev="rpopma" type="add">
-        (GC) Update Logger wrapper Generator tool to generate methods for the new Logger methods.
-      </action>
-      <action issue="LOG4J2-1356" dev="mikes" type="update">
-        (GC) GelfLayout does now support garbage-free logging (with compressionType=OFF).
-      </action>
-      <action issue="LOG4J2-1326" dev="rpopma" type="add">
-        (GC) Added methods to the Logger interface for logging CharSequence messages.
-      </action>
-      <action issue="LOG4J2-1344" dev="rpopma" type="add">
-        (GC) FileAppender, RollingFileAppender and MemoryMappedFileAppender are now also garbage-free by default.
-      </action>
-      <action issue="LOG4J2-1343" dev="rpopma" type="update">
-        (GC) ConsoleAppender is now garbage-free by default. This logic is reusable for all AbstractOutputStreamAppender subclasses.
-      </action>
-      <action issue="LOG4J2-1278" dev="rpopma" type="add">
-        (GC) Added unrolled varargs methods to Logger API, added Unbox utility to avoid auto-boxing when logging primitive values.
-      </action>
-      <action issue="LOG4J2-1318" dev="rpopma" type="update">
-        (GC) Avoid allocating unnecessary temporary objects in LoggerContext's getLogger methods.
-      </action>
-      <action issue="LOG4J2-1333" dev="rpopma" type="update">
-        (GC) Avoid allocating unnecessary temporary objects in MarkerManager's getMarker methods.
-      </action>
-      <action issue="LOG4J2-1321" dev="rpopma" type="update">
-        (GC) Avoid allocating unnecessary temporary objects in PatternLayout's NamePatternConverter and ClassNamePatternConverter.
-      </action>
-      <action issue="LOG4J2-1271" dev="rpopma" type="add">
-        (GC) Add MessageFactory that avoid allocation by reusing a cached ParameterizedMessage instance.
-      </action>
-      <action issue="LOG4J2-1271" dev="rpopma" type="update">
-        (GC) ParameterizedMessage optimizations to avoid or at least postpone allocating temporary objects.
-      </action>
-      <action issue="LOG4J2-1283" dev="rpopma" type="update">
-        (GC) Provide ThreadLocal-based gc-free caching mechanism in DatePatternConverter for non-webapps.
-      </action>
-      <action issue="LOG4J2-1293" dev="rpopma" type="add">
-        (GC) Add interface StringBuilderFormattable to enable converting Messages and parameters to text without allocating temporary objects.
-        ParameterizedMessage, ObjectMessage, SimpleMessage and ThreadDumpMessage now implement StringBuilderFormattable.
-      </action>
-      <action issue="LOG4J2-1291" dev="rpopma" type="update">
-        (GC) Update PatternLayout to utilize gc-free mechanism for LogEvent processing.
-      </action>
-      <action issue="LOG4J2-1292" dev="rpopma" type="update">
-        (GC) Update RandomAccessFileAppender and RollingRandomAccessFileAppender to utilize gc-free Layout.encode() method.
-      </action>
-      <action issue="LOG4J2-1274" dev="rpopma" type="add">
-        (GC) Add encode(LogEvent, ByteBufferDestination) method to Layout API to enable converting LogEvents to bytes without creating temporary objects.
-      </action>
-      <action issue="LOG4J2-1281" dev="rpopma" type="fix">
-        (GC) LoggerConfig.getProperties() should not allocate on each call.
-      </action>
-      <action issue="LOG4J2-1272" dev="rpopma" type="update">
-        (GC) Improve LoggerConfig's data structure for AppenderControl objects to avoid allocating temporary objects during
-        traversal for each log event.
-      </action>
-      <action issue="LOG4J2-1269" dev="rpopma" type="fix">
-        (GC) AsyncLogger should use thread-local translator by default.
-      </action>
-      <action issue="LOG4J2-623" dev="rpopma" type="fix">
-        Generate MDC properties as a JSON map in JSONLayout, with option to output as list of map entries.
-      </action>
-      <action issue="LOG4J2-1362" dev="rpopma" type="add" due-to="Gary Gregory">
-        Added a YAML layout.
-      </action>
-      <action issue="LOG4J2-1387" dev="rpopma" type="fix">
-        Fixed memory leak related to shutdown hook.
-      </action>
-      <action issue="LOG4J2-1179" dev="rpopma" type="add">
-        Documented benchmark results comparing Log4j 2 performance to other logging libraries.
-      </action>
-      <action issue="LOG4J2-1382" dev="rpopma" type="fix">
-        Copying a MutableLogEvent using Log4jLogEvent.Builder should not unnecessarily obtain caller location information.
-      </action>
-      <action issue="LOG4J2-1011" dev="mikes" type="add">
-        Document dependencies for layouts.
-      </action>
-      <action issue="LOG4J2-621" dev="ggregory" type="add" due-to="Lee Theobald, Kamal Mettananda, Gary Gregory">
-        Pattern to drop first N package parts.
-      </action>
-      <action issue="LOG4J2-494" dev="rgoers" type="add" due-to="Philipp Knobel">
-        Support merging configurations to for a composite configuration.
-      </action>
-      <action issue="LOG4J2-1357" dev="mikes" type="add">
-        Option to not log stack traces for logged Throwables in GelfLayout.
-      </action>
-      <action issue="LOG4J2-1375" dev="rpopma" type="update">
-        Update SLF4J from 1.7.13 to 1.7.21.
-      </action>
-      <action issue="LOG4J2-1374" dev="rpopma" type="update">
-        Migrate tests from Logback 1.1.3 to 1.1.7.
-      </action>
-      <action issue="LOG4J2-1384" dev="ggregory" type="update">
-        Update Apache Commons CSV from 1.2 to 1.3.
-      </action>
-      <action issue="LOG4J2-1372" dev="rgoers" type="fix" due-to="Kamal Mettananda, Gary Gregory">
-        XMLLayout indents, but not the first child tag (Event).
-      </action>
-      <action issue="LOG4J2-1363" dev="rgoers" type="fix">
-        Properties Configuration did not support includeLocation attribute on Loggers.
-      </action>
-      <action issue="LOG4J2-1263" dev="rgoers" type="fix">
-        The ConfigurationSource was not saved for BuiltConfigurations so monitor interval had no effect.
-      </action>
-      <action issue="LOG4J2-1369" dev="ggregory" type="fix" due-to="Alex Birch, Gary Gregory">
-        "xz" compression results in plaintext, uncompressed files.
-      </action>
-      <action issue="LOG4J2-1365" dev="mikes" type="update">
-        (Log4j-internal) Provide message text as CharSequence for some message types to optimize some layouts.
-      </action>
-      <action issue="LOG4J2-1368" dev="rpopma" type="fix">
-        (Log4j-internal) StatusLogger dropped exceptions when logging parameterized messages.
-      </action>
-      <action issue="LOG4J2-1348" dev="ggregory" type="add" due-to="Greg Thomas, Gary Gregory">
-        Add an AutoCloseable ThreadContext class: CloseableThreadContext.
-      </action>
-      <action issue="LOG4J2-1345" dev="rpopma" type="update">
-        (Doc) Clarify documentation for properties that control Log4j behaviour.
-      </action>
-      <action issue="LOG4J2-1336" dev="ggregory" type="fix" due-to="Zbynek Vyskovsky">
-        LoggerFactory in 1.2 API module is not compatible with 1.2.
-      </action>
-      <action issue="LOG4J2-1354" dev="ggregory" type="fix" due-to="Arkadiusz Adolph">
-        No configuration reload is triggered under Windows when replacing the configuration file with one that has older last modified date.
-      </action>
-      <action issue="LOG4J2-1346" type="fix">
-        Exception from Log4jServletContextListener prevents jetty-maven-plugin run-forked.
-      </action>
-      <action issue="LOG4J2-1339" dev="rpopma" type="fix">
-        (Perf) AsyncLogger performance optimization: avoid calling instanceof TimestampMessage in hot path.
-      </action>
-      <action issue="LOG4J2-1324" dev="rpopma" type="fix">
-        Improve error handling in the Async Logger background thread: the new default exception handler no longer rethrows the error.
-      </action>
-      <action issue="LOG4J2-1309" dev="ggregory" type="fix">
-        Configuration file error does not show cause exception.
-      </action>
-      <action issue="LOG4J2-1299" dev="ggregory" type="add">
-        Add pattern converter for thread id and priority in PatternLayout.
-      </action>
-      <action issue="LOG4J2-1289" dev="ggregory" type="fix">
-        Change flow logging text from "entry' to "Enter" and "exit" to "Exit".
-      </action>
-      <action issue="LOG4J2-1284" dev="rpopma" type="fix">
-        Made default MessageFactory configurable.
-      </action>
-      <action issue="LOG4J2-1280" dev="ggregory" type="fix">
-        Deprecate org.apache.logging.log4j.util.MessageSupplier.
-      </action>
-      <action issue="LOG4J2-1280" dev="rpopma" type="fix">
-        Logger methods taking Supplier parameters now correctly handle cases where the supplied value is a Message.
-      </action>
-      <action issue="LOG4J2-1268" dev="rpopma" type="fix">
-        FixedDateFormat was incorrect for formats having MMM with the French locale.
-      </action>
-      <action issue="LOG4J2-1255" dev="rgoers" type="update">
-        Add enhanced entry and exit methods.
-      </action>
-      <action issue="LOG4J2-124" dev="rgoers" type="add">
-        Add shutdown methods to LogManager.
-      </action>
-      <action issue="LOG4J2-1222" dev="rgoers" type="fix">
-        Creation of a LoggerContext will fail if shutdown is in progress. LogManager will default to SimpleLogger instead.
-      </action>
-      <action issue="LOG4J2-1221" dev="rpopma" type="add" due-to="Michael Barker">
-        Added async logger Timeout wait strategy and made this the default wait strategy for async loggers.
-        This prevents a rare deadlock that may occur on Solaris.
-      </action>
-      <action issue="LOG4J2-1080" dev="rpopma" type="add">
-        Added option to discard events below a certain log level if the async logger ring buffer
-        or async appender queue is full.
-      </action>
-      <action issue="LOG4J2-1237" dev="ggregory" type="add" due-to="Mike Calmus, Gary Gregory">
-        Make PatternLayout header and footer accept a pattern.
-      </action>
-      <action issue="LOG4J2-1244" dev="ggregory" type="add" due-to="Anshu Garg, Remko Popma, Gary Gregory">
-        Make header and footer values customizable in JSONLayout.
-      </action>
-      <action issue="LOG4J2-1245" dev="ggregory" type="add">
-        Make CSV Layout header and footers accept patterns.
-      </action>
-      <action issue="LOG4J2-1192" dev="ggregory" type="add" due-to="Jörg Bretschneider, Gary Gregory">
-        Dynamic Subject for SMTP Appender.
-      </action>
-      <action issue="LOG4J2-1277" dev="ggregory" type="add" due-to="Gary Gregory, Ludovic Hochet">
-        FormattedMessage, MessageFormatMessage and StringFormattedMessage should support passing in a Locale to ensure appropriate formatting.
-      </action>
-      <action issue="LOG4J2-1260" dev="ggregory" type="fix" due-to="Blake Day, Gary Gregory">
-        TlsSyslogFrame calculates message length incorrectly.
-      </action>
-      <action issue="LOG4J2-1258" dev="ggregory" type="fix" due-to="Francis Lalonde">
-        Async DynamicThresholdFilter does not use the log event's context map.
-      </action>
-      <action issue="LOG4J2-1232" dev="ggregory" type="fix" due-to="Nikolai">
-        Incorrect log rotation in last week of year.
-      </action>
-      <action issue="LOG4J2-1248" dev="rpopma" type="fix">
-        Fixed broken nanotime in pattern layout.
-      </action>
-      <action issue="LOG4J2-908" dev="ggregory" type="fix" due-to="Konstantinos Liakos, Patrick Flaherty, Robin Coe, Gary Gregory">
-        JSONLayout doesn't add a comma between log events.
-      </action>
-      <action issue="LOG4J2-1230" dev="ggregory" type="fix" due-to="Vladimir Hudec, Ralph Goers, Gary Gregory">
-        Don't concatenate SYSLOG Messages.
-      </action>
-      <action issue="LOG4J2-1238" dev="ggregory" type="fix">
-        org.apache.logging.log4j.core.net.TcpSocketManager and other classes does not report internal exceptions to the status logger.
-      </action>
-      <action issue="LOG4J2-1212" dev="rpopma" type="fix">
-        Fix documentation to specify the correct default wait strategy used by async loggers.
-      </action>
-      <action issue="LOG4J2-1215" dev="ggregory" type="fix" due-to="Erik Kemperman">
-        Documentation/XSD inconsistencies.
-      </action>
-      <action issue="LOG4J2-1276" dev="ggregory" type="fix" due-to="Ludovic Hochet">
-        LoggerMessageSupplierTest and LoggerSupplierTest are Locale sensitive.
-      </action>
-      <action issue="LOG4J2-1380" dev="ggregory" type="update">
-        Update Jackson from 2.7.3 to 2.7.4.
-      </action>
-      <action issue="LOG4J2-1304" dev="ggregory" type="update">
-        Update Jackson from 2.7.0 to 2.7.2.
-      </action>
-      <action issue="LOG4J2-1253" dev="ggregory" type="update">
-        Update LMAX Disruptor from 3.3.2 to 3.3.4.
-      </action>
-      <action issue="LOG4J2-1219" dev="ggregory" type="update">
-        Update SLF4J from 1.7.12 to 1.7.13.
-      </action>
-      <action issue="LOG4J2-1239" dev="ggregory" type="update">
-        Update Jackson from 2.6.3 to 2.6.4.
-      </action>
-      <action issue="LOG4J2-1249" dev="ggregory" type="update">
-        Update Jackson from 2.6.4 to 2.7.0.
-      </action>
-      <action issue="LOG4J2-1351" dev="ggregory" type="update">
-        Update Jackson from 2.7.2 to 2.7.3.
-      </action>
-      <action issue="LOG4J2-1240" dev="ggregory" type="update">
-        Update Liquibase from 3.3.5 to 3.4.2.
-      </action>
-      <action issue="LOG4J2-1294" dev="ggregory" type="update">
-        Update Kafka client from 0.9.0.0 to 0.9.0.1.
-      </action>
-      <action issue="LOG4J2-1352" dev="ggregory" type="update">
-        Update javax.mail from 1.5.4 to 1.5.5.
-      </action>
-      <action issue="LOG4J2-1358" dev="ggregory" type="update">
-        Update Apache Commons Compress from 1.10 to 1.11.
-      </action>
-      <action issue="LOG4J2-1388" dev="rpopma" type="update">
-        Update Google java-allocation-instrumenter from 3.0 to 3.0.1.
-      </action>
-      <action issue="LOG4J2-1233" dev="ggregory" type="update" due-to="Bahri Gencsoy">
-        Misleading Value In Properties Example.
-      </action>
-      <action issue="LOG4J2-1251" dev="mattsicker" type="fix" due-to="Romain Manni-Bucau">
-        Fix JUL bridge issue where LogRecord.getParameters() is used when null.
-      </action>
-      <action issue="LOG4J2-1254" dev="rpopma" type="fix" due-to="Josh Trow">
-        Fix typo in Flow Tracing documentation.
-      </action>
-      <action issue="LOG4J2-920" dev="mattsicker" type="fix" due-to="Ludovic Hochet">
-        ClassNotFoundException for BundleContextSelector when initialising in an OSGi environment.
-      </action>
-      <action issue="LOG4J2-1300" dev="mattsicker" type="update">
-        Remove serializability from classes that don't need it.
-      </action>
-      <action issue="LOG4J2-1303" dev="mattsicker" type="add">
-        Add documentation links to runtime dependencies in each component intro page.
-      </action>
-      <action issue="LOG4J2-1275" dev="mattsicker" type="fix" due-to="Ludovic Hochet">
-        Fix RollingAppenderNoUnconditionalDeleteTest repeat test runs from failing.
-      </action>
-      <action issue="LOG4J2-1262" dev="mattsicker" type="fix">
-        Stop throwing unnecessary exception in Log4jServletContextListener.contextDestroyed().
-      </action>
-      <action issue="LOG4J2-1252" dev="mattsicker" type="add">
-        JeroMqAppender should support layouts.
-      </action>
-      <action issue="LOG4J2-1227" dev="mattsicker" type="fix" due-to="Olivier Lemasle">
-        NullPointerException in MapLookup.lookup if the event is null.
-      </action>
-      <action issue="LOG4J2-1306" dev="mattsicker" type="update">
-        JeroMqAppender should use ShutdownCallbackRegistry instead of runtime hooks.
-      </action>
-      <action issue="LOG4J2-1217" dev="mattsicker" type="add" due-to="Thies Wellpott">
-        PatternLayout option to limit length of text.
-      </action>
-      <action issue="LOG4J2-1308" dev="mattsicker" type="update">
-        Remove need to pre-specify appender et al. identifiers in property file config format.
-      </action>
-      <action issue="LOG4J2-1050" dev="mattsicker" type="fix" due-to="Adam Retter">
-        Add a Log4jLookup class to help write log files relative to log4j2.xml.
-      </action>
-      <action issue="LOG4J2-1133" dev="mattsicker" type="add">
-        Add JNDI lookup documentation.
-      </action>
-      <action issue="LOG4J2-1310" dev="mattsicker" type="fix">
-        JndiLookup mindlessly casts to String and should use String.valueOf().
-      </action>
-      <action issue="LOG4J2-1206" dev="mattsicker" type="update">
-        org.apache.logging.log4j.core.LoggerContext#updateLoggers should call firePropertyChangeEvent.
-      </action>
-      <action issue="LOG4J2-248" dev="mattsicker" type="fix">
-        Log4jWebInitializerImpl: Use Thread instead of Class for fallback classloader.
-      </action>
-      <action issue="LOG4J2-1169" dev="mattsicker" type="add" due-to="Gerald Kritzinger">
-        PatternLayout: Possible variable substitution in equals substitution parameter.
-      </action>
-      <action issue="LOG4J2-1322" dev="mattsicker" type="update">
-        Update Log4j 1.x migration guide to include information about system property lookup syntax changes.
-      </action>
-      <action issue="LOG4J2-1330" dev="mattsicker" type="fix">
-        Fix NoClassDefFoundError in ReflectionUtil on Google App Engine.
-      </action>
-    </release>
-    <release version="2.5" date="2015-12-06" description="GA Release 2.5">
-      <action issue="LOG4J2-324" dev="rpopma" type="fix">
-        Reduced memory usage of status messages in bounded queue; support zero-length queue that stores no messages.
-      </action>
-      <action issue="LOG4J2-1173" dev="rpopma" type="fix">
-        Fixed rollover error when copying to a directory mapped to a remote Linux host.
-      </action>
-      <action issue="LOG4J2-435" dev="rpopma" type="add" due-to="Robert Schaft">
-        Added support for custom delete actions triggered by a rollover.
-      </action>
-      <action issue="LOG4J2-649" dev="rgoers" type="update" due-to="Aleksey Zvolinsky">
-        Add PurgePolicy and IdlePurgePolicy to RoutingAppender.
-      </action>
-      <action issue="LOG4J2-1202" dev="rgoers" type="update">
-        Remove ConfigurationMonitor. The WatchManager is now used to check for configuration changes.
-      </action>
-      <action issue="LOG4J2-1195" dev="mikes" type="fix" due-to="Melvin Du">
-        Make KafkaAppender support SerializedLayout.
-      </action>
-      <action issue="LOG4J2-89" dev="rgoers" type="add">
-        Allow rollover to occur at any time. Add CronTriggeringPolicy.
-      </action>
-      <action issue="LOG4J2-381" dev="rgoers" type="fix" due-to="Anthony Baldocchi">
-        Allow triggering policy and rollover strategy to be modified during reconfiguration.
-      </action>
-      <action issue="LOG4J2-1136" dev="rgoers" type="add">
-        Add support for JSR 223 scripts in filters and the PatternSelector.
-      </action>
-      <action issue="LOG4J2-1168" dev="ggregory" type="add" due-to="Steven Swor">
-        Add getters for source and destination file in file rename action.
-      </action>
-      <action issue="LOG4J2-1175" dev="ggregory" type="add">
-        Add getters for classes in org.apache.logging.log4j.core.appender.rolling.action.
-      </action>
-      <action issue="LOG4J2-898" dev="rpopma" type="add">
-        Added system property to allow users to control whether messages should be formatted in the background.
-      </action>
-      <action issue="LOG4J2-1178" dev="ggregory" type="add">
-        Support use-case for JDBC's CommonDataSource.setLogWriter(PrintWriter) and java.sql.DriverManager.setLogWriter(PrintWriter).
-      </action>
-      <action issue="LOG4J2-1187" dev="ggregory" type="add">
-        Support use case for java.sql.DriverManager.setLogStream(PrintStream).
-      </action>
-      <action issue="LOG4J2-1029" dev="rpopma" type="fix" due-to="Stefan Leonhartsberger">
-        Performance improvement when gathering location information.
-      </action>
-      <action issue="LOG4J2-1172" dev="rpopma" type="fix">
-        Fixed ThreadLocal leak [AsyncLogger$Info] on Tomcat when using AsyncLoggerContextSelector.
-      </action>
-      <action issue="LOG4J2-1176" dev="rpopma" type="fix">
-        Fixed memory leak when log4j jars are in Tomcat's lib folder.
-      </action>
-      <action issue="LOG4J2-1180" dev="ggregory" type="fix" due-to="Mikael Ståldal">
-        Logger cache does not account for message factory.
-      </action>
-      <action issue="LOG4J2-879" dev="rpopma" type="fix">
-        Documentation: fixed minor issues with the site and manual pages.
-      </action>
-      <action issue="LOG4J2-999" dev="rpopma" type="fix" due-to="Joan Balagueró">
-        RollingFileAppender should also roll over when log event time is equal to rollover time, not only when later.
-      </action>
-      <action issue="LOG4J2-873" dev="rpopma" type="fix" due-to="Martin Dickins, LC, Luke Woodward">
-        Fixed bug where omitting the &lt;display-name&gt; element in web.xml caused incorrect log4j initialization,
-        resulting in memory leaks when the web application was stopped or reloaded.
-      </action>
-      <action issue="LOG4J2-323" dev="rpopma" type="fix">
-        Better web app support for async loggers: Fixed a memory leak that occurred when the logging jars are placed
-        in the container's classpath and the configuration file uses AsyncRoot/AsyncLogger.
-        The problem was that the first web application started the Disruptor background thread [AsyncLoggerConfig-1] but did not stop it until all web apps are stopped.
-        Each web application now has its own Disruptor which is stopped/started together with the web app.
-      </action>
-      <action issue="LOG4J2-493" dev="rpopma" type="fix">
-        Better web app support for async loggers: it is now possible to place the logging jars in the container's
-        classpath when making all loggers asynchronous by using AsyncLoggerContextSelector. This fixes a problem where
-        logging would stop working after stopping and restarting a web application.
-      </action>
-      <action issue="LOG4J2-1171" dev="rpopma" type="fix">
-        Use servlet context name for logger context name when available.
-      </action>
-      <action issue="LOG4J2-1159" dev="rpopma" type="fix">
-        Fixed a ThreadLocal memory leak in Tomcat8 that mentions AsyncLoggers when Async Loggers are not used.
-      </action>
-      <action issue="LOG4J2-1166" dev="rpopma" type="fix">
-        AbstractConfiguration executor should use a DaemonThreadFactory.
-      </action>
-      <action issue="LOG4J2-1165" dev="rpopma" type="fix">
-        Improve Log4j initialization status messages.
-      </action>
-      <action issue="LOG4J2-1156" dev="rpopma" type="fix">
-        Web site corrections and updates.
-      </action>
-      <action issue="LOG4J2-1158" dev="ggregory" type="fix" due-to="Michael Fortin, Gary Gregory">
-        Log4J JUL adapter is using MessageFormat on String passed by java.util.function.Supplier&lt;String>.
-      </action>
-      <action issue="LOG4J2-801" dev="mattsicker" type="fix">
-        org.apache.logging.log4j.core.Logger should be serializable.
-      </action>
-      <action issue="LOG4J2-1157" dev="mattsicker" type="fix" due-to="Norbert Bartels">
-        Fix compilation error for classes annotated with @Plugin.
-      </action>
-      <action issue="LOG4J2-948" dev="mattsicker" type="fix" due-to="Andrew Flower">
-        Fix plugin documentation error about Converters.
-      </action>
-      <action issue="LOG4J2-1193" dev="ggregory" type="fix">
-        Prefix all thread names Log4j creates with "Log4j2-".
-      </action>
-      <action issue="LOG4J2-1194" dev="ggregory" type="fix" due-to="Adam Brin">
-        Documentation does not match parameters for LoggerNameLevelRewritePolicy.
-      </action>
-      <action issue="LOG4J2-1196" dev="mattsicker" type="fix" due-to="René Zanner">
-        MongoDbConnection does not close MongoClient.
-      </action>
-      <action issue="LOG4J2-1174" dev="ggregory" type="update">
-        Update Jackson from 2.6.2 to 2.6.3.
-      </action>
-      <action issue="LOG4J2-1207" dev="ggregory" type="update">
-        Update kafka-clients from 0.8.2.2 to 0.9.0.0.
-      </action>
-    </release>
-    <release version="2.4.1" date="2015-10-08" description="GA Release 2.4.1">
-      <action issue="LOG4J2-1129" dev="rgoers" type="add">
-        Allow PatternLayout to select a pattern to use based on some selection criteria.
-      </action>
-      <action issue="LOG4J2-1145" dev="ggregory" type="add">
-        Add %equals to PatternLayout to test and replace patterns with strings.
-      </action>
-      <action issue="LOG4J2-1147" dev="ggregory" type="add">
-        Add %equalsIgnoreCase to PatternLayout to test and replace patterns with strings.
-      </action>
-      <action issue="LOG4J2-1146" dev="ggregory" type="add">
-        Add %notEmpty to PatternLayout to avoid output of patterns where all variables are empty.
-      </action>
-      <action issue="LOG4J2-1020" dev="mikes" type="add">
-        Add possibility to set shutdown timeout on AsyncAppender.
-      </action>
-      <action issue="LOG4J2-1153" dev="rpopma" type="fix">
-        Fixed NullPointerException when only root logger is defined (and no named loggers) in configuration properties file.
-      </action>
-      <action issue="LOG4J2-1140" dev="rpopma" type="fix">
-        Fixed bug where headers were not being written to first file with RollingFileAppender.
-      </action>
-      <action issue="LOG4J2-1149" dev="rpopma" type="fix">
-        Fixed bug where PatternLayout predefined date pattern with time zone always renders default date format.
-      </action>
-      <action issue="LOG4J2-1050" dev="rpopma" type="fix">
-        Fixed Log4jLookup.
-      </action>
-      <action issue="LOG4J2-1142" dev="rpopma" type="fix">
-        Fix potential memory leak in web applications by using a straight ThreadLocal field instead of subclassing ThreadLocal.
-      </action>
-      <action issue="LOG4J2-1135" dev="rpopma" type="fix">
-        Compression on rollover was broken: log file was renamed to .zip but not compressed.
-      </action>
-      <action issue="LOG4J2-1127" dev="ggregory" type="fix">
-        log4j2.xml cannot be parsed on Oracle Weblogic 12c.
-      </action>
-      <action issue="LOG4J2-1132" dev="ggregory" type="fix">
-        Do not use MongoDB driver 2.13.3 deprecated methods.
-      </action>
-      <action issue="LOG4J2-1144" dev="ggregory" type="fix">
-        Add %markerSimpleName in pattern layout should evaluate to marker name (not toString()).
-      </action>
-      <action issue="LOG4J2-1126" dev="ggregory" type="fix">
-        Web site corrections and updates.
-      </action>
-      <action issue="LOG4J2-1151" dev="rpopma" type="update">
-        Performance improvement: backport Java 8 fast ISO-8859-1 String to byte[] encoder to AbstractStringLayout.
-      </action>
-      <action issue="LOG4J2-935" dev="rpopma" type="update">
-        Performance improvement when converting Strings to byte[] arrays.
-      </action>
-      <action issue="LOG4J2-1040" dev="ggregory" type="update">
-        Update MongoDB driver from 2.13.3 to 3.0.4.
-      </action>
-      <action issue="LOG4J2-1128" dev="ggregory" type="update">
-        Reuse StringBuilder to improve performance for String-based layouts: CSV, GELF, HTML, RFC524, Syslog.
-      </action>
-      <action issue="LOG4J2-1131" dev="ggregory" type="update">
-        Update mongo-java-driver from 2.13.2 to 2.13.3.
-      </action>
-      <action issue="LOG4J2-1138" dev="ggregory" type="update">
-        Do not use Jackson deprecated methods.
-      </action>
-      <action issue="LOG4J2-1139" dev="ggregory" type="update">
-        Update Jackson from 2.6.1 to 2.6.2.
-      </action>
-      <action issue="LOG4J2-1150" dev="ggregory" type="update">
-        Update kafka-clients from 0.8.2.1 to 0.8.2.2.
-      </action>
-    </release>
-    <release version="2.4" date="2015-09-20" description="GA Release 2.4">
-      <action issue="LOG4J2-635" dev="rgoers" type="add">
-        Add support for configuration via Properties.
-      </action>
-      <action issue="LOG4J2-952" dev="rgoers" type="add">
-        Add ConfigurationBuilder for programmatic configuration.
-      </action>
-      <action issue="LOG4J2-1017" dev="ggregory" type="update">
-        Update Java platform from Java 6 to 7. From this version onwards, log4j 2 requires Java 7.
-      </action>
-      <action issue="LOG4J2-599" dev="rpopma" type="add">
-        Added support for Java 8 lambda expressions to lazily construct a log message only if
-              the requested log level is enabled.
-      </action>
-      <action issue="LOG4J2-1118" dev="rpopma" type="add">
-        Updated Logger wrapper generator tool to add Java 8 lambda support for custom log levels.
-      </action>
-      <action issue="LOG4J2-1107" dev="ggregory" type="add" due-to="Mikael Ståldal">
-        New Appender for Apache Kafka.
-      </action>
-      <action issue="LOG4J2-1113" dev="ggregory" type="add" due-to="Gary Gregory">
-        New publisher Appender for ZeroMQ (using JeroMQ).
-      </action>
-      <action issue="LOG4J2-1088" dev="ggregory" type="add" due-to="Gary Gregory">
-        Add Comma Separated Value (CSV) layouts for parameter and event logging.
-      </action>
-      <action issue="LOG4J2-812" dev="rgoers" type="update">
-        PatternLayout timestamp formatting performance improvement: replaced synchronized SimpleDateFormat with
-        Apache Commons FastDateFormat. This and better caching resulted in a ~3-30X faster timestamp formatting.
-      </action>
-      <action issue="LOG4J2-1097" dev="rpopma" type="update">
-        PatternLayout timestamp formatting performance improvement: predefined date formats (and variants using
-        a period '.' millisecond separator instead of ',') are now formatted ~2-10X faster than other date formats.
-      </action>
-      <action issue="LOG4J2-1096" dev="rpopma" type="update">
-        Improved performance of ParameterizedMessage::getFormattedMessage by ~2X.
-      </action>
-      <action issue="LOG4J2-1120" dev="rpopma" type="update">
-        LoggerConfig performance improvements: avoid unnecessary lock acquisition, use more efficient data structure.
-      </action>
-      <action issue="LOG4J2-1125" dev="rpopma" type="update">
-        PatternLayout performance improvement by caching and reusing a ThreadLocal StringBuilder.
-      </action>
-      <action issue="LOG4J2-1121" dev="rpopma" type="fix">
-        Fixed potential race condition on reconfiguration. Introduced ReliabilityStrategy to facilitate
-        switching between different mechanisms for preventing log events from being dropped on reconfiguration.
-      </action>
-      <action issue="LOG4J2-1114" dev="ggregory" type="update">
-        Add thread name to status logger layout.
-      </action>
-      <action issue="LOG4J2-1123" dev="ggregory" type="fix">
-        Core Configurator.initialize(String, ClassLoader, String) fails to work when config location is a file path.
-      </action>
-      <action issue="LOG4J2-1117" dev="ggregory" type="fix" due-to="Marcus Thiesen">
-        OutputStreamManager in ConsoleAppender leaking managers.
-      </action>
-      <action issue="LOG4J2-1044" dev="rgoers" type="fix">
-        Write pending events to Flume when the appender is stopped.
-      </action>
-      <action issue="LOG4J2-1108" dev="ggregory" type="fix" due-to="Mikael Ståldal">
-        NullPointerException when passing null to java.util.logging.Logger.setLevel().
-      </action>
-      <action issue="LOG4J2-1110" dev="ggregory" type="fix">
-        org.apache.logging.log4j.jul.CoreLogger.setLevel() checks for security permission too late.
-      </action>
-      <action dev="rpopma" type="remove">
-        Removed experimental interface LevelLogger which got committed to master by mistake.
-      </action>
-      <action issue="LOG4J2-1010" dev="rgoers" type="update">
-        Pass log event when interpolating logger properties.
-      </action>
-      <action issue="LOG4J2-1090" dev="ggregory" type="add">
-        Add Core Configurator APIs to change a logger's level.
-      </action>
-      <action issue="LOG4J2-1105" dev="ggregory" type="add" due-to="Gary Gregory">
-        Add API org.apache.logging.log4j.Level.isInRange(Level, Level).
-      </action>
-      <action issue="LOG4J2-1106" dev="ggregory" type="add" due-to="Gary Gregory">
-        Add a LevelRangeFilter class.
-      </action>
-      <action issue="LOG4J2-1074" dev="rpopma" type="add">
-        Added support for system nanosecond time in pattern layout.
-      </action>
-      <action issue="LOG4J2-1075" dev="rpopma" type="add">
-        Added support for compressing to bzip2 format on file rollover.
-      </action>
-      <action issue="LOG4J2-1077" dev="ggregory" type="add">
-        Support additional Apache Commons Compress compression formats on rollover: Deflate, Pack200, XY.
-      </action>
-      <action issue="LOG4J2-767" dev="ggregory" type="add" due-to="Mikael Ståldal">
-        New module for Liquibase integration.
-      </action>
-      <action issue="LOG4J2-1023" dev="ggregory" type="add" due-to="Mikael Ståldal">
-        New RewritePolicy for changing level of a log event.
-      </action>
-      <action issue="LOG4J2-1015" dev="ggregory" type="add" due-to="Daniel Marcotte">
-        Add a way to route messages based on the %marker in Layout for RoutingAppender.
-      </action>
-      <action issue="LOG4J2-1050" dev="ggregory" type="add" due-to="Adam Retter">
-        Add a Log4jLookup class to help write log files relative to log4j2.xml.
-      </action>
-      <action issue="LOG4J2-1057" dev="ggregory" type="add">
-        Add API org.apache.logging.log4j.LogManager.getFormatterLogger().
-      </action>
-      <action issue="LOG4J2-1066" dev="ggregory" type="add" due-to="Charles Allen">
-        Expose Log4jContextFactory's ShutdownCallbackRegistry.
-      </action>
-      <action issue="LOG4J2-1084" dev="ggregory" type="fix" due-to="Philipp Schneider">
-        Misleading StatusLogger WARN event in LogManager with java.util.Map.
-      </action>
-      <action issue="LOG4J2-1051" dev="ggregory" type="fix" due-to="Lukasz Lenart">
-        NoClassDefFoundError when starting app on Google App Engine.
-      </action>
-      <action issue="LOG4J2-684" dev="ggregory" type="fix" due-to="Joern Huxhorn, Mauro Molinari">
-        ExtendedThrowablePatternConverter does not print suppressed exceptions.
-      </action>
-      <action issue="LOG4J2-1069" dev="ggregory" type="fix" due-to="Sam Braam">
-        Improper handling of JSON escape chars when deserializing JSON log events.
-      </action>
-      <action issue="LOG4J2-1068" dev="ggregory" type="fix" due-to="Andy McMullan">
-        Exceptions not logged when using TcpSocketServer + SerializedLayout.
-      </action>
-      <action issue="LOG4J2-1067" dev="ggregory" type="fix" due-to="Sam Braam">
-        ThrowableProxy getExtendedStackTraceAsString throws NPE on deserialized nested exceptions.
-      </action>
-      <action issue="LOG4J2-1049" dev="rpopma" type="fix" due-to="Robert Schaft">
-        AsyncAppender now resets the thread interrupted flag after catching InterruptedException.
-      </action>
-      <action issue="LOG4J2-1048" dev="rpopma" type="fix" due-to="Nikhil">
-        FileConfigurationMonitor unnecessarily calls System.currentTimeMillis() causing high CPU usage.
-      </action>
-      <action issue="LOG4J2-1037" dev="ggregory" type="fix" due-to="Marc Dergacz">
-        Backward compatibility issue in log4j-1.2-api NDC pop() and peek().
-      </action>
-      <action issue="LOG4J2-1025" dev="ggregory" type="fix" due-to="Mikael Ståldal">
-        Custom java.util.logging.Level gives null Log4j Level and causes NPE.
-      </action>
-      <action issue="LOG4J2-1033" dev="ggregory" type="fix" due-to="Mikael Ståldal">
-        SimpleLogger creates unnecessary Map objects by calling ThreadContext.getContext() instead of getImmutableContext().
-      </action>
-      <action issue="LOG4J2-1026" dev="ggregory" type="fix">
-        HighlightConverter does not obey noConsoleNoAnsi.
-      </action>
-      <action issue="LOG4J2-1019" dev="ggregory" type="fix">
-        ZipCompressAction leaves files open until GC when an IO error takes place.
-      </action>
-      <action issue="LOG4J2-1020" dev="ggregory" type="fix">
-        GzCompressAction leaves files open until GC when an IO error takes place.
-      </action>
-      <action issue="LOG4J2-1038" dev="ggregory" type="fix" due-to="Gili">
-        Incorrect documentation for layout default charset.
-      </action>
-      <action issue="LOG4J2-1042" dev="ggregory" type="fix" due-to="Guillaume Turri">
-        Socket and Syslog appenders don't take timeout into account at startup.
-      </action>
-      <action issue="LOG4J2-934" dev="ggregory" type="fix" due-to="Kenneth Gendron">
-        Circular suppressed Exception throws StackOverflowError.
-      </action>
-      <action issue="LOG4J2-1046" dev="ggregory" type="fix" due-to="Kenneth Gendron">
-        Circular Exception cause throws StackOverflowError.
-      </action>
-      <action issue="LOG4J2-982" dev="ggregory" type="fix" due-to="Mikhail Mazurskiy">
-        Use System.nanoTime() to measure time intervals.
-      </action>
-      <action issue="LOG4J2-1045" dev="ggregory" type="fix" due-to="Günter Albrecht">
-        Externalize log4j2.xml via URL resource.
-      </action>
-      <action issue="LOG4J2-1058" dev="ggregory" type="fix" due-to="Daniel Branzea">
-        Log4jMarker#contains(String) does not respect org.slf4j.Marker contract.
-      </action>
-      <action issue="LOG4J2-1060" dev="ggregory" type="fix">
-        Log4jMarker#contains(Marker) does not respect org.slf4j.Marker contract.
-      </action>
-      <action issue="LOG4J2-1061" dev="ggregory" type="fix">
-        Log4jMarker#remove(Marker) does not respect org.slf4j.Marker contract.
-      </action>
-      <action issue="LOG4J2-1062" dev="ggregory" type="fix">
-        Log4jMarker#add(Marker) does not respect org.slf4j.Marker contract.
-      </action>
-      <action issue="LOG4J2-1064" dev="ggregory" type="fix">
-        org.apache.logging.slf4j.Log4jMarker does not implement org.slf4j.Marker.equals(Object) org.slf4j.Marker.hashCode().
-      </action>
-      <action issue="LOG4J2-889" dev="rpopma" type="fix" due-to="Maciej Karaś, Kenneth Leider">
-        Header in layout should not be written on application startup if appending to an existing file. Fixes LOG4J2-1030.
-      </action>
-      <action issue="LOG4J2-918" dev="rpopma" type="fix">
-        Clarify documentation for combining async with sync loggers.
-      </action>
-      <action issue="LOG4J2-1078" dev="ggregory" type="fix" due-to="Mikael Ståldal">
-        GelfLayout throws exception if some log event fields are null.
-      </action>
-      <action issue="LOG4J2-1044" dev="rgoers" type="update">
-        Support batchSize in FlumeAvroManager.
-      </action>
-      <action issue="LOG4J2-1065" dev="ggregory" type="update">
-        Define org.apache.logging.log4j.Marker.equals(Object) and org.apache.logging.log4j.Marker.hashCode().
-      </action>
-      <action issue="LOG4J2-1063" dev="ggregory" type="update">
-        Avoid creating temporary array object in org.apache.logging.slf4j.Log4jMarker.iterator().
-      </action>
-      <action issue="LOG4J2-890" dev="ggregory" type="update" due-to="Hassan Kalaldeh, Robert Andersson, Remko Popma">
-        log4j-web-2.1 should workaround a bug in JBOSS EAP 6.2.
-      </action>
-      <action issue="LOG4J2-403" dev="ggregory" type="update" due-to="Poorna Subhash P, Jeremy Lautman">
-        MongoDB appender, username and password should be optional.
-      </action>
-      <action issue="LOG4J2-1035" dev="ggregory" type="update">
-        Log4j2 tries to SystemClassLoader when running on Google AppEngine.
-      </action>
-      <action issue="LOG4J2-1022" dev="rgoers" type="update">
-        Allow a list of keys to be specified in the MDC pattern converter.
-      </action>
-      <action issue="LOG4J2-959" dev="ggregory" type="update">
-        Fix FindBugs DM_DEFAULT_ENCODING bug in SimpleLogger.logMessage() and simplify code.
-      </action>
-      <action issue="LOG4J2-1036" dev="ggregory" type="update">
-        Update Apache Flume from 1.5.2 to 1.6.0.
-      </action>
-      <action issue="LOG4J2-1041" dev="ggregory" type="update">
-        Update MongoDB driver from 2.11.2 to 2.13.2.
-      </action>
-      <action issue="LOG4J2-1018" dev="ggregory" type="update">
-        Update database tests from H2 1.3.175 to 1.3.176.
-      </action>
-      <action issue="LOG4J2-1070" dev="ggregory" type="update">
-        Update Java Mail from 1.5.2 to 1.5.4.
-      </action>
-      <action issue="LOG4J2-1079" dev="ggregory" type="update">
-        Update Jackson from 2.5.3 to 2.5.4.
-      </action>
-      <action issue="LOG4J2-1879" dev="ggregory" type="update">
-        Update Jackson from 2.5.4 to 2.6.0.
-      </action>
-      <action issue="LOG4J2-1092" dev="ggregory" type="update">
-        Update Jackson from 2.6.0 to 2.6.1.
-      </action>
-      <action issue="LOG4J2-1104" dev="ggregory" type="update">
-        Update Apache Commons Compress from 1.9 to 1.10.
-      </action>
-    </release>
-    <release version="2.3" date="2015-05-09" description="GA Release 2.3">
-      <action issue="LOG4J2-1009" dev="ggregory" type="fix" due-to="Mikael Ståldal">
-        Incorrectly defined compressionType parameter to GelfLayout.
-      </action>
-      <action issue="LOG4J2-1008" dev="ggregory" type="fix" due-to="Ralph Goers, Gary Gregory">
-        org.apache.logging.log4j.core.config.plugins.util.ResolverUtil.extractPath(URL) incorrectly converts '+' characters to spaces.
-      </action>
-      <action issue="LOG4J2-1007" dev="ggregory" type="fix" due-to="Ralph Goers, Gary Gregory">
-        org.apache.logging.log4j.core.util#fileFromUri(URI uri) incorrectly converts '+' characters to spaces.
-      </action>
-      <action issue="LOG4J2-1003" dev="ggregory" type="fix" due-to="Dan Armbrust">
-        JUL Logger.throwing is mis-mapped to ERROR when it should be TRACE.
-      </action>
-      <action issue="LOG4J2-965" dev="ggregory" type="fix" due-to="Khotyn Huang">
-        System.out no longer works after the Console appender and JANSI are initialized.
-      </action>
-      <action issue="LOG4J2-998" dev="ggregory" type="update" due-to="Mariano Gonzalez">
-        Make org.apache.logging.log4j.core.Logger#updateConfiguration protected.
-      </action>
-      <action issue="LOG4J2-995" dev="rgoers" type="update">
-        Move UTF-8 constant from Charsets to Constants class. Remove Charsets class.
-      </action>
-      <action issue="LOG4J2-993" dev="rgoers" type="fix">
-        Deadlock would occur if appender thread creates a new Logger during reconfiguration.
-      </action>
-      <action issue="LOG4J2-991" dev="rpopma" type="fix" due-to="Ryan Rupp">
-        Async root logger config should default includeLocation to false.
-      </action>
-      <action issue="LOG4J2-985" dev="rpopma" type="fix" due-to="Sean Dawson">
-        AbstractFilter should not implement equals() and hashCode().
-      </action>
-      <action issue="LOG4J2-984" dev="ggregory" type="add" due-to="Jonas Höpfner">
-        PatternLayout %highlight to support noConsoleNoAnsi like %style.
-      </action>
-      <action issue="LOG4J2-926" dev="ggregory" type="add" due-to="David Ohana">
-        Truncate from the end of text format modifier.
-      </action>
-      <action issue="LOG4J2-980" dev="ggregory" type="fix" due-to="Mikhail Mazurskiy">
-        Numerical overflow in BurstFilter not handled correctly.
-      </action>
-      <action issue="LOG4J2-981" dev="ggregory" type="fix" due-to="Mikhail Mazurskiy">
-        Incorrect unlock in ProviderUtil.
-      </action>
-      <action issue="LOG4J2-966" dev="ggregory" type="fix">
-        KeyStoreConfiguration.createKeyStoreConfiguration() ignores keyManagerFactoryAlgorithm.
-      </action>
-      <action issue="LOG4J2-976" dev="ggregory" type="fix" due-to="Matt Quinn">
-        Using monitorInterval with YAML config file format causes JSONParseException.
-      </action>
-      <action issue="LOG4J2-964" dev="ggregory" type="fix" due-to="Jonne Jyrylä">
-        StringFormattedMessage serialization is incorrect.
-      </action>
-      <action issue="LOG4J2-947" dev="ggregory" type="fix" due-to="Stefan Wehner">
-        A new StatusLoggerAdmin listener is added to StatusLogger every time the log is reconfigured.
-      </action>
-      <action issue="LOG4J2-968" dev="ggregory" type="fix" due-to="Paul D Johe">
-        SyslogLayout contains extra space.
-      </action>
-      <action issue="LOG4J2-967" dev="ggregory" type="fix" due-to="Stefan Wehner">
-        log4j2.component.properties not read for all properties.
-      </action>
-      <action issue="LOG4J2-971" dev="ggregory" type="fix" due-to="Paul D Johe">
-        Another bad priority in Syslog messages.
-      </action>
-      <action issue="LOG4J2-972" dev="ggregory" type="fix">
-        org.apache.logging.log4j.core.net.ssl.TlsSyslogInputStreamReader does not need to create temp Integer objects.
-      </action>
-      <action issue="LOG4J2-974" dev="ggregory" type="fix" due-to="Daniel Galán y Martins">
-        Typo in EventLogger documentation.
-      </action>
-      <action issue="LOG4J2-988" dev="ggregory" type="update">
-        Update LMAX Disruptor from 3.3.0 to 3.3.2.
-      </action>
-      <action issue="LOG4J2-987" dev="ggregory" type="update">
-        Migrate tests from Logback 1.1.2 to 1.1.3.
-      </action>
-      <action issue="LOG4J2-988" dev="ggregory" type="update">
-        Update tests to use ActiveMQ from 5.10 to 5.11.1.
-      </action>
-      <action issue="LOG4J2-1004" dev="ggregory" type="update">
-        Update Jackson from 2.5.1 to 2.5.3.
-      </action>
-      <action issue="LOG4J2-1005" dev="ggregory" type="update">
-        Update Slf4j from 1.7.7 to 1.7.12.
-      </action>
-    </release>
-    <release version="2.2" date="2015-02-22" description="GA Release 2.2">
-      <action issue="LOG4J2-938" dev="rpopma" type="fix" due-to="Mauro Molinari">
-        (JMX) To avoid memory leaks when web applications are restarted, JMX notifications are sent from
-        the caller thread in web applications. For non-web applications notifications are sent from a background thread
-        as before.
-      </action>
-      <action issue="LOG4J2-957" dev="ggregory" type="fix" due-to="fatih guleryuz">
-        Missing toUpperCase(Locale.ENGLISH).
-      </action>
-      <action issue="LOG4J2-956" dev="ggregory" type="fix" due-to="David Kellerman">
-        Manual refers to Route "AppenderRef" attribute, should be "ref".
-      </action>
-      <action issue="LOG4J2-955" dev="rpopma" type="update">
-        Documentation: clarify system properties to control status logger, improve troubleshooting FAQ entry.
-      </action>
-      <action issue="LOG4J2-950" dev="ggregory" type="update" due-to="Joel Edwards">
-        Incorrect attribute name in PropertiesRewritePolicy example.
-      </action>
-      <action issue="LOG4J2-944" dev="ggregory" type="fix" due-to="Vinayaka Ramachandra">
-        Log4j Flume appender is not adding millisecond to the event headers when the event is logged at 000 milliseconds.
-      </action>
-      <action issue="LOG4J2-941" dev="ggregory" type="add" due-to="Konstantinos Liakos">
-        Allow JSON layout to create one compact log record per line.
-      </action>
-      <action issue="LOG4J2-933" dev="ggregory" type="add" due-to="ppiman at gmail.com">
-        HTML layout should not use attribute minimalization for hr noshade.
-      </action>
-      <action issue="LOG4J2-895" dev="ggregory" type="add">
-        Specify the SyslogAppender connect timeout value as part of the configuration.
-        The SyslogAppender takes a new parameter connectTimeoutMillis.
-      </action>
-      <action issue="LOG4J2-899" dev="ggregory" type="add">
-        Specify the SocketAppender connect timeout value as part of the configuration.
-        The SyslogAppender takes a new parameter connectTimeoutMillis.
-      </action>
-      <action issue="LOG4J2-924" dev="ggregory" type="fix" due-to="Ryan Rupp">
-        Log4j 1.2 Bridge doesn't map level ALL correctly in Category.getEffectiveLevel().
-      </action>
-      <action issue="LOG4J2-931" dev="ggregory" type="fix" due-to="Robert Gacki">
-        ConsoleAppender is missing @PluginFactory annotation at createAppender method.
-      </action>
-      <action issue="LOG4J2-919" dev="ggregory" type="fix" due-to="David Johle">
-        Logging system fails to initialize if XInclude API is not available.
-      </action>
-      <action issue="LOG4J2-914" dev="ggregory" type="fix" due-to="Kaj Bjurman">
-        ThrowableProxy.getExtendedStackTraceAsString causes NullPointerException.
-      </action>
-      <action issue="LOG4J2-912" dev="ggregory" type="fix">
-        XML configuration does not report full error message for XInclude parser configuration problems.
-      </action>
-      <action issue="LOG4J2-903" dev="ggregory" type="fix" due-to="Mauro Molinari">
-        ClassLoaderContextSelector uses ClassLoader.toString() as a key
-      </action>
-      <action issue="LOG4J2-834" dev="ggregory" type="fix" due-to="Nikita Koval, Leonard Broman, Thiago Kronig">
-        ThrowableProxy throws NoClassDefFoundError.
-      </action>
-      <action issue="LOG4J2-893" dev="ggregory" type="fix">
-        NullPointerException on filter when mapping JUL to Log4j2.
-      </action>
-      <action issue="LOG4J2-892" dev="ggregory" type="fix">
-        JUL adapter does not map Log4j'2 FATAL level to a JUL level.
-      </action>
-      <action issue="LOG4J2-881" dev="ggregory" type="fix" due-to="Mariano Gonzalez">
-        AbstractLifecycle should not implement equals() and hashCode().
-      </action>
-      <action issue="LOG4J2-897" dev="ggregory" type="fix">
-        Javadoc for org.apache.log4j.BasicConfigurator.configure() is incorrect.
-      </action>
-      <action issue="LOG4J2-891" dev="ggregory" type="fix">
-        AbstractLifecycle should not implement equals() and hashCode().
-      </action>
-      <action issue="LOG4J2-946" dev="ggregory" type="fix" due-to="artemonster">
-        [docs] Using Log4j 2 in Web Applications: Update example (Log4jWebLifeCycle is not visible).
-      </action>
-      <action issue="LOG4J2-901" dev="ggregory" type="update" due-to="Tihomir Meščić, Siegfried Greisinger">
-        Update docs for SyslogAppender: "No structured id name was supplied"
-      </action>
-      <action issue="LOG4J2-958" dev="ggregory" type="update">
-        Update from Jackson 2.5.0 to 2.5.1.
-      </action>
-      <action issue="LOG4J2-925" dev="ggregory" type="update">
-        Update from Jackson 2.4.4 to 2.5.0.
-      </action>
-      <action issue="LOG4J2-910" dev="ggregory" type="update">
-        Update Jackson from 2.4.3 to 2.4.4.
-      </action>
-      <action issue="LOG4J2-881" dev="ggregory" type="update">
-        Update Jackson from 2.4.2 to 2.4.3.
-      </action>
-      <action issue="LOG4J2-882" dev="ggregory" type="update">
-        Update maven-core from 3.1.0 to 3.2.3.
-      </action>
-      <action issue="LOG4J2-883" dev="ggregory" type="update">
-        Update tests from org.apache.felix.framework 4.2.1 to 4.4.1.
-      </action>
-      <action issue="LOG4J2-884" dev="ggregory" type="update">
-        Update org.eclipse.osgi from 3.6.0 to 3.7.1.
-      </action>
-      <action issue="LOG4J2-900" dev="ggregory" type="update">
-        Update Apache Flume from 1.5.0.1 to 1.5.2.
-      </action>
-    </release>
-    <release version="2.1" date="2014-10-19" description="GA Release 2.1">
-      <action issue="LOG4J2-676" dev="rgoers" type="fix" due-to="Stefan Bodewig">
-        Some typo fixes and enhancements for the site.
-      </action>
-      <action issue="LOG4J2-868" dev="mattsicker" type="add">
-        Add ShutdownCallbackRegistry interface for customizable shutdown callback handling. This is particularly
-        useful for application servers that wish to integrate with Log4j 2.
-      </action>
-      <action issue="LOG4J2-866" dev="rpopma" type="fix" due-to="Gerard Weatherby">
-        Documentation: fixed missing closing parenthesis in code example.
-      </action>
-      <action issue="LOG4J2-862" dev="mattsicker" type="fix" due-to="Michael Sutherland">
-        Fixed classloader issue that prevented Log4j from finding the implementation when used in a custom Ant task.
-      </action>
-      <action issue="LOG4J2-589" dev="rpopma" type="add">
-        Supported filtering on custom log levels in configuration.
-      </action>
-      <action issue="LOG4J2-861" dev="rpopma" type="fix">
-        Documentation: fix broken links on left navigation Extending Log4j Configuration sub-menu.
-      </action>
-      <action issue="LOG4J2-856" dev="rpopma" type="add">
-        Documentation: add sections on the JUL Adapter, IO Streams and NoSQL Appenders to the Maven and Ivy page.
-      </action>
-      <action issue="LOG4J2-797" dev="rpopma" type="fix" due-to="Andreas Rytina">
-        Documentation: clarified why log4j-core is a compile time dependency in Maven and Ivy page.
-      </action>
-      <action issue="LOG4J2-855" dev="rpopma" type="fix">
-        Documentation: fix broken links on Appenders manual page.
-      </action>
-      <action issue="LOG4J2-807" dev="rpopma" type="fix">
-        Prevent NPE when configuration with AsyncLogger/AsyncRoot is reloaded.
-      </action>
-      <action issue="LOG4J2-848" dev="ggregory" type="add">
-        Add a Java lookup to provide nicely formatted runtime version information.
-      </action>
-      <action issue="LOG4J2-809" dev="mattsicker" type="add">
-        Move reflection utility class to API's private utility classes.
-      </action>
-      <action issue="LOG4J2-845" dev="mattsicker" type="update">
-        Add 2.1.0 to compatible versions in Log4j API ProviderUtil and update Log4jAPIVersion to 2.1.0 in
-        core META-INF/log4j-provider.properties.
-      </action>
-      <action issue="LOG4J2-833" dev="rpopma" type="add">
-        Documentation: added Runtime Dependencies link to left nav-bar on site.
-      </action>
-      <action issue="LOG4J2-816" dev="rpopma" type="add">
-        Documentation: added section on XInclude to user manual Configuration page.
-      </action>
-      <action issue="LOG4J2-678" dev="rpopma" type="fix" due-to="Matt Sicker">
-        Documentation: fixed minor issues with Log4j2 web site/documentation.
-      </action>
-      <action issue="LOG4J2-844" dev="rpopma" type="update">
-        Update JMH to 1.1 from 0.7.2.
-      </action>
-      <action issue="LOG4J2-843" dev="rpopma" type="fix">
-        Migrate JpaHyperSqlAppenderTest JUnit performance test to log4j-perf.
-      </action>
-      <action issue="LOG4J2-842" dev="rpopma" type="fix">
-        Migrate JpaH2AppenderTest JUnit performance test to log4j-perf.
-      </action>
-      <action issue="LOG4J2-841" dev="rpopma" type="fix">
-        Migrate JdbcHyperSqlAppenderTest JUnit performance test to log4j-perf.
-      </action>
-      <action issue="LOG4J2-840" dev="rpopma" type="fix">
-        Migrate JdbcH2AppenderTest JUnit performance test to log4j-perf.
-      </action>
-      <action issue="LOG4J2-830" dev="rpopma" type="fix">
-        Respect external interrupt signal to allow application shutdown after joining AsyncAppender thread.
-      </action>
-      <action issue="LOG4J2-813" dev="ggregory" type="fix" due-to="David Erichsen, Brandon Barry">
-        MarkerManager Log4jMarker.hasParents() returns opposite of correct result.
-      </action>
-      <action issue="LOG4J2-785" dev="rpopma" type="fix">
-        Documentation: fixed capitalization inconsistency in user manual example config.
-      </action>
-      <action issue="LOG4J2-829" dev="rpopma" type="fix">
-        Fixed issue in RollingFile filePattern: backslashes are path separators, not escape characters.
-      </action>
-      <action issue="LOG4J2-547" dev="mattsicker" type="add">
-        Add the Log4j IOStreams component.
-      </action>
-      <action issue="LOG4J2-431" dev="rpopma" type="add" due-to="Claude Mamo">
-        Added Memory-Mapped File Appender.
-      </action>
-      <action issue="LOG4J2-832" dev="ggregory" type="fix" due-to="Seth Leger">
-        ThrowableProxy fails if a class in logged stack trace throws java.lang.Error from initializer
-      </action>
-      <action issue="LOG4J2-831" dev="rpopma" type="update">
-        Documentation: updated FAQ "which jars" diagrams for JUL bridge and 2.1 version.
-      </action>
-      <action issue="LOG4J2-827" dev="mattsicker" type="add">
-        Support use of TypeConverter classes through the standard Plugin system.
-      </action>
-      <action issue="LOG4J2-745" dev="mattsicker" type="fix" due-to="Scott Harrington">
-        Avoid ConverterKey plugin clashes by using a more predictable plugin loading infrastructure.
-        Plugins have been segmented into three parts: class path, user-specified packages, and OSGi bundles.
-      </action>
-      <action issue="LOG4J2-798" dev="mattsicker" type="fix" due-to="Scott Harrington">
-        Fixed plugin scanning redundancy causing massive slowdowns in certain environments.
-      </action>
-      <action issue="LOG4J2-753" dev="rpopma" type="fix">
-        Reduced CachedClock thread contention.
-      </action>
-      <action issue="LOG4J2-819" dev="mattsicker" type="fix" due-to="Gary Gregory">
-        Fixed memory leak in Tomcat 6 caused by clock background threads unintentionally
-        started by Tomcat after web application stop.
-      </action>
-      <action issue="LOG4J2-825" dev="mattsicker" type="add">
-        Add simple validation constraint annotations for the Plugin system.
-      </action>
-      <action issue="LOG4J2-428" dev="ggregory" type="add" due-to="Mark Paluch, Mikael Ståldal">
-        Implement a GELF layout.
-      </action>
-      <action issue="LOG4J2-391" dev="rgoers" type="fix" due-to="Kamal Bahadur">
-        FlumePersistentManager now handles LockConflictExceptions in Berkeley Db when sending a batch.
-      </action>
-      <action issue="LOG4J2-782" dev="mattsicker" type="fix">
-        Remove invalid Oracle Maven repository.
-      </action>
-      <action issue="LOG4J2-780" dev="mattsicker" type="update">
-        Update Spring Framework to 3.2.11.RELEASE from 3.2.8.RELEASE.
-      </action>
-      <action issue="LOG4J2-815" dev="mattsicker" type="update">
-        Unify the two JMS appenders into a single appender. Configurations written for 2.0 will still work in 2.1+.
-      </action>
-      <action issue="LOG4J2-608" dev="mattsicker" type="add">
-        Add java.util.logging implementation based on log4j-api. See log4j-jul documentation for more details.
-      </action>
-      <action issue="LOG4J2-796" dev="rpopma" type="fix">
-        Fixed issue where log4j-to-slf4j did not work correctly with SLF4J Simple Logger.
-      </action>
-      <action issue="LOG4J2-811" dev="ggregory" type="fix" due-to="Yogesh Rao">
-        SimpleLogger throws ArrayIndexOutOfBoundsException for an empty array.
-      </action>
-      <action issue="LOG4J2-663" dev="mattsicker" type="fix" due-to="Florian Brunner">
-        Fix OSGi Import-Package problem with the JMS API.
-      </action>
-      <action issue="LOG4J2-793" dev="mattsicker" type="add">
-        Add support for custom SLF4J Markers in log4j-slf4j-impl module.
-      </action>
-      <action issue="LOG4J2-783" dev="rpopma" type="fix" due-to="Minglei Lee">
-        PatternLayout should use platform character encoding by default, not UTF-8.
-      </action>
-      <action issue="LOG4J2-771" dev="ggregory" type="add">
-        Add lookup for application main arguments.
-      </action>
-      <action issue="LOG4J2-787" dev="ggregory" type="add">
-        Add lookup for JVM arguments.
-      </action>
-      <action issue="LOG4J2-790" dev="ggregory" type="update">
-        Update Jackson to 2.4.2 from 2.4.1 (for XML and JSON processing).
-      </action>
-      <action issue="LOG4J2-766" dev="ggregory" type="update" due-to="Bruno P. Kinoshita">
-        Incomplete documentation for JSONLayout.
-      </action>
-      <action issue="LOG4J2-800" dev="ggregory" type="update">
-        All life cycle implementations should be serializable.
-        This is still work in progress.
-      </action>
-      <action issue="LOG4J2-801" dev="ggregory" type="update">
-        org.apache.logging.log4j.core.Logger should be serializable.
-        This is still work in progress.
-      </action>
-      <action issue="LOG4J2-810" dev="ggregory" type="update">
-        Update javax.mail to 1.5.2 from 1.5.0.
-      </action>
-      <action issue="LOG4J2-822" dev="ggregory" type="update">
-        Update org.eclipse.persistence.jpa to 2.5.2 from 2.5.1.
-      </action>
-      <action issue="LOG4J2-867" dev="ggregory" type="update">
-        FlumeAppender: maxDelay not in seconds, but milliseconds.
-        Add time scale to some settings, for example maxDelayMillis instead of maxDelay.
-        The old names are aliased for compatibility.
-      </action>
-    </release>
-    <release version="2.0.2" date="2014-08-16" description="Bug fixes and enhancements">
-      <action issue="LOG4J2-775" dev="ggregory" type="update">
-        Update Apache Flume to 1.5.0.1 from 1.5.0.
-      </action>
-      <action issue="LOG4J2-773" dev="rpopma" type="fix">
-        Site: log4j-core component pages were still using the old logo.
-      </action>
-      <action issue="LOG4J2-760" dev="rpopma" type="fix">
-        Documentation improvement: link to dependency tree from log4j-core component page,
-        link to log4j-core component page from FAQ page.
-      </action>
-      <action issue="LOG4J2-679" dev="rpopma" type="fix">
-        Resolved race condition that caused log file rotation to fail with error: "Unable to create directory ..."
-      </action>
-      <action issue="LOG4J2-726" dev="rpopma" type="fix">
-        Prevent application from hanging when PatternLayout configuration has opening '{' but no closing '}'.
-      </action>
-      <action issue="LOG4J2-769" dev="rpopma" type="fix" due-to="Scott Harrington">
-        Startup takes a long time if you have empty packages attribute.
-      </action>
-      <action issue="LOG4J2-763" dev="rpopma" type="fix" due-to="Stephen Connolly">
-        Improved asynchronous loggers and appenders to ensure the formatted message does not change even if
-        parameters are modified by the application. (ParameterizedMessage was already safe.)
-        Improved documentation.
-      </action>
-      <action issue="LOG4J2-729" dev="rpopma" type="fix">
-        Emit warning message to console if no configuration file found.
-      </action>
-      <action issue="LOG4J2-765" dev="rpopma" type="fix">
-        Improve warning message when missing log4j-core in the classpath.
-      </action>
-      <action issue="LOG4J2-722" dev="rpopma" type="fix">
-        Clarified in documentation that Commons Logging jar is required when using log4j-jcl.
-      </action>
-      <action issue="LOG4J2-723" dev="rpopma" type="fix">
-        Clarified in documentation that SLF4J API jar is required when using log4j-slf4j-impl.
-      </action>
-      <action issue="LOG4J2-730" dev="rpopma" type="update">
-        Allow Log4jContextFactory subclasses to specify a custom ContextSelector.
-      </action>
-      <action issue="LOG4J2-759" dev="rpopma" type="fix">
-        Fixed various minor site/documentation issues, mostly versioning related.
-      </action>
-      <action issue="LOG4J2-756" dev="rpopma" type="fix" due-to="Scott Harrington">
-        Prevent JUnit test from creating unnecessary Log4j2Plugins.dat during build.
-      </action>
-    </release>
-    <release version="2.0.1" date="2014-07-29" description="Bug fixes">
-      <action issue="LOG4J2-744" dev="rpopma" type="fix" due-to="Scott Harrington">
-        Avoid unnecessary Clock calls when TimestampMessage is logged.
-      </action>
-      <action issue="LOG4J2-704" dev="rpopma" type="fix">
-        Improved error message if configuration file not found.
-      </action>
-      <action issue="LOG4J2-750" dev="ggregory" type="fix" due-to="Mike Calmus">
-        Webapp configuration page has incorrect class name.
-      </action>
-      <action issue="LOG4J2-749" dev="rpopma" type="fix" due-to="Scott Harrington">
-        Retain the default date pattern after fixing the ISO8601 pattern.
-      </action>
-      <action issue="LOG4J2-670" dev="rpopma" type="fix">
-        DatePatternConverter ISO8601_PATTERN now conforms to ISO8601.
-      </action>
-      <action issue="LOG4J2-741" dev="rpopma" type="fix">
-        Reinstate the package configuration attribute for discovering custom plugins.
-      </action>
-      <action issue="LOG4J2-742" dev="ggregory" type="fix" due-to="Pascal Chollet">
-        XInclude not working with relative path.
-      </action>
-      <action issue="LOG4J2-740" dev="mattsicker" type="fix" due-to="Kosta Krauth">
-        Fixed typo in webapp manual regarding sample web.xml file.
-      </action>
-      <action issue="LOG4J2-738" dev="ggregory" type="fix" due-to="Timothy Stack">
-        RollingFileManager deadlock if async action thread fails to start.
-      </action>
-      <action issue="LOG4J2-736" dev="mattsicker" type="fix">
-        Fixed log4j-bom so that it won't specify a default scope on any third party dependencies.
-      </action>
-      <action issue="LOG4J2-735" dev="mattsicker" type="fix">
-        Fixed log4j-bom so that it won't interfere with spring-bom and others.
-      </action>
-      <action issue="LOG4J2-731" dev="mattsicker" type="fix">
-        Updated documentation regarding extensions to LoggerContextFactory and Log4j 2 providers.
-      </action>
-      <action issue="LOG4J2-373" dev="mattsicker" type="fix">
-        Fixed ClassLoader issues in loading Log4j providers in an OSGi environment.
-      </action>
-      <action issue="LOG4J2-725" dev="mattsicker" type="add">
-        Added WebLoggerContextUtils class to log4j-web for helper methods useful for asynchronous servlets.
-      </action>
-      <action issue="LOG4J2-710" dev="rpopma" type="add">
-        Added documentation for Custom Levels and Custom Loggers.
-      </action>
-      <action issue="LOG4J2-719" dev="rpopma" type="fix">
-        Correctly handle NetworkOnMainThreadException thrown on Android during Log4j2 initialization.
-      </action>
-      <action issue="LOG4J2-716" dev="rpopma" type="fix">
-        Automatically disable log4j JMX when detecting we are running on Android.
-      </action>
-      <action issue="LOG4J2-657" dev="rpopma" type="fix" due-to="Stefan Wehner">
-        Fixed AbstractDatabaseManager to close connection on writeInternal error.
-      </action>
-      <action issue="LOG4J2-713" dev="ggregory" type="fix" due-to="Nelson Melina">
-        Android: java.lang.VerifyError: org/apache/logging/log4j/core/util/Closer
-      </action>
-      <action issue="LOG4J2-703" dev="ggregory" type="fix" due-to="Nelson Melina">
-        Android: Could not find class 'javax.naming.InitialContext', referenced from method org.apache.logging.log4j.core.lookup.JndiLookup.lookup.
-      </action>
-      <action issue="LOG4J2-732" dev="ggregory" type="updated">
-        Update to LMAX Disruptor 3.3.0 from 3.2.1.
-      </action>
-      <action issue="LOG4J2-733" dev="ggregory" type="updated">
-        Update to latest Jackson jars from the 2.4.1.X line.
-      </action>
-    </release>
-    <release version="2.0" date="2014-07-12" description="GA Release">
-      <action issue="LOG4J2-705" dev="rpopma" type="fix">
-        Fixed issue where Async Logger does not log thread context stack data.
-        API change: added method getImmutableStackOrNull() to ThreadContext.ContextStack interface.
-      </action>
-      <action issue="LOG4J2-631" dev="rpopma" type="fix">
-        Update docs to clarify how to use formatter logger and standard logger together.
-      </action>
-      <action issue="LOG4J2-519" dev="rpopma" type="add">
-        Added support for generating custom logger wrappers that replace the existing log levels
-        and extended logger wrappers that add custom log levels to the existing ones.
-      </action>
-      <action issue="LOG4J2-441" dev="rgoers" type="fix">
-        LoggerConfigs with no Level now inherit the Level from their parent.
-      </action>
-      <action issue="LOG4J2-696" dev="ggregory" type="add">
-        RegexFilter does not match multiline log messages.
-      </action>
-      <action issue="LOG4J2-699" dev="rpopma" type="fix">
-        PatternLayout manual page missing documentation on header/footer.
-      </action>
-      <action issue="LOG4J2-625" dev="rpopma" type="fix">
-        Fixed Serialization error with SocketAppender and Async Loggers.
-        (Fixed in RC2, but wasn't included in release notes.)
-      </action>
-      <action issue="LOG4J2-538" dev="rpopma" type="fix">
-        JMX GUI: fixed occasional ArrayIndexOutOfBoundsException after pressing "reconfigure with XML below".
-        (Fixed in RC2, but wasn't included in release notes.)
-      </action>
-      <action issue="LOG4J2-666" dev="rpopma" type="fix">
-        AsyncLoggerContextSelector should ensure that different AsyncLoggerContext objects created by web app classloaders have unique names.
-      </action>
-      <action issue="LOG4J2-683" dev="mattsicker" type="fix" due-to="Jurriaan Mous">
-        Fix annotation processor warnings on JDK 1.7+.
-      </action>
-      <action issue="LOG4J2-694" dev="mattsicker" type="fix">
-        Fix strange compilation error that popped up in a test class.
-      </action>
-      <action issue="LOG4J2-692" dev="rgoers" type="fix">
-        Update documentation to specify only Maven 3 is supported.
-      </action>
-      <action issue="LOG4J2-690" dev="rgoers" type="fix" due-to="Philip Helger">
-        Log4j Web test dependencies should be in scope "test" in the pom.
-      </action>
-      <action issue="LOG4J2-682" dev="ggregory" type="fix" due-to="Scott Harrington">
-        Special characters (tab and so on) in PatternLayout do not work.
-      </action>
-      <action issue="LOG4J2-685" dev="ggregory" type="update">
-        Make org.apache.logging.log4j.core.layout.AbstractLayout immutable.
-      </action>
-      <action issue="LOG4J2-686" dev="ggregory" type="fix">
-        Core's OptionConverter support for \b is broken (affects PatternLayout).
-      </action>
-      <action issue="LOG4J2-687" dev="ggregory" type="fix">
-        Rename org.apache.logging.log4j.core.util.Closer.closeSilent() to closeSilently().
-      </action>
-      <action issue="LOG4J2-688" dev="ggregory" type="fix">
-        Make org.apache.logging.log4j.core.layout.PatternLayout immutable.
-      </action>
-      <action issue="LOG4J2-689" dev="ggregory" type="update">
-        Update Jackson to 2.4.1.
-      </action>
-      <action issue="LOG4J2-707" dev="ggregory" type="fix">
-        Some exceptions are not logged when configuration problems are detected.
-      </action>
-      <action issue="LOG4J2-709" dev="ggregory" type="update">
-        Update Apache Commons Logging to 1.2 from 1.1.3.
-      </action>
-    </release>
-    <release version="2.0-rc2" date="2014-06-21" description="Bug fixes and enhancements">
-      <action issue="LOG4J2-675" dev="rpopma" type="add">
-        RollingFile and RollingRandomAccessFile now write the layout footer before rollover.
-      </action>
-      <action issue="LOG4J2-581" dev="rpopma" type="fix" due-to="Alexander Khokhlov">
-        RollingRandomAccessFile now writes the layout header after rollover.
-      </action>
-      <action issue="LOG4J2-622" dev="rpopma" type="fix" due-to="Farooq Khan">
-        RollingFileManager now correctly honours the bufferedIO configuration after rollover.
-      </action>
-      <action issue="LOG4J2-674" dev="rpopma" type="add">
-        Made RollingFileAppender buffer size configurable.
-      </action>
-      <action issue="LOG4J2-141" dev="rpopma" type="fix" due-to="Joern Huxhorn">
-        Improved documentation regarding log4j status logger.
-      </action>
-      <action issue="LOG4J2-539" dev="rpopma" type="fix" due-to="Colin Froggatt">
-        Fixed issue with "Reconfigure using XML below" function in JMX Client GUI.
-        ConfigurationSource is now a top-level class and can be obtained with Configuration.getConfigurationSource().
-        LoggerContext.getConfiguration().getConfigurationSource()
-        provides a reliable public method for obtaining a logger context's configuration location and content.
-      </action>
-      <action issue="LOG4J2-619" dev="rgoers" type="fix" due-to="Scott Harrington">
-        Invalid XML configuration files do not prevent the config file from being checked again.
-      </action>
-      <action issue="LOG4J2-637" dev="rpopma" type="fix" due-to="Mansoor Sajjad, Jon Wilmoth">
-        JMX: Updating a Logger's level via jConsole now correctly takes effect.
-      </action>
-      <action issue="LOG4J2-668" dev="rpopma" type="fix">
-        Correctly process log events when combining AsyncLoggers with AsyncAppender.
-      </action>
-      <action issue="LOG4J2-669" dev="rpopma" type="fix">
-        Prevent NPE when combining AsyncLoggers with AsyncLoggerConfigs.
-      </action>
-      <action issue="LOG4J2-42" dev="rgoers" type="add">
-        Create an appender to route log events to the ServletContext log.
-      </action>
-      <action issue="LOG4J2-419" dev="rgoers" type="update" due-to="Woonsan Ko">
-        Support default value for missing key in look ups with fallback to looking in the properties map.
-      </action>
-      <action issue="LOG4J2-563" dev="rgoers" type="fix" due-to="Michael Friedmann">
-        FlumeAvroManager now always uses a client type of default_failover.
-      </action>
-      <action issue="LOG4J2-554" dev="rgoers" type="update">
-        Allow configuration files to be located as Servlet Context resources.
-      </action>
-      <action issue="LOG4J2-535" dev="rgoers" type="fix">
-        Reset rollover time when size rollover is triggered.
-      </action>
-      <action issue="LOG4J2-664" dev="mattsicker" type="fix">
-        Moved plugin cache file to META-INF for OSGi compatibility.
-      </action>
-      <action issue="LOG4J2-640" dev="mattsicker" type="fix">
-        Fix NPE that can be caused by a null ThreadContextClassLoader.
-      </action>
-      <action issue="LOG4J2-655" dev="mattsicker" type="add">
-        Add Vagrantfile for testing in GNU+Linux.
-      </action>
-      <action issue="LOG4J2-651" dev="ggregory" type="fix">
-        Log4j 2 throws ArrayIndexOutOfBoundsException.
-      </action>
-      <action issue="LOG4J2-654" dev="rpopma" type="add">
-        Add log4j-perf module to provide a home for all log4j performance tests.
-        Add support for JMH microbenchmark performance tests.
-      </action>
-      <action issue="LOG4J2-652" dev="mattsicker" type="add">
-        Add support for default plugin values and attributes.
-      </action>
-      <action issue="LOG4J2-598" dev="mattsicker" type="add">
-        Add support for types other than String for plugin factory values/attributes.
-      </action>
-      <action issue="LOG4J2-250" dev="rpopma" type="update">
-        Refactor Log4jLogEvent to lazily create ThrowableProxy.
-      </action>
-      <action issue="LOG4J2-647" dev="ggregory" type="update">
-        Upgrade to Flume 1.5.0.
-      </action>
-      <action issue="LOG4J2-644" dev="ggregory" type="add">
-        Implement a SecureSocketAppender and secure server (SSL/TLS).
-      </action>
-      <action issue="LOG4J2-646" dev="ggregory" type="update">
-        Merge the TLS Syslog appender into the Syslog appender.
-      </action>
-      <action issue="LOG4J2-620" dev="rgoers" type="fix">
-        Perform reconfiguration in a separate thread to prevent deadlocks.
-      </action>
-      <action issue="LOG4J2-641" dev="mattsicker" type="update">
-        Override commons-logging dependency version in tests.
-      </action>
-      <action issue="LOG4J2-639" dev="rpopma" type="fix" due-to="Mck SembWever">
-        Prevent NPE in AsyncLogger and AsyncLoggerConfig if logger is used after log4j has been shut down.
-      </action>
-      <action issue="LOG4J2-469" dev="rgoers" type="fix">
-        FailoverAppender was not resetting its status after the primary appender recovered.
-      </action>
-      <action issue="LOG4J2-623" dev="rgoers" type="fix">
-        Generate MDC properties as a JSON map in JSONLayout.
-      </action>
-      <action issue="LOG4J2-566" dev="rpopma" type="update" due-to="Luigi Alice">
-        Made RollingRandomAccessFileAppender buffer size configurable.
-      </action>
-      <action issue="LOG4J2-520" dev="rpopma" type="fix" due-to="JavaTech, Andre Bogus">
-        Resolved issue where AsyncAppender dropped events if queue still contained
-        events when application is stopped.
-      </action>
-      <action issue="LOG4J2-392" dev="rpopma" type="fix" due-to="Andre Bogus">
-        Resolved a problem with the previous solution for LOG4J2-392 that resulted in dropped events
-        when using AsyncLoggerConfig with slow appenders when application is stopped.
-      </action>
-      <action issue="LOG4J2-613" dev="mattsicker" type="fix">
-        The OSGi version of log4j-web imports Servlet 2.5 at minimum instead of 3.0.
-      </action>
-      <action issue="LOG4J2-602" dev="rgoers" type="fix">
-        Unit tests are now less verbose during the build process.
-      </action>
-      <action issue="LOG4J2-570" dev="mattsicker" type="fix">
-        Fix shutdown thread memory leak in servlet containers.
-      </action>
-      <action issue="LOG4J2-628" dev="rpopma" type="update">
-        Use Clock to generate all log event timestamps, not just for Async Loggers.
-      </action>
-      <action issue="LOG4J2-629" dev="rpopma" type="add">
-          Document the system properties used in Log4J 2.
-      </action>
-      <action issue="LOG4J2-542" dev="rgoers" type="fix">
-        Make Throwable transient in ThrowableProxy.
-      </action>
-      <action issue="LOG4J2-617" dev="mattsicker" type="update">
-        Update SLF4J to 1.7.7.
-      </action>
-      <action issue="LOG4J2-616" dev="mattsicker" type="update">
-        Update Jackson to 2.3.3.
-      </action>
-      <action issue="LOG4J2-440" dev="mattsicker" type="fix">
-        During shutdown, a NullPointerException could be thrown due to the NullConfiguration class no longer being
-        available to the ClassLoader.
-      </action>
-      <action issue="LOG4J2-346" dev="mattsicker" type="fix">
-        Cyclic dependency with log4j-slf4j-impl in OSGi.
-      </action>
-      <action issue="LOG4J2-345" dev="mattsicker" type="fix">
-        The log4j-1.2-api module didn't export any packages to OSGi.
-      </action>
-      <action issue="LOG4J2-605" dev="mattsicker" type="fix">
-        Password data from the NoSQL plugins no longer shows up in cleartext in debug logging.
-      </action>
-      <action issue="LOG4J2-448" dev="rgoers" type="fix" due-to="X86core">
-        A StringIndexOutOfBounds exception could occur during property substitution.
-      </action>
-      <action issue="LOG4J2-597" dev="rgoers" type="fix">
-        StatusLogger was not skipping multiple instances of the FQCN class, causing messages from classes in
-        the Verbose list to be printed.
-      </action>
-      <action issue="LOG4J2-585" dev="rgoers" type="update" due-to="Bruce Brouwer">
-        Add support for multiple parents to Markers.
-      </action>
-      <action issue="LOG4J2-595" dev="mattsicker" type="add">
-        Introduce Java annotation processor as the new plugin pre-caching mechanism. This is available in log4j-core.
-        All custom plugins created before this should be re-built against the current log4j-core.
-      </action>
-      <action issue="LOG4J2-564" dev="mattsicker" type="fix">
-          Renamed SLF4J logger class to Log4jLogger.
-      </action>
-      <action issue="LOG4J2-579" dev="ggregory" type="fix">
-          Rework Level comparison APIs.
-      </action>
-      <action issue="LOG4J2-576" dev="ggregory" type="add">
-          Add org.apache.logging.log4j.Logger.getLevel().
-      </action>
-      <action issue="LOG4J2-574" dev="rpopma" type="update">
-          Make Blocking the default WaitStrategy for Async Loggers.
-      </action>
-      <action issue="LOG4J2-555" dev="rpopma" type="update" due-to="Bruce Brouwer">
-          Introduce ExtendedLogger interface to facilitate implementing and extending Loggers.
-      </action>
-      <action issue="LOG4J2-560" dev="rgoers" type="fix">
-          SyslogAppenderTest and RFC5424LayoutTest were failing in Java 8.
-      </action>
-      <action issue="LOG4J2-561" dev="ggregory" type="update" due-to="vibin">
-        Allow spaces around commas in Configuration's package attribute.
-      </action>
-      <action issue="LOG4J2-547" dev="rgoers" type="update" due-to="Bruce Brouwer">
-        Have Logger API expose a PrintWriter instead of custom LoggerStream.
-      </action>
-      <action issue="LOG4J2-439" dev="rgoers" type="add" due-to="Bruce Brouwer">
-        Add EncodingPatternConverter to escape newlines and HTML special characters.
-      </action>
-      <action issue="LOG4J2-496" dev="rgoers" type="update">
-        Allow header and footer to be specified as lookup patterns in PatternLayout.
-      </action>
-      <action issue="LOG4J2-499" dev="rgoers"  type="fix">
-        Add equals and hashcode to Log4jLogEvent.
-      </action>
-      <action issue="LOG4J2-410" dev="rgoers" type="update" due-to="Ivlin Zeng">
-        SLf4JLogger is now Serializable.
-      </action>
-      <action issue="LOG4J2-427" dev="rgoers" type="add" due-to="Alexander Reelsen">
-        Add support for configuration via YAML.
-      </action>
-      <action issue="LOG4J2-378" dev="rgoers" type="fix">
-        Add DateLookup and ThreadContextLookup to default lookups.
-      </action>
-      <action issue="LOG4J2-468" dev="rgoers" type="update">
-        Add support to add a LoggerConfig. Document two ways to modify the configuration.
-      </action>
-      <action issue="LOG4J2-582" dev="ggregory" type="update">
-        Rename org.apache.logging.log4j.core.net.SocketServer to TCPSocketServer and refactor with UDP.
-      </action>
-      <action issue="LOG4J2-592" dev="ggregory" type="update">
-        Update Jackson to 2.3.2 from 2.2.2.
-      </action>
-    </release>
-    <release version="2.0-rc1" date="2014-02-16" description="Bug fixes and enhancements">
-      <action dev="nickwilliams" type="delete">
-        Removed the DataSourceConnectionSource and the &lt;DriverManager&gt; plugin for the JDBC Appender. It is not
-        safe to use. Please use the DataSource or factory connection sources backed by a connection pool.
-      </action>
-      <action dev="nickwilliams" type="update">
-        Renamed the org.apache.logging.log4j.core.appender.db.nosql.mongo package to
-        org.apache.logging.log4j.core.appender.db.nosql.mongodb.
-      </action>
-      <action dev="grobmeier" type="update">
-        Renamed the org.apache.logging.log4j.core.appender.db.nosql.couch package to
-        org.apache.logging.log4j.core.appender.db.nosql.couchdb.
-      </action>
-      <action issue="LOG4J2-500" dev="rpopma" type="fix">
-        (JMX - ObjectNames changed!) Unloading one web application unloads JMX MBeans for all web applications.
-      </action>
-      <action issue="LOG4J2-507" dev="ggregory" type="update">
-        Space Level numbers by 100 instead of 1.
-      </action>
-      <action issue="LOG4J2-531" dev="rpopma" type="fix" due-to="Geoff Ballinger">
-        Fixed bugs where rolled log files were overwritten by RollingFile appender with
-        composite time and size based policies.
-      </action>
-      <action issue="LOG4J2-475" dev="nickwilliams" type="fix" due-to="Matt Sicker">
-        Changed the MongoDBConnection to add a MongoDB encoding hook instead of a decoding hook.
-      </action>
-      <action issue="LOG4J2-489" dev="nickwilliams" type="fix">
-        Fixed the JPAAppender's overuse of transactions by connecting (borrowing from pool) on new write internal or on
-        flush.
-      </action>
-      <action issue="LOG4J2-457" dev="nickwilliams" type="fix">
-        Fixed failure of JDBC and JPA appender to properly release database connections by connecting (borrowing from
-        pool) on new write internal or on flush.
-      </action>
-      <action issue="LOG4J2-442" dev="nickwilliams" type="fix">
-        Fixed problem with JDBC and JPA appender connectivity in WebSphere by connecting (borrowing from pool) on new
-        write internal or on flush.
-      </action>
-      <action issue="LOG4J2-438" dev="nickwilliams" type="fix">
-        Ensured the JDBCAppender commits transactions after a single write or a flush of multiple writes.
-      </action>
-      <action issue="LOG4J2-407" dev="nickwilliams" type="fix">
-        Fixed inability to recover from lost database connection in database appenders by connecting (borrowing from
-        pool) on new write internal or on flush.
-      </action>
-      <action issue="LOG4J2-530" dev="rpopma" type="add">
-        (JMX) JMX Client GUI should dynamically update when LoggerContext MBeans are registered/unregistered in MBean
-        server.
-      </action>
-      <action issue="LOG4J2-511" dev="rpopma" type="fix" due-to="James Pretorius">
-        Stop AsyncLoggerConfig Disruptor thread(s), then AsyncAppender thread(s) first
-        before stopping other appenders.
-      </action>
-      <action issue="LOG4J2-392" dev="rpopma" type="fix" due-to="ilynaf, Andre Bogus">
-        Stop AsyncLoggerConfig Disruptor thread(s), then AsyncAppender thread(s) first
-        before stopping other appenders.
-      </action>
-      <action issue="LOG4J2-345" dev="rpopma" type="fix" due-to="Roland Weiglhofer, Matt Sicker">
-        (OSGi) logging.log4j-1.2-api doesn't export the log4j API 1.2. Dependent bundles can not be resolved.
-      </action>
-      <action issue="LOG4J2-523" dev="ggregory" type="fix">
-        LocalizedMessage serialization is broken.
-      </action>
-      <action issue="LOG4J2-385" dev="rpopma" type="fix" due-to="Ace Funk, Porfirio Partida">
-        Fixed issues with time-based file rollover (monthly, weekly, hourly and every minute).
-      </action>
-      <action issue="LOG4J2-452" dev="nickwilliams" type="fix">
-        Added a ServletContext attribute that, when set to "true", disables Log4j's auto-initialization in
-        Servlet 3.0+ web applications.
-      </action>
-      <action issue="LOG4J2-512" dev="nickwilliams" type="fix" due-to="Chandra Sekhar Kakarla, Matt Sicker">
-        Exposed Log4j web support interface and methods and the LoggerContext through ServletContext attributes
-        so that threads not affected by filters (such as asynchronous threads) can utilize the LoggerContext. Also
-        updated the Log4j filter so that it supports async.
-      </action>
-      <action issue="LOG4J2-409" dev="nickwilliams" type="fix" due-to="Frank Steinmann, Thomas Neidhart">
-        Created a utility to properly escape backslashes before creating URIs, and changed URI creation to use the
-        utility instead of instantiating URI directly.
-      </action>
-      <action issue="LOG4J2-344" dev="nickwilliams" type="fix" due-to="Keir Lawson, Tomasz Wladzinski">
-        Changed the Servlet 3.0 auto-initializer to add the filter by class to get around a WebLogic bug.
-      </action>
-      <action issue="LOG4J2-359" dev="nickwilliams" type="fix" due-to="Abhinav Shah">
-        Changed the Servlet 3.0 auto-initializer so that it does nothing in a Servlet 2.5 or older application. This
-        ensures behavioral consistency across containers. This includes additional fixes to abort initialization if a
-        duplicate filter already exists and to check the actual Servlet EFFECTIVE version.
-      </action>
-      <action issue="LOG4J2-517" dev="rpopma" type="fix">
-        Switch in log4j-1.2-api Category.getEffectiveLevel has no cases for FATAL, OFF.
-      </action>
-      <action issue="LOG4J2-41" dev="rgoers" type="update" due-to="Nick Williams">
-        Add support for custom logging levels.
-      </action>
-      <action issue="LOG4J2-406" dev="rpopma" type="fix" due-to="Kerrigan Joseph">
-        (JMX) Unregister all log4j JMX MBeans when the LoggerContext is stopped
-        to allow web application classes to be GC-ed on undeploy.
-      </action>
-      <action issue="LOG4J2-405" dev="rgoers" type="fix">
-        Configuration was being processed twice at startup.
-      </action>
-      <action issue="LOG4J2-479" dev="rpopma" type="add" due-to="MK">
-        ThreadContext now uses plain ThreadLocal by default, unless system property
-        isThreadContextMapInheritable has value "true".
-      </action>
-      <action issue="LOG4J2-398" dev="rgoers" type="fix">
-        Configure properties and setup Interpolator before processing rest of configuration.
-      </action>
-      <action issue="LOG4J2-481" dev="rgoers" type="add" due-to="Matt Sicker">
-        Add Stream interface to Loggers.
-      </action>
-      <action issue="LOG4J2-490" dev="rgoers" type="update" due-to="Matt Sicker">
-        Update EasyMock to version 3.2.
-      </action>
-      <action issue="LOG4J2-470" dev="rgoers" type="fix">
-        hostName property was not being set until after the first configuration element.
-      </action>
-      <action issue="LOG4J2-464" dev="rgoers" type="fix">
-        Support arrays as sub-elements of a JSON configuration.
-      </action>
-      <action issue="LOG4J2-492" dev="rpopma" type="fix" due-to="Shaddy Baddah, Herlani Junior">
-        (JMX) Fixed MalformedObjectNameException if context name contains '=' or newline characters.
-      </action>
-      <action issue="LOG4J2-377" dev="rpopma" type="fix" due-to="Roland Weiglhofer, Matt Sicker">
-        (OSGi) Fix NPE during shutdown.
-      </action>
-      <action issue="LOG4J2-463" dev="rpopma" type="fix" due-to="Michael Diamond, Matt Sicker">
-        Fixed documentation for MyApp example application in the Automatic Configuration section
-      </action>
-      <action issue="LOG4J2-408" dev="rpopma" type="fix" due-to="Dongqing Hu, Matt Sicker">
-        Fixed error in documentation code example in manual/eventlogging.html
-      </action>
-      <action issue="LOG4J2-451" dev="rpopma" type="fix" due-to="Vinay Pothnis, Matt Sicker">
-        Fixed typo in documentation: system property should be log4j2.loggerContextFactory
-      </action>
-      <action issue="LOG4J2-443" dev="rpopma" type="fix" due-to="Colin Froggatt, Tudor Har">
-        (JMX) Fixed issue where log4j2 LoggerContext did not show up in JMX GUI or JConsole.
-      </action>
-      <action issue="LOG4J2-485" dev="rpopma" type="fix">
-        Fixed issue where toString methods that perform logging could deadlock AsyncAppender.
-      </action>
-      <action issue="LOG4J2-445" dev="rpopma" type="fix" due-to="Anthony Baldocchi">
-        ResolverUtil cannot find packages in file URLs which include the '+' character.
-      </action>
-      <action issue="LOG4J2-430" dev="rgoers" type="fix" due-to="David Gstir">
-        Use the formatted Message in RFC5424Layout for non-StructuredDataMessages.
-      </action>
-      <action issue="LOG4J2-459" dev="rgoers" type="fix">
-        Set external context when constructing the LoggerContext.
-      </action>
-      <action issue="LOG4J2-466" dev="rpopma" type="fix" due-to="Jan Tepke">
-        Cannot load log4j2 config file if path contains plus '+' characters.
-      </action>
-      <action issue="LOG4J2-462" dev="rpopma" type="fix" due-to="Daisuke Baba">
-        Fix LogEvent to never return null Level, fixes LevelPatternConverter.format may throw NPE.
-      </action>
-      <action issue="LOG4J2-465" dev="rpopma" type="fix" due-to="Daisuke Baba">
-        Fix LogEvent to never return null Level, fixes ThresholdFilter throws NPE.
-      </action>
-      <action issue="LOG4J2-471" dev="rpopma" type="fix" due-to="Anthony Baldocchi">
-        Fixed issue where toString methods that perform logging could deadlock AsyncLogger.
-      </action>
-      <action issue="LOG4J2-482" dev="rpopma" type="add" due-to="Hongdi Ren">
-        Documentation fix: The attribute of Route to refer to an appender is "ref" not "AppenderRef".
-      </action>
-      <action issue="LOG4J2-467" dev="rpopma" type="add" due-to="Anthony Baldocchi">
-        Added option to toggle Thread name caching in AsyncLogger.
-      </action>
-      <action issue="LOG4J2-478" dev="ggregory" type="fix" due-to="Michael Friedmann.">
-        The message and ndc fields are not JavaScript escaped in JSONLayout.
-      </action>
-      <action issue="LOG4J2-455" dev="rpopma" type="fix" due-to="Robin Zhang Tao">
-        RingBufferLogEvent should return Message timestamp for TimestampMessage messages.
-      </action>
-      <action issue="LOG4J2-477" dev="rpopma" type="fix" due-to="Tal Liron">
-        NPE in ClassLoaderContextSelector.
-      </action>
-      <action issue="LOG4J2-454" dev="rpopma" type="fix" due-to="Robin Zhang Tao">
-        TimeBasedTriggeringPolicy should use event time millis.
-      </action>
-      <action issue="LOG4J2-472" dev="rpopma" type="fix" due-to="Tal Liron">
-        BaseConfiguration class does not properly implement Configuration interface.
-      </action>
-      <action issue="LOG4J2-447" dev="ggregory" type="fix" due-to="Jeff Hudren, Mark Paluch, Scott Deboy">
-        XMLLayout does not include marker name.
-      </action>
-      <action issue="LOG4J2-453" dev="rgoers" type="update">
-        Update Flume Appender to use Flume 1.4.0.
-      </action>
-      <action issue="LOG4J2-423" dev="rpopma" type="add">
-        (JMX) Added MBeans for instrumenting AsyncAppenders and AsyncLogger RingBuffers,
-        exposing queue size, remaining capacity and other attributes.
-      </action>
-      <action issue="LOG4J2-323" dev="rpopma" type="fix">
-        Resolved memory leak by releasing reference to ThreadLocal when
-        AsyncLogger is stopped.
-      </action>
-      <action issue="LOG4J2-425" dev="rpopma" type="fix">
-        Resolved memory leak by populating AsyncLoggerConfigHelper ring buffer
-        via EventTranslatorTwoArg, eliminating the need for a ThreadLocal.
-      </action>
-      <action issue="LOG4J2-420" dev="ggregory" type="add">
-        Create a lookup for resource bundle substitution.
-      </action>
-      <action issue="LOG4J2-417" dev="ggregory" type="fix">
-        Fix Event Level / LoggerConfig Level table at the architecture documentation page.
-      </action>
-      <action issue="LOG4J2-415" dev="ggregory" type="add">
-        Format log event time as UNIX time (seconds or milliseconds).
-      </action>
-      <action issue="LOG4J2-404" dev="rgoers" type="fix" due-to="Kamal Bahadur">
-        @EnterpriseNumber" was missing in the ID of structured data when RFC5424Layout is used
-      </action>
-      <action issue="LOG4J2-379" dev="rpopma" type="fix">
-        Fixed issue that prevented Log4J from working in Google App Engine.
-      </action>
-      <action issue="LOG4J2-401" dev="ggregory" type="add">
-        Configure FileAppender buffer size.
-      </action>
-      <action issue="LOG4J2-402" dev="ggregory" type="add">
-        Configure RandomAccessFileAppender buffer size.
-      </action>
-      <action issue="LOG4J2-528" dev="ggregory" type="update">
-        Rename package org.apache.logging.log4j.core.appender.rolling.helper to org.apache.logging.log4j.core.appender.rolling.action.
-      </action>
-      <action issue="LOG4J2-532" dev="ggregory" type="update">
-        Resource leak in Flume appender when it cannot create a BerkeleyDB db.
-      </action>
-      <action issue="LOG4J2-413" dev="ggregory" type="update">
-        PatternLayout option to not output ANSI escape codes if no Console is available.
-      </action>
-    </release>
-    <release version="2.0-beta9" date="2013-09-14" description="Bug fixes and enhancements">
-      <action issue="LOG4J2-317" dev="ggregory" type="update">
-        Renamed FastFileAppender and FastRollingFileAppender to RandomAccessFileAppender
-        and RollingRandomAccessFileAppender. Configurations using the Fast(Rolling)File element
-        no longer work and should be modified to use the (Rolling)RandomAccessFile element.
-      </action>
-      <action dev="nickwilliams" type="update">
-        Changed the "suppressExceptions" configuration attribute for all Appenders to "ignoreExceptions" to avoid
-        confusion with Java 7 suppressed exceptions. Also renamed the Appender#isExceptionSuppressed() method to
-        Appender#ignoreExceptions() to avoid the same confusion. All Appenders by default internally log and then ignore
-        exceptions encountered while logging. Setting "ignoreExceptions" to "false" on an Appender causes it to allow
-        exceptions to propagate to the caller. You must set "ignoreExceptions" to "false" for Appenders you are wrapping
-        in the Failover Appender.
-      </action>
-      <action dev="nickwilliams" type="update">
-        Changed the (relatively new) PatternLayout configuration attribute "suppressExceptions" to
-        "alwaysWriteExceptions" to more correctly indicate what it does. As such, the meaning of this attribute has
-        reversed (previous "true"s should become "false"s, and vice versa). Since this was an undocumented attribute up
-        until now, it's unlikely this change will affect any users.
-      </action>
-      <action issue="LOG4J2-226" dev="rgoers" type="fix">
-        Fix table of contents generation in pdf.
-      </action>
-      <action issue="LOG4J2-395" dev="rgoers" type="fix" due-to="Abhinav Shah">
-        Allow classpath scheme when specifying configuration file location as a system property.
-      </action>
-      <action issue="LOG4J2-393" dev="rgoers" type="fix">
-        Initialize PluginManager once during configuration. Move advertisement setup into BaseConfiguration.
-      </action>
-      <action issue="LOG4J2-391" dev="rgoers" type="fix" due-to="Kamal Bahadur">
-        FlumePersistentManager now handles LockConflictExceptions in Berkeley Db.
-      </action>
-      <action issue="LOG4J2-399" dev="ggregory" type="add">
-        Allow the default file rollover strategy to define the compression level.
-      </action>
-      <action issue="LOG4J2-338" dev="rgoers" type="add" due-to="Tibor Benke">
-        Add TLSAppender. Also added missing license headers to several files.
-      </action>
-      <action issue="LOG4J2-380" dev="rgoers" type="fix">
-        Use rollover date when substituting ${date} in the filePattern.
-      </action>
-      <action issue="LOG4J2-253" dev="rpopma" type="add">
-        Added FAQ page to the site.
-      </action>
-      <action issue="LOG4J2-362" dev="rpopma" type="add">
-        Add a diagram to the site (FAQ page) that explains when to use which jar.
-      </action>
-      <action issue="LOG4J2-322" dev="nickwilliams" type="fix">
-        Centralized reflective use of Reflection#getCallerClass and properly handled its instability in various versions
-        of Java.
-      </action>
-      <action issue="LOG4J2-293" dev="rgoers" type="fix">
-        Reset the Configuration if the ClassLoaderContextSelector creates a LoggerContext without a configuration
-        location and then is later provided one.
-      </action>
-      <action issue="LOG4J2-293" dev="nickwilliams" type="fix" due-to="Abhinav Shah">
-        Changed the ConfigurationFactory to recognize and properly use the classpath: URI scheme in addition to the
-        classloader: URI scheme.
-      </action>
-      <action issue="LOG4J2-359" dev="nickwilliams" type="fix" due-to="Abhinav Shah">
-        Changed the Servlet 3.0 auto-initializer so that it does nothing in a Servlet 2.5 or older application. This
-        ensures behavioral consistency across containers.
-      </action>
-      <action issue="LOG4J2-374" dev="ggregory" type="add" due-to="Tibor Benke">
-        Add more options to PatternLayout to display more detailed information about a Throwable.
-      </action>
-      <action issue="LOG4J2-383" dev="ggregory" type="add">
-        [Pattern Layout] Customize level names by length.
-      </action>
-      <action issue="LOG4J2-384" dev="ggregory" type="add">
-        [Pattern Layout] Customize level names to lower-case.
-      </action>
-      <action issue="LOG4J2-355" dev="ggregory" type="update" due-to="Tibor Benke">
-        Add support for multiple SD-ELEMENTs in a RFC 5424 syslog message.
-      </action>
-      <action dev="nickwilliams" type="update">
-        Cleaned up tests and cleared up documentation for the JPA appender following the resolution of EclipseLink
-        issue #412454.
-      </action>
-      <action issue="LOG4J2-310" dev="rpopma" type="fix" due-to="Olivier Lemasle">
-        Fixed issue where SMTPAppender did not send mails with error or fatal level without prior info event.
-      </action>
-      <action issue="LOG4J2-368" dev="rgoers" type="fix">
-        Add PatternLayout constructor to Log4j 1.2 bridge for Velocity.
-      </action>
-      <action issue="LOG4J2-333" dev="ggregory" type="fix" due-to="Hervé Boutemy">
-        Match artifact ids with Maven module names.
-      </action>
-      <action issue="LOG4J2-364" dev="rgoers" type="add" due-to="David Nault">
-        Add WebLookup to retrieve information from the ServletContext.
-      </action>
-      <action issue="LOG4J2-367" dev="ggregory" type="fix" due-to="David Parry">
-        JMS appenders send two messages for one append.
-      </action>
-      <action issue="LOG4J2-319" dev="ggregory" type="fix">
-        Double stack trace logging when using %throwable in %style and %highlight.
-      </action>
-      <action issue="LOG4J2-360" dev="rgoers" type="add">
-        Allow Plugins to have aliases.
-      </action>
-      <action issue="LOG4J2-358" dev="nickwilliams" type="fix">
-        NoSQLAppender using MongoDB provider ignores username and password attributes
-      </action>
-      <action issue="LOG4J2-356" dev="ggregory" type="add">
-        Create a JSON Layout.
-      </action>
-      <action issue="LOG4J2-343" dev="rpopma" type="fix" due-to="Henning Schmiedehausen">
-        Removed unnecessary generics from Appender interface and implementing classes.
-      </action>
-      <action issue="LOG4J2-351" dev="rpopma" type="fix" due-to="Roland Weiglhofer">
-        [OSGi] wrong Fragment-Host in manifest files.
-      </action>
-      <action issue="LOG4J2-336" dev="rpopma" type="fix" due-to="Andre Bogus">
-        AsyncLogger errors after multiple calls to LoggerContext.reconfigure().
-      </action>
-      <action issue="LOG4J2-347" dev="rpopma" type="fix" due-to="David Phillips">
-        Give the AsyncAppender thread a more descriptive name for easier debugging/profiling.
-      </action>
-      <action issue="LOG4J2-332" dev="rgoers" type="fix" due-to="Hervé Boutemy">
-        Modified documentation to refer to SLF4J Binding instead of SLF4J Bridge.
-      </action>
-      <action issue="LOG4J2-342" dev="rgoers" type="fix">
-        Ignore xml:base attributes.
-      </action>
-      <action issue="LOG4J2-309" dev="rgoers" type="fix">
-        Insure jars and distributions only have a single License and Notice file.
-      </action>
-      <action issue="LOG4J2-341" dev="ggregory" type="add">
-        Enable XInclude for XML configurations.
-      </action>
-      <action issue="LOG4J2-320" dev="ggregory" type="fix">
-        JPAAppender stops logging because META-INF/log4j-provider.properties is left open.
-      </action>
-      <action issue="LOG4J2-335" dev="rgoers" type="fix">
-        FlumePersistentManager's writer thread had high CPU usage.
-      </action>
-      <action issue="LOG4J2-331" dev="nickwilliams" type="fix">
-        Removed erroneous check for affected MongoDB records, which always returns zero on inserts.
-      </action>
-      <action issue="LOG4J2-330" dev="nickwilliams" type="fix">
-        Added a BSON Transformer so that MongoDB can persist Log4j events.
-      </action>
-      <action issue="LOG4J2-329" dev="rgoers" type="fix">
-        StatusLogger now only creates StatusData objects if they are the appropriate logging level.
-      </action>
-      <action issue="LOG4J2-328" dev="rgoers" type="fix">
-        FlumePersistentManager was calling Berkeley DB's count method too frequently.
-      </action>
-      <action issue="LOG4J2-280" dev="rpopma" type="fix">
-        Additional fix to make AsyncAppender threads daemon threads and improve their thread name.
-      </action>
-      <action issue="LOG4J2-165" dev="rgoers" type="fix">
-        The slf4j-ext jar is now an optional dependency of the SLF4J bridge.
-      </action>
-      <action issue="LOG4J2-318" dev="rgoers" type="update">
-        Allow shutdown hook to be disabled in the configuration.
-      </action>
-      <action issue="LOG4J2-166" dev="rgoers" type="fix">
-        RoutingAppender's default Route can now be an appender reference.
-      </action>
-      <action issue="LOG4J2-313" dev="rgoers" type="add" due-to="Woonsan Ko">
-        Add JNDILookup plugin.
-      </action>
-      <action issue="LOG4J2-299" dev="rgoers" type="fix">
-        Add getThrowable method to ThrowableProxy.
-      </action>
-      <action issue="LOG4J2-216" dev="rgoers" type="fix">
-        ThrowableProxy no longer extends Throwable.
-      </action>
-      <action issue="LOG4J2-311" dev="rpopma" type="fix">
-        Synchronized flush() and close() methods in the XxxFileManager and OutputStreamManager classes.
-      </action>
-      <action issue="LOG4J2-312" dev="ggregory" type="update">
-        XML layout improvements (compact vs. pretty, namespace, namespace prefix, root element).
-      </action>
-      <action issue="LOG4J2-388" dev="ggregory" type="update">
-        Update Java Mail dependency to 1.5.0 from 1.4.7.
-      </action>
-      <action issue="LOG4J2-325" dev="ggregory" type="update">
-        Update JDBC tests to use H2 database 1.3.173 from 1.3.172.
-      </action>
-      <action issue="LOG4J2-366" dev="ggregory" type="update">
-        Update commons-logging to 1.1.3 from 1.1.1.
-      </action>
-      <action issue="LOG4J2-390" dev="ggregory" type="update">
-        Update HSQLDB dependency to 2.3.0 from 2.2.9.
-      </action>
-      <action issue="LOG4J2-308" dev="rpopma" type="update">
-        Clarified which library versions were used in Async Loggers performance test.
-      </action>
-      <action issue="LOG4J2-307" dev="rpopma" type="update">
-        Updated Async Loggers' LMAX Disruptor library from 3.0.1 to 3.2.0.
-      </action>
-      <action issue="LOG4J2-306" dev="ggregory" type="update">
-        Update JSON Jackson library to 2.2.2 from 2.2.1.
-      </action>
-      <action issue="LOG4J2-387" dev="ggregory" type="update">
-        Update Jackson dependency to 1.9.13 from 1.9.11.
-      </action>
-      <action issue="LOG4J2-305" dev="ggregory" type="add">
-        Ease porting from 1.x Logger.getRootLogger(): add LogManager.getRootLogger().
-      </action>
-      <action issue="LOG4J2-304" dev="rpopma" type="fix">
-        Fixed Async Loggers memory leak.
-      </action>
-      <action issue="LOG4J2-291" dev="nickwilliams" type="fix">
-        Fixed JDBC, JPA, and NoSQL appenders so that the failover appender properly fails over on error.
-      </action>
-      <action dev="nickwilliams" type="update">
-        Improved site by adding quick jump-off page and menu for Javadoc links for all components.
-      </action>
-      <action issue="LOG4J2-397" dev="ggregory" type="fix" due-to="Yonatan Graber">
-        Logger.info(Message) Javadoc is incorrect.
-      </action>
-    </release>
-    <release version="2.0-beta8" date="2013-07-10" description="Bug fixes and enhancements">
-      <action issue="LOG4J2-270" dev="nickwilliams" type="update">
-        Improved logging initialization in Servlet containers, especially Servlet 3.0 and newer where Log4j now
-        initializes and deinitializes automatically with no deployment descriptor configuration.
-      </action>
-      <action issue="LOG4J2-302" dev="rpopma" type="fix">
-        Added toString methods to ThreadContextStack/Map implementation classes.
-      </action>
-      <action issue="LOG4J2-301" dev="rgoers" type="update">
-        Add printf methods to Logger API.
-      </action>
-      <action issue="LOG4J2-300" dev="rgoers" type="fix">
-        WriterThread was ending when no agents are available which caused an OutOfMemoryError.
-      </action>
-      <action issue="LOG4J2-282" dev="rgoers" type="update">
-        Allow the default status level to be specified as a system property.
-      </action>
-      <action issue="LOG4J2-278" dev="rgoers" type="fix">
-        Filter calls from Avro or Flume to be ignored by the FlumeAppender.
-      </action>
-      <action issue="LOG4J2-279" dev="rgoers" type="fix">
-        FlumePersistentManager now calls Berkeley DB from threads to avoid encountering interrupts in the application.
-      </action>
-      <action issue="LOG4J2-296" dev="ggregory" type="fix">
-        Wasted work in FlumePersistentManager.createManager.
-      </action>
-      <action issue="LOG4J2-297" dev="ggregory" type="fix">
-        Wasted work in TestConfigurator.testEnvironment.
-      </action>
-      <action issue="LOG4J2-298" dev="ggregory" type="fix">
-        Wasted work in StyleConverterTest.setupClass.
-      </action>
-      <action issue="LOG4J2-280" dev="rpopma" type="fix">
-        AsyncLogger threads are now daemon threads and won't prevent the JVM from shutting down anymore.
-      </action>
-      <action issue="LOG4J2-295" dev="rpopma" type="fix">
-        Fast(Rolling)FileAppender now correctly handles messages exceeding the buffer size.
-      </action>
-      <action issue="LOG4J2-271" dev="rpopma" type="fix">
-        FastRollingFileAppender with TimeBasedTriggeringPolicy now works correctly if append=false.
-      </action>
-      <action issue="LOG4J2-267" dev="rpopma" type="fix">
-        FastRollingFileAppender with TimeBasedTriggeringPolicy now works correctly if append=false.
-      </action>
-      <action issue="LOG4J2-292" dev="rpopma" type="fix">
-        Fast(Rolling)FileAppender now correctly appends to (does not overwrite) existing file.
-      </action>
-      <action issue="LOG4J2-294" dev="rgoers" type="update">
-        LogManager.getLogger can now be called without a logger name or with a null logger name.
-      </action>
-      <action issue="LOG4J2-289" dev="rgoers" type="fix">
-        Upgrade javadoc plugin to 2.9.1 to fix javadoc security issue.
-      </action>
-      <action issue="LOG4J2-288" dev="gregory" type="update">
-        Update JUnit to 4.11 from 4.7.
-      </action>
-      <action issue="LOG4J2-286" dev="gregory" type="update">
-        Update test H2 JDBC driver to 1.172 from 1.171.
-      </action>
-      <action issue="LOG4J2-285" dev="gregory" type="update">
-        Update Jansi jar to 1.11 from 1.9.
-      </action>
-      <action issue="LOG4J2-284" dev="gregory" type="update">
-        Update Log4j 1 dependency to 1.2.17 from 1.2.16.
-      </action>
-      <action issue="LOG4J2-386" dev="gregory" type="update">
-        Update NoSQL dependencies: lightcouch 0.0.6 from 0.0.5, mongodb 2.11.2 from 2.11.1.
-      </action>
-      <action issue="LOG4J2-283" dev="gregory" type="update">
-        Remove dependency on Apache ORO jar.
-      </action>
-      <action issue="LOG4J2-277" dev="gregory" type="update">
-        Wasted work in RollingAppenderSizeTest.testAppender() and others.
-      </action>
-      <action issue="LOG4J2-139" dev="rgoers" type="fix">
-        Fix NullPointerException (regression due to fix for LOG4J2-228)
-      </action>
-      <action issue="LOG4J2-168" dev="rgoers" type="update" due-to="Scott Severtson">
-        Include arbitrary message fields in RFC-5424 structured data.
-      </action>
-      <action issue="LOG4J2-275" dev="rgoers" type="fix">
-        FlumeAvroManager fails to notify client of failing event if Flume RPCClient cannot be created.
-      </action>
-      <action issue="LOG4J2-274" dev="ggregory" type="update">
-        Wasted work in UUIDUtil initialization.
-      </action>
-      <action issue="LOG4J2-273" dev="ggregory" type="update">
-        Wasted work in XMLLayout.toSerializable().
-      </action>
-    </release>
-    <release version="2.0-beta7" date="2013-06-01" description="Bug fixes and enhancements">
-      <action issue="LOG4J2-249" dev="rgoers" type="update">
-        Allow context parameters in Log4jContextListener to include properties.
-      </action>
-      <action issue="LOG4J2-263" dev="rgoers" type="fix">
-        Do not allow a charset on RFC5424Layout - use UTF-8.
-      </action>
-      <action issue="LOG4J2-242" dev="rgoers" type="fix">
-        StringFormattedMessage and MessageFormatMessage now will accept a Throwable as their last argument and
-        pass it on.
-      </action>
-      <action issue="LOG4J2-243" dev="rgoers" type="update">
-        Allow custom LogEventFactories.
-      </action>
-      <action issue="LOG4J2-262" dev="rgoers" type="update" due-to="Edward Sargisson">
-        Add support for interceptors in the embedded Flume Appender.
-      </action>
-      <action issue="LOG4J2-269" dev="rgoers" type="fix">
-        Use transaction when batch size is 1.
-      </action>
-      <action issue="LOG4J2-268" dev="rgoers" type="fix">
-        Add guid to FlumeEvent headers for non-Map Messages.
-      </action>
-      <action issue="LOG4J2-246" dev="rgoers" type="fix">
-        Data buffer is reset in finally clause.
-      </action>
-      <action issue="LOG4J2-228" dev="rgoers" type="fix">
-        UDP now sends one event per packet.
-      </action>
-      <action dev="rpopma" type="update">
-        Method name changes in interface org.apache.logging.log4j.spi.ThreadContextMap:
-        getContext() to getCopy(), get() to getImmutableMapOrNull().
-      </action>
-      <action issue="LOG4J2-154" dev="rpopma" type="update">
-        Improve ThreadContext performance with copy-on-write map and stack.
-      </action>
-      <action issue="LOG4J2-261" dev="rgoers" type="fix" due-to="Edward Sargisson">
-        Add missing "not" to error message.
-      </action>
-      <action issue="LOG4J2-10" dev="rgoers" type="add" due-to="Timothy Ward">
-        Break up core into multiple osgi jars.
-      </action>
-      <action issue="LOG4J2-223" dev="rgoers" type="fix">
-        Remove LoggerContext when LoggerContext is stopped.
-      </action>
-      <action issue="LOG4J2-260" dev="ggregory" type="fix">
-        XML layout does not specify charset in content type.
-      </action>
-      <action issue="LOG4J2-259" dev="ggregory" type="fix">
-        HTML layout does not specify charset in content type.
-      </action>
-      <action issue="LOG4J2-258" dev="ggregory" type="fix">
-        HTML layout does not output meta element for charset.
-      </action>
-      <action issue="LOG4J2-257" dev="ggregory" type="fix">
-        XML layout ignores charset for the XML processing instruction's encoding attribute.
-      </action>
-      <action issue="LOG4J2-255" dev="rpopma" type="fix">
-        Multi-byte character strings are now assumed to be in the platform default encoding, not UTF-8.
-      </action>
-      <action issue="LOG4J2-254" dev="rgoers" type="fix">
-        Mark OutputStream in OutputStreamManager as volatile. Mark header and footer as final.
-      </action>
-      <action issue="LOG4J2-244" dev="rgoers" type="fix">
-        Rewrite Appender was ignoring filters on referenced appenders.
-      </action>
-      <action issue="LOG4J2-245" dev="rgoers" type="fix">
-        Avoid EmptyStack exception if getCallerClass and SecurityManager are not available.
-      </action>
-      <action issue="LOG4J2-229" dev="ggregory" type="add" due-to="Nick Williams">
-        New JDBC, JPA, and NoSQL database Appenders.
-      </action>
-      <action issue="LOG4J2-247" dev="ggregory" type="fix">
-        SocketServer.isActive should be volatile because it is accessed from different threads.
-      </action>
-      <action issue="LOG4J2-251" dev="sdeboy" type="add">
-        Provide configuration information (location, content type, content if possible) via a registered Advertiser.
-      </action>
-    </release>
-    <release version="2.0-beta6" date="2013-05-05" description="Bug fixes and enhancements">
-      <action issue="LOG4J2-231" dev="rgoers" type="fix">
-        Logger.getParent() was not returning the correct Logger.
-      </action>
-      <action issue="LOG4J2-201" dev="rgoers" type="fix">
-        Renamed Plugin annotation attribute from "type" to "category".
-      </action>
-      <action issue="LOG4J2-237" dev="rpopma" type="update">
-        Moved JMX Client GUI classes into separate jmx-gui submodule.
-      </action>
-      <action issue="LOG4J2-219" dev="rpopma" type="fix" due-to="Peter DePasquale">
-        Fix: install default root logger if not configured (this is unchanged),
-        but make sure to include configured named loggers. Clarified documentation.
-      </action>
-      <action issue="LOG4J2-159" dev="rgoers" type="fix">
-        Use OSGi version format in Fragment-Host
-      </action>
-      <action issue="LOG4J2-234" dev="rgoers" type="fix">
-        RegexFilter threw a NullPointerException when used as a context-wide filter.
-      </action>
-      <action issue="LOG4J2-192" dev="rgoers" type="fix">
-        Add support for interpolating Environment variables when processing the configuration.
-      </action>
-      <action issue="LOG4J2-235" dev="rpopma" type="fix" due-to="Sebastian Oerding">
-        Removed dependency on tools jar from core module, made jconsole dependency optional.
-      </action>
-      <action issue="LOG4J2-233" dev="rpopma" type="fix">
-        Fixed link to log4j-user mailing list.
-      </action>
-      <action issue="LOG4J2-230" dev="rpopma" type="update" due-to="Wojciech Zaręba">
-        Improved error reporting when misconfigured.
-      </action>
-      <action issue="LOG4J2-222" dev="rgoers" type="fix" due-to="Steven Yang">
-        Disruptor will now shutdown during Tomcat shutdown.
-      </action>
-      <action dev="rpopma" type="update">
-        Renamed AsynchAppender to AsyncAppender. Plugin name became Async (was Asynch).
-      </action>
-      <action dev="rpopma" type="update">
-        Removed CheckStyle false positives for NewlineAtEndOfFile and whitespace following '*' at end of line in javadoc.
-      </action>
-      <action dev="rpopma" type="update">
-        Moved Clock interface to package org.apache.logging.log4j.core.helpers.
-      </action>
-      <action issue="LOG4J2-225" dev="rpopma" type="update">
-        Documentation updates to clarify use and impact of location in pattern layouts.
-      </action>
-      <action issue="LOG4J2-224" dev="rgoers" type="fix">
-        The FlumeAppender failed to start if the Flume RPCClient could not connect to any Flume agents.
-      </action>
-      <action issue="LOG4J2-223" dev="rgoers" type="fix">
-        Fix LoggerContext start and stop to eliminate IllegalStateException and NoClassDefFound errors.
-      </action>
-      <action issue="LOG4J2-221" dev="rgoers" type="fix" due-to="Nick Williams">
-        Remove hundreds of compiler warnings.
-      </action>
-      <action issue="LOG4J2-215" dev="rpopma" type="fix">
-        Various small documentation fixes.
-      </action>
-      <action issue="LOG4J2-217" dev="rpopma" type="fix" due-to="Fabien Sanglard">
-        Ensure PluginManager streams are always closed.
-      </action>
-    </release>
-    <release version="2.0-beta5" date="2013-04-20" description="Bug fixes and enhancements">
-      <action issue="LOG4J2-205" dev="rgoers" type="fix">
-        Fix deadlock in SocketAppender. Added option to not wait for socket reconnect.
-      </action>
-      <action issue="LOG4J2-207" dev="rgoers" type="add" due-to="Remko Popma">
-        Add JMX support.
-      </action>
-      <action issue="LOG4J2-211" dev="rgoers" type="fix" due-to="Nick Williams">
-        Removing extra spaces in entry and exit method output.
-      </action>
-      <action issue="LOG4J2-214" dev="rgoers" type="update" due-to="Remko Popma">
-        Async documentation update.
-      </action>
-      <action issue="LOG4J2-212" dev="rgoers" type="fix">
-        Loggers without a "." had no parent logger.
-      </action>
-      <action issue="LOG4J2-208" dev="rgoers" type="update" due-to="Remko Popma">
-        Move async subproject into core.
-      </action>
-      <action issue="LOG4J2-212" dev="rgoers" type="fix">
-        Call LoggerContext.stop when the application is shutdown.
-      </action>
-      <action issue="LOG4J2-210" dev="rgoers" type="fix" due-to="Arkin Yetis">
-        MapMessage was not enclosing key value in quotes when generating XML.
-      </action>
-      <action issue="LOG4J2-198" dev="rgoers" type="fix">
-        FlumeAvroManager now uses Flume RPCClient.
-      </action>
-      <action issue="LOG4J2-196" dev="rgoers" type="fix">
-        FlumeAvroManager now uses Flume RPCClient.
-      </action>
-      <action issue="LOG4J2-207" dev="ggregory" type="fix">
-        Use the Maven group ID org.apache.logging.log4j for all artifacts.
-      </action>
-      <action issue="LOG4J2-187" dev="rgoers" type="add" due-to="Nick Williams">
-        Add tag library.
-      </action>
-      <action issue="LOG4J2-195" dev="rgoers" type="fix" due-to="Remko Popma">
-        Unit tests now create files in the target directory.
-      </action>
-      <action issue="LOG4J2-193" dev="rgoers" type="fix" due-to="Remko Popma">
-        RollingFastFileAppender (in log4j-async) did not roll over.
-      </action>
-      <action issue="LOG4J2-199" dev="rgoers" type="fix" due-to="Remko Popma">
-        Highlight subprojects in sub-navigation.
-      </action>
-      <action issue="LOG4J2-200" dev="rgoers" type="fix" due-to="Remko Popma">
-        LoggerContext method renamed to removeFilter from removeFiler.
-      </action>
-      <action issue="LOG4J2-194" dev="rgoers" type="fix" due-to="Remko Popma">
-        ThrowableFormatOptionsTest failed on Windows due to CR/LF issue.
-      </action>
-      <action issue="LOG4J2-190" dev="rgoers" type="fix" due-to="Werner">
-        BaseConfiguration addLoggerAppender saved appender using the Logger name.
-      </action>
-      <action issue="LOG4J2-160" dev="rgoers" type="update" due-to="Joanne Polsky">
-        Move Throwable pattern converter options processing to ThrowableFormatOptions class.
-      </action>
-      <action issue="LOG4J2-157" dev="rgoers" type="update" due-to="Remko Popma">
-        Allowed Loggers access to the properties in the LoggerConfig.
-      </action>
-      <action issue="LOG4J2-153" dev="rgoers" type="update" due-to="Remko Popma">
-        Added ability to include or exclude location information.
-      </action>
-      <action issue="LOG4J2-151" dev="rgoers" type="update" due-to="Remko Popma">
-        Allow Logger and LoggerContext to be subclassed.
-      </action>
-      <action issue="LOG4J2-164" dev="rgoers" type="add" due-to="Remko Popma">
-        Add methods is/setEndOfBatch to LogEvent.
-      </action>
-      <action issue="LOG4J2-163" dev="rgoers" type="add" due-to="Remko Popma">
-        Add support for asynchronous loggers.
-      </action>
-      <action issue="LOG4J2-189" dev="rgoers" type="fix" due-to="Werner">
-        The blocking parameter did not work properly on AsynchAppender.
-      </action>
-      <action issue="LOG4J2-188" dev="rgoers" type="fix" due-to="Werner">
-        AppenderRefs on AsynchAppender didn't support the level and filter elements.
-      </action>
-      <action issue="LOG4J2-176" dev="rgoers" type="fix" due-to="Remko Popma">
-        Avoid IllegalArgumentException in AsynchAppender.
-      </action>
-      <action issue="LOG4J2-179" dev="ggregory" type="add">
-        Add Logger interface APIs to log at given levels.
-      </action>
-      <action issue="LOG4J2-181" dev="rgoers" type="fix">
-        OutputStreamManager now adds the layout header whenever the OutputStream is set.
-      </action>
-      <action issue="LOG4J2-177" dev="rgoers" type="fix" due-to="Remko Popma">
-        Fix NullPointerException in DatagramOutputStream when flush is called from multiple threads.
-      </action>
-      <action dev="rgoers" type="add">
-        Added FlumePersistentManager which writes to BerkeleyDB and then writes to Flume asynchronously.
-      </action>
-      <action issue="LOG4J2-175" dev="sdeboy" type="fix">
-        Plugin cache should be reset when addPackages is called.
-      </action>
-      <action issue="LOG4J2-155" dev="sdeboy" type="add">
-        Expose file appender configuration details via an advertisement mechanism.
-      </action>
-      <action issue="LOG4J2-159" dev="rgoers" type="fix" due-to="Jan Winter">
-        Add Fragment-Host to MANIFEST.MF for log4j-core.
-      </action>
-      <action issue="LOG4J2-167" dev="rgoers" type="fix">
-        Configurator throws a ClassCastException if LogManager returns a SimpleLoggerContext.
-      </action>
-      <action issue="LOG4J2-169" dev="rgoers" type="fix">
-        ConfigurationFactory was adding factories on every call.
-      </action>
-      <action issue="LOG4J2-161" dev="rgoers" type="fix">
-        Modify ClassLoaderContextSelector to use the first ClassLoader in the child parent hierarchy that
-        has a Context with a configuration to allow JSPs to use the WebApp's context and configuration.
-      </action>
-      <action issue="LOG4J2-158" dev="rgoers" due-to="Scott Severtson">
-        Add RFC 5424 compliant escaping rules to RFC5424Layout.
-      </action>
-    </release>
-    <release version="2.0-beta4" date="2013-01-28" description="Bug fixes and enhancements">
-      <action issue="LOG4J2-156" dev="ggregory" type="fix" due-to="Andreas Born">
-        LocalizedMessageTest fails on linux system.
-      </action>
-      <action issue="LOG4J2-152" dev="rgoers" type="fix" due-to="Remko Popma">
-        RollingFileAppender's FileRenameAction was throwing a NullPointerException if no directory was specified
-        on the target file name.
-      </action>
-      <action issue="LOG4J2-150" dev="rgoers" type="fix">
-        Convert all System.getProperty calls to use PropertiesUtil to suppress SecurityExceptions.
-      </action>
-      <action issue="LOG4J2-147" dev="rgoers" type="fix" due-to="William Burns">
-        ThreadContextMapFilter was matching on the key instead of the value of the key.
-      </action>
-      <action dev="rgoers" type="fix">
-        Allow FlumeAvroManager to initialize even if it cannot connect to an agent.
-      </action>
-      <action issue="LOG4J2-149" dev="rgoers" type="fix" due-to="Scott Severtson">
-        SMTPAppender will only cache filtered events.
-      </action>
-      <action issue="LOG4J2-145" dev="ggregory" type="fix">
-        Add missing serial version IDs.
-      </action>
-      <action issue="LOG4J2-144" dev="ggregory" type="fix">
-        NullPointerException in RFC5424Layout.
-      </action>
-      <action issue="LOG4J2-143" dev="rgoers" type="fix">
-        MessagePatternConverter now returns "null" if the log message is null.
-      </action>
-      <action issue="LOG4J2-142" dev="rgoers" type="fix">
-        Serialized LogEvents were not reset in the output stream causing them to deserialize incorrectly.
-      </action>
-      <action issue="LOG4J2-139" dev="rgoers" type="fix">
-        Fix null pointer exception in SocketAppender if no protocol is specified. The protocol will default
-        to TCP for the SocketAppender and UDP for the SyslogAppender.
-      </action>
-      <action dev="rgoers" type="add">
-        Added Log4j 2 to SLF4J adapter.
-      </action>
-      <action issue="LOG4J2-140" dev="ggregory" type="fix" due-to="Joern Huxhorn">
-        Typo in documentation of SocketAppender.
-      </action>
-      <action issue="LOG4J2-137" dev="rgoers" type="fix">
-        Fix hang in Dumbster SMTP test server.
-      </action>
-      <action issue="LOG4J2-136" dev="rgoers" type="update" due-to="Scott Severtson">
-        Allow newlines to be escaped in Syslog and RFC5424 layouts. Allow Throwables to be included in
-        the output from RFC5424Layout.
-      </action>
-      <action issue="LOG4J2-131" dev="rgoers" type="add" due-to="Scott Severtson">
-        Add SMTPAppender.
-      </action>
-      <action issue="LOG4J2-130" dev="rgoers" type="fix">
-        PatternLayout should format throwables without requiring a converter.
-      </action>
-      <action dev="rgoers" type="add">
-        Added hostName and contextName to property map.
-      </action>
-      <action issue="LOG4J2-135" dev="ggregory" type="fix" due-to="Ingo Feltes">
-        BaseConfiguration does not close the first appender.
-      </action>
-      <action dev="rgoers" type="add">
-        Add MessageFormatMessage and FormattedMessage.
-      </action>
-      <action issue="LOG4J2-134" dev="ggregory" type="add">
-        Use %red, %white, %blue, and so on in the console appender.
-      </action>
-      <action issue="LOG4J2-133" dev="ggregory" type="add">
-        Allow custom message creation via a message factory.
-      </action>
-      <action issue="LOG4J2-132" dev="ggregory" type="fix">
-        AbstractLogger.catching(Throwable) checks for DEBUG level but logs at ERROR level.
-      </action>
-      <action issue="LOG4J2-129" dev="rgoers" type="fix">
-        RoutingAppender was only creating a single appender for the default Route.
-      </action>
-      <action issue="LOG4J2-126" dev="rgoers" type="fix">
-        Allow JMS appenders to recover if the queue or topic is unavailable.
-      </action>
-      <action issue="LOG4J2-128" dev="rgoers" type="update">
-        Add follow attribute to Console Appender.
-      </action>
-      <action issue="LOG4J2-127" dev="rgoers" type="fix">
-        AbstractLogger methods were not passing Markers to the isEnabled methods.
-      </action>
-      <action dev="rgoers" type="add">
-        Added Flume Appender samples.
-      </action>
-      <action issue="LOG4J2-122" dev="rgoers" type="update">
-        Add unit test to verify exceptions are thrown when the socket connection fails.
-      </action>
-      <action issue="LOG4J2-125" dev="rgoers" type="fix">
-        JMSQueue and JMSTopic Appenders did not allow name to be specified.
-      </action>
-      <action issue="LOG4J2-111" dev="rgoers" type="fix">
-        Enhanced javadoc copyright statement.
-      </action>
-      <action issue="LOG4J2-110" dev="rgoers" type="update">
-        Renamed log4j12-api to log4j-1.2-api.
-      </action>
-      <action issue="LOG4J2-120" dev="rgoers" type="fix">
-        TCPSocketManager would fail if the initial connection could not be established.
-      </action>
-      <action issue="LOG4J2-119" dev="rgoers" type="fix">
-        A broken socket connection would cause the TCPSocketManager to continuously reconnect.
-      </action>
-      <action issue="LOG4J2-123" dev="rgoers" type="fix" due-to="Olivier Lamy">
-        The example for ThreadContextMapFilter was incorrect.
-      </action>
-      <action issue="LOG4J2-116" dev="rgoers" type="fix">
-        File renaming was using the wrong date value. Enhanced DefaultRolloverStrategy to store newest files in
-        highest index as well as lowest.
-      </action>
-      <action issue="LOG4J2-115" dev="rgoers" type="fix">
-        ThreadContext Map elements with null values are now ignored when constructing a Flume event and in the
-        RFC5424 Layout.
-      </action>
-      <action issue="LOG4J2-113" dev="rgoers" type="fix">
-        StructuredDataFilter createFilter was annotated with PluginAttr instead of PluginElement for the
-        KeyValuePairs.
-      </action>
-      <action issue="LOG4J2-114" dev="rgoers" type="fix" due-to="Arkin Yetis">
-        StructuredDataMessage was validating the length of the values in the event Map instead of the lengths
-        of the keys.
-      </action>
-    </release>
-    <release version="2.0-beta3" date="2012-11-11" description= "Bug fixes and enhancements">
-      <action issue="LOG4J2-108" dev="rgoers" type="fix">
-        Fix NullPointerException in ClassLoaderContextSelector when no class is returned from
-        the SecurityManager.
-      </action>
-      <action issue="LOG4J2-105" dev="rgoers" type="update">
-        Add ability to customize the names of the Levels in the LevelPatternConverter.
-      </action>
-      <action issue="LOG4J2-107" dev="rgoers" type="fix">
-        PatternParser was not properly handling adjacent nested options
-      </action>
-      <action issue="LOG4J2-95" dev="rgoers" type="fix">
-        Add support for loading plugins inside the OSGi bundle.
-      </action>
-      <action issue="LOG4J2-85" dev="rgoers" type="update">
-        Add ThreadContext.push(String format, Object... args)
-      </action>
-      <action issue="LOG4J2-103" dev="rgoers" type="fix" due-to="Das Archive">
-        The LogEvent was wrapping a ThrowableProxy with another ThrowableProxy when deserializing.
-      </action>
-      <action dev="rgoers" type="update">
-        Created combined jar to combine API and Core contents for users who only want the Log4j implementation.
-      </action>
-      <action issue="LOG4J2-104" dev="rgoers" type="fix">
-        Convert LogManager binding to use "regular" java properties instead of XML properties to workaround a
-        bug in Oracle's xmlparserv2 jar.
-      </action>
-      <action issue="LOG4J2-28" dev="rgoers" type="add">
-        Added PropertiesRewritePolicy and ability to define properties on a Logger.
-      </action>
-      <action issue="LOG4J2-87" dev="rgoers" type="update">
-        Build pdf of user's guide.
-      </action>
-      <action issue="LOG4J2-29" dev="rgoers" type="update">
-        Added font and fontSize parameters to HTMLLayout. Replace newlines in message with br tag.
-      </action>
-      <action issue="LOG4J2-55" dev="rgoers" type="add">
-        Added ability to configure from an InputSource.
-      </action>
-      <action issue="LOG4J2-102" dev="rgoers" type="fix" due-to="Emanuele Colombo">
-        The Facility value was being improperly calculated.
-      </action>
-      <action issue="LOG4J2-101" dev="rgoers" type="fix" due-to="Emanuele Colombo">
-        A NullPointerException would occur if no format value was passed to the SyslogAppender.
-      </action>
-      <action issue="LOG4J2-99" dev="rgoers" type="fix" due-to="Das Archive">
-        MapRewritePolicy had an extra call to putAll that caused updates to behave like adds.
-      </action>
-      <action dev="rgoers" type="fix">
-        Avoid NPE when duplicate LoggerContextFactorys are present. Allow factories to specify a weight to allow
-        real implementations to outrank test implementations. Provide a simple default LoggerContextFactory.
-      </action>
-      <action issue="LOG4J2-97" dev="rgoers" type="fix">
-        Added several missing classes and methods for Log4j 1.x compatibility.
-      </action>
-      <action issue="LOG4J2-94" dev="rgoers" type="fix" due-to="Denis Treskunov">
-        Interpolator was not stripping Lookup key separator when trying to locate the default value for a variable.
-      </action>
-      <action dev="rgoers" type="fix">
-        Log4j 1.2 Category.forcedLog was wrapping the message with an ObjectMessage even if the parameter was an
-        ObjectMessage.
-      </action>
-    </release>
-    <release version="2.0-beta2" date="2012-10-07" description="Bug fixes and enhancements">
-      <action dev="rgoers" type="update">
-        Made ParameterizedMessage, StringFormattedMessage and ThreadDumpMessage immutable. LocalizedMessage is
-        immutable except that it will be updated with the logger name when it is added to the LogEvent.
-      </action>
-      <action dev="rgoers" type="fix">
-        DefaultConfiguration was not starting the Console Appender.
-      </action>
-      <action issue="LOG4J2-35" dev="rgoers" type="add">
-        Add interval and modulate options to TimeBasedTriggeringPolicy to allow more fine-grained control of
-        when file rolling should occur.
-      </action>
-      <action issue="LOG4J2-58" dev="rgoers" type="add">
-        Add support for filtering packages from stack traces.
-      </action>
-      <action issue="LOG4J2-84" dev="rgoers" type="add">
-        If system property "disableThreadContextStack" is set pushes to the ThreadContext will be ignored. If
-        system property "disableThreadContext" is set both puts and pushes will be ignored.
-      </action>
-      <action issue="LOG4J2-83" dev="rgoers" type="add">
-        If system property "disableThreadContextMap" is set puts to the ThreadContext will be ignored. If
-        system property "disableThreadContext" is set both puts and pushes will be ignored.
-      </action>
-      <action dev="rgoers" type="add">
-        Add support for ANSI colors by adding the highlight and style pattern converters. Fix pattern
-        parsing to allow nested patterns.
-      </action>
-      <action issue="LOG4J2-92" dev="rgoers" type="fix">
-        Converted DynamicThresholdFilter to use KeyValuePair. Fixed bugs in the Map-based filters
-        to allow declaration of multiple values for a key to match the documentation.
-      </action>
-      <action issue="LOG4J2-88" dev="rgoers" type="fix">
-        Many logging methods in AbstractLogger were set to an incorrect logging level. catching was
-        using the THROWING marker and was set to debug instead of error.
-      </action>
-      <action dev="rgoers" type="add">
-        Allow the status logging to be directed to stderr or to a file.
-      </action>
-      <action issue="LOG4J2-91" dev="rgoers" type="fix">
-        Log4j 1.2 adapter's Category class was missing 3 log methods.
-      </action>
-      <action issue="LOG4J2-84" dev="rgoers" type="fix">
-        If the ThreadContext stack is empty the LogEvent will contain a null value to reduce the overhead of
-        creating log events and in the size of the serialized object. Changed the ThreadContext stack to use
-        a custom stack interface instead of java.util.Stack as that class is overly heavy. This change will
-        cause an API incompatibility.
-      </action>
-      <action issue="LOG4J2-83" dev="rgoers" type="fix">
-        If the ThreadContext map is empty the LogEvent will contain a null value to reduce the overhead of creating
-        log events and in the size of the serialized object.
-      </action>
-      <action dev="rgoers" type="add">
-        Add getFormats to MultiformatMessage and allow StructuredDataMessage to format as XML.
-      </action>
-      <action issue="LOG4J2-90" dev="rgoers" type="fix">
-        Add documentation on client vs server mode to performance page.
-      </action>
-      <action dev="rgoers" type="fix">
-        Move variable substitution from PatternLayout to appropriate converters to improve performance.
-      </action>
-    </release>
-    <release version="2.0-beta1" date="2012-09-18" description="Bug fixes and enhancements">
-      <action dev="rgoers" type="add">
-        Added AsynchAppender.
-      </action>
-      <action issue="LOG4J-81" dev="rgoers" type="fix">
-        PatternLayout was not honoring format modifiers.
-      </action>
-      <action dev="rgoers" type="fix">
-        Created web module to allow web applications to include the Log4j context listener in WEB-INF/lib even if
-        Log4j is in the container's class path. Allow locating the LoggerContext to include the ClassLoader. Updated
-        the Loader utility to always choose the child ClassLoader. Verified in Jboss 5 and Tomcat.
-      </action>
-      <action issue="LOG4J2-82" dev="rgoers" type="fix">
-        MarkerFilter called MarkerManager.getMarker causing the Marker to be created during the processing of the
-        configuration. This prevents the application from creating the Marker with any parents. MarkerWrapper in
-        SLF4J-impl was getting a ClassCastException in instanceOf because the Marker isn't a MarkerWrapper.
-      </action>
-      <action issue="LOG4J2-80" dev="rgoers" type="fix" due-to="Oliver Lamy">
-        Allow Log4j 2 to be used as the implementation with SLF4J and SLF4J's jcl-over-slf4j by adding filtering
-        to the log method in SLF4JLogger.
-      </action>
-      <action issue="LOG4J2-78" dev="rgoers" type="fix">
-        LogFactoryImpl.setAttribute in the Commons Logging bridge got a NullPointerException when passed a null value.
-        It will now remove the attribute.
-      </action>
-      <action issue="LOG4J2-77" dev="rgoers" type="fix">
-        RoutingAppender was calling the stop method for each of its referenced Appenders and was calling
-        the stop method of the default Appender a second time. It will now only call the stop method of
-        Appenders it creates.
-      </action>
-      <action issue="LOG4J2-76" dev="rgoers" type="fix">
-        RewriteAppender was calling the stop method of the referenced appender causing the referenced appender's
-        manager to have its use count decremented too many times.
-      </action>
-      <action issue="LOG4J2-74" dev="rgoers" type="fix">
-        Logger.error(Marker, Message, Throwable) was internally using Level.TRACE.
-      </action>
-      <action issue="LOG4J2-75" dev="rgoers" type="fix">
-        Enhanced Log4jContextListener to accept a configuration file location. Modified FileConfigurationMonitor
-        to monitor files configured that way. Fixed other reconfiguration related bugs. Tested in JBoss and
-        Tomcat.
-      </action>
-      <action issue="LOG4J2-72" dev="rgoers" type="fix">
-        NullPointerException in RollingFileManager when filePattern does not cause the file to be compressed.
-      </action>
-      <action issue="LOG4J2-71" dev="rgoers" type="fix">
-        FileRenameAction did not create the parent directories of the archive files causing the rollover to fail.
-      </action>
-      <action dev="rgoers" type="update">
-        Update the versions of SLF4J and Logback.
-      </action>
-    </release>
-    <release version="2.0-alpha2" date="2012-08-24" description="Bug fixes and minor enhancements">
-      <action issue="LOG4J2-70" dev="rgoers" type="add">
-        Add getLogger(Class) to LogManager.
-      </action>
-      <action issue="LOG4J2-69" dev="rgoers" type="add">
-        Allow Flume agents to be embedded into the Flume Appender.
-      </action>
-      <action issue="LOG4J2-68" dev="rgoers" type="add">
-        Add support for formatting using String.format().
-      </action>
-      <action issue="LOG4J2-67" dev="rgoers" type="add">
-        Allow components besides core to create a PluginMap for faster plugin loading and not
-        having to specify the plugin package in the configuration.
-      </action>
-      <action issue="LOG4J2-64" dev="rgoers" type="fix">
-        Fix compilation problems in Java 7.
-      </action>
-      <action issue="LOG4J2-65" dev="rgoers" type="fix">
-        Allow variable substitution on the configuration attributes and on the root log level.
-      </action>
-    </release>
-    <release version="2.0-alpha1" date="2012-07-29" description="Rewrite of Log4j">
-      <action issue="LOG4J2-60" dev="rgoers" type="add" due-to="Shane Kelly">
-        Added ability to filter on the AppenderRef by adding either a level or a filter.
-      </action>
-      <action issue="LOG4J2-56" dev="rgoers" type="fix" due-to="John Owen Atala">
-        Level.toLevel would throw an IllegalArgumentException instead of returning the default value.
-      </action>
-      <action issue="LOG4J2-51" dev="rgoers" type="fix" due-to="John Vasileff">
-        Remove LoggerContext support for custom logger factories. All Loggers returned
-        by LoggerContext should be compatible and of the same type.
-      </action>
-      <action issue="LOG4J2-50" dev="rgoers" type="fix" due-to="John Vasileff">
-        Make sure all application facing log methods use their own FQCN. This patch
-        resolves a unit test failure for the %C pattern when using the Category logger.
-      </action>
-    </release>
-  </body>
-</document>
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set sw=2: -->
+<!--
+   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.
+-->
+<document xmlns="http://maven.apache.org/changes/1.0.0"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/xsd/changes-1.0.0.xsd">
+  <properties>
+    <title>Changes</title>
+  </properties>
+  <body>
+    <!-- NOTE: the text node in an action element is interpreted as Markdown in the release notes! -->
+    <!-- The "type" attribute can have the following values:
+         - "add" - New Feature
+         - "fix" - Fixed Bug
+         - "update" - Change
+         - "remove" - Removed
+    -->
+    <release version="2.12.0" date="2019-MM-DD" description="GA Release 2.12.0">
+      <action issue="LOG4J2-2559" dev="ggregory" type="fix" due-to="Li Lei, Gary Gregory">
+        NullPointerException in JdbcAppender.createAppender().
+      </action>
+      <action dev="ggregory" type="update" due-to="Gary Gregory">
+        Update tests from H2 1.4.197 to 1.4.199.
+      </action>
+    </release>
+    <release version="2.11.2" date="2019-02-04" description="GA Release 2.11.2">
+      <action issue="LOG4J2-2500" dev="rgoers" type="fix">
+        Document that Properties element must be the first configuration element.
+      </action>
+      <action issue="LOG4J2-2543" dev="rgoers" type="fix" due-to="Dermot Hardy">
+        Add Log4j-to-SLF4J to BOM pom.xml.
+      </action>
+      <action issue="LOG4J2-2061" dev="rgoers" type="fix">
+        Use the file pattern as the FileManager "name" when no filename is present.
+      </action>
+      <action issue="LOG4J2-2009" dev="rgoers" type="fix">
+        Expose LoggerContext.setConfiguration as a public method.
+      </action>
+      <action issue="LOG4J2-2542" dev="rgoers" type="fix">
+        CronTriggeringPolicy was not rolling properly, especially when used with the SizeBasedTriggeringPolicy.
+      </action>
+      <action issue="LOG4J2-2266" dev="rgoers" type="fix">
+        Load PropertySources from any accessible ClassLoader. Hide any exceptions that may occur accessing a PropertySource.
+      </action>
+      <action issue="LOG4J2-1570" dev="rgoers" type="fix">
+        Logging with a lambda expression with a method call that also logs would cause logs within method call to reference line num and method name of the parent method.
+      </action>
+      <action issue="LOG4J2-1576" dev="rgoers" type="update">
+        Switch from CLIRR to RevAPI for detecting API changes.
+      </action>
+      <action issue="LOG4J2-2485" dev="rgoers" type="fix" due-to="Giovanni Matteo Fumarola">
+        SizeBasedTriggeringPolicy was not honored when using the DirectWriteRolloverStrategy if the machine restarts.
+      </action>
+      <action issue="LOG4J2-1906" dev="rgoers" type="fix">
+        Direct write was creating files with the wrong date/time.
+      </action>
+      <action issue="LOG4J2-2453" dev="rgoers" type="fix" due-to="theit">
+        Add Log4j-slf4j18-impl dependency to bom pom.
+      </action>
+      <action issue="LOG4J2-2515" dev="rgoers" type="fix" due-to="MakarovS">
+        Configuration documentation referenced incorrect method name.
+      </action>
+      <action issue="LOG4J2-2514" dev="rgoers" type="fix" due-to="smilebrian0515">
+        Make Strings.toRootUpperCase a static method so it can be accessed.
+      </action>
+      <action issue="LOG4J2-1571" dev="rgoers" type="fix" due-to="torbenmoeller">
+        Fixed Appenders section in Extending Log4j.
+      </action>
+      <action issue="LOG4J2-2391" dev="ckozak" type="update">
+        Improve exception logging performance. ThrowableProxy construction uses a faster
+        method to discover the current stack trace. ThrowablePatternConverter and
+        ExtendedThrowablePatternConverter default configurations no longer allocate
+        an additional buffer for stack trace contents.
+      </action>
+      <action issue="LOG4J2-2397" dev="ggregory" type="fix" due-to="EckelDong">
+        Predeployment of PersistenceUnit that using Log4j as session logger failed (#198).
+      </action>
+      <action issue="LOG4J2-2365" dev="ckozak" type="fix" due-to="Eugene Zimichev">
+        NameAbbreviator correctly abbreviates first fragments (#188).
+      </action>
+      <action issue="LOG4J2-2201" dev="ckozak" type="fix">
+        Fix memory leak in ReusableParameterizedMessage.
+      </action>
+      <action issue="LOG4J2-2363" dev="ckozak" type="fix" due-to="Brian Laub">
+        ReusableObjectMessage parameter is properly passed to appenders (#203).
+      </action>
+      <action issue="LOG4J2-2418" dev="ggregory" type="fix" due-to="Jonas Rutishauser">
+        NullPointerException when closing never used RollingRandomAccessFileAppender.
+      </action>
+      <action issue="LOG4J2-2422" dev="ggregory" type="fix" due-to="rswart, Gary Gregory">
+        Handle some unchecked exceptions while loading plugins.
+      </action>
+      <action issue="LOG4J2-2441" dev="ckozak" type="fix">
+        Setting a null ErrorHandler on AbstractAppender is not allowed and will no-op as expected.
+      </action>
+      <action issue="LOG4J2-2444" dev="ckozak" type="fix">
+        ErrorHandler is invoked with a LogEvent and Throwable when possible, where previously only a string was used.
+      </action>
+      <action issue="LOG4J2-2447" dev="ggregory" type="update">
+        Let the NullAppender default its name to "null".
+      </action>
+      <action issue="LOG4J2-2468" dev="ggregory" type="update">
+        Update Jackson from 2.9.6 to 2.9.7.
+      </action>
+      <action issue="LOG4J2-2469" dev="ggregory" type="update">
+        Update Apache Commons Compress from 1.17 to 1.18.
+      </action>
+      <action issue="LOG4J2-2470" dev="ggregory" type="update">
+        Update Apache Commons CSV from 1.5 to 1.6.
+      </action>
+      <action issue="LOG4J2-2471" dev="ggregory" type="update">
+        Update javax.mail from 1.6.1 to 1.6.2.
+      </action>
+      <action issue="LOG4J2-2472" dev="ggregory" type="update">
+        Update mongo-java-driver 3 from 3.8.0 to 3.8.2.
+      </action>
+      <action issue="LOG4J2-2413" dev="ggregory" type="fix" due-to="Andres Luuk, Gary Gregory">
+        Exceptions are added to all columns when a JDBC Appender's ColumnMapping uses a Pattern.
+      </action>
+      <action issue="LOG4J2-2466" dev="ggregory" type="fix" due-to="Paolo Bonanomi, Gary Gregory">
+        ColumnMapping literal not working.
+      </action>
+      <action issue="LOG4J2-2478" dev="ckozak" type="fix" due-to="Diego Elias Costa">
+        AbstractStringLayoutStringEncodingBenchmark returns the computed variables on each benchmark to avoid DCE.
+      </action>
+      <action issue="LOG4J2-2134" dev="ggregory" type="fix" due-to="David del Amo Mateos, Gary Gregory">
+      	StackOverflowError at AwaitCompletionReliabilityStrategy.
+      </action>
+      <action issue="LOG4J2-2481" dev="ggregory" type="fix">
+      	Avoid NullPointerExceptions in org.apache.logging.log4j.core.config.AbstractConfiguration for null arguments.
+      </action>
+      <action issue="LOG4J2-2457" dev="ggregory" type="fix" due-to="Heiko Schwanke, Gary Gregory">
+      	RollingRandomAccessFileManager ignores new file patterns from programmatic reconfiguration.
+      </action>
+      <action issue="LOG4J2-2482" dev="ggregory" type="fix" due-to="Rob Gansevles">
+        BasicContextSelector cannot be used in a OSGI application.
+      </action>
+      <action issue="LOG4J2-2476" dev="ggregory" type="fix" due-to="Al Bundy">
+        org.apache.log4j.SimpleLayout and ConsoleAppender missing in log4j-1.2-api.
+      </action>
+      <action issue="LOG4J2-2489" dev="ggregory" type="update">
+        JDBC Appender should release parameter resources ASAP.
+      </action>
+      <action issue="LOG4J2-2491" dev="ggregory" type="update">
+        Allow all Appenders to optionally carry a Property array.
+      </action>
+      <action issue="LOG4J2-2497" dev="ggregory" type="fix">
+        JmsAppender reconnectIntervalMillis cannot be set from a configuration file.
+      </action>
+      <action issue="LOG4J2-2499" dev="ggregory" type="fix">
+        JMS Appender may throw a NullPointerException when JMS is not up while the Appender is starting.
+      </action>
+      <action issue="LOG4J2-2496" dev="ggregory" type="add">
+        JDBC Appender should reconnect to the database when a connection goes stale.
+      </action>
+      <action issue="LOG4J2-2405" dev="ggregory" type="update" due-to="Marco Herrn">
+        Better handling of %highlight pattern when using jul-bridge.
+      </action>
+      <action issue="LOG4J2-2503" dev="ggregory" type="update">
+        Update MongoDB driver from 3.8.2 to 3.9.0 for log4j-mongodb3 module.
+      </action>
+      <action issue="LOG4J2-2505" dev="ggregory" type="add">
+        Let JDBC PoolingDriverConnectionSource with Apache Commons DBCP configure a PoolableConnectionFactory.
+      </action>
+      <action issue="LOG4J2-2508" dev="ggregory" type="fix">
+      	JDBC Appender fails when using both parameter, source, and literal ColumnMapping elements.
+      </action>
+      <action issue="LOG4J2-2509" dev="ggregory" type="add">
+        Allow a JDBC Appender to truncate strings to match a table's metadata column length limit.
+      </action>
+      <action issue="LOG4J2-1246" dev="ggregory" type="add">
+        PatternLayout %date conversion pattern should render time zone designator for ISO-ISO8601.
+      </action>
+      <action issue="LOG4J2-2527" dev="ckozak" type="fix">
+        Prevent ConcurrentModificationException while iterating over ListAppender events.
+      </action>
+      <action issue="LOG4J2-2522" dev="ckozak" type="fix" due-to="Adam Lesiak">
+        Fix regression using MapMessageLookup.lookup with MapMessages that do not implement StringMapMessage.
+      </action>
+      <action issue="LOG4J2-2530" dev="ckozak" type="fix" due-to="Travis Spencer">
+        Generalize checks using MapMessage implementations with do not extend StringMapMessage.
+        Introduce new JAVA_UNQUOTED MapMessage format type based on the JAVA formatting, but without
+        quoted values.
+      </action>
+      <action issue="LOG4J2-2533" dev="ckozak" type="fix" due-to="Michail Prusakov">
+        Fix a regression introduced by LOG4J2-2301 in 2.11.1 allowing allocation to occur in AsyncLoggerConfig.
+      </action>
+    </release>
+    <release version="2.11.1" date="2018-07-22" description="GA Release 2.11.1">
+      <action issue="LOG4J2-2389" dev="rgoers" type="fix" due-to="Liu Wen">
+        ThrowableProxy was saving and retrieving cache entries using different keys.
+      </action>
+      <action issue="LOG4J2-2316" dev="rgoers" type="fix">
+        If root LoggerConfig does not have a Level return ERROR.
+      </action>
+      <action issue="LOG4J2-2390" dev="rgoers" type="fix" due-to="anton-balaniuc">
+        Fix broken links in log4j web documentation.
+      </action>
+      <action issue="LOG4J2-1721" dev="rgoers" type="update" due-to="Phokham Nonava">
+        Allow composite configuration for context parameter.
+      </action>
+      <action issue="LOG4J2-2343" dev="rgoers" type="fix" due-to="Raymond Augé">
+        The OSGi Activator specified an incorrect version.
+      </action>
+      <action issue="LOG4J2-2305" dev="rgoers" type="fix" due-to="Björn Kautler">
+        Make java.util.ServiceLoader properly work in OSGi by using the Service Loader Mediator Specification.
+      </action>
+      <action issue="LOG4J2-2305" dev="rgoers" type="fix">
+        Split the SLF4J binding into 2 implementations - one for SLF4J 1.7.x and one for SLF4J 1.8+.
+      </action>
+      <action issue="LOG4J2-2268" dev="rgoers" type="fix" due-to="Tilman Hausherr">
+        Improve plugin error message when elements are missing.
+      </action>
+      <action issue="LOG4J2-2283" dev="ggregory" type="fix" due-to="Vishnu Priya Matha">
+        ParserConfigurationException when using Log4j with oracle.xml.jaxp.JXDocumentBuilderFactory.
+      </action>
+      <action issue="LOG4J2-2300" dev="ggregory" type="fix">
+        PoolingDriverConnectionSource does not take into account properties, user name, and password.
+      </action>
+      <action issue="LOG4J2-2302" dev="ggregory" type="update">
+        Status logger should show the Log4j name and version when initializing itself.
+      </action>
+      <action issue="LOG4J2-2304" dev="ggregory" type="update" due-to="wumengsheng">
+        Log4j2 2.8.2 JMX unregister NullPointerException.
+      </action>
+      <action issue="LOG4J2-2311" dev="ggregory" type="update">
+      	Update Jackson from 2.9.4 to 2.9.5.
+      </action>
+      <action issue="LOG4J2-2313" dev="ggregory" type="update">
+      	Update LMAX Disruptor from 3.3.7 to 3.4.2.
+      </action>
+      <action issue="LOG4J2-548" dev="ggregory" type="update" due-to="Shehata, Paresh Varke, Eric Victorson, Martin Laforet">
+      	Log4j 2.0 ERROR "Could not search jar" with JBoss EAP 6.2.
+      </action>
+      <action issue="LOG4J2-2307" dev="ckozak" type="fix">
+        MutableLogEvent and RingBufferLogEvent message mementos retain the original format string.
+      </action>
+      <action issue="LOG4J2-2032" dev="ckozak" type="fix" due-to="Kostiantyn Shchepanovskyi">
+        Curly braces in parameters are not treated as placeholders.
+      </action>
+      <action issue="LOG4J2-2317" dev="ckozak" type="fix">
+        MutableLogEvent.getNonNullImmutableMessage and Log4jLogEvent.makeMessageImmutable retain format and parameters.
+      </action>
+      <action issue="LOG4J2-2318" dev="ckozak" type="fix">
+        Messages are no longer mutated when the asynchronous queue is full. A warning is logged to the status logger instead.
+      </action>
+      <action issue="LOG4J2-2320" dev="ckozak" type="fix">
+        Fix NPE in AbstractLogger when another exception is thrown, masking the root cause.
+      </action>
+      <action issue="LOG4J2-2321" dev="ckozak" type="fix">
+        AsyncLogger uses the correct level when unspecified. This provides parity between AsyncLogger and Logger.
+      </action>
+      <action issue="LOG4J2-2322" dev="ckozak" type="fix">
+        Custom ContextSelector implementations which select an AsyncLoggerContext disable LoggerConfig.includeLocation
+        by default for parity with AsyncLoggerContextSelector.
+      </action>
+      <action issue="LOG4J2-2269" dev="ckozak" type="fix">
+        MutableLogEvent references to other objects are cleared after each use.
+        Fix a memory leak causing references to parameters to be held after synchronous logging with thread locals enabled.
+      </action>
+      <action issue="LOG4J2-2328" dev="ggregory" type="update">
+        Update JAnsi from 1.17 to 1.17.1.
+      </action>
+      <action issue="LOG4J2-2301" dev="ckozak" type="fix">
+        Mixed async loggers no longer forget parameter values, providing some appenders with an array of nulls.
+      </action>
+      <action issue="LOG4J2-2331" dev="ckozak" type="fix" due-to="Mike Baranski">
+        RollingFileManager debug logging avoids string concatenation and errant braces in favor of parameterized logging.
+      </action>
+      <action issue="LOG4J2-2333" dev="ckozak" type="fix">
+        Handle errors thrown in default disruptor ExceptionHandler implementations to avoid killing background threads.
+      </action>
+      <action issue="LOG4J2-2334" dev="ggregory" type="fix">
+        Add API org.apache.logging.log4j.core.appender.AsyncAppender.getQueueSize().
+      </action>
+      <action issue="LOG4J2-2336" dev="ckozak" type="fix">
+        Remove duplicate hyphen from the AsyncLoggerConfig background thread name.
+      </action>
+      <action issue="LOG4J2-2347" dev="ggregory" type="fix">
+        Update Apache Commons Compress from 1.16.1 to 1.17.
+      </action>
+      <action issue="LOG4J2-2351" dev="ckozak" type="update">
+        Added AbstractLogEvent.getMutableInstant to allow the MutableInstant instance to be modified by classes extending AbstractLogEvent.
+      </action>
+      <action issue="LOG4J2-2352" dev="ckozak" type="fix">
+        RingBufferLogEvent memento messages provide the expected format string, and no longer attempt to substitute parameters into curly braces in parameter toString values.
+        Both RingBufferLogEvent and MutableLogEvent memento implementations memoize results to avoid rebuilding formatted string values.
+      </action>
+      <action issue="LOG4J2-2355" dev="ckozak" type="fix" due-to="Henrik Brautaset Aronsen">
+        PropertiesUtil ignores non-string system properties. Fixes a NoClassDefFoundError initializing StatusLogger
+        caused by an NPE while initializing the static PropertiesUtil field.
+      </action>
+      <action issue="LOG4J2-2357" dev="ggregory" type="update">
+        Update Jackson from 2.9.5 to 2.9.6.
+      </action>
+      <action issue="LOG4J2-2358" dev="ggregory" type="update">
+        Update Kafka client from 1.0.0 to 1.1.0.
+      </action>
+      <action issue="LOG4J2-2362" dev="ckozak" type="fix">
+        Fixed a memory leak in which ReusableObjectMessage would hold a reference to the most recently logged object.
+      </action>
+      <action issue="LOG4J2-2312" dev="ckozak" type="fix">
+        Jackson layouts used with AsyncLoggerContextSelector output the expected format rather than only a JSON string of the message text.
+      </action>
+      <action issue="LOG4J2-2364" dev="ckozak" type="fix">
+        Fixed a memory leak in which ReusableParameterizedMessage would hold a reference to the most recently
+        logged throwable and provided varargs array.
+      </action>
+      <action issue="LOG4J2-2368" dev="ckozak" type="fix">
+        Nested logging doesn't clobber AbstractStringLayout cached StringBuidlers
+      </action>
+      <action issue="LOG4J2-2373" dev="ckozak" type="fix" due-to="Kevin Meurer">
+        StringBuilders.escapeJson implementation runs in linear time. Escaping large JSON strings
+        in EncodingPatternConverter and MapMessage will perform significantly better.
+      </action>
+      <action issue="LOG4J2-2376" dev="ckozak" type="fix" due-to="Kevin Meurer">
+        StringBuilders.escapeXml implementation runs in linear time. Escaping large XML strings
+        in EncodingPatternConverter and MapMessage will perform significantly better.
+      </action>
+      <action issue="LOG4J2-2377" dev="ggregory" type="fix" due-to="Mirko Rzehak, Gary Gregory">
+        NullPointerException in org.apache.logging.log4j.util.LoaderUtil.getClassLoaders() when using Bootstrap class loader.
+      </action>
+      <action issue="LOG4J2-2382" dev="ggregory" type="fix">
+        Update Mongodb 3 driver from 3.6.3 to 3.8.0.
+      </action>
+      <action issue="LOG4J2-2384" dev="ggregory" type="update">
+        Update Kafka client from 1.1.0 to 1.1.1.
+      </action>
+      <action issue="LOG4J2-2385" dev="ggregory" type="update">
+        Update Groovy from 2.4.13 to 2.5.1.
+      </action>
+      <action issue="LOG4J2-2386" dev="ggregory" type="update">
+        Update optional Apache Commons DBCP from 2.2.0 to 2.4.0.
+      </action>
+      <action issue="LOG4J2-2388" dev="ggregory" type="fix" due-to="Failled">
+        Thread indefinitely blocked when logging a message in an interrupted thread.
+      </action>
+    </release>
+    <release version="2.11.0" date="2018-03-11" description="GA Release 2.11.0">
+      <action issue="LOG4J2-2104" dev="rgoers" type="fix">
+        LoaderUtil was not looping properly over classloaders.
+      </action>
+      <action issue="LOG4J2-1976" dev="rgoers" type="fix">
+        Revert OSGi API version to 4.3.1.
+      </action>
+      <action issue="LOG4J2-2273" dev="rpopma" type="update" due-to="Bruno P. Kinoshita">
+        Documentation fix in manual page for custom configurations.
+      </action>
+      <action issue="LOG4J2-2252" dev="rpopma" type="update" due-to="Carter Kozak">
+        Reusable LogEvents now pass the original format string to downstream components like layouts and filters.
+      </action>
+      <action issue="LOG4J2-2253" dev="rpopma" type="add" due-to="Carter Kozak">
+        Add API to enable iterating over message parameters without creating temporary objects.
+      </action>
+      <action issue="LOG4J2-2271" dev="rgoers" type="fix">
+        Move module-info.class to META-INF/versions/9 directory.
+      </action>
+      <action issue="LOG4J2-2254" dev="rgoers" type="fix">
+        Incorrect automatics module name header was being included in manifests.
+      </action>
+      <action issue="LOG4J2-2247" dev="rgoers" type="fix">
+        NullPointerException would occur when header was provided to a Layout on RollingRandingAccessFileAppender
+        with DirectWriteRolloverStrategy.
+      </action>
+      <action issue="LOG4J2-2250" dev="rpopma" type="update">
+        The internal status logger timestamp format is now configurable with system property `log4j2.StatusLogger.DateFormat`.
+      </action>
+      <action issue="LOG4J2-2236" dev="rpopma" type="update">
+        Removed unnecessary dependency on jcommander since Log4j uses embedded picocli since 2.9.
+      </action>
+      <action issue="LOG4J2-1883" dev="rpopma" type="add" due-to="Anthony Maire">
+        Added support for precise (micro and nanosecond) timestamps when running on Java 9. A limited number of precise %d date formats are supported with PatternLayout. POTENTIAL BREAKING CHANGE: The XML, JSON and YAML formats have changed: they no longer have the "timeMillis" attribute and instead have an "Instant" element with "epochSecond" and "nanoOfSecond" attributes.
+      </action>
+      <action issue="LOG4J2-2190" dev="mikes" type="add" due-to="Franz Wong">
+        Output JSON object for ObjectMessage in JsonLayout.
+      </action>
+      <action issue="LOG4J2-2191" dev="rpopma" type="add">
+        Made log4j-core a multi-release ("multi-version") jar, added log4j-core-java9 module.
+      </action>
+      <action issue="LOG4J2-2129" dev="rgoers" type="fix" due-to="Blazej Bucko">
+        Log4j2 throws NoClassDefFoundError in Java 9 in java.util.ServiceLoader.
+      </action>
+      <action issue="LOG4J2-2158" dev="rpopma" type="fix" due-to="Björn Kautler">
+        Fixed bug where ThreadContext map was cleared, resulting in entries being only available for one log event.
+      </action>
+      <action issue="LOG4J2-2002" dev="mikes" type="fix" due-to="Paul Burrowes">
+        Avoid null attribute values in DefaultConfigurationBuilder.
+      </action>
+      <action issue="LOG4J2-2175" dev="mikes" type="fix" due-to="Behrang Saeedzadeh">
+        Fix typo in Property Substitution docs.
+      </action>
+      <action issue="LOG4J2-2163" dev="rgoers" type="fix">
+        Allow SortedArrayStringMap to be filtered upon deserialization. Fix build error in Java 9 when
+        compiling log4j-core test classes.
+      </action>
+      <action issue="LOG4J2-2157" dev="ggregory" type="fix" due-to="Malte Skoruppa">
+        Don't create exit message in traceExit(R) when logging is disabled.
+      </action>
+      <action issue="LOG4J2-2123" dev="rgoers" type="fix" due-to="Jacob Tolar">
+        DefaultMergeStrategy did not merge filters on loggers correctly.
+      </action>
+      <action issue="LOG4J2-2146" dev="rgoers" type="update">
+        Update version of maven bundle plugin to 3.4.0. Convert bundle plugin error to a warning.
+      </action>
+      <action issue="LOG4J2-2215" dev="rpopma" type="update">
+        Reduce compiler warnings in log4j-api.
+      </action>
+      <action issue="LOG4J2-2143" dev="mikes" type="add">
+        Add missing converters to PatternLayout.
+      </action>
+      <action issue="LOG4J2-2160" dev="ggregory" type="add">
+        Add API org.apache.logging.log4j.core.lookup.Interpolator.getStrLookupMap().
+      </action>
+      <action issue="LOG4J2-2127" dev="rpopma" type="update" due-to="Carter Kozak">
+        Removed unnecessary threadlocal StringBuilder field from MdcPatternConverter.
+      </action>
+      <action issue="LOG4J2-2126" dev="rpopma" type="fix" due-to="Oleg Kalnichevski">
+        Removed compile-time dependency on Java Management APIs from Log4J API module to improve compatibility with Android Platform which does not support JMX extensions.
+      </action>
+      <action issue="LOG4J2-2194" dev="rpopma" type="update">
+        Require Java 9 to compile the log4j-perf module to allow benchmarking with Java 9 APIs.
+      </action>
+      <action issue="LOG4J2-2193" dev="rpopma" type="update">
+        Update JMH to version 1.19 from 1.1.1.
+      </action>
+      <action issue="LOG4J2-2132" dev="ggregory" type="update">
+        Update ZeroMQ's jeromq from 0.4.2 to 0.4.3.
+      </action>
+      <action issue="LOG4J2-2165" dev="ggregory" type="update">
+        Update Jackson from 2.9.2 to 2.9.3.
+      </action>
+      <action issue="LOG4J2-2179" dev="ggregory" type="add">
+        The MongoDB Appender should use a keys and values for a Log4j MapMessage.
+      </action>
+      <action issue="LOG4J2-2180" dev="ggregory" type="add">
+        Add a MongoDbProvider builder for and deprecate org.apache.logging.log4j.mongodb.MongoDbProvider.createNoSqlProvider().
+      </action>
+      <action issue="LOG4J2-2181" dev="ggregory" type="add">
+        The JDBC Appender should use keys and values from a Log4j MapMessage.
+      </action>
+      <action issue="LOG4J2-2184" dev="ggregory" type="update">
+        Update MongoDB driver from 3.0.4 to 3.6.1.
+      </action>
+      <action issue="LOG4J2-2185" dev="ggregory" type="add">
+        Add a simple JDBC DriverManager-based ConnectionSource that uses JDBC's DriverManager#getConnection(String, String, String).
+      </action>
+      <action issue="LOG4J2-2197" dev="ggregory" type="update" due-to="Fabrice Daugan">
+        Document default property value support.
+      </action>
+      <action issue="LOG4J2-2198" dev="ggregory" type="update">
+        Update MongoDB dependencies from classic to modern.
+      </action>
+      <action issue="LOG4J2-2186" dev="ggregory" type="add">
+        Add a JDBC ConnectionSource that provides pooling through Apache Commons DBCP 2.
+      </action>
+      <action issue="LOG4J2-2187" dev="ggregory" type="add">
+        Add a hook for a Connection Source for a JDBC Appender to release its resources.
+      </action>
+      <action issue="LOG4J2-2203" dev="ggregory" type="add">
+        Add org.apache.logging.log4j.core.util.WatchManager#unwatch(File).
+      </action>
+      <action issue="LOG4J2-2204" dev="ggregory" type="update">
+        org.apache.logging.log4j.core.util.WatchManager.getWatchers() should pre-allocate its new Map.
+      </action>
+      <action issue="LOG4J2-2206" dev="ggregory" type="add">
+        Add method org.apache.logging.log4j.core.util.WatchManager.reset(File) and reset().
+      </action>
+      <action issue="LOG4J2-2208" dev="ggregory" type="add">
+        Add debug logging to org.apache.logging.log4j.mongodb.MongoDbConnection.
+      </action>
+      <action issue="LOG4J2-2209" dev="ggregory" type="update">
+        Rename existing MongoDb plugin and related artifacts from MongoDb to MongoDb2.
+      </action>
+      <action issue="LOG4J2-2210" dev="ggregory" type="update" due-to="Björn Kautler">
+        Fix error log message for Script which says ScriptFile instead.
+      </action>
+      <action issue="LOG4J2-2212" dev="ggregory" type="update" due-to="Daniel Feist, Gary Gregory">
+        Unnecessary contention in CopyOnWriteSortedArrayThreadContextMap.
+      </action>
+      <action issue="LOG4J2-2213" dev="ggregory" type="update" due-to="Daniel Feist, Gary Gregory">
+        Unnecessary contention in GarbageFreeSortedArrayThreadContextMap.
+      </action>
+      <action issue="LOG4J2-2214" dev="ggregory" type="update" due-to="Daniel Feist, Gary Gregory">
+        Unnecessary contention in DefaultThreadContextMap.
+      </action>
+      <action issue="LOG4J2-2182" dev="ggregory" type="update" due-to="liwenxian2017, Gary Gregory">
+        NullPointerException at org.apache.logging.log4j.util.Activator.loadProvider(Activator.java:81) in log4j 2.10.0.
+      </action>
+      <action issue="LOG4J2-2202" dev="ggregory" type="update" due-to="Kilian, Gary Gregory">
+        MarkerFilter onMismatch invalid attribute in .properties.
+      </action>
+      <action issue="LOG4J2-2219" dev="ggregory" type="update" due-to="Kilian, Gary Gregory">
+        Configuration builder classes should look for "onMismatch", not "onMisMatch".
+      </action>
+      <action issue="LOG4J2-2205" dev="ggregory" type="update" due-to="Gary Gregory">
+        New module log4j-mongodb3: Remove use of deprecated MongoDB APIs and code to the Java driver version 3 API.
+      </action>
+      <action issue="LOG4J2-2188" dev="ggregory" type="update" due-to="Gary Gregory">
+        Split off JPA support into a new module log4j-jpa.
+      </action>
+      <action issue="LOG4J2-2229" dev="ggregory" type="update" due-to="Gary Gregory">
+        Update Jackson from 2.9.3 to 2.9.4.
+      </action>
+      <action issue="LOG4J2-2243" dev="ggregory" type="update" due-to="Gary Gregory">
+        Cannot see or copy all of certain JAnsi exception messages on Windows due to NUL characters.
+      </action>
+      <action issue="LOG4J2-2245" dev="ggregory" type="update" due-to="Gary Gregory">
+        Update Apache Commons Compress from 1.15 to 1.16.1.
+      </action>
+      <action issue="LOG4J2-2259" dev="ggregory" type="update">
+        Update MongoDB 3 module from driver 3.6.1 to 3.6.3.
+      </action>
+      <action issue="LOG4J2-2260" dev="ggregory" type="update">
+        [SMTP] Update javax.mail from 1.6.0 to 1.6.1.
+      </action>
+      <action issue="LOG4J2-2264" dev="ggregory" type="update">
+        Update JAnsi from 1.16 to 1.17.
+      </action>
+      <action issue="LOG4J2-2270" dev="ggregory" type="fix" due-to="Cyril Martin">
+        Strings::join, when called with [null] returns "null" instead of EMPTY.
+      </action>
+      <action issue="LOG4J2-2276" dev="ggregory" type="fix" due-to="Sean Baxter">
+        ConcurrentModificationException from org.apache.logging.log4j.status.StatusLogger.&lt;clinit>(StatusLogger.java:71).
+      </action>
+      <action issue="LOG4J2-2274" dev="ggregory" type="fix" due-to="Sebastien Lannez">
+        Allow EnvironmentPropertySource to run with a SecurityManager that rejects environment variable access.
+      </action>
+      <action issue="LOG4J2-2279" dev="ggregory" type="fix" due-to="Gary Gregory">
+        Allow SystemPropertiesPropertySource to run with a SecurityManager that rejects system property access.
+      </action>
+    </release>
+    <release version="2.10.0" date="2017-11-18" description="GA Release 2.10.0">
+      <action issue="LOG4J2-2289" dev="ggregory" type="fix" due-to="Hari Menon">
+        XML Schema for DynamicFilterThreshold does not accept multiple KeyValuePairs.
+      </action>
+      <action issue="LOG4J2-2120" dev="mikes" type="add" due-to="Carter Douglas Kozak">
+        Properly escape newlines and other control characters in JSON.
+      </action>
+      <action issue="LOG4J2-2109" dev="mikes" type="add" due-to="Carter Douglas Kozak">
+        Add property to disable message pattern converter lookups.
+      </action>
+      <action issue="LOG4J2-2112" dev="mikes" type="add" due-to="Carter Douglas Kozak">
+        MapMessage should use deep toString for values.
+      </action>
+      <action issue="LOG4J2-2107" dev="mikes" type="fix" due-to="Carter Douglas Kozak">
+        MapMessage supports both StringBuilderFormattable and MultiformatMessage.
+      </action>
+      <action issue="LOG4J2-2102" dev="mikes" type="fix" due-to="Carter Douglas Kozak">
+        MapMessage JSON encoding will escape keys and values.
+      </action>
+      <action issue="LOG4J2-2101" dev="mikes" type="fix" due-to="Carter Douglas Kozak">
+        Non-string value in MapMessage caused ClassCastException.
+      </action>
+      <action issue="LOG4J2-2103" dev="mikes" type="add">
+        XML encoding for PatternLayout.
+      </action>
+      <action issue="LOG4J2-2114" dev="ggregory" type="add">
+        Provide a native Log4j 2 implementation of Eclipse Jetty's org.eclipse.jetty.util.log.Logger.
+      </action>
+      <action issue="LOG4J2-1203" dev="mikes" type="add" due-to="Robert Turner">
+        Allow filtering of line breaks in layout pattern.
+      </action>
+      <action issue="LOG4J2-2098" dev="rgoers" type="add">
+        Add a noop AppenderSkeleton for applications still using Log4j 1.x.
+      </action>
+      <action issue="LOG4J2-2091" dev="mikes" type="fix" due-to="Carter Douglas Kozak">
+        Log4j respects the configured "log4j2.is.webapp" property
+      </action>
+      <action issue="LOG4J2-2100" dev="ggregory" type="fix">
+        LevelMixIn class for Jackson is coded incorrectly
+      </action>
+      <action issue="LOG4J2-2087" dev="rpopma" type="fix" due-to="Andy Gumbrecht">
+        Jansi now needs to be enabled explicitly (by setting system property `log4j.skipJansi` to `false`). To avoid causing problems for web applications, Log4j will no longer automatically try to load Jansi without explicit configuration.
+      </action>
+      <action issue="LOG4J2-2060" dev="rpopma" type="fix">
+        AbstractDatabaseManager should make a copy of LogEvents before holding references to them: AsyncLogger log events are mutable.
+      </action>
+      <action issue="LOG4J2-2076" dev="mikes" type="update">
+        Split up log4j-nosql into one module per appender.
+      </action>
+      <action issue="LOG4J2-2088" dev="rpopma" type="update">
+        Upgrade picocli to 2.0.3 from 0.9.8.
+      </action>
+      <action issue="LOG4J2-2062" dev="mikes" type="add" due-to="Jorge Sanchez">
+        Add possibility of sending the key of a message to Kafka using KafkaAppender.
+      </action>
+      <action issue="LOG4J2-2056" dev="rgoers" type="add">
+        Modularize Log4j-api and make most other log4j jars automatic modules.
+      </action>
+      <action issue="LOG4J2-1431" dev="mattsicker" type="add">
+        Simplify log4j system property naming scheme.
+      </action>
+      <action issue="LOG4J2-1809" dev="mattsicker" type="add">
+        Add global configuration environment SPI.
+      </action>
+      <action issue="LOG4J2-2025" dev="rgoers" type="update">
+        Provide support for overriding the Tomcat Log class in Tomcat 8.5+.
+      </action>
+      <action issue="LOG4J2-1694" dev="mikes" type="add" due-to="Michal Dvořák">
+        Add fields with fixed values to JSON/XML/YAML layouts.
+      </action>
+      <action issue="LOG4J2-2054" dev="rpopma" type="add">
+      Provide ways to configure SSL that avoid plain-text passwords in the log4j configuration. The configuration may
+        now specify a system environment variable that holds the password, or the path to a file that holds the password.
+      </action>
+      <action issue="LOG4J2-2057" dev="rgoers" type="update">
+        Support new SLF4J binding mechanism introduced in SLF4J 1.8.
+      </action>
+      <action issue="LOG4J2-2052" dev="rpopma" type="update">
+        Disable thread name caching by default when running on Java 8u102 or later.
+      </action>
+      <action issue="LOG4J2-2055" dev="rgoers" type="fix">
+        If Log4j is used as the Tomcat logging implementation startup might fail if an application also uses Log4j.
+      </action>
+      <action issue="LOG4J2-1896" dev="rpopma" type="update">
+        Update classes in org.apache.logging.log4j.core.net.ssl in APIs from String to a PasswordProvider producing
+        char[] for passwords.
+      </action>
+      <action issue="LOG4J2-2031" dev="rpopma" type="fix">
+        Until this change, messages appeared out of order in log file any time when the async logging queue was full.
+        With this change, messages are only logged out of order to prevent deadlock when Log4j2 detects recursive
+        logging while the queue is full.
+      </action>
+      <action issue="LOG4J2-2053" dev="ggregory" type="fix">
+        Exception java.nio.charset.UnsupportedCharsetException: cp65001 in 2.9.0.
+      </action>
+      <action issue="LOG4J2-1216" dev="ggregory" type="fix" due-to="Thies Wellpott, Barna Zsombor Klara, GFriedrich">
+        Nested pattern layout options broken.
+      </action>
+      <action issue="LOG4J2-2070" dev="ggregory" type="fix" due-to="Doug Hughes">
+        Log4j1XmlLayout does not provide the entire stack trace, it is missing the caused by information.
+      </action>
+      <action issue="LOG4J2-2036" dev="ggregory" type="fix" due-to="Robert Haycock">
+        CompositeConfiguration supports Reconfiguration. PR #115.
+      </action>
+      <action issue="LOG4J2-2071" dev="ggregory" type="add" due-to="Carter Kozak">
+        Add org.apache.logging.log4j.core.config.composite.CompositeConfiguration#toString().
+      </action>
+      <action issue="LOG4J2-2073" dev="ggregory" type="fix" due-to="Patrick Lucas">
+        Log4j-config.xsd should make AppenderRef optional for each Logger element.
+      </action>
+      <action issue="LOG4J2-2074" dev="ggregory" type="fix">
+        The console appender should say why it cannot load JAnsi.
+      </action>
+      <action issue="LOG4J2-2085" dev="ggregory" type="fix" due-to="István Neuwirth">
+        Wrong Apache Commons CSV version referenced in the Javadoc of CsvParameterLayout.
+      </action>
+      <action issue="LOG4J2-2078" dev="ggregory" type="update">
+        Update LMAX disruptor from 3.3.6 to 3.3.7.
+      </action>
+      <action issue="LOG4J2-2081" dev="ggregory" type="update">
+        Update Apache Commons Compress from 1.14 to 1.15.
+      </action>
+      <action issue="LOG4J2-2089" dev="ggregory" type="update">
+        [TagLib] Update servlet-api provided dependency from 2.5 to 3.0.1.
+      </action>
+      <action issue="LOG4J2-2096" dev="ggregory" type="update">
+        Update Apache Kafka kafka-clients from 0.11.0.1 to 1.0.0.
+      </action>
+      <action issue="LOG4J2-2077" dev="ggregory" type="update">
+        Update from Jackson 2.9.1 to 2.9.2.
+      </action>
+      <action issue="LOG4J2-2117" dev="ggregory" type="update">
+        Jackson dependencies for 2.9.2 incorrectly bring in jackson-annotations 2.9.0 instead of 2.9.2.
+      </action>
+    </release>
+    <release version="2.9.1" date="2017-09-17" description="GA Release 2.9.1">
+      <action issue="LOG4J2-1988" dev="rpopma" type="fix">
+        Prevent ConcurrentModificationException with AsyncLoggerConfig.
+      </action>
+      <action issue="LOG4J2-1914" dev="rpopma" type="fix">
+        Prevent ConcurrentModificationException with AsyncLoggerConfig.
+      </action>
+      <action issue="LOG4J2-2048" dev="rpopma" type="fix">
+        Increase default queue size for AsyncAppender from 128 to 1024.
+      </action>
+      <action issue="LOG4J2-2035" dev="rpopma" type="fix">
+        Fix documentation to clarify disruptor-3.3.4 is now required for async loggers (previously the docs referred to disruptor-3.3.3 which was never released).
+      </action>
+      <action issue="LOG4J2-2030" dev="rgoers" type="fix">
+        Inspect all known ClassLoaders to locate the service provider.
+      </action>
+      <action issue="LOG4J2-2028" dev="rgoers" type="fix" due-to="Jason Tedor">
+        Java 9 StackLocator was not properly skipping the initial stack frames.
+      </action>
+      <action issue="LOG4J2-2023" dev="ggregory" type="update">
+        Use a class' canonical name instead of name to create its logger name.
+      </action>
+      <action issue="LOG4J2-2026" dev="ggregory" type="fix" due-to="Leon Finker">
+        java.lang.AbstractMethodError: javax.xml.parsers.DocumentBuilderFactory.setFeature().
+      </action>
+      <action issue="LOG4J2-2029" dev="ggregory" type="fix" due-to="Fabrizio Cucci">
+        Marker examples should not use deprecated flow APIs.
+      </action>
+      <action issue="LOG4J2-1936" dev="ggregory" type="fix" due-to="Helber Belmiro">
+        ClassNotFoundException when making all loggers asynchronous under OSGi environment.
+      </action>
+      <action issue="LOG4J2-2043" dev="ggregory" type="update">
+        Update Jackson from 2.9.0 to 2.9.1 (fix for Java 9.)
+      </action>
+      <action issue="LOG4J2-2044" dev="ggregory" type="update">
+        Update Apache Commons CSV from 1.4 to 1.5.
+      </action>
+      <action issue="LOG4J2-2045" dev="ggregory" type="update">
+        Update javax.mail from 1.5.6 to 1.6.0.
+      </action>
+      <action issue="LOG4J2-2046" dev="ggregory" type="update">
+        Update Apache Commons Compress from 1.13 to 1.14.
+      </action>
+      <action issue="LOG4J2-2047" dev="ggregory" type="update">
+        Update Cassandra driver from 3.1.0 to 3.1.4.
+      </action>
+      <action issue="LOG4J2-2049" dev="ggregory" type="update">
+        Update Apache Kafka Client from 0.11.0.0 to 0.11.0.1.
+      </action>
+    </release>
+    <release version="2.9.0" date="2017-08-26" description="GA Release 2.9.0">
+      <action issue="LOG4J2-1928" dev="rgoers" type="update">
+        Add support for DirectWriteRolloverStrategy to RollingRandomAccessFileAppender.
+      </action>
+      <action issue="LOG4J2-1833" dev="rgoers" type="fix">
+        Prevent NullPointerException when a file name is specified with the DirectWriteRolloverStrategy.
+      </action>
+      <action issue="LOG4J2-2022" dev="rgoers" type="update">
+        RFC5424Layout now prints the process id.
+      </action>
+      <action issue="LOG4J2-2020" dev="mikes" type="update">
+        Remove default layout from KafkaAppender.
+      </action>
+      <action issue="LOG4J2-2018" dev="rpopma" type="fix">
+        Fix incorrect documentation for LoggerNameLevelRewritePolicy.
+      </action>
+      <action issue="LOG4J2-922" dev="ggregory" type="fix" due-to="angus.aqlu, Paul Burrowes">
+        Parameter of mdcId in SyslogAppender has no default value.
+      </action>
+      <action issue="LOG4J2-2001" dev="ggregory" type="fix" due-to="Paul Burrowes">
+        StyleConverter.newInstance argument validation is incorrect.
+      </action>
+      <action issue="LOG4J2-1999" dev="ggregory" type="fix" due-to="Paul Burrowes">
+        HighlightConverter converts all unrecognized levels to DEBUG.
+      </action>
+      <action issue="LOG4J2-2013" dev="ggregory" type="fix" due-to="Taylor Patton, Gary Gregory">
+        SslSocketManager does not apply SSLContext on TCP reconnect.
+      </action>
+      <action issue="LOG4J2-2023" dev="ggregory" type="update">
+        Use a class' canonical name instead of name to create its logger name.
+      </action>
+      <action issue="LOG4J2-2015" dev="ggregory" type="update">
+        Allow KeyStoreConfiguration and TrustStoreConfiguration to find files as resources.
+      </action>
+      <action issue="LOG4J2-2011" dev="rpopma" type="update">
+        Replace JCommander command line parser with picocli to let users run Log4j2 utility applications without requiring an external dependency.
+      </action>
+      <action issue="LOG4J2-2008" dev="rgoers" type="add">
+        Support printing multiple StructuredData elements in RFC5424Layout.
+      </action>
+      <action issue="LOG4J2-1986" dev="mikes" type="add">
+        Public API for parsing the output from JsonLayout/XmlLayout/YamlLayout into a LogEvent.
+      </action>
+      <action issue="LOG4J2-1984" dev="rgoers" type="update">
+        Allow maxLength of StructuredData to be specified by the user.
+      </action>
+      <action issue="LOG4J2-1071" dev="ggregory" type="update" due-to="Ben Ludkiewicz, Benjamin Jaton">
+        Allow for bufferSize=0 in SMTP appender.
+      </action>
+      <action issue="LOG4J2-1981" dev="mikes" type="add">
+        JsonLayout, XmlLayout and YamlLayout support 0-byte termination of log events.
+      </action>
+      <action issue="LOG4J2-1864" dev="mattsicker" type="add" due-to="Matthias Kappeller">
+        Support capped collections for MongoDb appender.
+      </action>
+      <action issue="LOG4J2-2016" dev="ggregory" type="fix" due-to="Benjamin Jaton">
+        Mark FileRenameAction as successful when using alternative ways to move files.
+      </action>
+      <action issue="LOG4J2-2012" dev="ggregory" type="fix" due-to="Benjamin Jaton">
+        No compression when using a separate drive in Linux.
+      </action>
+      <action issue="LOG4J2-1888" dev="ggregory" type="fix" due-to="Misagh Moayyed">
+        Log4j throws a java.nio.charset.UnsupportedCharsetException: cp65001.
+      </action>
+      <action issue="LOG4J2-1990" dev="ggregory" type="fix" due-to="Philippe Mouawad">
+        ConcurrentModificationException logging a parameter of type Map.
+      </action>
+      <action issue="LOG4J2-1311" dev="ggregory" type="fix" due-to="Xibing Liang">
+        SocketAppender will lose several events after re-connection to server.
+      </action>
+      <action issue="LOG4J2-1977" dev="ggregory" type="fix" due-to="Jerry xnslong">
+        Consider the StringBuilder's capacity instead of content length when trimming.
+      </action>
+      <action issue="LOG4J2-1971" dev="rgoers" type="fix">
+        Register log4j-core as an OSGi service. Skip tests for LOG4J2-1766 on MacOS. Use group "staff" for LOG4J2-1699 test on MacOS.
+      </action>
+      <action issue="LOG4J2-1994" dev="ggregory" type="fix">
+        TcpSocketServer does not close accepted Sockets.
+      </action>
+      <action issue="LOG4J2-1987" dev="ggregory" type="fix" due-to="Andreas Felder">
+        Log4J JUL Bridge and RMI Security Manager causes access denied ("java.util.logging.LoggingPermission" "control")
+      </action>
+      <action issue="LOG4J2-1982" dev="ggregory" type="fix" due-to="Christoph Lembeck">
+        Log4j-config.xsd only allows one AppenderRef element for each Logger element.
+      </action>
+      <action issue="LOG4J2-1985" dev="ggregory" type="fix" due-to="Kenneth McFarland">
+        Fix default buffer size to match documentation (from 8102 to 8192 a.k.a. 8KB.)
+      </action>
+      <action issue="LOG4J2-1813" dev="rpopma" type="add">
+        Log4j2 will now print all internal logging to the console if system property `log4j2.debug` is defined with any value (or no value).
+      </action>
+      <action issue="LOG4J2-1261" dev="rpopma" type="update">
+        Async Loggers no longer use deprecated LMAX Disruptor APIs. (Disruptor-3.3.3 or higher is now required.)
+      </action>
+      <action issue="LOG4J2-1908" dev="rpopma" type="update">
+        Improved error message when misconfigured with multiple incompatible appenders targeting same file.
+      </action>
+      <action issue="LOG4J2-1954" dev="rpopma" type="update">
+        Configurations with multiple root loggers now fail loudly.
+      </action>
+      <action issue="LOG4J2-1958" dev="mikes" type="update">
+        Deprecate SerializedLayout and remove it as default.
+      </action>
+      <action issue="LOG4J2-1959" dev="mikes" type="update">
+        Disable DTD processing in XML configuration files.
+      </action>
+      <action issue="LOG4J2-1766" dev="ggregory" type="add" due-to="Pierrick HYMBERT">
+        Temporary compress directory during rollover (#88).
+      </action>
+      <action issue="LOG4J2-1950" dev="ggregory" type="update" due-to="Pierrick HYMBERT">
+        Fix docker build with jdk9 requirements (#84).
+      </action>
+      <action issue="LOG4J2-1801" dev="rpopma" type="update">
+        Add more detail to WARN "Ignoring log event" messages printed to the console after log4j was shut down.
+      </action>
+      <action issue="LOG4J2-1814" dev="rpopma" type="add">
+        Added wrapper classes CustomLoggerGenerator and ExtendedLoggerGenerator to avoid class name with a dollar ($) character which has special meaning in many *nix command line environments.
+      </action>
+      <action issue="LOG4J2-1884" dev="rpopma" type="add">
+        Added process ID (pid) pattern converter.
+      </action>
+      <action issue="LOG4J2-1926" dev="rpopma" type="update">
+        Facilitate log4j use in Android applications: remove dependency on RMI and Management APIs from log4j-api.
+      </action>
+      <action issue="LOG4J2-1699" dev="ggregory" type="add" due-to="Demetrios Dimatos, Pierrick HYMBERT">
+        Configurable Log File Permissions with PosixFilePermission.
+      </action>
+      <action issue="LOG4J2-1945" dev="ggregory" type="add">
+        Generate source jas for all test jars.
+      </action>
+      <action issue="LOG4J2-1934" dev="ggregory" type="add">
+        JMS Appender does not know how to recover from a broken connection.
+      </action>
+      <action issue="LOG4J2-1955" dev="ggregory" type="add">
+        JMS Appender should be able connect to a broker (later) even it is not present at configuration time.
+      </action>
+      <action issue="LOG4J2-1956" dev="ggregory" type="update">
+        JMS Appender broker password should be a char[], not a String.
+      </action>
+      <action issue="LOG4J2-1874" dev="rpopma" type="add" due-to="Roman Leventov">
+        Added methods ::writeBytes(ByteBuffer) and ::writeBytes(byte[], int, int) to ByteBufferDestination interface and use these methods in TextEncoderHelper where possible to prepare for future enhancements to reduce lock contention.
+      </action>
+      <action issue="LOG4J2-1912" dev="ggregory" type="fix" due-to="R Ri">
+        CompositeConfiguration logs warning "Unable to determine URI for configuration." However, the reconfiguration is completed.
+      </action>
+      <action issue="LOG4J2-1964" dev="ggregory" type="fix" due-to="Pierrick HYMBERT">
+        Dynamic reconfiguration does not work for filePattern of RollingFile.
+      </action>
+      <action issue="LOG4J2-1961" dev="ggregory" type="fix" due-to="Christian Vent">
+        Reconfigure breaks DirectWriteRolloverStrategy.
+      </action>
+      <action issue="LOG4J2-1943" dev="rgoers" type="fix">
+        The eventPrefix attribute was being ignored in the RFC5424Layout.
+      </action>
+      <action issue="LOG4J2-1953" dev="ggregory" type="fix">
+        JndiManager is not released when the JmsAppender builder catches an exception trying to build itself.
+      </action>
+      <action issue="LOG4J2-1911" dev="rgoers" type="fix">
+        Improve the documentation of the DynamicThresholdFilter.
+      </action>
+      <action issue="LOG4J2-1929" dev="ggregory" type="fix" due-to="Borys Sokolov">
+        EOFException with FormattedMessage.
+      </action>
+      <action issue="LOG4J2-1948" dev="ggregory" type="fix" due-to="Michael Lück">
+        Trim levels read from properties file to remove trailing spaces.
+      </action>
+      <action issue="LOG4J2-1971" dev="ggregory" type="fix" due-to="liwenxian2017">
+        ClassCastException: org.eclipse.osgi.internal.loader.SystemBundleLoader$1 cannot be cast to java.lang.ClassLoader.
+      </action>
+      <action issue="LOG4J2-1442" dev="mikes" type="add">
+        Generic HTTP appender.
+      </action>
+      <action issue="LOG4J2-1935" dev="ggregory" type="add">
+        Add with(String, primitive) methods to org.apache.logging.log4j.message.MapMessage.
+      </action>
+      <action issue="LOG4J2-1930" dev="ggregory" type="add">
+        Add forEach() methods to org.apache.logging.log4j.message.MapMessage.
+      </action>
+      <action issue="LOG4J2-1932" dev="ggregory" type="add">
+        Add containsKey() methods to org.apache.logging.log4j.message.MapMessage.
+      </action>
+      <action issue="LOG4J2-1917" dev="rgoers" type="update">
+        Support using java.util.ServiceLoader to locate Log4j 2 API providers.
+      </action>
+      <action issue="LOG4J2-1966" dev="ggregory" type="update" due-to="M Sazzadul Hoque">
+        Include separator option of PatternLayout in manual (and other updates).
+      </action>
+      <action issue="LOG4J2-1854" dev="mikes" type="add" due-to="Xavier Jodoin">
+        Support null byte delimiter in GelfLayout.
+      </action>
+      <action issue="LOG4J2-1359" dev="rgoers" type="add">
+        Add support for Java 9 StackWalker.
+      </action>
+      <action issue="LOG4J2-1880" dev="mikes" type="add">
+        Warn when a configuration file for an inactive ConfigurationFactory is found.
+      </action>
+      <action issue="LOG4J2-1855" dev="mattsicker" type="add" due-to="Anthony Maire">
+        Add an optional random delay in TimeBasedTriggeringPolicy
+      </action>
+      <action issue="LOG4J2-1876" dev="mikes" type="fix">
+        More reliable checking for runtime dependencies.
+      </action>
+      <action issue="LOG4J2-1867" dev="mikes" type="fix">
+        Fix configuration documentation.
+      </action>
+      <action issue="LOG4J2-1858" dev="rpopma" type="fix">
+        Ensure the ThreadLocal StringBuilder in ParameterizedMessage won't hold excessively much memory after logging a long message.
+      </action>
+      <action issue="LOG4J2-1885" dev="mattsicker" type="fix">
+        Fix documentation about default additivity value for loggers.
+      </action>
+      <action issue="LOG4J2-1920" dev="ggregory" type="fix" due-to="Ajitha">
+        ScriptEngineManager is not available in Android and causes a NoClassDefFoundError.
+      </action>
+      <action issue="LOG4J2-1989" dev="ggregory" type="fix" due-to="Kenneth McFarland">
+        Clarify Javadoc for AbstractTriggeringPolicy.
+      </action>
+      <action issue="LOG4J2-1993" dev="ggregory" type="fix" due-to="Kenneth McFarland">
+        Fix compiler warnings in LoggerConfigTest.
+      </action>
+      <action issue="LOG4J2-1851" dev="mikes" type="update">
+        Move server components from log4j-core to new log4-server module.
+      </action>
+      <action issue="LOG4J2-1860" dev="mikes" type="add">
+        Shortcut to add Property and KeyValuePair component in ConfigurationBuilder.
+      </action>
+      <action issue="LOG4J2-1294" dev="ggregory" type="add">
+        The JMS Appender should use a JMS MapMessage for a Log4j MapMessage.
+      </action>
+      <action issue="LOG4J2-1991" dev="ggregory" type="update" due-to="">
+        Refactor SimpleMessage to be concise and clear (#100)
+      </action>
+      <action issue="LOG4J2-2017" dev="ggregory" type="update">
+        Update Jackson from 2.8.9 to 2.9.0.
+      </action>
+      <action issue="LOG4J2-1868" dev="ggregory" type="update">
+        Update ZeroMQ's JeroMQ from 0.3.6 to 0.4.0.
+      </action>
+      <action issue="LOG4J2-1960" dev="ggregory" type="update">
+        Update ZeroMQ's JeroMQ from 0.4.0 to 0.4.1.
+      </action>
+      <action issue="LOG4J2-1974" dev="ggregory" type="update">
+        Update ZeroMQ's JeroMQ from 0.4.1 to 0.4.2.
+      </action>
+      <action issue="LOG4J2-1869" dev="ggregory" type="update">
+        Update Kafka client from 0.10.1.1 to 0.10.2.0
+      </action>
+      <action issue="LOG4J2-1962" dev="ggregory" type="update">
+        Update Kafka client from 0.10.2.0 to 0.11.0.0
+      </action>
+      <action issue="LOG4J2-1872" dev="ggregory" type="update">
+		Update JavaMail from 1.5.5 to 1.5.6.
+      </action>
+      <action issue="LOG4J2-1879" dev="ggregory" type="update">
+		Update JAnsi from 1.14 to 1.15.
+      </action>
+      <action issue="LOG4J2-1877" dev="ggregory" type="update" due-to="Chandra Tungathurthi">
+		Missing documentation for Max index limit in DefaultRolloverStrategy.
+      </action>
+      <action issue="LOG4J2-1899" dev="ggregory" type="update">
+        Add missing getters to classes in package org.apache.logging.log4j.core.net.ssl.
+      </action>
+      <action issue="LOG4J2-1900" dev="ggregory" type="update">
+        Update JAnsi from 1.15 to 1.16.
+      </action>
+      <action issue="LOG4J2-" dev="ggregory" type="update">
+        Update SLF4J from 1.7.24 to 1.7.25.
+      </action>
+      <action issue="LOG4J2-1938" dev="ggregory" type="update">
+        Update Jackson from 2.8.7 to 2.8.9.
+      </action>
+      <action issue="LOG4J2-1970" dev="rpopma" type="update">
+        Update HdrHistogram from 2.1.8 to 2.1.9.
+      </action>
+      <action issue="LOG4J2-1975" dev="ggregory" type="update">
+        Update javax.persistence from 2.1.0 to 2.1.1.
+      </action>
+      <action issue="LOG4J2-1976" dev="ggregory" type="update">
+        Update org.osgi.core from 4.3.1 to 6.0.0.
+      </action>
+    </release>
+    <release version="2.8.2" date="2017-04-02" description="GA Release 2.8.2">
+      <action issue="LOG4J2-1861" dev="mattsicker" type="fix">
+        Fix JavaDoc on org.apache.logging.log4j.ThreadContext about inheritance.
+      </action>
+      <action issue="LOG4J2-1862" dev="mattsicker" type="fix" due-to="wangyuntao">
+        Fix JavaDoc about @Order and OrderComparator ordering.
+      </action>
+      <action issue="LOG4J2-1849" dev="rpopma" type="fix">
+        Fixed daylight savings time (DST) issue with FixedDateFormat.
+      </action>
+      <action issue="LOG4J2-1850" dev="mattsicker" type="fix" due-to="Ludovic Hochet">
+        Fix CassandraRule and unit tests on Windows.
+      </action>
+      <action issue="LOG4J2-1840" dev="mattsicker" type="fix" due-to="Pradeep Balasundaram">
+        Fix typo in %replace converter documentation.
+      </action>
+      <action issue="LOG4J2-1846" dev="mikes" type="fix">
+        Handle when LogEvent.getLoggerName() returns null in LoggerNameLevelRewritePolicy.
+      </action>
+      <action issue="LOG4J2-1845" dev="mikes" type="fix">
+        Handle when LogEvent.getLoggerName() returns null in KafkaAppender.
+      </action>
+      <action issue="LOG4J2-1853" dev="ggregory" type="fix" due-to="wangyuntao">
+        The default value of RandomAccessFileAppender.Builder append field is wrong.
+      </action>
+      <action issue="LOG4J2-1863" dev="mattsicker" type="add">
+        Add support for filtering input in TcpSocketServer and UdpSocketServer.
+      </action>
+      <action issue="LOG4J2-1848" dev="mattsicker" type="add">
+        Add JSON encoding support to EncodingPatternConverter %encode{}.
+      </action>
+      <action issue="LOG4J2-1843" dev="mattsicker" type="add" due-to="Zilong Song">
+        Add support for appending common suffix to each line of throwable stack trace.
+      </action>
+      <action issue="LOG4J2-1838" dev="mattsicker" type="add" due-to="Zilong Song">
+        Add support for appending common suffix to each line of extended and root throwable stack trace.
+      </action>
+      <action issue="LOG4J2-1827" dev="rgoers" type="update">
+        Move integration tests to their own module to speed up build.
+      </action>
+      <action issue="LOG4J2-1835" dev="mattsicker" type="fix">
+        Fix documentation about the licensing for JeroMQ.
+      </action>
+      <action issue="LOG4J2-1836" dev="rgoers" type="fix">
+        Update the API version to 2.6.0.
+      </action>
+      <action issue="LOG4J2-1831" dev="ggregory" type="fix" due-to="Edward Serebrinskiy">
+        NullPointerException in HtmlLayout.
+      </action>
+      <action issue="LOG4J2-1820" dev="ggregory" type="fix" due-to="Jason Tedor">
+        Log4j 2.8 can lose exceptions when a security manager is present.
+      </action>
+      <action issue="LOG4J2-1856" dev="ggregory" type="update">
+        Update Jackson from 2.8.6 to 2.8.7.
+      </action>
+    </release>
+    <release version="2.8.1" date="2017-02-26" description="GA Release 2.8.1">
+      <action issue="LOG4J2-1804" dev="rgoers" type="fix" due-to="Pierrick Hymbert">
+        Allow %i in file pattern to be preceded with characters other than just '-'.
+      </action>
+      <action issue="LOG4J2-1822" dev="rgoers" type="update">
+        Update SLF4J to 1.7.24.
+      </action>
+      <action issue="LOG4J2-1812" dev="rpopma" type="update">
+        Improved error message when log4j 2 configuration file not found.
+      </action>
+      <action issue="LOG4J2-1810" dev="rgoers" type="update">
+        Update to use Logback 1.1.10 and then Logback 1.2 for tests.
+      </action>
+      <action issue="LOG4J2-1819" dev="ggregory" type="update">
+        Update Jackson from 2.8.5 to 2.8.6.
+      </action>
+      <action issue="LOG4J2-1753" dev="ggregory" type="fix" due-to="Ludovic Hochet">
+        Fix ClassNotFoundException org.apache.logging.log4j.core.util.ExecutorServices in OSGi tests.
+      </action>
+      <action issue="LOG4J2-1816" dev="rpopma" type="fix" due-to="shubhankar1100">
+        Change minOccur to minOccurs in Log4j-config.xsd.
+      </action>
+      <action issue="LOG4J2-1803" dev="rgoers" type="fix">
+        Fix Maven POM to ensure JMH generated classes in log4j-perf are included in benchmarks jar.
+      </action>
+      <action issue="LOG4J2-1800" dev="mikes" type="fix" due-to="Vincent Tieleman">
+        Report errors when sending to Kafka when using syncSend=false.
+      </action>
+      <action issue="LOG4J2-1805" dev="rpopma" type="fix">
+        Fixed rare race condition in FixedDateFormat, made FixedDateFormat::millisSinceMidnight method public.
+      </action>
+      <action issue="LOG4J2-1799" dev="rpopma" type="fix" due-to="Eduard Gizatullin">
+        Fixed bug in PropertiesUtil::getCharsetProperty that caused UnsupportedCharsetException for ConsoleAppender.
+      </action>
+      <action issue="LOG4J2-1806" dev="rpopma" type="fix" due-to="challarao">
+        Fix Javadoc for DefaultRolloverStrategy::purgeAscending
+      </action>
+      <action issue="LOG4J2-1818" dev="ggregory" type="fix" due-to="xkr47">
+        Fix rollover to work when filePattern contains no directory components.
+      </action>
+      <action issue="LOG4J2-1823" dev="mattsicker" type="add">
+        Remove deprecation on MessageSupplier lambda functions in Logger API.
+      </action>
+      <action issue="LOG4J2-1807" dev="ggregory" type="add">
+        [core] Add and implement LogEvent.toImmutable().
+      </action>
+    </release>
+    <release version="2.8" date="2017-01-21" description="GA Release 2.8">
+      <action issue="LOG4J2-1780" dev="mikes" type="fix">
+        Eliminate the use of the ExecutorServices in the LoggerContext.
+      </action>
+      <action issue="LOG4J2-1032" dev="rgoers" type="add">
+        Make DefaultRolloverStrategy more efficient when renaming files. Add nomax option to the fileIndex attribute.
+      </action>
+      <action issue="LOG4J2-1101" dev="rgoers" type="add">
+        RollingFileAppender now supports omitting the file name and writing directly to the archive files.
+      </action>
+      <action issue="LOG4J2-1786" dev="rpopma" type="fix">
+        ConfigurationScheduler now preserves interrupt flag during stop.
+      </action>
+      <action issue="LOG4J2-1243" dev="rgoers" type="add">
+        Allow default value in property to be a Lookup.
+      </action>
+      <action issue="LOG4J2-1779" dev="rpopma" type="fix">
+        Fixed bug where AsyncLogger did not resolve configuration properties.
+      </action>
+      <action issue="LOG4J2-1769" dev="rpopma" type="fix" due-to="Brandon Goodin">
+        Fixed concurrency issue affecting all layouts except PatternLayout and GelfLayout, which caused scrambled output and exceptions when logging synchronously from multiple threads.
+      </action>
+      <action issue="LOG4J2-1724" dev="mikes" type="fix" due-to="Alexander Krasnostavsky">
+        Using variables in GelfLayout's additional fields at runtime.
+      </action>
+      <action issue="LOG4J2-1762" dev="mikes" type="fix">
+        Add Builder to GelfLayout.
+      </action>
+      <action issue="LOG4J2-1649" dev="rgoers" type="fix" due-to="Georg Friedrich">
+        Insure the ConfigurationScheduler shuts down without blocking.
+      </action>
+      <action issue="LOG4J2-1653" dev="rgoers" type="fix" due-to=" Georg Friedrich">
+        CronTriggeringPolicy would use the wrong date/time when rolling over and create multiple triggering policies on reconfiguration.
+      </action>
+      <action issue="LOG4J2-1748" dev="mikes" type="fix">
+        Do not use non-daemon thread pool for rollover tasks.
+      </action>
+      <action issue="LOG4J2-1628" dev="rpopma" type="fix">
+        Fixed file locking regression in FileAppender introduced in 2.6.
+      </action>
+      <action issue="LOG4J2-1744" dev="rpopma" type="fix">
+        The custom logger Generate tool no longer requires the log4j-api module on the classpath.
+      </action>
+      <action issue="LOG4J2-1731" dev="rpopma" type="fix" due-to="Chris Ribble">
+        SslSocketManager now respects connectTimeoutMillis.
+      </action>
+      <action issue="LOG4J2-1682" dev="ggregory" type="fix" due-to="Markus Waidhofer">
+        Logger using LocalizedMessageFactory prints key instead of message.
+      </action>
+      <action issue="LOG4J2-1720" dev="mikes" type="fix">
+        Make GelfLayout independent of Jackson.
+      </action>
+      <action issue="LOG4J2-1719" dev="rpopma" type="fix">
+        Fixed race condition in ObjectMessage and SimpleMessage, ensuring that the log message contains the value the object has during the logging call.
+      </action>
+      <action issue="LOG4J2-1688" dev="rpopma" type="fix">
+        Fixed bug where elements of a log message parameter array were nulled out in garbage-free mode.
+      </action>
+      <action issue="LOG4J2-1692" dev="mikes" type="fix" due-to="Greg Thomas">
+        Add putAll() method to CloseableThreadContext.
+      </action>
+      <action issue="LOG4J2-1689" dev="mikes" type="fix">
+        Add CleanableThreadContextMap interface supporting method removeAll(Iterable&lt;String&gt;).
+      </action>
+      <action issue="LOG4J2-1685" dev="mikes" type="fix" due-to="Raman Gupta">
+        Option 'disableAnsi' in PatternLayout to unconditionally disable ANSI escape codes.
+      </action>
+      <action issue="LOG4J2-1706" dev="rpopma" type="fix">
+        Make TimeFilter usable as global filter and as logger filter.
+      </action>
+      <action issue="LOG4J2-1722" dev="rpopma" type="fix">
+        (GC) Avoid allocating temporary objects in VariablesNotEmptyReplacementConverter.
+      </action>
+      <action issue="LOG4J2-1717" dev="rpopma" type="fix">
+        (GC) Avoid allocating temporary objects in EncodingPatternConverter.
+      </action>
+      <action issue="LOG4J2-1716" dev="rpopma" type="fix">
+        (GC) Avoid allocating temporary objects in MapPatternConverter. (Note that constructing a MapMessage is not garbage-free.)
+      </action>
+      <action issue="LOG4J2-1683" dev="rpopma" type="fix">
+        (GC) Avoid allocating temporary objects in MapMessage.
+      </action>
+      <action issue="LOG4J2-1715" dev="rpopma" type="fix">
+        (GC) Avoid allocating temporary objects in NdcPatternConverter. (Note that use of the ThreadContext stack is not garbage-free.)
+      </action>
+      <action issue="LOG4J2-1714" dev="rpopma" type="fix">
+        (GC) Avoid allocating temporary objects in AbstractStyleNameConverter.
+      </action>
+      <action issue="LOG4J2-1680" dev="rpopma" type="fix">
+        (GC) Avoid allocating temporary objects in TimeFilter.
+      </action>
+      <action issue="LOG4J2-1679" dev="rpopma" type="fix">
+        (GC) Avoid allocating temporary objects in StructuredDataFilter.
+      </action>
+      <action issue="LOG4J2-1678" dev="rpopma" type="fix">
+        (GC) Avoid allocating temporary objects in ThreadContextMapFilter.
+      </action>
+      <action issue="LOG4J2-1677" dev="rpopma" type="fix">
+        (GC) Avoid allocating temporary objects in MapFilter.
+      </action>
+      <action issue="LOG4J2-1674" dev="rpopma" type="fix">
+        (GC) Avoid allocating temporary objects in ThresholdFilter.
+      </action>
+      <action issue="LOG4J2-1673" dev="rpopma" type="fix">
+        (GC) Avoid allocating temporary objects in MarkerFilter.
+      </action>
+      <action issue="LOG4J2-1672" dev="rpopma" type="fix">
+        (GC) Avoid allocating temporary objects in LevelRangeFilter.
+      </action>
+      <action issue="LOG4J2-1671" dev="rpopma" type="fix">
+        (GC) Avoid allocating temporary objects in EqualsIgnoreCaseReplacementConverter.
+      </action>
+      <action issue="LOG4J2-1670" dev="rpopma" type="fix">
+        (GC) Avoid allocating temporary objects in EqualsReplacementConverter.
+      </action>
+      <action issue="LOG4J2-1669" dev="rpopma" type="fix">
+        (GC) Avoid allocating temporary objects in MaxLengthConverter.
+      </action>
+      <action issue="LOG4J2-1668" dev="rpopma" type="fix">
+        (GC) Avoid allocating temporary objects in MarkerPatternConverter.
+      </action>
+      <action issue="LOG4J2-1667" dev="rpopma" type="fix">
+        (GC) Avoid allocating temporary objects in SequenceNumberPatternConverter.
+      </action>
+      <action issue="LOG4J2-1666" dev="rpopma" type="fix">
+        (GC) Avoid allocating temporary objects in RelativeTimePatternConverter.
+      </action>
+      <action issue="LOG4J2-1665" dev="rpopma" type="fix">
+        (GC) Avoid allocating temporary objects in IntegerPatternConverter.
+      </action>
+      <action issue="LOG4J2-1637" dev="rpopma" type="fix">
+        Fixed problems when used in OSGi containers (IllegalAccessError, NoClassDefFoundError).
+      </action>
+      <action issue="LOG4J2-1226" dev="rpopma" type="fix">
+        Improve LogEvent serialization to handle non-serializable Messages and deserializing when required classes are missing.
+      </action>
+      <action issue="LOG4J2-1663" dev="rpopma" type="fix">
+        Ensure SortedArrayStringMap can be serialized and deserialized without errors regardless of content.
+      </action>
+      <action issue="LOG4J2-1658" dev="rpopma" type="fix">
+        Prevent NPE in ThreadContextMapFactory::createThreadContextMap when initializing Log4j with Configurator::initialize and the BasicContextSelector is used.
+      </action>
+      <action issue="LOG4J2-1645" dev="mikes" type="fix">
+        Immutable empty StringMap.
+      </action>
+      <action issue="LOG4J2-1623" dev="mikes" type="fix">
+        Configurable JVM shutdown hook timeout.
+      </action>
+      <action issue="LOG4J2-1712" dev="ggregory" type="fix">
+        Pick up bug fixes from Apache Commons Lang's org.apache.commons.lang3.time package.
+      </action>
+      <action issue="LOG4J2-1636" dev="ggregory" type="fix" due-to="Eldar Gabdullin">
+        Console Appender does not pick up Oracle Java 8's sun.stdout.encoding and sun.stderr.encoding.
+      </action>
+      <action issue="LOG4J2-1639" dev="ggregory" type="fix" due-to="Sridhar Gopinath">
+        Fix MemoryMappedFileAppender.createAppender() Javadoc for immediateFlush.
+      </action>
+      <action issue="LOG4J2-1676" dev="ggregory" type="fix" due-to="Joern Huxhorn">
+        Some LogEvents may not carry a Throwable (Use Message.getThrowable() in log(Message) methods.)
+      </action>
+      <action issue="LOG4J2-1723" dev="ggregory" type="fix" due-to="Ludovic HOCHET">
+        Unwanted transitive dependency on geronimo-jms_1.1_spec causes OSGi tests to fail.
+      </action>
+      <action issue="LOG4J2-1664" dev="ggregory" type="fix" due-to="Ludovic HOCHET">
+        Improve OSGi unit tests.
+      </action>
+      <action issue="LOG4J2-1687" dev="ggregory" type="fix" due-to="Robert Christiansen">
+        NPE in ThrowableProxy when resolving stack in Java EE/OSGi environment.
+      </action>
+      <action issue="LOG4J2-1642" dev="ggregory" type="fix" due-to="Johno Crawford">
+        DefaultShutdownCallbackRegistry can throw a NoClassDefFoundError.
+      </action>
+      <action issue="LOG4J2-1474" dev="ggregory" type="fix" due-to="yin mingjun, Neon">
+        CronTriggeringPolicy raise exception and fail to rollover log file when evaluateOnStartup is true.
+      </action>
+      <action issue="LOG4J2-1734" dev="ggregory" type="fix">
+        SslSocketManagerFactory might leak Sockets when certain startup errors occur.
+      </action>
+      <action issue="LOG4J2-1736" dev="ggregory" type="fix">
+        TcpSocketManagerFactory might leak Sockets when certain startup errors occur.
+      </action>
+      <action issue="LOG4J2-1740" dev="ggregory" type="fix">
+        Add CronTriggeringPolicy programmatically leads to NPE.
+      </action>
+      <action issue="LOG4J2-1743" dev="ggregory" type="fix" due-to="Toby Shepheard">
+        CompositeConfiguration does not add filters to appenderRefs.
+      </action>
+      <action issue="LOG4J2-1756" dev="ggregory" type="fix"  due-to="shubhankar1100">
+        Adds xmlns in schema and some other tags.
+      </action>
+      <action issue="LOG4J2-1781" dev="mattsicker" type="update">
+        Update Conversant Disruptor from 1.2.7 to 1.2.10
+      </action>
+      <action issue="LOG4J2-1774" dev="mattsicker" type="update">
+        Replace MockEJB dependency in unit tests with Spring Test and Mockito.
+      </action>
+      <action issue="LOG4J2-1644" dev="ggregory" type="update" due-to="Tim Gokcen, Pavel Sivolobtchik">
+        Inefficient locking in AbstractLoggerAdapter.
+      </action>
+      <action issue="LOG4J2-1641" dev="ggregory" type="update">
+        Update JeroMQ from 0.3.5 to 0.3.6.
+      </action>
+      <action issue="LOG4J2-1647" dev="mattsicker" type="update">
+        Update Commons Lang from 3.4 to 3.5.
+      </action>
+      <action issue="LOG4J2-1646" dev="mattsicker" type="update">
+        Migrate to Mockito 2.x in unit tests.
+      </action>
+      <action issue="LOG4J2-1655" dev="ggregory" type="update">
+        Update Jackson from 2.8.3 to 2.8.4.
+      </action>
+      <action issue="LOG4J2-1735" dev="ggregory" type="update">
+        Update Jackson from 2.8.4 to 2.8.5.
+      </action>
+      <action issue="LOG4J2-1656" dev="ggregory" type="update">
+        Update Apache Flume from 1.6.0 to 1.7.0.
+      </action>
+      <action issue="LOG4J2-1698" dev="ggregory" type="update">
+        Update LMAX Disruptor from 3.3.5 to 3.3.6.
+      </action>
+      <action issue="LOG4J2-1700" dev="ggregory" type="update">
+        Update Jansi from 1.13 to 1.14.
+      </action>
+      <action issue="LOG4J2-1750" dev="ggregory" type="update">
+        Update Kafka from 0.10.0.1 to 0.10.1.1.
+      </action>
+      <action issue="LOG4J2-1751" dev="ggregory" type="update">
+        Update liquibase-core from 3.5.1 to 3.5.3.
+      </action>
+      <action issue="LOG4J2-1302" dev="rpopma" type="update">
+        The log4j-slf4j-impl module now declares a runtime dependency on log4j-core. While not technically required, this makes the log4j-slf4j-impl module behave similarly to slf4j-log4j12, and facilitates migration to Log4j 2.
+      </action>
+      <action issue="LOG4J2-1787" dev="mattsicker" type="add">
+        Document how to exclude transitive conflicting dependencies in Maven and Gradle.
+      </action>
+      <action issue="LOG4J2-1773" dev="mattsicker" type="add">
+        Add StatusLoggerRule to allow unit tests to set a status level.
+      </action>
+      <action issue="LOG4J2-424" dev="mattsicker" type="add">
+        Add non-string data type support to JdbcAppender via new ColumnMapping plugin.
+      </action>
+      <action issue="LOG4J2-1771" dev="mattsicker" type="add">
+        Add a Builder to ColumnConfig and deprecate ColumnConfig.createColumnConfig().
+      </action>
+      <action issue="LOG4J2-1770" dev="mattsicker" type="add">
+        Add a Builder to JdbcAppender and deprecate JdbcAppender.createAppender().
+      </action>
+      <action issue="LOG4J2-1764" dev="mattsicker" type="add">
+        Use MethodHandle in ContextDataFactory cached constructor.
+      </action>
+      <action issue="LOG4J2-1730" dev="mattsicker" type="add">
+        Add Apache Cassandra appender and ColumnMapping plugin.
+      </action>
+      <action issue="LOG4J2-1759" dev="mattsicker" type="add">
+        Add TypeConverter for java.util.UUID.
+      </action>
+      <action issue="LOG4J2-1758" dev="mattsicker" type="add">
+        Add TypeConverter for java.nio.file.Path.
+      </action>
+      <action issue="LOG4J2-1755" dev="mattsicker" type="add">
+        Add TypeConverter and constraint validators for java.net.InetAddress and port numbers.
+      </action>
+      <action issue="LOG4J2-969" dev="ggregory" type="add">
+        Refactor SyslogAppender so that Layout is a Plugin element.
+      </action>
+      <action issue="LOG4J2-1660" dev="rpopma" type="add">
+        Added public method ThreadContext::getThreadContextMap; removed class ThreadContextAccess.
+      </action>
+      <action issue="LOG4J2-1379" dev="mattsicker" type="add">
+        Add documentation regarding YAML configuration format.
+      </action>
+      <action issue="LOG4J2-1718" dev="rpopma" type="add">
+        Introduce marker interface AsynchronouslyFormattable.
+      </action>
+      <action issue="LOG4J2-1681" dev="rpopma" type="add">
+        Introduce interfaces IndexedStringMap and IndexedReadOnlyStringMap, supporting garbage-free iteration over sorted map.
+      </action>
+      <action issue="LOG4J2-1695" dev="ggregory" type="add">
+        Add a Builder to ScriptPatternSelector and deprecate ScriptPatternSelector.createSelector().
+      </action>
+      <action issue="LOG4J2-1696" dev="ggregory" type="add">
+        Add a Builder to MarkerPatternSelector and deprecate MarkerPatternSelector.createSelector().
+      </action>
+      <action issue="LOG4J2-1697" dev="ggregory" type="add">
+        Add a SerializerBuilder to PatternLayout and deprecate PatternLayout.createSerializer().
+      </action>
+      <action issue="LOG4J2-1701" dev="ggregory" type="add">
+        Add a Builder to RandomAccessFileAppender and deprecate RandomAccessFileAppender.createAppender().
+      </action>
+      <action issue="LOG4J2-1703" dev="ggregory" type="add">
+        Add a Builder to MemoryMappedFileAppender and deprecate MemoryMappedFileAppender.createAppender().
+      </action>
+      <action issue="LOG4J2-1704" dev="ggregory" type="add">
+        Add a Builder to RollingRandomAccessFileAppender and deprecate RollingRandomAccessFileAppender.createAppender().
+      </action>
+      <action issue="LOG4J2-1709" dev="ggregory" type="add">
+        Add a Builder to SyslogAppender and deprecate SyslogAppender.createAppender().
+      </action>
+      <action issue="LOG4J2-1707" dev="ggregory" type="add">
+        Allow TCP Socket Appender to set socket options.
+      </action>
+      <action issue="LOG4J2-1708" dev="ggregory" type="add">
+        Allow Secure Socket Appender to set socket options.
+      </action>
+      <action issue="LOG4J2-1737" dev="ggregory" type="add">
+        Add a Builder to SyslogLayout and deprecate SyslogLayout.createLayout(Facility, boolean, String, Charset).
+      </action>
+      <action issue="LOG4J2-1738" dev="ggregory" type="add">
+        Add a Builder to JsonLayout and deprecate org.apache.logging.log4j.core.layout.JsonLayout.createLayout(Configuration, boolean, boolean, boolean, boolean, boolean, boolean, String, String, Charset, boolean).
+      </action>
+      <action issue="LOG4J2-1739" dev="ggregory" type="add">
+        Add Builder to KafkaAppender and deprecate KafkaAppender.createAppender(Layout, Filter, String, boolean, String, Property[], Configuration).
+      </action>
+      <action issue="LOG4J2-1733" dev="ggregory" type="add" due-to="Vincent Tieleman">
+        Add SyncSend attribute to KafkaAppender (as in KafkaLog4jAppender).
+      </action>
+      <action issue="LOG4J2-2195" dev="ggregory" type="fix" due-to="Raman Gupta, Gary Gregory">
+        Cannot define both `filters` and `separator` for PatternLayout %xEx.
+      </action>
+      <action issue="LOG4J2-2221" dev="ggregory" type="fix" due-to="Raman Gupta, Gary Gregory">
+        RootThrowablePatternConverter does not use TextRenderer or line separator options.
+      </action>
+    </release>
+    <release version="2.7" date="2016-10-02" description="GA Release 2.7">
+      <action issue="LOG4J2-1618" dev="rpopma" type="fix" due-to="Raman Gupta">
+        Fixed ClassCastException when using JUL logging during shutdown.
+      </action>
+      <action issue="LOG4J2-1620" dev="ggregory" type="fix" due-to="Sascha Scholz">
+        2.7-rc1: RollingFileAppender immediateFlush default value should be true, not false.
+      </action>
+      <action issue="LOG4J2-1611" dev="rpopma" type="fix">
+        Improved performance of context data injector for web applications to be on par with standalone applications.
+      </action>
+      <action issue="LOG4J2-1591" dev="rpopma" type="fix">
+        Introduced new interface LifeCycle2 with stop(long,TimeUnit) method to avoid breaking backwards compatibility with new Configurator.shutdown(LoggerContext, long, TimeUnit) API.
+      </action>
+      <action issue="LOG4J2-1590" dev="rpopma" type="fix">
+        Fixed issue with filters extending AbstractFilter that did not override methods with unrolled varargs.
+      </action>
+      <action issue="LOG4J2-1583" dev="rpopma" type="fix" due-to="Larry West">
+        Fixed scrambled log messages triggered by nested logging from toString() method of a logging parameter object.
+      </action>
+      <action issue="LOG4J2-1259" dev="ggregory" type="fix" due-to="Misagh Moayyed, Steffen Offermann">
+        Log4j threads are no longer leaking on Tomcat shutdown.
+      </action>
+      <action issue="LOG4J2-1051" dev="rpopma" type="fix" due-to="Lukasz Lenart">
+        When starting on Google App Engine, Interpolator now suppresses the NoClassDefFoundError stack trace  for the jvmrunargs lookup.
+      </action>
+      <action issue="LOG4J2-1582" dev="rpopma" type="fix">
+        When initializing on platforms where JMX is not available, Interpolator component no longer prints stack trace for warning messages.
+      </action>
+      <action issue="LOG4J2-1581" dev="rpopma" type="fix">
+        Unregistering JMX components no longer prints a stack trace when the MBean has already been unregistered.
+      </action>
+      <action issue="LOG4J2-1313" dev="rpopma" type="fix" due-to="Philipp Knobel, Leon Finker">
+        Support Property values to be specified in configuration as a value attribute as well as an element.
+      </action>
+      <action issue="LOG4J2-1575" dev="rpopma" type="fix">
+        (GC) LoggerConfig now stores configuration properties in a List, not a Map to prevent creating temporary Iterator objects. Added method LoggerConfig#getPropertyList(), deprecated method #getProperties().
+      </action>
+      <action issue="LOG4J2-1457" dev="mattsicker" type="fix" due-to="Leon Finker">
+        Fixed class loader deadlock when using async logging and extended stack trace pattern.
+      </action>
+      <action issue="LOG4J2-1563" dev="ggregory" type="fix" due-to="Jason Tedor">
+        Fix to prevent Log4j 2.6.2 and higher from losing exceptions when a security manager is present.
+      </action>
+      <action issue="LOG4J2-1530" dev="mikes" type="fix">
+        Fixed issue where LogEvent.getContextStack() returned null.
+      </action>
+      <action issue="LOG4J2-1518" dev="rpopma" type="fix" due-to="Leon Finker">
+        Prevent deadlock in Async Loggers when queue is full and logged Object's toString() logs another message.
+      </action>
+      <action issue="LOG4J2-1542" dev="rpopma" type="fix" due-to="Rogério Lecarião Leite">
+        Prevent ArrayIndexOutOfBoundsException in ParameterizedMessage.formatTo for single-char or empty messages.
+      </action>
+      <action issue="LOG4J2-1549" dev="mikes" type="fix" due-to="Jason Bedard">
+        Fixed issue where AsyncLoggerContextSelector+PropertiesConfigurationBuilder defaulted to includeLocation=true.
+      </action>
+      <action issue="LOG4J2-1562" dev="ggregory" type="fix">
+        Prevent SocketAppender memory usage from growing unbounded if it cannot connect to a server.
+      </action>
+      <action issue="LOG4J2-1559" dev="ggregory" type="fix" due-to="Andrey Plotkin">
+        Prevent NPE in Level.isInRange.
+      </action>
+      <action issue="LOG4J2-1511" dev="ggregory" type="fix" due-to="Srikanth Surukuntu">
+        DynamicThresholdFilter filtered incorrectly when params were passed as individual arguments instead of varargs.
+      </action>
+      <action issue="LOG4J2-1548" dev="ggregory" type="fix">
+        [CronTriggeringPolicy] ConfigurationScheduler scheduled the task infinitely after first fire.
+      </action>
+      <action issue="LOG4J2-1506" dev="ggregory" type="fix" due-to="Johannes Schleger">
+        Log4j should not unregister JMX MBeans when log4j2.disable.jmx property is true.
+      </action>
+      <action issue="LOG4J2-1490" dev="ggregory" type="fix" due-to="Krzysztof Taborski">
+        Log4j2 should postpone creating log file until the appender actually receives an event.
+      </action>
+      <action issue="LOG4J2-1320" dev="ggregory" type="fix" due-to="Paresh Varke, Pierrick Hymbert">
+        Support loading custom plugins from jar files and directories whose classpath entries use the "vfs" URL protocol.
+      </action>
+      <action issue="LOG4J2-1541" dev="ggregory" type="fix">
+        Fix file handle resource leak in XmlConfiguration.XmlConfiguration(ConfigurationSource).
+      </action>
+      <action issue="LOG4J2-1538" dev="ggregory" type="fix" due-to="Igor Karpov">
+        Prevent NPE when dynamically removing filters.
+      </action>
+      <action issue="LOG4J2-1532" dev="ggregory" type="fix">
+        Attributes were not merged properly in composite configurations.
+      </action>
+      <action issue="LOG4J2-1529" dev="mattsicker" type="fix" due-to="Sridevi Narra">
+        Attributes were not merged properly in composite configurations.
+      </action>
+      <action issue="LOG4J2-1527" dev="rpopma" type="fix" due-to="Jose Leon">
+        Prevent NPE in RingBufferLogEvent.getFormattedMessage() when used in web applications.
+      </action>
+      <action issue="LOG4J2-905" dev="ggregory" type="fix" due-to="Moritz Löser">
+        Added ability to disable (date) lookup completely for compatibility with other libraries like Camel.
+      </action>
+      <action issue="LOG4J2-1526" dev="mikes" type="fix">
+        Added support for setting StatusLogger destination in ConfigurationBuilder.
+      </action>
+      <action issue="LOG4J2-1448" dev="rpopma" type="fix" due-to="Keith Laban">
+        Allow comma separated agents, host list to be passed to FlumeAppender.
+      </action>
+      <action issue="LOG4J2-1500" dev="ggregory" type="fix" due-to="Jose Leon">
+        Merging configurations failed with an NPE when comparing Nodes with different attributes.
+      </action>
+      <action issue="LOG4J2-1482" dev="ggregory" type="fix" due-to="Sumit Singhal">
+        Fixed improper header in CsvParameterLayout.
+      </action>
+      <action issue="LOG4J2-1199" dev="rpopma" type="fix">
+        Documented that JVM Input Arguments Lookup (JMX) is not available on Google App Engine.
+      </action>
+      <action issue="LOG4J2-1438" dev="rpopma" type="fix">
+        (GC) Added method getParameter() to ObjectMessage (and ReusableObjectMessage).
+      </action>
+      <action issue="LOG4J2-1488" dev="rpopma" type="fix" due-to="Richard Zschech">
+        (GC) Fixed ISO8601 %date conversion pattern with a period '.' separator for milliseconds is now garbage free.
+      </action>
+      <action issue="LOG4J2-1489" dev="rpopma" type="fix" due-to="Richard Zschech">
+        (GC) Fixed %date conversion patterns with a timezone parameter are now garbage free.
+      </action>
+      <action issue="LOG4J2-1279" dev="rpopma" type="fix" due-to="Tony Baines">
+        Prevent NullPointerException in FastDateParser$TimeZoneStrategy.
+      </action>
+      <action issue="LOG4J2-1341" dev="rpopma" type="fix" due-to="Richard Zschech">
+        (GC) HighlightConverter and StyleConverter are now GC-free.
+      </action>
+      <action issue="LOG4J2-1467" dev="rpopma, ggregory" type="fix" due-to="Ralf, Gary Gregory">
+        [OSGi] Fixed missing import package.
+      </action>
+      <action issue="LOG4J2-351" dev="rpopma, ggregory" type="fix" due-to="Roland Weiglhofer">
+        [OSGi] Fixed wrong Fragment-Host in manifest files.
+      </action>
+      <action issue="LOG4J2-1313" dev="rpopma" type="fix" due-to="Philipp Knobel">
+        Properties declared in configuration can now have their value either in the element body or in an attribute named "value".
+      </action>
+      <action issue="LOG4J2-1235" dev="ggregory" type="fix" due-to="Niranjan Rao, Sascha Scholz, Aleksey Zvolinsky">
+        org.apache.logging.log4j.core.appender.routing.IdlePurgePolicy was not working correctly.
+      </action>
+      <action issue="LOG4J2-1502" dev="ggregory" type="fix" due-to="Sumit Singhal">
+        Fixed issue where CsvParameterLayout and CsvLogEventLayout inserted NUL characters if data starts with {, (, [ or "
+      </action>
+      <action issue="LOG4J2-1573" dev="ggregory" type="fix" due-to="Steffen Offermann">
+        Layout is no longer optional.
+      </action>
+      <action issue="LOG4J2-1608" dev="ggregory" type="fix">
+        ServletAppender does not provide throwable object to ServletContext.
+      </action>
+      <action issue="LOG4J2-1599" dev="ggregory" type="fix">
+        Prevent potential NPE in org.apache.logging.log4j.message.ParameterFormatter.formatMessage3(StringBuilder, char[], int, Object[], int, int[]).
+      </action>
+      <action issue="LOG4J2-1600" dev="ggregory" type="fix">
+        Prevent potential NPE due to org.apache.logging.log4j.core.layout.MarkerPatternSelector.createSelector(PatternMatch[], String, boolean, boolean, Configuration).
+      </action>
+      <action issue="LOG4J2-1601" dev="ggregory" type="fix">
+        Prevent potential NPE due to org.apache.logging.log4j.core.layout.ScriptPatternSelector.createSelector(AbstractScript, PatternMatch[], String, boolean, boolean, Configuration).
+      </action>
+      <action issue="LOG4J2-1602" dev="ggregory" type="fix">
+        Prevent potential NPE in org.apache.logging.log4j.core.util.datetime.FormatCache.MultipartKey.equals(Object) when object is null.
+      </action>
+      <action issue="LOG4J2-1603" dev="ggregory" type="fix">
+        Redo hashCode() and equals() methods in org.apache.logging.log4j.core.net.ssl classes.
+      </action>
+      <action issue="LOG4J2-1610" dev="ggregory" type="fix" due-to="Shubhankar">
+        Add targetNamespace to log4j-config.xsd. GitHub #43.
+      </action>
+      <action issue="LOG4J2-1619" dev="ggregory" type="fix">
+        new Log4jLogEvent().toString() throws an NPE.
+      </action>
+      <action issue="LOG4J2-1578" dev="ggregory" type="add">
+        RoutingAppender can be configured with scripts. Add Script in a Routes element.
+      </action>
+      <action issue="LOG4J2-1597" dev="ggregory" type="add">
+        Add a ScriptAppenderSelector to create an Appender specified by a Script.
+      </action>
+      <action issue="LOG4J2-1349" dev="rpopma" type="add">
+        (GC) Added support for garbage-free ThreadContext map. Disabled by default, users need to enable this explicitly.
+      </action>
+      <action issue="LOG4J2-1447" dev="rpopma" type="add">
+        (GC) Changed LogEvent's internal data structure for context data to be garbage-free. Added method LogEvent#getContextData(), deprecated method #getContextMap().
+      </action>
+      <action issue="LOG4J2-1010" dev="rpopma" type="add" due-to="Mikael Ståldal">
+        Users can now inject context data from other sources than ThreadContext. Values can be any Object, not just Strings.
+      </action>
+      <action issue="LOG4J2-1568" dev="mattsicker" type="add">
+        Added support for java.util.concurrent.LinkedTransferQueue to AsyncAppender.
+      </action>
+      <action issue="LOG4J2-1430" dev="mattsicker" type="add" due-to="John Cairns">
+        Added optional support for Conversant DisruptorBlockingQueue in AsyncAppender.
+      </action>
+      <action issue="LOG4J2-1439" dev="mattsicker" type="add" due-to="Anthony Maire">
+        Added optional support for JCTools MPSC bounded lock-free queue in AsyncAppender.
+      </action>
+      <action issue="LOG4J2-1558" dev="ggregory" type="add">
+        SocketAppender now supports IO buffering.
+      </action>
+      <action issue="LOG4J2-1557" dev="ggregory" type="add">
+        Add a Builder for the SocketAppender (deprecates factory method).
+      </action>
+      <action issue="LOG4J2-1609" dev="ggregory" type="add">
+        Add a Builder to ServletAppender and deprecate factory method.
+      </action>
+      <action issue="LOG4J2-1553" dev="ggregory" type="add">
+        AbstractManager now implements AutoCloseable.
+      </action>
+      <action issue="LOG4J2-1528" dev="mikes" type="add">
+        Added ability to generate Log4j 2-style XML configuration file from ConfigurationBuilder.
+      </action>
+      <action issue="LOG4J2-1181" dev="mikes" type="add">
+        Added Logging API for Scala 2.10 and 2.11.
+      </action>
+      <action issue="LOG4J2-1512" dev="mikes" type="add">
+        Added options to exclude stack trace from JSON, XML and YAML layouts.
+      </action>
+      <action issue="LOG4J2-1539" dev="ggregory" type="add">
+        Added Core API Configurator.shutdown(LoggerContext, long, TimeUnit).
+      </action>
+      <action issue="LOG4J2-1501" dev="ggregory" type="add">
+        FileAppender is now able to create files on-demand.
+      </action>
+      <action issue="LOG4J2-1504" dev="ggregory" type="add">
+        RollingFileAppender is now able to create files on-demand.
+      </action>
+      <action issue="LOG4J2-1471" dev="ggregory" type="add">
+        [PatternLayout] Add an ANSI option to %xThrowable.
+      </action>
+      <action issue="LOG4J2-1472" dev="ggregory" type="add">
+        org.apache.logging.log4j.core.LoggerContext now implements Closeable.
+      </action>
+      <action issue="LOG4J2-1458" dev="ggregory" type="add">
+        [PatternLayout] Add an ANSI option to %message.
+      </action>
+      <action issue="LOG4J2-1505" dev="ggregory" type="add">
+        Create a Builder for the FileAppender plugin to facilitate adding attributes in the future.
+      </action>
+      <action issue="LOG4J2-1507" dev="ggregory" type="add">
+        Allow Builders to be completely generic.
+      </action>
+      <action issue="LOG4J2-1508" dev="ggregory" type="add">
+        Allow a Builder to subclass another Builder.
+      </action>
+      <action issue="LOG4J2-1516" dev="rpopma" type="add" due-to="Gary Gregory">
+        Add ThreadContextMap2 interface supporting method putAll(Map&lt;String, String&gt;).
+      </action>
+      <action issue="LOG4J2-1519" dev="ggregory" type="add">
+        Add ThreadContext.putAll(Map&lt;String, String&gt;).
+      </action>
+      <action issue="LOG4J2-1520" dev="ggregory" type="add">
+        Add JUnit Rule implementations to manage the thread context.
+      </action>
+      <action issue="LOG4J2-1547" dev="ggregory" type="add">
+        The Core AbstractConfiguration now tracks its LoggerContext and add Configuration.getLoggerContext().
+      </action>
+      <action issue="LOG4J2-1540" dev="ggregory" type="add">
+        The Core AbstractManager now tracks its LoggerContext.
+      </action>
+      <action issue="LOG4J2-1577" dev="ggregory" type="add">
+        Add a Builder to the RoutingAppender and deprecate factory method.
+      </action>
+      <action issue="LOG4J2-1604" dev="ggregory" type="update" due-to="Colin Hillman">
+        Log4j2 TcpSocketServer in background.
+      </action>
+      <action issue="LOG4J2-1574" dev="ggregory" type="update">
+        Allow the RollingFileAppender to use default pattern layout.
+      </action>
+      <action issue="LOG4J2-1556" dev="ggregory" type="update">
+        Custom Log4j threads now extend Log4jThread.
+      </action>
+      <action issue="LOG4J2-1605" dev="ggregory" type="update">
+        Improve error messages for TcpSocketServer and UdpSocketServer.
+      </action>
+      <action issue="LOG4J2-1458" dev="ggregory" type="update">
+        Updated Jackson from 2.7.5 to 2.8.0.
+      </action>
+      <action issue="LOG4J2-1494" dev="ggregory" type="update">
+        Updated Jackson from 2.8.0 to 2.8.1.
+      </action>
+      <action issue="LOG4J2-1569" dev="ggregory" type="update">
+        Updated Jackson from 2.8.1 to 2.8.2.
+      </action>
+      <action issue="LOG4J2-1598" dev="ggregory" type="update">
+        Updated Jackson from 2.8.2 to 2.8.3.
+      </action>
+      <action issue="LOG4J2-1495" dev="ggregory" type="update">
+        Updated LMAX Disruptor from 3.3.4 to 3.3.5.
+      </action>
+      <action issue="LOG4J2-1496" dev="ggregory" type="update">
+        Updated Kafka client from 0.9.1.0 to 0.10.0.0.
+      </action>
+      <action issue="LOG4J2-1533" dev="ggregory" type="update">
+        Updated Kafka client from 0.10.0.0 to 0.10.0.1.
+      </action>
+      <action issue="LOG4J2-1487" dev="ggregory" type="update">
+        Updated JMS test from ActiveMQ 5.13.3 to 5.13.4.
+      </action>
+      <action issue="LOG4J2-1551" dev="ggregory" type="update">
+        Updated JMS test from ActiveMQ 5.13.4 to 5.14.0.
+      </action>
+      <action issue="LOG4J2-1757" dev="ggregory" type="update">
+        Update Apache Commons Compress from 1.12 to 1.13.
+      </action>
+      <action issue="LOG4J2-1543" dev="ggregory" type="update">
+        Removed deprecated Core API org.apache.logging.log4j.core.util.Constants.UTF_8.
+      </action>
+      <action issue="LOG4J2-1544" dev="ggregory" type="update">
+        Removed deprecated Core API org.apache.logging.log4j.core.util.Assert.requireNonNull(T, String).
+      </action>
+      <action issue="LOG4J2-1545" dev="ggregory" type="update">
+        Removed deprecated Web API org.apache.logging.log4j.web.WebLookup.getServletContext().
+      </action>
+    </release>
+    <release version="2.6.2" date="2016-07-05" description="GA Release 2.6.2">
+      <action issue="LOG4J2-904" dev="rgoers" type="fix" due-to="Bernhard Mähr">
+        If copy and delete fails in rename action then resort to truncating the source file after copying it.
+      </action>
+      <action issue="LOG4J2-1250" dev="rgoers" type="fix">
+        CronTriggeringPolicy was not properly setting the prevFileTime value for the PatternProcessor so
+        file dates and times on rolled files were incorrect.
+      </action>
+      <action issue="LOG4J2-1452" dev="rpopma" type="fix" due-to="Mikael Ståldal">
+        Fixed issue where reusable messages broke flow tracing logic.
+      </action>
+      <action issue="LOG4J2-1440" dev="rgoers" type="fix">
+        Fix bug in OnStartupTriggeringPolicy that allowed it to roll over on every reconfiguration. Added
+        minSize attribute.
+      </action>
+      <action issue="LOG4J2-1414" dev="rpopma" type="fix" due-to="Ralph Goers">
+        Fixed minor issues with the 2.6.1 web site.
+      </action>
+      <action issue="LOG4J2-1434" dev="rpopma" type="fix" due-to="Luke Butters">
+        Ensure that the thread-local StringBuilders used by Layouts to format log events to text will not
+        retain excessive memory after a large message was logged.
+      </action>
+      <action issue="LOG4J2-1395" dev="mikes" type="add">
+        Add "direct" option to ConsoleAppender for increased performance.
+      </action>
+      <action issue="LOG4J2-1418" dev="mikes" type="fix">
+        Provide MessageFactory2 to custom Logger implementations.
+      </action>
+      <action issue="LOG4J2-1420" dev="rgoers" type="fix">
+        RollingRandomAccessFileManager was not properly rolling over on startup and was getting a NullPointerException.
+      </action>
+      <action issue="LOG4J2-1417" dev="rpopma" type="fix">
+        Fixed issue where Unbox utility ignored the value Constants.ENABLE_THREADLOCALS and always stored non-JDK classes in ThreadLocals.
+      </action>
+      <action issue="LOG4J2-1422" dev="rpopma" type="fix">
+        Fixed issue where AsyncAppenderQueueFullPolicyTest sometimes hangs.
+      </action>
+      <action issue="LOG4J2-1445" dev="ggregory" type="fix" due-to="Ludovic HOCHET">
+        OnStartupTriggeringPolicyTest fails on Windows saying the file is used by another process.
+      </action>
+      <action issue="LOG4J2-1437" dev="rpopma" type="add">
+        (GC) ObjectMessage and ReusableObjectMessage now avoid calling toString() on auto-boxed primitive parameters.
+      </action>
+      <action issue="LOG4J2-1415" dev="rpopma" type="add">
+        (GC) ParameterFormatter now avoids calling toString() on auto-boxed primitive message parameters.
+      </action>
+      <action issue="LOG4J2-1412" dev="rpopma" type="add">
+        Unbox utility's ringbuffer of StringBuilders is now configurable.
+      </action>
+      <action issue="LOG4J2-1432" dev="ggregory" type="update">
+        Update Jackson from 2.7.4 to 2.7.5.
+      </action>
+      <action issue="LOG4J2-1433" dev="ggregory" type="update">
+        Update Jansi from 1.11 to 1.13.
+      </action>
+      <action issue="LOG4J2-1444" dev="ggregory" type="update">
+        Update Apache Commons Compress from 1.11 to 1.12.
+      </action>
+    </release>
+    <release version="2.6.1" date="2016-06-05" description="GA Release 2.6.1">
+      <action issue="LOG4J2-1405" dev="rgoers" type="fix">
+        OnStartupTriggeringPolicy was forcing a rollover of empty files at startup and would append a second footer that was added by the prior shutdown.
+      </action>
+      <action issue="LOG4J2-1406" dev="rpopma" type="fix" due-to="Trask Stalnaker">
+        Fixed bug in ReusableParameterizedMessage where Throwable was never updated so first error was logged over and over again and subsequent errors were not logged.
+      </action>
+      <action issue="LOG4J2-1409" dev="rpopma" type="fix" due-to="Shahan">
+        Fixed ArrayIndexOutOfBoundsException that may occur in ReusableParameterizedMessage.
+      </action>
+      <action issue="LOG4J2-997" dev="rgoers" type="fix" due-to="Maytee Chinavanichkit">
+        Add filter and remove filter were not working properly in AbstractFilterable.
+      </action>
+      <action issue="LOG4J2-1032" dev="rgoers" type="fix">
+        Changed RenameAction to use java.nio to better report rename failures.
+      </action>
+      <action issue="LOG4J2-1407" dev="ggregory" type="fix">
+        Fixed misleading WARN log events from Log4j about message factories and unexpected formatting.
+      </action>
+      <action issue="LOG4J2-1408" dev="ggregory" type="fix">
+        Added the module log4j-liquibase to BOM POM.
+      </action>
+      <action issue="LOG4J2-1180" dev="ggregory" type="fix">
+        Logger cache now accounts for message factory.
+      </action>
+      <action issue="LOG4J2-1402" dev="rgoers" type="fix">
+        Fix regression in properties configuration to support arbitrary component ids.
+      </action>
+      <action issue="LOG4J2-1385" dev="ggregory" type="update">
+        (GC) CSV layouts should not create a new CSVPrinter for each log event. Requires Apache Commons CSV 1.4.
+      </action>
+      <action issue="LOG4J2-1398" dev="ggregory" type="update">
+        Update liquibase-core from 3.4.2 to 3.5.1.
+      </action>
+      <action issue="LOG4J2-1399" dev="ggregory" type="update">
+        Update Apache Commons CSV from 1.3 to 1.4.
+      </action>
+      <action issue="LOG4J2-1411" dev="mattsicker" type="add">
+        Added documentation about plugin builders compared to factories.
+      </action>
+      <action issue="LOG4J2-1394" dev="mattsicker,mikes" type="fix">
+        Fixed minor issues with the 2.6 web site.
+      </action>
+    </release>
+    <release version="2.6" date="2016-05-25" description="GA Release 2.6">
+      <action issue="LOG4J2-1270" dev="rpopma" type="add">
+        (GC) Added support for garbage-free logging in steady state.
+        This includes Async Loggers and logging synchronously to the console and to a file,
+        but does not include the AsyncAppender. This release makes the GelfLayout and
+        the main patterns in the PatternLayout garbage-free.
+      </action>
+      <action issue="LOG4J2-1297" dev="rpopma" type="add">
+        (GC) Added manual page on garbage-free logging.
+      </action>
+      <action issue="LOG4J2-1373" dev="rpopma" type="add">
+        (GC) Update Logger wrapper Generator tool to generate methods for the new Logger methods.
+      </action>
+      <action issue="LOG4J2-1356" dev="mikes" type="update">
+        (GC) GelfLayout does now support garbage-free logging (with compressionType=OFF).
+      </action>
+      <action issue="LOG4J2-1326" dev="rpopma" type="add">
+        (GC) Added methods to the Logger interface for logging CharSequence messages.
+      </action>
+      <action issue="LOG4J2-1344" dev="rpopma" type="add">
+        (GC) FileAppender, RollingFileAppender and MemoryMappedFileAppender are now also garbage-free by default.
+      </action>
+      <action issue="LOG4J2-1343" dev="rpopma" type="update">
+        (GC) ConsoleAppender is now garbage-free by default. This logic is reusable for all AbstractOutputStreamAppender subclasses.
+      </action>
+      <action issue="LOG4J2-1278" dev="rpopma" type="add">
+        (GC) Added unrolled varargs methods to Logger API, added Unbox utility to avoid auto-boxing when logging primitive values.
+      </action>
+      <action issue="LOG4J2-1318" dev="rpopma" type="update">
+        (GC) Avoid allocating unnecessary temporary objects in LoggerContext's getLogger methods.
+      </action>
+      <action issue="LOG4J2-1333" dev="rpopma" type="update">
+        (GC) Avoid allocating unnecessary temporary objects in MarkerManager's getMarker methods.
+      </action>
+      <action issue="LOG4J2-1321" dev="rpopma" type="update">
+        (GC) Avoid allocating unnecessary temporary objects in PatternLayout's NamePatternConverter and ClassNamePatternConverter.
+      </action>
+      <action issue="LOG4J2-1271" dev="rpopma" type="add">
+        (GC) Add MessageFactory that avoid allocation by reusing a cached ParameterizedMessage instance.
+      </action>
+      <action issue="LOG4J2-1271" dev="rpopma" type="update">
+        (GC) ParameterizedMessage optimizations to avoid or at least postpone allocating temporary objects.
+      </action>
+      <action issue="LOG4J2-1283" dev="rpopma" type="update">
+        (GC) Provide ThreadLocal-based gc-free caching mechanism in DatePatternConverter for non-webapps.
+      </action>
+      <action issue="LOG4J2-1293" dev="rpopma" type="add">
+        (GC) Add interface StringBuilderFormattable to enable converting Messages and parameters to text without allocating temporary objects.
+        ParameterizedMessage, ObjectMessage, SimpleMessage and ThreadDumpMessage now implement StringBuilderFormattable.
+      </action>
+      <action issue="LOG4J2-1291" dev="rpopma" type="update">
+        (GC) Update PatternLayout to utilize gc-free mechanism for LogEvent processing.
+      </action>
+      <action issue="LOG4J2-1292" dev="rpopma" type="update">
+        (GC) Update RandomAccessFileAppender and RollingRandomAccessFileAppender to utilize gc-free Layout.encode() method.
+      </action>
+      <action issue="LOG4J2-1274" dev="rpopma" type="add">
+        (GC) Add encode(LogEvent, ByteBufferDestination) method to Layout API to enable converting LogEvents to bytes without creating temporary objects.
+      </action>
+      <action issue="LOG4J2-1281" dev="rpopma" type="fix">
+        (GC) LoggerConfig.getProperties() should not allocate on each call.
+      </action>
+      <action issue="LOG4J2-1272" dev="rpopma" type="update">
+        (GC) Improve LoggerConfig's data structure for AppenderControl objects to avoid allocating temporary objects during
+        traversal for each log event.
+      </action>
+      <action issue="LOG4J2-1269" dev="rpopma" type="fix">
+        (GC) AsyncLogger should use thread-local translator by default.
+      </action>
+      <action issue="LOG4J2-623" dev="rpopma" type="fix">
+        Generate MDC properties as a JSON map in JSONLayout, with option to output as list of map entries.
+      </action>
+      <action issue="LOG4J2-1362" dev="rpopma" type="add" due-to="Gary Gregory">
+        Added a YAML layout.
+      </action>
+      <action issue="LOG4J2-1387" dev="rpopma" type="fix">
+        Fixed memory leak related to shutdown hook.
+      </action>
+      <action issue="LOG4J2-1179" dev="rpopma" type="add">
+        Documented benchmark results comparing Log4j 2 performance to other logging libraries.
+      </action>
+      <action issue="LOG4J2-1382" dev="rpopma" type="fix">
+        Copying a MutableLogEvent using Log4jLogEvent.Builder should not unnecessarily obtain caller location information.
+      </action>
+      <action issue="LOG4J2-1011" dev="mikes" type="add">
+        Document dependencies for layouts.
+      </action>
+      <action issue="LOG4J2-621" dev="ggregory" type="add" due-to="Lee Theobald, Kamal Mettananda, Gary Gregory">
+        Pattern to drop first N package parts.
+      </action>
+      <action issue="LOG4J2-494" dev="rgoers" type="add" due-to="Philipp Knobel">
+        Support merging configurations to for a composite configuration.
+      </action>
+      <action issue="LOG4J2-1357" dev="mikes" type="add">
+        Option to not log stack traces for logged Throwables in GelfLayout.
+      </action>
+      <action issue="LOG4J2-1375" dev="rpopma" type="update">
+        Update SLF4J from 1.7.13 to 1.7.21.
+      </action>
+      <action issue="LOG4J2-1374" dev="rpopma" type="update">
+        Migrate tests from Logback 1.1.3 to 1.1.7.
+      </action>
+      <action issue="LOG4J2-1384" dev="ggregory" type="update">
+        Update Apache Commons CSV from 1.2 to 1.3.
+      </action>
+      <action issue="LOG4J2-1372" dev="rgoers" type="fix" due-to="Kamal Mettananda, Gary Gregory">
+        XMLLayout indents, but not the first child tag (Event).
+      </action>
+      <action issue="LOG4J2-1363" dev="rgoers" type="fix">
+        Properties Configuration did not support includeLocation attribute on Loggers.
+      </action>
+      <action issue="LOG4J2-1263" dev="rgoers" type="fix">
+        The ConfigurationSource was not saved for BuiltConfigurations so monitor interval had no effect.
+      </action>
+      <action issue="LOG4J2-1369" dev="ggregory" type="fix" due-to="Alex Birch, Gary Gregory">
+        "xz" compression results in plaintext, uncompressed files.
+      </action>
+      <action issue="LOG4J2-1365" dev="mikes" type="update">
+        (Log4j-internal) Provide message text as CharSequence for some message types to optimize some layouts.
+      </action>
+      <action issue="LOG4J2-1368" dev="rpopma" type="fix">
+        (Log4j-internal) StatusLogger dropped exceptions when logging parameterized messages.
+      </action>
+      <action issue="LOG4J2-1348" dev="ggregory" type="add" due-to="Greg Thomas, Gary Gregory">
+        Add an AutoCloseable ThreadContext class: CloseableThreadContext.
+      </action>
+      <action issue="LOG4J2-1345" dev="rpopma" type="update">
+        (Doc) Clarify documentation for properties that control Log4j behaviour.
+      </action>
+      <action issue="LOG4J2-1336" dev="ggregory" type="fix" due-to="Zbynek Vyskovsky">
+        LoggerFactory in 1.2 API module is not compatible with 1.2.
+      </action>
+      <action issue="LOG4J2-1354" dev="ggregory" type="fix" due-to="Arkadiusz Adolph">
+        No configuration reload is triggered under Windows when replacing the configuration file with one that has older last modified date.
+      </action>
+      <action issue="LOG4J2-1346" type="fix">
+        Exception from Log4jServletContextListener prevents jetty-maven-plugin run-forked.
+      </action>
+      <action issue="LOG4J2-1339" dev="rpopma" type="fix">
+        (Perf) AsyncLogger performance optimization: avoid calling instanceof TimestampMessage in hot path.
+      </action>
+      <action issue="LOG4J2-1324" dev="rpopma" type="fix">
+        Improve error handling in the Async Logger background thread: the new default exception handler no longer rethrows the error.
+      </action>
+      <action issue="LOG4J2-1309" dev="ggregory" type="fix">
+        Configuration file error does not show cause exception.
+      </action>
+      <action issue="LOG4J2-1299" dev="ggregory" type="add">
+        Add pattern converter for thread id and priority in PatternLayout.
+      </action>
+      <action issue="LOG4J2-1289" dev="ggregory" type="fix">
+        Change flow logging text from "entry' to "Enter" and "exit" to "Exit".
+      </action>
+      <action issue="LOG4J2-1284" dev="rpopma" type="fix">
+        Made default MessageFactory configurable.
+      </action>
+      <action issue="LOG4J2-1280" dev="ggregory" type="fix">
+        Deprecate org.apache.logging.log4j.util.MessageSupplier.
+      </action>
+      <action issue="LOG4J2-1280" dev="rpopma" type="fix">
+        Logger methods taking Supplier parameters now correctly handle cases where the supplied value is a Message.
+      </action>
+      <action issue="LOG4J2-1268" dev="rpopma" type="fix">
+        FixedDateFormat was incorrect for formats having MMM with the French locale.
+      </action>
+      <action issue="LOG4J2-1255" dev="rgoers" type="update">
+        Add enhanced entry and exit methods.
+      </action>
+      <action issue="LOG4J2-124" dev="rgoers" type="add">
+        Add shutdown methods to LogManager.
+      </action>
+      <action issue="LOG4J2-1222" dev="rgoers" type="fix">
+        Creation of a LoggerContext will fail if shutdown is in progress. LogManager will default to SimpleLogger instead.
+      </action>
+      <action issue="LOG4J2-1221" dev="rpopma" type="add" due-to="Michael Barker">
+        Added async logger Timeout wait strategy and made this the default wait strategy for async loggers.
+        This prevents a rare deadlock that may occur on Solaris.
+      </action>
+      <action issue="LOG4J2-1080" dev="rpopma" type="add">
+        Added option to discard events below a certain log level if the async logger ring buffer
+        or async appender queue is full.
+      </action>
+      <action issue="LOG4J2-1237" dev="ggregory" type="add" due-to="Mike Calmus, Gary Gregory">
+        Make PatternLayout header and footer accept a pattern.
+      </action>
+      <action issue="LOG4J2-1244" dev="ggregory" type="add" due-to="Anshu Garg, Remko Popma, Gary Gregory">
+        Make header and footer values customizable in JSONLayout.
+      </action>
+      <action issue="LOG4J2-1245" dev="ggregory" type="add">
+        Make CSV Layout header and footers accept patterns.
+      </action>
+      <action issue="LOG4J2-1192" dev="ggregory" type="add" due-to="Jörg Bretschneider, Gary Gregory">
+        Dynamic Subject for SMTP Appender.
... 2459 lines suppressed ...