You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2023/11/12 21:12:38 UTC
(commons-compress) branch master updated: Prepare for the next release candidate
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-compress.git
The following commit(s) were added to refs/heads/master by this push:
new 5ecccd983 Prepare for the next release candidate
5ecccd983 is described below
commit 5ecccd9838f050073bb834ff7024d82291a7bf1b
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun Nov 12 16:11:42 2023 -0500
Prepare for the next release candidate
---
NOTICE.txt | 50 -
README.md | 78 +-
RELEASE-NOTES.txt | 88 ++
pom.xml | 1 +
src/changes/changes.xml | 2 +-
src/changes/release-notes.vm | 1736 +----------------------------------
src/site/xdoc/download_compress.xml | 26 +-
src/site/xdoc/mail-lists.xml | 38 +-
8 files changed, 173 insertions(+), 1846 deletions(-)
diff --git a/NOTICE.txt b/NOTICE.txt
index 296602a8c..0492ed0f8 100644
--- a/NOTICE.txt
+++ b/NOTICE.txt
@@ -3,53 +3,3 @@ Copyright 2002-2023 The Apache Software Foundation
This product includes software developed at
The Apache Software Foundation (https://www.apache.org/).
-
----
-
-The files in the package org.apache.commons.compress.archivers.sevenz
-were derived from the LZMA SDK, version 9.20 (C/ and CPP/7zip/),
-which has been placed in the public domain:
-
-"LZMA SDK is placed in the public domain." (http://www.7-zip.org/sdk.html)
-
----
-
-The test file lbzip2_32767.bz2 has been copied from libbzip2's source
-repository:
-
-This program, "bzip2", the associated library "libbzip2", and all
-documentation, are copyright (C) 1996-2019 Julian R Seward. All
-rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
-2. The origin of this software must not be misrepresented; you must
- not claim that you wrote the original software. If you use this
- software in a product, an acknowledgment in the product
- documentation would be appreciated but is not required.
-
-3. Altered source versions must be plainly marked as such, and must
- not be misrepresented as being the original software.
-
-4. The name of the author may not be used to endorse or promote
- products derived from this software without specific prior written
- permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-Julian Seward, jseward@acm.org
diff --git a/README.md b/README.md
index 6a7b513be..5e87cb560 100644
--- a/README.md
+++ b/README.md
@@ -46,7 +46,7 @@ Apache Commons Compress
[![Java CI](https://github.com/apache/commons-compress/actions/workflows/maven.yml/badge.svg)](https://github.com/apache/commons-compress/actions/workflows/maven.yml)
[![Coverage Status](https://codecov.io/gh/apache/commons-compress/branch/master/graph/badge.svg)](https://app.codecov.io/gh/apache/commons-compress)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.apache.commons/commons-compress/badge.svg?gav=true)](https://maven-badges.herokuapp.com/maven-central/org.apache.commons/commons-compress/?gav=true)
-[![Javadocs](https://javadoc.io/badge/org.apache.commons/commons-compress/1.24.0.svg)](https://javadoc.io/doc/org.apache.commons/commons-compress/1.24.0)
+[![Javadocs](https://javadoc.io/badge/org.apache.commons/commons-compress/1.25.0.svg)](https://javadoc.io/doc/org.apache.commons/commons-compress/1.25.0)
[![CodeQL](https://github.com/apache/commons-compress/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/apache/commons-compress/actions/workflows/codeql-analysis.yml)
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/apache/commons-compress/badge)](https://api.securityscorecards.dev/projects/github.com/apache/commons-compress)
@@ -62,8 +62,8 @@ More information can be found on the [Apache Commons Compress homepage](https://
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?
------------------------------------
+Getting the latest release
+--------------------------
You can download source and binaries from our [download page](https://commons.apache.org/proper/commons-compress/download_compress.cgi).
Alternatively, you can pull it from the central Maven repositories:
@@ -72,17 +72,25 @@ Alternatively, you can pull it from the central Maven repositories:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
- <version>1.24.0</version>
+ <version>1.25.0</version>
</dependency>
```
+Building
+--------
+
+Building requires a Java JDK and [Apache Maven](https://maven.apache.org/).
+The required Java version is found in the `pom.xml` as the `maven.compiler.source` property.
+
+From a command shell, run `mvn` without arguments to invoke the default Maven goal to run all tests and checks.
+
Contributing
------------
We accept Pull Requests via GitHub. The [developer mailing list](https://commons.apache.org/mail-lists.html) is the main channel of communication for contributors.
There are some guidelines which will make applying PRs easier for us:
+ No tabs! Please use spaces for indentation.
-+ Respect the code style.
++ Respect the existing code style for each file.
+ Create minimal diffs - disable on save actions like reformat source code or organize imports. If you feel the source code should be reformatted create a separate PR for this change.
+ Provide JUnit tests for your changes and make sure your changes don't break any existing tests by running ```mvn```.
@@ -91,13 +99,13 @@ You can learn more about contributing via GitHub in our [contribution guidelines
License
-------
-This code is under the [Apache License v2](https://www.apache.org/licenses/LICENSE-2.0).
+This code is licensed under the [Apache License v2](https://www.apache.org/licenses/LICENSE-2.0).
See the `NOTICE.txt` file for required notices and attributions.
-Donations
----------
-You like Apache Commons Compress? Then [donate back to the ASF](https://www.apache.org/foundation/contributing.html) to support the development.
+Donating
+--------
+You like Apache Commons Compress? Then [donate back to the ASF](https://www.apache.org/foundation/contributing.html) to support development.
Additional Resources
--------------------
@@ -111,54 +119,4 @@ Additional Resources
Apache Commons Components
-------------------------
-| Component | GitHub Repository | Apache Homepage |
-| --------- | ----------------- | ----------------|
-| Apache Commons BCEL | [commons-bcel](https://github.com/apache/commons-bcel) | [commons-bcel](https://commons.apache.org/proper/commons-bcel) |
-| Apache Commons Beanutils | [commons-beanutils](https://github.com/apache/commons-beanutils) | [commons-beanutils](https://commons.apache.org/proper/commons-beanutils) |
-| Apache Commons BSF | [commons-bsf](https://github.com/apache/commons-bsf) | [commons-bsf](https://commons.apache.org/proper/commons-bsf) |
-| Apache Commons Build-plugin | [commons-build-plugin](https://github.com/apache/commons-build-plugin) | [commons-build-plugin](https://commons.apache.org/proper/commons-build-plugin) |
-| Apache Commons Chain | [commons-chain](https://github.com/apache/commons-chain) | [commons-chain](https://commons.apache.org/proper/commons-chain) |
-| Apache Commons CLI | [commons-cli](https://github.com/apache/commons-cli) | [commons-cli](https://commons.apache.org/proper/commons-cli) |
-| Apache Commons Codec | [commons-codec](https://github.com/apache/commons-codec) | [commons-codec](https://commons.apache.org/proper/commons-codec) |
-| Apache Commons Collections | [commons-collections](https://github.com/apache/commons-collections) | [commons-collections](https://commons.apache.org/proper/commons-collections) |
-| Apache Commons Compress | [commons-compress](https://github.com/apache/commons-compress) | [commons-compress](https://commons.apache.org/proper/commons-compress) |
-| Apache Commons Configuration | [commons-configuration](https://github.com/apache/commons-configuration) | [commons-configuration](https://commons.apache.org/proper/commons-configuration) |
-| Apache Commons Crypto | [commons-crypto](https://github.com/apache/commons-crypto) | [commons-crypto](https://commons.apache.org/proper/commons-crypto) |
-| Apache Commons CSV | [commons-csv](https://github.com/apache/commons-csv) | [commons-csv](https://commons.apache.org/proper/commons-csv) |
-| Apache Commons Daemon | [commons-daemon](https://github.com/apache/commons-daemon) | [commons-daemon](https://commons.apache.org/proper/commons-daemon) |
-| Apache Commons DBCP | [commons-dbcp](https://github.com/apache/commons-dbcp) | [commons-dbcp](https://commons.apache.org/proper/commons-dbcp) |
-| Apache Commons Dbutils | [commons-dbutils](https://github.com/apache/commons-dbutils) | [commons-dbutils](https://commons.apache.org/proper/commons-dbutils) |
-| Apache Commons Digester | [commons-digester](https://github.com/apache/commons-digester) | [commons-digester](https://commons.apache.org/proper/commons-digester) |
-| Apache Commons Email | [commons-email](https://github.com/apache/commons-email) | [commons-email](https://commons.apache.org/proper/commons-email) |
-| Apache Commons Exec | [commons-exec](https://github.com/apache/commons-exec) | [commons-exec](https://commons.apache.org/proper/commons-exec) |
-| Apache Commons Fileupload | [commons-fileupload](https://github.com/apache/commons-fileupload) | [commons-fileupload](https://commons.apache.org/proper/commons-fileupload) |
-| Apache Commons Functor | [commons-functor](https://github.com/apache/commons-functor) | [commons-functor](https://commons.apache.org/proper/commons-functor) |
-| Apache Commons Geometry | [commons-geometry](https://github.com/apache/commons-geometry) | [commons-geometry](https://commons.apache.org/proper/commons-geometry) |
-| Apache Commons Graph | [commons-graph](https://github.com/apache/commons-graph) | [commons-graph](https://commons.apache.org/proper/commons-graph) |
-| Apache Commons Imaging | [commons-imaging](https://github.com/apache/commons-imaging) | [commons-imaging](https://commons.apache.org/proper/commons-imaging) |
-| Apache Commons IO | [commons-io](https://github.com/apache/commons-io) | [commons-io](https://commons.apache.org/proper/commons-io) |
-| Apache Commons JCI | [commons-jci](https://github.com/apache/commons-jci) | [commons-jci](https://commons.apache.org/proper/commons-jci) |
-| Apache Commons JCS | [commons-jcs](https://github.com/apache/commons-jcs) | [commons-jcs](https://commons.apache.org/proper/commons-jcs) |
-| Apache Commons Jelly | [commons-jelly](https://github.com/apache/commons-jelly) | [commons-jelly](https://commons.apache.org/proper/commons-jelly) |
-| Apache Commons Jexl | [commons-jexl](https://github.com/apache/commons-jexl) | [commons-jexl](https://commons.apache.org/proper/commons-jexl) |
-| Apache Commons Jxpath | [commons-jxpath](https://github.com/apache/commons-jxpath) | [commons-jxpath](https://commons.apache.org/proper/commons-jxpath) |
-| Apache Commons Lang | [commons-lang](https://github.com/apache/commons-lang) | [commons-lang](https://commons.apache.org/proper/commons-lang) |
-| Apache Commons Logging | [commons-logging](https://github.com/apache/commons-logging) | [commons-logging](https://commons.apache.org/proper/commons-logging) |
-| Apache Commons Math | [commons-math](https://github.com/apache/commons-math) | [commons-math](https://commons.apache.org/proper/commons-math) |
-| Apache Commons Net | [commons-net](https://github.com/apache/commons-net) | [commons-net](https://commons.apache.org/proper/commons-net) |
-| Apache Commons Numbers | [commons-numbers](https://github.com/apache/commons-numbers) | [commons-numbers](https://commons.apache.org/proper/commons-numbers) |
-| Apache Commons Parent | [commons-parent](https://github.com/apache/commons-parent) | [commons-parent](https://commons.apache.org/proper/commons-parent) |
-| Apache Commons Pool | [commons-pool](https://github.com/apache/commons-pool) | [commons-pool](https://commons.apache.org/proper/commons-pool) |
-| Apache Commons Proxy | [commons-proxy](https://github.com/apache/commons-proxy) | [commons-proxy](https://commons.apache.org/proper/commons-proxy) |
-| Apache Commons RDF | [commons-rdf](https://github.com/apache/commons-rdf) | [commons-rdf](https://commons.apache.org/proper/commons-rdf) |
-| Apache Commons Release-plugin | [commons-release-plugin](https://github.com/apache/commons-release-plugin) | [commons-release-plugin](https://commons.apache.org/proper/commons-release-plugin) |
-| Apache Commons Rng | [commons-rng](https://github.com/apache/commons-rng) | [commons-rng](https://commons.apache.org/proper/commons-rng) |
-| Apache Commons Scxml | [commons-scxml](https://github.com/apache/commons-scxml) | [commons-scxml](https://commons.apache.org/proper/commons-scxml) |
-| Apache Commons Signing | [commons-signing](https://github.com/apache/commons-signing) | [commons-signing](https://commons.apache.org/proper/commons-signing) |
-| Apache Commons Skin | [commons-skin](https://github.com/apache/commons-skin) | [commons-skin](https://commons.apache.org/proper/commons-skin) |
-| Apache Commons Statistics | [commons-statistics](https://github.com/apache/commons-statistics) | [commons-statistics](https://commons.apache.org/proper/commons-statistics) |
-| Apache Commons Testing | [commons-testing](https://github.com/apache/commons-testing) | [commons-testing](https://commons.apache.org/proper/commons-testing) |
-| Apache Commons Text | [commons-text](https://github.com/apache/commons-text) | [commons-text](https://commons.apache.org/proper/commons-text) |
-| Apache Commons Validator | [commons-validator](https://github.com/apache/commons-validator) | [commons-validator](https://commons.apache.org/proper/commons-validator) |
-| Apache Commons VFS | [commons-vfs](https://github.com/apache/commons-vfs) | [commons-vfs](https://commons.apache.org/proper/commons-vfs) |
-| Apache Commons Weaver | [commons-weaver](https://github.com/apache/commons-weaver) | [commons-weaver](https://commons.apache.org/proper/commons-weaver) |
+Please see the [list of components](https://commons.apache.org/components.html)
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 48006a1ec..484a987e3 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -1,3 +1,91 @@
+Apache Commons Compress
+Version 1.25.0-SNAPSHOT
+Release Notes
+
+INTRODUCTION:
+
+Apache Commons Compress defines an API for working with 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.
+
+Apache Commons Compress defines an API for working with
+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.
+
+Minor feature and maintenance release.
+
+Changes in this version include:
+
+New features:
+o Add GzipParameters.getFileName() and deprecate getFilename(). Thanks to Gary Gregory.
+o Add GzipParameters.setFileName(String) and deprecate setFilename(String). Thanks to Gary Gregory.
+o Add FileNameUtil.getCompressedFileName(String) and deprecate getCompressedFilename(String). Thanks to Gary Gregory.
+o Add FileNameUtil.getUncompressedFileName(String) and deprecate getUncompressedFilename(String). Thanks to Gary Gregory.
+o Add FileNameUtil.isCompressedFileName(String) and deprecate isCompressedFilename(String). Thanks to Gary Gregory.
+o Add BZip2Utils.getCompressedFileName(String) and deprecate getCompressedFilename(String). Thanks to Gary Gregory.
+o Add BZip2Utils.getUncompressedFileName(String) and deprecate getUncompressedFilename(String). Thanks to Gary Gregory.
+o Add BZip2Utils.isCompressedFileName(String) and deprecate isCompressedFilename(String). Thanks to Gary Gregory.
+o Add LZMAUtils.getCompressedFileName(String) and deprecate getCompressedFilename(String). Thanks to Gary Gregory.
+o Add LZMAUtils.getUncompressedFileName(String) and deprecate getUncompressedFilename(String). Thanks to Gary Gregory.
+o Add LZMAUtils.isCompressedFileName(String) and deprecate isCompressedFilename(String). Thanks to Gary Gregory.
+o Add XYUtils.getCompressedFileName(String) and deprecate getCompressedFilename(String). Thanks to Gary Gregory.
+o Add XYUtils.getUncompressedFileName(String) and deprecate getUncompressedFilename(String). Thanks to Gary Gregory.
+o Add XYUtils.isCompressedFileName(String) and deprecate isCompressedFilename(String). Thanks to Gary Gregory.
+o Add GzipUtils.getCompressedFileName(String) and deprecate getCompressedFilename(String). Thanks to Gary Gregory.
+o Add GzipUtils.getUncompressedFileName(String) and deprecate getUncompressedFilename(String). Thanks to Gary Gregory.
+o Add GzipUtils.isCompressedFileName(String) and deprecate isCompressedFilename(String). Thanks to Gary Gregory.
+o Add SevenZOutputFile.putArchiveEntry(SevenZArchiveEntry) and deprecate putArchiveEntry(ArchiveEntry). Thanks to Gary Gregory.
+o Add generics to ChangeSet and ChangeSetPerformer. Thanks to Gary Gregory.
+o Add generics to ArchiveStreamProvider and friends. Thanks to Gary Gregory.
+o Add a generic type parameter to ArchiveOutputStream and avoid unchecked/unconfirmed type casts in subclasses. Thanks to Gary Gregory.
+o Add a generic type parameter to ArchiveInputStream and deprecate redundant get methods in subclasses. Thanks to Gary Gregory.
+o COMPRESS-648: Add ability to restrict autodetection in CompressorStreamFactory #433. Thanks to Yakov Shafranovich, Gary Gregory.
+
+Fixed Bugs:
+o Precompile regular expression in ArArchiveInputStream.isBSDLongName(String). Thanks to Gary Gregory.
+o Precompile regular expression in ArArchiveInputStream.isGNULongName(String). Thanks to Gary Gregory.
+o Precompile regular expression in TarArchiveEntry.parseInstantFromDecimalSeconds(String). Thanks to Gary Gregory.
+o Precompile regular expression in ChangeSet.addDeletion(Change). Thanks to Gary Gregory.
+o COMPRESS-649: Improve performance in BlockLZ4CompressorOutputStream. Thanks to Gary Gregory.
+o Null-guard Lister.main(String[]) for programmatic invocation. Thanks to Gary Gregory.
+o NPE in pack200.NewAttributeBands.Reference.addAttributeToBand(NewAttribute, InputStream). Thanks to Gary Gregory.
+o Incorrect lazy initialization and update of static field in pack200.CodecEncoding.getSpecifier(Codec, Codec). Thanks to Gary Gregory.
+o Incorrect string comparison in unpack200.AttributeLayout.numBackwardsCallables(). Thanks to Gary Gregory.
+o Inefficient use of keySet iterator instead of entrySet iterator in pack200.PackingOptions.addOrUpdateAttributeActions(List, Map, int). Thanks to Gary Gregory.
+o Package private class pack200.IcBands.IcTuple should be a static inner class. Thanks to Gary Gregory.
+o Private class ZipFile.BoundedFileChannelInputStream should be a static inner class. Thanks to Gary Gregory.
+o Refactor internal SevenZ AES256SHA256Decoder InputStream into a named static inner class. Thanks to Gary Gregory.
+o Refactor internal SevenZ AES256SHA256Decoder OutputStream into a named static inner class. Thanks to Gary Gregory.
+o Use the root Locale for string conversion of command line options in org.apache.commons.compress.archivers.sevenz.CLI. Thanks to Gary Gregory.
+o Calling PackingUtils.config(PackingOptions) with null now closes the internal FileHandler. Thanks to Gary Gregory.
+o COMPRESS-650: LZ4 compressor throws IndexOutOfBoundsException. Thanks to Chad Preisler.
+o COMPRESS-632: LZWInputStream.initializeTables(int) should throw IllegalArgumentException instead of ArrayIndexOutOfBoundsException. Thanks to Yakov Shafranovich, Gary Gregory.
+o COMPRESS-647: Throw IOException instead of ArrayIndexOutOfBoundsException when reading Zip with data descriptor entries. Thanks to Robin Schimpf, Gary Gregory.
+
+Changes:
+o Bump org.slf4j:slf4j-api from 2.0.8 to 2.0.9 #413. Thanks to Dependabot.
+o Bump commons-io:commons-io from 2.13.0 to 2.15.0. Thanks to Gary Gregory.
+o Bump com.github.luben:zstd-jni from 1.5.5-5 to 1.5.5-10 #422, #431. Thanks to Dependabot.
+o Bump org.ow2.asm:asm from 9.5 to 9.6 #421. Thanks to Dependabot.
+o Bump org.apache.commons:commons-parent from 62 to 64 #421. Thanks to Dependabot, Gary Gregory.
+
+
+Historical list of changes: https://commons.apache.org/proper/commons-compress/changes-report.html
+
+For complete information on Apache Commons Compress, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Compress website:
+
+https://commons.apache.org/proper/commons-compress/
+
+Download page: https://commons.apache.org/proper/commons-compress/download_io.cgi
+
+Have fun!
+-Apache Commons Team
+
+==============================================================================
+
Apache Commons Compress 1.24.0 RELEASE NOTES
Apache Commons Compress defines an API for working with
diff --git a/pom.xml b/pom.xml
index 9f6527797..393d633cd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -46,6 +46,7 @@ Brotli, Zstandard and ar, cpio, jar, tar, zip, dump, 7z, arj.
<commons.jira.pid>12310904</commons.jira.pid>
<!-- configuration bits for cutting a release candidate -->
<commons.release.version>1.25.0</commons.release.version>
+ <commons.release.next>1.25.1</commons.release.next>
<commons.bc.version>1.24.0</commons.bc.version>
<commons.rc.version>RC1</commons.rc.version>
<mockito.version>4.11.0</mockito.version>
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 9359f8210..41047392e 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -44,7 +44,7 @@ The <action> type attribute can be add,update,fix,remove.
<title>Apache Commons Compress Release Notes</title>
</properties>
<body>
- <release version="1.25.0" date="202Y-MM-DD" description="Minor feature and maintenance release.">
+ <release version="1.25.0" date="2023-11-12" description="Minor feature and maintenance release.">
<!-- ADD -->
<action type="add" dev="ggregory" due-to="Gary Gregory">Add GzipParameters.getFileName() and deprecate getFilename().</action>
<action type="add" dev="ggregory" due-to="Gary Gregory">Add GzipParameters.setFileName(String) and deprecate setFilename(String).</action>
diff --git a/src/changes/release-notes.vm b/src/changes/release-notes.vm
index 9ac3d32ea..5963e9eae 100644
--- a/src/changes/release-notes.vm
+++ b/src/changes/release-notes.vm
@@ -14,31 +14,45 @@
## KIND, either express or implied. See the License for the
## specific language governing permissions and limitations
## under the License.
- ${project.name} RELEASE NOTES
+
+Apache Commons Compress
+Version ${version}
+Release Notes
+
+INTRODUCTION:
+
+Apache Commons Compress defines an API for working with 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.
$introduction.replaceAll("(?<!\015)\012", "
")
+##
## N.B. the available variables are described here:
## http://maven.apache.org/plugins/maven-changes-plugin/examples/using-a-custom-announcement-template.html
+##
## Hack to improve layout: replace all pairs of spaces with a single new-line
$release.description.replaceAll(" ", "
")
-## Fix up indentation for multi-line action descriptions
-#macro ( indent )
-#set($action=$action.replaceAll("(?m)^ +"," "))
-#end
+##
#if ($release.getActions().size() == 0)
No changes defined in this version.
#else
+Changes in this version include:
+
+## indent to be used if there is no issue attribute.
+## should be the same as the indent in the changes.xml file
+## less 2 spaces for the 'o' and trailing space
+#set($indent=' ')
#if ($release.getActions('add').size() !=0)
New features:
#foreach($actionItem in $release.getActions('add'))
## Use replaceAll to fix up LF-only line ends on Windows.
#set($action=$actionItem.getAction().replaceAll("\n","
"))
-#indent()
#if ($actionItem.getIssue())
#set($issue=$actionItem.getIssue())
#else
@@ -49,12 +63,7 @@ New features:
#else
#set($dueto="")
#end
-o ${action}##
-#if($!issue != "")
-
- Issue: $issue. #if($!dueto != "")Thanks to $dueto. #end
-#else#if($!dueto != "") Thanks to $dueto. #end
-#end
+o#if($!issue != "") $issue: #else$indent#end ${action} #if($!dueto != "")Thanks to $dueto. #end
#set($issue="")
#set($dueto="")
@@ -67,7 +76,6 @@ Fixed Bugs:
## Use replaceAll to fix up LF-only line ends on Windows.
#set($action=$actionItem.getAction().replaceAll("\n","
"))
-#indent()
#if ($actionItem.getIssue())
#set($issue=$actionItem.getIssue())
#else
@@ -78,12 +86,7 @@ Fixed Bugs:
#else
#set($dueto="")
#end
-o ${action}##
-#if($!issue != "")
-
- Issue: $issue. #if($!dueto != "")Thanks to $dueto. #end
-#else#if($!dueto != "") Thanks to $dueto. #end
-#end
+o#if($!issue != "") $issue: #else$indent#end ${action} #if($!dueto != "")Thanks to $dueto. #end
#set($issue="")
#set($dueto="")
@@ -96,7 +99,6 @@ Changes:
## Use replaceAll to fix up LF-only line ends on Windows.
#set($action=$actionItem.getAction().replaceAll("\n","
"))
-#indent()
#if ($actionItem.getIssue())
#set($issue=$actionItem.getIssue())
#else
@@ -107,12 +109,7 @@ Changes:
#else
#set($dueto="")
#end
-o ${action}##
-#if($!issue != "")
-
- Issue: $issue. #if($!dueto != "")Thanks to $dueto. #end
-#else#if($!dueto != "") Thanks to $dueto. #end
-#end
+o#if($!issue != "") $issue: #else$indent#end ${action} #if($!dueto != "")Thanks to $dueto. #end
#set($issue="")
#set($dueto="")
@@ -125,7 +122,6 @@ Removed:
## Use replaceAll to fix up LF-only line ends on Windows.
#set($action=$actionItem.getAction().replaceAll("\n","
"))
-#indent()
#if ($actionItem.getIssue())
#set($issue=$actionItem.getIssue())
#else
@@ -136,1690 +132,26 @@ Removed:
#else
#set($dueto="")
#end
-o ${action}##
-#if($!issue != "")
-
- Issue: $issue. #if($!dueto != "")Thanks to $dueto. #end
-#else#if($!dueto != "") Thanks to $dueto. #end
-#end
-
+o#if($!issue != "") $issue: #else$indent#end ${action} #if($!dueto != "")Thanks to $dueto. #end
+##
#set($issue="")
#set($dueto="")
#end
#end
## End of main loop
#end
-#macro ( fixurl $url )
-$url.replaceAll("proper/commons-","")
-#end
-For complete information on ${project.name}, including instructions
-on how to submit bug reports, patches, or suggestions for improvement,
-see the ${project.name} website:
-
-#fixurl ( ${project.url} )
-
-Download it from ${project.url}download_compress.cgi
-
-Old Release Notes
-=================
-
-Release 1.22
-------------
-
-New features:
-o Migrate zip package to use NIO #236.
- Issue: COMPRESS-602. Thanks to Postelnicu George, Gary Gregory.
-o Add APK file extension constants: ArchiveStreamFactory.APK, APKM, APKS, XAPK. Thanks to Gary Gregory.
-o ArchiveStreamFactory.createArchiveInputStream(String, InputStream, String) supports the "APK" format (it's a JAR). Thanks to Gary Gregory.
-o Expander example now has NIO Path versions of IO File APIs. Thanks to Gary Gregory.
-o Improve TAR support for file times #254.
- Issue: COMPRESS-612. Thanks to Andre Brait, Gary Gregory.
-o Add SevenZArchiveEntry.setContentMethods(SevenZMethodConfiguration...). Thanks to Gary Gregory.
-
-Fixed Bugs:
-o Fix some compiler warnings in pack200 packages. Thanks to Gary Gregory.
-o Close File input stream after unpacking in Pack200UnpackerAdapter.unpack(File, JarOutputStream). Thanks to Gary Gregory.
-o Pack200UnpackerAdapter.unpack(InputStream, JarOutputStream) should not close its given input stream. Thanks to Gary Gregory.
-o Fix minor problem in examples.
- Issue: COMPRESS-596. Thanks to Tamas Mucs.
-o Add a limit to the copy buffer in IOUtils.readRange() to
- avoid reading more from a channel than asked for.
- Github Pull Request #214.
- Issue: COMPRESS-584. Thanks to Matthijs Laan, Peter Lee.
-o Documentation nits #217. Thanks to Helder Magalh�es, Gary Gregory, PeterAlfredLee.
-o Replace wrapper Collections.sort is with an instance method directly. #245. Thanks to Arturo Bernal.
-o Replace manual comparisons with Comparator.comparingInt() #244. Thanks to Arturo Bernal.
-o Replace manual copy of array contents with System.arraycopy() #246. Thanks to Arturo Bernal.
-o Fix thread safety issues when encoding 7z password #248. Thanks to Glavo, Bruno P. Kinoshita, PeterAlfredLee, Gary Gregory.
-o bzip2: calculate median-of-3 on unsigned values #242. Thanks to Peter Dettman.
-o Use Math.min and Math.max calculations. #247. Thanks to Arturo Bernal, Gary Gregory, Bruno P. Kinoshita.
-o Expander should be able to work if an entry's name is "./".
- Issue: COMPRESS-603. Thanks to Matt Sicker.
-o Ensure compatibility with Java 8 #252.
- Issue: COMPRESS-604. Thanks to Andre Brait.
-o Use StringBuilder instead of StringBuffer. #284. Thanks to Arturo Bernal.
-o Inline variable. Remove redundant local variable. #283. Thanks to Arturo Bernal.
-o Use compare method #285. Thanks to Arturo Bernal.
-o Remove Unnecessary interface modifiers #281. Thanks to Arturo Bernal.
-o Avoid use C-style array declaration. #282. Thanks to Arturo Bernal.
-o ChecksumVerifyingInputStream.read() does not always validate checksum at end-of-stream. Thanks to Gary Gregory.
-o Fix TarFileTest #289. Thanks to Matt Juntunen.
-o Update Wikipedia link in TarUtils.java:627.
- Issue: COMPRESS-625. Thanks to MrBump, Gary Gregory.
-o OutOfMemoryError on malformed pack200 input (attributes).
- Issue: COMPRESS-626. Thanks to Andrii Hudz, Gary Gregory.
-o OutOfMemoryError on malformed pack200 input (org.apache.commons.compress.harmony.pack200.NewAttributeBands.readNextUnionCase).
- Issue: COMPRESS-628. Thanks to Andrii Hudz, Gary Gregory.
-o OutOfMemoryError on malformed unpack200 input (org.apache.commons.compress.harmony.unpack200.NewAttributeBands.readNextUnionCase).
- Issue: COMPRESS-628. Thanks to Gary Gregory.
-o Some input streams are not closed in org.apache.commons.compress.harmony.pack200.PackingUtils. Thanks to Gary Gregory.
-o Pack200 causes a 'archive.3E' error if it?s not in the system class loader.
- Issue: COMPRESS-627. Thanks to anatawa12, Gary Gregory.
-
-Changes:
-o Bump actions/cache from 2.1.6 to 3.0.10 #230, #257, #305, #320. Thanks to Dependabot, Gary Gregory.
-o Bump actions/checkout from 2.3.4 to 3.1.0 #226, #227, #251, #300, #321. Thanks to Dependabot, Gary Gregory.
-o Bump actions/setup-java from 2 to 3.5.1 #278. Thanks to Dependabot.
-o Bump github/codeql-action from 1 to 2 #287. Thanks to Dependabot.
-o Bump mockito-core from 3.11.1 to 4.6.1 #209, #224, #231, #235, #243, #253, #286, #294. Thanks to Dependabot.
-o Bump org.apache.felix.framework from 7.0.0 to 7.0.1 #208. Thanks to Dependabot.
-o Bump memoryfilesystem from 2.1.0 to 2.3.0 #212, #237. Thanks to Dependabot.
-o Bump zstd-jni from 1.5.0-2 to 1.5.2-5 #215, #233, #238, #240, #250, #291, #326. Thanks to Dependabot, Gary Gregory.
-o Bump Pack200 packages from ASM 3.2 to 9.2 #216.
- Breaks binary compatibility in the internals of the pack200 implementation:
- - org.apache.commons.compress.harmony.pack200.Segment
- - org.apache.commons.compress.harmony.pack200.SegmentMethodVisitor
- - org.apache.commons.compress.harmony.pack200.SegmentAnnotationVisitor
- - org.apache.commons.compress.harmony.pack200.SegmentFieldVisitor
- Issue: COMPRESS-582. Thanks to Alex Landau, Stephan, Gary Gregory.
-o Bump asm from 9.2 to 9.4 #279, #322. Thanks to Dependabot.
-o Bump maven-javadoc-plugin from 3.3.0 to 3.4.1 #221, #249, #288, #308. Thanks to Dependabot.
-o Bump maven-pmd-plugin from 3.14.0 to 3.19.0 #296, #309, #311. Thanks to Gary Gregory, Dependabot.
-o Bump pmd from 6.44.0 to 6.50.0. Thanks to Gary Gregory.
-o Bump commons.japicmp.version from 0.15.3 to 0.16.0. Thanks to Gary Gregory.
-o Bump maven-bundle-plugin from 5.1.2 to 5.1.8 #234, #239, #290, #292, #301, #304. Thanks to Dependabot.
-o Bump org.apache.felix.framework from 7.0.1 to 7.0.5 #232, #295. Thanks to Dependabot.
-o Bump slf4j-api from 1.7.30 to 2.0.3 #213, #241, #258, #310, #314, #315, #318. Thanks to Dependabot.
-o Bump commons-parent from 52 to 54 #280. Thanks to Dependabot, Gary Gregory.
-o Bump commons.jacoco.version from 0.8.7 to 0.8.8. Thanks to Gary Gregory.
-o Bump junit.version from 5.8.2 to 5.9.1 #302, #317. Thanks to Dependabot.
-o Bump mockito.version from 4.6.1 to 4.8.0 #307, #312. Thanks to Dependabot.
-o Bump maven-surefire-plugin from 3.0.0-M6 to 3.0.0-M7. Thanks to Gary Gregory.
-
-For complete information on Apache Commons Compress, including instructions
-on how to submit bug reports, patches, or suggestions for improvement,
-see the Apache Commons Compress website:
-
-https://commons.apache.org/compress/
-
-Download page: ${project.url}download_compress.cgi
-
-Release 1.21
-------------
-
-Compress 1.21 is the first release to require Java 8 to build and run.
-
-SevenZFileOptions has a new setting that needs to be enabled
-explicitly if SevenZFile should try to recover broken archives - a
-feature introduced with Commons Compress 1.19. This is a breaking
-change if you relied on the recovery attempt. The change was made to
-detect broken archives sooner, and to mitigate the OOM exploit.
-
-Several formats now throw IOExceptions when reading broken archives or
-streams that would have caused arbitrary RuntimeExceptions in earlier
-versions of Compress.
-
-New features:
-o Add writePreamble to ZipArchiveInputStream. This method could
- write raw data to zip archive before any entry was written to
- the zip archive.
- For most of the time, this is used to create self-extracting
- zip.
- Github Pull Request #127.
- Issue: COMPRESS-550.
- Thanks to Scott Frederick.
-o Added support for random access to the TAR packages.
- Github Pull Request #113.
- Issue: COMPRESS-540.
- Thanks to Robin Schimpf.
-o Added support for BufferPool in ZstdCompressorInputStream.
- Github Pull Request #165.
- Issue: COMPRESS-565.
- Thanks to Michael L Heuer.
-o Commons Compress cannot be built with JDK14 due to Pack200 removal.
- Add Pack200 implementation from Apache Harmony.
- Issue: COMPRESS-507.
- Thanks to Gary Gregory, Apache Harmony.
-o Add a new AlwaysWithCompatibility in Zip64Mode, this is a
- compromise for some libraries including 7z and Expand-Archive
- Powershell utility(and likely Excel).
-
- And we will encode both the LFH offset and Disk Number Start
- in the ZIP64 Extended Information Extra Field - even if only
- the disk number needs to be encoded.
-
- Github Pull Request #169.
- Issue: COMPRESS-565.
- Thanks to Evgenii Bovykin.
-o gzip deflate buffer size is now configurable.
- Issue: COMPRESS-566.
- Thanks to Brett Okken.
-
-Fixed Bugs:
-o Fix bugs in random access of 7z. Problems may happen
- in a mixture use of random access and sequential access
- of 7z.
- Github Pull Request #95.
- Issue: COMPRESS-505.
-o Fix bugs in random access of 7z. Exceptions are thrown
- when reading the first entry multiple times by random
- access.
- Issue: COMPRESS-510.
-o Add '/' to directories with long name in tar. This is to
- resolve the ambiguous behavior of the TarArchiveEntry.getName()
- method between directory with short name and long name.
- Issue: COMPRESS-509.
- Thanks to Petr Vasak.
-o Removed the PowerMock dependency.
- Issue: COMPRESS-520.
- Thanks to Robin Schimpf.
-o Added improved checks to detect corrupted bzip2 streams and
- throw the expected IOException rather than obscure
- RuntimeExceptions.
- See also COMPRESS-519.
- Issue: COMPRESS-516.
-o Improved parsing of X5455_ExtendedTimestamp ZIP extra field.
- Issue: COMPRESS-517.
-o ZipArchiveInputStream and ZipFile will now throw an
- IOException rather than a RuntimeException if the zip64 extra
- field of an entry could not be parsed.
- Issue: COMPRESS-518.
-o Improved detection of corrupt ZIP archives in ZipArchiveInputStream.
- Issue: COMPRESS-523.
-o Added improved checks to detect corrupted deflate64 streams and
- throw the expected IOException rather than obscure
- RuntimeExceptions.
- Issues: COMPRESS-521, COMPRESS-522, COMPRESS-525, COMPRESS-526, and COMPRESS-527.
-o Add the archive name in the exception in the constructor of
- ZipFile to make it a more specific exception.
- Github Pull Request #102.
- Issue: COMPRESS-515.
- Thanks to ian-lavallee.
-o Throw IOException when it encounters a non-number while parsing pax
- header.
- Issue: COMPRESS-530.
-o Throw IOException when a tar archive contains a PAX header
- without any normal entry following it.
- Issue: COMPRESS-531.
-o Added improved checks to detect corrupted IMPLODED streams and
- throw the expected IOException rather than obscure
- RuntimeExceptions.
- Issue: COMPRESS-532.
-o Throw expected IOException instead of NumberFormatException if
- it encounters non-numbers when parsing pax headers for tarball.
-
- Throw IllegalArgumentException instead of RuntimeExceptions if
- the file name is longer than 100 bytes with the longFileMode
- of LONGFILE_ERROR, and address this in java docs.
-
- Throw IllegalArgumentException instead of RuntimeExceptions if
- the any of the numeric values of an entry exceeds the limits
- of a traditional tar header while bigNumberMode is
- BIGNUMBER_ERROR, and address this in java docs.
- Issue: COMPRESS-529.
-o Fix for test fails on Windows. The tests are failing because the
- default charset is not UTF-8.
- Issue: COMPRESS-543.
- Thanks to wulf2333.
-o TarArchiveInputStream can not detect a truncated tar in skip()
- and skipRecordPadding().
- Issue: COMPRESS-544.
- Thanks to Aditya Prasad.
-o Make the memory allocation in SevenZFile.readFilesInfo a lazy
- allocation to avoid OOM when dealing some giant 7z archives.
- Github Pull Request #120.
-
- Also added sanity checks before even trying to parse an
- archive and made SevenZFileOptions' maxMemorySizeInKb apply to
- the stored metadata for an archive.
-
- And further added an option that needs to be enabled in order
- to make SevenZFile try to recover a broken archive. This is a
- backwards incompatible change.
- Issue: COMPRESS-542.
- Thanks to theobisproject.
-o ZipArchiveInputStream should throw an exception if a corrputed
- zip64 extra field is met.
- Issue: COMPRESS-546.
- Thanks to Maksim Zuev.
-o Add a new maven profile in pom.xml for JDK14+ to ignore the
- failing tests about Pack200.
-
- This has later been superseeded by adding the Apache Harmony
- classes for Pack200 support.
-o Throw an IOException when reading the zip extra field if the
- length is too short.
- Issue: COMPRESS-548.
- Thanks to Maksim Zuev.
-o Throw an declared IOException if a null entry is met when
- reading a global pax header instead of a runtime NPE.
- Issue: COMPRESS-554.
- Thanks to Maksim Zuev.
-o ZIP extraction could lead to ArrayIndexOutOfBoundsExceptions
- rather than the expected IOException.
- Issue: COMPRESS-545.
- Thanks to Maksim Zuev.
-o Add asserts for Arrays.copyOf in X0017_StrongEncryptionHeader.
- Issue: COMPRESS-547.
- Thanks to Maksim Zuev.
-o Fix for the CFH signature detect in ZipArchiveInputStream.
- The problem could be reproduced by a zip archive with Data
- Descriptor and STORED, and without the Data Descriptor
- signature.
-o The length validation in TarArchiveInputStream.parsePaxHeaders
- should also consider the headers with length smaller than 1
- and ignore these headers.
- Issue: COMPRESS-553.
- Thanks to Maksim Zuev.
-o Fix accidentally added '/' to file names.
- This problem is caused by the incomplete fix of COMPRESS-509.
- Github Pull Request #151.
- Issue: COMPRESS-558.
- Thanks to Robin Schimpf.
-o As sparse entries can be successfully parsed now,
- TarArchiveInputStream.canReadEntryData should return
- true if the entry is a sparse entry.
- Github Pull Request #153.
- Issue: COMPRESS-560.
- Thanks to Robin Schimpf.
-o SparseFilesTest#testExtractPaxGNU should be skipped
- if the version of GNU tar binary is 1.28.
- Github Pull Request #152.
- Issue: COMPRESS-559.
- Thanks to Robin Schimpf.
-o Removed an empty loop that was just warming the planet for
- certain ZIP archives.
- Github Pull Request #172.
- Thanks to Fabian Meumertzheim.
-o Made some of the stream classes used internally throw
- IOExceptions on illegal arguments rather than
- RuntimeExceptions to make it more likely that corrupt archives
- cause expected checked exceptions rather than RuntimException
- for various formats.
-
- Fixes a specific case for ZIP but affects other formats as
- well.
- Issue: COMPRESS-567.
-o Simplify Assertions #205.
- Thanks to Arturo Bernal.
-o Checked the sizes read for archive entries and reject archives
- as broken with negative entry sizes.
-
- Fixes an infinite loop in the new TarFile class but affects
- several formats.
- Issue: COMPRESS-569.
-o OSGi detection was broken and so we always cached whether
- XZ/brotli/zstd/LZMA have been available even in OSGi
- environments.
- Issue: COMPRESS-552.
-o SevenZFile.getEntries now return a copy of entries.
- Issue: COMPRESS-571.
-o Handling of sparse tar entries has been hardened to ensure bad
- inputs cause expected IOExceptions rather than RuntimeExceptions.
- Issue: COMPRESS-575.
-o The parser for GNU sparse tar headers could throw a
- NullPointerExcpetion rather than an IOException if the archive
- ended while more sparse headers were expected.
-
-Changes:
-o Made sure ZstdCompressorOutputStream no longer used
- deprecated ZstOutputStream constructors.
- Github Pull Request #94.
- Thanks to Peter Alfred Lee.
-o Make compression level of ParallelScatterZipCreator
- configurable via a new constructor.
- Issue: COMPRESS-504.
-o Made an inner class static
- Github Pull Request #107.
- Issue: COMPRESS-536.
- Thanks to Jin Xu.
-o added an early exit to a loop in BZip2CompressorOutputStream
- Github Pull Request #106.
- Issue: COMPRESS-535.
- Thanks to Jin Xu.
-o Update the class of variable file in TarArchiveEntry from
- java.io.File to java.nio.file.Path. Corresponding constructors
- and methods are also modified/added.
-
- NOTE: The userName, groupName, userID and groupID will also be
- set if they are available. The userName and groupName was not
- set previously, and the previous value of UserID:GroupID was
- 0:0 by default.
- Please note this may cause a reproducibility problem.
-
- Github Pull Request #97.
- Issue: COMPRESS-404.
- Thanks to theobisproject.
-o Reuse the record buffer in TarArchiveInputStream.
- Issue: COMPRESS-539.
- Thanks to Robin Schimpf.
-o Add SevenZOutputFile.write(InputStream).
- Thanks to Gary Gregory.
-o Add SevenZOutputFile.write(Path, OpenOption...).
- Thanks to Gary Gregory.
-o Add SevenZOutputFile.createArchiveEntry(Path, String, LinkOption...).
- Thanks to Gary Gregory.
-o Add ArArchiveOutputStream.createArchiveEntry(Path, String, LinkOption...).
- Thanks to Gary Gregory.
-o Add ArArchiveEntry(Path, String, LinkOption...).
- Thanks to Gary Gregory.
-o Add ctor CpioArchiveEntry(Path, String, LinkOption...).
- Thanks to Gary Gregory.
-o Add ctor CpioArchiveEntry(short, Path, String, LinkOption...).
- Thanks to Gary Gregory.
-o Add CpioArchiveEntry.setTime(FileTime).
- Thanks to Gary Gregory.
-o Add TarArchiveOutputStream.createArchiveEntry(Path, String, LinkOption...).
- Thanks to Gary Gregory.
-o Add ctor TarArchiveEntry(Path, String, LinkOption...).
- Thanks to Gary Gregory.
-o Add IOUtils.EMPTY_LINK_OPTIONS.
- Thanks to Gary Gregory.
-o Add Path support to ZipArchiveOutputStream #123.
- Thanks to Gary Gregory.
-o Some minor improvements.
- Github Pull Request #157.
- Issue: COMPRESS-561.
- Thanks to Arturo Bernal.
-o Update from Java 7 to 8.
-o Update GitHub actions/checkout from v1 to v2.3.4, #114, #124, #139, #150.
- Thanks to Dependabot.
-o Update actions/setup-java from v1.4.0 to v2, #125, #133, #141.
- Thanks to Dependabot, Gary Gregory.
-o Update com.github.luben:zstd-jni from 1.4.4-7 to 1.5.0-2, #118, #159, #173, #174, #203.
- Thanks to Dependabot, Gary Gregory.
-o Update tests slf4j-api from 1.7.26 to 1.7.30 #117.
- Thanks to Dependabot.
-o Update maven-pmd-plugin from 3.12.0 to 3.14.0, #115, #154.
- Thanks to Dependabot.
-o Update maven-bundle-plugin from 3.5.1 to 5.1.2 #116, #180.
- Thanks to Dependabot.
-o Bump memoryfilesystem from 1.3.0 to 2.1.0 #131.
- Thanks to Dependabot.
-o Bump actions/cache from v2 to v2.1.6, #164, #200.
- Thanks to Dependabot.
-o Bump junit from 4.13 to 4.13.2, #143, #167.
- Thanks to Dependabot.
-o Bump mockito-core from 1.10.19 to 3.11.1, #161, #170, #204.
- Thanks to Dependabot.
-o Bump commons.jacoco.version from 0.8.5 to 0.8.7 (Java 16 builds).
- Thanks to Gary Gregory.
-o Bump org.apache.felix:org.apache.felix.framework from 6.0.3 to 7.0.0 (Java 16 builds).
- Thanks to Gary Gregory.
-o Bump commons.japicmp.version from 0.14.3 to 0.15.3 (Java 16 builds).
- Thanks to Gary Gregory.
-o Bump commons.javadoc.version from 3.2.0 to 3.3.0.
- Thanks to Gary Gregory.
-o Update com.github.luben:zstd-jni from 1.4.8-7 to 1.4.9-1 #176.
- Thanks to Dependabot.
-o Update org.tukaani:xz from 1.8 to 1.9
-o Some minor improvements.
- Github Pull Request #193.
- Issue: COMPRESS-577.
- Thanks to Arturo Bernal.
-o Java8 improvements.
- Github Pull Request #194.
- Issue: COMPRESS-578.
- Thanks to Arturo Bernal.
-o Remove redundant local variable.
- Github Pull Request #195.
- Issue: COMPRESS-579.
- Thanks to Arturo Bernal.
-o Remove redundant operation
- Github Pull Request #196.
- Issue: COMPRESS-580.
- Thanks to Arturo Bernal.
-
-Release 1.20
-------------
-
-Commons Compress 1.20 like any version of Commons Compress since 1.3
-can not be built from sources using Java 14 as Java 14 removes
-support for the Pack200 format. We will address this issue with the
-next release.
-
-Fixed Bugs:
-o SevenZFile could throw NullPointerException rather than
- IOException for certain archives. In addition it now handles
- certain empty archives more gracefully.
- Issue: COMPRESS-492.
-o Deflate64CompressorInputStream.read would return 0 for some
- inputs in violation of the InputStream.read contract.
- Issue: COMPRESS-491.
-o SeekableInMemoryByteChannel's truncate didn't set position
- according to the spec in an edge case.
- Issue: COMPRESS-499.
-o BZip2CompressorInputStream now incorporates a similar patch as
- the one that fixed CVE-2019-12900 in libbzip2.
-
- Commons Compress has not been vulnerable to this CVE as it
- would have rejected a file with too many selectors. With this
- patch Commons Compress will be able to read certain archives
- that would have caused errors in Compress 1.19. Thanks to Joseph Allemandou.
-
-Changes:
-o Update optional library com.github.luben:zstd-jni from
- 1.4.0-1 to 1.4.4-7.
- Issue: COMPRESS-493.
-o Update tests from org.apache.felix:org.apache.felix.framework
- 6.0.2 to 6.0.3.
-o SevenZFile can now recover from a certain corruption that
- seems to happen occasionally when split archives are created.
- Issue: COMPRESS-497.
- Thanks to Stefan Schlott.
-o Added random access support to SevenZFile.
- Issue: COMPRESS-342.
- Thanks to Peter Alfred Lee.
-o Added support for split ZIP archives.
- Issue: COMPRESS-477.
- Thanks to Peter Alfred Lee.
-o Added support for reading sparse entries to the TAR package.
- Issue: COMPRESS-124.
- Thanks to Peter Alfred Lee.
-o Update JUnit from 4.12 to 4.13.
-
-Removed:
-o Removed the extraction code from the example CLI class inside
- of the SevenZ package. Not only is it superseeded by the
- examples package, its implementation was vulnerable to the
- ZipSlip attack.
- Issue: COMPRESS-495.
-
-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
-------------
-
-This release changes the OSGi Manifest entry Bundle-SymbolicName from
-org.apache.commons.compress to org.apache.commons.commons-compress.
-
-New features:
-o It is now possible to specify the arguments of zstd-jni's
- ZstdOutputStream constructors via Commons Compress as well.
- Issue: COMPRESS-460.
- Thanks to Carmi Grushko.
-
-Fixed Bugs:
-o The example Expander class has been vulnerable to a path
- traversal in the edge case that happens when the target
- directory has a sibling directory and the name of the target
- directory is a prefix of the sibling directory's name.
- Thanks to Didier Loiseau.
-o Changed the OSGi Import-Package to also optionally import
- javax.crypto so encrypted archives can be read.
- Issue: COMPRESS-456.
-o Changed various implementations of the close method to better
- ensure all held resources get closed even if exceptions are
- thrown during the closing the stream.
- Issue: COMPRESS-457.
-o ZipArchiveInputStream can now detect the APK Signing Block
- used in signed Android APK files and treats it as an "end of
- archive" marker.
- Issue: COMPRESS-455.
-o The cpio streams didn't handle archives using a multi-byte
- encoding properly.
- Issue: COMPRESS-459.
- Thanks to Jens Reimann.
-o ZipArchiveInputStream#read would silently return -1 on a
- corrupted stored entry and even return > 0 after hitting the
- end of the archive.
- Issue: COMPRESS-463.
-o ArArchiveInputStream#read would allow to read from the stream
- without opening an entry at all.
- Issue: COMPRESS-462.
-
-Release 1.17
-------------
-
-New features:
-o Added a unit test that is supposed to fail if we break the
- OSGi manifest entries again.
- Issue: COMPRESS-443.
-o Add a new SkipShieldingInputStream class that can be used with
- streams that throw an IOException when skip is invoked.
- Issue: COMPRESS-449.
-o New constructors have been added to SevenZFile that accept
- char[]s rather than byte[]s in order to avoid a common error
- of using the wrong encoding when creating the byte[]. This
- change may break source compatibility for client code that
- uses one of the constructors expecting a password and passes
- in null as password. We recommend to change the code to use a
- constructor without password argument.
- Issue: COMPRESS-452.
-
-Fixed Bugs:
-o Removed the objenesis dependency from the pom as it is not
- needed at all.
-o Fixed resource leak in ParallelScatterZipCreator#writeTo.
- Issue: COMPRESS-446.
-o Certain errors when parsing ZIP extra fields in corrupt
- archives are now turned into ZipException, they used to
- manifest as ArrayIndexOutOfBoundsException before.
- Issue: COMPRESS-447.
-o IOUtils.copy now verifies the buffer size is bigger than 0.
- Issue: COMPRESS-451.
-o ZipArchiveInputStream failed to read some files with stored
- entries using a data descriptor.
- Issue: COMPRESS-454.
-
-Changes:
-o Fixed some code examples.
- Github Pull Request #63.
- Thanks to Marchenko Sergey.
-o The streams returned by ZipFile and most other decompressing
- streams now provide information about the number of compressed
- and uncompressed bytes read so far. This may be used to detect
- a ZipBomb if the compression ratio exceeds a certain
- threshold, for example.
- For SevenZFile a new method returns the statistics for the
- current entry.
- Issue: COMPRESS-445.
- Thanks to Andreas Beeker.
-o Added a workaround for a bug in AdoptOpenJDK for S/390 to
- BZip2CompressorInputStream.
- Issue: COMPRESS-453.
-
-Release 1.16.1
---------------
-
-Fixed Bug:
-o Fixed the OSGi manifest entry for imports that has been broken
- in 1.16.
- Issue: COMPRESS-442.
-
-Release 1.16
-------------
-
-New features:
-o Add read-only support for Zstandard compression based on the
- Zstd-jni project.
- Issue: COMPRESS-423. Thanks to Andre F de Miranda.
-o Added auto-detection for Zstandard compressed streams.
- Issue: COMPRESS-425.
-o Added write-support for Zstandard compression.
- Issue: COMPRESS-426.
-o Added read-only DEFLATE64 support to ZIP archives and as
- stand-alone CompressorInputStream.
- Issue: COMPRESS-380. Thanks to Christian Marquez Grabia.
-o Added read-only DEFLATE64 support to 7z archives.
- Issue: COMPRESS-437.
-
-Fixed Bugs:
-o Synchronized iteration over a synchronizedList in
- ParallelScatterZipCreator.
- Issue: COMPRESS-430. Thanks to Bruno P. Kinoshita.
-o ZipFile could get stuck in an infinite loop when parsing ZIP
- archives with certain strong encryption headers.
- Issue: COMPRESS-432.
-o Added improved checks to detect corrupted bzip2 streams and
- throw the expected IOException rather than obscure
- RuntimeExceptions.
- Issue: COMPRESS-424.
-
-Changes:
-o Replaces instanceof checks with a type marker in LZ77 support code.
- Issue: COMPRESS-435. Thanks to BELUGA BEHR.
-o Updated XZ for Java dependency to 1.8 in order to pick up bug fix
- to LZMA2InputStream's available method.
-o ZipArchiveEntry now exposes how the name or comment have been
- determined when the entry was read.
- Issue: COMPRESS-429. Thanks to Damiano Albani.
-o ZipFile.getInputStream will now always buffer the stream
- internally in order to improve read performance.
- Issue: COMPRESS-438.
-o Speed improvement for DEFLATE64 decompression.
- Issue: COMPRESS-440. Thanks to Dawid Weiss.
-o Added a few extra sanity checks for the rarer compression
- methods used in ZIP archives.
- Issue: COMPRESS-436.
-o Simplified the special handling for the dummy byte required by
- zlib when using java.util.zip.Inflater.
- Issue: COMPRESS-441.
-o Various code cleanups.
- Github Pull Request #61. Thanks to Shahab Kondri.
-o TarArchiveEntry's preserveLeadingSlashes constructor argument
- has been renamed and can now also be used to preserve the
- drive letter on Windows.
-
-Release 1.15
-------------
-
-New features:
-o Added magic MANIFEST entry Automatic-Module-Name so the module
- name will be org.apache.commons.compress when the jar is used
- as an automatic module in Java9.
- Issue: COMPRESS-397.
-o Added a new utility class FixedLengthBlockOutputStream that
- can be used to ensure writing always happens in blocks of a
- given size.
- Issue: COMPRESS-405. Thanks to Simon Spero.
-o It is now possible to specify/read custom PAX headers when
- writing/reading tar archives.
- Issue: COMPRESS-400. Thanks to Simon Spero.
-
-Fixed Bugs:
-o Make sure "version needed to extract" in local file header and
- central directory of a ZIP archive agree with each other.
- Also ensure the version is set to 2.0 if DEFLATE is used.
- Issue: COMPRESS-394.
-o Don't use a data descriptor in ZIP archives when copying a raw
- entry that already knows its size and CRC information.
- Issue: COMPRESS-395.
-o Travis build redundantly repeats compilation and tests redundantly
- GitHub Pull Request #43. Thanks to Simon Spero.
- Issue: COMPRESS-413
-o The MANIFEST of 1.14 lacks an OSGi Import-Package for XZ for
- Java.
- Issue: COMPRESS-396.
-o BUILDING.md now passes the RAT check.
- Issue: COMPRESS-406. Thanks to Simon Spero.
-o Made sure ChecksumCalculatingInputStream receives valid
- checksum and input stream instances via the constructor.
- Issue: COMPRESS-412. Thanks to Michael Hausegger.
-o TarArchiveOutputStream now verifies the block and record sizes
- specified at construction time are compatible with the tar
- specification. In particular 512 is the only record size
- accepted and the block size must be a multiple of 512.
- Issue: COMPRESS-407. Thanks to Simon Spero.
-o Fixed class names of CpioArchiveEntry and
- CpioArchiveInputStream in various Javadocs.
- Issue: COMPRESS-415.
-o The code of the extended timestamp zip extra field incorrectly
- assumed the time was stored as unsigned 32-bit int and thus
- created incorrect results for years after 2037.
- Issue: COMPRESS-416. Thanks to Simon Spero.
-o Removed ZipEncoding code that became obsolete when we started
- to require Java 5 as baseline long ago.
- Issue: COMPRESS-410. Thanks to Simon Spero.
-o The tar package will no longer try to parse the major and
- minor device numbers unless the entry represents a character
- or block special file.
- Issue: COMPRESS-417.
-o When reading tar headers with name fields containing embedded
- NULs, the name will now be terminated at the first NUL byte.
- Issue: COMPRESS-421. Thanks to Roel Spilker.
-o Simplified TarArchiveOutputStream by replacing the internal
- buffering with new class FixedLengthBlockOutputStream.
- Issue: COMPRESS-409.
-
-Release 1.14
-------------
-
-New features:
-o Added write support for Snappy.
- Issue: COMPRESS-246.
-o Added support for LZ4 (block and frame format).
- Issue: COMPRESS-271.
-o Add static detect(InputStream in) to CompressorStreamFactory
- and ArchiveStreamFactory
- Issue: COMPRESS-385.
-o Added a way to limit amount of memory ZCompressorStream may
- use.
- Issue: COMPRESS-382. Thanks to Tim Allison.
-o Added a way to limit amount of memory ZCompressorStream may
- use.
- Issue: COMPRESS-386. Thanks to Tim Allison.
-o Added a way to limit amount of memory LZMACompressorStream and
- XZCompressorInputStream may use.
- Issue: COMPRESS-382. Thanks to Tim Allison.
-o Add Brotli decoder based on the Google Brotli library.
- Issue: COMPRESS-392. Thanks to Philippe Mouawad.
-o ZipEntry now exposes its data offset.
- Issue: COMPRESS-390. Thanks to Zbynek Vyskovsky.
-o Using ZipArchiveEntry's setAlignment it is now possible to
- ensure the data offset of an entry starts at a file position
- that at word or page boundaries.
- A new extra field has been added for this purpose.
- Issue: COMPRESS-391. Thanks to Zbynek Vyskovsky.
-
-Fixed Bugs:
-o SnappyCompressorInputStream slides the window too early
- leading to ArrayIndexOutOfBoundsExceptions for some streams.
- Issue: COMPRESS-378.
-o ZipArchiveEntry#isUnixSymlink now only returns true if the
- corresponding link flag is the only file-type flag set.
- Issue: COMPRESS-379. Thanks to Guillaume Boué.
-o Fixed an integer overflow in CPIO's CRC calculation.
- Pull Request #17. Thanks to Daniel Collin.
-o Make unit tests work on Windows paths with spaces in their names.
- Issue: COMPRESS-387.
-o Internal location pointer in ZipFile could get incremented
- even if nothing had been read.
- Issue: COMPRESS-389.
-o LZMACompressorOutputStream#flush would throw an exception
- rather than be the NOP it promised to be.
- Issue: COMPRESS-393.
-
-Changes:
-o The blocksize for FramedSnappyCompressorInputStream can now be
- configured as some IWA files seem to be using blocks larger
- than the default 32k.
- Issue: COMPRESS-358.
-o BZip2CompressorInputstream now uses BitInputStream internally.
- Pull Request #13. Thanks to Thomas Meyer.
-o Improved performance for concurrent reads from ZipFile when
- reading from a file.
- Issue: COMPRESS-388. Thanks to Zbynek Vyskovsky.
-
-Release 1.13
-------------
-
-Commons Compress 1.13 is the first version to require Java 7 at
-runtime.
-
-Changes in this version include:
-
-New features:
-o SevenZFile, SevenZOutputFile, ZipFile and
- ZipArchiveOutputStream can now work on non-file resources if
- they can be accessed via SeekableByteChannel.
- Issue: COMPRESS-327.
-o Allow compressor extensions through a standard JRE ServiceLoader.
- Issue: COMPRESS-368.
-o Allow archive extensions through a standard JRE ServiceLoader.
- Issue: COMPRESS-369.
-o Add write support for the legacy LZMA format, this requires XZ
- for Java 1.6.
- Issue: COMPRESS-373.
-o Add write support for the legacy LZMA stream to 7z, this
- requires XZ for Java 1.6.
- Issue: COMPRESS-374.
-o Allow the clients of ParallelScatterZipCreator to provide
- ZipArchiveEntryRequestSupplier.
- Issue: COMPRESS-375. Thanks to Plamen Totev.
-o Add a version-independent link to the API docs of the latest
- release.
- Issue: COMPRESS-372.
-
-Fixed Bugs:
-o BitInputStream could return bad results when overflowing
- internally - if two consecutive reads tried to read more than
- 64 bits.
- Issue: COMPRESS-363.
-o ZipArchiveInputStream.closeEntry does not properly advance to
- next entry if there are junk bytes at end of data section.
- Issue: COMPRESS-364. Thanks to Mike Mole.
-o ZipArchiveInputStream now throws an Exception if it encounters
- a broken ZIP archive rather than signaling end-of-archive.
- Issue: COMPRESS-367. Thanks to Mike Mole.
-o ScatterZipOutputStream didn't close the StreamCompressor
- causing a potential resource leak.
- Issue: COMPRESS-377.
-
-Changes:
-o Update Java requirement from 6 to 7.
- Issue: COMPRESS-360.
-o Clarified which TarArchiveEntry methods are useless for
- entries read from an archive.
- Issue: COMPRESS-366.
-
-Release 1.12
-------------
-
-Commons Compress 1.12 is the first version to require Java 6 at
-runtime.
-
-Release 1.12 changes the behavior of BZip2CompressorOutputStream's
-finalize method so that it no longer invokes finish. This is going to
-break code that relied on the finalizer to clean up an unfinished
-stream. The code will need to be changed to call finish or close
-itself. Note that a finalizer is not guaranteed to run, so the feature
-was not 100% effective in any case.
-
-New features:
-
-o FramedSnappyCompressorInputStream now supports the dialect of
- Snappy used by the IWA files contained within the zip archives
- used in Apple's iWork 13 files.
- Issue: COMPRESS-352.
-
-Fixed Bugs:
-
-o SevenZFile.read() throws an IllegalStateException for empty entries.
- Issue: COMPRESS-348.
-o TarArchiveInputStream failed to parse PAX headers that included
- blank lines.
- Issue: COMPRESS-355. Thanks to Jeremy Gustie.
-o TarArchiveInputStream failed to parse PAX headers whose tar entry
- name ended with a slash.
- Issue: COMPRESS-356. Thanks to Jeremy Gustie.
-
-Changes:
-o Update requirement from Java 5 to 6.
- Issue: COMPRESS-349.
-o TarArchiveEntry wastefully allocates empty arrays.
- Issue: COMPRESS-350.
-o Javadoc for BZip2CompressorInputStream(InputStream, boolean) should
- refer to IOEx, not NPE.
- Issue: COMPRESS-353.
-o PureJavaCrc32C in the snappy package is now final so it is now safe
- to call a virtual method inside the constructor.
- Issue: COMPRESS-354.
-
-o ZipArchiveInputStream and CpioArchiveInputStream could throw
- exceptions who's messages contained potentially corrupt entry names
- read from a broken archive. They will now sanitize the names by
- replacing unprintable characters and restricting the length to 255
- characters.
- Issue: COMPRESS-351.
-o BZip2CompressorOutputStream no longer tries to finish the output
- stream in finalize. This is a breaking change for code that relied
- on the finalizer.
- Issue: COMPRESS-357.
-
-
-Release 1.11
-------------
-
-New features:
-o TarArchiveInputStream now supports reading global PAX headers.
- Issue: COMPRESS-347.
-o The PAX headers for sparse entries written by star are now
- applied.
- Issue: COMPRESS-346.
-o GNU sparse files using one of the PAX formats are now
- detected, but cannot be extracted.
- Issue: COMPRESS-345.
-o New method SevenZFile.getEntries can be used to list the
- contents of a 7z archive.
- Issue: COMPRESS-341.
-o When using Zip64Mode.Always also use ZIP64 extensions inside
- the central directory.
- GitHub Pull Request #10 Thanks to Matt Hovey.
-o ZipFile.getRawInputStream() is now part of the public API
- Issue: COMPRESS-323.
-o Allow byte-for-byte replication of Zip entries.
- GitHub Pull Request #6. Thanks to Jason van Zyl.
-o TarArchiveEntry's preserveLeadingSlashes is now a property and used
- on later calls to setName, too.
- This behavior is a breaking change.
- Issue: COMPRESS-328.
-o Added read-only support for bzip2 compression used inside of
- ZIP archives.
- GitHub Pull Request #4. Thanks to Sören Glimm.
-
-Fixed Bugs:
-o ArArchiveInputStream can now read GNU extended names that are
- terminated with a NUL byte rather than a linefeed.
- Issue: COMPRESS-344.
-o Native Memory Leak in Sevenz-DeflateDecoder.
- Issue: COMPRESS-343. Thanks to Rene Preissel.
-o SevenZFile will now only try to drain an entry's content when
- moving on to the next entry if data is read from the next
- entry. This should improve performance for applications that
- try to skip over entries.
- Issue: COMPRESS-340. Thanks to Dawid Weiss.
-o file names of tar archives using the xstar format are now
- parsed properly.
- Issue: COMPRESS-336.
-o checksums of tars that pad the checksum field to the left are
- now calculated properly.
- Issue: COMPRESS-335.
-o ArArchiveInputStream failed to read past the first entry when
- BSD long names have been used.
- Issue: COMPRESS-334. Thanks to Jeremy Gustie.
-o Added buffering for random access which speeds up 7Z support.
- Issue: COMPRESS-333. Thanks to Dawid Weiss.
-o The checksum validation of TararchiveEntry is now as strict as
- the validation of GNU tar, which eliminates a few cases of
- false positives of ArchiveStreamFactory.
- This behavior is a breaking change since the check has become
- more strict but any archive that fails the checksum test now
- would also fail it when extracted with other tools and must be
- considered an invalid archive.
- Issue: COMPRESS-331.
-o SnappyCompressorInputStream and
- FramedSnappyCompressorInputStream returned 0 at the end of the
- stream under certain circumstances.
- Issue: COMPRESS-332.
-o Adjusted unit test to updates in Java8 and later that change
- the logic of ZipEntry#getTime.
- Issue: COMPRESS-326.
-o TarArchiveOutputStream will now recognize GNU long name and
- link entries even if the special entry has a different name
- than GNU tar uses itself. This seems to be the case for
- archives created by star.
- Issue: COMPRESS-324.
-o ArrayIndexOutOfBoundsException when InfoZIP type 7875 extra
- fields are read from the central directory.
- Issue: COMPRESS-321.
-
-Release 1.10
-------------
-
-Release 1.10 moves the former
-org.apache.commons.compress.compressors.z._internal_ package which
-breaks backwards compatibility for code which used the old package.
-
-This also changes the superclass of ZCompressorInputStream which makes
-this class binary incompatible with the one of Compress 1.9. Code
-that extends ZCompressorInputStream will need to be recompiled in
-order to work with Compress 1.10.
-
-New features:
-o CompressorStreamFactory can now auto-detect DEFLATE streams
- with ZLIB header.
- Issue: COMPRESS-316. Thanks to Nick Burch.
-o CompressorStreamFactory can now auto-detect LZMA streams.
- Issue: COMPRESS-313.
-o Added support for parallel compression. This low-level API allows
- a client to build a zip/jar file by using the class
- org.apache.commons.compress.archivers.zip.ParallelScatterZipCreator.
-
- Zip documentation updated with further notes about parallel features.
-
- Please note that some aspects of jar creation need to be
- handled by client code and is not part of commons-compress for this
- release.
- Issue: COMPRESS-296. Thanks to Kristian Rosenvold.
-o Cut overall object instantiation in half by changing file
- header generation algorithm, for a 10-15 percent performance
- improvement.
-
- Also extracted two private methods createLocalFileHeader
- and createCentralFileHeader in ZipArchiveOutputStream.
- These may have some interesting additional usages in the
- near future. Thanks to Kristian Rosenvold.
-o New methods in ZipArchiveOutputStream and ZipFile allows
- entries to be copied from one archive to another without
- having to re-compress them.
- Issue: COMPRESS-295. Thanks to Kristian Rosenvold.
-
-Fixed Bugs:
-o TarArchiveInputStream can now read entries with group or
- user ids > 0x80000000.
- Issue: COMPRESS-314.
-o TarArchiveOutputStream can now write entries with group or
- user ids > 0x80000000.
- Issue: COMPRESS-315.
-o TarArchiveEntry's constructor with a File and a String arg
- didn't normalize the name.
- Issue: COMPRESS-312.
-o ZipEncodingHelper no longer reads system properties directly
- to determine the default charset.
- Issue: COMPRESS-308.
-o BZip2CompressorInputStream#read would return -1 when asked to
- read 0 bytes.
- Issue: COMPRESS-309.
-o ArchiveStreamFactory fails to pass on the encoding when creating
- some streams.
- * ArjArchiveInputStream
- * CpioArchiveInputStream
- * DumpArchiveInputStream
- * JarArchiveInputStream
- * TarArchiveInputStream
- * JarArchiveOutputStream
- Issue: COMPRESS-306.
-o Restore immutability/thread-safety to ArchiveStreamFactory.
- The class is now immutable provided that the method setEntryEncoding
- is not used. The class is thread-safe.
- Issue: COMPRESS-302.
-o Restore immutability/thread-safety to CompressorStreamFactory.
- The class is now immutable provided that the method
- setDecompressConcatenated is not used. The class is thread-safe.
- Issue: COMPRESS-303.
-o ZipFile logs a warning in its finalizer when its constructor
- has thrown an exception reading the file - for example if the
- file doesn't exist.
- Issue: COMPRESS-297.
-o Improved error message when tar encounters a groupId that is
- too big to write without using the STAR or POSIX format.
- Issue: COMPRESS-290. Thanks to Kristian Rosenvold.
-o SevenZFile now throws the specific PasswordRequiredException
- when it encounters an encrypted stream but no password has
- been specified.
- Issue: COMPRESS-298.
-
-Changes:
-o Moved the package
- org.apache.commons.compress.compressors.z._internal_ to
- org.apache.commons.compress.compressors.lzw and made it part
- of the API that is officially supported. This will break
- existing code that uses the old package. Thanks to Damjan Jovanovic.
-
-For complete information on Apache Commons Compress, including instructions
-on how to submit bug reports, patches, or suggestions for improvement,
-see the Apache Commons Compress website:
-
-https://commons.apache.org/compress/
-
-
-Release 1.9
------------
-
-New features:
-o Added support for DEFLATE streams without any gzip framing.
- Issue: COMPRESS-263.
- Thanks to Matthias Stevens.
-
-Fixed Bugs:
-o When reading 7z files unknown file properties and properties of type
- kDummy are now ignored.
- Issue: COMPRESS-287.
-o Expanding 7z archives using LZMA compression could cause an
- EOFException.
- Issue: COMPRESS-286.
-o Long-Name and -link or PAX-header entries in TAR archives always had
- the current time as last modfication time, creating archives that
- are different at the byte level each time an archive was built.
- Issue: COMPRESS-289.
- Thanks to Bob Robertson.
-
-Changes:
-o Checking for XZ for Java may be expensive. The result will now be
- cached outside of an OSGi environment. You can use the new
- XZUtils#setCacheXZAvailability to overrride this default behavior.
- Issue: COMPRESS-285.
-
-Release 1.8.1
--------------
-
-New features:
-o COMPRESS-272: CompressorStreamFactory can now auto-detect Unix compress
- (".Z") streams.
-
-Fixed Bugs:
-o COMPRESS-270: The snappy, ar and tar inputstreams might fail to read from a
- non-buffered stream in certain cases.
-o COMPRESS-277: IOUtils#skip might skip fewer bytes than requested even though
- more could be read from the stream.
-o COMPRESS-276: ArchiveStreams now validate there is a current entry before
- reading or writing entry data.
-o ArjArchiveInputStream#canReadEntryData tested the current
- entry of the stream rather than its argument.
-o COMPRESS-274: ChangeSet#delete and deleteDir now properly deal with unnamed
- entries.
-o COMPRESS-273: Added a few null checks to improve robustness.
-o COMPRESS-278: TarArchiveInputStream failed to read archives with empty
- gid/uid fields.
-o COMPRESS-279: TarArchiveInputStream now again throws an exception when it
- encounters a truncated archive while reading from the last
- entry.
-o COMPRESS-280: Adapted TarArchiveInputStream#skip to the modified
- IOUtils#skip method. Thanks to BELUGA BEHR.
-
-Changes:
-o The dependency on org.tukaani:xz is now marked as optional.
-
-Release 1.8
------------
-
-New features:
-o GzipCompressorInputStream now provides access to the same
- metadata that can be provided via GzipParameters when writing
- a gzip stream.
- Issue: COMPRESS-260.
-o SevenZOutputFile now supports chaining multiple
- compression/encryption/filter methods and passing options to
- the methods.
- Issue: COMPRESS-266.
-o The (compression) method(s) can now be specified per entry in
- SevenZOutputFile.
- Issue: COMPRESS-261.
-o SevenZArchiveEntry "knows" which method(s) have been used to
- write it to the archive.
- Issue: COMPRESS-258.
-o The 7z package now supports the delta filter as method.
-o The 7z package now supports BCJ filters for several platforms.
- You will need a version >= 1.5 of XZ for Java to read archives
- using BCJ, though.
- Issue: COMPRESS-257.
-
-Fixed Bugs:
-o BZip2CompressorInputStream read fewer bytes than possible from
- a truncated stream.
- Issue: COMPRESS-253.
-o SevenZFile failed claiming the dictionary was too large when
- archives used LZMA compression for headers and content and
- certain non-default dictionary sizes.
- Issue: COMPRESS-253.
-o CompressorStreamFactory.createCompressorInputStream with
- explicit compression did not honor decompressConcatenated
- Issue: COMPRESS-259.
-o TarArchiveInputStream will now read archives created by tar
- implementations that encode big numbers by not adding a
- trailing NUL.
- Issue: COMPRESS-262.
-o ZipArchiveInputStream would return NUL bytes for the first 512
- bytes of a STORED entry if it was the very first entry of the
- archive.
- Issue: COMPRESS-264.
-o When writing PAX/POSIX headers for TAR entries with
- backslashes or certain non-ASCII characters in their name
- TarArchiveOutputStream could fail.
- Issue: COMPRESS-265.
-o ArchiveStreamFactory now throws a StreamingNotSupported - a
- new subclass of ArchiveException - if it is asked to read from
- or write to a stream and Commons Compress doesn't support
- streaming for the format. This currently only applies to the
- 7z format.
- Issue: COMPRESS-267.
-
-Release 1.7
------------
-
-New features:
-o Read-Only support for Snappy compression.
- Issue: COMPRESS-147. Thanks to BELUGA BEHR.
-o Read-Only support for .Z compressed files.
- Issue: COMPRESS-243. Thanks to Damjan Jovanovic.
-o ZipFile and ZipArchiveInputStream now support reading entries
- compressed using the SHRINKING method. Thanks to Damjan Jovanovic.
-o GzipCompressorOutputStream now supports setting the compression
- level and the header metadata (filename, comment, modification time,
- operating system and extra flags)
- Issue: COMPRESS-250. Thanks to Emmanuel Bourg.
-o ZipFile and ZipArchiveInputStream now support reading entries
- compressed using the IMPLODE method.
- Issue: COMPRESS-115. Thanks to Emmanuel Bourg.
-o ZipFile and the 7z file classes now implement Closeable and can be
- used in try-with-resources constructs.
-
-Fixed Bugs:
-o SevenZOutputFile#closeArchiveEntry throws an exception when using
- LZMA2 compression on Java8. Issue: COMPRESS-241.
-o 7z reading of big 64bit values could be wrong.
- Issue: COMPRESS-244. Thanks to Nico Kruber.
-o TarArchiveInputStream could fail to read an archive completely.
- Issue: COMPRESS-245.
-o The time-setters in X5455_ExtendedTimestamp now set the
- corresponding flags explicitly - i.e. they set the bit if the valus
- is not-null and reset it otherwise. This may cause
- incompatibilities if you use setFlags to unset a bit and later set
- the time to a non-null value - the flag will now be set.
- Issue: COMPRESS-242.
-o SevenZOutputFile would create invalid archives if more than six
- empty files or directories were included. Issue: COMPRESS-252.
-
-Release 1.6
------------
-
-Version 1.6 introduces changes to the internal API of the tar package that
-break backwards compatibility in the following rare cases. This version
-removes the package private TarBuffer class along with the protected "buffer"
-members in TarArchiveInputStream and TarArchiveOutputStream. This change will
-only affect you if you have created a subclass of one of the stream classes
-and accessed the buffer member or directly used the TarBuffer class.
-
-Changes in this version include:
-
-New features:
-o Added support for 7z archives. Most compression algorithms
- can be read and written, LZMA and encryption are only
- supported when reading. Issue: COMPRESS-54. Thanks to Damjan Jovanovic.
-o Added read-only support for ARJ archives that don't use
- compression. Issue: COMPRESS-226. Thanks to Damjan Jovanovic.
-o DumpArchiveInputStream now supports an encoding parameter that
- can be used to specify the encoding of file names.
-o The CPIO streams now support an encoding parameter that can be
- used to specify the encoding of file names.
-o Read-only support for LZMA standalone compression has been added.
- Issue: COMPRESS-111.
-
-Fixed Bugs:
-o TarBuffer.tryToConsumeSecondEOFRecord could throw a
- NullPointerException Issue: COMPRESS-223. Thanks to Jeremy Gustie.
-o Parsing of zip64 extra fields has become more lenient in order
- to be able to read archives created by DotNetZip and maybe
- other archivers as well. Issue: COMPRESS-228.
-o TAR will now properly read the names of symbolic links with
- long names that use the GNU variant to specify the long file
- name. Issue: COMPRESS-229. Thanks to Christoph Gysin.
-o ZipFile#getInputStream could return null if the archive
- contained duplicate entries.
- The class now also provides two new methods to obtain all
- entries of a given name rather than just the first one.
- Issue: COMPRESS-227.
-o CpioArchiveInputStream failed to read archives created by
- Redline RPM. Issue: COMPRESS-236. Thanks to Andrew Duffy.
-o TarArchiveOutputStream now properly handles link names that
- are too long to fit into a traditional TAR header. Issue:
- COMPRESS-237. Thanks to Emmanuel Bourg.
-o The auto-detecting create*InputStream methods of Archive and
- CompressorStreamFactory could fail to detect the format of
- blocking input streams. Issue: COMPRESS-239.
-
-Changes:
-o Readabilty patch to TarArchiveInputStream. Issue:
- COMPRESS-232. Thanks to BELUGA BEHR.
-o Performance improvements to TarArchiveInputStream, in
- particular to the skip method. Issue: COMPRESS-234. Thanks to
- BELUGA BEHR.
-
-Release 1.5
------------
-
-New features:
-
-o CompressorStreamFactory has an option to create decompressing
- streams that decompress the full input for formats that support
- multiple concatenated streams.
- Issue: COMPRESS-220.
-
-Fixed Bugs:
-
-o Typo in CompressorStreamFactory Javadoc
- Issue: COMPRESS-218.
- Thanks to Gili.
-o ArchiveStreamFactory's tar stream detection created false positives
- for AIFF files.
- Issue: COMPRESS-191.
- Thanks to Jukka Zitting.
-o XZ for Java didn't provide an OSGi bundle. Compress' dependency on
- it has now been marked optional so Compress itself can still be used
- in an OSGi context.
- Issue: COMPRESS-199.
- Thanks to Jukka Zitting.
-o When specifying the encoding explicitly TarArchiveOutputStream would
- write unreadable names in GNU mode or even cause errors in POSIX
- mode for file names longer than 66 characters.
- Issue: COMPRESS-200.
- Thanks to Christian Schlichtherle.
-o Writing TAR PAX headers failed if the generated entry name ended
- with a "/".
- Issue: COMPRESS-203.
-o ZipArchiveInputStream sometimes failed to provide input to the
- Inflater when it needed it, leading to reads returning 0.
- Issue: COMPRESS-189.
- Thanks to Daniel Lowe.
-o TarArchiveInputStream ignored the encoding for GNU long name
- entries.
- Issue: COMPRESS-212.
-o TarArchiveInputStream could leave the second EOF record inside the
- stream it had just finished reading.
- Issue: COMPRESS-206.
- Thanks to Peter De Maeyer.
-o DumpArchiveInputStream no longer implicitly closes the original
- input stream when it reaches the end of the archive.
-o ZipArchiveInputStream now consumes the remainder of the archive when
- getNextZipEntry returns null.
-o Unit tests could fail if the source tree was checked out to a
- directory tree containign spaces.
- Issue: COMPRESS-205.
- Thanks to Daniel Lowe.
-o Fixed a potential ArrayIndexOutOfBoundsException when reading STORED
- entries from ZipArchiveInputStream.
- Issue: COMPRESS-219.
-o CompressorStreamFactory can now be used without XZ for Java being
- available.
- Issue: COMPRESS-221.
-
-Changes:
-
-o Improved exception message if a zip archive cannot be read because
- of an unsupported compression method.
- Issue: COMPRESS-188.
- Thanks to Harald Kuhn.
-o ArchiveStreamFactory has a setting for file name encoding that sets
- up encoding for ZIP and TAR streams.
- Issue: COMPRESS-192.
- Thanks to Jukka Zitting.
-o TarArchiveEntry now has a method to verify its checksum.
- Issue: COMPRESS-191.
- Thanks to Jukka Zitting.
-o Split/spanned ZIP archives are now properly detected by
- ArchiveStreamFactory but will cause an
- UnsupportedZipFeatureException when read.
-o ZipArchiveInputStream now reads archives that start with a "PK00"
- signature. Archives with this signatures are created when the
- archiver was willing to split the archive but in the end only needed
- a single segment - so didn't split anything.
- Issue: COMPRESS-208.
-o TarArchiveEntry has a new constructor that allows setting linkFlag
- and preserveLeadingSlashes at the same time.
- Issue: COMPRESS-201.
-o ChangeSetPerformer has a new perform overload that uses a ZipFile
- instance as input.
- Issue: COMPRESS-159.
-o Garbage collection pressure has been reduced by reusing temporary
- byte arrays in classes.
- Issue: COMPRESS-172.
- Thanks to Thomas Mair.
-o Can now handle zip extra field 0x5455 - Extended Timestamp.
- Issue: COMPRESS-210.
- Thanks to Julius Davies.
-o handle zip extra field 0x7875 - Info Zip New Unix Extra Field.
- Issue: COMPRESS-211.
- Thanks to Julius Davies.
-o ZipShort, ZipLong, ZipEightByteInteger should implement Serializable
- Issue: COMPRESS-213.
- Thanks to Julius Davies.
-o better support for Unix symlinks in ZipFile entries.
- Issue: COMPRESS-214.
- Thanks to Julius Davies.
-o ZipFile's initialization has been improved for non-Zip64 archives.
- Issue: COMPRESS-215.
- Thanks to Robin Power.
-o Updated XZ for Java dependency to 1.2 as this version provides
- proper OSGi manifest attributes.
-
-Release 1.4.1
--------------
-
-This is a security bugfix release, see
-https://commons.apache.org/proper/commons-compress/security.html#Fixed_in_Apache_Commons_Compress_1.4.1
-
-Fixed Bugs:
-
-o Ported libbzip2's fallback sort algorithm to
- BZip2CompressorOutputStream to speed up compression in certain
- edge cases.
-
-Release 1.4
------------
-
-New features:
-o COMPRESS-156: Support for the XZ format has been added.
-
-Fixed Bugs:
-o COMPRESS-183: The tar package now allows the encoding of file names to be
- specified and can optionally use PAX extension headers to
- write non-ASCII file names.
- The stream classes now write (or expect to read) archives that
- use the platform's native encoding for file names. Apache
- Commons Compress 1.3 used to strip everything but the lower
- eight bits of each character which effectively only worked for
- ASCII and ISO-8859-1 file names.
- This new default behavior is a breaking change.
-o COMPRESS-184: TarArchiveInputStream failed to parse PAX headers that
- contained non-ASCII characters.
-o COMPRESS-178: TarArchiveInputStream throws IllegalArgumentException instead of IOException
-o COMPRESS-179: TarUtils.formatLongOctalOrBinaryBytes() assumes the field will be 12 bytes long
-o COMPRESS-175: GNU Tar sometimes uses binary encoding for UID and GID
-o COMPRESS-171: ArchiveStreamFactory.createArchiveInputStream would claim
- short text files were TAR archives.
-o COMPRESS-164: ZipFile didn't work properly for archives using unicode extra
- fields rather than UTF-8 filenames and the EFS-Flag.
-o COMPRESS-169: For corrupt archives ZipFile would throw a RuntimeException in
- some cases and an IOException in others. It will now
- consistently throw an IOException.
-
-Changes:
-o COMPRESS-182: The tar package can now write archives that use star/GNU/BSD
- extensions or use the POSIX/PAX variant to store numeric
- values that don't fit into the traditional header fields.
-o COMPRESS-181: Added a workaround for a Bug some tar implementations that add
- a NUL byte as first byte in numeric header fields.
-o COMPRESS-176: Added a workaround for a Bug in WinZIP which uses backslashes
- as path separators in Unicode Extra Fields.
-o COMPRESS-131: ArrayOutOfBounds while decompressing bz2. Added test case - code already seems to have been fixed.
-o COMPRESS-146: BZip2CompressorInputStream now optionally supports reading of
- concatenated .bz2 files.
-o COMPRESS-154: GZipCompressorInputStream now optionally supports reading of
- concatenated .gz files.
-o COMPRESS-16: The tar package can now read archives that use star/GNU/BSD
- extensions for files that are longer than 8 GByte as well as
- archives that use the POSIX/PAX variant.
-o COMPRESS-165: The tar package can now write archives that use star/GNU/BSD
- extensions for files that are longer than 8 GByte as well as
- archives that use the POSIX/PAX variant.
-o COMPRESS-166: The tar package can now use the POSIX/PAX variant for writing
- entries with names longer than 100 characters.
-
-Release 1.3
------------
-
-Commons Compress 1.3 is the first version to require Java5 at runtime.
-
-Changes in this version include:
-
-New features:
-o Support for the Pack200 format has been added. Issue: COMPRESS-142.
-o Read-only support for the format used by the Unix dump(8) tool
- has been added. Issue: COMPRESS-132.
-
-Fixed Bugs:
-o BZip2CompressorInputStream's getBytesRead method always
- returned 0.
-o ZipArchiveInputStream and ZipArchiveOutputStream could leak
- resources on some JDKs. Issue: COMPRESS-152.
-o TarArchiveOutputStream's getBytesWritten method didn't count
- correctly. Issue: COMPRESS-160.
-
-Changes:
-o The ZIP package now supports Zip64 extensions. Issue: COMPRESS-36.
-o The AR package now supports the BSD dialect of storing file
- names longer than 16 chars (both reading and writing).
- Issue: COMPRESS-144.
-
-Release 1.2
------------
-
-New features:
-o COMPRESS-123: ZipArchiveEntry has a new method getRawName that provides the
- original bytes that made up the name. This may allow user
- code to detect the encoding.
-o COMPRESS-122: TarArchiveEntry provides access to the flags that determine
- whether it is an archived symbolic link, pipe or other
- "uncommon" file system object.
+##
-Fixed Bugs:
-o COMPRESS-129: ZipArchiveInputStream could fail with a "Truncated ZIP" error
- message for entries between 2 GByte and 4 GByte in size.
-o COMPRESS-145: TarArchiveInputStream now detects sparse entries using the
- oldgnu format and properly reports it cannot extract their
- contents.
-o COMPRESS-130: The Javadoc for ZipArchiveInputStream#skip now matches the
- implementation, the code has been made more defensive.
-o COMPRESS-140: ArArchiveInputStream fails if entries contain only blanks for
- userId or groupId. Thanks to Trejkaz.
-o COMPRESS-139: ZipFile may leak resources on some JDKs.
-o COMPRESS-125: BZip2CompressorInputStream throws IOException if
- underlying stream returns available() == 0.
- Removed the check.
-o COMPRESS-127: Calling close() on inputStream returned by
- CompressorStreamFactory.createCompressorInputStream()
- does not close the underlying input stream.
-o COMPRESS-119: TarArchiveOutputStream#finish now writes all buffered
- data to the stream
+Historical list of changes: ${project.url}changes-report.html
-Changes:
-o ZipFile now implements finalize which closes the underlying
- file.
-o COMPRESS-117: Certain tar files not recognised by
- ArchiveStreamFactory.
+For complete information on ${project.name}, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the ${project.name} website:
-Release 1.1
------------
+${project.url}
-New features:
-o COMPRESS-108: Command-line interface to list archive contents.
- Usage: java -jar commons-compress-n.m.jar archive-name [zip|tar|etc]
-o COMPRESS-109: Tar implementation does not support Pax headers
- Added support for reading pax headers.
- Note: does not support global pax headers
-o COMPRESS-103: ZipArchiveInputStream can optionally extract data that used
- the STORED compression method and a data descriptor.
- Doing so in a stream is not safe in general, so you have to
- explicitly enable the feature. By default the stream will
- throw an exception if it encounters such an entry.
-o COMPRESS-98: The ZIP classes will throw specialized exceptions if any
- attempt is made to read or write data that uses zip features
- not supported (yet).
-o COMPRESS-99: ZipFile#getEntries returns entries in a predictable order -
- the order they appear inside the central directory.
- A new method getEntriesInPhysicalOrder returns entries in
- order of the entry data, i.e. the order ZipArchiveInputStream
- would see.
-o The Archive*Stream and ZipFile classes now have
- can(Read|Write)EntryData methods that can be used to check
- whether a given entry's data can be read/written.
- The method currently returns false for ZIP archives if an
- entry uses an unsupported compression method or encryption.
-o COMPRESS-89: The ZIP classes now detect encrypted entries.
-o COMPRESS-97: Added autodetection of compression format to
- CompressorStreamFactory.
-o COMPRESS-95: Improve ExceptionMessages in ArchiveStreamFactory Thanks to Joerg Bellmann.
-o A new constructor of TarArchiveEntry can create entries with
- names that start with slashes - the default is to strip
- leading slashes in order to create relative path names.
-o ArchiveEntry now has a getLastModifiedDate method.
-o COMPRESS-78: Add a BZip2Utils class modelled after GZipUtils Thanks to Jukka Zitting.
+Download page: ${project.url}download_io.cgi
-Fixed Bugs:
-o COMPRESS-72: Move acknowledgements from NOTICE to README
-o COMPRESS-113: TarArchiveEntry.parseTarHeader() includes the trailing space/NUL when parsing the octal size
-o COMPRESS-118: TarUtils.parseName does not properly handle characters outside the range 0-127
-o COMPRESS-107: ArchiveStreamFactory does not recognise tar files created by Ant
-o COMPRESS-110: Support "ustar" prefix field, which is used when file paths are longer
- than 100 characters.
-o COMPRESS-100: ZipArchiveInputStream will throw an exception if it detects an
- entry that uses a data descriptor for a STORED entry since it
- cannot reliably find the end of data for this "compression"
- method.
-o COMPRESS-101: ZipArchiveInputStream should now properly read archives that
- use data descriptors but without the "unofficial" signature.
-o COMPRESS-74: ZipArchiveInputStream failed to update the number of bytes
- read properly.
-o ArchiveInputStream has a new method getBytesRead that should
- be preferred over getCount since the later may truncate the
- number of bytes read for big archives.
-o COMPRESS-85: The cpio archives created by CpioArchiveOutputStream couldn't
- be read by many existing native implementations because the
- archives contained multiple entries with the same inode/device
- combinations and weren't padded to a blocksize of 512 bytes.
-o COMPRESS-73: ZipArchiveEntry, ZipFile and ZipArchiveInputStream are now
- more lenient when parsing extra fields.
-o COMPRESS-82: cpio is terribly slow.
- Documented that buffered streams are needed for performance
-o Improved exception message if the extra field data in ZIP
- archives cannot be parsed.
-o COMPRESS-17: Tar format unspecified - current support documented.
-o COMPRESS-94: ZipArchiveEntry's equals method was broken for entries created
- with the String-arg constructor. This lead to broken ZIP
- archives if two different entries had the same hash code. Thanks to Anon Devs.
-o COMPRESS-87: ZipArchiveInputStream could repeatedly return 0 on read() when
- the archive was truncated. Thanks to Antoni Mylka.
-o COMPRESS-86: Tar archive entries holding the file name for names longer
- than 100 characters in GNU longfile mode didn't properly
- specify they'd be using the "oldgnu" extension.
-o COMPRESS-83: Delegate all read and write methods in GZip stream in order to
- speed up operations.
-o The ar and cpio streams now properly read and write last
- modified times.
-o COMPRESS-81: TarOutputStream can leave garbage at the end of the archive
-
-Changes:
-o COMPRESS-112: ArArchiveInputStream does not handle GNU extended filename records (//)
-o COMPRESS-105: Document that the name of an ZipArchiveEntry determines whether
- an entry is considered a directory or not.
- If you don't use the constructor with the File argument the entry's
- name must end in a "/" in order for the entry to be known as a directory.
-o COMPRESS-79: Move DOS/Java time conversions into Zip utility class.
-o COMPRESS-75: ZipArchiveInputStream does not show location in file
- where a problem occurred.
+Have fun!
+-Apache Commons Team
+==============================================================================
diff --git a/src/site/xdoc/download_compress.xml b/src/site/xdoc/download_compress.xml
index 0b82da20b..725e55089 100644
--- a/src/site/xdoc/download_compress.xml
+++ b/src/site/xdoc/download_compress.xml
@@ -113,32 +113,32 @@ limitations under the License.
</p>
</subsection>
</section>
- <section name="Apache Commons Compress 1.24.0 ">
+ <section name="Apache Commons Compress 1.25.0 ">
<subsection name="Binaries">
<table>
<tr>
- <td><a href="[preferred]/commons/compress/binaries/commons-compress-1.24.0-bin.tar.gz">commons-compress-1.24.0-bin.tar.gz</a></td>
- <td><a href="https://downloads.apache.org/commons/compress/binaries/commons-compress-1.24.0-bin.tar.gz.sha512">sha512</a></td>
- <td><a href="https://downloads.apache.org/commons/compress/binaries/commons-compress-1.24.0-bin.tar.gz.asc">pgp</a></td>
+ <td><a href="[preferred]/commons/compress/binaries/commons-compress-1.25.0-bin.tar.gz">commons-compress-1.25.0-bin.tar.gz</a></td>
+ <td><a href="https://downloads.apache.org/commons/compress/binaries/commons-compress-1.25.0-bin.tar.gz.sha512">sha512</a></td>
+ <td><a href="https://downloads.apache.org/commons/compress/binaries/commons-compress-1.25.0-bin.tar.gz.asc">pgp</a></td>
</tr>
<tr>
- <td><a href="[preferred]/commons/compress/binaries/commons-compress-1.24.0-bin.zip">commons-compress-1.24.0-bin.zip</a></td>
- <td><a href="https://downloads.apache.org/commons/compress/binaries/commons-compress-1.24.0-bin.zip.sha512">sha512</a></td>
- <td><a href="https://downloads.apache.org/commons/compress/binaries/commons-compress-1.24.0-bin.zip.asc">pgp</a></td>
+ <td><a href="[preferred]/commons/compress/binaries/commons-compress-1.25.0-bin.zip">commons-compress-1.25.0-bin.zip</a></td>
+ <td><a href="https://downloads.apache.org/commons/compress/binaries/commons-compress-1.25.0-bin.zip.sha512">sha512</a></td>
+ <td><a href="https://downloads.apache.org/commons/compress/binaries/commons-compress-1.25.0-bin.zip.asc">pgp</a></td>
</tr>
</table>
</subsection>
<subsection name="Source">
<table>
<tr>
- <td><a href="[preferred]/commons/compress/source/commons-compress-1.24.0-src.tar.gz">commons-compress-1.24.0-src.tar.gz</a></td>
- <td><a href="https://downloads.apache.org/commons/compress/source/commons-compress-1.24.0-src.tar.gz.sha512">sha512</a></td>
- <td><a href="https://downloads.apache.org/commons/compress/source/commons-compress-1.24.0-src.tar.gz.asc">pgp</a></td>
+ <td><a href="[preferred]/commons/compress/source/commons-compress-1.25.0-src.tar.gz">commons-compress-1.25.0-src.tar.gz</a></td>
+ <td><a href="https://downloads.apache.org/commons/compress/source/commons-compress-1.25.0-src.tar.gz.sha512">sha512</a></td>
+ <td><a href="https://downloads.apache.org/commons/compress/source/commons-compress-1.25.0-src.tar.gz.asc">pgp</a></td>
</tr>
<tr>
- <td><a href="[preferred]/commons/compress/source/commons-compress-1.24.0-src.zip">commons-compress-1.24.0-src.zip</a></td>
- <td><a href="https://downloads.apache.org/commons/compress/source/commons-compress-1.24.0-src.zip.sha512">sha512</a></td>
- <td><a href="https://downloads.apache.org/commons/compress/source/commons-compress-1.24.0-src.zip.asc">pgp</a></td>
+ <td><a href="[preferred]/commons/compress/source/commons-compress-1.25.0-src.zip">commons-compress-1.25.0-src.zip</a></td>
+ <td><a href="https://downloads.apache.org/commons/compress/source/commons-compress-1.25.0-src.zip.sha512">sha512</a></td>
+ <td><a href="https://downloads.apache.org/commons/compress/source/commons-compress-1.25.0-src.zip.asc">pgp</a></td>
</tr>
</table>
</subsection>
diff --git a/src/site/xdoc/mail-lists.xml b/src/site/xdoc/mail-lists.xml
index 5dedf504a..9c6b20137 100644
--- a/src/site/xdoc/mail-lists.xml
+++ b/src/site/xdoc/mail-lists.xml
@@ -59,9 +59,9 @@ limitations under the License.
</p>
<p>
Questions related to the usage of Apache Commons Compress should be posted to the
- <a href="https://mail-archives.apache.org/mod_mbox/commons-user/">User List</a>.
+ <a href="https://lists.apache.org/list.html?user@commons.apache.org">User List</a>.
<br />
- The <a href="https://mail-archives.apache.org/mod_mbox/commons-dev/">Developer List</a>
+ The <a href="https://lists.apache.org/list.html?dev@commons.apache.org">Developer List</a>
is for questions and discussion related to the development of Apache Commons Compress.
<br />
Please do not cross-post; developers are also subscribed to the user list.
@@ -70,8 +70,10 @@ limitations under the License.
to subscribe.
</p>
<p>
- <strong>Note:</strong> please don't send patches or attachments to any of the mailing lists.
+ <strong>Note:</strong> please don't send patches or attachments to any of the mailing lists;
+ most of the lists are set up to drop attachments.
Patches are best handled via the <a href="issue-tracking.html">Issue Tracking</a> system.
+ If you have a GitHub account, most components also accept PRs (pull requests).
Otherwise, please upload the file to a public server and include the URL in the mail.
</p>
</section>
@@ -105,12 +107,11 @@ limitations under the License.
<td><a href="mailto:user-subscribe@commons.apache.org">Subscribe</a></td>
<td><a href="mailto:user-unsubscribe@commons.apache.org">Unsubscribe</a></td>
<td><a href="mailto:user@commons.apache.org?subject=[compress]">Post</a></td>
- <td><a href="https://mail-archives.apache.org/mod_mbox/commons-user/">mail-archives.apache.org</a><br />
+ <td>
<a href="https://lists.apache.org/list.html?user@commons.apache.org">lists.apache.org</a>
</td>
- <td><a href="https://markmail.org/list/org.apache.commons.users/">markmail.org</a><br />
- <a href="https://www.mail-archive.com/user@commons.apache.org/">www.mail-archive.com</a><br />
- <a href="https://news.gmane.org/gmane.comp.jakarta.commons.devel">news.gmane.org</a>
+ <td>
+ <a href="https://www.mail-archive.com/user@commons.apache.org/">www.mail-archive.com</a>
</td>
</tr>
@@ -125,12 +126,11 @@ limitations under the License.
<td><a href="mailto:dev-subscribe@commons.apache.org">Subscribe</a></td>
<td><a href="mailto:dev-unsubscribe@commons.apache.org">Unsubscribe</a></td>
<td><a href="mailto:dev@commons.apache.org?subject=[compress]">Post</a></td>
- <td><a href="https://mail-archives.apache.org/mod_mbox/commons-dev/">mail-archives.apache.org</a><br />
+ <td>
<a href="https://lists.apache.org/list.html?dev@commons.apache.org">lists.apache.org</a>
</td>
- <td><a href="https://markmail.org/list/org.apache.commons.dev/">markmail.org</a><br />
- <a href="https://www.mail-archive.com/dev@commons.apache.org/">www.mail-archive.com</a><br />
- <a href="https://news.gmane.org/gmane.comp.jakarta.commons.devel">news.gmane.org</a>
+ <td>
+ <a href="https://www.mail-archive.com/dev@commons.apache.org/">www.mail-archive.com</a>
</td>
</tr>
@@ -145,10 +145,10 @@ limitations under the License.
<td><a href="mailto:issues-subscribe@commons.apache.org">Subscribe</a></td>
<td><a href="mailto:issues-unsubscribe@commons.apache.org">Unsubscribe</a></td>
<td><i>read only</i></td>
- <td><a href="https://mail-archives.apache.org/mod_mbox/commons-issues/">mail-archives.apache.org</a><br />
+ <td>
<a href="https://lists.apache.org/list.html?issues@commons.apache.org">lists.apache.org</a>
</td>
- <td><a href="https://markmail.org/list/org.apache.commons.issues/">markmail.org</a><br />
+ <td>
<a href="https://www.mail-archive.com/issues@commons.apache.org/">www.mail-archive.com</a>
</td>
</tr>
@@ -164,10 +164,10 @@ limitations under the License.
<td><a href="mailto:commits-subscribe@commons.apache.org">Subscribe</a></td>
<td><a href="mailto:commits-unsubscribe@commons.apache.org">Unsubscribe</a></td>
<td><i>read only</i></td>
- <td><a href="https://mail-archives.apache.org/mod_mbox/commons-commits/">mail-archives.apache.org</a><br />
+ <td>
<a href="https://lists.apache.org/list.html?commits@commons.apache.org">lists.apache.org</a>
</td>
- <td><a href="https://markmail.org/list/org.apache.commons.commits/">markmail.org</a><br />
+ <td>
<a href="https://www.mail-archive.com/commits@commons.apache.org/">www.mail-archive.com</a>
</td>
</tr>
@@ -199,13 +199,11 @@ limitations under the License.
<td><a class="externalLink" href="mailto:announce-subscribe@apache.org">Subscribe</a></td>
<td><a class="externalLink" href="mailto:announce-unsubscribe@apache.org">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><br />
+ <td>
<a class="externalLink" href="https://lists.apache.org/list.html?announce@apache.org">lists.apache.org</a>
</td>
- <td><a class="externalLink" href="https://markmail.org/list/org.apache.announce/">markmail.org</a><br />
- <a class="externalLink" href="https://old.nabble.com/Apache-News-and-Announce-f109.html">old.nabble.com</a><br />
- <a class="externalLink" href="https://www.mail-archive.com/announce@apache.org/">www.mail-archive.com</a><br />
- <a class="externalLink" href="https://news.gmane.org/gmane.comp.apache.announce">news.gmane.org</a>
+ <td>
+ <a class="externalLink" href="https://www.mail-archive.com/announce@apache.org/">www.mail-archive.com</a>
</td>
</tr>
</table>