Skip to content

Commit

Permalink
prepare RC1 of Commons Compress 1.19
Browse files Browse the repository at this point in the history
  • Loading branch information
bodewig committed Aug 24, 2019
1 parent 0cc9944 commit 516f76a
Show file tree
Hide file tree
Showing 9 changed files with 155 additions and 43 deletions.
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Expand Up @@ -25,7 +25,7 @@
| commons-build-plugin/trunk/src/main/resources/commons-xdoc-templates |
+======================================================================+
| |
| 1) Re-generate using: mvn commons:contributing-md |
| 1) Re-generate using: mvn commons-build:contributing-md |
| |
| 2) Set the following properties in the component's pom: |
| - commons.jira.id (required, alphabetic, upper case) |
Expand Down
8 changes: 4 additions & 4 deletions README.md
Expand Up @@ -25,7 +25,7 @@
| commons-build-plugin/trunk/src/main/resources/commons-xdoc-templates |
+======================================================================+
| |
| 1) Re-generate using: mvn commons:readme-md |
| 1) Re-generate using: mvn commons-build:readme-md |
| |
| 2) Set the following properties in the component's pom: |
| - commons.componentid (required, alphabetic, lower case) |
Expand All @@ -46,7 +46,7 @@ Apache Commons Compress
[![Build Status](https://travis-ci.org/apache/commons-compress.svg)](https://travis-ci.org/apache/commons-compress)
[![Coverage Status](https://coveralls.io/repos/apache/commons-compress/badge.svg)](https://coveralls.io/r/apache/commons-compress)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.apache.commons/commons-compress/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.apache.commons/commons-compress/)
[![License](https://img.shields.io/:license-apache-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0.html)
[![Javadocs](https://javadoc.io/badge/org.apache.commons/commons-compress/1.19.svg)](https://javadoc.io/doc/org.apache.commons/commons-compress/1.19)

Apache Commons Compress software defines an API for working with
compression and archive formats. These include: bzip2, gzip, pack200,
Expand All @@ -57,7 +57,7 @@ Documentation
-------------

More information can be found on the [Apache Commons Compress homepage](https://commons.apache.org/proper/commons-compress).
The [Javadoc](https://commons.apache.org/proper/commons-compress/javadocs/api-release) can be browsed.
The [Javadoc](https://commons.apache.org/proper/commons-compress/apidocs) can be browsed.
Questions related to the usage of Apache Commons Compress should be posted to the [user mailing list][ml].

Where can I get the latest release?
Expand All @@ -70,7 +70,7 @@ Alternatively you can pull it from the central Maven repositories:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.18</version>
<version>1.19</version>
</dependency>
```

Expand Down
106 changes: 106 additions & 0 deletions RELEASE-NOTES.txt
Expand Up @@ -5,6 +5,112 @@ compression and archive formats. These include: bzip2, gzip, pack200,
lzma, xz, Snappy, traditional Unix Compress, DEFLATE, DEFLATE64, LZ4,
Brotli, Zstandard and ar, cpio, jar, tar, zip, dump, 7z, arj.

Release 1.19
------------

ZipArchiveInputStream and ZipFile will no longer throw an exception if
an extra field generally understood by Commons Compress is malformed
but rather turn them into UnrecognizedExtraField instances. You can
influence the way extra fields are parsed in more detail by using the
new getExtraFields(ExtraFieldParsingBehavior) method of
ZipArchiveEntry now.

Some of the ZIP extra fields related to strong encryption will now
throw ZipExceptions rather than ArrayIndexOutOfBoundsExceptions in
certain cases when used directly. There is no practical difference
when they are read via ZipArchiveInputStream or ZipFile.

New features:
o It is now possible to skip parsing of local file headers when
using ZipFile which may speed up reading the archive at the
cost of potentially missing important information. See the
javadocs of the ZipFile class for details.
Issue: COMPRESS-466.
o TarArchiveInputStream has a new constructor-arg lenient that
can be used to accept certain broken archives.
Issue: COMPRESS-469.
o ArjArchiveEntry and SevenZArchiveEntry now implement hashCode
and equals.
Issue: COMPRESS-475.
o Added a MultiReadOnlySeekableByteChannel class
that can be used to concatenate the parts of a multi volume 7z
archive so that SevenZFile can read them.
Issue: COMPRESS-231.
Thanks to Tim Underwood.

Fixed Bugs:
o ZipArchiveInputStream could forget the compression level has
changed under certain circumstances.
o Fixed another potential resource leak in
ParallelScatterZipCreator#writeTo.
Issue: COMPRESS-470.
o ArArchiveInputStream could think it had hit EOF prematurely.
Github Pull Request #74.
Thanks to Alex Bertram.
o Throw IOException rather than RuntimeExceptions for certain
malformed LZ4 or Snappy inputs.
Issue: COMPRESS-490.
o ZipArchiveInputStream failed to read stored entries with a
data descriptor if the data descriptor didn't use the
signature invented by InfoZIP.
Issue: COMPRESS-482.

Changes:
o SevenZFile now provides a way to cap memory consumption for
LZMA(2) compressed content.
Github Pull Request #76.
Issue: COMPRESS-481.
Thanks to Robin Schimpf.
o The ARJ package has been updated to contain constants for more
recent specifications.
Issue: COMPRESS-464.
Thanks to Rostislav Krasny.
o Update optional library zstd-jni from 1.3.3-3 to 1.4.0-1.
Issue: COMPRESS-484.
o ParallelScatterZipCreator now writes the entries to the
gathered output in the same order they have been added.
Github Pull Requests #78 and #79.
Issue: COMPRESS-485.
Thanks to Hervé Boutemy, Tibor Digana.
o The Expander and Archive example classes can leak resources
they have wrapped around passed in streams or channels. The
methods consuming streams and channels have been adapted to
give the calling code a chance to deal with those wrapper
resources.
Issue: COMPRESS-486.
o ZipArchiveInputStream and ZipFile no longer assume Commons
Compress would understand extra fields better than the writer
of the archive and silently turn extra fields that Commons
Compress should understand into UnrecognizedExtraFields if
parsing said fields fails.
It is now possible to take more control over the extra field
parsing process with a new overload of
ZipArchiveEntry#getExtraFields.
Issue: COMPRESS-479.
o ZipArchiveInputStream will now throw an exception if reading a
stored entry with a data descriptor and the data descriptor
doesn't match what it has actually read.

The most common case for a situation like this is a stored ZIP
archive inside of the archive ZipArchiveInputStream currently
reads. In such a case ZipArchiveInputStream would happily
extract the contained archive and stop once the central
directory of the inner archive has been hit. This is a case
where ZipArchiveInputStream simply can not be used and only
ZipFile is able to read the archive.

The only other explanation is a broken archive. So the
exception prevents users from thinking they had successfully
read the contents of the archive.
Issue: COMPRESS-483.
o The 7zip tools provide a default name for archive entries
without name; SevenZFile returns a null name for such
entries. A new method getDefaultName has been added to derive
the same name the 7zip tools would use and an option has been
added that sets SevenZArchiveEntry's name to the default name
if it is not contained inside the archive.
Issue: COMPRESS-478.

Release 1.18
------------

Expand Down
4 changes: 2 additions & 2 deletions pom.xml
Expand Up @@ -24,7 +24,7 @@
</parent>

<artifactId>commons-compress</artifactId>
<version>1.19-SNAPSHOT</version>
<version>1.19</version>
<name>Apache Commons Compress</name>
<url>https://commons.apache.org/proper/commons-compress/</url>
<!-- The description is not indented to make it look better in the release notes -->
Expand All @@ -49,7 +49,7 @@ Brotli, Zstandard and ar, cpio, jar, tar, zip, dump, 7z, arj.
<!-- configuration bits for cutting a release candidate -->
<commons.release.version>${project.version}</commons.release.version>
<commons.rc.version>RC1</commons.rc.version>
<commons.bc.version>1.18</commons.bc.version>
<commons.bc.version>1.19</commons.bc.version>
<powermock.version>1.7.4</powermock.version>
<commons.pmd-plugin.version>3.12.0</commons.pmd-plugin.version>

Expand Down
1 change: 1 addition & 0 deletions src/site/site.xml
Expand Up @@ -38,6 +38,7 @@
</menu>
<menu name="API Docs">
<item name="Latest release" href="javadocs/api-release/index.html"/>
<item name="1.19" href="javadocs/api-1.19/index.html"/>
<item name="1.18" href="javadocs/api-1.18/index.html"/>
<item name="1.17" href="javadocs/api-1.17/index.html"/>
<item name="1.16.1" href="javadocs/api-1.16.1/index.html"/>
Expand Down
44 changes: 23 additions & 21 deletions src/site/xdoc/download_compress.xml
Expand Up @@ -26,22 +26,24 @@ limitations under the License.
| commons-build-plugin/trunk/src/main/resources/commons-xdoc-templates |
+======================================================================+
| |
| 1) Re-generate using: mvn commons:download-page |
| 1) Re-generate using: mvn commons-build:download-page |
| |
| 2) Set the following properties in the component's pom: |
| - commons.componentid (required, alphabetic, lower case) |
| - commons.componentid (required, alphabetic, lower case) |
| - commons.release.version (required) |
| - commons.release.name (required) |
| - commons.binary.suffix (optional) |
| (defaults to "-bin", set to "" for pre-maven2 releases) |
| - commons.release.desc (optional) |
| - commons.release.subdir (optional) |
| - commons.release.hash (optional, lowercase, default sha512) |
| |
| - commons.release.2/3.version (conditional) |
| - commons.release.2/3.name (conditional) |
| - commons.release.2/3.binary.suffix (optional) |
| - commons.release.2/3.desc (optional) |
| - commons.release.2/3.subdir (optional) |
| - commons.release.[234].version (conditional) |
| - commons.release.[234].name (conditional) |
| - commons.release.[234].binary.suffix (optional) |
| - commons.release.[234].desc (optional) |
| - commons.release.[234].subdir (optional) |
| - commons.release.[234].hash (optional, lowercase, [sha512])|
| |
| 3) Example Properties |
| (commons.release.name inherited by parent: |
Expand Down Expand Up @@ -102,7 +104,7 @@ limitations under the License.
It is essential that you
<a href="https://www.apache.org/info/verification.html">verify the integrity</a>
of downloaded files, preferably using the <code>PGP</code> signature (<code>*.asc</code> files);
failing that using the <code>SHA256</code> hash (<code>*.sha256</code> checksum files).
failing that using the <code>SHA512</code> hash (<code>*.sha512</code> checksum files).
</p>
<p>
The <a href="https://www.apache.org/dist/commons/KEYS">KEYS</a>
Expand All @@ -111,32 +113,32 @@ limitations under the License.
</p>
</subsection>
</section>
<section name="Apache Commons Compress 1.18 ">
<section name="Apache Commons Compress 1.19 ">
<subsection name="Binaries">
<table>
<tr>
<td><a href="[preferred]/commons/compress/binaries/commons-compress-1.18-bin.tar.gz">commons-compress-1.18-bin.tar.gz</a></td>
<td><a href="https://www.apache.org/dist/commons/compress/binaries/commons-compress-1.18-bin.tar.gz.sha256">sha256</a></td>
<td><a href="https://www.apache.org/dist/commons/compress/binaries/commons-compress-1.18-bin.tar.gz.asc">pgp</a></td>
<td><a href="[preferred]/commons/compress/binaries/commons-compress-1.19-bin.tar.gz">commons-compress-1.19-bin.tar.gz</a></td>
<td><a href="https://www.apache.org/dist/commons/compress/binaries/commons-compress-1.19-bin.tar.gz.sha512">sha512</a></td>
<td><a href="https://www.apache.org/dist/commons/compress/binaries/commons-compress-1.19-bin.tar.gz.asc">pgp</a></td>
</tr>
<tr>
<td><a href="[preferred]/commons/compress/binaries/commons-compress-1.18-bin.zip">commons-compress-1.18-bin.zip</a></td>
<td><a href="https://www.apache.org/dist/commons/compress/binaries/commons-compress-1.18-bin.zip.sha256">sha256</a></td>
<td><a href="https://www.apache.org/dist/commons/compress/binaries/commons-compress-1.18-bin.zip.asc">pgp</a></td>
<td><a href="[preferred]/commons/compress/binaries/commons-compress-1.19-bin.zip">commons-compress-1.19-bin.zip</a></td>
<td><a href="https://www.apache.org/dist/commons/compress/binaries/commons-compress-1.19-bin.zip.sha512">sha512</a></td>
<td><a href="https://www.apache.org/dist/commons/compress/binaries/commons-compress-1.19-bin.zip.asc">pgp</a></td>
</tr>
</table>
</subsection>
<subsection name="Source">
<table>
<tr>
<td><a href="[preferred]/commons/compress/source/commons-compress-1.18-src.tar.gz">commons-compress-1.18-src.tar.gz</a></td>
<td><a href="https://www.apache.org/dist/commons/compress/source/commons-compress-1.18-src.tar.gz.sha256">sha256</a></td>
<td><a href="https://www.apache.org/dist/commons/compress/source/commons-compress-1.18-src.tar.gz.asc">pgp</a></td>
<td><a href="[preferred]/commons/compress/source/commons-compress-1.19-src.tar.gz">commons-compress-1.19-src.tar.gz</a></td>
<td><a href="https://www.apache.org/dist/commons/compress/source/commons-compress-1.19-src.tar.gz.sha512">sha512</a></td>
<td><a href="https://www.apache.org/dist/commons/compress/source/commons-compress-1.19-src.tar.gz.asc">pgp</a></td>
</tr>
<tr>
<td><a href="[preferred]/commons/compress/source/commons-compress-1.18-src.zip">commons-compress-1.18-src.zip</a></td>
<td><a href="https://www.apache.org/dist/commons/compress/source/commons-compress-1.18-src.zip.sha256">sha256</a></td>
<td><a href="https://www.apache.org/dist/commons/compress/source/commons-compress-1.18-src.zip.asc">pgp</a></td>
<td><a href="[preferred]/commons/compress/source/commons-compress-1.19-src.zip">commons-compress-1.19-src.zip</a></td>
<td><a href="https://www.apache.org/dist/commons/compress/source/commons-compress-1.19-src.zip.sha512">sha512</a></td>
<td><a href="https://www.apache.org/dist/commons/compress/source/commons-compress-1.19-src.zip.asc">pgp</a></td>
</tr>
</table>
</subsection>
Expand Down
23 changes: 13 additions & 10 deletions src/site/xdoc/index.xml
Expand Up @@ -52,20 +52,23 @@
</section>

<section name="Status">
<p>The current release is 1.18 and requires Java 7.</p>
<p>The current release is 1.19 and requires Java 7.</p>

<p>Below we highlight some new features, for a full list
of changes see the <a href="changes-report.html">Changes
Report</a>.</p>

<subsection name="What's new in 1.18?">
<subsection name="What's new in 1.19?">
<ul>
<li>The CPIO package now properly handles file names
using a mult-byte encoding.</li>
<li>ZipArchiveInputStream can now deal with APK files
containing an APK signing block.</li>
<li>It is now possible to specifiy various parameters
for Zstd output.</li>
<li><code>ParallelScatterZipCreator</code> now writes
entries in the same order they have been added to the
archive.</li>
<li><code>ZipArchiveInputStream</code> and
<code>ZipFile</code> are more forgiving when parsing
extra fields by default now.</li>
<li><code>TarArchiveInputStream</code> has a new lenient
mode that may allow it to read certain broken
archives.</li>
</ul>
</subsection>
</section>
Expand All @@ -90,14 +93,14 @@
licensed <a href="https://github.com/google/brotli">Google
Brotli decoder</a>. Zstandard support is provided by the BSD
licensed <a href="https://github.com/luben/zstd-jni">Zstd-jni</a>.
As of Commons Compress 1.18 support for the DEFLATE64, Z and Brotli
As of Commons Compress 1.19 support for the DEFLATE64, 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>
implementation provides capabilities that go beyond the
features found in java.util.zip. As of Commons Compress
1.18 support for the dump and arj formats is
1.19 support for the dump and arj formats is
read-only - 7z can read most compressed and encrypted
archives but only write unencrypted ones. LZMA(2) support
in 7z requires <a href="https://tukaani.org/xz/java.html">XZ for
Expand Down
2 changes: 1 addition & 1 deletion src/site/xdoc/issue-tracking.xml
Expand Up @@ -26,7 +26,7 @@ limitations under the License.
| commons-build-plugin/trunk/src/main/resources/commons-xdoc-templates |
+======================================================================+
| |
| 1) Re-generate using: mvn commons:jira-page |
| 1) Re-generate using: mvn commons-build:jira-page |
| |
| 2) Set the following properties in the component's pom: |
| - commons.jira.id (required, alphabetic, upper case) |
Expand Down

0 comments on commit 516f76a

Please sign in to comment.