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"));
+ }
}