You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by bo...@apache.org on 2018/01/05 06:01:33 UTC
commons-compress git commit: Add DEFLATE64 support to
CompressorStreamfactory.
Repository: commons-compress
Updated Branches:
refs/heads/COMPRESS-380 ccc3067f5 -> 53ec58298
Add DEFLATE64 support to CompressorStreamfactory.
Project: http://git-wip-us.apache.org/repos/asf/commons-compress/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-compress/commit/53ec5829
Tree: http://git-wip-us.apache.org/repos/asf/commons-compress/tree/53ec5829
Diff: http://git-wip-us.apache.org/repos/asf/commons-compress/diff/53ec5829
Branch: refs/heads/COMPRESS-380
Commit: 53ec5829855e8a80b2857b7cfef8bce3e63058a7
Parents: ccc3067
Author: Stefan Bodewig <bo...@apache.org>
Authored: Fri Jan 5 07:00:54 2018 +0100
Committer: Stefan Bodewig <bo...@apache.org>
Committed: Fri Jan 5 07:00:54 2018 +0100
----------------------------------------------------------------------
.../compressors/CompressorStreamFactory.java | 24 ++++++++++++++++++--
.../Deflate64CompressorInputStreamTest.java | 19 ++++++++++++++++
2 files changed, 41 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/commons-compress/blob/53ec5829/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java b/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java
index e6a4400..7118744 100644
--- a/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java
+++ b/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java
@@ -37,6 +37,7 @@ import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream;
import org.apache.commons.compress.compressors.bzip2.BZip2CompressorOutputStream;
import org.apache.commons.compress.compressors.deflate.DeflateCompressorInputStream;
import org.apache.commons.compress.compressors.deflate.DeflateCompressorOutputStream;
+import org.apache.commons.compress.compressors.deflate64.Deflate64CompressorInputStream;
import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;
import org.apache.commons.compress.compressors.gzip.GzipCompressorOutputStream;
import org.apache.commons.compress.compressors.lz4.BlockLZ4CompressorInputStream;
@@ -178,6 +179,13 @@ public class CompressorStreamFactory implements CompressorStreamProvider {
public static final String DEFLATE = "deflate";
/**
+ * Constant (value {@value}) used to identify the Deflate64 compress method.
+ *
+ * @since 1.16
+ */
+ public static final String DEFLATE64 = "deflate64";
+
+ /**
* Constant (value {@value}) used to identify the block LZ4
* compression method.
*
@@ -307,6 +315,13 @@ public class CompressorStreamFactory implements CompressorStreamProvider {
return DEFLATE;
}
+ /**
+ * @since 1.16
+ */
+ public static String getDeflate64() {
+ return DEFLATE64;
+ }
+
public static String getGzip() {
return GZIP;
}
@@ -534,7 +549,8 @@ public class CompressorStreamFactory implements CompressorStreamProvider {
* of the compressor, i.e. {@value #GZIP}, {@value #BZIP2},
* {@value #XZ}, {@value #LZMA}, {@value #PACK200},
* {@value #SNAPPY_RAW}, {@value #SNAPPY_FRAMED}, {@value #Z},
- * {@value #LZ4_BLOCK}, {@value #LZ4_FRAMED}, {@value #ZSTANDARD}
+ * {@value #LZ4_BLOCK}, {@value #LZ4_FRAMED}, {@value #ZSTANDARD},
+ * {@value #DEFLATE64}
* or {@value #DEFLATE}
* @param in
* the input stream
@@ -616,6 +632,10 @@ public class CompressorStreamFactory implements CompressorStreamProvider {
return new DeflateCompressorInputStream(in);
}
+ if (DEFLATE64.equalsIgnoreCase(name)) {
+ return new Deflate64CompressorInputStream(in);
+ }
+
if (LZ4_BLOCK.equalsIgnoreCase(name)) {
return new BlockLZ4CompressorInputStream(in);
}
@@ -738,7 +758,7 @@ public class CompressorStreamFactory implements CompressorStreamProvider {
@Override
public Set<String> getInputStreamCompressorNames() {
return Sets.newHashSet(GZIP, BROTLI, BZIP2, XZ, LZMA, PACK200, DEFLATE, SNAPPY_RAW, SNAPPY_FRAMED, Z, LZ4_BLOCK,
- LZ4_FRAMED, ZSTANDARD);
+ LZ4_FRAMED, ZSTANDARD, DEFLATE64);
}
@Override
http://git-wip-us.apache.org/repos/asf/commons-compress/blob/53ec5829/src/test/java/org/apache/commons/compress/compressors/deflate64/Deflate64CompressorInputStreamTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/compress/compressors/deflate64/Deflate64CompressorInputStreamTest.java b/src/test/java/org/apache/commons/compress/compressors/deflate64/Deflate64CompressorInputStreamTest.java
index 1e32b42..0232b06 100644
--- a/src/test/java/org/apache/commons/compress/compressors/deflate64/Deflate64CompressorInputStreamTest.java
+++ b/src/test/java/org/apache/commons/compress/compressors/deflate64/Deflate64CompressorInputStreamTest.java
@@ -17,6 +17,7 @@
*/
package org.apache.commons.compress.compressors.deflate64;
+import org.apache.commons.compress.compressors.CompressorStreamFactory;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -25,6 +26,7 @@ import org.mockito.runners.MockitoJUnitRunner;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
+import java.io.InputStream;
import java.io.InputStreamReader;
import static org.junit.Assert.assertEquals;
@@ -101,6 +103,23 @@ public class Deflate64CompressorInputStreamTest {
}
@Test
+ public void uncompressedBlockViaFactory() throws Exception
+ {
+ byte[] data = {
+ 1, 11, 0, -12, -1,
+ 'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd'
+ };
+
+ try (InputStream input = new CompressorStreamFactory()
+ .createCompressorInputStream(CompressorStreamFactory.DEFLATE64, new ByteArrayInputStream(data));
+ BufferedReader br = new BufferedReader(new InputStreamReader(input)))
+ {
+ assertEquals("Hello World", br.readLine());
+ assertEquals(null, br.readLine());
+ }
+ }
+
+ @Test
public void uncompressedBlockAvailable() throws Exception
{
byte[] data = {