Author: gagan
Date: Thu Mar 10 19:00:35 2011
New Revision: 1080320

URL: http://svn.apache.org/viewvc?rev=1080320&view=rev
Log:
Patch by nikhilmadan23 | Issue 4260059: Rename copyResponseToServlet in 
ServletUtils | http://codereview.appspot.com/4260059/

Modified:
    
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/servlet/ProxyServlet.java
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ServletUtil.java
    
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/ServletUtilTest.java

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=1080320&r1=1080319&r2=1080320&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
 Thu Mar 10 19:00:35 2011
@@ -65,7 +65,7 @@ public class HtmlAccelServlet extends In
       response = ServletUtil.errorResponse(e);
     }
     
-    ServletUtil.copyResponseToServlet(response, servletResponse);
+    ServletUtil.copyToServletResponseAndOverrideCacheHeaders(response, 
servletResponse);
   }
 
   @Override

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ProxyServlet.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ProxyServlet.java?rev=1080320&r1=1080319&r2=1080320&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ProxyServlet.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ProxyServlet.java
 Thu Mar 10 19:00:35 2011
@@ -104,6 +104,6 @@ public class ProxyServlet extends Inject
           HttpServletResponse.SC_BAD_REQUEST));
     }
     
-    ServletUtil.copyResponseToServlet(response, servletResponse);
+    ServletUtil.copyToServletResponseAndOverrideCacheHeaders(response, 
servletResponse);
   }
 }

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ServletUtil.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ServletUtil.java?rev=1080320&r1=1080319&r2=1080320&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ServletUtil.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ServletUtil.java
 Thu Mar 10 19:00:35 2011
@@ -95,15 +95,32 @@ public final class ServletUtil {
     }
   }
 
