You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by oh...@apache.org on 2013/02/16 16:29:41 UTC

svn commit: r1446904 - in /commons/proper/configuration/trunk/src: main/java/org/apache/commons/configuration/builder/combined/ test/java/org/apache/commons/configuration/builder/combined/

Author: oheger
Date: Sat Feb 16 15:29:40 2013
New Revision: 1446904

URL: http://svn.apache.org/r1446904
Log:
Improved handling of base path; it is now derived from the URL of the definition builder if possible.

Modified:
    commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/combined/CombinedConfigurationBuilder.java
    commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestCombinedConfigurationBuilder.java

Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/combined/CombinedConfigurationBuilder.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/combined/CombinedConfigurationBuilder.java?rev=1446904&r1=1446903&r2=1446904&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/combined/CombinedConfigurationBuilder.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/combined/CombinedConfigurationBuilder.java Sat Feb 16 15:29:40 2013
@@ -16,6 +16,7 @@
  */
 package org.apache.commons.configuration.builder.combined;
 
+import java.net.URL;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
@@ -1104,10 +1105,12 @@ public class CombinedConfigurationBuilde
             if (defBuilder instanceof FileBasedConfigurationBuilder)
             {
                 @SuppressWarnings("rawtypes")
-                FileBasedConfigurationBuilder fileBuilder = (FileBasedConfigurationBuilder) defBuilder;
-                currentXMLParameters
-                        .setBasePath(fileBuilder
-                                .getFileHandler().getBasePath());
+                FileBasedConfigurationBuilder fileBuilder =
+                        (FileBasedConfigurationBuilder) defBuilder;
+                URL url = fileBuilder.getFileHandler().getURL();
+                currentXMLParameters.setBasePath((url != null) ? url
+                        .toExternalForm() : fileBuilder.getFileHandler()
+                        .getBasePath());
             }
         }
     }

Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestCombinedConfigurationBuilder.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestCombinedConfigurationBuilder.java?rev=1446904&r1=1446903&r2=1446904&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestCombinedConfigurationBuilder.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestCombinedConfigurationBuilder.java Sat Feb 16 15:29:40 2013
@@ -25,6 +25,8 @@ import static org.junit.Assert.assertSam
 import static org.junit.Assert.assertTrue;
 
 import java.io.File;
+import java.io.IOException;
+import java.net.URL;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashMap;
@@ -38,6 +40,7 @@ import org.apache.commons.configuration.
 import org.apache.commons.configuration.Configuration;
 import org.apache.commons.configuration.ConfigurationAssert;
 import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.ConfigurationUtils;
 import org.apache.commons.configuration.DefaultFileSystem;
 import org.apache.commons.configuration.DynamicCombinedConfiguration;
 import org.apache.commons.configuration.FileSystem;
@@ -787,18 +790,23 @@ public class TestCombinedConfigurationBu
      */
     @Test
     public void testDefaultBasePathFromDefinitionBuilder()
-            throws ConfigurationException
+            throws ConfigurationException, IOException
     {
         String testFile = "testCCSystemProperties.xml";
-        String basePath = ConfigurationAssert.TEST_DIR.getAbsolutePath();
         builder.configure(new CombinedBuilderParametersImpl()
                 .setDefinitionBuilderParameters(new FileBasedBuilderParametersImpl()
-                        .setBasePath(basePath).setFileName(testFile)));
+                        .setBasePath(
+                                ConfigurationAssert.TEST_DIR.getAbsolutePath())
+                        .setFileName(testFile)));
         builder.getConfiguration();
         XMLBuilderParametersImpl xmlParams = new XMLBuilderParametersImpl();
         builder.initChildBuilderParameters(xmlParams);
-        assertEquals("Base path not set", basePath, xmlParams.getFileHandler()
-                .getBasePath());
+        File basePathFile =
+                ConfigurationUtils.fileFromURL(new URL(xmlParams
+                        .getFileHandler().getBasePath()));
+        assertEquals("Wrong base path",
+                ConfigurationAssert.getTestFile(testFile).getAbsoluteFile(),
+                basePathFile);
     }
 
     /**