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 <jochen.kemn...@eddyson.de> Authored: Tue May 27 17:42:23 2014 +0200 Committer: Jochen Kemnade <jochen.kemn...@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() + } }