You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by oh...@apache.org on 2007/01/09 22:14:21 UTC
svn commit: r494581 - in /jakarta/commons/proper/configuration/trunk/src:
java/org/apache/commons/configuration/CompositeConfiguration.java
test/org/apache/commons/configuration/TestCompositeConfiguration.java
Author: oheger
Date: Tue Jan 9 13:14:20 2007
New Revision: 494581
URL: http://svn.apache.org/viewvc?view=rev&rev=494581
Log:
CONFIGURATION-155: Incorporate instance list delimiters to CompositeConfiguration
Modified:
jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/CompositeConfiguration.java
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestCompositeConfiguration.java
Modified: jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/CompositeConfiguration.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/CompositeConfiguration.java?view=diff&rev=494581&r1=494580&r2=494581
==============================================================================
--- jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/CompositeConfiguration.java (original)
+++ jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/CompositeConfiguration.java Tue Jan 9 13:14:20 2007
@@ -158,6 +158,8 @@
// recreate the in memory configuration
inMemoryConfiguration = new BaseConfiguration();
((BaseConfiguration) inMemoryConfiguration).setThrowExceptionOnMissing(isThrowExceptionOnMissing());
+ ((BaseConfiguration) inMemoryConfiguration).setListDelimiter(getListDelimiter());
+ ((BaseConfiguration) inMemoryConfiguration).setDelimiterParsingDisabled(isDelimiterParsingDisabled());
configList.add(inMemoryConfiguration);
}
@@ -410,5 +412,34 @@
// cannot happen
throw new ConfigurationRuntimeException(cnex);
}
+ }
+
+ /**
+ * Sets a flag whether added values for string properties should be checked
+ * for the list delimiter. This implementation ensures that the in memory
+ * configuration is correctly initialized.
+ *
+ * @param delimiterParsingDisabled the new value of the flag
+ * @since 1.4
+ */
+ public void setDelimiterParsingDisabled(boolean delimiterParsingDisabled)
+ {
+ ((BaseConfiguration) getInMemoryConfiguration())
+ .setDelimiterParsingDisabled(delimiterParsingDisabled);
+ super.setDelimiterParsingDisabled(delimiterParsingDisabled);
+ }
+
+ /**
+ * Sets the character that is used as list delimiter. This implementation
+ * ensures that the in memory configuration is correctly initialized.
+ *
+ * @param listDelimiter the new list delimiter character
+ * @since 1.4
+ */
+ public void setListDelimiter(char listDelimiter)
+ {
+ ((BaseConfiguration) getInMemoryConfiguration())
+ .setListDelimiter(listDelimiter);
+ super.setListDelimiter(listDelimiter);
}
}
Modified: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestCompositeConfiguration.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestCompositeConfiguration.java?view=diff&rev=494581&r1=494580&r2=494581
==============================================================================
--- jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestCompositeConfiguration.java (original)
+++ jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestCompositeConfiguration.java Tue Jan 9 13:14:20 2007
@@ -559,6 +559,70 @@
}
/**
+ * Tests chaning the list delimiter character.
+ */
+ public void testSetListDelimiter()
+ {
+ cc.setListDelimiter('/');
+ checkSetListDelimiter();
+ }
+
+ /**
+ * Tests whether the correct list delimiter is set after a clear operation.
+ */
+ public void testSetListDelimiterAfterClear()
+ {
+ cc.setListDelimiter('/');
+ cc.clear();
+ checkSetListDelimiter();
+ }
+
+ /**
+ * Helper method for testing whether the list delimiter is correctly
+ * handled.
+ */
+ private void checkSetListDelimiter()
+ {
+ cc.addProperty("test.list", "a/b/c");
+ cc.addProperty("test.property", "a,b,c");
+ assertEquals("Wrong number of list elements", 3, cc
+ .getList("test.list").size());
+ assertEquals("Wrong value of property", "a,b,c", cc
+ .getString("test.property"));
+ }
+
+ /**
+ * Tests whether list splitting can be disabled.
+ */
+ public void testSetDelimiterParsingDisabled()
+ {
+ cc.setDelimiterParsingDisabled(true);
+ checkSetListDelimiterParsingDisabled();
+ }
+
+ /**
+ * Tests whether the list parsing flag is correctly handled after a clear()
+ * operation.
+ */
+ public void testSetDelimiterParsingDisabledAfterClear()
+ {
+ cc.setDelimiterParsingDisabled(true);
+ cc.clear();
+ checkSetListDelimiterParsingDisabled();
+ }
+
+ /**
+ * Helper method for checking whether the list parsing flag is correctly
+ * handled.
+ */
+ private void checkSetListDelimiterParsingDisabled()
+ {
+ cc.addProperty("test.property", "a,b,c");
+ assertEquals("Wrong value of property", "a,b,c", cc
+ .getString("test.property"));
+ }
+
+ /**
* A test configuration event listener that counts the number of received
* events. Used for testing the event facilities.
*/
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org