You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by mh...@apache.org on 2011/05/13 00:48:07 UTC

svn commit: r1102497 - in /shindig/trunk/java/gadgets/src: main/java/org/apache/shindig/gadgets/js/ test/java/org/apache/shindig/gadgets/js/ test/java/org/apache/shindig/gadgets/servlet/

Author: mhermanto
Date: Thu May 12 22:48:06 2011
New Revision: 1102497

URL: http://svn.apache.org/viewvc?rev=1102497&view=rev
Log:
Force compilation and anon-func processor to run.
http://codereview.appspot.com/4517059/

Modified:
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/DefaultJsProcessorRegistry.java
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/JsServingPipelineModule.java
    shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/js/DefaultJsProcessorRegistryTest.java
    shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/JsServletTest.java

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/DefaultJsProcessorRegistry.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/DefaultJsProcessorRegistry.java?rev=1102497&r1=1102496&r2=1102497&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/DefaultJsProcessorRegistry.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/DefaultJsProcessorRegistry.java Thu May 12 22:48:06 2011
@@ -19,6 +19,7 @@
 package org.apache.shindig.gadgets.js;
 
 import com.google.inject.Inject;
+import com.google.inject.name.Named;
 
 import java.util.List;
 
@@ -28,18 +29,29 @@ import java.util.List;
  */
 public class DefaultJsProcessorRegistry implements JsProcessorRegistry {
 
-  private final List<JsProcessor> processors;
+  private final List<JsProcessor> optionalProcessors;
+  private final List<JsProcessor> requiredProcessors;
 
   @Inject
-  public DefaultJsProcessorRegistry(List<JsProcessor> processors) {
-    this.processors = processors;
+  public DefaultJsProcessorRegistry(
+      @Named("shindig.js.optional-processors") List<JsProcessor> optionalProcessors,
+      @Named("shindig.js.required-processors") List<JsProcessor> requiredProcessors) {
+    this.optionalProcessors = optionalProcessors;
+    this.requiredProcessors = requiredProcessors;
   }
 
+  @Override
   public void process(JsRequest request, JsResponseBuilder response) throws JsException {
-    for (JsProcessor processor : processors) {
+    for (JsProcessor processor : optionalProcessors) {
       if (!processor.process(request, response)) {
         break;
       }
     }
+    // This pipeline sequentially executes JsProcessor, and can stop on any, bypassing
+    // the actual compilation process. This is put here so generated JS will still be
+    // compiled.
+    for (JsProcessor processor : requiredProcessors) {
+      processor.process(request, response);
+    }
   }
 }

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/JsServingPipelineModule.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/JsServingPipelineModule.java?rev=1102497&r1=1102496&r2=1102497&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/JsServingPipelineModule.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/JsServingPipelineModule.java Thu May 12 22:48:06 2011
@@ -22,6 +22,7 @@ import com.google.common.collect.Immutab
 import com.google.inject.AbstractModule;
 import com.google.inject.Inject;
 import com.google.inject.Provides;
+import com.google.inject.name.Named;
 
 import java.util.List;
 
@@ -37,6 +38,7 @@ public class JsServingPipelineModule ext
 
   @Provides
   @Inject
+  @Named("shindig.js.optional-processors")
   public List<JsProcessor> provideProcessors(
       AddJslInfoVariableProcessor addJslInfoVariableProcessor,
       JsLoadProcessor jsLoaderGeneratorProcessor,
@@ -48,9 +50,7 @@ public class JsServingPipelineModule ext
       ConfigInjectionProcessor configInjectionProcessor,
       AddJslLoadedVariableProcessor addJslLoadedVariableProcessor,
       AddOnloadFunctionProcessor addOnloadFunctionProcessor,
-      AddJslCallbackProcessor addJslCallbackProcessor,
-      CompilationProcessor compilationProcessor,
-      AnonFuncWrappingProcessor anonFuncProcessor) {
+      AddJslCallbackProcessor addJslCallbackProcessor) {
     return ImmutableList.of(
         addJslInfoVariableProcessor,
         jsLoaderGeneratorProcessor,
@@ -62,9 +62,17 @@ public class JsServingPipelineModule ext
         configInjectionProcessor,
         addJslLoadedVariableProcessor,
         addOnloadFunctionProcessor,
-        addJslCallbackProcessor,
+        addJslCallbackProcessor);
+  }
+
+  @Provides
+  @Inject
+  @Named("shindig.js.required-processors")
+  public List<JsProcessor> provideProcessors(
+      CompilationProcessor compilationProcessor,
+      AnonFuncWrappingProcessor anonFuncProcessor) {
+    return ImmutableList.of(
         compilationProcessor,
         anonFuncProcessor);
   }
-
 }

Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/js/DefaultJsProcessorRegistryTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/js/DefaultJsProcessorRegistryTest.java?rev=1102497&r1=1102496&r2=1102497&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/js/DefaultJsProcessorRegistryTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/js/DefaultJsProcessorRegistryTest.java Thu May 12 22:48:06 2011
@@ -18,7 +18,7 @@
 
 package org.apache.shindig.gadgets.js;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import com.google.common.collect.ImmutableList;
 
@@ -27,7 +27,6 @@ import org.easymock.IMocksControl;
 import org.junit.Before;
 import org.junit.Test;
 
-
 /**
  * Tests for {@link DefaultJsProcessorRegistry}.
  */
@@ -40,6 +39,7 @@ public class DefaultJsProcessorRegistryT
   private JsResponseBuilder response;
   private JsProcessor processor1;
   private JsProcessor processor2;
+  private JsProcessor processor3;
   private DefaultJsProcessorRegistry registry;
 
   @Before
@@ -49,7 +49,10 @@ public class DefaultJsProcessorRegistryT
     response = new JsResponseBuilder();
     processor1 = control.createMock(JsProcessor.class);
     processor2 = control.createMock(JsProcessor.class);
-    registry = new DefaultJsProcessorRegistry(ImmutableList.of(processor1, processor2));
+    processor3 = control.createMock(JsProcessor.class);
+    registry = new DefaultJsProcessorRegistry(
+        ImmutableList.of(processor1, processor2),
+        ImmutableList.of(processor3));
   }
 
   @Test
