Author: jtarrio
Date: Tue May 3 23:46:45 2011
New Revision: 1099297
URL: http://svn.apache.org/viewvc?rev=1099297&view=rev
Log:
Do not initialize gadgets.config if no matching features have configuration.
gadgets.config is now always initialized to an empty object, so it is not
necessary to do it every time. Therefore, skip initialization when the
configuration is empty.
Modified:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/ConfigInjectionProcessor.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/js/ConfigInjectionProcessorTest.java
Modified:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/ConfigInjectionProcessor.java
URL:
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/ConfigInjectionProcessor.java?rev=1099297&r1=1099296&r2=1099297&view=diff
==============================================================================
---
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/ConfigInjectionProcessor.java
(original)
+++
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/ConfigInjectionProcessor.java
Tue May 3 23:46:45 2011
@@ -50,8 +50,7 @@ public class ConfigInjectionProcessor im
this.configContributors = configContributors;
}
- public boolean process(JsRequest request, JsResponseBuilder builder)
- throws JsException {
+ public boolean process(JsRequest request, JsResponseBuilder builder) {
JsUri jsUri = request.getJsUri();
GadgetContext ctx = new JsGadgetContext(jsUri);
@@ -78,8 +77,10 @@ public class ConfigInjectionProcessor im
contributor.contribute(config, container, request.getHost());
}
}
- builder.appendJs(
- "gadgets.config.init(" + JsonSerializer.serialize(config) +
");\n", CONFIG_INIT_ID);
+ if (!config.isEmpty()) {
+ builder.appendJs(
+ "gadgets.config.init(" + JsonSerializer.serialize(config) +
");\n", CONFIG_INIT_ID);
+ }
}
}
return true;
Modified:
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/js/ConfigInjectionProcessorTest.java
URL:
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/js/ConfigInjectionProcessorTest.java?rev=1099297&r1=1099296&r2=1099297&view=diff
==============================================================================
---
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/js/ConfigInjectionProcessorTest.java
(original)
+++
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/js/ConfigInjectionProcessorTest.java
Tue May 3 23:46:45 2011
@@ -96,6 +96,35 @@ public class ConfigInjectionProcessorTes
}
@Test
+ public void containerNoMatchingFeaturesDoesNothing() throws Exception {
+ checkNoMatchingFeaturesDoesNothing(RenderingContext.CONTAINER);
+ }
+
+ @Test
+ public void configuredNoMatchingFeaturesDoesNothing() throws Exception {
+ checkNoMatchingFeaturesDoesNothing(RenderingContext.CONFIGURED_GADGET);
+ }
+
+ private void checkNoMatchingFeaturesDoesNothing(RenderingContext ctx) throws
Exception {
+ JsResponseBuilder builder = prepareRequestReturnBuilder(ctx );
+ Map<String, Object> baseConfig = Maps.newHashMap();
+ baseConfig.put("feature1", "config1");
+ Map<String, String> f2MapConfig = Maps.newHashMap();
+ f2MapConfig.put("key1", "val1");
+ f2MapConfig.put("key2", "val2");
+ baseConfig.put("feature2", f2MapConfig);
+ expect(containerConfig.getMap(CONTAINER,
ConfigInjectionProcessor.GADGETS_FEATURES_KEY))
+ .andReturn(baseConfig);
+ List<String> libs = ImmutableList.of("lib1", "lib2");
+ expect(jsUri.getLibs()).andReturn(libs);
+ expect(registry.getFeatures(libs)).andReturn(libs);
+ control.replay();
+ assertTrue(processor.process(request, builder));
+ control.verify();
+ assertEquals(BASE_CODE, builder.build().toJsString());
+ }
+
+ @Test
public void containerNoContributorsGetsBase() throws Exception {
checkNoContributorsGetsBase(RenderingContext.CONTAINER);
}