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.