You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by li...@apache.org on 2009/04/30 19:39:58 UTC

svn commit: r770346 - in /incubator/shindig/trunk/java: common/conf/ gadgets/src/main/java/org/apache/shindig/gadgets/render/ server/src/test/java/org/apache/shindig/server/endtoend/

Author: lindner
Date: Thu Apr 30 17:39:58 2009
New Revision: 770346

URL: http://svn.apache.org/viewvc?rev=770346&view=rev
Log:
SHINDIG-1033: Allow global setting for forced libs

Modified:
    incubator/shindig/trunk/java/common/conf/shindig.properties
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java
    incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndServer.java
    incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndTest.java

Modified: incubator/shindig/trunk/java/common/conf/shindig.properties
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/conf/shindig.properties?rev=770346&r1=770345&r2=770346&view=diff
==============================================================================
--- incubator/shindig/trunk/java/common/conf/shindig.properties (original)
+++ incubator/shindig/trunk/java/common/conf/shindig.properties Thu Apr 30 17:39:58 2009
@@ -27,6 +27,13 @@
 shindig.content-rewrite.proxy-url=/gadgets/proxy?url=
 shindig.content-rewrite.concat-url=/gadgets/concat?
 
+#
+# Default set of forced libs to allow for better caching
+#
+# NOTE: setting this causes the EndToEnd test to fail the opensocial-templates test
+#shindig.gadget-rewrite.default-forced-libs=core:core.io
+shindig.gadget-rewrite.default-forced-libs=
+
 # Configuration for image rewriter
 shindig.image-rewrite.max-inmem-bytes = 1048576
 shindig.image-rewrite.max-palette-size = 256

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java?rev=770346&r1=770345&r2=770346&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java Thu Apr 30 17:39:58 2009
@@ -59,10 +59,12 @@
 import java.util.logging.Logger;
 
 import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.ImmutableSortedSet;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
 import com.google.inject.Inject;
+import com.google.inject.name.Named;
 
 /**
  * Produces a valid HTML document for the gadget output, automatically inserting appropriate HTML
@@ -94,6 +96,7 @@
   private final ContainerConfig containerConfig;
   private final GadgetFeatureRegistry featureRegistry;
   private final UrlGenerator urlGenerator;
+  private Set<String> defaultForcedLibs = ImmutableSet.of();
 
   /**
    * @param messageBundleFactory Used for injecting message bundles into gadget output.
@@ -109,6 +112,13 @@
     this.urlGenerator = urlGenerator;
   }
 
+  @Inject
+  public void setDefaultForcedLibs(@Named("shindig.gadget-rewrite.default-forced-libs")String forcedLibs) {
+    if (forcedLibs != null && forcedLibs.length() > 0) {
+      defaultForcedLibs = ImmutableSortedSet.copyOf(Arrays.asList(forcedLibs.split(":")));
+    }
+  }
+
   public void rewrite(Gadget gadget, MutableContent mutableContent) {
     // Don't touch sanitized gadgets.
     if (gadget.sanitizeOutput()) {
@@ -204,17 +214,16 @@
     GadgetContext context = gadget.getContext();
     String forcedLibs = context.getParameter("libs");
 
-    // List of libraries we need
+    // List of forced libraries we need
     Set<String> forced;
 
     // gather the libraries we'll need to generate the forced libs
     if (forcedLibs == null || forcedLibs.length() == 0) {
-      // TODO allow containers to have a default set of forced libs
-      forced = ImmutableSet.of();
+      // Don't bother making a mutable copy if the list is empty
+      forced = (defaultForcedLibs.isEmpty()) ? defaultForcedLibs :  Sets.newTreeSet(defaultForcedLibs);
     } else {
       forced = Sets.newTreeSet(Arrays.asList(forcedLibs.split(":")));
     }
-
     if (!forced.isEmpty()) {
       String jsUrl = urlGenerator.getBundledJsUrl(forced, context);
       Element libsTag = headTag.getOwnerDocument().createElement("script");

Modified: incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndServer.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndServer.java?rev=770346&r1=770345&r2=770346&view=diff
==============================================================================
--- incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndServer.java (original)
+++ incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndServer.java Thu Apr 30 17:39:58 2009
@@ -25,6 +25,7 @@
 import org.apache.shindig.gadgets.oauth.OAuthModule;
 import org.apache.shindig.gadgets.servlet.ConcatProxyServlet;
 import org.apache.shindig.gadgets.servlet.GadgetRenderingServlet;
+import org.apache.shindig.gadgets.servlet.JsServlet;
 import org.apache.shindig.gadgets.servlet.MakeRequestServlet;
 import org.apache.shindig.protocol.DataServiceServlet;
 import org.apache.shindig.protocol.JsonRpcServlet;
@@ -61,6 +62,7 @@
   private static final String REST_BASE = "/social/rest/*";
   private static final String JSON_RPC_BASE = "/social/rpc/*";
   private static final String CONCAT_BASE = "/gadgets/concat";
+  private static final String JS_BASE = "/gadgets/js/*";
   private static final String MAKE_REQUEST_BASE = "/gadgets/makeRequest";
   public static final String SERVER_URL = "http://localhost:" + JETTY_PORT;
   public static final String GADGET_BASEURL = SERVER_URL + GADGET_BASE;
@@ -139,6 +141,10 @@
     ServletHolder concatHolder = new ServletHolder(new ConcatProxyServlet());
     context.addServlet(concatHolder, CONCAT_BASE);
 
+    // Attach the JsServlet - needed for rewritten JS
+    ServletHolder jsHolder = new ServletHolder(new JsServlet());
+    context.addServlet(jsHolder, JS_BASE);
+
     // Attach MakeRequestServlet
     ServletHolder makeRequestHolder = new ServletHolder(new MakeRequestServlet());
     context.addServlet(makeRequestHolder, MAKE_REQUEST_BASE);

Modified: incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndTest.java?rev=770346&r1=770345&r2=770346&view=diff
==============================================================================
--- incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndTest.java (original)
+++ incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndTest.java Thu Apr 30 17:39:58 2009
@@ -29,6 +29,7 @@
 import com.gargoylesoftware.htmlunit.WebClient;
 import com.gargoylesoftware.htmlunit.html.DomNode;
 import com.gargoylesoftware.htmlunit.html.HtmlPage;
+import com.gargoylesoftware.htmlunit.html.HTMLParserListener;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 
@@ -292,6 +293,8 @@
     // to synchronous, saving the test from needing to wait or sleep for XHR
     // completion.
     webClient.setAjaxController(new NicelyResynchronizingAjaxController());
+    webClient.setHTMLParserListener(HTMLParserListener.LOG_REPORTER);
+
     alertHandler = new CollectingAlertHandler();
     webClient.setAlertHandler(alertHandler);
     token = createToken("canonical", "john.doe");