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());
}