1
0

Move authors to pom.xml.

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/logging/trunk@1432663 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Thomas Neidhart
2013-01-13 17:24:18 +00:00
parent f33207b314
commit 70a06f8947
14 changed files with 65 additions and 82 deletions

31
pom.xml
View File

@@ -98,7 +98,7 @@ under the License.
<developer> <developer>
<id>baliuka</id> <id>baliuka</id>
<name>Juozas Baliuka</name> <name>Juozas Baliuka</name>
<email>baliuka@apache.org</email> <email>baliuka at apache dot org</email>
<roles> <roles>
<role>Java Developer</role> <role>Java Developer</role>
</roles> </roles>
@@ -106,13 +106,13 @@ under the License.
<developer> <developer>
<id>skitching</id> <id>skitching</id>
<name>Simon Kitching</name> <name>Simon Kitching</name>
<email>skitching@apache.org</email> <email>skitching at apache dot org</email>
<organization>Apache Software Foundation</organization> <organization>Apache Software Foundation</organization>
</developer> </developer>
<developer> <developer>
<id>dennisl</id> <id>dennisl</id>
<name>Dennis Lundberg</name> <name>Dennis Lundberg</name>
<email>dennisl@apache.org</email> <email>dennisl at apache dot org</email>
<organization>Apache Software Foundation</organization> <organization>Apache Software Foundation</organization>
</developer> </developer>
<developer> <developer>
@@ -120,6 +120,31 @@ under the License.
<name>Brian Stansberry</name> <name>Brian Stansberry</name>
</developer> </developer>
</developers> </developers>
<contributors>
<contributor>
<name>Vince Eagen</name>
<email>vince256 at comcast dot net</email>
<roles>
<role>Lumberjack logging abstraction</role>
</roles>
</contributor>
<contributor>
<name>Berin Loritsch</name>
<email>bloritsch at apache dot org</email>
<roles>
<role>Lumberjack logging abstraction</role>
<role>JDK 1.4 logging abstraction</role>
</roles>
</contributor>
<contributor>
<name>Neeme Praks</name>
<email>neeme at apache dot org</email>
<roles>
<role>Avalon logging abstraction</role>
</roles>
</contributor>
</contributors>
<scm> <scm>
<connection>scm:svn:http://svn.apache.org/repos/asf/commons/proper/logging/trunk</connection> <connection>scm:svn:http://svn.apache.org/repos/asf/commons/proper/logging/trunk</connection>

View File

