1
0

Per discussion on COMMONS-DEV and bug reports 17561 and 17894, deprecate

the "proxy log factory" class o.a.c.l.impl.Log4jFactory (which didn't really
accomplish any functional purpose), and remove from LogFactoryImpl the
creation and use of a proxy instance.

PR:  Bugzilla #17561
Submitted by:  Felix Janssen <thundur at mayaxatl.org>

PR:  Bugzilla #17894
Submitted by:  Nathan Niesen <nathann at objectfx.com>


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk@138967 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Craig R. McClanahan
2003-04-02 01:53:04 +00:00
parent a6ec91bec0
commit c2f6f68394
2 changed files with 35 additions and 63 deletions

View File

@@ -73,6 +73,11 @@ import org.apache.log4j.Logger;
/** /**
* <p>Concrete subclass of {@link LogFactory} specific to log4j. * <p>Concrete subclass of {@link LogFactory} specific to log4j.
* *
* @deprecated Per discussion on COMMONS-DEV, the behind-the-scenes use
* of this class as a proxy factory has been removed. For 1.0, you
* can still request it directly if you wish, but it doesn't really
* do anything useful, and will be removed in 1.1.
*
* @author Costin Manolache * @author Costin Manolache
*/ */
public final class Log4jFactory extends LogFactory { public final class Log4jFactory extends LogFactory {

View File

@@ -1,7 +1,7 @@
/* /*
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//logging/src/java/org/apache/commons/logging/impl/LogFactoryImpl.java,v 1.24 2003/03/30 23:42:36 craigmcc Exp $ * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//logging/src/java/org/apache/commons/logging/impl/LogFactoryImpl.java,v 1.25 2003/04/02 01:53:04 craigmcc Exp $
* $Revision: 1.24 $ * $Revision: 1.25 $
* $Date: 2003/03/30 23:42:36 $ * $Date: 2003/04/02 01:53:04 $
* *
* ==================================================================== * ====================================================================
* *
@@ -107,7 +107,7 @@ import org.apache.commons.logging.LogFactory;
* @author Rod Waldhoff * @author Rod Waldhoff
* @author Craig R. McClanahan * @author Craig R. McClanahan
* @author Richard A. Sitze * @author Richard A. Sitze
* @version $Revision: 1.24 $ $Date: 2003/03/30 23:42:36 $ * @version $Revision: 1.25 $ $Date: 2003/04/02 01:53:04 $
*/ */
public class LogFactoryImpl extends LogFactory { public class LogFactoryImpl extends LogFactory {
@@ -120,23 +120,12 @@ public class LogFactoryImpl extends LogFactory {
*/ */
public LogFactoryImpl() { public LogFactoryImpl() {
super(); super();
guessConfig();
} }
// ----------------------------------------------------- Manifest Constants // ----------------------------------------------------- Manifest Constants
// Defaulting to NullLogger means important messages will be lost if
// no other logger is available. This is as bad as having a catch() and
// ignoring the exception because 'it can't happen'
/**
* The fully qualified name of the default {@link Log} implementation.
*/
public static final String LOG_DEFAULT =
"org.apache.commons.logging.impl.SimpleLog";
/** /**
* The name of the system property identifying our {@link Log} * The name of the system property identifying our {@link Log}
* implementation class. * implementation class.
@@ -153,9 +142,6 @@ public class LogFactoryImpl extends LogFactory {
"org.apache.commons.logging.log"; "org.apache.commons.logging.log";
private static final String LOG4JLOGIMPL =
"org.apache.commons.logging.impl.Log4JLogger".intern();
// ----------------------------------------------------- Instance Variables // ----------------------------------------------------- Instance Variables
@@ -177,6 +163,7 @@ public class LogFactoryImpl extends LogFactory {
*/ */
private String logClassName; private String logClassName;
/** /**
* The one-argument constructor of the * The one-argument constructor of the
* {@link org.apache.commons.logging.Log} * {@link org.apache.commons.logging.Log}
@@ -187,8 +174,6 @@ public class LogFactoryImpl extends LogFactory {
protected Constructor logConstructor = null; protected Constructor logConstructor = null;
protected LogFactory proxyFactory=null;
/** /**
* The signature of the Constructor to be used. * The signature of the Constructor to be used.
*/ */
@@ -220,10 +205,9 @@ public class LogFactoryImpl extends LogFactory {
* @param name Name of the attribute to return * @param name Name of the attribute to return
*/ */
public Object getAttribute(String name) { public Object getAttribute(String name) {
if( proxyFactory != null )
return proxyFactory.getAttribute( name );
return attributes.get(name); return (attributes.get(name));
} }
@@ -233,8 +217,6 @@ public class LogFactoryImpl extends LogFactory {
* length array is returned. * length array is returned.
*/ */
public String[] getAttributeNames() { public String[] getAttributeNames() {
if( proxyFactory != null )
return proxyFactory.getAttributeNames();
Vector names = new Vector(); Vector names = new Vector();
Enumeration keys = attributes.keys(); Enumeration keys = attributes.keys();
@@ -245,7 +227,8 @@ public class LogFactoryImpl extends LogFactory {
for (int i = 0; i < results.length; i++) { for (int i = 0; i < results.length; i++) {
results[i] = (String) names.elementAt(i); results[i] = (String) names.elementAt(i);
} }
return results; return (results);
} }
@@ -259,10 +242,9 @@ public class LogFactoryImpl extends LogFactory {
* instance cannot be returned * instance cannot be returned
*/ */
public Log getInstance(Class clazz) throws LogConfigurationException { public Log getInstance(Class clazz) throws LogConfigurationException {
if( proxyFactory != null )
return proxyFactory.getInstance(clazz);
return getInstance(clazz.getName()); return (getInstance(clazz.getName()));
} }
@@ -284,15 +266,14 @@ public class LogFactoryImpl extends LogFactory {
* instance cannot be returned * instance cannot be returned
*/ */
public Log getInstance(String name) throws LogConfigurationException { public Log getInstance(String name) throws LogConfigurationException {
if( proxyFactory != null )
return proxyFactory.getInstance(name);
Log instance = (Log) instances.get(name); Log instance = (Log) instances.get(name);
if (instance == null) { if (instance == null) {
instance = newInstance(name); instance = newInstance(name);
instances.put(name, instance); instances.put(name, instance);
} }
return instance; return (instance);
} }
@@ -305,8 +286,6 @@ public class LogFactoryImpl extends LogFactory {
* class loader would prevent garbage collection. * class loader would prevent garbage collection.
*/ */
public void release() { public void release() {
if( proxyFactory != null )
proxyFactory.release();
instances.clear(); instances.clear();
} }
@@ -319,9 +298,9 @@ public class LogFactoryImpl extends LogFactory {
* @param name Name of the attribute to remove * @param name Name of the attribute to remove
*/ */
public void removeAttribute(String name) { public void removeAttribute(String name) {
if( proxyFactory != null )
proxyFactory.removeAttribute(name);
attributes.remove(name); attributes.remove(name);
} }
@@ -335,8 +314,6 @@ public class LogFactoryImpl extends LogFactory {
* to remove any setting for this attribute * to remove any setting for this attribute
*/ */
public void setAttribute(String name, Object value) { public void setAttribute(String name, Object value) {
if( proxyFactory != null )
proxyFactory.setAttribute(name, value);
if (value == null) { if (value == null) {
attributes.remove(name); attributes.remove(name);
@@ -351,8 +328,13 @@ public class LogFactoryImpl extends LogFactory {
/**
* Return the fully qualified Java classname of the {@link Log}
* implementation we will be using.
*/
protected String getLogClassName() { protected String getLogClassName() {
// Identify the Log implementation class we will be using
// Return the previously identified class name (if any)
if (logClassName != null) { if (logClassName != null) {
return logClassName; return logClassName;
} }
@@ -380,19 +362,19 @@ public class LogFactoryImpl extends LogFactory {
} }
if ((logClassName == null) && isLog4JAvailable()) { if ((logClassName == null) && isLog4JAvailable()) {
logClassName = LOG4JLOGIMPL; logClassName = "org.apache.commons.logging.impl.Log4JLogger";
} }
if ((logClassName == null) && isJdk14Available()) { if ((logClassName == null) && isJdk14Available()) {
logClassName = logClassName = "org.apache.commons.logging.impl.Jdk14Logger";
"org.apache.commons.logging.impl.Jdk14Logger";
} }
if (logClassName == null) { if (logClassName == null) {
logClassName = LOG_DEFAULT; logClassName = "org.apache.commons.logging.impl.SimpleLog";
} }
return logClassName; return (logClassName);
} }
@@ -495,24 +477,6 @@ public class LogFactoryImpl extends LogFactory {
} }
protected void guessConfig() {
if (getLogClassName() == LOG4JLOGIMPL) {
proxyFactory = null;
try {
Class proxyClass=
loadClass("org.apache.commons.logging.impl.Log4jFactory");
if (proxyClass != null) {
proxyFactory = (LogFactory)proxyClass.newInstance();
}
} catch( Throwable t ) {
; // ignore
}
}
// other logger specific initialization
// ...
}
/** /**
* Is <em>JDK 1.4 or later</em> logging available? * Is <em>JDK 1.4 or later</em> logging available?
*/ */
@@ -553,8 +517,8 @@ public class LogFactoryImpl extends LogFactory {
* be created * be created
*/ */
protected Log newInstance(String name) throws LogConfigurationException { protected Log newInstance(String name) throws LogConfigurationException {
Log instance = null;
Log instance = null;
try { try {
Object params[] = new Object[1]; Object params[] = new Object[1];
params[0] = name; params[0] = name;
@@ -567,5 +531,8 @@ public class LogFactoryImpl extends LogFactory {
} catch (Throwable t) { } catch (Throwable t) {
throw new LogConfigurationException(t); throw new LogConfigurationException(t);
} }
} }
} }