You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rg...@apache.org on 2018/12/26 18:07:38 UTC

[logging-log4j2] branch master updated: LOG4J2-1576 - Change from CLIRR to RevAPI to detect changes to the API

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 8548259  LOG4J2-1576 - Change from CLIRR to RevAPI to detect changes to the API
8548259 is described below

commit 85482592d7dc8694ef27ff842700273dc7b935c3
Author: Ralph Goers <rg...@apache.org>
AuthorDate: Wed Dec 26 11:06:42 2018 -0700

    LOG4J2-1576 - Change from CLIRR to RevAPI to detect changes to the API
---
 log4j-api/pom.xml                                 |    5 -
 log4j-api/revapi.json                             |  115 ++
 log4j-cassandra/revapi.json                       |   12 +
 log4j-core-its/pom.xml                            |    1 +
 log4j-core-its/src/main/resources/placeholder.txt |    1 +
 log4j-core/revapi.json                            | 1994 +++++++++++++++++++++
 log4j-flume-ng/revapi.json                        |   12 +
 log4j-jdbc-dbcp2/revapi.json                      |   23 +
 log4j-jdbc/revapi.json                            |   23 +
 log4j-jpa/revapi.json                             |  108 ++
 log4j-mongodb2/revapi.json                        |   23 +
 log4j-osgi/pom.xml                                |    5 -
 log4j-perf/pom.xml                                |    1 +
 log4j-samples/pom.xml                             |    1 +
 log4j-slf4j-impl/pom.xml                          |    7 +-
 log4j-slf4j18-impl/pom.xml                        |    7 +-
 log4j-smtp/revapi.json                            |   23 +
 log4j-taglib/revapi.json                          |   14 +
 log4j-web/revapi.json                             |   24 +
 pom.xml                                           |   79 +-
 src/changes/changes.xml                           |    3 +
 21 files changed, 2454 insertions(+), 27 deletions(-)

diff --git a/log4j-api/pom.xml b/log4j-api/pom.xml
index 844a29f..21f2b38 100644
--- a/log4j-api/pom.xml
+++ b/log4j-api/pom.xml
@@ -239,11 +239,6 @@
   <reporting>
     <plugins>
       <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>clirr-maven-plugin</artifactId>
-        <version>${clirr.plugin.version}</version>
-      </plugin>
-      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-changes-plugin</artifactId>
         <version>${changes.plugin.version}</version>
diff --git a/log4j-api/revapi.json b/log4j-api/revapi.json
new file mode 100644
index 0000000..7c36e64
--- /dev/null
+++ b/log4j-api/revapi.json
@@ -0,0 +1,115 @@
+[
+  {
+    "extension": "revapi.java",
+    "configuration": {
+      "filter": {
+        "classes": {
+          "exclude": [
+            "org\\.apache\\.logging\\.log4j\\.util\\.Activator",
+            "org\\.apache\\.logging\\.log4j\\.util\\.LoaderUtil",
+            "org\\.apache\\.logging\\.log4j\\.util\\.PrivateSecurityManagerStackTraceUtil",
+            "org\\.apache\\.logging\\.log4j\\.util\\.PropertiesUtil",
+            "org\\.apache\\.logging\\.log4j\\.util\\.ProviderUtil",
+            "org\\.apache\\.logging\\.log4j\\.util\\.StackLocatorUtil"
+          ]
+        }
+      }
+    }
+  },
+  {
+    "extension": "revapi.ignore",
+    "configuration": [
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.Logger::entry()",
+        "justification": "Removed deprecated method"
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.Logger::entry(java.lang.Object[])",
+        "justification": "Removed deprectated method"
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.Logger::exit()",
+        "justification": "Removed deprecated method"
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method <R> R org.apache.logging.log4j.Logger::exit(R)",
+        "justification": "Removed deprecated method"
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.Marker org.apache.logging.log4j.MarkerManager::getMarker(java.lang.String, java.lang.String)",
+        "justification": "Removed deprecated method"
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.Marker org.apache.logging.log4j.MarkerManager::getMarker(java.lang.String, org.apache.logging.log4j.Marker)",
+        "justification": "Removed deprecated method"
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.message.ParameterizedMessage::<init>(java.lang.String, java.lang.String[], java.lang.Throwable)",
+        "justification": "Removed deprecated method"
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.message.EntryMessage org.apache.logging.log4j.spi.AbstractLogger::enter(java.lang.String, java.lang.String, org.apache.logging.log4j.util.MessageSupplier[])",
+        "justification": "Removed deprecated method"
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.message.EntryMessage org.apache.logging.log4j.spi.AbstractLogger::enter(java.lang.String, org.apache.logging.log4j.util.MessageSupplier)",
+        "justification": "Removed deprecated method"
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.spi.AbstractLogger::entry()",
+        "justification": "Removed deprecated method"
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.spi.AbstractLogger::entry(java.lang.Object[])",
+        "justification": "Removed deprecated method"
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.spi.AbstractLogger::exit()",
+        "justification": "Removed deprecated method"
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method <R> R org.apache.logging.log4j.spi.AbstractLogger::exit(R)",
+        "justification": "Removed deprecated method"
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.spi.LoggerContextKey",
+        "justification": "Removed deprecated method"
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.util.ProcessIdUtil",
+        "justification": "Removed deprecated method"
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.util.ProviderUtil::loadProviders(java.util.Enumeration<java.net.URL>, java.lang.ClassLoader)",
+        "justification": "Removed deprecated method"
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.util.StackLocator.PrivateSecurityManager org.apache.logging.log4j.util.StackLocator::getSecurityManager()",
+        "justification": "Internal inner class moved to its own class so it can be shared with Java 9"
+      },
+      {
+        "code": "java.method.nowStatic",
+        "old": "method java.lang.String org.apache.logging.log4j.util.Strings::toRootUpperCase(java.lang.String)",
+        "new": "method java.lang.String org.apache.logging.log4j.util.Strings::toRootUpperCase(java.lang.String)",
+        "justification": "Method was inaccessible"
+      }
+    ]
+  }
+]
diff --git a/log4j-cassandra/revapi.json b/log4j-cassandra/revapi.json
new file mode 100644
index 0000000..ca1fa97
--- /dev/null
+++ b/log4j-cassandra/revapi.json
@@ -0,0 +1,12 @@
+[
+  {
+    "extension": "revapi.ignore",
+    "configuration": [
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.cassandra.CassandraManager::writeInternal(org.apache.logging.log4j.core.LogEvent)",
+        "justification": "Method not needed"
+      }
+    ]
+  }
+]
diff --git a/log4j-core-its/pom.xml b/log4j-core-its/pom.xml
index fc25818..505d667 100644
--- a/log4j-core-its/pom.xml
+++ b/log4j-core-its/pom.xml
@@ -31,6 +31,7 @@
     <log4jParentDir>${basedir}/..</log4jParentDir>
     <docLabel>Core Integration Tests Documentation</docLabel>
     <projectDir>/log4j-core-its</projectDir>
+    <revapi.skip>true</revapi.skip>
   </properties>
   <dependencies>
     <dependency>
