Repository: commons-compress
Updated Branches:
  refs/heads/master 037209cb3 -> ccf55ddf2


COMPRESS-392 record Brotli support


Project: http://git-wip-us.apache.org/repos/asf/commons-compress/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-compress/commit/ac73d23c
Tree: http://git-wip-us.apache.org/repos/asf/commons-compress/tree/ac73d23c
Diff: http://git-wip-us.apache.org/repos/asf/commons-compress/diff/ac73d23c

Branch: refs/heads/master
Commit: ac73d23cd70908a48b647576c719875f58fc8e88
Parents: 037209c
Author: Stefan Bodewig <bode...@apache.org>
Authored: Thu May 4 08:40:29 2017 +0200
Committer: Stefan Bodewig <bode...@apache.org>
Committed: Thu May 4 08:44:06 2017 +0200

----------------------------------------------------------------------
 pom.xml                                         |  2 +-
 .../brotli/BrotliCompressorInputStream.java     |  2 +-
 .../compress/compressors/brotli/package.html    | 26 ++++++++++++++++++++
 src/site/xdoc/examples.xml                      | 22 ++++++++++++++++-
 src/site/xdoc/index.xml                         | 13 +++++++---
 src/site/xdoc/limitations.xml                   | 10 ++++++++
 6 files changed, 68 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-compress/blob/ac73d23c/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 4cc629a..f707973 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,7 +32,7 @@
   <description>
 Apache Commons Compress software defines an API for working with
 compression and archive formats.  These include: bzip2, gzip, pack200,
-lzma, xz, Snappy, traditional Unix Compress, DEFLATE and ar, cpio,
+lzma, xz, Snappy, traditional Unix Compress, DEFLATE, Brotli and ar, cpio,
 jar, tar, zip, dump, 7z, arj.
   </description>
 

http://git-wip-us.apache.org/repos/asf/commons-compress/blob/ac73d23c/src/main/java/org/apache/commons/compress/compressors/brotli/BrotliCompressorInputStream.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/commons/compress/compressors/brotli/BrotliCompressorInputStream.java
 
