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>