BasePath not set on with 
DefaultConfigurationBuilder/ConfigurationBuilderProvider
---------------------------------------------------------------------------------

                 Key: CONFIGURATION-437
                 URL: https://issues.apache.org/jira/browse/CONFIGURATION-437
             Project: Commons Configuration
          Issue Type: Bug
    Affects Versions: 1.6, Nightly Builds
            Reporter: Mike Noordermeer


The DefaultConfigurationBuilder does not set the basepath of nested 
DefaultConfigurationBuilders:

I've the following structure:

/WEB-INF/config/defs/def-1.xml
/WEB-INF/config/defs/def-2.xml
/WEB-INF/config/config1.properties

I use a DefaultConfigurationBuilder, with the following contents in the
def-1.xml:

<configuration>
<override>
<properties fileName="../config1.properties"/>
<configuration fileName="def-2.xml"/>
</override>
</configuration>

I use this code:

DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder();
builder.setURL(ctx.getResource("/WEB-INF/config/defs/def-1.xml"));
Configuration c = builder.getConfiguration(true);

This gives an exception:

Caused by: org.apache.commons.configuration.ConfigurationException:
Cannot locate configuration source def-2.xml
at
org.apache.commons.configuration.AbstractFileConfiguration.load(AbstractFileConfiguration.java:217)

[...]

Seems to be that AbstractFileConfiguration.basePath is not set by the
DefaultConfigurationBuilder.ConfigurationBuilderProvider, while it is
set by DefaultConfigurationBuilder.FileConfigurationProvider (in
initBeanInstance(Object, BeanDeclaration)).

I'll attach a quick n dirty fix against 1.6 (can't get trunk to build), but I 
doubt it's the best fix. It's just a copy of 
FileConfigurationProvider#initBeanInstance in ConfigurationBuilderProvider.


-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to