Uploaded image for project: 'Commons Configuration'
  1. Commons Configuration
  2. CONFIGURATION-437

BasePath not set on with DefaultConfigurationBuilder/ConfigurationBuilderProvider

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.6, Nightly Builds
    • Fix Version/s: 1.7
    • Component/s: None
    • Labels:
      None

      Description

      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.

        Attachments

        1. basepath.patch
          1 kB
          Mike Noordermeer

          Activity

            People

            • Assignee:
              oheger Oliver Heger
              Reporter:
              miken Mike Noordermeer
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: