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 2011/03/25 23:46:25 UTC
svn commit: r1085589 - in /shindig/trunk/java/gadgets/src:
main/java/org/apache/shindig/gadgets/js/
test/java/org/apache/shindig/gadgets/js/
Author: johnh
Date: Fri Mar 25 22:46:25 2011
New Revision: 1085589
URL: http://svn.apache.org/viewvc?rev=1085589&view=rev
Log:
Re-wrap all JS in anonymous function closure, and set ExportJsCompiler as the default.
The combination of these, with a small fix to AnonFuncWrappingProcessor
(doing so only in non-BUILD-time compile mode) completes refactoring to
the Processor mode of wrapped-and-exported JS for both debug and
compiled.
Modified:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/AnonFuncWrappingProcessor.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/JavascriptModule.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/js/AnonFuncWrappingProcessorTest.java
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/AnonFuncWrappingProcessor.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/AnonFuncWrappingProcessor.java?rev=1085589&r1=1085588&r2=1085589&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/AnonFuncWrappingProcessor.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/AnonFuncWrappingProcessor.java Fri Mar 25 22:46:25 2011
@@ -17,13 +17,15 @@
*/
package org.apache.shindig.gadgets.js;
-public class AnonFuncWrappingProcessor implements JsProcessor {
+import org.apache.shindig.gadgets.JsCompileMode;
+public class AnonFuncWrappingProcessor implements JsProcessor {
public boolean process(JsRequest jsRequest, JsResponseBuilder builder)
throws JsException {
- builder.prependJs("(function() {\n", "[js-anon-wrapper]");
- builder.appendJs("\n})();", "[js-anon-wrapper]");
+ if (jsRequest.getJsUri().getCompileMode() != JsCompileMode.BUILD_TIME) {
+ builder.prependJs("(function() {\n", "[js-anon-wrapper]");
+ builder.appendJs("\n})();", "[js-anon-wrapper]");
+ }
return true;
}
-
}
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/JavascriptModule.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/JavascriptModule.java?rev=1085589&r1=1085588&r2=1085589&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/JavascriptModule.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/JavascriptModule.java Fri Mar 25 22:46:25 2011
@@ -25,6 +25,9 @@ import com.google.inject.Provides;
import java.util.List;
+import org.apache.shindig.gadgets.rewrite.js.ExportJsCompiler;
+import org.apache.shindig.gadgets.rewrite.js.JsCompiler;
+
/**
* Guice configuration for the Javascript serving pipeline.
*/
@@ -37,6 +40,12 @@ public class JavascriptModule extends Ab
@Provides
@Inject
+ public JsCompiler provideJsCompiler(ExportJsCompiler compiler) {
+ return compiler;
+ }
+
+ @Provides
+ @Inject
public List<JsProcessor> provideProcessors(
InjectJsInfoVariableProcessor injectJsInfoVariableProcessor,
JsLoadProcessor jsLoaderGeneratorProcessor,
@@ -45,11 +54,11 @@ public class JavascriptModule extends Ab
ConfigInjectionProcessor configInjectionProcessor,
AddOnloadFunctionProcessor addOnloadFunctionProcessor,
AddJsLoadCallbackProcessor addJsLoadCallbackProcessor,
- //AnonFuncWrappingProcessor jsWrapperProcessor,
+ AnonFuncWrappingProcessor anonFuncProcessor,
CompilationProcessor compilationProcessor) {
return ImmutableList.of(injectJsInfoVariableProcessor, jsLoaderGeneratorProcessor,
ifModifiedSinceProcessor, getJsContentProcessor, configInjectionProcessor,
- addOnloadFunctionProcessor, addJsLoadCallbackProcessor, /*jsWrapperProcessor,*/
+ addOnloadFunctionProcessor, addJsLoadCallbackProcessor, anonFuncProcessor,
compilationProcessor);
}
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/js/AnonFuncWrappingProcessorTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/js/AnonFuncWrappingProcessorTest.java?rev=1085589&r1=1085588&r2=1085589&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/js/AnonFuncWrappingProcessorTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/js/AnonFuncWrappingProcessorTest.java Fri Mar 25 22:46:25 2011
@@ -18,23 +18,47 @@
package org.apache.shindig.gadgets.js;
import static org.easymock.EasyMock.createControl;
+import static org.easymock.EasyMock.expect;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
+import org.apache.shindig.gadgets.JsCompileMode;
+import org.apache.shindig.gadgets.uri.JsUriManager.JsUri;
import org.easymock.IMocksControl;
import org.junit.Test;
public class AnonFuncWrappingProcessorTest {
@Test
- public void wrapCode() throws Exception {
+ public void wrapCodeAllRunTime() throws Exception {
+ checkWrapCode(JsCompileMode.ALL_RUN_TIME, true);
+ }
+
+ @Test
+ public void wrapCodeExplicitRunTime() throws Exception {
+ checkWrapCode(JsCompileMode.EXPLICIT_RUN_TIME, true);
+ }
+
+ @Test
+ public void wrapCodeBuildTimeDoesNothing() throws Exception {
+ checkWrapCode(JsCompileMode.BUILD_TIME, false);
+ }
+
+ private void checkWrapCode(JsCompileMode mode, boolean wraps) throws Exception {
IMocksControl control = createControl();
JsRequest request = control.createMock(JsRequest.class);
+ JsUri jsUri = control.createMock(JsUri.class);
+ expect(jsUri.getCompileMode()).andReturn(mode);
+ expect(request.getJsUri()).andReturn(jsUri);
JsResponseBuilder builder = new JsResponseBuilder().appendJs("JS_CODE", "source");
AnonFuncWrappingProcessor processor = new AnonFuncWrappingProcessor();
control.replay();
assertTrue(processor.process(request, builder));
control.verify();
- assertEquals("(function() {\nJS_CODE\n})();", builder.build().toJsString());
+ if (wraps) {
+ assertEquals("(function() {\nJS_CODE\n})();", builder.build().toJsString());
+ } else {
+ assertEquals("JS_CODE", builder.build().toJsString());
+ }
}
}