You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by jo...@apache.org on 2010/11/18 22:43:53 UTC
svn commit: r1036645 - in /shindig/trunk/java/common/src:
main/java/org/apache/shindig/config/ test/java/org/apache/shindig/config/
Author: johnh
Date: Thu Nov 18 21:43:53 2010
New Revision: 1036645
URL: http://svn.apache.org/viewvc?rev=1036645&view=rev
Log:
Fix ContainerConfig nullification logic.
Modified:
shindig/trunk/java/common/src/main/java/org/apache/shindig/config/BasicContainerConfig.java
shindig/trunk/java/common/src/test/java/org/apache/shindig/config/BasicContainerConfigTest.java
shindig/trunk/java/common/src/test/java/org/apache/shindig/config/JsonContainerConfigLoaderTest.java
Modified: shindig/trunk/java/common/src/main/java/org/apache/shindig/config/BasicContainerConfig.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/config/BasicContainerConfig.java?rev=1036645&r1=1036644&r2=1036645&view=diff
==============================================================================
--- shindig/trunk/java/common/src/main/java/org/apache/shindig/config/BasicContainerConfig.java (original)
+++ shindig/trunk/java/common/src/main/java/org/apache/shindig/config/BasicContainerConfig.java Thu Nov 18 21:43:53 2010
@@ -255,7 +255,8 @@ public class BasicContainerConfig implem
* 'base': '/gadgets/foo',
* 'user': 'anne',
* 'colour': 'green',
- * 'map': { 'latitude': 42, 'longitude': 130 } }
+ * 'map': { 'latitude': 42, 'longitude': 130 },
+ * 'data': null }
*
* @return The container merged with all parents.
* @throws ContainerConfigException If there is an invalid parent parameter
@@ -301,11 +302,7 @@ public class BasicContainerConfig implem
(Map<String, Object>) fromParents, (Map<String, Object>) fromContainer));
} else {
// Otherwise we just overwrite it.
- if (fromContainer == null) {
- clone.remove(field);
- } else {
- clone.put(field, fromContainer);
- }
+ clone.put(field, fromContainer);
}
}
return clone;
Modified: shindig/trunk/java/common/src/test/java/org/apache/shindig/config/BasicContainerConfigTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/src/test/java/org/apache/shindig/config/BasicContainerConfigTest.java?rev=1036645&r1=1036644&r2=1036645&view=diff
==============================================================================
--- shindig/trunk/java/common/src/test/java/org/apache/shindig/config/BasicContainerConfigTest.java (original)
+++ shindig/trunk/java/common/src/test/java/org/apache/shindig/config/BasicContainerConfigTest.java Thu Nov 18 21:43:53 2010
@@ -136,10 +136,24 @@ public class BasicContainerConfigTest {
"base", "/gadgets/foo",
"user", "anne",
"colour", "green",
- "map", ImmutableMap.of("latitude", 42, "longitude", 130));
+ "map", ImmutableMap.of("latitude", 42, "longitude", 130),
+ "data", null);
config.newTransaction().addContainer(defaultContainer).addContainer(newContainer).commit();
assertEquals(expectedContainer, config.getProperties("new"));
}
+
+ @Test
+ public void testNulledPropertiesRemainNulledAfterSeveralTransactions() throws Exception {
+ Map<String, Object> defaultContainer = makeContainer("default", "o1", "v1", "o2", "v2", "o3", "v3");
+ Map<String, Object> parentContainer = makeContainer("parent", "o3", null);
+ Map<String, Object> childContainer = makeContainer("child", "parent", "parent", "o2", null);
+ config.newTransaction().addContainer(defaultContainer).commit();
+ config.newTransaction().addContainer(parentContainer).commit();
+ config.newTransaction().addContainer(childContainer).commit();
+ assertNull(config.getProperty("child", "o2"));
+ assertNull(config.getProperty("child", "o3"));
+ assertNull(config.getProperty("parent", "o3"));
+ }
@Test
public void testAddNewContainer() throws Exception {
Modified: shindig/trunk/java/common/src/test/java/org/apache/shindig/config/JsonContainerConfigLoaderTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/src/test/java/org/apache/shindig/config/JsonContainerConfigLoaderTest.java?rev=1036645&r1=1036644&r2=1036645&view=diff
==============================================================================
--- shindig/trunk/java/common/src/test/java/org/apache/shindig/config/JsonContainerConfigLoaderTest.java (original)
+++ shindig/trunk/java/common/src/test/java/org/apache/shindig/config/JsonContainerConfigLoaderTest.java Thu Nov 18 21:43:53 2010
@@ -260,9 +260,12 @@ public class JsonContainerConfigLoaderTe
// We use JSON Objects here to guarantee that we're well formed up front.
JSONObject parent = new JSONObject("{ 'gadgets.container' : ['default'], features : { osapi : 'foo' }}");
JSONObject child = new JSONObject("{ 'gadgets.container' : ['child'], features : null}");
+ JSONObject grand = new JSONObject("{ 'gadgets.container' : ['grand'], parent : 'child'}");
createConfigForTest(createContainer(parent).getAbsolutePath());
createConfigForTest(createContainer(child).getAbsolutePath());
+ createConfigForTest(createContainer(grand).getAbsolutePath());
assertEquals("foo", config.getMap("default", "features").get("osapi"));
assertNull(config.getProperty("child", "features"));
+ assertNull(config.getProperty("grand", "features"));
}
}