You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by rg...@apache.org on 2009/10/03 05:07:42 UTC
svn commit: r821230 - in
/commons/proper/configuration/branches/CONFIGURATION_390/src:
java/org/apache/commons/configuration/
java/org/apache/commons/configuration/resolver/
test/org/apache/commons/configuration/
Author: rgoers
Date: Sat Oct 3 03:07:41 2009
New Revision: 821230
URL: http://svn.apache.org/viewvc?rev=821230&view=rev
Log:
Copy configurations when creating a CombinedConfiguration to eliminate need to lock DynamicCombinedConfiguration. Add more debugging
Modified:
commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/CombinedConfiguration.java
commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/ConfigurationUtils.java
commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/DefaultConfigurationBuilder.java
commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/DynamicCombinedConfiguration.java
commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/XMLConfiguration.java
commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/resolver/CatalogResolver.java
commons/proper/configuration/branches/CONFIGURATION_390/src/test/org/apache/commons/configuration/TestMultiFileHierarchicalConfiguration.java
Modified: commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/CombinedConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/CombinedConfiguration.java?rev=821230&r1=821229&r2=821230&view=diff
==============================================================================
--- commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/CombinedConfiguration.java (original)
+++ commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/CombinedConfiguration.java Sat Oct 3 03:07:41 2009
@@ -408,6 +408,10 @@
}
ConfigData cd = new ConfigData(config, name, at);
+ if (getLogger().isDebugEnabled())
+ {
+ getLogger().debug("Adding configuration " + config + " with name " + name);
+ }
configurations.add(cd);
if (name != null)
{
@@ -634,142 +638,6 @@
return combinedRoot;
}
}
- /*
- public Object getProperty(String key)
- {
- synchronized(reloadLock)
- {
- return super.getProperty(key);
- }
- }
-
- protected void addPropertyDirect(String key, Object obj)
- {
- synchronized(reloadLock)
- {
- super.addPropertyDirect(key, obj);
- }
- }
-
- public void addNodes(String key, Collection nodes)
- {
- synchronized(reloadLock)
- {
- super.addNodes(key, nodes);
- }
- }
-
- public boolean isEmpty()
- {
- synchronized(reloadLock)
- {
- return super.isEmpty();
- }
- }
-
- public Configuration subset(String prefix)
- {
- synchronized(reloadLock)
- {
- return super.subset(prefix);
- }
- }
-
- public SubnodeConfiguration configurationAt(String key, boolean supportUpdates)
- {
- synchronized(reloadLock)
- {
- return super.configurationAt(key, supportUpdates);
- }
- }
-
- public SubnodeConfiguration configurationAt(String key)
- {
- synchronized(reloadLock)
- {
- return super.configurationAt(key);
- }
- }
-
- public List configurationsAt(String key)
- {
- synchronized(reloadLock)
- {
- return super.configurationsAt(key);
- }
- }
-
- protected SubnodeConfiguration createSubnodeConfiguration(ConfigurationNode node)
- {
- synchronized(reloadLock)
- {
- return super.createSubnodeConfiguration(node);
- }
- }
-
- protected SubnodeConfiguration createSubnodeConfiguration(ConfigurationNode node, String subnodeKey)
- {
- synchronized(reloadLock)
- {
- return super.createSubnodeConfiguration(node, subnodeKey);
- }
- }
-
- public boolean containsKey(String key)
- {
- synchronized(reloadLock)
- {
- return super.containsKey(key);
- }
- }
-
- public void setProperty(String key, Object value)
- {
- synchronized(reloadLock)
- {
- super.setProperty(key, value);
- }
- }
-
- public void clearTree(String key)
- {
- synchronized(reloadLock)
- {
- super.clearTree(key);
- }
- }
-
- public void clearProperty(String key)
- {
- synchronized(reloadLock)
- {
- super.clearProperty(key);
- }
- }
-
- public Iterator getKeys()
- {
- synchronized(reloadLock)
- {
- return super.getKeys();
- }
- }
-
- public Iterator getKeys(String prefix)
- {
- synchronized(reloadLock)
- {
- return super.getKeys(prefix);
- }
- }
-
- public int getMaxIndex(String key)
- {
- synchronized(reloadLock)
- {
- return super.getMaxIndex(key);
- }
- } */
/**
* Clears this configuration. All contained configurations will be removed.
@@ -919,6 +787,10 @@
{
if (getNumberOfConfigurations() < 1)
{
+ if (getLogger().isDebugEnabled())
+ {
+ getLogger().debug("No configurations defined for " + this);
+ }
return new ViewNode();
}
Modified: commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/ConfigurationUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/ConfigurationUtils.java?rev=821230&r1=821229&r2=821230&view=diff
==============================================================================
--- commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/ConfigurationUtils.java (original)
+++ commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/ConfigurationUtils.java Sat Oct 3 03:07:41 2009
@@ -32,6 +32,7 @@
import org.apache.commons.configuration.event.ConfigurationErrorListener;
import org.apache.commons.configuration.event.EventSource;
import org.apache.commons.configuration.tree.ExpressionEngine;
+import org.apache.commons.configuration.reloading.Reloadable;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.SystemUtils;
import org.apache.commons.logging.Log;
@@ -223,7 +224,19 @@
if (conf instanceof HierarchicalConfiguration)
{
- HierarchicalConfiguration hc = (HierarchicalConfiguration) conf;
+ HierarchicalConfiguration hc;
+ if (conf instanceof Reloadable)
+ {
+ Object lock = ((Reloadable) conf).getReloadLock();
+ synchronized(lock)
+ {
+ hc = new HierarchicalConfiguration((HierarchicalConfiguration) conf);
+ }
+ }
+ else
+ {
+ hc = (HierarchicalConfiguration) conf;
+ }
if (engine != null)
{
hc.setExpressionEngine(engine);
Modified: commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/DefaultConfigurationBuilder.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/DefaultConfigurationBuilder.java?rev=821230&r1=821229&r2=821230&view=diff
==============================================================================
--- commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/DefaultConfigurationBuilder.java (original)
+++ commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/DefaultConfigurationBuilder.java Sat Oct 3 03:07:41 2009
@@ -40,6 +40,7 @@
import org.apache.commons.configuration.resolver.EntityResolverSupport;
import org.apache.commons.lang.text.StrLookup;
import org.apache.commons.logging.LogFactory;
+import org.apache.commons.logging.Log;
import org.xml.sax.EntityResolver;
/**
@@ -651,6 +652,11 @@
.next();
ConfigurationDeclaration decl = new ConfigurationDeclaration(this,
conf);
+ if (getLogger().isDebugEnabled())
+ {
+ getLogger().debug("Creating configuration " + decl.getBeanClassName() + " with name " +
+ decl.getConfiguration().getString(ATTR_NAME));
+ }
AbstractConfiguration newConf = createConfigurationAt(decl);
if (newConf != null)
{
@@ -1225,6 +1231,8 @@
*/
static class ConfigurationBeanFactory implements BeanFactory
{
+ private Log logger = LogFactory.getLog(DefaultConfigurationBuilder.class);
+
/**
* Creates an instance of a bean class. This implementation expects that
* the passed in bean declaration is a declaration for a configuration.
@@ -1268,6 +1276,11 @@
}
else
{
+ if (logger.isDebugEnabled())
+ {
+ logger.debug("Load failed for optional configuration " + tagName + ": "
+ + ex.getMessage());
+ }
// Notify registered error listeners
decl.getConfigurationBuilder().fireError(
EVENT_ERR_LOAD_OPTIONAL,
Modified: commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/DynamicCombinedConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/DynamicCombinedConfiguration.java?rev=821230&r1=821229&r2=821230&view=diff
==============================================================================
--- commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/DynamicCombinedConfiguration.java (original)
+++ commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/DynamicCombinedConfiguration.java Sat Oct 3 03:07:41 2009
@@ -769,7 +769,7 @@
config = (CombinedConfiguration) configs.get(key);
if (config == null)
{
- config = new CombinedConfiguration(getNodeCombiner(), reloadLock);
+ config = new CombinedConfiguration(getNodeCombiner());
if (loggerName != null)
{
Log log = LogFactory.getLog(loggerName);
Modified: commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/XMLConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/XMLConfiguration.java?rev=821230&r1=821229&r2=821230&view=diff
==============================================================================
--- commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/XMLConfiguration.java (original)
+++ commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/XMLConfiguration.java Sat Oct 3 03:07:41 2009
@@ -49,6 +49,7 @@
import org.apache.commons.configuration.tree.ConfigurationNode;
import org.apache.commons.configuration.resolver.EntityRegistry;
import org.apache.commons.configuration.resolver.DefaultEntityResolver;
+import org.apache.commons.logging.LogFactory;
import org.w3c.dom.Attr;
import org.w3c.dom.CDATASection;
import org.w3c.dom.DOMException;
@@ -226,6 +227,7 @@
public XMLConfiguration()
{
super();
+ setLogger(LogFactory.getLog(XMLConfiguration.class));
}
/**
@@ -243,6 +245,7 @@
super(c);
clearReferences(getRootNode());
setRootElementName(getRootNode().getName());
+ setLogger(LogFactory.getLog(XMLConfiguration.class));
}
/**
@@ -255,6 +258,7 @@
public XMLConfiguration(String fileName) throws ConfigurationException
{
super(fileName);
+ setLogger(LogFactory.getLog(XMLConfiguration.class));
}
/**
@@ -267,6 +271,7 @@
public XMLConfiguration(File file) throws ConfigurationException
{
super(file);
+ setLogger(LogFactory.getLog(XMLConfiguration.class));
}
/**
@@ -279,6 +284,7 @@
public XMLConfiguration(URL url) throws ConfigurationException
{
super(url);
+ setLogger(LogFactory.getLog(XMLConfiguration.class));
}
/**
Modified: commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/resolver/CatalogResolver.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/resolver/CatalogResolver.java?rev=821230&r1=821229&r2=821230&view=diff
==============================================================================
--- commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/resolver/CatalogResolver.java (original)
+++ commons/proper/configuration/branches/CONFIGURATION_390/src/java/org/apache/commons/configuration/resolver/CatalogResolver.java Sat Oct 3 03:07:41 2009
@@ -23,6 +23,7 @@
import org.apache.xml.resolver.Catalog;
import org.apache.xml.resolver.readers.CatalogReader;
import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.commons.logging.impl.NoOpLog;
import org.apache.commons.configuration.FileSystem;
import org.apache.commons.configuration.ConfigurationException;
@@ -199,7 +200,7 @@
}
catch (Exception e)
{
- log.debug("Failed to create InputSource for " + resolved + " ("
+ log.warn("Failed to create InputSource for " + resolved + " ("
+ e.toString() + ")");
return null;
}
@@ -229,7 +230,7 @@
*/
public void setLogger(Log log)
{
- this.log = (log != null) ? log : new NoOpLog();
+ this.log = (log != null) ? log : LogFactory.getLog(CatalogResolver.class);
}
private synchronized org.apache.xml.resolver.tools.CatalogResolver getResolver()
Modified: commons/proper/configuration/branches/CONFIGURATION_390/src/test/org/apache/commons/configuration/TestMultiFileHierarchicalConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/CONFIGURATION_390/src/test/org/apache/commons/configuration/TestMultiFileHierarchicalConfiguration.java?rev=821230&r1=821229&r2=821230&view=diff
==============================================================================
--- commons/proper/configuration/branches/CONFIGURATION_390/src/test/org/apache/commons/configuration/TestMultiFileHierarchicalConfiguration.java (original)
+++ commons/proper/configuration/branches/CONFIGURATION_390/src/test/org/apache/commons/configuration/TestMultiFileHierarchicalConfiguration.java Sat Oct 3 03:07:41 2009
@@ -265,7 +265,7 @@
}
output.delete();
- }
+ }
private void copyFile(File input, File output) throws IOException
{