@@ -60,7 +63,9 @@ public class DefaultJsProcessorRegistryT
         return true;
       }
     };
-    registry = new DefaultJsProcessorRegistry(ImmutableList.of(processor));
+    registry = new DefaultJsProcessorRegistry(
+        ImmutableList.of(processor),
+        ImmutableList.<JsProcessor>of());
     control.replay();
     registry.process(request, response);
     assertEquals(JS_CODE, response.build().toJsString());
@@ -71,6 +76,7 @@ public class DefaultJsProcessorRegistryT
   public void testTwoProcessorsAreRunOneAfterAnother() throws Exception {
     EasyMock.expect(processor1.process(request, response)).andReturn(true);
     EasyMock.expect(processor2.process(request, response)).andReturn(true);
+    EasyMock.expect(processor3.process(request, response)).andReturn(true);
     control.replay();
     registry.process(request, response);
     control.verify();
@@ -79,6 +85,7 @@ public class DefaultJsProcessorRegistryT
   @Test
   public void testProcessorStopsProcessingWhenItReturnsFalse() throws Exception {
     EasyMock.expect(processor1.process(request, response)).andReturn(false);
+    EasyMock.expect(processor3.process(request, response)).andReturn(true);
     control.replay();
     registry.process(request, response);
     control.verify();    

Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/JsServletTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/JsServletTest.java?rev=1102497&r1=1102496&r2=1102497&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/JsServletTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/JsServletTest.java Thu May 12 22:48:06 2011
@@ -79,7 +79,8 @@ public class JsServletTest extends Servl
     JsProcessorRegistry jsProcessorRegistry =
         new DefaultJsProcessorRegistry(
             ImmutableList.<JsProcessor>of(jsLoadProcessor, new IfModifiedSinceProcessor(),
-                 getJsProcessorMock, new AddOnloadFunctionProcessor()));
+                 getJsProcessorMock, new AddOnloadFunctionProcessor()),
+            ImmutableList.<JsProcessor>of());
 
     jsServingPipeline = new DefaultJsServingPipeline(jsProcessorRegistry);
     servlet.setJsServingPipeline(jsServingPipeline);