You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by kr...@apache.org on 2018/10/30 18:50:49 UTC
knox git commit: KNOX-1535 - Remove custom gzip helper stream - use
commons-compress
Repository: knox
Updated Branches:
refs/heads/master cb6bbb582 -> 33fc9e93b
KNOX-1535 - Remove custom gzip helper stream - use commons-compress
Signed-off-by: Kevin Risden <kr...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/knox/repo
Commit: http://git-wip-us.apache.org/repos/asf/knox/commit/33fc9e93
Tree: http://git-wip-us.apache.org/repos/asf/knox/tree/33fc9e93
Diff: http://git-wip-us.apache.org/repos/asf/knox/diff/33fc9e93
Branch: refs/heads/master
Commit: 33fc9e93b11b68c98961b76bc8c498992cf7128f
Parents: cb6bbb5
Author: Kevin Risden <kr...@apache.org>
Authored: Fri Oct 19 12:52:55 2018 -0400
Committer: Kevin Risden <kr...@apache.org>
Committed: Tue Oct 30 14:50:33 2018 -0400
----------------------------------------------------------------------
gateway-provider-rewrite/pom.xml | 4 +
.../filter/rewrite/impl/UrlRewriteResponse.java | 78 +-------------------
pom.xml | 6 ++
3 files changed, 12 insertions(+), 76 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/knox/blob/33fc9e93/gateway-provider-rewrite/pom.xml
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/pom.xml b/gateway-provider-rewrite/pom.xml
index 200e43a..a48d35f 100644
--- a/gateway-provider-rewrite/pom.xml
+++ b/gateway-provider-rewrite/pom.xml
@@ -56,6 +56,10 @@
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
+ <artifactId>commons-compress</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
<artifactId>commons-digester3</artifactId>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/knox/blob/33fc9e93/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteResponse.java
----------------------------------------------------------------------
diff --git a/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteResponse.java b/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteResponse.java
index 6c1ee3d..93e9f07 100644
--- a/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteResponse.java
+++ b/gateway-provider-rewrite/src/main/java/org/apache/knox/gateway/filter/rewrite/impl/UrlRewriteResponse.java
@@ -17,6 +17,7 @@
*/
package org.apache.knox.gateway.filter.rewrite.impl;
+import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;
import org.apache.knox.gateway.filter.GatewayResponseWrapper;
import org.apache.knox.gateway.filter.ResponseStreamer;
import org.apache.knox.gateway.filter.rewrite.api.UrlRewriteFilterContentDescriptor;
@@ -53,7 +54,6 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
import static org.apache.knox.gateway.filter.rewrite.impl.UrlRewriteUtil.getRewriteFilterConfig;
@@ -180,7 +180,7 @@ public class UrlRewriteResponse extends GatewayResponseWrapper implements Params
final InputStream unFilteredStream;
if(isGzip) {
- unFilteredStream = new GZIPInputStream(new GZIPInputStreamHelperInputStream(inBuffer), STREAM_BUFFER_SIZE);
+ unFilteredStream = new GzipCompressorInputStream(inBuffer, true);
} else {
unFilteredStream = inBuffer;
}
@@ -340,78 +340,4 @@ public class UrlRewriteResponse extends GatewayResponseWrapper implements Params
xForwardedPort = Integer.toString( request.getLocalPort() );
}
}
-
- /**
- * This InputStream wraps another InputStream to override the available() behavior. This is to fulfill
- * GZIPInputStream's expectation of the available() method, for which the behavior actually varies across InputStream
- * implementations; in some cases, it causes GZIPInputStream to terminate prematurely, resulting in partial reads.
- *
- * Guaranteeing that the available() method always returns a value greater than zero forces the GZIPInputStream to
- * continue reading from the underlying InputStream until it actually reaches the end of the stream.
- */
- private static class GZIPInputStreamHelperInputStream extends InputStream {
-
- private InputStream delegate;
-
- GZIPInputStreamHelperInputStream(InputStream delegate) {
- this.delegate = delegate;
- }
-
- /**
- * @return The delegate's available() result if it's > 0, otherwise 1.
- */
- @Override
- public int available() throws IOException {
- int available = delegate.available();
- if (available <= 1) {
- available = 1;
- }
- return available;
- }
-
- @Override
- public int read() throws IOException {
- return delegate.read();
- }
-
- @Override
- public int read(byte[] b) throws IOException {
- return delegate.read(b);
- }
-
- @Override
- public int read(byte[] b, int off, int len) throws IOException {
- return delegate.read(b, off, len);
- }
-
- @Override
- public long skip(long n) throws IOException {
- return delegate.skip(n);
- }
-
- @Override
- public void close() throws IOException {
- delegate.close();
- }
-
- @Override
- public synchronized void mark(int readlimit) {
- if (markSupported()) {
- delegate.mark(readlimit);
- }
- }
-
- @Override
- public synchronized void reset() throws IOException {
- if (markSupported()) {
- delegate.reset();
- }
- }
-
- @Override
- public boolean markSupported() {
- return delegate.markSupported();
- }
- }
-
}
http://git-wip-us.apache.org/repos/asf/knox/blob/33fc9e93/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index a8649b8..017acdd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -143,6 +143,7 @@
<commons-cli.version>1.4</commons-cli.version>
<commons-codec.version>1.11</commons-codec.version>
<commons-collections.version>3.2.2</commons-collections.version>
+ <commons-compress.version>1.18</commons-compress.version>
<commons-configuration.version>1.10</commons-configuration.version>
<commons-digester3.version>3.2</commons-digester3.version>
<commons-io.version>2.6</commons-io.version>
@@ -1230,6 +1231,11 @@
<version>${commons-collections.version}</version>
</dependency>
<dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-compress</artifactId>
+ <version>${commons-compress.version}</version>
+ </dependency>
+ <dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>${commons-configuration.version}</version>