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 <garydgreg...@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, jsew...@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 [](https://github.com/apache/commons-compress/actions/workflows/maven.yml) [](https://app.codecov.io/gh/apache/commons-compress) [](https://maven-badges.herokuapp.com/maven-central/org.apache.commons/commons-compress/?gav=true) -[](https://javadoc.io/doc/org.apache.commons/commons-compress/1.24.0) +[](https://javadoc.io/doc/org.apache.commons/commons-compress/1.25.0) [](https://github.com/apache/commons-compress/actions/workflows/codeql-analysis.yml) [](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?u...@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?d...@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-subscr...@commons.apache.org">Subscribe</a></td> <td><a href="mailto:user-unsubscr...@commons.apache.org">Unsubscribe</a></td> <td><a href="mailto:u...@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?u...@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-subscr...@commons.apache.org">Subscribe</a></td> <td><a href="mailto:dev-unsubscr...@commons.apache.org">Unsubscribe</a></td> <td><a href="mailto:d...@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?d...@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-subscr...@commons.apache.org">Subscribe</a></td> <td><a href="mailto:issues-unsubscr...@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?iss...@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-subscr...@commons.apache.org">Subscribe</a></td> <td><a href="mailto:commits-unsubscr...@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-subscr...@apache.org">Subscribe</a></td> <td><a class="externalLink" href="mailto:announce-unsubscr...@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?annou...@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>