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 2016/02/14 20:01:36 UTC

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

Author: oheger
Date: Sun Feb 14 19:01:35 2016
New Revision: 1730377

URL: http://svn.apache.org/viewvc?rev=1730377&view=rev
Log:
[CONFIGURATION-619] Implemented inheritFrom() in CombinedBuilderParametersImpl.

Here some more properties are taken into account.

Modified:
    commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/builder/combined/CombinedBuilderParametersImpl.java
    commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/builder/combined/TestCombinedBuilderParametersImpl.java

Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/builder/combined/CombinedBuilderParametersImpl.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/builder/combined/CombinedBuilderParametersImpl.java?rev=1730377&r1=1730376&r2=1730377&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/builder/combined/CombinedBuilderParametersImpl.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration2/builder/combined/CombinedBuilderParametersImpl.java Sun Feb 14 19:01:35 2016
@@ -97,7 +97,7 @@ public class CombinedBuilderParametersIm
      * @throws NullPointerException if the map is <b>null</b>
      */
     public static CombinedBuilderParametersImpl fromParameters(
-            Map<String, Object> params)
+            Map<String, ?> params)
     {
         return fromParameters(params, false);
     }
@@ -116,7 +116,7 @@ public class CombinedBuilderParametersIm
      * @throws NullPointerException if the map is <b>null</b>
      */
     public static CombinedBuilderParametersImpl fromParameters(
-            Map<String, Object> params, boolean createIfMissing)
+            Map<String, ?> params, boolean createIfMissing)
     {
         CombinedBuilderParametersImpl result =
                 (CombinedBuilderParametersImpl) params.get(PARAM_KEY);
@@ -128,6 +128,24 @@ public class CombinedBuilderParametersIm
     }
 
     /**
+     * {@inheritDoc} This implementation additionally copies some properties
+     * defined by this class.
+     */
+    @Override
+    public void inheritFrom(Map<String, ?> source)
+    {
+        super.inheritFrom(source);
+
+        CombinedBuilderParametersImpl srcParams = fromParameters(source);
+        if (srcParams != null)
+        {
+            setChildDefaultParametersManager(
+                    srcParams.getChildDefaultParametersManager());
+            setInheritSettings(srcParams.isInheritSettings());
+        }
+    }
+
+    /**
      * Returns the current value of the flag that controls whether the settings
      * of the parent combined configuration builder should be inherited by its
      * child configurations.

Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/builder/combined/TestCombinedBuilderParametersImpl.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/builder/combined/TestCombinedBuilderParametersImpl.java?rev=1730377&r1=1730376&r2=1730377&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/builder/combined/TestCombinedBuilderParametersImpl.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration2/builder/combined/TestCombinedBuilderParametersImpl.java Sun Feb 14 19:01:35 2016
@@ -30,6 +30,7 @@ import java.util.Map;
 import org.apache.commons.configuration2.ConfigurationAssert;
 import org.apache.commons.configuration2.XMLConfiguration;
 import org.apache.commons.configuration2.beanutils.BeanHelper;
+import org.apache.commons.configuration2.builder.BasicBuilderParameters;
 import org.apache.commons.configuration2.builder.BasicConfigurationBuilder;
 import org.apache.commons.configuration2.builder.BuilderParameters;
 import org.apache.commons.configuration2.builder.ConfigurationBuilder;
@@ -450,4 +451,46 @@ public class TestCombinedBuilderParamete
                         handler, FileBasedBuilderParameters.class));
         EasyMock.verify(manager);
     }
+
+    /**
+     * Tests whether properties can be inherited.
+     */
+    @Test
+    public void testInheritFrom()
+    {
+        DefaultParametersManager manager =
+                EasyMock.createMock(DefaultParametersManager.class);
+        CombinedBuilderParametersImpl params =
+                new CombinedBuilderParametersImpl().setInheritSettings(false)
+                        .setChildDefaultParametersManager(manager);
+        params.setThrowExceptionOnMissing(true);
+        CombinedBuilderParametersImpl params2 =
+                new CombinedBuilderParametersImpl();
+
+        params2.inheritFrom(params.getParameters());
+        Map<String, Object> parameters = params2.getParameters();
+        assertEquals("Exception flag not set", Boolean.TRUE,
+                parameters.get("throwExceptionOnMissing"));
+        assertEquals("Default manager not set", manager,
+                params2.getChildDefaultParametersManager());
+        assertFalse("Inherit flag not set", params2.isInheritSettings());
+    }
+
+    /**
+     * Tests that inheritFrom() can handle a map which does not contain a
+     * parameters object.
+     */
+    @Test
+    public void testInheritFromNoParametersInMap()
+    {
+        BasicBuilderParameters params =
+                new BasicBuilderParameters().setThrowExceptionOnMissing(true);
+        CombinedBuilderParametersImpl params2 =
+                new CombinedBuilderParametersImpl();
+
+        params2.inheritFrom(params.getParameters());
+        Map<String, Object> parameters = params2.getParameters();
+        assertEquals("Exception flag not set", Boolean.TRUE,
+                parameters.get("throwExceptionOnMissing"));
+    }
 }