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/23 00:46:25 UTC
svn commit: r1084412 - in /shindig/trunk/java/gadgets/src:
main/java/org/apache/shindig/gadgets/features/
main/java/org/apache/shindig/gadgets/js/
main/java/org/apache/shindig/gadgets/rewrite/js/
main/java/org/apache/shindig/gadgets/servlet/ test/java/...
Author: johnh
Date: Tue Mar 22 23:46:25 2011
New Revision: 1084412
URL: http://svn.apache.org/viewvc?rev=1084412&view=rev
Log:
Complete conversion of JS API impls to list of JsContent, by passing this Iterable into JsCompiler.
Also accommodates Michael Hermanto's suggestions regarding conversion of the previous usages.
Modified:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/features/FeatureResource.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/GetJsContentProcessor.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/JavascriptModule.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/JsResponse.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/JsResponseBuilder.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/js/DefaultJsCompiler.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/js/ExportJsCompiler.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/js/JsCompiler.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsHandler.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/js/GetJsContentProcessorTest.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/js/DefaultJsCompilerTest.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/js/ExportJsCompilerTest.java
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/features/FeatureResource.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/features/FeatureResource.java?rev=1084412&r1=1084411&r2=1084412&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/features/FeatureResource.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/features/FeatureResource.java Tue Mar 22 23:46:25 2011
@@ -22,7 +22,7 @@ package org.apache.shindig.gadgets.featu
*/
public interface FeatureResource {
/**
- * @return "Normal"-mode content for the feature, eg. obfuscated JS.
+ * @return "Normal"-mode content for the feature, eg. optimized/obfuscated JS.
*/
String getContent();
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/GetJsContentProcessor.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/GetJsContentProcessor.java?rev=1084412&r1=1084411&r2=1084412&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/GetJsContentProcessor.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/GetJsContentProcessor.java Tue Mar 22 23:46:25 2011
@@ -43,7 +43,7 @@ public class GetJsContentProcessor imple
jsHandler.getJsContent(jsUri, request.getHost());
builder.setProxyCacheable(handlerResponse.isProxyCacheable());
setResponseCacheTtl(builder, jsUri.getStatus());
- builder.appendJs(handlerResponse.allJs());
+ builder.appendJs(handlerResponse.getAllJsContent());
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=1084412&r1=1084411&r2=1084412&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 Tue Mar 22 23:46:25 2011
@@ -18,6 +18,9 @@
package org.apache.shindig.gadgets.js;
+import org.apache.shindig.gadgets.rewrite.js.ClosureJsCompiler;
+import org.apache.shindig.gadgets.rewrite.js.JsCompiler;
+
import com.google.common.collect.ImmutableList;
import com.google.inject.AbstractModule;
import com.google.inject.Inject;
@@ -34,6 +37,12 @@ public class JavascriptModule extends Ab
protected void configure() {
// nothing to configure here
}
+
+ @Provides
+ @Inject
+ public JsCompiler provideJsCompiler(ClosureJsCompiler jsCompiler) {
+ return jsCompiler;
+ }
@Provides
@Inject
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/JsResponse.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/JsResponse.java?rev=1084412&r1=1084411&r2=1084412&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/JsResponse.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/JsResponse.java Tue Mar 22 23:46:25 2011
@@ -47,7 +47,7 @@ public class JsResponse {
public String getJsCode() {
if (codeString == null) {
StringBuilder sb = new StringBuilder();
- for (JsContent js : allJs()) {
+ for (JsContent js : getAllJsContent()) {
sb.append(js.get());
}
codeString = sb.toString();
@@ -58,7 +58,7 @@ public class JsResponse {
/**
* Returns an iterator starting at the beginning of all JS code in the response.
*/
- public Iterable<JsContent> allJs() {
+ public Iterable<JsContent> getAllJsContent() {
return jsCode;
}
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/JsResponseBuilder.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/JsResponseBuilder.java?rev=1084412&r1=1084411&r2=1084412&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/JsResponseBuilder.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/JsResponseBuilder.java Tue Mar 22 23:46:25 2011
@@ -45,7 +45,7 @@ public class JsResponseBuilder {
}
public JsResponseBuilder(JsResponse response) {
- jsCode = Lists.newLinkedList(response.allJs());
+ jsCode = Lists.newLinkedList(response.getAllJsContent());
errors = Lists.newLinkedList(response.getErrors());
statusCode = response.getStatusCode();
cacheTtlSecs = response.getCacheTtlSecs();
@@ -116,6 +116,22 @@ public class JsResponseBuilder {
}
/**
+ * Adds an error to the response
+ */
+ public JsResponseBuilder addError(String error) {
+ this.errors.add(error);
+ return this;
+ }
+
+ /**
+ * Adds multiple errors to the response
+ */
+ public JsResponseBuilder addErrors(List<String> errs) {
+ this.errors.addAll(errs);
+ return this;
+ }
+
+ /**
* Sets the cache TTL in seconds for the response being built.
*
* 0 seconds means "no cache"; a value below 0 means "cache forever".
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/js/DefaultJsCompiler.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/js/DefaultJsCompiler.java?rev=1084412&r1=1084411&r2=1084412&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/js/DefaultJsCompiler.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/js/DefaultJsCompiler.java Tue Mar 22 23:46:25 2011
@@ -50,8 +50,8 @@ public class DefaultJsCompiler implement
return jsContent;
}
- public JsResponse compile(JsUri jsUri, String content, List<String> externs) {
- return new JsResponseBuilder().appendJs(content, "[passthrough]").build();
+ public JsResponse compile(JsUri jsUri, Iterable<JsContent> content, List<String> externs) {
+ return new JsResponseBuilder().appendJs(content).build();
}
protected String getFeatureContent(JsUri jsUri, FeatureResource resource) {
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/js/ExportJsCompiler.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/js/ExportJsCompiler.java?rev=1084412&r1=1084411&r2=1084412&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/js/ExportJsCompiler.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/js/ExportJsCompiler.java Tue Mar 22 23:46:25 2011
@@ -73,13 +73,13 @@ public class ExportJsCompiler extends De
}
@Override
- public JsResponse compile(JsUri jsUri, String content, List<String> externs) {
+ public JsResponse compile(JsUri jsUri, Iterable<JsContent> content, List<String> externs) {
GadgetContext ctx = new JsGadgetContext(jsUri);
- StringBuilder builder = new StringBuilder();
- builder.append(getExportJsFeature(ctx));
- builder.append(content);
+ JsResponseBuilder builder = new JsResponseBuilder();
+ appendExportJs(builder, ctx);
+ builder.appendJs(content);
// TODO: attach this to a real JS compiler jscomp.Compiler.
- return new JsResponseBuilder().appendJs(builder.toString(), "[export-compiled]").build();
+ return builder.build();
}
@Override
@@ -109,16 +109,15 @@ public class ExportJsCompiler extends De
return new JsContent(sb.toString(), "[generated-symbol-exports]", bundle.getName());
}
- private String getExportJsFeature(GadgetContext context) {
- StringBuilder builder = new StringBuilder();
+ private void appendExportJs(JsResponseBuilder builder, GadgetContext context) {
LookupResult lookup = featureRegistry.getFeatureResources(context,
ImmutableList.of(FEATURE_NAME), null);
for (FeatureBundle bundle : lookup.getBundles()) {
for (FeatureResource resource : bundle.getResources()) {
- builder.append(resource.getDebugContent());
+ builder.appendJs(new JsContent(
+ resource.getDebugContent(), resource.getName(), bundle.getName()));
}
}
- return builder.toString();
}
private static class Input {
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/js/JsCompiler.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/js/JsCompiler.java?rev=1084412&r1=1084411&r2=1084412&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/js/JsCompiler.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/js/JsCompiler.java Tue Mar 22 23:46:25 2011
@@ -48,5 +48,5 @@ public interface JsCompiler {
* @param externs The externs.
* @return A compilation result object.
*/
- JsResponse compile(JsUri jsUri, String content, List<String> externs);
+ JsResponse compile(JsUri jsUri, Iterable<JsContent> content, List<String> externs);
}
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsHandler.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsHandler.java?rev=1084412&r1=1084411&r2=1084412&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsHandler.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsHandler.java Tue Mar 22 23:46:25 2011
@@ -119,7 +119,7 @@ public class JsHandler {
responseBuilder.setProxyCacheable(isProxyCacheable);
// Compile all pre-processed features.
- JsResponse result = compiler.compile(jsUri, responseBuilder.build().getJsCode(), allExterns);
+ JsResponse result = compiler.compile(jsUri, responseBuilder.build().getAllJsContent(), allExterns);
String code = result.getJsCode();
if (code != null) {
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/js/GetJsContentProcessorTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/js/GetJsContentProcessorTest.java?rev=1084412&r1=1084411&r2=1084412&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/js/GetJsContentProcessorTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/js/GetJsContentProcessorTest.java Tue Mar 22 23:46:25 2011
@@ -98,7 +98,7 @@ public class GetJsContentProcessorTest {
EasyMock.expect(handler.getJsContent(jsUri, HOST)).andReturn(handlerResponse);
EasyMock.expect(request.getHost()).andReturn(HOST);
EasyMock.expect(request.getJsUri()).andReturn(jsUri);
- EasyMock.expect(handlerResponse.allJs()).andReturn(
+ EasyMock.expect(handlerResponse.getAllJsContent()).andReturn(
ImmutableList.of(new JsContent(JS_CODE, "source", "feature")));
EasyMock.expect(handlerResponse.isProxyCacheable()).andReturn(proxyCacheable);
EasyMock.expect(jsUri.getStatus()).andReturn(uriStatus);
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/js/DefaultJsCompilerTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/js/DefaultJsCompilerTest.java?rev=1084412&r1=1084411&r2=1084412&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/js/DefaultJsCompilerTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/js/DefaultJsCompilerTest.java Tue Mar 22 23:46:25 2011
@@ -22,6 +22,7 @@ import static org.easymock.EasyMock.expe
import static org.easymock.EasyMock.replay;
import static org.junit.Assert.assertEquals;
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
import org.apache.shindig.gadgets.features.FeatureRegistry.FeatureBundle;
@@ -77,7 +78,8 @@ public class DefaultJsCompilerTest {
@Test
public void testCompile() throws Exception {
- JsResponse actual = compiler.compile(null, COMPILE_CONTENT, null);
+ JsResponse actual = compiler.compile(null,
+ ImmutableList.of(new JsContent(COMPILE_CONTENT, "js")), null);
assertEquals(COMPILE_CONTENT, actual.getJsCode());
assertEquals(0, actual.getErrors().size());
}
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/js/ExportJsCompilerTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/js/ExportJsCompilerTest.java?rev=1084412&r1=1084411&r2=1084412&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/js/ExportJsCompilerTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/js/ExportJsCompilerTest.java Tue Mar 22 23:46:25 2011
@@ -72,8 +72,11 @@ public class ExportJsCompilerTest {
@Before
public void setUp() throws Exception {
FeatureResource featureResourceMock = mockResource(true, EXPORT_JS_DEB, EXPORT_JS_OPT);
- FeatureRegistry.FeatureBundle featureBundle = new FeatureRegistry.FeatureBundle(
- null, ImmutableList.of(featureResourceMock));
+ FeatureRegistry.FeatureBundle featureBundle = createMock(FeatureRegistry.FeatureBundle.class);
+ expect(featureBundle.getResources()).andReturn(
+ ImmutableList.of(featureResourceMock)).anyTimes();
+ expect(featureBundle.getName()).andReturn("feature").anyTimes();
+ replay(featureBundle);
LookupResult lookupMock = mockLookupResult(featureBundle);
FeatureRegistry featureRegistryMock = mockRegistry(lookupMock);
compiler = new ExportJsCompiler(featureRegistryMock);
@@ -170,14 +173,16 @@ public class ExportJsCompilerTest {
@Test
public void testCompileNotEmpty() throws Exception {
JsUri jsUri = mockJsUri(JsCompileMode.ALL_RUN_TIME);
- JsResponse actual = compiler.compile(jsUri, COMPILE_CONTENT, EXTERNS);
+ JsResponse actual = compiler.compile(jsUri,
+ ImmutableList.of(new JsContent(COMPILE_CONTENT, "js")), EXTERNS);
assertEquals(EXPORT_JS_DEB + COMPILE_CONTENT, actual.getJsCode());
}
@Test
public void testCompileEmpty() throws Exception {
JsUri jsUri = mockJsUri(JsCompileMode.ALL_RUN_TIME);
- JsResponse actual = compiler.compile(jsUri, "", EXTERNS);
+ JsResponse actual = compiler.compile(jsUri,
+ ImmutableList.of(new JsContent("", "js")), EXTERNS);
assertEquals(EXPORT_JS_DEB, actual.getJsCode());
}