@@ -54,8 +54,6 @@ package org.apache.commons.logging;
* external to the Logging APIs, through whatever mechanism is supported by * external to the Logging APIs, through whatever mechanism is supported by
* that system. * that system.
* *
* @author <a href="mailto:sanders@apache.org">Scott Sanders</a>
* @author Rod Waldhoff
* @version $Id$ * @version $Id$
*/ */
public interface Log { public interface Log {
@@ -205,7 +203,6 @@ public interface Log {
*/ */
public void error(Object message, Throwable t); public void error(Object message, Throwable t);
/** /**
* Log a message with fatal log level. * Log a message with fatal log level.
* *
@@ -213,7 +210,6 @@ public interface Log {
*/ */
public void fatal(Object message); public void fatal(Object message);
/** /**
* Log an error with fatal log level. * Log an error with fatal log level.
* *

View File

@@ -22,7 +22,6 @@ package org.apache.commons.logging;
* or <code>Log</code> instance cannot be created by the corresponding * or <code>Log</code> instance cannot be created by the corresponding
* factory methods. * factory methods.
* *
* @author Craig R. McClanahan
* @version $Id$ * @version $Id$
*/ */
public class LogConfigurationException extends RuntimeException { public class LogConfigurationException extends RuntimeException {

View File

@@ -42,9 +42,6 @@ import java.util.Properties;
* based on the SAXParserFactory and DocumentBuilderFactory implementations * based on the SAXParserFactory and DocumentBuilderFactory implementations
* (corresponding to the JAXP pluggability APIs) found in Apache Xerces. * (corresponding to the JAXP pluggability APIs) found in Apache Xerces.
* *
* @author Craig R. McClanahan
* @author Costin Manolache
* @author Richard A. Sitze
* @version $Id$ * @version $Id$
*/ */
public abstract class LogFactory { public abstract class LogFactory {

View File

@@ -50,7 +50,6 @@ import org.apache.commons.logging.impl.NoOpLog;
* @deprecated Use {@link LogFactory} instead - The default factory * @deprecated Use {@link LogFactory} instead - The default factory
* implementation performs exactly the same algorithm as this class did * implementation performs exactly the same algorithm as this class did
* *
* @author Rod Waldhoff
* @version $Id$ * @version $Id$
*/ */
public class LogSource { public class LogSource {

View File

@@ -47,7 +47,6 @@ import org.apache.commons.logging.Log;
* be thrown as soon as the deserialized object was used), so removing this marker * be thrown as soon as the deserialized object was used), so removing this marker
* is not considered to be an incompatible change. * is not considered to be an incompatible change.
* *
* @author <a href="mailto:neeme@apache.org">Neeme Praks</a>
* @version $Id$ * @version $Id$
*/ */
public class AvalonLogger implements Log { public class AvalonLogger implements Log {

View File

@@ -28,14 +28,10 @@ import java.io.StringWriter;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
/** /**
* <p>Implementation of the <code>org.apache.commons.logging.Log</code> * Implementation of the <code>org.apache.commons.logging.Log</code>
* interface that wraps the standard JDK logging mechanisms that are * interface that wraps the standard JDK logging mechanisms that are
* available in SourceForge's Lumberjack for JDKs prior to 1.4.</p> * available in SourceForge's Lumberjack for JDKs prior to 1.4.
* *
* @author <a href="mailto:sanders@apache.org">Scott Sanders</a>
* @author <a href="mailto:bloritsch@apache.org">Berin Loritsch</a>
* @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
* @author <a href="mailto:vince256@comcast.net">Vince Eagen</a>
* @version $Id$ * @version $Id$
* @since 1.1 * @since 1.1
*/ */

View File

@@ -28,9 +28,6 @@ import org.apache.commons.logging.Log;
* interface that wraps the standard JDK logging mechanisms that were * interface that wraps the standard JDK logging mechanisms that were
* introduced in the Merlin release (JDK 1.4). * introduced in the Merlin release (JDK 1.4).
* *
* @author <a href="mailto:sanders@apache.org">Scott Sanders</a>
* @author <a href="mailto:bloritsch@apache.org">Berin Loritsch</a>
* @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
* @version $Id$ * @version $Id$
*/ */
public class Jdk14Logger implements Log, Serializable { public class Jdk14Logger implements Log, Serializable {

View File

@@ -40,9 +40,6 @@ import org.apache.log4j.Level;
* a non-binary-compatible change. The class generated by compiling this code against * a non-binary-compatible change. The class generated by compiling this code against
* log4j 1.2 will therefore not run against log4j 1.3. * log4j 1.2 will therefore not run against log4j 1.3.
* *
* @author <a href="mailto:sanders@apache.org">Scott Sanders</a>
* @author Rod Waldhoff
* @author Robert Burrell Donkin
* @version $Id$ * @version $Id$
*/ */
public class Log4JLogger implements Log, Serializable { public class Log4JLogger implements Log, Serializable {

View File

@@ -30,9 +30,9 @@ import org.apache.commons.logging.LogConfigurationException;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
/** /**
* <p>Concrete subclass of {@link LogFactory} that implements the * Concrete subclass of {@link LogFactory} that implements the
* following algorithm to dynamically select a logging implementation * following algorithm to dynamically select a logging implementation
* class to instantiate a wrapper for.</p> * class to instantiate a wrapper for:
* <ul> * <ul>
* <li>Use a factory configuration attribute named * <li>Use a factory configuration attribute named
* <code>org.apache.commons.logging.Log</code> to identify the * <code>org.apache.commons.logging.Log</code> to identify the
@@ -46,21 +46,17 @@ import org.apache.commons.logging.LogFactory;
* <li>Otherwise, return an instance of * <li>Otherwise, return an instance of
* <code>org.apache.commons.logging.impl.SimpleLog</code>.</li> * <code>org.apache.commons.logging.impl.SimpleLog</code>.</li>
* </ul> * </ul>
* * <p>
* <p>If the selected {@link Log} implementation class has a * If the selected {@link Log} implementation class has a
* <code>setLogFactory()</code> method that accepts a {@link LogFactory} * <code>setLogFactory()</code> method that accepts a {@link LogFactory}
* parameter, this method will be called on each newly created instance * parameter, this method will be called on each newly created instance
* to identify the associated factory. This makes factory configuration * to identify the associated factory. This makes factory configuration
* attributes available to the Log instance, if it so desires.</p> * attributes available to the Log instance, if it so desires.
* * <p>
* <p>This factory will remember previously created <code>Log</code> instances * This factory will remember previously created <code>Log</code> instances
* for the same name, and will return them on repeated requests to the * for the same name, and will return them on repeated requests to the
* <code>getInstance()</code> method.</p> * <code>getInstance()</code> method.
* *
* @author Rod Waldhoff
* @author Craig R. McClanahan
* @author Richard A. Sitze
* @author Brian Stansberry
* @version $Id$ * @version $Id$
*/ */
public class LogFactoryImpl extends LogFactory { public class LogFactoryImpl extends LogFactory {

View File

@@ -31,8 +31,6 @@ import org.apache.commons.logging.Log;
* Therefore, this implementation converts object messages into strings * Therefore, this implementation converts object messages into strings
* by called their <code>toString()</code> method before logging them. * by called their <code>toString()</code> method before logging them.
* *
* @author <a href="mailto:sanders@apache.org">Scott Sanders</a>
* @author Robert Burrell Donkin
* @version $Id$ * @version $Id$
*/ */
public class LogKitLogger implements Log, Serializable { public class LogKitLogger implements Log, Serializable {

View File

@@ -24,8 +24,6 @@ import org.apache.commons.logging.Log;
* Trivial implementation of Log that throws away all messages. No * Trivial implementation of Log that throws away all messages. No
* configurable system properties are supported. * configurable system properties are supported.
* *
* @author <a href="mailto:sanders@apache.org">Scott Sanders</a>
* @author Rod Waldhoff
* @version $Id$ * @version $Id$
*/ */
public class NoOpLog implements Log, Serializable { public class NoOpLog implements Log, Serializable {

View File

@@ -32,9 +32,9 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogConfigurationException; import org.apache.commons.logging.LogConfigurationException;
/** /**
* <p>Simple implementation of Log that sends all enabled log messages, * Simple implementation of Log that sends all enabled log messages,
* for all defined loggers, to System.err. The following system properties * for all defined loggers, to System.err. The following system properties
* are supported to configure the behavior of this logger:</p> * are supported to configure the behavior of this logger:
* <ul> * <ul>
* <li><code>org.apache.commons.logging.simplelog.defaultlog</code> - * <li><code>org.apache.commons.logging.simplelog.defaultlog</code> -
* Default logging detail level for all instances of SimpleLog. * Default logging detail level for all instances of SimpleLog.
@@ -60,15 +60,11 @@ import org.apache.commons.logging.LogConfigurationException;
* specified or is invalid, the default format is used. * specified or is invalid, the default format is used.
* The default format is <code>yyyy/MM/dd HH:mm:ss:SSS zzz</code>.</li> * The default format is <code>yyyy/MM/dd HH:mm:ss:SSS zzz</code>.</li>
* </ul> * </ul>
* * <p>
* <p>In addition to looking for system properties with the names specified * In addition to looking for system properties with the names specified
* above, this implementation also checks for a class loader resource named * above, this implementation also checks for a class loader resource named
* <code>"simplelog.properties"</code>, and includes any matching definitions * <code>"simplelog.properties"</code>, and includes any matching definitions
* from this resource (if it exists).</p> * from this resource (if it exists).
*
* @author <a href="mailto:sanders@apache.org">Scott Sanders</a>
* @author Rod Waldhoff
* @author Robert Burrell Donkin
* *
* @version $Id$ * @version $Id$
*/ */

View File

@@ -28,29 +28,27 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
/** /**
* <p>Implementation of <code>Hashtable</code> that uses <code>WeakReference</code>'s * Implementation of <code>Hashtable</code> that uses <code>WeakReference</code>'s
* to hold its keys thus allowing them to be reclaimed by the garbage collector. * to hold its keys thus allowing them to be reclaimed by the garbage collector.
* The associated values are retained using strong references.</p> * The associated values are retained using strong references.
* * <p>
* <p>This class follows the semantics of <code>Hashtable</code> as closely as * This class follows the semantics of <code>Hashtable</code> as closely as
* possible. It therefore does not accept null values or keys.</p> * possible. It therefore does not accept null values or keys.
* * <p>
* <p><strong>Note:</strong> * <strong>Note:</strong>
* This is <em>not</em> intended to be a general purpose hash table replacement. * This is <em>not</em> intended to be a general purpose hash table replacement.
* This implementation is also tuned towards a particular purpose: for use as a replacement * This implementation is also tuned towards a particular purpose: for use as a replacement
* for <code>Hashtable</code> in <code>LogFactory</code>. This application requires * for <code>Hashtable</code> in <code>LogFactory</code>. This application requires
* good liveliness for <code>get</code> and <code>put</code>. Various tradeoffs * good liveliness for <code>get</code> and <code>put</code>. Various tradeoffs
* have been made with this in mind. * have been made with this in mind.
* </p>
* <p> * <p>
* <strong>Usage:</strong> typical use case is as a drop-in replacement * <strong>Usage:</strong> typical use case is as a drop-in replacement
* for the <code>Hashtable</code> used in <code>LogFactory</code> for J2EE environments * for the <code>Hashtable</code> used in <code>LogFactory</code> for J2EE environments
* running 1.3+ JVMs. Use of this class <i>in most cases</i> (see below) will * running 1.3+ JVMs. Use of this class <i>in most cases</i> (see below) will
* allow classloaders to be collected by the garbage collector without the need * allow classloaders to be collected by the garbage collector without the need
* to call {@link org.apache.commons.logging.LogFactory#release(ClassLoader) LogFactory.release(ClassLoader)}. * to call {@link org.apache.commons.logging.LogFactory#release(ClassLoader) LogFactory.release(ClassLoader)}.
* </p> * <p>
* * <code>org.apache.commons.logging.LogFactory</code> checks whether this class
* <p><code>org.apache.commons.logging.LogFactory</code> checks whether this class
* can be supported by the current JVM, and if so then uses it to store * can be supported by the current JVM, and if so then uses it to store
* references to the <code>LogFactory</code> implementation it loads * references to the <code>LogFactory</code> implementation it loads
* (rather than using a standard Hashtable instance). * (rather than using a standard Hashtable instance).
@@ -60,9 +58,9 @@ import java.util.Set;
* of <code>java.lang.ref.WeakReference</code> and associates). * of <code>java.lang.ref.WeakReference</code> and associates).
* And by the way, this extends <code>Hashtable</code> rather than <code>HashMap</code> * And by the way, this extends <code>Hashtable</code> rather than <code>HashMap</code>
* for backwards compatibility reasons. See the documentation * for backwards compatibility reasons. See the documentation
* for method <code>LogFactory.createFactoryStore</code> for more details.</p> * for method <code>LogFactory.createFactoryStore</code> for more details.
* * <p>
* <p>The reason all this is necessary is due to a issue which * The reason all this is necessary is due to a issue which
* arises during hot deploy in a J2EE-like containers. * arises during hot deploy in a J2EE-like containers.
* Each component running in the container owns one or more classloaders; when * Each component running in the container owns one or more classloaders; when
* the component loads a LogFactory instance via the component classloader * the component loads a LogFactory instance via the component classloader
@@ -77,16 +75,14 @@ import java.util.Set;
* garbage collected; this <i>should</i> be done by any container that * garbage collected; this <i>should</i> be done by any container that
* bundles commons-logging by default. However, holding the classloader * bundles commons-logging by default. However, holding the classloader
* references weakly ensures that the classloader will be garbage collected * references weakly ensures that the classloader will be garbage collected
* without the container performing this step. </p> * without the container performing this step.
*
* <p> * <p>
* <strong>Limitations:</strong> * <strong>Limitations:</strong>
* There is still one (unusual) scenario in which a component will not * There is still one (unusual) scenario in which a component will not
* be correctly unloaded without an explicit release. Though weak references * be correctly unloaded without an explicit release. Though weak references
* are used for its keys, it is necessary to use strong references for its values. * are used for its keys, it is necessary to use strong references for its values.
* </p> * <p>
* * If the abstract class <code>LogFactory</code> is
* <p> If the abstract class <code>LogFactory</code> is
* loaded by the container classloader but a subclass of * loaded by the container classloader but a subclass of
* <code>LogFactory</code> [LogFactory1] is loaded by the component's * <code>LogFactory</code> [LogFactory1] is loaded by the component's
* classloader and an instance stored in the static map associated with the * classloader and an instance stored in the static map associated with the
@@ -94,22 +90,18 @@ import java.util.Set;
* class to the LogFactory1 instance (as normal) and a strong reference from * class to the LogFactory1 instance (as normal) and a strong reference from
* the LogFactory1 instance to the component classloader via * the LogFactory1 instance to the component classloader via
* <code>getClass().getClassLoader()</code>. This chain of references will prevent * <code>getClass().getClassLoader()</code>. This chain of references will prevent
* collection of the child classloader.</p> * collection of the child classloader.
*
* <p> * <p>
* Such a situation occurs when the commons-logging.jar is * Such a situation occurs when the commons-logging.jar is
* loaded by a parent classloader (e.g. a server level classloader in a * loaded by a parent classloader (e.g. a server level classloader in a
* servlet container) and a custom <code>LogFactory</code> implementation is * servlet container) and a custom <code>LogFactory</code> implementation is
* loaded by a child classloader (e.g. a web app classloader).</p> * loaded by a child classloader (e.g. a web app classloader).
* * <p>
* <p>To avoid this scenario, ensure * To avoid this scenario, ensure
* that any custom LogFactory subclass is loaded by the same classloader as * that any custom LogFactory subclass is loaded by the same classloader as
* the base <code>LogFactory</code>. Creating custom LogFactory subclasses is, * the base <code>LogFactory</code>. Creating custom LogFactory subclasses is,
* however, rare. The standard LogFactoryImpl class should be sufficient * however, rare. The standard LogFactoryImpl class should be sufficient
* for most or all users.</p> * for most or all users.
*
*
* @author Brian Stansberry
* *
* @version $Id$ * @version $Id$
* @since 1.1 * @since 1.1
@@ -363,8 +355,7 @@ public final class WeakHashtable extends Hashtable {
Map.Entry entry = (Map.Entry) o; Map.Entry entry = (Map.Entry) o;
result = (getKey()==null ? result = (getKey()==null ?
entry.getKey() == null : entry.getKey() == null :
getKey().equals(entry.getKey())) getKey().equals(entry.getKey())) &&
&&
(getValue()==null ? (getValue()==null ?
entry.getValue() == null : entry.getValue() == null :
getValue().equals(entry.getValue())); getValue().equals(entry.getValue()));
@@ -373,7 +364,6 @@ public final class WeakHashtable extends Hashtable {
} }
public int hashCode() { public int hashCode() {
return (getKey()==null ? 0 : getKey().hashCode()) ^ return (getKey()==null ? 0 : getKey().hashCode()) ^
(getValue()==null ? 0 : getValue().hashCode()); (getValue()==null ? 0 : getValue().hashCode());
} }