You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by oh...@apache.org on 2015/10/22 21:46:07 UTC
svn commit: r1710083 - in /commons/proper/configuration/trunk/src:
main/java/org/apache/commons/configuration2/
main/java/org/apache/commons/configuration2/builder/combined/
test/java/org/apache/commons/configuration2/
test/java/org/apache/commons/conf...
Author: oheger
Date: Thu Oct 22 19:46:07 2015
New Revision: 1710083
URL: http://svn.apache.org/viewvc?rev=1710083&view=rev
Log:
Replaced logger in AbstractConfiguration.
The log property in AbstractConfiguration is now of type ConfigurationLogger.
Derived classes have been adapted accordingly.
Modified:
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/AbstractConfiguration.java
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/DatabaseConfiguration.java
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/DynamicCombinedConfiguration.java
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/JNDIConfiguration.java
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/XMLConfiguration.java
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/builder/combined/CombinedConfigurationBuilderProvider.java
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/TestAbstractConfiguration.java
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/TestAbstractConfigurationBasicFeatures.java
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/interpol/TestExprLookup.java
Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/AbstractConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/AbstractConfiguration.java?rev=1710083&r1=1710082&r2=1710083&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/AbstractConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/AbstractConfiguration.java Thu Oct 22 19:46:07 2015
@@ -47,8 +47,6 @@ import org.apache.commons.configuration2
import org.apache.commons.configuration2.sync.Synchronizer;
import org.apache.commons.lang3.ClassUtils;
import org.apache.commons.lang3.ObjectUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.impl.NoOpLog;
/**
* <p>Abstract configuration class. Provides basic functionality but does not
@@ -124,7 +122,7 @@ public abstract class AbstractConfigurat
private ConfigurationDecoder configurationDecoder;
/** Stores the logger.*/
- private Log log;
+ private ConfigurationLogger log;
/**
* Creates a new instance of {@code AbstractConfiguration}.
@@ -132,7 +130,7 @@ public abstract class AbstractConfigurat
public AbstractConfiguration()
{
interpolator = new AtomicReference<ConfigurationInterpolator>();
- setLogger(null);
+ initLogger(null);
installDefaultInterpolator();
listDelimiterHandler = DisabledListDelimiterHandler.INSTANCE;
conversionHandler = DefaultConversionHandler.INSTANCE;
@@ -492,26 +490,27 @@ public abstract class AbstractConfigurat
* Returns the logger used by this configuration object.
*
* @return the logger
- * @since 1.4
+ * @since 2.0
*/
- public Log getLogger()
+ public ConfigurationLogger getLogger()
{
return log;
}
/**
- * Allows to set the logger to be used by this configuration object. This
+ * Allows setting the logger to be used by this configuration object. This
* method makes it possible for clients to exactly control logging behavior.
* Per default a logger is set that will ignore all log messages. Derived
* classes that want to enable logging should call this method during their
- * initialization with the logger to be used.
+ * initialization with the logger to be used. It is legal to pass a
+ * <b>null</b> logger; in this case, logging will be disabled.
*
* @param log the new logger
- * @since 1.4
+ * @since 2.0
*/
- public void setLogger(Log log)
+ public void setLogger(ConfigurationLogger log)
{
- this.log = (log != null) ? log : new NoOpLog();
+ initLogger(log);
}
/**
@@ -1685,6 +1684,18 @@ public abstract class AbstractConfigurat
}
/**
+ * Initializes the logger. Supports <b>null</b> input. This method can be
+ * called by derived classes in order to enable logging.
+ *
+ * @param log the logger
+ * @since 2.0
+ */
+ protected final void initLogger(ConfigurationLogger log)
+ {
+ this.log = (log != null) ? log : ConfigurationLogger.newDummyLogger();
+ }
+
+ /**
* Encodes a property value so that it can be added to this configuration.
* This method deals with list delimiters. The passed in object has to be
* escaped so that an add operation yields the same result. If it is a list,
Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/DatabaseConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/DatabaseConfiguration.java?rev=1710083&r1=1710082&r2=1710083&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/DatabaseConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/DatabaseConfiguration.java Thu Oct 22 19:46:07 2015
@@ -35,7 +35,6 @@ import org.apache.commons.configuration2
import org.apache.commons.configuration2.event.ConfigurationEvent;
import org.apache.commons.configuration2.event.EventType;
import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.logging.LogFactory;
/**
* Configuration stored in a database. The properties are retrieved from a
@@ -162,7 +161,7 @@ public class DatabaseConfiguration exten
*/
public DatabaseConfiguration()
{
- setLogger(LogFactory.getLog(getClass()));
+ initLogger(new ConfigurationLogger(DatabaseConfiguration.class));
addErrorLogListener();
}
Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/DynamicCombinedConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/DynamicCombinedConfiguration.java?rev=1710083&r1=1710082&r2=1710083&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/DynamicCombinedConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/DynamicCombinedConfiguration.java Thu Oct 22 19:46:07 2015
@@ -38,8 +38,6 @@ import org.apache.commons.configuration2
import org.apache.commons.configuration2.tree.ExpressionEngine;
import org.apache.commons.configuration2.tree.ImmutableNode;
import org.apache.commons.configuration2.tree.NodeCombiner;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
/**
* <p>
@@ -106,7 +104,7 @@ public class DynamicCombinedConfiguratio
{
super();
setNodeCombiner(comb);
- setLogger(LogFactory.getLog(DynamicCombinedConfiguration.class));
+ initLogger(new ConfigurationLogger(DynamicCombinedConfiguration.class));
localSubst = initLocalInterpolator();
}
@@ -119,7 +117,7 @@ public class DynamicCombinedConfiguratio
public DynamicCombinedConfiguration()
{
super();
- setLogger(LogFactory.getLog(DynamicCombinedConfiguration.class));
+ initLogger(new ConfigurationLogger(DynamicCombinedConfiguration.class));
localSubst = initLocalInterpolator();
}
@@ -922,11 +920,7 @@ public class DynamicCombinedConfiguratio
{
if (loggerName != null)
{
- Log log = LogFactory.getLog(loggerName);
- if (log != null)
- {
- config.setLogger(log);
- }
+ config.setLogger(new ConfigurationLogger(loggerName));
}
config.setExpressionEngine(this.getExpressionEngine());
config.setConversionExpressionEngine(getConversionExpressionEngine());
Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/JNDIConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/JNDIConfiguration.java?rev=1710083&r1=1710082&r2=1710083&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/JNDIConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/JNDIConfiguration.java Thu Oct 22 19:46:07 2015
@@ -33,7 +33,6 @@ import java.util.Set;
import org.apache.commons.configuration2.event.ConfigurationErrorEvent;
import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.logging.LogFactory;
/**
* This Configuration class allows you to interface with a JNDI datasource.
@@ -104,7 +103,7 @@ public class JNDIConfiguration extends A
{
this.context = context;
this.prefix = prefix;
- setLogger(LogFactory.getLog(getClass()));
+ initLogger(new ConfigurationLogger(JNDIConfiguration.class));
addErrorLogListener();
}
Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/XMLConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/XMLConfiguration.java?rev=1710083&r1=1710082&r2=1710083&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/XMLConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/XMLConfiguration.java Thu Oct 22 19:46:07 2015
@@ -51,7 +51,6 @@ import org.apache.commons.configuration2
import org.apache.commons.configuration2.tree.ReferenceNodeHandler;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.mutable.MutableObject;
-import org.apache.commons.logging.LogFactory;
import org.w3c.dom.Attr;
import org.w3c.dom.CDATASection;
import org.w3c.dom.Document;
@@ -235,7 +234,7 @@ public class XMLConfiguration extends Ba
public XMLConfiguration()
{
super();
- setLogger(LogFactory.getLog(XMLConfiguration.class));
+ initLogger(new ConfigurationLogger(XMLConfiguration.class));
}
/**
@@ -253,7 +252,7 @@ public class XMLConfiguration extends Ba
super(c);
rootElementName =
(c != null) ? c.getRootElementName() : null;
- setLogger(LogFactory.getLog(XMLConfiguration.class));
+ initLogger(new ConfigurationLogger(XMLConfiguration.class));
}
/**
@@ -973,7 +972,7 @@ public class XMLConfiguration extends Ba
}
catch (Exception e)
{
- this.getLogger().debug("Unable to load the configuration", e);
+ this.getLogger().debug("Unable to load the configuration: " + e);
throw new ConfigurationException("Unable to load the configuration", e);
}
}
Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/builder/combined/CombinedConfigurationBuilderProvider.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/builder/combined/CombinedConfigurationBuilderProvider.java?rev=1710083&r1=1710082&r2=1710083&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/builder/combined/CombinedConfigurationBuilderProvider.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/builder/combined/CombinedConfigurationBuilderProvider.java Thu Oct 22 19:46:07 2015
@@ -127,7 +127,7 @@ public class CombinedConfigurationBuilde
BasicBuilderParameters params)
{
params.setListDelimiterHandler(config.getListDelimiterHandler())
- .setLogger(config.getLogger())
+ //TODO handle logger.setLogger(config.getLogger())
.setThrowExceptionOnMissing(config.isThrowExceptionOnMissing())
.setConfigurationDecoder(config.getConfigurationDecoder());
}
Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/TestAbstractConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/TestAbstractConfiguration.java?rev=1710083&r1=1710082&r2=1710083&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/TestAbstractConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/TestAbstractConfiguration.java Thu Oct 22 19:46:07 2015
@@ -31,10 +31,7 @@ import java.util.Iterator;
import java.util.List;
import junitx.framework.ListAssert;
-
import org.apache.commons.configuration2.ex.ConversionException;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import org.junit.Test;
/**
@@ -181,7 +178,7 @@ public abstract class TestAbstractConfig
{
AbstractConfiguration config = getEmptyConfiguration();
assertNotNull("Default logger is null", config.getLogger());
- Log log = LogFactory.getLog(config.getClass());
+ ConfigurationLogger log = new ConfigurationLogger(config.getClass());
config.setLogger(log);
assertSame("Logger was not set", log, config.getLogger());
}
Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/TestAbstractConfigurationBasicFeatures.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/TestAbstractConfigurationBasicFeatures.java?rev=1710083&r1=1710082&r2=1710083&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/TestAbstractConfigurationBasicFeatures.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/TestAbstractConfigurationBasicFeatures.java Thu Oct 22 19:46:07 2015
@@ -16,10 +16,13 @@
*/
package org.apache.commons.configuration2;
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.CoreMatchers.sameInstance;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
@@ -41,6 +44,7 @@ import org.apache.commons.configuration2
import org.apache.commons.configuration2.event.EventType;
import org.apache.commons.configuration2.interpol.ConfigurationInterpolator;
import org.apache.commons.configuration2.interpol.Lookup;
+import org.apache.commons.logging.impl.NoOpLog;
import org.easymock.EasyMock;
import org.junit.Test;
@@ -62,6 +66,42 @@ public class TestAbstractConfigurationBa
private static final int PROP_COUNT = 12;
/**
+ * Tests the logger set per default.
+ */
+ @Test
+ public void testDefaultLogger()
+ {
+ AbstractConfiguration config = new BaseConfiguration();
+ assertThat("Wrong default logger", config.getLogger().getLog(), instanceOf(NoOpLog.class));
+ }
+
+ /**
+ * Tests whether the logger can be set.
+ */
+ @Test
+ public void testSetLogger()
+ {
+ ConfigurationLogger logger = new ConfigurationLogger(getClass());
+ AbstractConfiguration config = new BaseConfiguration();
+
+ config.setLogger(logger);
+ assertThat("Logger not set", config.getLogger(), sameInstance(logger));
+ }
+
+ /**
+ * Tests that the logger can be disabled by setting it to null.
+ */
+ @Test
+ public void testSetLoggerNull()
+ {
+ AbstractConfiguration config = new BaseConfiguration();
+ config.setLogger(new ConfigurationLogger(getClass()));
+
+ config.setLogger(null);
+ assertThat("Logger not disabled", config.getLogger().getLog(), instanceOf(NoOpLog.class));
+ }
+
+ /**
* Tests the clear() implementation of AbstractConfiguration if the iterator
* returned by getKeys() does not support the remove() operation.
*/
Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/interpol/TestExprLookup.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/interpol/TestExprLookup.java?rev=1710083&r1=1710082&r2=1710083&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/interpol/TestExprLookup.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/interpol/TestExprLookup.java Thu Oct 22 19:46:07 2015
@@ -22,6 +22,7 @@ import static org.junit.Assert.assertTru
import java.io.File;
import org.apache.commons.configuration2.ConfigurationAssert;
+import org.apache.commons.configuration2.ConfigurationLogger;
import org.apache.commons.configuration2.XMLConfiguration;
import org.apache.commons.configuration2.io.FileHandler;
import org.apache.commons.logging.Log;
@@ -63,7 +64,7 @@ public class TestExprLookup
XMLConfiguration config = new XMLConfiguration();
FileHandler handler = new FileHandler(config);
handler.load(TEST_FILE);
- config.setLogger(log);
+ config.setLogger(new ConfigurationLogger("TestLogger"));
ExprLookup lookup = new ExprLookup(vars);
lookup.setInterpolator(config.getInterpolator());
lookup.setLogger(log);