-  public static void copyResponseToServlet(HttpResponse response, 
HttpServletResponse servletResponse)
+  public static void copyToServletResponseAndOverrideCacheHeaders(
+      HttpResponse response, HttpServletResponse servletResponse)
       throws IOException {
-    servletResponse.setStatus(response.getHttpStatusCode());
+    copyHeadersAndStatusToServletResponse(response, servletResponse);
+    HttpUtil.setCachingHeaders(servletResponse, (int)(response.getCacheTtl() / 
1000L));
+    copyContentToServletResponse(response, servletResponse);
+  }
+
+  public static void copyToServletResponse(
+      HttpResponse response, HttpServletResponse servletResponse) throws 
IOException {
+    copyHeadersAndStatusToServletResponse(response, servletResponse);
+    copyContentToServletResponse(response, servletResponse);
+  }
+
+  public static void copyContentToServletResponse(
+      HttpResponse response, HttpServletResponse servletResponse) throws 
IOException {
     servletResponse.setContentLength(response.getContentLength());
+    IOUtils.copy(response.getResponse(), servletResponse.getOutputStream());
+
+  }
+  public static void copyHeadersAndStatusToServletResponse(
+      HttpResponse response, HttpServletResponse servletResponse) {
+    servletResponse.setStatus(response.getHttpStatusCode());
     for (Map.Entry<String, String> header : response.getHeaders().entries()) {
       servletResponse.addHeader(header.getKey(), header.getValue());
     }
-    HttpUtil.setCachingHeaders(servletResponse, (int)(response.getCacheTtl() / 
1000L));
-    IOUtils.copy(response.getResponse(), servletResponse.getOutputStream());
   }
 
   /**

Modified: 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/ServletUtilTest.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/ServletUtilTest.java?rev=1080320&r1=1080319&r2=1080320&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/ServletUtilTest.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/ServletUtilTest.java
 Thu Mar 10 19:00:35 2011
@@ -22,6 +22,7 @@ import org.apache.commons.codec.binary.B
 import org.apache.shindig.common.servlet.HttpServletResponseRecorder;
 import org.apache.shindig.common.servlet.HttpUtil;
 import org.apache.shindig.common.uri.Uri;
+import org.apache.shindig.common.util.DateUtil;
 import org.apache.shindig.common.util.FakeTimeSource;
 import org.apache.shindig.gadgets.GadgetException;
 import org.apache.shindig.gadgets.http.HttpRequest;
@@ -40,6 +41,9 @@ import java.util.Arrays;
 import java.util.Enumeration;
 import java.util.Vector;
 
+import static junitx.framework.ComparableAssert.assertGreater;
+import static junitx.framework.ComparableAssert.assertLesser;
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 
@@ -209,7 +213,7 @@ public class ServletUtilTest {
   }
   
   @Test
-  public void testCopyResponseToServlet() throws Exception {
+  public void testCopyToServletResponseAndOverrideCacheHeadersForPublic() 
throws Exception {
     FakeTimeSource fakeTime = new FakeTimeSource();
     HttpUtil.setTimeSource(fakeTime);
 
@@ -220,7 +224,7 @@ public class ServletUtilTest {
     HttpServletResponse servletResponse = 
EasyMock.createMock(HttpServletResponse.class);
     HttpServletResponseRecorder recorder = new 
HttpServletResponseRecorder(servletResponse);
     
-    ServletUtil.copyResponseToServlet(response, recorder);
+    ServletUtil.copyToServletResponseAndOverrideCacheHeaders(response, 
recorder);
     
     assertEquals(200, recorder.getHttpStatusCode());
     assertEquals("response string", recorder.getResponseAsString());
@@ -228,9 +232,55 @@ public class ServletUtilTest {
     assertEquals("v2", recorder.getHeader("h2"));
     assertEquals("public,max-age=1000", recorder.getHeader("Cache-Control"));
   }
+
+  @Test
+  public void testCopyToServletResponse() throws Exception {
+    HttpResponse response = new HttpResponseBuilder()
+        .setResponseString("response 
string").setHttpStatusCode(200).addHeader("h1", "v1")
+        .addHeader("h2", "v2").addHeader("Cache-Control", 
"private,no-store,max-age=10")
+        .addHeader("Expires", "123").create();
+
+    HttpServletResponse servletResponse = 
EasyMock.createMock(HttpServletResponse.class);
+    HttpServletResponseRecorder recorder = new 
HttpServletResponseRecorder(servletResponse);
+
+    ServletUtil.copyToServletResponse(response, recorder);
+
+    assertEquals(200, recorder.getHttpStatusCode());
+    assertEquals("response string", recorder.getResponseAsString());
+    assertEquals("v1", recorder.getHeader("h1"));
+    assertEquals("v2", recorder.getHeader("h2"));
+    assertEquals("private,no-store,max-age=10", 
recorder.getHeader("Cache-Control"));
+    assertEquals("123", recorder.getHeader("Expires"));
+  }
+
+  @Test
+  public void testCopyToServletResponseAndOverrideCacheHeadersForPrivate()
+      throws Exception {
+    FakeTimeSource fakeTime = new FakeTimeSource();
+    HttpUtil.setTimeSource(fakeTime);
+
+    HttpResponse response = new HttpResponseBuilder()
+        .setResponseString("response 
string").setHttpStatusCode(200).addHeader("h1", "v1")
+        .addHeader("h2", "v2").addHeader("Cache-Control", 
"private,no-store,max-age=10")
+        .addHeader("Expires", "123").create();
+
+    HttpServletResponse servletResponse = 
EasyMock.createMock(HttpServletResponse.class);
+    HttpServletResponseRecorder recorder = new 
HttpServletResponseRecorder(servletResponse);
+    long testStartTime = fakeTime.currentTimeMillis();
+    ServletUtil.copyToServletResponseAndOverrideCacheHeaders(response, 
recorder);
+    assertEquals(200, recorder.getHttpStatusCode());    
+    assertEquals("response string", recorder.getResponseAsString());
+    assertEquals("v1", recorder.getHeader("h1"));
+    assertEquals("v2", recorder.getHeader("h2"));
+    assertEquals("no-cache", recorder.getHeader("Cache-Control"));
+    long expires = 
DateUtil.parseRfc1123Date(recorder.getHeader("Expires")).getTime();
+    assertGreater(testStartTime - 2000L, expires);
+    assertLesser(testStartTime + 2000L, expires);
+  }
   
   @Test
-  public void testCopyResponseToServletNoCache() throws Exception {
+  public void 
testCopyToServletResponseAndOverrideCacheHeadersForStrictNoCache()
+      throws Exception {
     HttpResponse response = new HttpResponseBuilder()
         .setResponseString("response 
string").setHttpStatusCode(200).addHeader("h1", "v1")
         .addHeader("h2", "v2").setStrictNoCache().create();
@@ -240,7 +290,7 @@ public class ServletUtilTest {
     
     FakeTimeSource fakeTime = new FakeTimeSource();
     HttpUtil.setTimeSource(fakeTime);
-    ServletUtil.copyResponseToServlet(response, recorder);
+    ServletUtil.copyToServletResponseAndOverrideCacheHeaders(response, 
recorder);
     
     assertEquals(200, recorder.getHttpStatusCode());
     assertEquals("response string", recorder.getResponseAsString());


Reply via email to