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

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


The following commit(s) were added to refs/heads/release-2.x by this push:
     new 31728ab  LOG4J2-1576 - Change from CLIRR to RevAPI to detect changes 
to the API
31728ab is described below

commit 31728abcd28550e153b2a496233facbfbf5560c8
Author: Ralph Goers <rgo...@apache.org>
AuthorDate: Wed Dec 26 11:07:13 2018 -0700

    LOG4J2-1576 - Change from CLIRR to RevAPI to detect changes to the API
---
 log4j-api/pom.xml           |   5 -
 log4j-api/revapi.json       |  35 +++++
 log4j-cassandra/revapi.json |  12 ++
 log4j-core-its/pom.xml      |   1 +
 log4j-core/pom.xml          |   1 +
 log4j-core/revapi.json      | 353 ++++++++++++++++++++++++++++++++++++++++++++
 log4j-jpa/revapi.json       |  12 ++
 log4j-osgi/pom.xml          |   5 -
 log4j-perf/pom.xml          |   1 +
 log4j-samples/pom.xml       |   1 +
 log4j-taglib/revapi.json    |  14 ++
 log4j-web/revapi.json       |  14 ++
 pom.xml                     |  95 ++++++++----
 src/changes/changes.xml     |   3 +
 14 files changed, 517 insertions(+), 35 deletions(-)

diff --git a/log4j-api/pom.xml b/log4j-api/pom.xml
index a38e3fd..3ded901 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..146bbaa
--- /dev/null
+++ b/log4j-api/revapi.json
@@ -0,0 +1,35 @@
+[
+  {
+    "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 
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 3f50263..2492f99 100644
--- a/log4j-core-its/pom.xml
+++ b/log4j-core-its/pom.xml
@@ -31,6 +31,7 @@
     <log4jParentDir>${basedir}/..</log4jParentDir>
     <docLabel>Core Documentation</docLabel>
     <projectDir>/core</projectDir>
+    <revapi.skip>true</revapi.skip>
   </properties>
   <dependencies>
     <dependency>
diff --git a/log4j-core/pom.xml b/log4j-core/pom.xml
index fe0957c..f536477 100644
--- a/log4j-core/pom.xml
+++ b/log4j-core/pom.xml
@@ -31,6 +31,7 @@
     <log4jParentDir>${basedir}/..</log4jParentDir>
     <docLabel>Core Documentation</docLabel>
     <projectDir>/core</projectDir>
+    <!--<revapi.skip>true</revapi.skip>-->
   </properties>
   <dependencies>
     <!-- Naturally, all implementations require the log4j-api JAR -->
diff --git a/log4j-core/revapi.json b/log4j-core/revapi.json
new file mode 100644
index 0000000..4d04b7f
--- /dev/null
+++ b/log4j-core/revapi.json
@@ -0,0 +1,353 @@
+[
+  {
+    "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"
+          ]
+        }
+      }
+    }
+  },
+  {
+    "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"
+
+      }
+    ]
+  }
+]
diff --git a/log4j-jpa/revapi.json b/log4j-jpa/revapi.json
new file mode 100644
index 0000000..5b17e05
--- /dev/null
+++ b/log4j-jpa/revapi.json
@@ -0,0 +1,12 @@
+[
+  {
+    "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"
+      }
+    ]
+  }
+]
diff --git a/log4j-osgi/pom.xml b/log4j-osgi/pom.xml
index d678bd1..d47ac4e 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 e26869c..442bbd0 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 2dc125f..1a0fb30 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-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..f523355
--- /dev/null
+++ b/log4j-web/revapi.json
@@ -0,0 +1,14 @@
+[
+  {
+    "extension": "revapi.java",
+    "configuration": {
+      "filter": {
+        "classes": {
+          "exclude": [
+            "org\\.apache\\.logging\\.log4j\\.web\\.Log4jWebLifeCycle"
+          ]
+        }
+      }
+    }
+  }
+]
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 06e7f8f..973aa7b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -216,7 +216,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. -->
@@ -965,21 +966,6 @@
           <version>${jxr.plugin.version}</version>
         </plugin>
         <plugin>
-          <groupId>org.codehaus.mojo</groupId>
-          <artifactId>clirr-maven-plugin</artifactId>
-          <version>${clirr.plugin.version}</version>
-          <dependencies>
-            <dependency>
-              <groupId>org.apache.bcel</groupId>
-              <artifactId>bcel</artifactId>
-              <version>6.2</version>
-            </dependency>
-          </dependencies>
-          <configuration>
-            <minSeverity>${minSeverity}</minSeverity>
-          </configuration>
-        </plugin>
-        <plugin>
           <groupId>org.eluder.coveralls</groupId>
           <artifactId>coveralls-maven-plugin</artifactId>
           <version>4.3.0</version>
@@ -1251,19 +1237,60 @@
         </executions>
       </plugin>
       <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>clirr-maven-plugin</artifactId>
-        <version>${clirr.plugin.version}</version>
+        <groupId>org.revapi</groupId>
+        <artifactId>revapi-maven-plugin</artifactId>
+        <version>${revapi.plugin.version}</version>
         <dependencies>
           <dependency>
-            <groupId>org.apache.bcel</groupId>
-            <artifactId>bcel</artifactId>
-            <version>6.2</version>
+            <groupId>org.revapi</groupId>
+            <artifactId>revapi-java</artifactId>
+            <version>0.18.2</version>
           </dependency>
         </dependencies>
-        <configuration>
-          <minSeverity>${minSeverity}</minSeverity>
-        </configuration>
+        <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>
@@ -1362,6 +1389,24 @@
           </excludes>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.revapi</groupId>
+        <artifactId>revapi-maven-plugin</artifactId>
+        <version>${revapi.plugin.version}</version>
+        <reportSets>
+          <reportSet>
+            <inherited>false</inherited>
+            <reports>
+              <report>report-aggregate</report>
+            </reports>
+          </reportSet>
+          <reportSet>
+            <reports>
+              <report>report</report>
+            </reports>
+          </reportSet>
+        </reportSets>
+      </plugin>
     </plugins>
   </reporting>
   <distributionManagement>
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 0b2d603..a79d1d3 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -31,6 +31,9 @@
          - "remove" - Removed
     -->
     <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>

Reply via email to