Index: conf/testExtendedXMLConfigurationProvider.xml
===================================================================
--- conf/testExtendedXMLConfigurationProvider.xml (revision 712227)
+++ conf/testExtendedXMLConfigurationProvider.xml (working copy)
@@ -8,7 +8,8 @@
+ config-class="org.apache.commons.configuration.DefaultConfigurationBuilder$XMLConfigurationProvider"
+ configurationClass="org.apache.commons.configuration.TestDefaultConfigurationBuilder$ExtendedXMLConfiguration"/>
@@ -26,10 +27,10 @@
refreshDelay="10000"/>
-
+
-
+
-->
Property changes on: conf/testExtendedXMLConfigurationProvider.xml
___________________________________________________________________
Name: svn:mime-type
+ text/xml
Name: svn:keywords
+ Date Author Id Revision HeadURL
Name: svn:mergeinfo
+
Name: svn:eol-style
+ native
Index: src/test/org/apache/commons/configuration/TestDefaultConfigurationBuilder.java
===================================================================
--- src/test/org/apache/commons/configuration/TestDefaultConfigurationBuilder.java (revision 712227)
+++ src/test/org/apache/commons/configuration/TestDefaultConfigurationBuilder.java (working copy)
@@ -61,6 +61,9 @@
private static final File PROVIDER_FILE = new File(
"conf/testConfigurationProvider.xml");
+ private static final File EXTENDED_PROVIDER_FILE = new File(
+ "conf/testExtendedXMLConfigurationProvider.xml");
+
/** Constant for the name of an optional configuration.*/
private static final String OPTIONAL_NAME = "optionalConfig";
@@ -775,6 +778,22 @@
assertNotNull("Provider 'test' not registered", provider);
}
+ /**
+ * Tests loading a configuration definition file that defines new providers.
+ */
+ public void testExtendedXMLConfigurationProvider() throws ConfigurationException
+ {
+ factory.setFile(EXTENDED_PROVIDER_FILE);
+ CombinedConfiguration cc = factory.getConfiguration(true);
+ DefaultConfigurationBuilder.ConfigurationProvider provider = factory
+ .providerForTag("test");
+ assertNotNull("Provider 'test' not registered", provider);
+ Configuration config = cc.getConfiguration("xml");
+ assertNotNull("Test configuration not present", config);
+ assertTrue("Configuration is not ExtendedXMLConfiguration, is " +
+ config.getClass().getName(), config instanceof ExtendedXMLConfiguration);
+ }
+
/**
* A specialized combined configuration implementation used for testing
* custom result classes.
@@ -796,5 +815,13 @@
return super.getProperty(key);
}
}
+
+ public static class ExtendedXMLConfiguration extends XMLConfiguration
+ {
+ public ExtendedXMLConfiguration()
+ {
+ }
+
+ }
}
Index: src/java/org/apache/commons/configuration/DefaultConfigurationBuilder.java
===================================================================
--- src/java/org/apache/commons/configuration/DefaultConfigurationBuilder.java (revision 712227)
+++ src/java/org/apache/commons/configuration/DefaultConfigurationBuilder.java (working copy)
@@ -1282,7 +1282,7 @@
* it will copy all entity IDs that have been registered for the
* configuration builder to the new XML configuration before it is loaded.
*/
- static class XMLConfigurationProvider extends FileConfigurationProvider
+ public static class XMLConfigurationProvider extends FileConfigurationProvider
{
/**
* Creates a new instance of XMLConfigurationProvider.