Author: awiner
Date: Fri Mar 20 17:17:26 2009
New Revision: 756644
URL: http://svn.apache.org/viewvc?rev=756644&view=rev
Log:
SHINDIG-989: MakeRequestHandler does not use REFRESH param to affect internal
caching of request
- Put the refresh parameter onto HttpRequest.setCacheTtl() for consistency with
other requests (e.g. proxy)
- Add test of refresh parameter
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/MakeRequestHandler.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/MakeRequestHandlerTest.java
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/MakeRequestHandler.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/MakeRequestHandler.java?rev=756644&r1=756643&r2=756644&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/MakeRequestHandler.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/MakeRequestHandler.java
Fri Mar 20 17:17:26 2009
@@ -140,6 +140,16 @@
req.setGadget(Uri.parse(request.getParameter(GADGET_PARAM)));
}
+ // If the proxy request specifies a refresh param then we want to force
the min TTL for
+ // the retrieved entry in the cache regardless of the headers on the
content when it
+ // is fetched from the original source.
+ if (request.getParameter(REFRESH_PARAM) != null) {
+ try {
+ req.setCacheTtl(Integer.parseInt(request.getParameter(REFRESH_PARAM)));
+ } catch (NumberFormatException nfe) {
+ // Ignore
+ }
+ }
// Allow the rewriter to use an externally forced mime type. This is needed
// allows proper rewriting of <script src="x"/> where x is returned with
// a content type like text/html which unfortunately happens all too often
Modified:
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/MakeRequestHandlerTest.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/MakeRequestHandlerTest.java?rev=756644&r1=756643&r2=756644&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/MakeRequestHandlerTest.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/MakeRequestHandlerTest.java
Fri Mar 20 17:17:26 2009
@@ -30,7 +30,9 @@
import com.google.common.collect.Lists;
-import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.*;
+
+import org.easymock.Capture;
import org.easymock.IAnswer;
import org.json.JSONArray;
import org.json.JSONException;
@@ -107,6 +109,21 @@
assertTrue(rewriter.responseWasRewritten());
}
+ public void testGetRequestWIthRefresh() throws Exception {
+
expect(request.getParameter(ProxyBase.REFRESH_PARAM)).andReturn("120").anyTimes();
+
+ Capture<HttpRequest> requestCapture = new Capture<HttpRequest>();
+ expect(pipeline.execute(capture(requestCapture))).andReturn(new
HttpResponse(RESPONSE_BODY));
+
+ replay();
+
+ handler.fetch(request, recorder);
+
+ HttpRequest httpRequest = requestCapture.getValue();
+ assertEquals("public,max-age=120", recorder.getHeader("Cache-Control"));
+ assertEquals(120, httpRequest.getCacheTtl());
+ }
+
public void testExplicitHeaders() throws Exception {
String headerString = "X-Foo=bar&X-Bar=baz%20foo";