amyroh      2002/07/16 10:15:18

  Modified:    webapps/examples/WEB-INF/classes/compressionFilters
                        CompressionFilter.java
                        CompressionResponseStream.java
  Log:
  Add include action to be extended with parameter gzip:
          <jsp:include page="/pageToInclude.jsp" flush="true">
            <jsp:param name="gzip" value="false"/>
          </jsp:include>
  The result was previously compressed twice in the calling page when you
  include.
  
  Patch submitted by "Dimitri Valdin" <[EMAIL PROTECTED]>.
  Thanks, Dimitri.  :-)
  
  Revision  Changes    Path
  1.7       +16 -5     
jakarta-tomcat-4.0/webapps/examples/WEB-INF/classes/compressionFilters/CompressionFilter.java
  
  Index: CompressionFilter.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/webapps/examples/WEB-INF/classes/compressionFilters/CompressionFilter.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- CompressionFilter.java    18 Jun 2002 19:53:25 -0000      1.6
  +++ CompressionFilter.java    16 Jul 2002 17:15:18 -0000      1.7
  @@ -129,7 +129,7 @@
               if (str!=null) {
                   compressionThreshold = Integer.parseInt(str);
                   if (compressionThreshold != 0 && compressionThreshold < 
minThreshold) {
  -                    if (debug > 0) {
  +                       if (debug > 0) {
                           System.out.println("compressionThreshold should be either 0 
- no compression or >= " + minThreshold);
                           System.out.println("compressionThreshold set to " + 
minThreshold);
                       }
  @@ -191,6 +191,17 @@
               if (debug > 1) {
                   System.out.println("requestURI = " + 
((HttpServletRequest)request).getRequestURI());
               }
  +
  +            // Are we allowed to compress ?
  +            String s = (String) ((HttpServletRequest)request).getParameter("gzip");
  +            if ("false".equals(s)) {
  +                if (debug > 0) {
  +                    System.out.println("got parameter gzip=false --> don't 
compress, just chain filter");
  +                }
  +                chain.doFilter(request, response);
  +                return;
  +            }
  +
               Enumeration e =
                   ((HttpServletRequest)request).getHeaders("Accept-Encoding");
               while (e.hasMoreElements()) {
  
  
  
  1.6       +21 -5     
jakarta-tomcat-4.0/webapps/examples/WEB-INF/classes/compressionFilters/CompressionResponseStream.java
  
  Index: CompressionResponseStream.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/webapps/examples/WEB-INF/classes/compressionFilters/CompressionResponseStream.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- CompressionResponseStream.java    18 Jun 2002 19:53:25 -0000      1.5
  +++ CompressionResponseStream.java    16 Jul 2002 17:15:18 -0000      1.6
  @@ -189,8 +189,14 @@
           if (gzipstream != null) {
               flushToGZip();
               gzipstream.close();
  +            gzipstream = null;
           } else {
               if (bufferCount > 0) {
  +                if (debug > 2) {
  +                    System.out.print("output.write(");
  +                    System.out.write(buffer, 0, bufferCount);
  +                    System.out.println(")");
  +                }
                   output.write(buffer, 0, bufferCount);
                   bufferCount = 0;
               }
  @@ -291,7 +297,9 @@
               System.out.println("write, bufferCount = " + bufferCount + " len = " + 
len + " off = " + off);
           }
           if (debug > 2) {
  +            System.out.print("write(");
               System.out.write(b, off, len);
  +            System.out.println(")");
           }
   
           if (closed)
  @@ -324,9 +332,17 @@
       public void writeToGZip(byte b[], int off, int len) throws IOException {
   
           if (debug > 1) {
  -            System.out.println("***** writeToGZip, len = " + len);
  +            System.out.println("writeToGZip, len = " + len);
  +        }
  +        if (debug > 2) {
  +            System.out.print("writeToGZip(");
  +            System.out.write(b, off, len);
  +            System.out.println(")");
           }
           if (gzipstream == null) {
  +            if (debug > 1) {
  +                System.out.println("new GZIPOutputStream");
  +            }
               gzipstream = new GZIPOutputStream(output);
               response.addHeader("Content-Encoding", "gzip");
           }
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to