This is an automated email from the ASF dual-hosted git repository. bodewig pushed a commit to annotated tag 1.19-RC1 in repository https://gitbox.apache.org/repos/asf/commons-compress.git
commit 516f76ac1fe48be9a5162e53e4d0a99f23774565 Author: Stefan Bodewig <[email protected]> AuthorDate: Sat Aug 24 13:30:35 2019 +0200 prepare RC1 of Commons Compress 1.19 --- CONTRIBUTING.md | 2 +- README.md | 8 +-- RELEASE-NOTES.txt | 106 ++++++++++++++++++++++++++++++++++++ pom.xml | 4 +- src/site/site.xml | 1 + src/site/xdoc/download_compress.xml | 44 ++++++++------- src/site/xdoc/index.xml | 23 ++++---- src/site/xdoc/issue-tracking.xml | 2 +- src/site/xdoc/mail-lists.xml | 8 +-- 9 files changed, 155 insertions(+), 43 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index aaa2c87..8b7804b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -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) | diff --git a/README.md b/README.md index b576ca3..bb406bf 100644 --- a/README.md +++ b/README.md @@ -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) | @@ -46,7 +46,7 @@ Apache Commons Compress [](https://travis-ci.org/apache/commons-compress) [](https://coveralls.io/r/apache/commons-compress) [](https://maven-badges.herokuapp.com/maven-central/org.apache.commons/commons-compress/) -[](https://www.apache.org/licenses/LICENSE-2.0.html) +[](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, @@ -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? @@ -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> ``` diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index b40901f..45631ad 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -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 ------------ diff --git a/pom.xml b/pom.xml index cecbedf..e6874f0 100644 --- a/pom.xml +++ b/pom.xml @@ -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 --> @@ -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> diff --git a/src/site/site.xml b/src/site/site.xml index e816250..34604fd 100644 --- a/src/site/site.xml +++ b/src/site/site.xml @@ -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"/> diff --git a/src/site/xdoc/download_compress.xml b/src/site/xdoc/download_compress.xml index bed1ce7..d76ec9a 100644 --- a/src/site/xdoc/download_compress.xml +++ b/src/site/xdoc/download_compress.xml @@ -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: | @@ -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> @@ -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> diff --git a/src/site/xdoc/index.xml b/src/site/xdoc/index.xml index b2c7a5a..18709b4 100644 --- a/src/site/xdoc/index.xml +++ b/src/site/xdoc/index.xml @@ -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> @@ -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 diff --git a/src/site/xdoc/issue-tracking.xml b/src/site/xdoc/issue-tracking.xml index 6389f92..05bce42 100644 --- a/src/site/xdoc/issue-tracking.xml +++ b/src/site/xdoc/issue-tracking.xml @@ -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) | diff --git a/src/site/xdoc/mail-lists.xml b/src/site/xdoc/mail-lists.xml index 954802e..8ac21a8 100644 --- a/src/site/xdoc/mail-lists.xml +++ b/src/site/xdoc/mail-lists.xml @@ -26,7 +26,7 @@ limitations under the License. | commons-build-plugin/trunk/src/main/resources/commons-xdoc-templates | +======================================================================+ | | - | 1) Re-generate using: mvn commons:mail-page | + | 1) Re-generate using: mvn commons-build:mail-page | | | | 2) Set the following properties in the component's pom: | | - commons.componentid (required, alphabetic, lower case) | @@ -152,7 +152,7 @@ limitations under the License. <td> <strong>Commons Commits List</strong> <br /><br /> - Only for e-mails automatically generated by the <a href="scm.html">source control</a> sytem. + Only for e-mails automatically generated by the <a href="source-repository.html">source control</a> sytem. <br /><br /> </td> <td><a href="mailto:[email protected]">Subscribe</a></td> @@ -192,9 +192,9 @@ limitations under the License. <td><a class="externalLink" href="mailto:[email protected]">Unsubscribe</a></td> <td><i>read only</i></td> <td><a class="externalLink" href="https://mail-archives.apache.org/mod_mbox/www-announce/">mail-archives.apache.org</a></td> - <td><a class="externalLink" href="https://markmail.org/list/org.apache.announce/">markmail.org</a><br /> + <td><a class="externalLink" href="http://markmail.org/list/org.apache.announce/">markmail.org</a><br /> <a class="externalLink" href="http://old.nabble.com/Apache-News-and-Announce-f109.html">old.nabble.com</a><br /> - <a class="externalLink" href="https://www.mail-archive.com/[email protected]/">www.mail-archive.com</a><br /> + <a class="externalLink" href="http://www.mail-archive.com/[email protected]/">www.mail-archive.com</a><br /> <a class="externalLink" href="http://news.gmane.org/gmane.comp.apache.announce">news.gmane.org</a> </td> </tr>