diff --git a/log4j-core-its/src/main/resources/placeholder.txt b/log4j-core-its/src/main/resources/placeholder.txt
new file mode 100644
index 0000000..44d4eb8
--- /dev/null
+++ b/log4j-core-its/src/main/resources/placeholder.txt
@@ -0,0 +1 @@
+Revapi requires something in the target/classes directory.
\ No newline at end of file
diff --git a/log4j-core/revapi.json b/log4j-core/revapi.json
new file mode 100644
index 0000000..84e7c22
--- /dev/null
+++ b/log4j-core/revapi.json
@@ -0,0 +1,1994 @@
+[
+  {
+    "extension": "revapi.java",
+    "configuration": {
+      "filter": {
+        "classes": {
+          "exclude": [
+            "org\\.apache\\.logging\\.log4j\\.corel\\.impl\\.ContextAnchor",
+            "org\\.apache\\.logging\\.log4j\\.core\\.async\\.AsyncLoggerDisruptor",
+            "org\\.apache\\.logging\\.log4j\\.core\\.async\\.RingBufferLogEvent\\.Factory",
+            "org\\.apache\\.logging\\.log4j\\.core\\.layout\\.AbstractJacksonLayout",
+            "org\\.apache\\.logging\\.log4j\\.core\\.layout\\.AbstractJacksonLayout\\.ResolvableKeyValuePair",
+            "org\\.apache\\.logging\\.log4j\\.core\\.net\\.SmtpManager\\.FactoryData",
+            "org\\.apache\\.logging\\.log4j\\.core\\.net\\.TcpSocketManager\\.FactoryData",
+            "org\\.apache\\.logging\\.log4j\\.core\\.util\\.CronExpression\\.ValueSet",
+            "org\\.apache\\.logging\\.log4j\\.core\\.util\\.datetime\\.FastDatePrinter\\.NumberRule",
+            "org\\.apache\\.logging\\.log4j\\.core\\.util\\.datetime\\.FastDatePrinter\\.Rule"
+          ]
+        },
+        "packages": {
+          "exclude": [
+            "org.apache.logging.log4j.core.jmx",
+            "org.apache.logging.log4j.core.jackson",
+            "org.apache.logging.log4j.core.time.internal",
+            "org.apache.logging.log4j.core.util.datetime"
+          ]
+        }
+      }
+    }
+  },
+  {
+    "extension": "revapi.ignore",
+    "configuration": [
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.AsyncAppender.Builder org.apache.logging.log4j.core.appender.AsyncAppender.Builder::setFilter(org.apache.logging.log4j.core.Filter)",
+        "new": "method B org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B extends org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B extends org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B>>>::setFilter(org.apache.logging.log4j.core.Filter) @ org.apache.logging.log4j.core.appender.AsyncAppender.Builder<B extends org.apache.logging.log4j.core.appender.AsyncAppender.Builder<B extends org.apache.logging.log4j.core.appender.AsyncAppender.Buil [...]
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.class.nonFinalClassInheritsFromNewClass",
+        "old": "class org.apache.logging.log4j.core.appender.AsyncAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.AsyncAppender.Builder<B extends org.apache.logging.log4j.core.appender.AsyncAppender.Builder<B>>",
+        "superClass": "org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B extends org.apache.logging.log4j.core.appender.AsyncAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.generics.elementNowParameterized",
+        "old": "class org.apache.logging.log4j.core.appender.AsyncAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.AsyncAppender.Builder<B extends org.apache.logging.log4j.core.appender.AsyncAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.generics.formalTypeParameterAdded",
+        "old": "class org.apache.logging.log4j.core.appender.AsyncAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.AsyncAppender.Builder<B extends org.apache.logging.log4j.core.appender.AsyncAppender.Builder<B>>",
+        "typeParameter": "B extends org.apache.logging.log4j.core.appender.AsyncAppender.Builder<B extends org.apache.logging.log4j.core.appender.AsyncAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.annotation.attributeAdded",
+        "old": "parameter org.apache.logging.log4j.core.appender.NullAppender org.apache.logging.log4j.core.appender.NullAppender::createAppender(===java.lang.String===)",
+        "new": "parameter org.apache.logging.log4j.core.appender.NullAppender org.apache.logging.log4j.core.appender.NullAppender::createAppender(===java.lang.String===)",
+        "annotation": "@org.apache.logging.log4j.core.config.plugins.PluginAttribute(value = \"name\", defaultString = \"null\")",
+        "attribute": "defaultString",
+        "justification": "LOG4J2-2447 - Allow NullAppender to default its name to null"
+        
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder::setFilter(org.apache.logging.log4j.core.Filter)",
+        "new": "method B org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B extends org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B extends org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B>>>::setFilter(org.apache.logging.log4j.core.Filter) @ org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.Outp [...]
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder::setFollow(boolean)",
+        "new": "method B org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B>>>::setFollow(boolean)",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder::setIgnoreExceptions(boolean)",
+        "new": "method B org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B>>>::setIgnoreExceptions(boolean) @ org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Bu [...]
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder::setLayout(org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>)",
+        "new": "method B org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B>>>::setLayout(org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>) @ org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache. [...]
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder::setName(java.lang.String)",
+        "new": "method B org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B>>>::setName(java.lang.String) @ org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Build [...]
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder::setTarget(java.io.OutputStream)",
+        "new": "method B org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B>>>::setTarget(java.io.OutputStream)",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.class.nonFinalClassInheritsFromNewClass",
+        "old": "class org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B>>",
+        "superClass": "org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.class.nonFinalClassInheritsFromNewClass",
+        "old": "class org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B>>",
+        "superClass": "org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.class.nonFinalClassInheritsFromNewClass",
+        "old": "class org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B>>",
+        "superClass": "org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.generics.elementNowParameterized",
+        "old": "class org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.generics.formalTypeParameterAdded",
+        "old": "class org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B>>",
+        "typeParameter": "B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.OutputStreamAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.WriterAppender.Builder org.apache.logging.log4j.core.appender.WriterAppender.Builder::setFilter(org.apache.logging.log4j.core.Filter)",
+        "new": "method B org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B extends org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B extends org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B>>>::setFilter(org.apache.logging.log4j.core.Filter) @ org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.B [...]
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.WriterAppender.Builder org.apache.logging.log4j.core.appender.WriterAppender.Builder::setFollow(boolean)",
+        "new": "method B org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>>::setFollow(boolean)",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.WriterAppender.Builder org.apache.logging.log4j.core.appender.WriterAppender.Builder::setIgnoreExceptions(boolean)",
+        "new": "method B org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B>>>::setIgnoreExceptions(boolean) @ org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.method.parameterTypeChanged",
+        "old": "parameter org.apache.logging.log4j.core.appender.WriterAppender.Builder org.apache.logging.log4j.core.appender.WriterAppender.Builder::setLayout(===org.apache.logging.log4j.core.StringLayout===)",
+        "new": "parameter B org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B>>>::setLayout(===org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>===) @ org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.log [...]
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.WriterAppender.Builder org.apache.logging.log4j.core.appender.WriterAppender.Builder::setLayout(org.apache.logging.log4j.core.StringLayout)",
+        "new": "method B org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B>>>::setLayout(org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>) @ org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4 [...]
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.WriterAppender.Builder org.apache.logging.log4j.core.appender.WriterAppender.Builder::setName(java.lang.String)",
+        "new": "method B org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B>>>::setName(java.lang.String) @ org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.WriterAppender.Builder org.apache.logging.log4j.core.appender.WriterAppender.Builder::setTarget(java.io.Writer)",
+        "new": "method B org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>>::setTarget(java.io.Writer)",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.class.nonFinalClassInheritsFromNewClass",
+        "old": "class org.apache.logging.log4j.core.appender.WriterAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>",
+        "superClass": "org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.class.nonFinalClassInheritsFromNewClass",
+        "old": "class org.apache.logging.log4j.core.appender.WriterAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>",
+        "superClass": "org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.generics.elementNowParameterized",
+        "old": "class org.apache.logging.log4j.core.appender.WriterAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.generics.formalTypeParameterAdded",
+        "old": "class org.apache.logging.log4j.core.appender.WriterAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>",
+        "typeParameter": "B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B extends org.apache.logging.log4j.core.appender.WriterAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.class.nonFinalClassInheritsFromNewClass",
+        "old": "class org.apache.logging.log4j.core.appender.db.jdbc.JdbcAppender.Builder<B extends org.apache.logging.log4j.core.appender.db.jdbc.JdbcAppender.Builder<B>>",
+        "new": "class org.apache.logging.log4j.core.appender.db.jdbc.JdbcAppender.Builder<B extends org.apache.logging.log4j.core.appender.db.jdbc.JdbcAppender.Builder<B>>",
+        "superClass": "org.apache.logging.log4j.core.appender.db.AbstractDatabaseAppender.Builder<B extends org.apache.logging.log4j.core.appender.db.jdbc.JdbcAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.method.numberOfParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager::getManager(java.lang.String, int, org.apache.logging.log4j.core.appender.db.jdbc.ConnectionSource, java.lang.String, org.apache.logging.log4j.core.appender.db.jdbc.ColumnConfig[], org.apache.logging.log4j.core.appender.db.ColumnMapping[])",
+        "new": "method org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager::getManager(java.lang.String, int, org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>, org.apache.logging.log4j.core.appender.db.jdbc.ConnectionSource, java.lang.String, org.apache.logging.log4j.core.appender.db.jdbc.ColumnConfig[], org.apache.logging.log4j.core.appender.db.ColumnMapping[], boolean, long)",
+        "justification": "LOG4J2-2500 - Allow a JDBC Appender to truncate string to match a table's metadata column length limit"
+        
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder::setFilter(org.apache.logging.log4j.core.Filter)",
+        "new": "method B org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B extends org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B extends org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B>>>::setFilter(org.apache.logging.log4j.core.Filter) @ org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppende [...]
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder::setIgnoreExceptions(boolean)",
+        "new": "method B org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B>>>::setIgnoreExceptions(boolean) @ org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B>>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder::setLayout(org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>)",
+        "new": "method B org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B>>>::setLayout(org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>) @ org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B extends org.apache.logging.lo [...]
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder::setName(java.lang.String)",
+        "new": "method B org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B>>>::setName(java.lang.String) @ org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B>>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.class.nonFinalClassInheritsFromNewClass",
+        "old": "class org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B>>",
+        "superClass": "org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.class.nonFinalClassInheritsFromNewClass",
+        "old": "class org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B>>",
+        "superClass": "org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.generics.elementNowParameterized",
+        "old": "class org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.generics.formalTypeParameterAdded",
+        "old": "class org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder",
+        "new": "class org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B>>",
+        "typeParameter": "B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.JmsAppender.Builder<B>>",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.config.Property[] org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender.Builder<B>>>::getProperties()",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender.Builder<B extends org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender.Builder<B>>>::setProperties(org.apache.logging.log4j.core.config.Property[])",
+        "justification": "LOG4J2-2491 - Allow all appenders to optionally carry a property array"
+        
+      },
+      {
+        "code": "java.method.returnTypeChanged",
+        "old": "method void org.apache.logging.log4j.core.util.Closer::close(java.lang.AutoCloseable) throws java.lang.Exception",
+        "new": "method boolean org.apache.logging.log4j.core.util.Closer::close(java.lang.AutoCloseable) throws java.lang.Exception",
+        "justification": "LOG4J2-2496 - JDBC Appender should reconnect to the database when a connection goes stale"
+      },
+      {
+        "code": "java.method.returnTypeTypeParametersChanged",
+        "old": "method java.lang.Object org.apache.logging.log4j.core.util.Loader::newInstanceOf(java.lang.String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.NoSuchMethodException, java.lang.reflect.InvocationTargetException",
+        "new": "method <T> T org.apache.logging.log4j.core.util.Loader::newInstanceOf(java.lang.String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.NoSuchMethodException, java.lang.reflect.InvocationTargetException",
+        "justification": "LOG4J2-2482 - BasicContextSelector cannot be used in an OSGi application"
+      },
+      {
+        "code": "java.generics.elementNowParameterized",
+        "old": "method java.lang.Object org.apache.logging.log4j.core.util.Loader::newInstanceOf(java.lang.String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.NoSuchMethodException, java.lang.reflect.InvocationTargetException",
+        "new": "method <T> T org.apache.logging.log4j.core.util.Loader::newInstanceOf(java.lang.String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.NoSuchMethodException, java.lang.reflect.InvocationTargetException",
+        "justification": "LOG4J2-2482 - BasicContextSelector cannot be used in an OSGi application"
+      },
+      {
+        "code": "java.generics.formalTypeParameterAdded",
+        "old": "method java.lang.Object org.apache.logging.log4j.core.util.Loader::newInstanceOf(java.lang.String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.NoSuchMethodException, java.lang.reflect.InvocationTargetException",
+        "new": "method <T> T org.apache.logging.log4j.core.util.Loader::newInstanceOf(java.lang.String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.NoSuchMethodException, java.lang.reflect.InvocationTargetException",
+        "typeParameter": "T",
+        "justification": "LOG4J2-2482 - BasicContextSelector cannot be used in an OSGi application"
+      },
+      {
+        "code": "java.field.enumConstantOrderChanged",
+        "old": "field org.apache.logging.log4j.core.util.datetime.FixedDateFormat.FixedFormat.ISO8601_PERIOD",
+        "new": "field org.apache.logging.log4j.core.util.datetime.FixedDateFormat.FixedFormat.ISO8601_PERIOD",
+        "justification": "LOG4J2-1247 - PatternLayout %date conversion pattern should render time zone designator"
+
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method java.util.Map<java.lang.String, java.lang.String> org.apache.logging.log4j.core.AbstractLogEvent::getContextMap()",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.addedToInterface",
+        "new": "method boolean org.apache.logging.log4j.core.LifeCycle::stop(long, java.util.concurrent.TimeUnit)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method java.util.Map<java.lang.String, java.lang.String> org.apache.logging.log4j.core.LogEvent::getContextMap()",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B>>>::withConfiguration(org.apache.logging.log4j.core.config.Configuration)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B>>>::withIgnoreExceptions(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B>>>::withLayout(org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractAppender.Builder<B>>>::withName(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.numberOfParametersChanged",
+        "old": "method void org.apache.logging.log4j.core.appender.AbstractAppender::<init>(java.lang.String, org.apache.logging.log4j.core.Filter, org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>, boolean)",
+        "new": "method void org.apache.logging.log4j.core.appender.AbstractAppender::<init>(java.lang.String, org.apache.logging.log4j.core.Filter, org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>, boolean, org.apache.logging.log4j.core.config.Property[])",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.appender.AbstractAppender::<init>(java.lang.String, org.apache.logging.log4j.core.Filter, org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B>>>::withAdvertise(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B>>>::withAdvertiseUri(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B>>>::withAppend(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B>>>::withCreateOnDemand(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B>>>::withFileGroup(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B>>>::withFileName(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B>>>::withFileOwner(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B>>>::withFilePermissions(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractFileAppender.Builder<B>>>::withLocking(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.appender.AbstractManager::release()",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.Builder<B>>>::withBufferSize(int)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.Builder<B>>>::withBufferedIo(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.Builder<B extends org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.Builder<B>>>::withImmediateFlush(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.numberOfParametersChanged",
+        "old": "method void org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender<M extends org.apache.logging.log4j.core.appender.OutputStreamManager>::<init>(java.lang.String, org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>, org.apache.logging.log4j.core.Filter, boolean, boolean, M)",
+        "new": "method void org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender<M extends org.apache.logging.log4j.core.appender.OutputStreamManager>::<init>(java.lang.String, org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>, org.apache.logging.log4j.core.Filter, boolean, boolean, org.apache.logging.log4j.core.config.Property[], M)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.numberOfParametersChanged",
+        "old": "method void org.apache.logging.log4j.core.appender.AbstractWriterAppender<M extends org.apache.logging.log4j.core.appender.WriterManager>::<init>(java.lang.String, org.apache.logging.log4j.core.StringLayout, org.apache.logging.log4j.core.Filter, boolean, boolean, M)",
+        "new": "method void org.apache.logging.log4j.core.appender.AbstractWriterAppender<M extends org.apache.logging.log4j.core.appender.WriterManager>::<init>(java.lang.String, org.apache.logging.log4j.core.StringLayout, org.apache.logging.log4j.core.Filter, boolean, boolean, org.apache.logging.log4j.core.config.Property[], M)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.AppenderSet.Builder org.apache.logging.log4j.core.appender.AppenderSet.Builder::withConfiguration(org.apache.logging.log4j.core.config.Configuration)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.AppenderSet.Builder org.apache.logging.log4j.core.appender.AppenderSet.Builder::withNode(org.apache.logging.log4j.core.config.Node)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.AsyncAppender org.apache.logging.log4j.core.appender.AsyncAppender::createAppender(org.apache.logging.log4j.core.config.AppenderRef[], java.lang.String, boolean, long, int, java.lang.String, boolean, org.apache.logging.log4j.core.Filter, org.apache.logging.log4j.core.config.Configuration, boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.ConsoleAppender org.apache.logging.log4j.core.appender.ConsoleAppender::createAppender(org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>, org.apache.logging.log4j.core.Filter, java.lang.String, java.lang.String, java.lang.String, java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.ConsoleAppender org.apache.logging.log4j.core.appender.ConsoleAppender::createAppender(org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>, org.apache.logging.log4j.core.Filter, org.apache.logging.log4j.core.appender.ConsoleAppender.Target, java.lang.String, boolean, boolean, boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.FileAppender.Builder<B extends org.apache.logging.log4j.core.appender.FileAppender.Builder<B extends org.apache.logging.log4j.core.appender.FileAppender.Builder<B>>>::withAdvertise(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.FileAppender.Builder<B extends org.apache.logging.log4j.core.appender.FileAppender.Builder<B extends org.apache.logging.log4j.core.appender.FileAppender.Builder<B>>>::withAdvertiseUri(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.FileAppender.Builder<B extends org.apache.logging.log4j.core.appender.FileAppender.Builder<B extends org.apache.logging.log4j.core.appender.FileAppender.Builder<B>>>::withAppend(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.FileAppender.Builder<B extends org.apache.logging.log4j.core.appender.FileAppender.Builder<B extends org.apache.logging.log4j.core.appender.FileAppender.Builder<B>>>::withCreateOnDemand(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.FileAppender.Builder<B extends org.apache.logging.log4j.core.appender.FileAppender.Builder<B extends org.apache.logging.log4j.core.appender.FileAppender.Builder<B>>>::withFileGroup(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.FileAppender.Builder<B extends org.apache.logging.log4j.core.appender.FileAppender.Builder<B extends org.apache.logging.log4j.core.appender.FileAppender.Builder<B>>>::withFileName(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.FileAppender.Builder<B extends org.apache.logging.log4j.core.appender.FileAppender.Builder<B extends org.apache.logging.log4j.core.appender.FileAppender.Builder<B>>>::withFileOwner(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.FileAppender.Builder<B extends org.apache.logging.log4j.core.appender.FileAppender.Builder<B extends org.apache.logging.log4j.core.appender.FileAppender.Builder<B>>>::withFilePermissions(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.FileAppender.Builder<B extends org.apache.logging.log4j.core.appender.FileAppender.Builder<B extends org.apache.logging.log4j.core.appender.FileAppender.Builder<B>>>::withLocking(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method <B extends org.apache.logging.log4j.core.appender.FileAppender.Builder<B extends org.apache.logging.log4j.core.appender.FileAppender.Builder<B>>> org.apache.logging.log4j.core.appender.FileAppender org.apache.logging.log4j.core.appender.FileAppender::createAppender(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, org.apache.logging.log4j.core.Layout<? extends java.io.Seri [...]
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.appender.FileManager::<init>(java.lang.String, java.io.OutputStream, boolean, boolean, java.lang.String, org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>, boolean, java.nio.ByteBuffer)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.appender.FileManager::<init>(java.lang.String, java.io.OutputStream, boolean, boolean, java.lang.String, org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>, int, boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.appender.FileManager::<init>(org.apache.logging.log4j.core.LoggerContext, java.lang.String, java.io.OutputStream, boolean, boolean, boolean, java.lang.String, org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>, boolean, java.nio.ByteBuffer)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method <B extends org.apache.logging.log4j.core.appender.MemoryMappedFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.MemoryMappedFileAppender.Builder<B>>> org.apache.logging.log4j.core.appender.MemoryMappedFileAppender org.apache.logging.log4j.core.appender.MemoryMappedFileAppender::createAppender(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, org.apache.logging.log4j.core.Layout<? extends  [...]
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method <B extends org.apache.logging.log4j.core.appender.RandomAccessFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RandomAccessFileAppender.Builder<B>>> org.apache.logging.log4j.core.appender.RandomAccessFileAppender org.apache.logging.log4j.core.appender.RandomAccessFileAppender::createAppender(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, org.apache.logging.log4j.core.Layout<? extends  [...]
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B>>>::withAdvertise(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B>>>::withAdvertiseUri(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B>>>::withAppend(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B>>>::withCreateOnDemand(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B>>>::withFileGroup(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B>>>::withFileName(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B>>>::withFileOwner(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B>>>::withFilePattern(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B>>>::withFilePermissions(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B>>>::withLocking(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B>>>::withPolicy(org.apache.logging.log4j.core.appender.rolling.TriggeringPolicy)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B>>>::withStrategy(org.apache.logging.log4j.core.appender.rolling.RolloverStrategy)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method <B extends org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingFileAppender.Builder<B>>> org.apache.logging.log4j.core.appender.RollingFileAppender org.apache.logging.log4j.core.appender.RollingFileAppender::createAppender(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, org.apache.logging.log4j.core.appender.rolling.Tr [...]
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B>>>::withAdvertise(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B>>>::withAdvertiseURI(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B>>>::withAppend(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B>>>::withFileGroup(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B>>>::withFileName(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B>>>::withFileOwner(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B>>>::withFilePattern(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B>>>::withFilePermissions(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B>>>::withPolicy(org.apache.logging.log4j.core.appender.rolling.TriggeringPolicy)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B>>>::withStrategy(org.apache.logging.log4j.core.appender.rolling.RolloverStrategy)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method <B extends org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B extends org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.Builder<B>>> org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender::createAppender(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, org.apache.logging. [...]
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.ScriptAppenderSelector.Builder org.apache.logging.log4j.core.appender.ScriptAppenderSelector.Builder::withAppenderNodeSet(org.apache.logging.log4j.core.appender.AppenderSet)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.ScriptAppenderSelector.Builder org.apache.logging.log4j.core.appender.ScriptAppenderSelector.Builder::withConfiguration(org.apache.logging.log4j.core.config.Configuration)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.ScriptAppenderSelector.Builder org.apache.logging.log4j.core.appender.ScriptAppenderSelector.Builder::withName(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.ScriptAppenderSelector.Builder org.apache.logging.log4j.core.appender.ScriptAppenderSelector.Builder::withScript(org.apache.logging.log4j.core.script.AbstractScript)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.SmtpAppender",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B extends org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B extends org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B>>>::withAdvertise(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B extends org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B extends org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B>>>::withConnectTimeoutMillis(int)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B extends org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B extends org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B>>>::withHost(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B extends org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B extends org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B>>>::withImmediateFail(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B extends org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B extends org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B>>>::withPort(int)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B extends org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B extends org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B>>>::withProtocol(org.apache.logging.log4j.core.net.Protocol)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B extends org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B extends org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B>>>::withReconnectDelayMillis(int)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B extends org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B extends org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B>>>::withSocketOptions(org.apache.logging.log4j.core.net.SocketOptions)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B extends org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B extends org.apache.logging.log4j.core.appender.SocketAppender.AbstractBuilder<B>>>::withSslConfiguration(org.apache.logging.log4j.core.net.ssl.SslConfiguration)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.SocketAppender org.apache.logging.log4j.core.appender.SocketAppender::createAppender(java.lang.String, int, org.apache.logging.log4j.core.net.Protocol, org.apache.logging.log4j.core.net.ssl.SslConfiguration, int, int, boolean, java.lang.String, boolean, boolean, org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>, org.apache.logging.log4j.core.Filter, boolean, org.apache.logging.log4j.core.config.Configuration)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.SocketAppender org.apache.logging.log4j.core.appender.SocketAppender::createAppender(java.lang.String, java.lang.String, java.lang.String, org.apache.logging.log4j.core.net.ssl.SslConfiguration, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>, org.apache.logging.log4j.core.Filter, java.lang.String, org.apache.log [...]
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.net.AbstractSocketManager org.apache.logging.log4j.core.appender.SocketAppender::createSocketManager(java.lang.String, org.apache.logging.log4j.core.net.Protocol, java.lang.String, int, int, org.apache.logging.log4j.core.net.ssl.SslConfiguration, int, boolean, org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>, int)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method <B extends org.apache.logging.log4j.core.appender.SyslogAppender.Builder<B extends org.apache.logging.log4j.core.appender.SyslogAppender.Builder<B>>> org.apache.logging.log4j.core.appender.SyslogAppender org.apache.logging.log4j.core.appender.SyslogAppender::createAppender(java.lang.String, int, java.lang.String, org.apache.logging.log4j.core.net.ssl.SslConfiguration, int, int, boolean, java.lang.String, boolean, boolean, org.apache.logging.log4j.core.net.Facility, [...]
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.numberOfParametersChanged",
+        "old": "method void org.apache.logging.log4j.core.appender.db.AbstractDatabaseAppender<T extends org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager>::<init>(java.lang.String, org.apache.logging.log4j.core.Filter, org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>, boolean, T)",
+        "new": "method void org.apache.logging.log4j.core.appender.db.AbstractDatabaseAppender<T extends org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager>::<init>(java.lang.String, org.apache.logging.log4j.core.Filter, org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>, boolean, org.apache.logging.log4j.core.config.Property[], T)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.appender.db.AbstractDatabaseAppender<T extends org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager>::<init>(java.lang.String, org.apache.logging.log4j.core.Filter, boolean, T)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager::write(org.apache.logging.log4j.core.LogEvent)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager::writeInternal(org.apache.logging.log4j.core.LogEvent)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.db.jdbc.AbstractConnectionSource",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.db.jdbc.AbstractDriverManagerConnectionSource",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.db.jdbc.ColumnConfig",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "interface org.apache.logging.log4j.core.appender.db.jdbc.ConnectionSource",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.db.jdbc.DataSourceConnectionSource",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.db.jdbc.DriverManagerConnectionSource",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.db.jdbc.FactoryMethodConnectionSource",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.db.jdbc.JdbcAppender",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.mom.JmsAppender",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.mom.JmsManager",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.mom.jeromq.JeroMqAppender",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.mom.jeromq.JeroMqManager",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.mom.kafka.DefaultKafkaProducerFactory",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.mom.kafka.KafkaManager",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "interface org.apache.logging.log4j.core.appender.mom.kafka.KafkaProducerFactory",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.nosql.NoSqlAppender org.apache.logging.log4j.core.appender.nosql.NoSqlAppender::createAppender(java.lang.String, java.lang.String, org.apache.logging.log4j.core.Filter, java.lang.String, org.apache.logging.log4j.core.appender.nosql.NoSqlProvider<?>)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.appender.nosql.NoSqlDatabaseManager<W>::writeInternal(org.apache.logging.log4j.core.LogEvent)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.Builder org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.Builder::withCompressionLevelStr(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.Builder org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.Builder::withConfig(org.apache.logging.log4j.core.config.Configuration)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.Builder org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.Builder::withCustomActions(org.apache.logging.log4j.core.appender.rolling.action.Action[])",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.Builder org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.Builder::withFileIndex(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.Builder org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.Builder::withMax(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.Builder org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.Builder::withMin(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.Builder org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.Builder::withStopCustomActionsOnError(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.Builder org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy.Builder::withTempCompressedFilePattern(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy::<init>(int, int, boolean, int, org.apache.logging.log4j.core.lookup.StrSubstitutor, org.apache.logging.log4j.core.appender.rolling.action.Action[], boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy::createStrategy(java.lang.String, java.lang.String, java.lang.String, java.lang.String, org.apache.logging.log4j.core.appender.rolling.action.Action[], boolean, org.apache.logging.log4j.core.config.Configuration)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.DirectWriteRolloverStrategy.Builder org.apache.logging.log4j.core.appender.rolling.DirectWriteRolloverStrategy.Builder::withCompressionLevelStr(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.DirectWriteRolloverStrategy.Builder org.apache.logging.log4j.core.appender.rolling.DirectWriteRolloverStrategy.Builder::withConfig(org.apache.logging.log4j.core.config.Configuration)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.DirectWriteRolloverStrategy.Builder org.apache.logging.log4j.core.appender.rolling.DirectWriteRolloverStrategy.Builder::withCustomActions(org.apache.logging.log4j.core.appender.rolling.action.Action[])",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.DirectWriteRolloverStrategy.Builder org.apache.logging.log4j.core.appender.rolling.DirectWriteRolloverStrategy.Builder::withMaxFiles(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.DirectWriteRolloverStrategy.Builder org.apache.logging.log4j.core.appender.rolling.DirectWriteRolloverStrategy.Builder::withStopCustomActionsOnError(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.DirectWriteRolloverStrategy.Builder org.apache.logging.log4j.core.appender.rolling.DirectWriteRolloverStrategy.Builder::withTempCompressedFilePattern(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.appender.rolling.DirectWriteRolloverStrategy::<init>(int, int, org.apache.logging.log4j.core.lookup.StrSubstitutor, org.apache.logging.log4j.core.appender.rolling.action.Action[], boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.DirectWriteRolloverStrategy org.apache.logging.log4j.core.appender.rolling.DirectWriteRolloverStrategy::createStrategy(java.lang.String, java.lang.String, org.apache.logging.log4j.core.appender.rolling.action.Action[], boolean, org.apache.logging.log4j.core.config.Configuration)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.appender.rolling.RollingFileManager::<init>(java.lang.String, java.lang.String, java.io.OutputStream, boolean, long, long, org.apache.logging.log4j.core.appender.rolling.TriggeringPolicy, org.apache.logging.log4j.core.appender.rolling.RolloverStrategy, java.lang.String, org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>, boolean, java.nio.ByteBuffer)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.appender.rolling.RollingFileManager::<init>(java.lang.String, java.lang.String, java.io.OutputStream, boolean, long, long, org.apache.logging.log4j.core.appender.rolling.TriggeringPolicy, org.apache.logging.log4j.core.appender.rolling.RolloverStrategy, java.lang.String, org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>, int, boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.appender.rolling.RollingFileManager::<init>(org.apache.logging.log4j.core.LoggerContext, java.lang.String, java.lang.String, java.io.OutputStream, boolean, boolean, long, long, org.apache.logging.log4j.core.appender.rolling.TriggeringPolicy, org.apache.logging.log4j.core.appender.rolling.RolloverStrategy, java.lang.String, org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>, boolean, java.nio.ByteBuffer)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.appender.rolling.RollingRandomAccessFileManager::<init>(org.apache.logging.log4j.core.LoggerContext, java.io.RandomAccessFile, java.lang.String, java.lang.String, java.io.OutputStream, boolean, boolean, int, long, long, org.apache.logging.log4j.core.appender.rolling.TriggeringPolicy, org.apache.logging.log4j.core.appender.rolling.RolloverStrategy, java.lang.String, org.apache.logging.log4j.core.Layout<? extends java.io.Serializabl [...]
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.TimeBasedTriggeringPolicy.Builder org.apache.logging.log4j.core.appender.rolling.TimeBasedTriggeringPolicy.Builder::withInterval(int)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.TimeBasedTriggeringPolicy.Builder org.apache.logging.log4j.core.appender.rolling.TimeBasedTriggeringPolicy.Builder::withMaxRandomDelay(int)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.TimeBasedTriggeringPolicy.Builder org.apache.logging.log4j.core.appender.rolling.TimeBasedTriggeringPolicy.Builder::withModulate(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.TimeBasedTriggeringPolicy org.apache.logging.log4j.core.appender.rolling.TimeBasedTriggeringPolicy::createPolicy(java.lang.String, java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.action.PosixViewAttributeAction.Builder org.apache.logging.log4j.core.appender.rolling.action.PosixViewAttributeAction.Builder::withBasePath(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.action.PosixViewAttributeAction.Builder org.apache.logging.log4j.core.appender.rolling.action.PosixViewAttributeAction.Builder::withConfiguration(org.apache.logging.log4j.core.config.Configuration)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.action.PosixViewAttributeAction.Builder org.apache.logging.log4j.core.appender.rolling.action.PosixViewAttributeAction.Builder::withFileGroup(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.action.PosixViewAttributeAction.Builder org.apache.logging.log4j.core.appender.rolling.action.PosixViewAttributeAction.Builder::withFileOwner(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.action.PosixViewAttributeAction.Builder org.apache.logging.log4j.core.appender.rolling.action.PosixViewAttributeAction.Builder::withFilePermissions(java.util.Set<java.nio.file.attribute.PosixFilePermission>)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.action.PosixViewAttributeAction.Builder org.apache.logging.log4j.core.appender.rolling.action.PosixViewAttributeAction.Builder::withFilePermissionsString(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.action.PosixViewAttributeAction.Builder org.apache.logging.log4j.core.appender.rolling.action.PosixViewAttributeAction.Builder::withFollowLinks(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.action.PosixViewAttributeAction.Builder org.apache.logging.log4j.core.appender.rolling.action.PosixViewAttributeAction.Builder::withMaxDepth(int)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.action.PosixViewAttributeAction.Builder org.apache.logging.log4j.core.appender.rolling.action.PosixViewAttributeAction.Builder::withPathConditions(org.apache.logging.log4j.core.appender.rolling.action.PathCondition[])",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.rolling.action.PosixViewAttributeAction.Builder org.apache.logging.log4j.core.appender.rolling.action.PosixViewAttributeAction.Builder::withSubst(org.apache.logging.log4j.core.lookup.StrSubstitutor)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.routing.Routes.Builder org.apache.logging.log4j.core.appender.routing.Routes.Builder::withConfiguration(org.apache.logging.log4j.core.config.Configuration)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.routing.Routes.Builder org.apache.logging.log4j.core.appender.routing.Routes.Builder::withPattern(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.routing.Routes.Builder org.apache.logging.log4j.core.appender.routing.Routes.Builder::withPatternScript(org.apache.logging.log4j.core.script.AbstractScript)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.routing.Routes.Builder org.apache.logging.log4j.core.appender.routing.Routes.Builder::withRoutes(org.apache.logging.log4j.core.appender.routing.Route[])",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.routing.Routes org.apache.logging.log4j.core.appender.routing.Routes::createRoutes(java.lang.String, org.apache.logging.log4j.core.appender.routing.Route[])",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.routing.RoutingAppender.Builder<B extends org.apache.logging.log4j.core.appender.routing.RoutingAppender.Builder<B extends org.apache.logging.log4j.core.appender.routing.RoutingAppender.Builder<B>>>::withDefaultRouteScript(org.apache.logging.log4j.core.script.AbstractScript)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.appender.routing.RoutingAppender.Builder<B extends org.apache.logging.log4j.core.appender.routing.RoutingAppender.Builder<B extends org.apache.logging.log4j.core.appender.routing.RoutingAppender.Builder<B>>>::withPurgePolicy(org.apache.logging.log4j.core.appender.routing.PurgePolicy)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.routing.RoutingAppender.Builder<B extends org.apache.logging.log4j.core.appender.routing.RoutingAppender.Builder<B extends org.apache.logging.log4j.core.appender.routing.RoutingAppender.Builder<B>>>::withRewritePolicy(org.apache.logging.log4j.core.appender.rewrite.RewritePolicy)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.appender.routing.RoutingAppender.Builder<B extends org.apache.logging.log4j.core.appender.routing.RoutingAppender.Builder<B extends org.apache.logging.log4j.core.appender.routing.RoutingAppender.Builder<B>>>::withRoutes(org.apache.logging.log4j.core.appender.routing.Routes)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.appender.routing.RoutingAppender org.apache.logging.log4j.core.appender.routing.RoutingAppender::createAppender(java.lang.String, java.lang.String, org.apache.logging.log4j.core.appender.routing.Routes, org.apache.logging.log4j.core.config.Configuration, org.apache.logging.log4j.core.appender.rewrite.RewritePolicy, org.apache.logging.log4j.core.appender.routing.PurgePolicy, org.apache.logging.log4j.core.Filter)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.config.LoggerConfig org.apache.logging.log4j.core.async.AsyncLoggerConfig.RootLogger::createLogger(java.lang.String, java.lang.String, java.lang.String, org.apache.logging.log4j.core.config.AppenderRef[], org.apache.logging.log4j.core.config.Property[], org.apache.logging.log4j.core.config.Configuration, org.apache.logging.log4j.core.Filter)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.config.LoggerConfig org.apache.logging.log4j.core.async.AsyncLoggerConfig::createLogger(java.lang.String, java.lang.String, java.lang.String, java.lang.String, org.apache.logging.log4j.core.config.AppenderRef[], org.apache.logging.log4j.core.config.Property[], org.apache.logging.log4j.core.config.Configuration, org.apache.logging.log4j.core.Filter)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method java.util.Map<java.lang.String, java.lang.String> org.apache.logging.log4j.core.async.RingBufferLogEvent::getContextMap()",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.parameterTypeChanged",
+        "old": "parameter void org.apache.logging.log4j.core.async.RingBufferLogEvent::setValues(org.apache.logging.log4j.core.async.AsyncLogger, java.lang.String, org.apache.logging.log4j.Marker, java.lang.String, org.apache.logging.log4j.Level, org.apache.logging.log4j.message.Message, java.lang.Throwable, org.apache.logging.log4j.util.StringMap, org.apache.logging.log4j.ThreadContext.ContextStack, long, java.lang.String, int, java.lang.StackTraceElement, ===org.apache.logging.log4j.co [...]
+        "new": "parameter void org.apache.logging.log4j.core.async.RingBufferLogEvent::setValues(org.apache.logging.log4j.core.async.AsyncLogger, java.lang.String, org.apache.logging.log4j.Marker, java.lang.String, org.apache.logging.log4j.Level, org.apache.logging.log4j.message.Message, java.lang.Throwable, org.apache.logging.log4j.util.StringMap, org.apache.logging.log4j.ThreadContext.ContextStack, long, java.lang.String, int, java.lang.StackTraceElement, ===org.apache.logging.log4j.co [...]
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.parameterTypeChanged",
+        "old": "parameter void org.apache.logging.log4j.core.async.RingBufferLogEvent::setValues(org.apache.logging.log4j.core.async.AsyncLogger, java.lang.String, org.apache.logging.log4j.Marker, java.lang.String, org.apache.logging.log4j.Level, org.apache.logging.log4j.message.Message, java.lang.Throwable, org.apache.logging.log4j.util.StringMap, org.apache.logging.log4j.ThreadContext.ContextStack, long, java.lang.String, int, java.lang.StackTraceElement, org.apache.logging.log4j.core. [...]
+        "new": "parameter void org.apache.logging.log4j.core.async.RingBufferLogEvent::setValues(org.apache.logging.log4j.core.async.AsyncLogger, java.lang.String, org.apache.logging.log4j.Marker, java.lang.String, org.apache.logging.log4j.Level, org.apache.logging.log4j.message.Message, java.lang.Throwable, org.apache.logging.log4j.util.StringMap, org.apache.logging.log4j.ThreadContext.ContextStack, long, java.lang.String, int, java.lang.StackTraceElement, org.apache.logging.log4j.core. [...]
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.parameterTypeChanged",
+        "old": "parameter void org.apache.logging.log4j.core.async.RingBufferLogEventTranslator::setBasicValues(org.apache.logging.log4j.core.async.AsyncLogger, java.lang.String, org.apache.logging.log4j.Marker, java.lang.String, org.apache.logging.log4j.Level, org.apache.logging.log4j.message.Message, java.lang.Throwable, org.apache.logging.log4j.ThreadContext.ContextStack, java.lang.StackTraceElement, ===org.apache.logging.log4j.core.util.Clock===, org.apache.logging.log4j.core.util.Na [...]
+        "new": "parameter void org.apache.logging.log4j.core.async.RingBufferLogEventTranslator::setBasicValues(org.apache.logging.log4j.core.async.AsyncLogger, java.lang.String, org.apache.logging.log4j.Marker, java.lang.String, org.apache.logging.log4j.Level, org.apache.logging.log4j.message.Message, java.lang.Throwable, org.apache.logging.log4j.ThreadContext.ContextStack, java.lang.StackTraceElement, ===org.apache.logging.log4j.core.time.Clock===, org.apache.logging.log4j.core.time.Na [...]
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.parameterTypeChanged",
+        "old": "parameter void org.apache.logging.log4j.core.async.RingBufferLogEventTranslator::setBasicValues(org.apache.logging.log4j.core.async.AsyncLogger, java.lang.String, org.apache.logging.log4j.Marker, java.lang.String, org.apache.logging.log4j.Level, org.apache.logging.log4j.message.Message, java.lang.Throwable, org.apache.logging.log4j.ThreadContext.ContextStack, java.lang.StackTraceElement, org.apache.logging.log4j.core.util.Clock, ===org.apache.logging.log4j.core.util.NanoC [...]
+        "new": "parameter void org.apache.logging.log4j.core.async.RingBufferLogEventTranslator::setBasicValues(org.apache.logging.log4j.core.async.AsyncLogger, java.lang.String, org.apache.logging.log4j.Marker, java.lang.String, org.apache.logging.log4j.Level, org.apache.logging.log4j.message.Message, java.lang.Throwable, org.apache.logging.log4j.ThreadContext.ContextStack, java.lang.StackTraceElement, org.apache.logging.log4j.core.time.Clock, ===org.apache.logging.log4j.core.time.NanoC [...]
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.returnTypeChanged",
+        "old": "method org.apache.logging.log4j.core.util.NanoClock org.apache.logging.log4j.core.config.AbstractConfiguration::getNanoClock()",
+        "new": "method org.apache.logging.log4j.core.time.NanoClock org.apache.logging.log4j.core.config.AbstractConfiguration::getNanoClock()",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.parameterTypeChanged",
+        "old": "parameter void org.apache.logging.log4j.core.config.AbstractConfiguration::setNanoClock(===org.apache.logging.log4j.core.util.NanoClock===)",
+        "new": "parameter void org.apache.logging.log4j.core.config.AbstractConfiguration::setNanoClock(===org.apache.logging.log4j.core.time.NanoClock===)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.returnTypeChanged",
+        "old": "method org.apache.logging.log4j.core.util.NanoClock org.apache.logging.log4j.core.config.Configuration::getNanoClock()",
+        "new": "method org.apache.logging.log4j.core.time.NanoClock org.apache.logging.log4j.core.config.Configuration::getNanoClock()",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.parameterTypeChanged",
+        "old": "parameter void org.apache.logging.log4j.core.config.Configuration::setNanoClock(===org.apache.logging.log4j.core.util.NanoClock===)",
+        "new": "parameter void org.apache.logging.log4j.core.config.Configuration::setNanoClock(===org.apache.logging.log4j.core.time.NanoClock===)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.config.LoggerConfig org.apache.logging.log4j.core.config.LoggerConfig::createLogger(java.lang.String, org.apache.logging.log4j.Level, java.lang.String, java.lang.String, org.apache.logging.log4j.core.config.AppenderRef[], org.apache.logging.log4j.core.config.Property[], org.apache.logging.log4j.core.config.Configuration, org.apache.logging.log4j.core.Filter)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method java.util.Map<org.apache.logging.log4j.core.config.Property, java.lang.Boolean> org.apache.logging.log4j.core.config.LoggerConfig::getProperties()",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method boolean org.apache.logging.log4j.core.config.LoggerConfig::includeLocation(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.config.plugins.convert.DateTypeConverter",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.config.plugins.util.PluginBuilder org.apache.logging.log4j.core.config.plugins.util.PluginBuilder::withConfiguration(org.apache.logging.log4j.core.config.Configuration)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.config.plugins.util.PluginBuilder org.apache.logging.log4j.core.config.plugins.util.PluginBuilder::withConfigurationNode(org.apache.logging.log4j.core.config.Node)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.config.plugins.util.PluginManager::main(java.lang.String[])",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.config.status.StatusConfiguration org.apache.logging.log4j.core.config.status.StatusConfiguration::withDestination(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.config.status.StatusConfiguration org.apache.logging.log4j.core.config.status.StatusConfiguration::withStatus(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.config.status.StatusConfiguration org.apache.logging.log4j.core.config.status.StatusConfiguration::withStatus(org.apache.logging.log4j.Level)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.config.status.StatusConfiguration org.apache.logging.log4j.core.config.status.StatusConfiguration::withVerboseClasses(java.lang.String[])",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.config.status.StatusConfiguration org.apache.logging.log4j.core.config.status.StatusConfiguration::withVerbosity(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method B org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B extends org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B extends org.apache.logging.log4j.core.filter.AbstractFilterable.Builder<B>>>::withFilter(org.apache.logging.log4j.core.Filter)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.numberOfParametersChanged",
+        "old": "method void org.apache.logging.log4j.core.filter.AbstractFilterable::<init>(org.apache.logging.log4j.core.Filter)",
+        "new": "method void org.apache.logging.log4j.core.filter.AbstractFilterable::<init>(org.apache.logging.log4j.core.Filter, org.apache.logging.log4j.core.config.Property[])",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method java.util.List<org.apache.logging.log4j.core.Filter> org.apache.logging.log4j.core.filter.CompositeFilter::getFilters()",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method java.util.Map<java.lang.String, java.util.List<java.lang.String>> org.apache.logging.log4j.core.filter.MapFilter::getMap()",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.impl.Log4jLogEvent.Builder org.apache.logging.log4j.core.impl.Log4jLogEvent.Builder::setContextMap(java.util.Map<java.lang.String, java.lang.String>)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.impl.Log4jLogEvent::<init>(java.lang.String, org.apache.logging.log4j.Marker, java.lang.String, org.apache.logging.log4j.Level, org.apache.logging.log4j.message.Message, java.lang.Throwable)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.impl.Log4jLogEvent::<init>(java.lang.String, org.apache.logging.log4j.Marker, java.lang.String, org.apache.logging.log4j.Level, org.apache.logging.log4j.message.Message, java.lang.Throwable, java.util.Map<java.lang.String, java.lang.String>, org.apache.logging.log4j.ThreadContext.ContextStack, java.lang.String, java.lang.StackTraceElement, long)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.impl.Log4jLogEvent::<init>(long)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.impl.Log4jLogEvent org.apache.logging.log4j.core.impl.Log4jLogEvent::createEvent(java.lang.String, org.apache.logging.log4j.Marker, java.lang.String, org.apache.logging.log4j.Level, org.apache.logging.log4j.message.Message, java.lang.Throwable, org.apache.logging.log4j.core.impl.ThrowableProxy, java.util.Map<java.lang.String, java.lang.String>, org.apache.logging.log4j.ThreadContext.ContextStack, java.lang.String, java.lang.StackTraceE [...]
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method java.util.Map<java.lang.String, java.lang.String> org.apache.logging.log4j.core.impl.Log4jLogEvent::getContextMap()",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.returnTypeChanged",
+        "old": "method org.apache.logging.log4j.core.util.NanoClock org.apache.logging.log4j.core.impl.Log4jLogEvent::getNanoClock()",
+        "new": "method org.apache.logging.log4j.core.time.NanoClock org.apache.logging.log4j.core.impl.Log4jLogEvent::getNanoClock()",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.parameterTypeChanged",
+        "old": "parameter void org.apache.logging.log4j.core.impl.Log4jLogEvent::setNanoClock(===org.apache.logging.log4j.core.util.NanoClock===)",
+        "new": "parameter void org.apache.logging.log4j.core.impl.Log4jLogEvent::setNanoClock(===org.apache.logging.log4j.core.time.NanoClock===)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method java.util.Map<java.lang.String, java.lang.String> org.apache.logging.log4j.core.impl.MutableLogEvent::getContextMap()",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.layout.AbstractCsvLayout",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.layout.AbstractLayout<T extends java.io.Serializable>::<init>(byte[], byte[])",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.layout.CsvLogEventLayout",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.layout.CsvParameterLayout",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.layout.GelfLayout::<init>(java.lang.String, org.apache.logging.log4j.core.util.KeyValuePair[], org.apache.logging.log4j.core.layout.GelfLayout.CompressionType, int, boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.layout.GelfLayout org.apache.logging.log4j.core.layout.GelfLayout::createLayout(java.lang.String, org.apache.logging.log4j.core.util.KeyValuePair[], org.apache.logging.log4j.core.layout.GelfLayout.CompressionType, int, boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.layout.HtmlLayout.Builder org.apache.logging.log4j.core.layout.HtmlLayout.Builder::withCharset(java.nio.charset.Charset)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.layout.HtmlLayout.Builder org.apache.logging.log4j.core.layout.HtmlLayout.Builder::withContentType(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.layout.HtmlLayout.Builder org.apache.logging.log4j.core.layout.HtmlLayout.Builder::withFontName(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.layout.HtmlLayout.Builder org.apache.logging.log4j.core.layout.HtmlLayout.Builder::withFontSize(org.apache.logging.log4j.core.layout.HtmlLayout.FontSize)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.layout.HtmlLayout.Builder org.apache.logging.log4j.core.layout.HtmlLayout.Builder::withLocationInfo(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.layout.HtmlLayout.Builder org.apache.logging.log4j.core.layout.HtmlLayout.Builder::withTitle(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.layout.JsonLayout",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.layout.MarkerPatternSelector::<init>(org.apache.logging.log4j.core.layout.PatternMatch[], java.lang.String, boolean, boolean, org.apache.logging.log4j.core.config.Configuration)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.layout.MarkerPatternSelector org.apache.logging.log4j.core.layout.MarkerPatternSelector::createSelector(org.apache.logging.log4j.core.layout.PatternMatch[], java.lang.String, boolean, boolean, org.apache.logging.log4j.core.config.Configuration)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.layout.PatternLayout.Builder org.apache.logging.log4j.core.layout.PatternLayout.Builder::withAlwaysWriteExceptions(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.layout.PatternLayout.Builder org.apache.logging.log4j.core.layout.PatternLayout.Builder::withCharset(java.nio.charset.Charset)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.layout.PatternLayout.Builder org.apache.logging.log4j.core.layout.PatternLayout.Builder::withConfiguration(org.apache.logging.log4j.core.config.Configuration)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.layout.PatternLayout.Builder org.apache.logging.log4j.core.layout.PatternLayout.Builder::withDisableAnsi(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.layout.PatternLayout.Builder org.apache.logging.log4j.core.layout.PatternLayout.Builder::withFooter(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.layout.PatternLayout.Builder org.apache.logging.log4j.core.layout.PatternLayout.Builder::withHeader(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.layout.PatternLayout.Builder org.apache.logging.log4j.core.layout.PatternLayout.Builder::withNoConsoleNoAnsi(boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.layout.PatternLayout.Builder org.apache.logging.log4j.core.layout.PatternLayout.Builder::withPattern(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.layout.PatternLayout.Builder org.apache.logging.log4j.core.layout.PatternLayout.Builder::withPatternSelector(org.apache.logging.log4j.core.layout.PatternSelector)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.layout.PatternLayout.Builder org.apache.logging.log4j.core.layout.PatternLayout.Builder::withRegexReplacement(org.apache.logging.log4j.core.pattern.RegexReplacement)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.layout.PatternLayout org.apache.logging.log4j.core.layout.PatternLayout::createLayout(java.lang.String, org.apache.logging.log4j.core.layout.PatternSelector, org.apache.logging.log4j.core.config.Configuration, org.apache.logging.log4j.core.pattern.RegexReplacement, java.nio.charset.Charset, boolean, boolean, java.lang.String, java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.layout.AbstractStringLayout.Serializer org.apache.logging.log4j.core.layout.PatternLayout::createSerializer(org.apache.logging.log4j.core.config.Configuration, org.apache.logging.log4j.core.pattern.RegexReplacement, java.lang.String, java.lang.String, org.apache.logging.log4j.core.layout.PatternSelector, boolean, boolean)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.visibilityReduced",
+        "old": "method void org.apache.logging.log4j.core.layout.ScriptPatternSelector::<init>(org.apache.logging.log4j.core.script.AbstractScript, org.apache.logging.log4j.core.layout.PatternMatch[], java.lang.String, boolean, boolean, boolean, org.apache.logging.log4j.core.config.Configuration)",
+        "new": "method void org.apache.logging.log4j.core.layout.ScriptPatternSelector::<init>(org.apache.logging.log4j.core.script.AbstractScript, org.apache.logging.log4j.core.layout.PatternMatch[], java.lang.String, boolean, boolean, boolean, org.apache.logging.log4j.core.config.Configuration)",
+        "oldVisibility": "public",
+        "newVisibility": "private",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.layout.ScriptPatternSelector org.apache.logging.log4j.core.layout.ScriptPatternSelector::createSelector(org.apache.logging.log4j.core.script.AbstractScript, org.apache.logging.log4j.core.layout.PatternMatch[], java.lang.String, boolean, boolean, org.apache.logging.log4j.core.config.Configuration)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.layout.SerializedLayout",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.layout.SyslogLayout org.apache.logging.log4j.core.layout.SyslogLayout::createLayout(org.apache.logging.log4j.core.net.Facility, boolean, java.lang.String, java.nio.charset.Charset)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.layout.XmlLayout",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.layout.YamlLayout",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.lookup.MapLookup::setMainArguments(java.lang.String[])",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.net.MimeMessageBuilder",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.net.SmtpManager",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.net.SslSocketManager::<init>(java.lang.String, java.io.OutputStream, java.net.Socket, org.apache.logging.log4j.core.net.ssl.SslConfiguration, java.net.InetAddress, java.lang.String, int, int, int, boolean, org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>, int)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.net.SslSocketManager org.apache.logging.log4j.core.net.SslSocketManager::getSocketManager(org.apache.logging.log4j.core.net.ssl.SslConfiguration, java.lang.String, int, int, int, boolean, org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>, int)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.net.TcpSocketManager::<init>(java.lang.String, java.io.OutputStream, java.net.Socket, java.net.InetAddress, java.lang.String, int, int, int, boolean, org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>, int)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.net.TcpSocketManager org.apache.logging.log4j.core.net.TcpSocketManager::getSocketManager(java.lang.String, int, int, int, boolean, org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>, int)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.net.ssl.AbstractKeyStoreConfiguration::<init>(java.lang.String, char[], java.lang.String) throws org.apache.logging.log4j.core.net.ssl.StoreConfigurationException",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.net.ssl.AbstractKeyStoreConfiguration::<init>(java.lang.String, java.lang.String, java.lang.String) throws org.apache.logging.log4j.core.net.ssl.StoreConfigurationException",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.net.ssl.KeyStoreConfiguration org.apache.logging.log4j.core.net.ssl.KeyStoreConfiguration::createKeyStoreConfiguration(java.lang.String, char[], java.lang.String, java.lang.String) throws org.apache.logging.log4j.core.net.ssl.StoreConfigurationException",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.net.ssl.KeyStoreConfiguration org.apache.logging.log4j.core.net.ssl.KeyStoreConfiguration::createKeyStoreConfiguration(java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws org.apache.logging.log4j.core.net.ssl.StoreConfigurationException",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.net.ssl.StoreConfiguration<T>::<init>(java.lang.String, char[])",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.net.ssl.StoreConfiguration<T>::<init>(java.lang.String, java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.returnTypeChanged",
+        "old": "method java.lang.String org.apache.logging.log4j.core.net.ssl.StoreConfiguration<T>::getPassword()",
+        "new": "method char[] org.apache.logging.log4j.core.net.ssl.StoreConfiguration<T>::getPassword()",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method char[] org.apache.logging.log4j.core.net.ssl.StoreConfiguration<T>::getPasswordAsCharArray()",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.net.ssl.StoreConfiguration<T>::setPassword(java.lang.String)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.net.ssl.TrustStoreConfiguration::<init>(java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws org.apache.logging.log4j.core.net.ssl.StoreConfigurationException",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.net.ssl.TrustStoreConfiguration org.apache.logging.log4j.core.net.ssl.TrustStoreConfiguration::createKeyStoreConfiguration(java.lang.String, char[], java.lang.String, java.lang.String) throws org.apache.logging.log4j.core.net.ssl.StoreConfigurationException",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.core.net.ssl.TrustStoreConfiguration org.apache.logging.log4j.core.net.ssl.TrustStoreConfiguration::createKeyStoreConfiguration(java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws org.apache.logging.log4j.core.net.ssl.StoreConfigurationException",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.parser.JsonLogEventParser",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.parser.XmlLogEventParser",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.parser.YamlLogEventParser",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.field.serialVersionUIDChanged",
+        "new": "field org.apache.logging.log4j.core.time.MutableInstant.serialVersionUID",
+        "oldSerialVersionUID": "-9042291931185997574",
+        "newSerialVersionUID": "1",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.method.parameterTypeChanged",
+        "old": "parameter void org.apache.logging.log4j.core.time.MutableInstant::initFrom(===org.apache.logging.log4j.core.util.Clock===)",
+        "new": "parameter void org.apache.logging.log4j.core.time.MutableInstant::initFrom(===org.apache.logging.log4j.core.time.Clock===)",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.noLongerImplementsInterface",
+        "old": "interface org.apache.logging.log4j.core.time.PreciseClock",
+        "new": "interface org.apache.logging.log4j.core.time.PreciseClock",
+        "interface": "org.apache.logging.log4j.core.util.Clock",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.noLongerImplementsInterface",
+        "old": "class org.apache.logging.log4j.core.time.internal.FixedPreciseClock",
+        "new": "class org.apache.logging.log4j.core.time.internal.FixedPreciseClock",
+        "interface": "org.apache.logging.log4j.core.util.Clock",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.nonPublicPartOfAPI",
+        "new": "interface org.apache.logging.log4j.core.time.internal.format.FastDatePrinter.NumberRule",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.nonPublicPartOfAPI",
+        "new": "interface org.apache.logging.log4j.core.time.internal.format.FastDatePrinter.Rule",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.util.CachedClock",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "interface org.apache.logging.log4j.core.util.Clock",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.util.ClockFactory",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.util.CoarseCachedClock",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.util.DummyNanoClock",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "interface org.apache.logging.log4j.core.util.NanoClock",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.field.removed",
+        "old": "field org.apache.logging.log4j.core.util.NullOutputStream.NULL_OUTPUT_STREAM",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.util.SystemClock",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.util.SystemMillisClock",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.util.SystemNanoClock",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "interface org.apache.logging.log4j.core.util.datetime.DateParser",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "interface org.apache.logging.log4j.core.util.datetime.DatePrinter",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.util.datetime.FastDateFormat",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.util.datetime.FastDateParser",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.util.datetime.FastDatePrinter",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.util.datetime.FixedDateFormat",
+        "justification": "Removed deprecated code"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.util.datetime.Format",
+        "justification": "Removed deprecated code"
+        
+      }
+    ]
+  }
+]
diff --git a/log4j-flume-ng/revapi.json b/log4j-flume-ng/revapi.json
new file mode 100644
index 0000000..04bbf7a
--- /dev/null
+++ b/log4j-flume-ng/revapi.json
@@ -0,0 +1,12 @@
+[
+  {
+    "extension": "revapi.ignore",
+    "configuration": [
+      {
+        "code": "java.method.removed",
+        "old": "method java.util.Map<java.lang.String, java.lang.String> org.apache.logging.log4j.flume.appender.FlumeEvent::getContextMap()",
+        "justification": "Remove deprecated code"
+      }
+    ]
+  }
+]
diff --git a/log4j-jdbc-dbcp2/revapi.json b/log4j-jdbc-dbcp2/revapi.json
new file mode 100644
index 0000000..ccb12ac
--- /dev/null
+++ b/log4j-jdbc-dbcp2/revapi.json
@@ -0,0 +1,23 @@
+[
+  {
+    "extension": "revapi.java",
+    "configuration": {
+      "filter": {
+        "classes": {
+          "exclude": [
+          ]
+        }
+      }
+    }
+  },
+  {
+    "extension": "revapi.ignore",
+    "configuration": [
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.db.jdbc.PoolingDriverConnectionSource",
+        "justification": "Package was renamed to comply with the Java 9 module system"
+      }
+    ]
+  }
+]
\ No newline at end of file
diff --git a/log4j-jdbc/revapi.json b/log4j-jdbc/revapi.json
new file mode 100644
index 0000000..7c413e9
--- /dev/null
+++ b/log4j-jdbc/revapi.json
@@ -0,0 +1,23 @@
+[
+  {
+    "extension": "revapi.java",
+    "configuration": {
+      "filter": {
+        "classes": {
+          "exclude": [
+          ]
+        }
+      }
+    }
+  },
+  {
+    "extension": "revapi.ignore",
+    "configuration": [
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.db.jdbc.PoolingDriverConnectionSource",
+        "justification": "Refactored to log4j-jdbc-dbcp2"
+      }
+    ]
+  }
+]
\ No newline at end of file
diff --git a/log4j-jpa/revapi.json b/log4j-jpa/revapi.json
new file mode 100644
index 0000000..04f119a
--- /dev/null
+++ b/log4j-jpa/revapi.json
@@ -0,0 +1,108 @@
+[
+  {
+    "extension": "revapi.ignore",
+    "configuration": [
+      {
+        "code": "java.method.removed",
+        "old": "method void org.apache.logging.log4j.core.appender.db.jpa.JpaDatabaseManager::writeInternal(org.apache.logging.log4j.core.LogEvent)",
+        "justification": "Method not needed"
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.db.jpa.AbstractLogEventWrapperEntity",
+        "justification": "Package was renamed to conform to the Java 9 module system"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.db.jpa.BasicLogEventEntity",
+        "justification": "Package was renamed to conform to the Java 9 module system"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.db.jpa.JpaAppender",
+        "justification": "Package was renamed to conform to the Java 9 module system"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.db.jpa.JpaDatabaseManager",
+        "justification": "Package was renamed to conform to the Java 9 module system"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.db.jpa.converter.ContextDataAttributeConverter",
+        "justification": "Package was renamed to conform to the Java 9 module system"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.db.jpa.converter.ContextDataJsonAttributeConverter",
+        "justification": "Package was renamed to conform to the Java 9 module system"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.db.jpa.converter.ContextMapAttributeConverter",
+        "justification": "Package was renamed to conform to the Java 9 module system"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.db.jpa.converter.ContextMapJsonAttributeConverter",
+        "justification": "Package was renamed to conform to the Java 9 module system"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.db.jpa.converter.ContextStackAttributeConverter",
+        "justification": "Package was renamed to conform to the Java 9 module system"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.db.jpa.converter.ContextStackJsonAttributeConverter",
+        "justification": "Package was renamed to conform to the Java 9 module system"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.db.jpa.converter.InstantAttributeConverter",
+        "justification": "Package was renamed to conform to the Java 9 module system"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.db.jpa.converter.LevelAttributeConverter",
+        "justification": "Package was renamed to conform to the Java 9 module system"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.db.jpa.converter.MarkerAttributeConverter",
+        "justification": "Package was renamed to conform to the Java 9 module system"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.db.jpa.converter.MessageAttributeConverter",
+        "justification": "Package was renamed to conform to the Java 9 module system"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.db.jpa.converter.StackTraceElementAttributeConverter",
+        "justification": "Package was renamed to conform to the Java 9 module system"
+        
+      },
+      {
+        "code": "java.class.removed",
+        "old": "class org.apache.logging.log4j.core.appender.db.jpa.converter.ThrowableAttributeConverter",
+        "justification": "Package was renamed to conform to the Java 9 module system"
+        
+      }
+    ]
+  }
+]
diff --git a/log4j-mongodb2/revapi.json b/log4j-mongodb2/revapi.json
new file mode 100644
index 0000000..bd8fb67
--- /dev/null
+++ b/log4j-mongodb2/revapi.json
@@ -0,0 +1,23 @@
+[
+  {
+    "extension": "revapi.java",
+    "configuration": {
+      "filter": {
+        "classes": {
+          "exclude": [
+          ]
+        }
+      }
+    }
+  },
+  {
+    "extension": "revapi.ignore",
+    "configuration": [
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.mongodb2.MongoDbProvider org.apache.logging.log4j.mongodb2.MongoDbProvider::createNoSqlProvider(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)",
+        "justification": "LOG4J2-2493 - Remove deprecated code"
+      }
+    ]
+  }
+]
\ No newline at end of file
diff --git a/log4j-osgi/pom.xml b/log4j-osgi/pom.xml
index 7dbcc7b..3f57f7a 100644
--- a/log4j-osgi/pom.xml
+++ b/log4j-osgi/pom.xml
@@ -111,11 +111,6 @@
   <reporting>
     <plugins>
       <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>clirr-maven-plugin</artifactId>
-        <version>${clirr.plugin.version}</version>
-      </plugin>
-      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-changes-plugin</artifactId>
         <version>${changes.plugin.version}</version>
diff --git a/log4j-perf/pom.xml b/log4j-perf/pom.xml
index fcf37a8..e8ecabe 100644
--- a/log4j-perf/pom.xml
+++ b/log4j-perf/pom.xml
@@ -41,6 +41,7 @@
     <jmh.version>1.19</jmh.version>
     <javac.target>1.7</javac.target>
     <uberjar.name>benchmarks</uberjar.name>
+    <revapi.skip>true</revapi.skip>
   </properties>
 
   <dependencies>
diff --git a/log4j-samples/pom.xml b/log4j-samples/pom.xml
index d479b3c..2148957 100644
--- a/log4j-samples/pom.xml
+++ b/log4j-samples/pom.xml
@@ -30,6 +30,7 @@
   <url>http://maven.apache.org</url>
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <revapi.skip>true</revapi.skip>
   </properties>
   <dependencyManagement>
     <dependencies>
diff --git a/log4j-slf4j-impl/pom.xml b/log4j-slf4j-impl/pom.xml
index 3ed84fb..0dfc96b 100644
--- a/log4j-slf4j-impl/pom.xml
+++ b/log4j-slf4j-impl/pom.xml
@@ -217,15 +217,14 @@
         </reportSets>
       </plugin>
       <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>findbugs-maven-plugin</artifactId>
-        <version>${findbugs.plugin.version}</version>
+        <groupId>com.github.spotbugs</groupId>
+        <artifactId>spotbugs-maven-plugin</artifactId>
         <configuration>
           <fork>true</fork>
           <jvmArgs>-Duser.language=en</jvmArgs>
           <threshold>Normal</threshold>
           <effort>Default</effort>
-          <excludeFilterFile>${log4jParentDir}/findbugs-exclude-filter.xml</excludeFilterFile>
+          <excludeFilterFile>${log4jParentDir}/spotbugs-exclude-filter.xml</excludeFilterFile>
         </configuration>
       </plugin>
       <plugin>
diff --git a/log4j-slf4j18-impl/pom.xml b/log4j-slf4j18-impl/pom.xml
index 6d204d1..2f1079b 100644
--- a/log4j-slf4j18-impl/pom.xml
+++ b/log4j-slf4j18-impl/pom.xml
@@ -174,15 +174,14 @@
         </reportSets>
       </plugin>
       <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>findbugs-maven-plugin</artifactId>
-        <version>${findbugs.plugin.version}</version>
+        <groupId>com.github.spotbugs</groupId>
+        <artifactId>spotbugs-maven-plugin</artifactId>
         <configuration>
           <fork>true</fork>
           <jvmArgs>-Duser.language=en</jvmArgs>
           <threshold>Normal</threshold>
           <effort>Default</effort>
-          <excludeFilterFile>${log4jParentDir}/findbugs-exclude-filter.xml</excludeFilterFile>
+          <excludeFilterFile>${log4jParentDir}/spotbugs-exclude-filter.xml</excludeFilterFile>
         </configuration>
       </plugin>
       <plugin>
diff --git a/log4j-smtp/revapi.json b/log4j-smtp/revapi.json
new file mode 100644
index 0000000..9b24f5e
--- /dev/null
+++ b/log4j-smtp/revapi.json
@@ -0,0 +1,23 @@
+[
+  {
+    "extension": "revapi.java",
+    "configuration": {
+      "filter": {
+        "classes": {
+          "exclude": [
+          ]
+        }
+      }
+    }
+  },
+  {
+    "extension": "revapi.ignore",
+    "configuration": [
+      {
+        "code": "java.class.nonPublicPartOfAPI",
+        "new": "class org.apache.logging.log4j.smtp.appender.SmtpManager.FactoryData",
+        "justification": "Internal component"
+      }
+    ]
+  }
+]
\ No newline at end of file
diff --git a/log4j-taglib/revapi.json b/log4j-taglib/revapi.json
new file mode 100644
index 0000000..9a74788
--- /dev/null
+++ b/log4j-taglib/revapi.json
@@ -0,0 +1,14 @@
+[
+  {
+    "extension": "revapi.java",
+    "configuration": {
+      "filter": {
+        "classes": {
+          "exclude": [
+            "org\\.apache\\.logging\\.log4j\\.taglib\\.Log4jTaglibLogger"
+          ]
+        }
+      }
+    }
+  }
+]
\ No newline at end of file
diff --git a/log4j-web/revapi.json b/log4j-web/revapi.json
new file mode 100644
index 0000000..9ba8949
--- /dev/null
+++ b/log4j-web/revapi.json
@@ -0,0 +1,24 @@
+[
+  {
+    "extension": "revapi.java",
+    "configuration": {
+      "filter": {
+        "classes": {
+          "exclude": [
+            "org\\.apache\\.logging\\.log4j\\.web\\.Log4jWebLifeCycle"
+          ]
+        }
+      }
+    }
+  },
+  {
+    "extension": "revapi.ignore",
+    "configuration": [
+      {
+        "code": "java.method.removed",
+        "old": "method org.apache.logging.log4j.web.appender.ServletAppender org.apache.logging.log4j.web.appender.ServletAppender::createAppender(org.apache.logging.log4j.core.Layout<? extends java.io.Serializable>, org.apache.logging.log4j.core.Filter, java.lang.String, boolean)",
+        "justification": "Remove deprecated code"
+      }
+    ]
+  }
+]
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 219ce69..cc225e4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -217,7 +217,8 @@
     <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>
-    <clirr.plugin.version>2.8</clirr.plugin.version>
+    <revapi.plugin.version>0.10.5</revapi.plugin.version>
+    <revapi.skip>false</revapi.skip>
     <!-- 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. -->
@@ -978,14 +979,6 @@
           <version>${jxr.plugin.version}</version>
         </plugin>
         <plugin>
-          <groupId>org.codehaus.mojo</groupId>
-          <artifactId>clirr-maven-plugin</artifactId>
-          <version>${clirr.plugin.version}</version>
-          <configuration>
-            <minSeverity>${minSeverity}</minSeverity>
-          </configuration>
-        </plugin>
-        <plugin>
           <groupId>org.eluder.coveralls</groupId>
           <artifactId>coveralls-maven-plugin</artifactId>
           <version>4.3.0</version>
@@ -1283,6 +1276,62 @@
           </execution>
         </executions>
       </plugin>
+      <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>
@@ -1382,6 +1431,18 @@
           </excludes>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.revapi</groupId>
+        <artifactId>revapi-maven-plugin</artifactId>
+        <version>${revapi.plugin.version}</version>
+        <reportSets>
+          <reportSet>
+            <reports>
+              <report>report</report>
+            </reports>
+          </reportSet>
+        </reportSets>
+      </plugin>
     </plugins>
   </reporting>
   <distributionManagement>
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 4d4fb3f..ea844de 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -340,6 +340,9 @@
       </action>
     </release>
     <release version="2.11.2" date="2018-MM-DD" description="GA Release 2.11.2">
+      <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>