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/06/01 21:57:22 UTC

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

Author: oheger
Date: Sat Jun  1 19:57:21 2013
New Revision: 1488577

URL: http://svn.apache.org/r1488577
Log:
Ensure that the root node of the newly created CombinedConfiguration is initialized when it is returned from the builder.

This changes makes it possible to use read-only combined configurations
with a NoOpSynchronizer because no further initialization is needed.

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
    commons/proper/configuration/trunk/src/test/resources/testCCMultiTenent.xml
    commons/proper/configuration/trunk/src/test/resources/testCCMultiTenentReloading.xml

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=1488577&r1=1488576&r2=1488577&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 Jun  1 19:57:21 2013
@@ -811,6 +811,8 @@ public class CombinedConfigurationBuilde
             initNodeCombinerListNodes(addConfig, config, KEY_ADDITIONAL_LIST);
             data.createAndAddConfigurations(addConfig, data.getUnionSources());
         }
+
+        result.isEmpty();  // this sets up the node structure
         currentConfiguration = null;
     }
 

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=1488577&r1=1488576&r2=1488577&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 Jun  1 19:57:21 2013
@@ -1236,6 +1236,20 @@ public class TestCombinedConfigurationBu
     }
 
     /**
+     * Tests that the combined configuration has been fully constructed
+     * (including its root node) when it is returned from the builder.
+     */
+    @Test
+    public void testRootNodeInitializedAfterCreation()
+            throws ConfigurationException
+    {
+        builder.configure(new FileBasedBuilderParametersImpl()
+                .setFile(TEST_FILE));
+        CombinedConfiguration cc = builder.getConfiguration();
+        assertNotNull("Root node not initialized", cc.getRootNode());
+    }
+
+    /**
      * A test builder provider implementation for testing whether providers can
      * be defined in the definition file.
      */

Modified: commons/proper/configuration/trunk/src/test/resources/testCCMultiTenent.xml
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/resources/testCCMultiTenent.xml?rev=1488577&r1=1488576&r2=1488577&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/resources/testCCMultiTenent.xml (original)
+++ commons/proper/configuration/trunk/src/test/resources/testCCMultiTenent.xml Sat Jun  1 19:57:21 2013
@@ -30,7 +30,8 @@
   </header>
   <override>
     <multiXml filePattern="testMultiConfiguration_$${sys:Id}.xml"
-               config-name="clientConfig" schemaValidation="false">
+               config-name="clientConfig" schemaValidation="false"
+               config-optional="true" config-forceCreate="true">
        <expressionEngine
           config-class="org.apache.commons.configuration.tree.xpath.XPathExpressionEngine"/>
     </multiXml>

Modified: commons/proper/configuration/trunk/src/test/resources/testCCMultiTenentReloading.xml
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/resources/testCCMultiTenentReloading.xml?rev=1488577&r1=1488576&r2=1488577&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/resources/testCCMultiTenentReloading.xml (original)
+++ commons/proper/configuration/trunk/src/test/resources/testCCMultiTenentReloading.xml Sat Jun  1 19:57:21 2013
@@ -27,6 +27,7 @@
   </header>
   <override>
     <multiXml filePattern="$${sys:Id}"
-               config-name="clientConfig" config-reload="true"/>
+               config-name="clientConfig" config-reload="true"
+               config-optional="true" config-forceCreate="true"/>
   </override>
 </configuration>
\ No newline at end of file