You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by zh...@apache.org on 2010/12/07 21:58:56 UTC

svn commit: r1043198 - in /shindig/trunk/java/gadgets/src: main/java/org/apache/shindig/gadgets/servlet/ main/java/org/apache/shindig/gadgets/uri/ test/java/org/apache/shindig/gadgets/uri/

Author: zhoresh
Date: Tue Dec  7 20:58:55 2010
New Revision: 1043198

URL: http://svn.apache.org/viewvc?rev=1043198&view=rev
Log:
Ref http://codereview.appspot.com/3484042/
Add extension params support for ProxyUriBase

Modified:
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java
    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/ProxyUriBase.java
    shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultJsUriManagerTest.java
    shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManagerTest.java

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java?rev=1043198&r1=1043197&r2=1043198&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java Tue Dec  7 20:58:55 2010
@@ -188,15 +188,7 @@ public class GadgetsHandlerService {
     verifyBaseParams(request, false);
     Set<String> fields = beanFilter.processBeanFields(request.getFields());
 
-    RenderingContext context = (RenderingContext)
-        (request.getContext() != null ?
-            // TODO: Figure out why maven complain about casting and clean the dummy cast
-            (Object) beanDelegator.convertEnum(request.getContext())
-            : RenderingContext.GADGET);
-    JsUri jsUri = new JsUri(request.getRefresh(), request.getDebug(), request.getIgnoreCache(),
-        request.getContainer(), request.getGadget(), request.getFeatures(), request.getOnload(),
-        false, context);
-
+    JsUri jsUri = createJsUri(request);
     Uri servedUri = jsUriManager.makeExternJsUri(jsUri);
 
     String content = null;
@@ -401,6 +393,18 @@ public class GadgetsHandlerService {
         fields);
   }
 
+  protected JsUri createJsUri(GadgetsHandlerApi.JsRequest request) {
+    RenderingContext context = (RenderingContext)
+    (request.getContext() != null ?
+        // TODO: Figure out why maven complain about casting and clean the dummy cast
+        (Object) beanDelegator.convertEnum(request.getContext())
+        : RenderingContext.GADGET);
+
+    return new JsUri(request.getRefresh(), request.getDebug(), request.getIgnoreCache(),
+        request.getContainer(), request.getGadget(), request.getFeatures(), request.getOnload(),
+        false, context);
+  }
+
   @VisibleForTesting
   GadgetsHandlerApi.JsResponse createJsResponse(
       Uri url, Uri jsUri, String content, Set<String> fields, Long expireMs) {
@@ -416,8 +420,7 @@ public class GadgetsHandlerService {
         fields);
   }
 
-  @VisibleForTesting
-  ProxyUri createProxyUri(GadgetsHandlerApi.ProxyRequest request) {
+  protected ProxyUri createProxyUri(GadgetsHandlerApi.ProxyRequest request) {
     ProxyUriManager.ProxyUri proxyUri = new ProxyUriManager.ProxyUri(request.getRefresh(),
         request.getDebug(), request.getIgnoreCache(), request.getContainer(),
         request.getGadget(), request.getUrl());

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=1043198&r1=1043197&r2=1043198&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 Tue Dec  7 20:58:55 2010
@@ -102,6 +102,9 @@ public class DefaultJsUriManager impleme
       uri.addQueryParameter(Param.VERSION.getKey(),
           versioner.version(ctx.getGadget(), container, ctx.getLibs()));
     }
+    if (ctx.getExtensionParams() != null) {
+      uri.addQueryParameters(ctx.getExtensionParams());
+    }
 
     return uri.toUri();
   }

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/ProxyUriBase.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/ProxyUriBase.java?rev=1043198&r1=1043197&r2=1043198&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/ProxyUriBase.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/ProxyUriBase.java Tue Dec  7 20:58:55 2010
@@ -31,6 +31,8 @@ import org.apache.shindig.gadgets.http.H
 import org.apache.shindig.gadgets.http.HttpResponse;
 import org.apache.shindig.gadgets.uri.UriCommon.Param;
 
+import java.util.Map;
+
 /**
  * Represents state/config information for the proxy.
  *
@@ -46,6 +48,8 @@ public class ProxyUriBase {
   private String rewriteMimeType = null;
   private boolean sanitizeContent = false;
   private boolean cajoleContent = false;
+  /** Extension parameters to support implementation specific flags */
+  protected Map<String, String> extensionParams = null;
 
   protected ProxyUriBase(Gadget gadget) {
     this(null,  // Meaningless in "context" mode. translateStatusRefresh invalid here.
@@ -115,7 +119,8 @@ public class ProxyUriBase {
         && this.noCache == objUri.noCache
         && this.debug == objUri.debug
         && this.sanitizeContent == objUri.sanitizeContent
-        && this.cajoleContent == objUri.cajoleContent);
+        && this.cajoleContent == objUri.cajoleContent
+        && Objects.equal(this.extensionParams, objUri.extensionParams));
 
   }
 
@@ -176,6 +181,15 @@ public class ProxyUriBase {
     return cajoleContent;
   }
 
