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/08/25 19:22:46 UTC
svn commit: r989233 - in /shindig/trunk: config/
java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/
java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/
java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/
Author: zhoresh
Date: Wed Aug 25 17:22:45 2010
New Revision: 989233
URL: http://svn.apache.org/viewvc?rev=989233&view=rev
Log:
Url: http://codereview.appspot.com/1949048/
Issue 1949048: Moving HtmlAccelServlet from "default" container to "accel" container
patch provided by Gagan.
Modified:
shindig/trunk/config/container.js
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/AccelHandler.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/HtmlAccelServlet.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/AccelUriManager.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultAccelUriManager.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultAccelUriManagerTest.java
Modified: shindig/trunk/config/container.js
URL: http://svn.apache.org/viewvc/shindig/trunk/config/container.js?rev=989233&r1=989232&r2=989233&view=diff
==============================================================================
--- shindig/trunk/config/container.js (original)
+++ shindig/trunk/config/container.js Wed Aug 25 17:22:45 2010
@@ -44,7 +44,8 @@
// Container must be an array; this allows multiple containers
// to share configuration.
-{"gadgets.container" : ["default"],
+// TODO: Move out accel container config into a separate accel.js file.
+{"gadgets.container" : ["default", "accel"],
// Set of regular expressions to validate the parent parameter. This is
// necessary to support situations where you want a single container to support
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/AccelHandler.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/AccelHandler.java?rev=989233&r1=989232&r2=989233&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/AccelHandler.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/AccelHandler.java Wed Aug 25 17:22:45 2010
@@ -47,11 +47,6 @@ import java.io.IOException;
@Singleton
public class AccelHandler {
static final String ERROR_FETCHING_DATA = "Error fetching data";
-
- // TODO: parameterize these.
- static final Integer LONG_LIVED_REFRESH = (365 * 24 * 60 * 60); // 1 year
- static final Integer DEFAULT_REFRESH = (60 * 60); // 1 hour
-
protected final RequestPipeline requestPipeline;
protected final ResponseRewriterRegistry contentRewriterRegistry;
protected final AccelUriManager uriManager;
@@ -74,7 +69,7 @@ public class AccelHandler {
// TODO: Handle if modified since headers.
// Parse and normalize to get a proxied request uri.
- ProxyUriManager.ProxyUri proxyUri = getProxyUri(request.getUri());
+ ProxyUriManager.ProxyUri proxyUri = getProxyUri(request);
// Fetch the content of the requested uri.
HttpRequest req = buildHttpRequest(request, proxyUri);
@@ -117,12 +112,12 @@ public class AccelHandler {
/**
* Returns the proxy uri encapsulating the request uri.
- * @param requestUri The request uri.
+ * @param httpRequest The http request.
* @return The proxy uri encapsulating the request uri.
* @throws GadgetException In case of errors.
*/
- public ProxyUriManager.ProxyUri getProxyUri(Uri requestUri) throws GadgetException {
- Uri proxiedUri = uriManager.parseAndNormalize(requestUri);
+ public ProxyUriManager.ProxyUri getProxyUri(HttpRequest httpRequest) throws GadgetException {
+ Uri proxiedUri = uriManager.parseAndNormalize(httpRequest);
String uriString = proxiedUri.getQueryParameter(UriCommon.Param.URL.getKey());
// Throw BAD_GATEWAY in case parsing of url fails.
@@ -135,7 +130,7 @@ public class AccelHandler {
HttpResponse.SC_BAD_GATEWAY);
}
- Gadget gadget = DomWalker.makeGadget(requestUri);
+ Gadget gadget = DomWalker.makeGadget(httpRequest);
return new ProxyUriManager.ProxyUri(gadget, normalizedUri);
}
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/HtmlAccelServlet.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/HtmlAccelServlet.java?rev=989233&r1=989232&r2=989233&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/HtmlAccelServlet.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/HtmlAccelServlet.java Wed Aug 25 17:22:45 2010
@@ -22,6 +22,7 @@ import org.apache.shindig.common.servlet
import org.apache.shindig.gadgets.GadgetException;
import org.apache.shindig.gadgets.http.HttpRequest;
import org.apache.shindig.gadgets.http.HttpResponse;
+import org.apache.shindig.gadgets.uri.AccelUriManager;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
@@ -61,6 +62,7 @@ public class HtmlAccelServlet extends In
}
HttpRequest req = ServletUtil.fromHttpServletRequest(request);
+ req.setContainer(AccelUriManager.CONTAINER);
HttpResponse response = null;
try {
response = accelHandler.fetch(req);
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/AccelUriManager.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/AccelUriManager.java?rev=989233&r1=989232&r2=989233&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/AccelUriManager.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/AccelUriManager.java Wed Aug 25 17:22:45 2010
@@ -19,9 +19,9 @@
package org.apache.shindig.gadgets.uri;
import com.google.inject.ImplementedBy;
-
import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.gadgets.GadgetException;
+import org.apache.shindig.gadgets.http.HttpRequest;
/**
* UriManager for Accel servlet.
@@ -30,12 +30,14 @@ import org.apache.shindig.gadgets.Gadget
public interface AccelUriManager {
public static final String PROXY_HOST_PARAM = DefaultProxyUriManager.PROXY_HOST_PARAM;
public static final String PROXY_PATH_PARAM = DefaultProxyUriManager.PROXY_PATH_PARAM;
+ public static final String CONTAINER = "accel";
/**
- * Parses and normalizes the given uri to be proxied through accel.
- * @param requestUri The uri to proxy through accel. @return Accel proxied uri.
- * @return Normalized uri to be proxied through accel.
+ * Parses and normalizes the given request uri to be proxied through accel.
+ *
+ * @param httpRequest The http request.
+ * @return Normalized uri which is proxied through accel.
* @throws GadgetException In case of errors.
*/
- public Uri parseAndNormalize(Uri requestUri) throws GadgetException;
+ public Uri parseAndNormalize(HttpRequest httpRequest) throws GadgetException;
}
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultAccelUriManager.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultAccelUriManager.java?rev=989233&r1=989232&r2=989233&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultAccelUriManager.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultAccelUriManager.java Wed Aug 25 17:22:45 2010
@@ -20,12 +20,12 @@ package org.apache.shindig.gadgets.uri;
import com.google.common.collect.ImmutableList;
import com.google.inject.Inject;
-
import org.apache.commons.lang.StringUtils;
import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.config.ContainerConfig;
import org.apache.shindig.gadgets.Gadget;
import org.apache.shindig.gadgets.GadgetException;
+import org.apache.shindig.gadgets.http.HttpRequest;
import org.apache.shindig.gadgets.rewrite.DomWalker;
/**
@@ -33,7 +33,6 @@ import org.apache.shindig.gadgets.rewrit
* TODO: Add support for multiple accel hosts.
*/
public class DefaultAccelUriManager implements AccelUriManager {
- public static final String CONTAINER = "default";
final String accelHost;
final String accelPath;
@@ -47,11 +46,11 @@ public class DefaultAccelUriManager impl
accelPath = config.getString(CONTAINER, PROXY_PATH_PARAM);
}
- public Uri parseAndNormalize(Uri requestUri) throws GadgetException {
- Gadget gadget = DomWalker.makeGadget(requestUri);
- ProxyUriManager.ProxyUri proxied = looksLikeAccelUri(requestUri) ?
- proxyUriManager.process(requestUri) : new ProxyUriManager.ProxyUri(
- gadget, requestUri);
+ public Uri parseAndNormalize(HttpRequest httpRequest) throws GadgetException {
+ Gadget gadget = DomWalker.makeGadget(httpRequest);
+ ProxyUriManager.ProxyUri proxied = looksLikeAccelUri(httpRequest.getUri()) ?
+ proxyUriManager.process(httpRequest.getUri()) : new ProxyUriManager.ProxyUri(
+ gadget, httpRequest.getUri());
return proxyUriManager.make(ImmutableList.of(proxied), 0).get(0);
}
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultAccelUriManagerTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultAccelUriManagerTest.java?rev=989233&r1=989232&r2=989233&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultAccelUriManagerTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/DefaultAccelUriManagerTest.java Wed Aug 25 17:22:45 2010
@@ -19,31 +19,40 @@
package org.apache.shindig.gadgets.uri;
import com.google.common.collect.ImmutableMap;
-
import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.config.AbstractContainerConfig;
import org.apache.shindig.config.ContainerConfig;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import org.apache.shindig.gadgets.http.HttpRequest;
import org.junit.Before;
import org.junit.Test;
import java.util.Map;
+import static org.junit.Assert.*;
+
/**
* Tests for DefaultAccelUriManager.
*/
public class DefaultAccelUriManagerTest {
private static class FakeContainerConfig extends AbstractContainerConfig {
- protected final Map<String, Object> data = ImmutableMap.<String, Object>builder()
+ protected final Map<String, Object> defaultConfig = ImmutableMap.<String, Object>builder()
+ .put(AccelUriManager.PROXY_HOST_PARAM, "apache.org")
+ .put(AccelUriManager.PROXY_PATH_PARAM, "/gadgets/proxy")
+ .build();
+ protected final Map<String, Object> accelConfig = ImmutableMap.<String, Object>builder()
.put(AccelUriManager.PROXY_HOST_PARAM, "apache.org")
.put(AccelUriManager.PROXY_PATH_PARAM, "/gadgets/accel")
.build();
+ protected final Map<String, Map<String, Object>> data =
+ ImmutableMap.<String, Map<String, Object>>builder()
+ .put("default", defaultConfig)
+ .put("accel", accelConfig)
+ .build();
+
@Override
public Object getProperty(String container, String name) {
- return data.get(name);
+ return data.get(container) != null ? data.get(container).get(name) : null;
}
}
@@ -59,28 +68,39 @@ public class DefaultAccelUriManagerTest
@Test
public void testParseAndNormalizeNonAccelUri() throws Exception {
Uri uri = Uri.parse("http://www.example.org/index.html");
- assertEquals(Uri.parse("//apache.org/gadgets/accel?container=default"
+ HttpRequest req = new HttpRequest(uri);
+ assertEquals(Uri.parse("//apache.org/gadgets/proxy?container=default"
+ + "&gadget=http%3A%2F%2Fwww.example.org%2Findex.html"
+ + "&debug=0&nocache=0&refresh=0"
+ + "&url=http%3A%2F%2Fwww.example.org%2Findex.html"),
+ uriManager.parseAndNormalize(req));
+
+ uri = Uri.parse("http://www.example.org/index.html");
+ req = new HttpRequest(uri);
+ req.setContainer("accel");
+ assertEquals(Uri.parse("//apache.org/gadgets/accel?container=accel"
+ "&gadget=http%3A%2F%2Fwww.example.org%2Findex.html"
+ "&debug=0&nocache=0&refresh=0"
+ "&url=http%3A%2F%2Fwww.example.org%2Findex.html"),
- uriManager.parseAndNormalize(uri));
+ uriManager.parseAndNormalize(req));
}
@Test
public void testParseAndNormalizeAccelUri() throws Exception {
- Uri uri = Uri.parse("http://apache.org/gadgets/accel?container=proxy"
+ Uri uri = Uri.parse("http://apache.org/gadgets/accel?container=accel"
+ "&gadget=http%3A%2F%2Fwww.1.com%2Fa.html"
+ "&url=http%3A%2F%2Fwww.example.org%2Findex.html");
- assertEquals(Uri.parse("//apache.org/gadgets/accel?container=proxy"
+ HttpRequest req = new HttpRequest(uri);
+ assertEquals(Uri.parse("//apache.org/gadgets/accel?container=accel"
+ "&gadget=http%3A%2F%2Fwww.1.com%2Fa.html"
+ "&debug=0&nocache=0&refresh=0"
+ "&url=http%3A%2F%2Fwww.example.org%2Findex.html"),
- uriManager.parseAndNormalize(uri));
+ uriManager.parseAndNormalize(req));
}
@Test
public void testLooksLikeAccelUri() throws Exception {
- Uri uri = Uri.parse("http://apache.org/gadgets/accel?container=proxy"
+ Uri uri = Uri.parse("http://apache.org/gadgets/accel?container=accel"
+ "&gadget=http%3A%2F%2Fwww.1.com%2Fa.html"
+ "&url=http%3A%2F%2Fwww.example.org%2Findex.html");
assertTrue(uriManager.looksLikeAccelUri(uri));