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 2013/05/05 22:21:20 UTC
svn commit: r1479374 - in /commons/proper/configuration/trunk/src:
main/java/org/apache/commons/configuration/
main/java/org/apache/commons/configuration/web/
test/java/org/apache/commons/configuration/
Author: oheger
Date: Sun May 5 20:21:20 2013
New Revision: 1479374
URL: http://svn.apache.org/r1479374
Log:
Added final containsKey() method in AbstractConfiguration.
A protected abstract containsKeyInternal() was added, too, which has to be
defined by concrete subclasses.
Modified:
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/AbstractConfiguration.java
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/BaseConfiguration.java
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/BaseHierarchicalConfiguration.java
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/CompositeConfiguration.java
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DataConfiguration.java
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DatabaseConfiguration.java
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DynamicCombinedConfiguration.java
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/JNDIConfiguration.java
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/MapConfiguration.java
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/PatternSubtreeConfigurationWrapper.java
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/SubsetConfiguration.java
commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/web/BaseWebConfiguration.java
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/NonCloneableConfiguration.java
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestAbstractConfigurationBasicFeatures.java
commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestAbstractConfigurationSynchronization.java
Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/AbstractConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/AbstractConfiguration.java?rev=1479374&r1=1479373&r2=1479374&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/AbstractConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/AbstractConfiguration.java Sun May 5 20:21:20 2013
@@ -956,6 +956,35 @@ public abstract class AbstractConfigurat
*/
protected abstract boolean isEmptyInternal();
+ /**
+ * {@inheritDoc} This implementation handles synchronization and delegates
+ * to {@code containsKeyInternal()}.
+ */
+ public final boolean containsKey(String key)
+ {
+ getSynchronizer().beginRead();
+ try
+ {
+ return containsKeyInternal(key);
+ }
+ finally
+ {
+ getSynchronizer().endRead();
+ }
+ }
+
+ /**
+ * Actually checks whether the specified key is contained in this
+ * configuration. This method is called by {@code containsKey()}. It has to
+ * be defined by concrete subclasses.
+ *
+ * @param key the key in question
+ * @return <b>true</b> if this key is contained in this configuration,
+ * <b>false</b> otherwise
+ * @since 2.0
+ */
+ protected abstract boolean containsKeyInternal(String key);
+
public Properties getProperties(String key)
{
return getProperties(key, null);
Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/BaseConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/BaseConfiguration.java?rev=1479374&r1=1479373&r2=1479374&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/BaseConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/BaseConfiguration.java Sun May 5 20:21:20 2013
@@ -120,7 +120,8 @@ public class BaseConfiguration extends A
* @return {@code true} if Configuration contain given key,
* {@code false} otherwise.
*/
- public boolean containsKey(String key)
+ @Override
+ protected boolean containsKeyInternal(String key)
{
return store.containsKey(key);
}
@@ -133,10 +134,7 @@ public class BaseConfiguration extends A
@Override
protected void clearPropertyDirect(String key)
{
- if (containsKey(key))
- {
- store.remove(key);
- }
+ store.remove(key);
}
@Override
Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/BaseHierarchicalConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/BaseHierarchicalConfiguration.java?rev=1479374&r1=1479373&r2=1479374&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/BaseHierarchicalConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/BaseHierarchicalConfiguration.java Sun May 5 20:21:20 2013
@@ -751,12 +751,13 @@ public class BaseHierarchicalConfigurati
* value but children (either defined or undefined), this method will still
* return <b>false </b>.
*
- * @param key the key to be chekced
+ * @param key the key to be checked
* @return a flag if this key is contained in this configuration
*/
- public boolean containsKey(String key)
+ @Override
+ protected boolean containsKeyInternal(String key)
{
- return getProperty(key) != null;
+ return getPropertyInternal(key) != null;
}
/**
Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/CompositeConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/CompositeConfiguration.java?rev=1479374&r1=1479373&r2=1479374&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/CompositeConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/CompositeConfiguration.java Sun May 5 20:21:20 2013
@@ -329,7 +329,8 @@ implements Cloneable
}
}
- public boolean containsKey(String key)
+ @Override
+ protected boolean containsKeyInternal(String key)
{
for (Configuration config : configList)
{
Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DataConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DataConfiguration.java?rev=1479374&r1=1479373&r2=1479374&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DataConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DataConfiguration.java Sun May 5 20:21:20 2013
@@ -154,7 +154,8 @@ public class DataConfiguration extends A
return configuration.isEmpty();
}
- public boolean containsKey(String key)
+ @Override
+ protected boolean containsKeyInternal(String key)
{
return configuration.containsKey(key);
}
Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DatabaseConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DatabaseConfiguration.java?rev=1479374&r1=1479373&r2=1479374&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DatabaseConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DatabaseConfiguration.java Sun May 5 20:21:20 2013
@@ -468,7 +468,8 @@ public class DatabaseConfiguration exten
* @param key the key to be checked
* @return a flag whether this key is defined
*/
- public boolean containsKey(final String key)
+ @Override
+ protected boolean containsKeyInternal(final String key)
{
JdbcOperation<Boolean> op = new JdbcOperation<Boolean>(EVENT_READ_PROPERTY, key, null)
{
Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DynamicCombinedConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DynamicCombinedConfiguration.java?rev=1479374&r1=1479373&r2=1479374&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DynamicCombinedConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/DynamicCombinedConfiguration.java Sun May 5 20:21:20 2013
@@ -351,7 +351,7 @@ public class DynamicCombinedConfiguratio
}
@Override
- public boolean containsKey(String key)
+ protected boolean containsKeyInternal(String key)
{
return this.getCurrentConfig().containsKey(key);
}
Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/JNDIConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/JNDIConfiguration.java?rev=1479374&r1=1479373&r2=1479374&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/JNDIConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/JNDIConfiguration.java Sun May 5 20:21:20 2013
@@ -345,7 +345,8 @@ public class JNDIConfiguration extends A
* @param key the key to check
* @return a flag whether this key is stored in this configuration
*/
- public boolean containsKey(String key)
+ @Override
+ protected boolean containsKeyInternal(String key)
{
if (clearedProperties.contains(key))
{
Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/MapConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/MapConfiguration.java?rev=1479374&r1=1479373&r2=1479374&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/MapConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/MapConfiguration.java Sun May 5 20:21:20 2013
@@ -207,7 +207,8 @@ public class MapConfiguration extends Ab
return map.isEmpty();
}
- public boolean containsKey(String key)
+ @Override
+ protected boolean containsKeyInternal(String key)
{
return map.containsKey(key);
}
Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/PatternSubtreeConfigurationWrapper.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/PatternSubtreeConfigurationWrapper.java?rev=1479374&r1=1479373&r2=1479374&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/PatternSubtreeConfigurationWrapper.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/PatternSubtreeConfigurationWrapper.java Sun May 5 20:21:20 2013
@@ -101,7 +101,7 @@ public class PatternSubtreeConfiguration
}
@Override
- public boolean containsKey(String key)
+ protected boolean containsKeyInternal(String key)
{
return config.containsKey(makePath(key));
}
Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/SubsetConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/SubsetConfiguration.java?rev=1479374&r1=1479373&r2=1479374&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/SubsetConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/SubsetConfiguration.java Sun May 5 20:21:20 2013
@@ -166,7 +166,8 @@ public class SubsetConfiguration extends
return !getKeysInternal().hasNext();
}
- public boolean containsKey(String key)
+ @Override
+ protected boolean containsKeyInternal(String key)
{
return parent.containsKey(getParentKey(key));
}
Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/web/BaseWebConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/web/BaseWebConfiguration.java?rev=1479374&r1=1479373&r2=1479374&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/web/BaseWebConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/web/BaseWebConfiguration.java Sun May 5 20:21:20 2013
@@ -58,9 +58,10 @@ abstract class BaseWebConfiguration exte
* @param key the key
* @return a flag whether this key exists in this configuration
*/
- public boolean containsKey(String key)
+ @Override
+ protected boolean containsKeyInternal(String key)
{
- return getProperty(key) != null;
+ return getPropertyInternal(key) != null;
}
/**
Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/NonCloneableConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/NonCloneableConfiguration.java?rev=1479374&r1=1479373&r2=1479374&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/NonCloneableConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/NonCloneableConfiguration.java Sun May 5 20:21:20 2013
@@ -48,7 +48,8 @@ public class NonCloneableConfiguration e
/**
* Dummy implementation of this method.
*/
- public boolean containsKey(String key)
+ @Override
+ protected boolean containsKeyInternal(String key)
{
return false;
}
Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestAbstractConfigurationBasicFeatures.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestAbstractConfigurationBasicFeatures.java?rev=1479374&r1=1479373&r2=1479374&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestAbstractConfigurationBasicFeatures.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestAbstractConfigurationBasicFeatures.java Sun May 5 20:21:20 2013
@@ -609,7 +609,8 @@ public class TestAbstractConfigurationBa
config.addPropertyDirect(key, value);
}
- public boolean containsKey(String key)
+ @Override
+ protected boolean containsKeyInternal(String key)
{
return config.containsKey(key);
}
Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestAbstractConfigurationSynchronization.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestAbstractConfigurationSynchronization.java?rev=1479374&r1=1479373&r2=1479374&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestAbstractConfigurationSynchronization.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestAbstractConfigurationSynchronization.java Sun May 5 20:21:20 2013
@@ -23,7 +23,6 @@ import static org.junit.Assert.assertTru
import org.apache.commons.configuration.io.FileHandler;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
/**
@@ -124,8 +123,6 @@ public class TestAbstractConfigurationSy
* Tests whether containsKey() is correctly synchronized.
*/
@Test
- @Ignore
- // TODO prevent subclasses from overriding containsKey()
public void testContainsKeySychronized()
{
assertTrue("Wrong result", config.containsKey(PROP));