You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by lr...@apache.org on 2008/07/30 03:02:32 UTC

svn commit: r680893 - /incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ConcatProxyServlet.java

Author: lryan
Date: Tue Jul 29 18:02:31 2008
New Revision: 680893

URL: http://svn.apache.org/viewvc?rev=680893&view=rev
Log:
Suppress writing all headers in the Concat servlet and explicitly set the expiration and content disposition instead of delegating to ProxyHandler. The prevents writing headers for each concatenated part which can upset some servlet engines once the response headers are committed.

Modified:
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ConcatProxyServlet.java

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ConcatProxyServlet.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ConcatProxyServlet.java?rev=680893&r1=680892&r2=680893&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ConcatProxyServlet.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ConcatProxyServlet.java Tue Jul 29 18:02:31 2008
@@ -28,6 +28,7 @@
 import java.util.logging.Logger;
 
 import javax.servlet.ServletOutputStream;
+import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequestWrapper;
 import javax.servlet.http.HttpServletResponse;
@@ -57,6 +58,15 @@
       response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
       return;
     }
+    if (request.getParameter(ProxyBase.REWRITE_MIME_TYPE_PARAM) != null) {
+      response.setHeader("Content-Type",
+          request.getParameter(ProxyBase.REWRITE_MIME_TYPE_PARAM));
+    }
+    if (request.getParameter(ProxyBase.REFRESH_PARAM) != null) {
+      HttpUtil.setCachingHeaders(response,
+          Integer.valueOf(request.getParameter(ProxyBase.REFRESH_PARAM)));
+    }
+    response.setHeader("Content-Disposition", "attachment;filename=p.txt");
     ResponseWrapper wrapper = new ResponseWrapper(response);
     for (int i = 1; i < Integer.MAX_VALUE; i++) {
       String url = request.getParameter(Integer.toString(i));
@@ -94,7 +104,9 @@
     resp.sendError(HttpServletResponse.SC_BAD_REQUEST, err.toString());
   }
 
-  /** Simple request wrapper to make repeated calls to ProxyHandler */
+  /**
+   * Simple request wrapper to make repeated calls to ProxyHandler
+   */
   private static class RequestWrapper extends HttpServletRequestWrapper {
 
     private final String url;
@@ -114,8 +126,8 @@
   }
 
   /**
-   * Wrap the response to prevent writing through of the status code and
-   * to hold a reference to the stream across multiple proxied parts
+   * Wrap the response to prevent writing through of the status code and to hold a reference to the
+   * stream across multiple proxied parts
    */
   private static class ResponseWrapper extends HttpServletResponseWrapper {
 
@@ -133,6 +145,28 @@
       return outputStream;
     }
 
+    public void addCookie(Cookie cookie) {
+    }
+
+    // Suppress headers
+    public void setDateHeader(String s, long l) {
+    }
+
+    public void addDateHeader(String s, long l) {
+    }
+
+    public void setHeader(String s, String s1) {
+    }
+
+    public void addHeader(String s, String s1) {
+    }
+
+    public void setIntHeader(String s, int i) {
+    }
+
+    public void addIntHeader(String s, int i) {
+    }
+
     public void setStatus(int i) {
     }
   }