You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2018/07/28 08:40:02 UTC
[1/3] jena git commit: Remove blank line
Repository: jena
Updated Branches:
refs/heads/xsd-qname [created] 3f0fa025c
Remove blank line
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/7f36af48
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/7f36af48
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/7f36af48
Branch: refs/heads/xsd-qname
Commit: 7f36af480e61f5cf4fce300ca946d8eab7f4a73c
Parents: 6e85e6c
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Jul 28 09:07:22 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Jul 28 09:07:22 2018 +0100
----------------------------------------------------------------------
.../src/main/java/org/apache/jena/fuseki/FusekiConfigException.java | 1 -
1 file changed, 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/7f36af48/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/FusekiConfigException.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/FusekiConfigException.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/FusekiConfigException.java
index 5e1b018..69d1e87 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/FusekiConfigException.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/FusekiConfigException.java
@@ -18,7 +18,6 @@
package org.apache.jena.fuseki;
-
public class FusekiConfigException extends FusekiException
{
public FusekiConfigException(String msg, Throwable cause) { super(msg, cause) ; }
[3/3] jena git commit: JENA-1579: Include implementation for QNameDV.
Posted by an...@apache.org.
JENA-1579: Include implementation for QNameDV.
QNameDV is also used for xsd:NOTATION.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/3f0fa025
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/3f0fa025
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/3f0fa025
Branch: refs/heads/xsd-qname
Commit: 3f0fa025c7f965e3447abc3b63d48a2d0e2784c7
Parents: 42b2ef1
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Jul 28 09:29:07 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Jul 28 09:29:07 2018 +0100
----------------------------------------------------------------------
.../apache/jena/datatypes/xsd/XSDDatatype.java | 2 +-
.../jena/ext/xerces/impl/dv/xs/QNameDV.java | 190 +++++++++---------
.../ext/xerces/impl/dv/xs/XSSimpleTypeDecl.java | 12 +-
.../org/apache/jena/ext/xerces/xni/QName.java | 198 +++++++++++++++++++
.../jena/ext/xerces/xs/datatypes/XSQName.java | 36 ++++
5 files changed, 338 insertions(+), 100 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/3f0fa025/jena-core/src/main/java/org/apache/jena/datatypes/xsd/XSDDatatype.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/datatypes/xsd/XSDDatatype.java b/jena-core/src/main/java/org/apache/jena/datatypes/xsd/XSDDatatype.java
index 3319c8e..186ea8e 100644
--- a/jena-core/src/main/java/org/apache/jena/datatypes/xsd/XSDDatatype.java
+++ b/jena-core/src/main/java/org/apache/jena/datatypes/xsd/XSDDatatype.java
@@ -167,7 +167,7 @@ public class XSDDatatype extends BaseDatatype {
/** Datatype representing xsd:dateTime */
public static final XSDDatatype XSDdateTime = new XSDDateTimeType("dateTime");
- /** Datatype representing xsd:dateTime */
+ /** Datatype representing xsd:dateTimeStamp */
public static final XSDDatatype XSDdateTimeStamp = new XSDDateTimeStampType("dateTimeStamp");
/** Datatype representing xsd:duration */
http://git-wip-us.apache.org/repos/asf/jena/blob/3f0fa025/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/dv/xs/QNameDV.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/dv/xs/QNameDV.java b/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/dv/xs/QNameDV.java
index 123c165..7887948 100644
--- a/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/dv/xs/QNameDV.java
+++ b/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/dv/xs/QNameDV.java
@@ -17,96 +17,100 @@
package org.apache.jena.ext.xerces.impl.dv.xs;
-// UNUSED
-public class QNameDV {}
-//
-//import org.apache.xerces.impl.dv.InvalidDatatypeValueException;
-//import org.apache.xerces.impl.dv.ValidationContext;
-//import org.apache.xerces.util.XMLChar;
-//import org.apache.xerces.xni.QName;
-//import org.apache.xerces.xs.datatypes.XSQName;
-//
-///**
-// * Represent the schema type "QName" and "NOTATION"
-// *
-// * {@literal @xerces.internal}
-// *
-// * @author Neeraj Bajaj, Sun Microsystems, inc.
-// * @author Sandy Gao, IBM
-// *
-// * @version $Id: QNameDV.java 701915 2008-10-06 02:39:42Z mrglavas $
-// */
-//public class QNameDV extends TypeValidator {
-//
-// private static final String EMPTY_STRING = "".intern();
-//
-// public short getAllowedFacets() {
-// return (XSSimpleTypeDecl.FACET_LENGTH | XSSimpleTypeDecl.FACET_MINLENGTH | XSSimpleTypeDecl.FACET_MAXLENGTH | XSSimpleTypeDecl.FACET_PATTERN | XSSimpleTypeDecl.FACET_ENUMERATION | XSSimpleTypeDecl.FACET_WHITESPACE);
-// }
-//
-// public Object getActualValue(String content, ValidationContext context)
-// throws InvalidDatatypeValueException {
-//
-// // "prefix:localpart" or "localpart"
-// // get prefix and local part out of content
-// String prefix, localpart;
-// int colonptr = content.indexOf(":");
-// if (colonptr > 0) {
-// prefix = context.getSymbol(content.substring(0,colonptr));
-// localpart = content.substring(colonptr+1);
-// } else {
-// prefix = EMPTY_STRING;
-// localpart = content;
-// }
-//
-// // both prefix (if any) a nd localpart must be valid NCName
-// if (prefix.length() > 0 && !XMLChar.isValidNCName(prefix))
-// throw new InvalidDatatypeValueException("cvc-datatype-valid.1.2.1", new Object[]{content, "QName"});
-//
-// if(!XMLChar.isValidNCName(localpart))
-// throw new InvalidDatatypeValueException("cvc-datatype-valid.1.2.1", new Object[]{content, "QName"});
-//
-// // resove prefix to a uri, report an error if failed
-// String uri = context.getURI(prefix);
-// if (prefix.length() > 0 && uri == null)
-// throw new InvalidDatatypeValueException("UndeclaredPrefix", new Object[]{content, prefix});
-//
-// return new XQName(prefix, context.getSymbol(localpart), context.getSymbol(content), uri);
-//
-// }
-//
-// // REVISIT: qname and notation shouldn't support length facets.
-// // now we just return the length of the rawname
-// public int getDataLength(Object value) {
-// return ((XQName)value).rawname.length();
-// }
-//
-// /**
-// * represent QName data
-// */
-// private static final class XQName extends QName implements XSQName {
-// /** Constructs a QName with the specified values. */
-// public XQName(String prefix, String localpart, String rawname, String uri) {
-// setValues(prefix, localpart, rawname, uri);
-// } // <init>(String,String,String,String)
-//
-// /** Returns true if the two objects are equal. */
-// public boolean equals(Object object) {
-// if (object instanceof QName) {
-// QName qname = (QName)object;
-// return uri == qname.uri && localpart == qname.localpart;
-// }
-// return false;
-// } // equals(Object):boolean
-//
-// public String toString() {
-// return rawname;
-// }
-// public javax.xml.namespace.QName getJAXPQName() {
-// return new javax.xml.namespace.QName(uri, localpart, prefix);
-// }
-// public QName getXNIQName() {
-// return this;
-// }
-// }
-//} // class QNameDVDV
+import org.apache.jena.ext.xerces.impl.dv.InvalidDatatypeValueException;
+import org.apache.jena.ext.xerces.impl.dv.ValidationContext;
+import org.apache.jena.ext.xerces.util.XMLChar;
+import org.apache.jena.ext.xerces.xni.QName;
+import org.apache.jena.ext.xerces.xs.datatypes.XSQName;
+
+/**
+ * Represent the schema type "QName" and "NOTATION"
+ *
+ * {@literal @xerces.internal}
+ *
+ * @author Neeraj Bajaj, Sun Microsystems, inc.
+ * @author Sandy Gao, IBM
+ *
+ * @version $Id: QNameDV.java 701915 2008-10-06 02:39:42Z mrglavas $
+ */
+public class QNameDV extends TypeValidator {
+
+ private static final String EMPTY_STRING = "".intern();
+
+ @Override
+ public short getAllowedFacets() {
+ return (XSSimpleTypeDecl.FACET_LENGTH | XSSimpleTypeDecl.FACET_MINLENGTH | XSSimpleTypeDecl.FACET_MAXLENGTH | XSSimpleTypeDecl.FACET_PATTERN | XSSimpleTypeDecl.FACET_ENUMERATION | XSSimpleTypeDecl.FACET_WHITESPACE);
+ }
+
+ @Override
+ public Object getActualValue(String content, ValidationContext context)
+ throws InvalidDatatypeValueException {
+
+ // "prefix:localpart" or "localpart"
+ // get prefix and local part out of content
+ String prefix, localpart;
+ int colonptr = content.indexOf(":");
+ if (colonptr > 0) {
+ prefix = context.getSymbol(content.substring(0,colonptr));
+ localpart = content.substring(colonptr+1);
+ } else {
+ prefix = EMPTY_STRING;
+ localpart = content;
+ }
+
+ // both prefix (if any) a nd localpart must be valid NCName
+ if (prefix.length() > 0 && !XMLChar.isValidNCName(prefix))
+ throw new InvalidDatatypeValueException("cvc-datatype-valid.1.2.1", new Object[]{content, "QName"});
+
+ if(!XMLChar.isValidNCName(localpart))
+ throw new InvalidDatatypeValueException("cvc-datatype-valid.1.2.1", new Object[]{content, "QName"});
+
+ // resove prefix to a uri, report an error if failed
+ String uri = context.getURI(prefix);
+ if (prefix.length() > 0 && uri == null)
+ throw new InvalidDatatypeValueException("UndeclaredPrefix", new Object[]{content, prefix});
+
+ return new XQName(prefix, context.getSymbol(localpart), context.getSymbol(content), uri);
+
+ }
+
+ // REVISIT: qname and notation shouldn't support length facets.
+ // now we just return the length of the rawname
+ @Override
+ public int getDataLength(Object value) {
+ return ((XQName)value).rawname.length();
+ }
+
+ /**
+ * represent QName data
+ */
+ private static final class XQName extends QName implements XSQName {
+ /** Constructs a QName with the specified values. */
+ public XQName(String prefix, String localpart, String rawname, String uri) {
+ setValues(prefix, localpart, rawname, uri);
+ } // <init>(String,String,String,String)
+
+ /** Returns true if the two objects are equal. */
+ @Override
+ public boolean equals(Object object) {
+ if (object instanceof QName) {
+ QName qname = (QName)object;
+ return uri == qname.uri && localpart == qname.localpart;
+ }
+ return false;
+ } // equals(Object):boolean
+
+ @Override
+ public String toString() {
+ return rawname;
+ }
+ @Override
+ public javax.xml.namespace.QName getJAXPQName() {
+ return new javax.xml.namespace.QName(uri, localpart, prefix);
+ }
+ @Override
+ public QName getXNIQName() {
+ return this;
+ }
+ }
+} // class QNameDVDV
http://git-wip-us.apache.org/repos/asf/jena/blob/3f0fa025/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/dv/xs/XSSimpleTypeDecl.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/dv/xs/XSSimpleTypeDecl.java b/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/dv/xs/XSSimpleTypeDecl.java
index f7ff2f7..5d4d493 100644
--- a/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/dv/xs/XSSimpleTypeDecl.java
+++ b/jena-core/src/main/java/org/apache/jena/ext/xerces/impl/dv/xs/XSSimpleTypeDecl.java
@@ -99,18 +99,18 @@ public class XSSimpleTypeDecl implements XSSimpleType, TypeInfo {
new HexBinaryDV(),
new Base64BinaryDV(),
new AnyURIDV(),
- null, //new QNameDV(), // QName datatype not supported (or relevant) to RDF / Apache Jena.
- new PrecisionDecimalDV(), // XML Schema 1.1 type
- null, //new QNameDV(), // notation use the same one as qname
+ new QNameDV(),
+ new PrecisionDecimalDV(), // XML Schema 1.1 type
+ new QNameDV(), // NOTATION -- use the same one as qname
new IDDV(),
new IDREFDV(),
new EntityDV(),
new IntegerDV(),
new ListDV(),
new UnionDV(),
- new YearMonthDurationDV(), // XML Schema 1.1 type
- new DayTimeDurationDV(), // XML Schema 1.1 type
- new AnyAtomicDV() // XML Schema 1.1 type
+ new YearMonthDurationDV(), // XML Schema 1.1 type
+ new DayTimeDurationDV(), // XML Schema 1.1 type
+ new AnyAtomicDV() // XML Schema 1.1 type
};
static final short NORMALIZE_NONE = 0;
http://git-wip-us.apache.org/repos/asf/jena/blob/3f0fa025/jena-core/src/main/java/org/apache/jena/ext/xerces/xni/QName.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/ext/xerces/xni/QName.java b/jena-core/src/main/java/org/apache/jena/ext/xerces/xni/QName.java
new file mode 100644
index 0000000..2bb58bc
--- /dev/null
+++ b/jena-core/src/main/java/org/apache/jena/ext/xerces/xni/QName.java
@@ -0,0 +1,198 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.ext.xerces.xni;
+
+/**
+ * A structure that holds the components of an XML Namespaces qualified
+ * name.
+ * <p>
+ * To be used correctly, the strings must be identical references for
+ * equal strings. Within the parser, these values are considered symbols
+ * and should always be retrieved from the <code>SymbolTable</code>.
+ *
+ * @see <a href="../../../../../xerces2/org/apache/xerces/util/SymbolTable.html">org.apache.xerces.util.SymbolTable</a>
+ *
+ * @author Andy Clark, IBM
+ *
+ * @version $Id: QName.java 447247 2006-09-18 05:23:52Z mrglavas $
+ */
+public class QName
+ implements Cloneable {
+
+ //
+ // Data
+ //
+
+ /**
+ * The qname prefix. For example, the prefix for the qname "a:foo"
+ * is "a".
+ */
+ public String prefix;
+
+ /**
+ * The qname localpart. For example, the localpart for the qname "a:foo"
+ * is "foo".
+ */
+ public String localpart;
+
+ /**
+ * The qname rawname. For example, the rawname for the qname "a:foo"
+ * is "a:foo".
+ */
+ public String rawname;
+
+ /**
+ * The URI to which the qname prefix is bound. This binding must be
+ * performed by a XML Namespaces aware processor.
+ */
+ public String uri;
+
+ //
+ // Constructors
+ //
+
+ /** Default constructor. */
+ public QName() {
+ clear();
+ } // <init>()
+
+ /** Constructs a QName with the specified values. */
+ public QName(String prefix, String localpart, String rawname, String uri) {
+ setValues(prefix, localpart, rawname, uri);
+ } // <init>(String,String,String,String)
+
+ /** Constructs a copy of the specified QName. */
+ public QName(QName qname) {
+ setValues(qname);
+ } // <init>(QName)
+
+ //
+ // Public methods
+ //
+
+ /**
+ * Convenience method to set the values of the qname components.
+ *
+ * @param qname The qualified name to be copied.
+ */
+ public void setValues(QName qname) {
+ prefix = qname.prefix;
+ localpart = qname.localpart;
+ rawname = qname.rawname;
+ uri = qname.uri;
+ } // setValues(QName)
+
+ /**
+ * Convenience method to set the values of the qname components.
+ *
+ * @param prefix The qname prefix. (e.g. "a")
+ * @param localpart The qname localpart. (e.g. "foo")
+ * @param rawname The qname rawname. (e.g. "a:foo")
+ * @param uri The URI binding. (e.g. "http://foo.com/mybinding")
+ */
+ public void setValues(String prefix, String localpart, String rawname,
+ String uri) {
+ this.prefix = prefix;
+ this.localpart = localpart;
+ this.rawname = rawname;
+ this.uri = uri;
+ } // setValues(String,String,String,String)
+
+ /** Clears the values of the qname components. */
+ public void clear() {
+ prefix = null;
+ localpart = null;
+ rawname = null;
+ uri = null;
+ } // clear()
+
+ //
+ // Cloneable methods
+ //
+
+ /** Returns a clone of this object. */
+ @Override
+ public Object clone() {
+ return new QName(this);
+ } // clone():Object
+
+ //
+ // Object methods
+ //
+
+ /** Returns the hashcode for this object. */
+ @Override
+ public int hashCode() {
+ if (uri != null) {
+ return uri.hashCode() +
+ ((localpart != null) ? localpart.hashCode() : 0);
+ }
+ return (rawname != null) ? rawname.hashCode() : 0;
+ } // hashCode():int
+
+ /** Returns true if the two objects are equal. */
+ @Override
+ public boolean equals(Object object) {
+ if (object instanceof QName) {
+ QName qname = (QName)object;
+ if (qname.uri != null) {
+ return uri == qname.uri && localpart == qname.localpart;
+ }
+ else if (uri == null) {
+ return rawname == qname.rawname;
+ }
+ // fall through and return not equal
+ }
+ return false;
+ } // equals(Object):boolean
+
+ /** Returns a string representation of this object. */
+ @Override
+ public String toString() {
+
+ StringBuffer str = new StringBuffer();
+ boolean comma = false;
+ if (prefix != null) {
+ str.append("prefix=\"").append(prefix).append('"');
+ comma = true;
+ }
+ if (localpart != null) {
+ if (comma) {
+ str.append(',');
+ }
+ str.append("localpart=\"").append(localpart).append('"');
+ comma = true;
+ }
+ if (rawname != null) {
+ if (comma) {
+ str.append(',');
+ }
+ str.append("rawname=\"").append(rawname).append('"');
+ comma = true;
+ }
+ if (uri != null) {
+ if (comma) {
+ str.append(',');
+ }
+ str.append("uri=\"").append(uri).append('"');
+ }
+ return str.toString();
+
+ } // toString():String
+
+} // class QName
http://git-wip-us.apache.org/repos/asf/jena/blob/3f0fa025/jena-core/src/main/java/org/apache/jena/ext/xerces/xs/datatypes/XSQName.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/ext/xerces/xs/datatypes/XSQName.java b/jena-core/src/main/java/org/apache/jena/ext/xerces/xs/datatypes/XSQName.java
new file mode 100644
index 0000000..33692e6
--- /dev/null
+++ b/jena-core/src/main/java/org/apache/jena/ext/xerces/xs/datatypes/XSQName.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.ext.xerces.xs.datatypes;
+
+/**
+ * Interface to expose QName actual values
+ *
+ * @author Ankit Pasricha, IBM
+ */
+public interface XSQName {
+
+ /**
+ * @return org.apache.xerces.xni.QName class instance
+ */
+ public org.apache.jena.ext.xerces.xni.QName getXNIQName();
+
+ /**
+ * @return javax.xml.namespace.QName class instance
+ */
+ public javax.xml.namespace.QName getJAXPQName();
+}
[2/3] jena git commit: Add missing LogCtl operation
Posted by an...@apache.org.
Add missing LogCtl operation
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/42b2ef1b
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/42b2ef1b
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/42b2ef1b
Branch: refs/heads/xsd-qname
Commit: 42b2ef1b7a0a832ff0c458ff375c17db71f70de5
Parents: 7f36af4
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Jul 28 09:08:38 2018 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Jul 28 09:08:38 2018 +0100
----------------------------------------------------------------------
.../src/main/java/org/apache/jena/atlas/logging/LogCtl.java | 8 ++++++++
1 file changed, 8 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/42b2ef1b/jena-base/src/main/java/org/apache/jena/atlas/logging/LogCtl.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/logging/LogCtl.java b/jena-base/src/main/java/org/apache/jena/atlas/logging/LogCtl.java
index 46dc105..a3aa9b8 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/logging/LogCtl.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/logging/LogCtl.java
@@ -129,6 +129,14 @@ public class LogCtl {
* Turn on a logger (all levels). Works for Log4j and Java logging as the
* logging provider to Apache common logging or slf4j.
*/
+ static public void disable(Logger logger) {
+ setLevel(logger.getName(), "OFF") ;
+ }
+
+ /**
+ * Turn on a logger (all levels). Works for Log4j and Java logging as the
+ * logging provider to Apache common logging or slf4j.
+ */
static public void disable(String logger) {
setLevel(logger, "OFF") ;
}