+  public ProxyUriBase setExtensionParams(Map<String, String> extensionParams) {
+    this.extensionParams = extensionParams;
+    return this;
+  }
+
+  public Map<String, String> getExtensionParams() {
+    return extensionParams;
+  }
+
   public HttpRequest makeHttpRequest(Uri targetUri) throws GadgetException {
     HttpRequest req = new HttpRequest(targetUri)
         .setIgnoreCache(isNoCache())
@@ -242,6 +256,9 @@ public class ProxyUriBase {
     if (cajoleContent) {
       queryBuilder.addQueryParameter(Param.CAJOLE.getKey(), "1");
     }
+    if (extensionParams != null) {
+      queryBuilder.addQueryParameters(extensionParams);
+    }
     return queryBuilder;
   }
 

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=1043198&r1=1043197&r2=1043198&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 Tue Dec  7 20:58:55 2010
@@ -28,6 +28,7 @@ import static org.junit.Assert.assertFal
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
+import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Lists;
 
 import org.apache.shindig.common.uri.Uri;
@@ -41,6 +42,7 @@ import org.junit.Test;
 
 import java.util.Collection;
 import java.util.List;
+import java.util.Map;
 
 public class DefaultJsUriManagerTest {
   private static final String CONTAINER = "container";
@@ -81,6 +83,21 @@ public class DefaultJsUriManagerTest {
   }
 
   @Test
+  public void makeJsUriExtensionParams() {
+    ContainerConfig config = mockConfig("http://www.js.org", "/gadgets/js/");
+    TestDefaultJsUriManager manager = makeManager(config, null);
+    List<String> extern = Lists.newArrayList("feature");
+    JsUri ctx = mockGadgetContext(false, false, extern, false, ImmutableMap.of("test", "1"));
+    Uri jsUri = manager.makeExternJsUri(ctx);
+    assertFalse(manager.hadError());
+    assertEquals("http", jsUri.getScheme());
+    assertEquals("www.js.org", jsUri.getAuthority());
+    assertEquals("/gadgets/js/" + addJsLibs(extern) + JS_SUFFIX, jsUri.getPath());
+    assertEquals(CONTAINER, jsUri.getQueryParameter(Param.CONTAINER.getKey()));
+    assertEquals("1", jsUri.getQueryParameter("test"));
+  }
+
+  @Test
   public void makeJsUriAddPathSlashNoVersion() {
     ContainerConfig config = mockConfig("http://www.js.org", "/gadgets/js");
     TestDefaultJsUriManager manager = makeManager(config, null);
@@ -143,7 +160,7 @@ public class DefaultJsUriManagerTest {
     ContainerConfig config = mockConfig("http://www.js.org", "/gadgets/js/");
     TestDefaultJsUriManager manager = makeManager(config, null);
     List<String> extern = Lists.newArrayList("feature", "another");
-    JsUri ctx = mockGadgetContext(false, false, extern, true);
+    JsUri ctx = mockGadgetContext(false, false, extern, true, null);
     Uri jsUri = manager.makeExternJsUri(ctx);
     assertFalse(manager.hadError());
     assertEquals("http", jsUri.getScheme());
@@ -348,11 +365,12 @@ public class DefaultJsUriManagerTest {
   }
 
   private JsUri mockGadgetContext(boolean nocache, boolean debug, List<String> extern) {
-    return mockGadgetContext(nocache, debug, extern, false);
+    return mockGadgetContext(nocache, debug, extern, false, null);
   }
 
   private JsUri mockGadgetContext(boolean nocache, boolean debug,
-                                  List<String> extern, boolean isContainer) {
+                                  List<String> extern, boolean isContainer,
+                                  Map<String, String> params) {
     JsUri context = createMock(JsUri.class);
     expect(context.getContainer()).andStubReturn(CONTAINER);
     expect(context.isNoCache()).andStubReturn(nocache);
@@ -363,6 +381,7 @@ public class DefaultJsUriManagerTest {
     expect(context.getLibs()).andStubReturn(extern);
     expect(context.getOnload()).andStubReturn(null);
     expect(context.isJsload()).andStubReturn(false);
+    expect(context.getExtensionParams()).andStubReturn(params);
     replay(context);
     return context;
   }

Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManagerTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManagerTest.java?rev=1043198&r1=1043197&r2=1043198&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManagerTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManagerTest.java Tue Dec  7 20:58:55 2010
@@ -19,6 +19,7 @@
 package org.apache.shindig.gadgets.uri;
 
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Lists;
 import org.apache.shindig.common.uri.Uri;
 import org.apache.shindig.common.uri.UriBuilder;
@@ -148,6 +149,7 @@ public class DefaultProxyUriManagerTest 
     List<ProxyUri> proxyUris = Lists.newLinkedList();
     ProxyUri pUri = new ProxyUri(null, false, true, CONTAINER, SPEC_URI.toString(),
         RESOURCE_1);
+    pUri.setExtensionParams(ImmutableMap.<String, String>of("test", "1"));
     pUri.setResize(100, 10, 90, true);
     proxyUris.add(pUri);
 
@@ -157,7 +159,7 @@ public class DefaultProxyUriManagerTest 
         null, false, host, path);
     // Verify added param:
     assertEquals("/proxy/container=container&gadget=http%3A%2F%2Fexample.com%2Fgadget.xml" +
-        "&debug=0&nocache=1&v=version&resize_h=10&resize_w=100&resize_q=90&no_expand=1" +
+        "&debug=0&nocache=1&v=version&test=1&resize_h=10&resize_w=100&resize_q=90&no_expand=1" +
         "/path/http://example.com/one.dat",
         uris.get(0).getPath());
   }