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/07/14 22:28:30 UTC
svn commit: r1146884 - in /shindig/trunk/java/gadgets/src:
main/java/org/apache/shindig/gadgets/js/ExportJsProcessor.java
test/java/org/apache/shindig/gadgets/js/ExportJsProcessorTest.java
Author: johnh
Date: Thu Jul 14 20:28:29 2011
New Revision: 1146884
URL: http://svn.apache.org/viewvc?rev=1146884&view=rev
Log:
Only emit deferred symbols for features that support it.
Modified:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/ExportJsProcessor.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/js/ExportJsProcessorTest.java
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/ExportJsProcessor.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/ExportJsProcessor.java?rev=1146884&r1=1146883&r2=1146884&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/ExportJsProcessor.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/ExportJsProcessor.java Thu Jul 14 20:28:29 2011
@@ -64,7 +64,7 @@ public class ExportJsProcessor implement
this.deferredMode = defer;
}
- public ExportJsProcessor getDeferredInstance() {
+ public JsProcessor getDeferredInstance() {
return new ExportJsProcessor(featureRegistryProvider, context, true);
}
@@ -140,7 +140,9 @@ public class ExportJsProcessor implement
boolean neededExports = false;
for (FeatureBundle bundle : lookup.getBundles()) {
- neededExports |= appendExportJsStatementsForFeature(builder, jsRequest.getJsUri(), bundle);
+ if (bundle.isSupportDefer()) {
+ neededExports |= appendExportJsStatementsForFeature(builder, jsRequest.getJsUri(), bundle);
+ }
}
return neededExports;
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/js/ExportJsProcessorTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/js/ExportJsProcessorTest.java?rev=1146884&r1=1146883&r2=1146884&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/js/ExportJsProcessorTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/js/ExportJsProcessorTest.java Thu Jul 14 20:28:29 2011
@@ -83,7 +83,8 @@ public class ExportJsProcessorTest {
private final String EXPORT_STRING_3 = "";
- private final List<String> LIBS = Lists.newArrayList("lib1");
+ private final List<String> LIBS_DEFER = Lists.newArrayList("lib1");
+ private final List<String> LIBS = Lists.newArrayList("lib2");
private final List<String> LOADED = Lists.newArrayList();
private JsContent textJsContent1;
@@ -124,9 +125,13 @@ public class ExportJsProcessorTest {
isA(GadgetContext.class), isA(List.class), EasyMock.isNull(List.class))).
andReturn(lookupMock).anyTimes();
expect(result.getFeatureResources(
+ isA(GadgetContext.class), eq(LIBS_DEFER), EasyMock.isNull(List.class), eq(false))).
+ andReturn(mockLookupResult(mockBundle(EXPORTS_1, true))).anyTimes();
+ expect(result.getFeatureResources(
isA(GadgetContext.class), eq(LIBS), EasyMock.isNull(List.class), eq(false))).
- andReturn(mockLookupResult(mockBundle(EXPORTS_1))).anyTimes();
+ andReturn(mockLookupResult(mockBundle(EXPORTS_2))).anyTimes();
expect(result.getFeatures(LIBS)).andReturn(LIBS).anyTimes();
+ expect(result.getFeatures(LIBS_DEFER)).andReturn(LIBS_DEFER).anyTimes();
expect(result.getFeatures(LOADED)).andReturn(LOADED).anyTimes();
replay(result);
return result;
@@ -137,11 +142,15 @@ public class ExportJsProcessorTest {
}
private JsUri mockJsUri(JsCompileMode mode, boolean isJsload) {
+ return mockJsUri(mode, isJsload, LIBS);
+ }
+
+ private JsUri mockJsUri(JsCompileMode mode, boolean isJsload, List<String> libs) {
JsUri result = createMock(JsUri.class);
expect(result.getCompileMode()).andStubReturn(mode);
expect(result.getRepository()).andStubReturn(null);
expect(result.isJsload()).andReturn(isJsload).anyTimes();
- expect(result.getLibs()).andReturn(LIBS).anyTimes();
+ expect(result.getLibs()).andReturn(libs).anyTimes();
expect(result.getLoadedLibs()).andReturn(LOADED).anyTimes();
replay(result);
return result;
@@ -163,11 +172,15 @@ public class ExportJsProcessorTest {
}
private FeatureBundle mockBundle(List<String> exports) {
+ return mockBundle(exports, false);
+ }
+
+ private FeatureBundle mockBundle(List<String> exports, boolean isDefer) {
List<ApiDirective> apis = Lists.newArrayList();
for (String e : exports) apis.add(mockApiDirective(true, e));
FeatureBundle result = createMock(FeatureBundle.class);
expect(result.getApis(ApiDirective.Type.JS, true)).andReturn(exports).anyTimes();
- expect(result.isSupportDefer()).andReturn(false).anyTimes();
+ expect(result.isSupportDefer()).andReturn(isDefer).anyTimes();
replay(result);
return result;
}
@@ -227,7 +240,7 @@ public class ExportJsProcessorTest {
@Test
public void testProcessWithOneNonEmptyFeatureDeferred() throws Exception {
- JsUri jsUri = mockJsUri(JsCompileMode.CONCAT_COMPILE_EXPORT_ALL, true);
+ JsUri jsUri = mockJsUri(JsCompileMode.CONCAT_COMPILE_EXPORT_ALL, true, LIBS_DEFER);
JsRequest jsRequest = new JsRequest(jsUri, null, false, featureRegistry);
JsResponseBuilder jsBuilder = new JsResponseBuilder();
boolean actualReturnCode = compiler.getDeferredInstance().process(jsRequest, jsBuilder);
@@ -238,6 +251,18 @@ public class ExportJsProcessorTest {
}
@Test
+ public void testProcessWithOneNonEmptyFeatureDeferredNotSupported() throws Exception {
+ JsUri jsUri = mockJsUri(JsCompileMode.CONCAT_COMPILE_EXPORT_ALL, true, LIBS); // !deferred
+ JsRequest jsRequest = new JsRequest(jsUri, null, false, featureRegistry);
+ JsResponseBuilder jsBuilder = new JsResponseBuilder();
+ boolean actualReturnCode = compiler.getDeferredInstance().process(jsRequest, jsBuilder);
+ assertTrue(actualReturnCode);
+ assertEquals(
+ "",
+ jsBuilder.build().toJsString());
+ }
+
+ @Test
public void testProcessWithOneNonEmptyFeatureNotDeferredMode() throws Exception {
JsUri jsUri = mockJsUri(JsCompileMode.CONCAT_COMPILE_EXPORT_ALL, true);
JsRequest jsRequest = new JsRequest(jsUri, null, false, featureRegistry);