b/src/main/java/org/apache/commons/compress/compressors/brotli/BrotliCompressorInputStream.java
index 1654b86..3f63cc8 100644
--- 
a/src/main/java/org/apache/commons/compress/compressors/brotli/BrotliCompressorInputStream.java
+++ 
b/src/main/java/org/apache/commons/compress/compressors/brotli/BrotliCompressorInputStream.java
@@ -24,7 +24,7 @@ import java.io.InputStream;
 import org.apache.commons.compress.compressors.CompressorInputStream;
 
 /**
- * {@link FilterInputStream} implementation to decode Brotli encoded stream.
+ * {@link CompressorInputStream} implementation to decode Brotli encoded 
stream.
  * Library relies on <a href="https://github.com/google/brotli";>Google 
brotli</a>
  * 
  * @since 1.14

http://git-wip-us.apache.org/repos/asf/commons-compress/blob/ac73d23c/src/main/java/org/apache/commons/compress/compressors/brotli/package.html
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/commons/compress/compressors/brotli/package.html 
b/src/main/java/org/apache/commons/compress/compressors/brotli/package.html
new file mode 100644
index 0000000..7654cf6
--- /dev/null
+++ b/src/main/java/org/apache/commons/compress/compressors/brotli/package.html
@@ -0,0 +1,26 @@
+<html>
+<!--
+
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+-->
+  <body>
+    <p>Provides stream class for decompressing streams using the
+      Brotli algorithm based
+      on <a href="https://github.com/google/brotli";>Google's Brotli
+      decoder</a>.</p>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/commons-compress/blob/ac73d23c/src/site/xdoc/examples.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/examples.xml b/src/site/xdoc/examples.xml
index 16eb2a2..7a9ae0d 100644
--- a/src/site/xdoc/examples.xml
+++ b/src/site/xdoc/examples.xml
@@ -82,7 +82,7 @@ CompressorInputStream input = new CompressorStreamFactory()
     .createCompressorInputStream(originalInput);
 ]]></source>
 
-        <p>Note that there is no way to detect the lzma format so only
+        <p>Note that there is no way to detect the lzma or Brotli formats so 
only
         the two-arg version of
         <code>createCompressorInputStream</code> can be used.  Prior
         to Compress 1.9 the .Z format hasn't been auto-detected
@@ -479,6 +479,26 @@ LOOP UNTIL entry.getSize() HAS BEEN READ {
 ]]></source>
       </subsection>
 
+      <subsection name="Brotli">
+
+        <p>Uncompressing a given Brotli compressed file (you would
+          certainly add exception handling and make sure all streams
+          get closed properly):</p>
+<source><![CDATA[
+InputStream fin = Files.newInputStream(Paths.get("archive.tar.br"));
+BufferedInputStream in = new BufferedInputStream(fin);
+OutputStream out = Files.newOutputStream(Paths.get("archive.tar"));
+BrotliCompressorInputStream brIn = new BrotliCompressorInputStream(in);
+final byte[] buffer = new byte[buffersize];
+int n = 0;
+while (-1 != (n = brIn.read(buffer))) {
+    out.write(buffer, 0, n);
+}
+out.close();
+brIn.close();
+]]></source>
+      </subsection>
+
       <subsection name="bzip2">
 
         <p>Note that <code>BZipCompressorOutputStream</code> keeps

http://git-wip-us.apache.org/repos/asf/commons-compress/blob/ac73d23c/src/site/xdoc/index.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/index.xml b/src/site/xdoc/index.xml
index f4f77f1..6924161 100644
--- a/src/site/xdoc/index.xml
+++ b/src/site/xdoc/index.xml
@@ -27,7 +27,7 @@
             <p>
                 The Apache Commons Compress library defines an API for
                 working with ar, cpio, Unix dump, tar, zip, gzip, XZ, Pack200,
-                bzip2, 7z, arj, lzma, snappy, DEFLATE, lz4 and Z files.
+                bzip2, 7z, arj, lzma, snappy, DEFLATE, lz4, Brotli and Z files.
             </p>
             <p>
                 The code in this component has many origins:
@@ -61,7 +61,10 @@
             <ul>
               <li>Added support for writing the Snappy format</li>
               <li>Added support for the LZ4 compression format</li>
-              <li>Added support for Brotli decompression</li>
+              <li>Added read-only support for Brotli decompression by
+              using the <a
+              href="https://github.com/google/brotli";>Google Brotli
+              decoder</a>.</li>
             </ul>
           </subsection>
           <subsection name="What's new in 1.13?">
@@ -100,8 +103,10 @@
             by the <code>java.util.jar</code> package of the Java
             class library.  XZ and lzma support is provided by the public
             domain <a href="http://tukaani.org/xz/java.html";>XZ for
-            Java</a> library.  As of Commons Compress 1.14 support for
-            the Z format is read-only.</p>
+            Java</a> library.  Brotli support is provided by the MIT
+            licensed <a href="https://github.com/google/brotli";>Google Brotli 
decoder</a>.
+            As of Commons Compress 1.14 support for
+            the Z and Brotli formats is read-only.</p>
 
           <p>The ar, arj, cpio, dump, tar, 7z and zip formats are supported as
             archivers where the <a href="zip.html">zip</a>

http://git-wip-us.apache.org/repos/asf/commons-compress/blob/ac73d23c/src/site/xdoc/limitations.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/limitations.xml b/src/site/xdoc/limitations.xml
index fd0c07e..c8430e7 100644
--- a/src/site/xdoc/limitations.xml
+++ b/src/site/xdoc/limitations.xml
@@ -71,6 +71,16 @@
          archives</li>
        </ul>
      </section>
+     <section name="Brotli">
+       <ul>
+         <li>the format requires the otherwise optional <a
+         href="https://github.com/google/brotli";>Google Brotli dec</a>
+         library.</li>
+         <li>read-only support</li>
+         <li><code>CompressorStreamFactory</code> is not able to auto-detect
+         streams using Brotli compression.</li>
+       </ul>
+     </section>
      <section name="BZIP2">
        <p>Versions of Compress prior to 1.4.1 are vulnerable to a
        possible denial of service attack, see the <a

Reply via email to