You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by jk...@apache.org on 2014/05/27 17:44:01 UTC

git commit: TAP5-2264: disable gzip compression for asset/module requests when the InternalConstants.SUPPRESS_COMPRESSION request attribute is set

Repository: tapestry-5
Updated Branches:
  refs/heads/master b553edf0c -> 339288142


TAP5-2264: disable gzip compression for asset/module requests when the InternalConstants.SUPPRESS_COMPRESSION request attribute is set


Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/33928814
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/33928814
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/33928814

Branch: refs/heads/master
Commit: 3392881422f1f28bee7db38a158ec8d29fd5254b
Parents: b553edf
Author: Jochen Kemnade <jo...@eddyson.de>
Authored: Tue May 27 17:42:23 2014 +0200
Committer: Jochen Kemnade <jo...@eddyson.de>
Committed: Tue May 27 17:42:23 2014 +0200

----------------------------------------------------------------------
 .../ResponseCompressionAnalyzerImpl.java         |  7 +++++++
 .../ResponseCompressionAnalyzerTest.groovy       | 19 +++++++++++++++++++
 2 files changed, 26 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/33928814/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ResponseCompressionAnalyzerImpl.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ResponseCompressionAnalyzerImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ResponseCompressionAnalyzerImpl.java
index c616318..1fd4072 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ResponseCompressionAnalyzerImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ResponseCompressionAnalyzerImpl.java
@@ -17,6 +17,7 @@ package org.apache.tapestry5.internal.services;
 import javax.servlet.http.HttpServletRequest;
 
 import org.apache.tapestry5.SymbolConstants;
+import org.apache.tapestry5.internal.InternalConstants;
 import org.apache.tapestry5.internal.TapestryInternalUtils;
 import org.apache.tapestry5.ioc.annotations.Symbol;
 import org.apache.tapestry5.services.ResponseCompressionAnalyzer;
@@ -52,6 +53,12 @@ public class ResponseCompressionAnalyzerImpl implements ResponseCompressionAnaly
             return false;
         }
 
+        // TAP5-2264:
+        if (request.getAttribute(InternalConstants.SUPPRESS_COMPRESSION) != null)
+        {
+            return false;
+        }
+
         String supportedEncodings = request.getHeader("Accept-Encoding");
 
         if (supportedEncodings == null)

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/33928814/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/ResponseCompressionAnalyzerTest.groovy
----------------------------------------------------------------------
diff --git a/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/ResponseCompressionAnalyzerTest.groovy b/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/ResponseCompressionAnalyzerTest.groovy
index bdd56d5..589a5db 100644
--- a/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/ResponseCompressionAnalyzerTest.groovy
+++ b/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/ResponseCompressionAnalyzerTest.groovy
@@ -1,5 +1,6 @@
 package org.apache.tapestry5.internal.services
 
+import org.apache.tapestry5.internal.InternalConstants;
 import org.apache.tapestry5.ioc.test.TestBase
 import org.apache.tapestry5.services.ResponseCompressionAnalyzer
 import org.testng.annotations.Test
@@ -23,4 +24,22 @@ class ResponseCompressionAnalyzerTest extends TestBase {
 
     verify()
   }
+
+  @Test
+  //TAP5-2264
+  void "InternalConstants.SUPPRESS_COMPRESSION attribute disables gzip compression"() {
+
+    HttpServletRequest request = newMock(HttpServletRequest)
+
+    expect(request.getProtocol()).andReturn("HTTP/1.1").once()
+    expect(request.getAttribute(InternalConstants.SUPPRESS_COMPRESSION)).andReturn("yes").once()
+
+    replay()
+
+    ResponseCompressionAnalyzer rca = new ResponseCompressionAnalyzerImpl(request, true, null)
+
+    assert rca.isGZipSupported() == false
+
+    verify()
+  }
 }