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/13 15:32:42 UTC
[1/2] commons-compress git commit: COMPRESS-437 add read-only
DEFLATE64 support to 7z
Repository: commons-compress
Updated Branches:
refs/heads/master 5b004bfc1 -> a12adc362
COMPRESS-437 add read-only DEFLATE64 support to 7z
Project: http://git-wip-us.apache.org/repos/asf/commons-compress/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-compress/commit/738c708b
Tree: http://git-wip-us.apache.org/repos/asf/commons-compress/tree/738c708b
Diff: http://git-wip-us.apache.org/repos/asf/commons-compress/diff/738c708b
Branch: refs/heads/master
Commit: 738c708be3dbfd99a6ef5c0b486bf0b55e315406
Parents: 5b004bf
Author: Stefan Bodewig <bo...@apache.org>
Authored: Sat Jan 13 16:31:39 2018 +0100
Committer: Stefan Bodewig <bo...@apache.org>
Committed: Sat Jan 13 16:31:39 2018 +0100
----------------------------------------------------------------------
src/changes/changes.xml | 3 +++
.../commons/compress/archivers/sevenz/Coders.java | 16 ++++++++++++++++
.../compress/archivers/sevenz/SevenZMethod.java | 5 +++++
src/site/xdoc/examples.xml | 2 +-
src/site/xdoc/index.xml | 2 +-
.../compress/archivers/sevenz/SevenZFileTest.java | 5 +++++
src/test/resources/bla.deflate64.7z | Bin 0 -> 503 bytes
7 files changed, 31 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/commons-compress/blob/738c708b/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index cdca5d4..e9b8d7a 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -94,6 +94,9 @@ The <action> type attribute can be add,update,fix,remove.
due-to="Dawid Weiss">
Speed improvement for DEFLATE64 decompression.
</action>
+ <action issue="COMPRESS-437" type="add" date="2018-01-13">
+ Added read-only DEFLATE64 support to 7z archives.
+ </action>
</release>
<release version="1.15" date="2017-10-17"
description="Release 1.15
http://git-wip-us.apache.org/repos/asf/commons-compress/blob/738c708b/src/main/java/org/apache/commons/compress/archivers/sevenz/Coders.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/compress/archivers/sevenz/Coders.java b/src/main/java/org/apache/commons/compress/archivers/sevenz/Coders.java
index 50ae163..065562d 100644
--- a/src/main/java/org/apache/commons/compress/archivers/sevenz/Coders.java
+++ b/src/main/java/org/apache/commons/compress/archivers/sevenz/Coders.java
@@ -31,6 +31,7 @@ import java.util.zip.InflaterInputStream;
import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream;
import org.apache.commons.compress.compressors.bzip2.BZip2CompressorOutputStream;
+import org.apache.commons.compress.compressors.deflate64.Deflate64CompressorInputStream;
import org.apache.commons.compress.utils.FlushShieldFilterOutputStream;
import org.tukaani.xz.ARMOptions;
import org.tukaani.xz.ARMThumbOptions;
@@ -50,6 +51,7 @@ class Coders {
put(SevenZMethod.LZMA, new LZMADecoder());
put(SevenZMethod.LZMA2, new LZMA2Decoder());
put(SevenZMethod.DEFLATE, new DeflateDecoder());
+ put(SevenZMethod.DEFLATE64, new Deflate64Decoder());
put(SevenZMethod.BZIP2, new BZIP2Decoder());
put(SevenZMethod.AES256SHA256, new AES256SHA256Decoder());
put(SevenZMethod.BCJ_X86_FILTER, new BCJDecoder(new X86Options()));
@@ -219,6 +221,20 @@ class Coders {
}
}
+ static class Deflate64Decoder extends CoderBase {
+ Deflate64Decoder() {
+ super(Number.class);
+ }
+
+ @SuppressWarnings("resource") // caller must close the InputStream
+ @Override
+ InputStream decode(final String archiveName, final InputStream in, final long uncompressedLength,
+ final Coder coder, final byte[] password)
+ throws IOException {
+ return new Deflate64CompressorInputStream(in);
+ }
+ }
+
static class BZIP2Decoder extends CoderBase {
BZIP2Decoder() {
super(Number.class);
http://git-wip-us.apache.org/repos/asf/commons-compress/blob/738c708b/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZMethod.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZMethod.java b/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZMethod.java
index 25a2e24..d36c42f 100644
--- a/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZMethod.java
+++ b/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZMethod.java
@@ -42,6 +42,11 @@ public enum SevenZMethod {
LZMA2(new byte[] { (byte)0x21 }),
/** Deflate */
DEFLATE(new byte[] { (byte)0x04, (byte)0x01, (byte)0x08 }),
+ /**
+ * Deflate64
+ * @since 1.16
+ */
+ DEFLATE64(new byte[] { (byte)0x04, (byte)0x01, (byte)0x09 }),
/** BZIP2 */
BZIP2(new byte[] { (byte)0x04, (byte)0x02, (byte)0x02 }),
/**
http://git-wip-us.apache.org/repos/asf/commons-compress/blob/738c708b/src/site/xdoc/examples.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/examples.xml b/src/site/xdoc/examples.xml
index 64a743d..d3fd0d4 100644
--- a/src/site/xdoc/examples.xml
+++ b/src/site/xdoc/examples.xml
@@ -419,7 +419,7 @@ LOOP UNTIL entry.getSize() HAS BEEN READ {
of compression and encryption algorithms used for 7z archives.
For writing only uncompressed entries, LZMA, LZMA2, BZIP2 and
Deflate are supported - reading also supports
- AES-256/SHA-256.</p>
+ AES-256/SHA-256 and DEFLATE64.</p>
<p>Multipart archives are not supported at all.</p>
http://git-wip-us.apache.org/repos/asf/commons-compress/blob/738c708b/src/site/xdoc/index.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/index.xml b/src/site/xdoc/index.xml
index cfadd39..d6bfd57 100644
--- a/src/site/xdoc/index.xml
+++ b/src/site/xdoc/index.xml
@@ -71,7 +71,7 @@
<li>Support for Zstandard compression.</li>
<li>Read-only support for DEFLATE64 compression as
stand-alone CompressorInputStream and as method used in
- ZIP archives.</li>
+ ZIP and 7z archives.</li>
</ul>
</subsection>
http://git-wip-us.apache.org/repos/asf/commons-compress/blob/738c708b/src/test/java/org/apache/commons/compress/archivers/sevenz/SevenZFileTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/compress/archivers/sevenz/SevenZFileTest.java b/src/test/java/org/apache/commons/compress/archivers/sevenz/SevenZFileTest.java
index 4592523..954cd09 100644
--- a/src/test/java/org/apache/commons/compress/archivers/sevenz/SevenZFileTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/sevenz/SevenZFileTest.java
@@ -132,6 +132,11 @@ public class SevenZFileTest extends AbstractTestCase {
}
@Test
+ public void test7zDeflate64Unarchive() throws Exception {
+ test7zUnarchive(getFile("bla.deflate64.7z"), SevenZMethod.DEFLATE64);
+ }
+
+ @Test
public void test7zDecryptUnarchive() throws Exception {
if (isStrongCryptoAvailable()) {
test7zUnarchive(getFile("bla.encrypted.7z"), SevenZMethod.LZMA, // stack LZMA + AES
http://git-wip-us.apache.org/repos/asf/commons-compress/blob/738c708b/src/test/resources/bla.deflate64.7z
----------------------------------------------------------------------
diff --git a/src/test/resources/bla.deflate64.7z b/src/test/resources/bla.deflate64.7z
new file mode 100644
index 0000000..94f60bd
Binary files /dev/null and b/src/test/resources/bla.deflate64.7z differ
[2/2] commons-compress git commit: add known limitations for
stand-alone DEFLATE64
Posted by bo...@apache.org.
add known limitations for stand-alone DEFLATE64
Project: http://git-wip-us.apache.org/repos/asf/commons-compress/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-compress/commit/a12adc36
Tree: http://git-wip-us.apache.org/repos/asf/commons-compress/tree/a12adc36
Diff: http://git-wip-us.apache.org/repos/asf/commons-compress/diff/a12adc36
Branch: refs/heads/master
Commit: a12adc3627ae39baecd132906c05484fee40efe8
Parents: 738c708
Author: Stefan Bodewig <bo...@apache.org>
Authored: Sat Jan 13 16:32:10 2018 +0100
Committer: Stefan Bodewig <bo...@apache.org>
Committed: Sat Jan 13 16:32:10 2018 +0100
----------------------------------------------------------------------
src/site/xdoc/limitations.xml | 7 +++++++
1 file changed, 7 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/commons-compress/blob/a12adc36/src/site/xdoc/limitations.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/limitations.xml b/src/site/xdoc/limitations.xml
index 82fc233..f9033d9 100644
--- a/src/site/xdoc/limitations.xml
+++ b/src/site/xdoc/limitations.xml
@@ -95,6 +95,13 @@
streams using DEFLATE compression.</li>
</ul>
</section>
+ <section name="DEFLATE64">
+ <ul>
+ <li><code>CompressorStreamFactory</code> is not able to auto-detect
+ streams using DEFLATE64 compression.</li>
+ <li>read-only support</li>
+ </ul>
+ </section>
<section name="DUMP">
<ul>
<li>read-only support</li>