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/05 03:25:44 UTC

svn commit: r1099650 - in /shindig/trunk/java/gadgets/src: main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java main/java/org/apache/shindig/gadgets/uri/UriCommon.java test/java/org/apache/shindig/gadgets/uri/DefaultJsUriManagerTest.java

Author: mhermanto
Date: Thu May  5 01:25:43 2011
New Revision: 1099650

URL: http://svn.apache.org/viewvc?rev=1099650&view=rev
Log:
Add backward-compatible loaded functionality.
Add backward-compatible loaded functionality 

Modified:
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/UriCommon.java
    shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultJsUriManagerTest.java

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java?rev=1099650&r1=1099649&r2=1099650&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java Thu May  5 01:25:43 2011
@@ -33,17 +33,22 @@ import org.apache.shindig.gadgets.http.H
 import org.apache.shindig.gadgets.uri.UriCommon.Param;
 
 import java.util.Collection;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 /**
  * Generates and validates URLs serviced by a gadget JavaScript service (JsServlet).
  */
 public class DefaultJsUriManager implements JsUriManager {
+  
   static final String JS_HOST_PARAM = "gadgets.uri.js.host";
   static final String JS_PATH_PARAM = "gadgets.uri.js.path";
   static final JsUri INVALID_URI = new JsUri(UriStatus.BAD_URI);
   protected static final String JS_SUFFIX = ".js";
   protected static final String JS_DELIMITER = ":";
 
+  private static final Logger LOG = Logger.getLogger(DefaultJsUriManager.class.getName());
+  
   private final ContainerConfig config;
   private final Versioner versioner;
 
@@ -176,7 +181,18 @@ public class DefaultJsUriManager impleme
 
     String[] splits = path.split("!");
     Collection<String> libs = getJsLibs(splits.length >= 1 ? splits[0] : "");
-    Collection<String> have = getJsLibs(splits.length >= 2 ? splits[1] : "");
+    
+    String haveString = (splits.length >= 2 ? splits[1] : "");
+    String haveQueryParam = uri.getQueryParameter(Param.LOADED.getKey());
+    if (haveQueryParam == null) {
+      haveQueryParam = "";
+    } else {
+      LOG.log(Level.WARNING, "Using deprecated query param ?loaded=c:d in URL. " +
+          "Replace by specifying it in path as /gadgets/js/a:b!c:d.js");
+    }
+    haveString = haveString + JS_DELIMITER + haveQueryParam;
+    Collection<String> have = getJsLibs(haveString);
+    
     UriStatus status = UriStatus.VALID_UNVERSIONED;
     String version = uri.getQueryParameter(Param.VERSION.getKey());
     if (version != null && versioner != null) {

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/UriCommon.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/UriCommon.java?rev=1099650&r1=1099649&r2=1099650&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/UriCommon.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/UriCommon.java Thu May  5 01:25:43 2011
@@ -50,6 +50,7 @@ public interface UriCommon {
     COMPILE_MODE("compile"),
     JSLOAD("jsload"),
     ONLOAD("onload"),
+    LOADED("loaded"),
     NO_HINT("nohint"),
     REPOSITORY_ID("r"),
 

Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultJsUriManagerTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultJsUriManagerTest.java?rev=1099650&r1=1099649&r2=1099650&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultJsUriManagerTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultJsUriManagerTest.java Thu May  5 01:25:43 2011
@@ -251,6 +251,23 @@ public class DefaultJsUriManagerTest {
   }
 
   @Test
+  public void processPathWithLoadedJs() throws GadgetException {
+    ContainerConfig config = mockConfig("http://host", "/gadgets/js");
+    TestDefaultJsUriManager manager = makeManager(config, null);
+    Uri testUri = Uri.parse("http://host/gadgets/js/feature:another!load1:load2.js?" +
+        Param.LOADED.getKey() + "=load3:load4&" +
+        Param.CONTAINER.getKey() + '=' + CONTAINER);
+    JsUri jsUri = manager.processExternJsUri(testUri);
+    assertFalse(manager.hadError());
+    List<String> extern = Lists.newArrayList("feature", "another");
+    List<String> loadsInPath = Lists.newArrayList("load1", "load2");
+    List<String> loadsInQueryParam = Lists.newArrayList("load3", "load4");
+    assertCollectionEquals(jsUri.getLibs(), extern);
+    assertCollectionEquals(jsUri.getLoadedLibs(), Lists.newArrayList(
+        "load1", "load2", "load3", "load4"));
+  }
+
+  @Test
   public void processValidUnversionedNoVersioner() throws GadgetException {
     String targetHost = "target-host.org";
     ContainerConfig config = mockConfig("http://" + targetHost, "/gadgets/js");