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:23 UTC
[logging-log4j2] branch release-2.x 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 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 <rg...@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>