You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by jt...@apache.org on 2011/05/04 01:46:46 UTC

svn commit: r1099297 - in /shindig/trunk/java/gadgets/src: main/java/org/apache/shindig/gadgets/js/ConfigInjectionProcessor.java test/java/org/apache/shindig/gadgets/js/ConfigInjectionProcessorTest.java

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