XMLBEANS-551 - use log4j-2 for logging
git-svn-id: https://svn.apache.org/repos/asf/xmlbeans/trunk@1886773 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/build.xml b/build.xml
index 83d817f..50c0df7 100644
--- a/build.xml
+++ b/build.xml
@@ -120,7 +120,7 @@
<!-- dependencies -->
<dependency prefix="xml-apis" artifact="xml-apis:xml-apis:1.4.01" usage="java8"/>
- <dependency prefix="slf4j-api" artifact="org.slf4j:slf4j-api:1.7.30" usage="main"/>
+ <dependency prefix="log4j-api" artifact="org.apache.logging.log4j:log4j-api:2.14.0" usage="main"/>
<dependency prefix="saxon" artifact="net.sf.saxon:Saxon-HE:10.3" usage="main"/>
<dependency prefix="ant" artifact="org.apache.ant:ant:1.10.8" usage="main"/>
<dependency prefix="javaparser.core" artifact="com.github.javaparser:javaparser-core:3.18.0" usage="main"/>
@@ -139,7 +139,7 @@
<!-- test dependencies -->
<dependency prefix="junit" artifact="junit:junit:4.13.1" usage="tests"/>
- <dependency prefix="slf4j-simple" artifact="org.slf4j:slf4j-simple:1.7.30" usage="tests"/>
+ <dependency prefix="log4j-core" artifact="org.apache.logging.log4j:log4j-core:2.14.0" usage="tests"/>
<dependency prefix="ant-junit" artifact="org.apache.ant:ant-junit:1.10.8" usage="tests"/>
<dependency prefix="ant-junit4" artifact="org.apache.ant:ant-junit4:1.10.8" usage="tests"/>
<dependency prefix="hamcrest" artifact="org.hamcrest:hamcrest:2.2" usage="tests"/>
@@ -153,8 +153,8 @@
<pathelement location="${ant-junit.jar}"/>
<pathelement location="${ant-junit4.jar}"/>
<pathelement location="${saxon.jar}"/>
- <pathelement location="${slf4j-api.jar}"/>
- <pathelement location="${slf4j-simple.jar}"/>
+ <pathelement location="${log4j-api.jar}"/>
+ <pathelement location="${log4j-core.jar}"/>
<pathelement location="test/lib/w3c_domts.jar"/>
<pathelement location="${junit.jar}"/>
<pathelement location="${hamcrest.jar}"/>
@@ -184,9 +184,8 @@
<!-- remove previous versions of third-party jars to prevent them from lingering around,
we often had hard-to-find build/CI-problems because of these! -->
<delete dir="compile-lib"/>
- <delete dir="lib/main" includes="javaparser-core-3.15*.jar"/>
- <delete dir="lib/main" includes="javaparser-core-3.16*.jar"/>
- <delete dir="lib/main" includes="Saxon-HE-10.2.jar"/>
+ <delete dir="lib/main" includes="javaparser-core-3.15*.jar,javaparser-core-3.16*.jar,slf4j*.jar,Saxon-HE-10.2.jar"/>
+ <delete dir="lib/tests" includes="slf4j*.jar"/>
<delete dir="lib/util" includes="forbiddenapis-2.6.jar,apache-rat-0.12.jar"/>
<condition property="jars.present">
<or>
@@ -194,8 +193,8 @@
<available file="${old.xmlbeans.jar}"/>
<available file="${javaparser.core.jar}"/>
<available file="${saxon.jar}"/>
- <available file="${slf4j-api.jar}"/>
- <available file="${slf4j-simple.jar}"/>
+ <available file="${log4j-api.jar}"/>
+ <available file="${log4j-core.jar}"/>
<available file="${junit.jar}"/>
<available file="${hamcrest.jar}"/>
<available file="${xerces.jar}"/>
@@ -225,8 +224,8 @@
<downloadfile dest="${old.xmlbeans.jar}" src="${old.xmlbeans.url}"/>
<downloadfile dest="${javaparser.core.jar}" src="${javaparser.core.url}"/>
<downloadfile dest="${saxon.jar}" src="${saxon.url}"/>
- <downloadfile dest="${slf4j-api.jar}" src="${slf4j-api.url}"/>
- <downloadfile dest="${slf4j-simple.jar}" src="${slf4j-simple.url}"/>
+ <downloadfile dest="${log4j-api.jar}" src="${log4j-api.url}"/>
+ <downloadfile dest="${log4j-core.jar}" src="${log4j-core.url}"/>
<downloadfile dest="${junit.jar}" src="${junit.url}"/>
<downloadfile dest="${hamcrest.jar}" src="${hamcrest.url}"/>
<downloadfile dest="${xerces.jar}" src="${xerces.url}"/>
@@ -359,7 +358,7 @@
<pathelement location="${ant-junit.jar}"/>
<pathelement location="${ant-junit4.jar}"/>
<pathelement location="${saxon.jar}"/>
- <pathelement location="${slf4j-api.jar}"/>
+ <pathelement location="${log4j-api.jar}"/>
<pathelement location="${javaparser.core.jar}"/>
</classpath>
</javac>
@@ -374,7 +373,8 @@
<!-- now generate new xmlbeans re-/sources and remove the traces of the oldxbean generated re-/sources -->
<path id="oldschemas">
- <pathelement location="${slf4j-api.jar}"/>
+ <pathelement location="${log4j-api.jar}"/>
+ <pathelement location="${log4j-core.jar}"/>
<pathelement location="${ant.jar}"/>
<pathelement location="${ant-junit.jar}"/>
<pathelement location="${ant-junit4.jar}"/>
@@ -402,7 +402,7 @@
source="${jdk.version.source}">
<src refid="sources"/>
<classpath path="${saxon.jar}"/>
- <classpath path="${slf4j-api.jar}"/>
+ <classpath path="${log4j-api.jar}"/>
<classpath path="${javaparser.core.jar}"/>
<classpath path="${ant.jar}"/>
</javac>
@@ -718,10 +718,10 @@
<include name="xmlbeans-${version.base}-sources.jar"/>
</zipfileset>
<zipfileset dir="lib/main" prefix="${prefix}/lib">
- <include name="slf4j-*.jar"/>
+ <include name="log4j-*.jar"/>
</zipfileset>
<zipfileset dir="lib/tests" prefix="${prefix}/lib">
- <include name="slf4j-*.jar"/>
+ <include name="log4j-*.jar"/>
</zipfileset>
</zip>
<tar destfile="build/xmlbeans-bin-${version.base}-${tstamp.dist}.tgz" compression="gzip" longfile="posix">
@@ -738,10 +738,10 @@
<include name="xmlbeans-${version.base}-sources.jar"/>
</tarfileset>
<tarfileset dir="lib/main" prefix="${prefix}/lib">
- <include name="slf4j-*.jar"/>
+ <include name="log4j-*.jar"/>
</tarfileset>
<tarfileset dir="lib/tests" prefix="${prefix}/lib">
- <include name="slf4j-*.jar"/>
+ <include name="log4j-*.jar"/>
</tarfileset>
</tar>
diff --git a/src/main/java/org/apache/xmlbeans/impl/common/DocumentHelper.java b/src/main/java/org/apache/xmlbeans/impl/common/DocumentHelper.java
index f1b3e77..7e12d26 100644
--- a/src/main/java/org/apache/xmlbeans/impl/common/DocumentHelper.java
+++ b/src/main/java/org/apache/xmlbeans/impl/common/DocumentHelper.java
@@ -15,9 +15,9 @@
package org.apache.xmlbeans.impl.common;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.apache.xmlbeans.XmlOptionsBean;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;
import org.xml.sax.ErrorHandler;
import org.xml.sax.InputSource;
@@ -34,7 +34,7 @@
import java.util.concurrent.TimeUnit;
public final class DocumentHelper {
- private static final Logger logger = LoggerFactory.getLogger(DocumentHelper.class);
+ private static final Logger LOG = LogManager.getLogger(DocumentHelper.class);
private static long lastLog;
private DocumentHelper() {}
@@ -42,15 +42,15 @@
private static class DocHelperErrorHandler implements ErrorHandler {
public void warning(SAXParseException exception) throws SAXException {
- logger.warn(asString(exception), exception);
+ LOG.atWarn().withThrowable(exception).log(asString(exception));
}
public void error(SAXParseException exception) throws SAXException {
- logger.error(asString(exception), exception);
+ LOG.atError().withThrowable(exception).log(asString(exception));
}
public void fatalError(SAXParseException exception) throws SAXException {
- logger.error(asString(exception), exception);
+ LOG.atFatal().withThrowable(exception).log(asString(exception));
throw exception;
}
@@ -93,7 +93,7 @@
}
}
- private static final DocumentBuilderFactory documentBuilderFactory(XmlOptionsBean options) {
+ private static DocumentBuilderFactory documentBuilderFactory(XmlOptionsBean options) {
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
documentBuilderFactory.setNamespaceAware(true);
documentBuilderFactory.setValidating(false);
@@ -108,9 +108,9 @@
try {
dbf.setFeature(feature, enabled);
} catch (Exception e) {
- logger.warn("SAX Feature unsupported: {}", feature, e);
+ LOG.atWarn().withThrowable(e).log("SAX Feature unsupported: {}", feature);
} catch (AbstractMethodError ame) {
- logger.warn("Cannot set SAX feature {} because of outdated XML parser in classpath", feature, ame);
+ LOG.atWarn().withThrowable(ame).log("Cannot set SAX feature {} because of outdated XML parser in classpath", feature);
}
}
@@ -131,7 +131,7 @@
// continue without log, this is expected in some setups
} catch (Throwable e) { // NOSONAR - also catch things like NoClassDefError here
if(System.currentTimeMillis() > lastLog + TimeUnit.MINUTES.toMillis(5)) {
- logger.warn("DocumentBuilderFactory Security Manager could not be setup [log suppressed for 5 minutes]", e);
+ LOG.atWarn().withThrowable(e).log("DocumentBuilderFactory Security Manager could not be setup [log suppressed for 5 minutes]");
lastLog = System.currentTimeMillis();
}
}
@@ -142,7 +142,7 @@
dbf.setAttribute(XMLBeansConstants.ENTITY_EXPANSION_LIMIT, options.getEntityExpansionLimit());
} catch (Throwable e) {
if(System.currentTimeMillis() > lastLog + TimeUnit.MINUTES.toMillis(5)) {
- logger.warn("DocumentBuilderFactory Entity Expansion Limit could not be setup [log suppressed for 5 minutes]", e);
+ LOG.atWarn().withThrowable(e).log("DocumentBuilderFactory Entity Expansion Limit could not be setup [log suppressed for 5 minutes]");
lastLog = System.currentTimeMillis();
}
}
diff --git a/src/main/java/org/apache/xmlbeans/impl/common/SAXHelper.java b/src/main/java/org/apache/xmlbeans/impl/common/SAXHelper.java
index cb24942..f99f69f 100644
--- a/src/main/java/org/apache/xmlbeans/impl/common/SAXHelper.java
+++ b/src/main/java/org/apache/xmlbeans/impl/common/SAXHelper.java
@@ -15,10 +15,10 @@
package org.apache.xmlbeans.impl.common;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.apache.xmlbeans.XmlOptions;
import org.apache.xmlbeans.XmlOptionsBean;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
@@ -36,7 +36,7 @@
* Provides handy methods for working with SAX parsers and readers
*/
public final class SAXHelper {
- private static final Logger logger = LoggerFactory.getLogger(SAXHelper.class);
+ private static final Logger LOG = LogManager.getLogger(SAXHelper.class);
private static long lastLog;
private SAXHelper() {
@@ -79,9 +79,9 @@
try {
spf.setFeature(feature, flag);
} catch (Exception e) {
- logger.warn("SAX Feature unsupported: {}", feature, e);
+ LOG.atWarn().withThrowable(e).log("SAX Feature unsupported: {}", feature);
} catch (AbstractMethodError ame) {
- logger.warn("Cannot set SAX feature {} because outdated XML parser in classpath", feature, ame);
+ LOG.atWarn().withThrowable(ame).log("Cannot set SAX feature {} because outdated XML parser in classpath", feature);
}
}
@@ -89,9 +89,9 @@
try {
xmlReader.setFeature(feature, true);
} catch (Exception e) {
- logger.warn("SAX Feature unsupported: {}", feature, e);
+ LOG.atWarn().withThrowable(e).log("SAX Feature unsupported: {}", feature);
} catch (AbstractMethodError ame) {
- logger.warn("Cannot set SAX feature {} because outdated XML parser in classpath", feature, ame);
+ LOG.atWarn().withThrowable(ame).log("Cannot set SAX feature {} because outdated XML parser in classpath", feature);
}
}
@@ -111,7 +111,7 @@
} catch (Throwable e) { // NOSONAR - also catch things like NoClassDefError here
// throttle the log somewhat as it can spam the log otherwise
if (System.currentTimeMillis() > lastLog + TimeUnit.MINUTES.toMillis(5)) {
- logger.warn("SAX Security Manager could not be setup [log suppressed for 5 minutes]", e);
+ LOG.atWarn().withThrowable(e).log("SAX Security Manager could not be setup [log suppressed for 5 minutes]");
lastLog = System.currentTimeMillis();
}
}
@@ -123,7 +123,7 @@
} catch (SAXException e) { // NOSONAR - also catch things like NoClassDefError here
// throttle the log somewhat as it can spam the log otherwise
if (System.currentTimeMillis() > lastLog + TimeUnit.MINUTES.toMillis(5)) {
- logger.warn("SAX Security Manager could not be setup [log suppressed for 5 minutes]", e);
+ LOG.atWarn().withThrowable(e).log("SAX Security Manager could not be setup [log suppressed for 5 minutes]");
lastLog = System.currentTimeMillis();
}
}
diff --git a/src/main/java/org/apache/xmlbeans/impl/common/StaxHelper.java b/src/main/java/org/apache/xmlbeans/impl/common/StaxHelper.java
index 59cebaa..207e8cd 100644
--- a/src/main/java/org/apache/xmlbeans/impl/common/StaxHelper.java
+++ b/src/main/java/org/apache/xmlbeans/impl/common/StaxHelper.java
@@ -15,19 +15,19 @@
package org.apache.xmlbeans.impl.common;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.xmlbeans.XmlOptionsBean;
+
import javax.xml.stream.XMLEventFactory;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLOutputFactory;
-import org.apache.xmlbeans.XmlOptionsBean;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
/**
* Provides handy methods for working with StAX parsers and readers
*/
public final class StaxHelper {
- private static final Logger logger = LoggerFactory.getLogger(StaxHelper.class);
+ private static final Logger LOG = LogManager.getLogger(StaxHelper.class);
private StaxHelper() {}
@@ -58,14 +58,14 @@
public static XMLEventFactory newXMLEventFactory(XmlOptionsBean options) {
return XMLEventFactory.newFactory();
}
-
+
private static void trySetProperty(XMLInputFactory factory, String feature, boolean flag) {
try {
factory.setProperty(feature, flag);
} catch (Exception e) {
- logger.warn("StAX Property unsupported: {}", feature, e);
+ LOG.atWarn().withThrowable(e).log("StAX Property unsupported: {}", feature);
} catch (AbstractMethodError ame) {
- logger.warn("Cannot set StAX property {} because outdated StAX parser in classpath", feature, ame);
+ LOG.atWarn().withThrowable(ame).log("Cannot set StAX property {} because outdated StAX parser in classpath", feature);
}
}
@@ -73,9 +73,9 @@
try {
factory.setProperty(feature, flag);
} catch (Exception e) {
- logger.warn("StAX Property unsupported: {}", feature, e);
+ LOG.atWarn().withThrowable(e).log("StAX Property unsupported: {}", feature);
} catch (AbstractMethodError ame) {
- logger.warn("Cannot set StAX property {} because outdated StAX parser in classpath", feature, ame);
+ LOG.atWarn().withThrowable(ame).log("Cannot set StAX property {} because outdated StAX parser in classpath", feature);
}
}
}
diff --git a/src/main/java/org/apache/xmlbeans/impl/store/Locale.java b/src/main/java/org/apache/xmlbeans/impl/store/Locale.java
index 58529a0..9d9ace7 100755
--- a/src/main/java/org/apache/xmlbeans/impl/store/Locale.java
+++ b/src/main/java/org/apache/xmlbeans/impl/store/Locale.java
@@ -15,14 +15,17 @@
package org.apache.xmlbeans.impl.store;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.apache.xmlbeans.*;
import org.apache.xmlbeans.XmlCursor.XmlBookmark;
-import org.apache.xmlbeans.impl.common.*;
+import org.apache.xmlbeans.impl.common.QNameHelper;
+import org.apache.xmlbeans.impl.common.ResolverUtil;
+import org.apache.xmlbeans.impl.common.SAXHelper;
+import org.apache.xmlbeans.impl.common.XmlLocale;
import org.apache.xmlbeans.impl.store.Cur.Locations;
import org.apache.xmlbeans.impl.store.DomImpl.Dom;
import org.apache.xmlbeans.impl.store.Saaj.SaajCallback;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.w3c.dom.*;
import org.xml.sax.*;
import org.xml.sax.ext.DeclHandler;
@@ -46,7 +49,7 @@
public final class Locale
implements DOMImplementation, SaajCallback, XmlLocale {
- private static final Logger logger = LoggerFactory.getLogger(Locale.class);
+ private static final Logger LOG = LogManager.getLogger(Locale.class);
static final int ROOT = Cur.ROOT;
static final int ELEM = Cur.ELEM;
@@ -1914,7 +1917,7 @@
// the "better" cache should never walk more than 1/2 len
- Dom x = null;
+ Dom x;
boolean bInvalidate = (db - _domNthCache_B._len / 2 > 0) &&
(db - _domNthCache_B._len / 2 - domNthCache.BLITZ_BOUNDARY > 0);
boolean aInvalidate = (da - _domNthCache_A._len / 2 > 0) &&
@@ -2003,7 +2006,7 @@
}
if (_len == -1) {
- Dom x = null;
+ Dom x;
if (_child != null && _n != -1) {
x = _child;
@@ -2294,7 +2297,7 @@
return !_noSync;
}
- static final boolean isWhiteSpace(String s) {
+ static boolean isWhiteSpace(String s) {
int l = s.length();
while (l-- > 0) {
@@ -2306,7 +2309,7 @@
return true;
}
- static final boolean isWhiteSpace(StringBuffer sb) {
+ static boolean isWhiteSpace(StringBuffer sb) {
int l = sb.length();
while (l-- > 0) {
@@ -2616,7 +2619,7 @@
}
}
- public void characters(char ch[], int start, int length)
+ public void characters(char[] ch, int start, int length)
throws SAXException {
_context.text(ch, start, length);
@@ -2634,11 +2637,11 @@
}
}
- public void ignorableWhitespace(char ch[], int start, int length)
+ public void ignorableWhitespace(char[] ch, int start, int length)
throws SAXException {
}
- public void comment(char ch[], int start, int length)
+ public void comment(char[] ch, int start, int length)
throws SAXException {
_context.comment(ch, start, length);
}
@@ -2759,7 +2762,7 @@
try {
_xr.setProperty("http://xml.org/sax/properties/declaration-handler", this);
} catch (Throwable e) {
- logger.warn("SAX Declaration Handler is not supported", e);
+ LOG.atWarn().withThrowable(e).log("SAX Declaration Handler is not supported");
}
}
@@ -2830,7 +2833,7 @@
throw e;
}
- private XMLReader _xr;
+ private final XMLReader _xr;
}
private Dom load(InputSource is, XmlOptions options)
@@ -2974,7 +2977,7 @@
private static final class DefaultQNameFactory
implements QNameFactory {
- private QNameCache _cache = XmlBeans.getQNameCache();
+ private final QNameCache _cache = XmlBeans.getQNameCache();
public QName getQName(String uri, String local) {
return _cache.getName(uri, local, "");
@@ -3005,7 +3008,7 @@
private static final class LocalDocumentQNameFactory
implements QNameFactory {
- private QNameCache _cache = new QNameCache(32);
+ private final QNameCache _cache = new QNameCache(32);
public QName getQName(String uri, String local) {
return _cache.getName(uri, local, "");
diff --git a/src/main/multimodule/java9/module-info.class b/src/main/multimodule/java9/module-info.class
index 836fbf5..e794481 100644
--- a/src/main/multimodule/java9/module-info.class
+++ b/src/main/multimodule/java9/module-info.class
Binary files differ
diff --git a/src/main/multimodule/java9/module-info.java b/src/main/multimodule/java9/module-info.java
index 6c9bc1f..fb91d07 100644
--- a/src/main/multimodule/java9/module-info.java
+++ b/src/main/multimodule/java9/module-info.java
@@ -18,7 +18,7 @@
module org.apache.xmlbeans {
requires java.xml;
requires jdk.xml.dom;
- requires org.slf4j;
+ requires org.apache.logging.log4j;
requires static ant;
requires static com.github.javaparser.core;
requires static Saxon.HE;
diff --git a/src/main/resources/maven/pom.xml b/src/main/resources/maven/pom.xml
index 77bee6f..eab851b 100644
--- a/src/main/resources/maven/pom.xml
+++ b/src/main/resources/maven/pom.xml
@@ -78,9 +78,15 @@
<dependencies>
<dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>1.7.30</version>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-api</artifactId>
+ <version>2.14.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-core</artifactId>
+ <version>2.14.0</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>net.sf.saxon</groupId>