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-io.git
The following commit(s) were added to refs/heads/master by this push: new c9a2b48b4 Prepare for the next release candidate c9a2b48b4 is described below commit c9a2b48b448ff6fbb7a4ef814affff04bbfaba39 Author: Gary D. Gregory <garydgreg...@gmail.com> AuthorDate: Tue Apr 8 21:53:05 2025 +0000 Prepare for the next release candidate --- CONTRIBUTING.md | 6 +-- README.md | 6 +-- RELEASE-NOTES.txt | 95 ++++++++++++++++++++++++++++++++++++++++ src/changes/changes.xml | 2 +- src/site/xdoc/download_io.xml | 36 ++++++++------- src/site/xdoc/issue-tracking.xml | 14 +++--- src/site/xdoc/mail-lists.xml | 14 +++--- 7 files changed, 137 insertions(+), 36 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b44fe68a1..f70868073 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,7 +6,7 @@ (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, @@ -61,11 +61,11 @@ Making Changes + Create a _topic branch_ for your isolated work. * Usually you should base your branch from the `master` branch. - * A good topic branch name can be the JIRA bug ID plus a keyword, for example, `IO-123-InputStream`. + * A good topic branch name can be the JIRA bug ID plus a keyword, e.g. `IO-123-InputStream`. * If you have submitted multiple JIRA issues, try to maintain separate branches and pull requests. + Make commits of logical units. * Make sure your commit messages are meaningful and in the proper format. Your commit message should contain the key of the JIRA issue. - * For example, `[IO-123] Close input stream earlier` + * For example, `[IO-123] Close input stream sooner` + Respect the original code style: + Only use spaces for indentation; you can check for unnecessary whitespace with `git diff` before committing. + 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 first. diff --git a/README.md b/README.md index 3f4e96dd9..03a244f39 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, @@ -45,7 +45,7 @@ Apache Commons IO [](https://github.com/apache/commons-io/actions/workflows/maven.yml) [](https://search.maven.org/artifact/commons-io/commons-io) -[](https://javadoc.io/doc/commons-io/commons-io/2.18.0) +[](https://javadoc.io/doc/commons-io/commons-io/2.19.0) [](https://github.com/apache/commons-io/actions/workflows/codeql-analysis.yml) [](https://api.securityscorecards.dev/projects/github.com/apache/commons-io) @@ -69,7 +69,7 @@ Alternatively, you can pull it from the central Maven repositories: <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> - <version>2.18.0</version> + <version>2.19.0</version> </dependency> ``` diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 49247bc9c..9f753547e 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -1,4 +1,99 @@ +Apache Commons IO 2.19.0 Release Notes + +Introduction +------------ + +The Apache Commons IO library contains utility classes, stream implementations, file filters, +file comparators, endian transformation classes, and much more. + +Version 2.19.0: Java 8 is required. + +New features +------------ + +o IO-860: Add ThrottledInputStream.Builder.setMaxBytes(long, ChronoUnit). Thanks to Nico Strecker, Gary Gregory. +o Add IOIterable. Thanks to Gary Gregory. +o ReversedLinesFileReader implements IOIterable<String>. Thanks to Gary Gregory. +o Add AbstractByteArrayOutputStream.write(CharSequence, Charset). Thanks to Gary Gregory. +o Add AbstractByteArrayOutputStream.write(byte[]). Thanks to Gary Gregory. +o Add RandomAccessFileOutputStream.getRandomAccessFile(). Thanks to Gary Gregory. +o Add ProxyInputStream.setReference(InputStream), was package-private setIn(InputStream). Thanks to Gary Gregory. +o Add ProxyOutputStream.setReference(OutputStream). Thanks to Gary Gregory. +o Add RandomAccessFileInputStream.copy(long, long, OutputStream). Thanks to Gary Gregory. +o Add ProxyOutputStream.Builder. Thanks to Gary Gregory. +o Add ByteOrderMark.matches(int[]). Thanks to Gary Gregory. +o Add BrokenOutputStream.BrokenOutputStream(Function<String>, Throwable>) and deprecate Supplier<String> constructor. Thanks to Gary Gregory. +o Add IOBooleanSupplier. Thanks to Gary Gregory. +o Add Uncheck.getAsBoolean(IOBooleanSupplier). Thanks to Gary Gregory. +o Add FileChannels.contentEquals(SeekableByteChannel, SeekableByteChannel, int). Thanks to Gary Gregory. +o Add FileChannels.contentEquals(ReadableByteChannel, ReadableByteChannel, int). Thanks to Gary Gregory. +o IO-872: Add SimplePathVisitor.AbstractBuilder. Thanks to Gary Gregory. +o IO-872: Add CountingPathVisitor.AbstractBuilder and CountingPathVisitor.Builder. Thanks to Gary Gregory. +o IO-872: Add AccumulatorPathVisitor.Builder and builder(). Thanks to Gary Gregory. +o Add PathUtils.contentEquals(FileSystem, FileSystem). Thanks to Gary Gregory. + +Fixed Bugs +---------- + +o Deprecate constructor Counters.Counters() to be private in 4.0. Thanks to Gary Gregory. +o Deprecate constructor Charsets.Charsets() to be private in 4.0. Thanks to Gary Gregory. +o Pick up maven-antrun-plugin version from parent POM org.apache:apache. Thanks to Gary Gregory. +o Javadoc is missing its Overview page. Thanks to Gary Gregory. +o Remove -nouses directive from maven-bundle-plugin. OSGi package imports now state 'uses' definitions for package imports, this doesn't affect JPMS (from org.apache.commons:commons-parent:80). Thanks to Gary Gregory. +o Deprecate DeferredFileOutputStream.getStream() in favor of getOutputStream(). Thanks to Gary Gregory. +o IO-868: Improve Javadoc for a BoundedInputStream builder() throwing IOException. Thanks to Julian Reschke, Gary Gregory. +o IO-868: Improve Javadoc for all implementations of AbstractOriginSupplier#get(). Thanks to Julian Reschke, Gary Gregory. +o The Consumer to IOUtils.closeQuietly(Closeable, Consumer) now accepts Exception, not just IOException. Thanks to Gary Gregory. +o The Consumer to IOUtils.close(Closeable, IOConsumer) now accepts wrapped Exception, not just IOException. Thanks to Gary Gregory. +o Use Uncheck.getAsBoolean(IOBooleanSupplier) to avoid boxing and unboxing of boolean values. Thanks to Gary Gregory. +o Avoid unnecessary boxing and unboxing of long values in FileUtils.sizeOf(File). Thanks to Gary Gregory. +o Avoid unnecessary boxing and unboxing of int values in UncheckedBufferedReader.read(). Thanks to Gary Gregory. +o Avoid unnecessary boxing and unboxing of int values in UncheckedFilterInputStream.available() and read(). Thanks to Gary Gregory. +o Avoid unnecessary boxing and unboxing of int values in UncheckedFilterReader.read(). Thanks to Gary Gregory. +o FileChannels.contentEquals(FileChannel, FileChannel, int) can return false when comparing a non-blocking channel. Thanks to Gary Gregory. +o Deprecate FileChannels.contentEquals(FileChannel, FileChannel, int) in favor of FileChannels.contentEquals(SeekableByteChannel, SeekableByteChannel, int). Thanks to Gary Gregory. +o Improve performance of IOUtils.contentEquals(InputStream, InputStream) by about 13%. Thanks to Gary Gregory. +o IO-870: PathUtils.copyFileToDirectory() across file systems #728. Thanks to Gary Gregory. +o IO-871: IOUtils.contentEquals is incorrect when InputStream.available under-reports. Thanks to Éamonn McManus, Gary Gregory. +o IO-873: java.lang.ArithmeticException: long overflow java.lang.Math.addExact(Math.java:932) at org.apache.commons.io.file.attribute.FileTimes.ntfsTimeToFileTime(FileTimes.java:164). See also https://issues.apache.org/jira/browse/MDEP-978. Thanks to Gary Gregory. +o IO-873: java.lang.ArithmeticException: long overflow java.lang.Math.addExact(Math.java:932) at org.apache.commons.io.file.attribute.FileTimes.ntfsTimeToDate(long). Thanks to Gary Gregory. +o FileTimes.toNtfsTime(*) methods can overflow result values. Thanks to Gary Gregory. +o Fix Javadoc for ChunkedOutputStream.Builder. Thanks to Gary Gregory. +o General Javadoc improvements. Thanks to Gary Gregory. +o Calling QueueInputStream.QueueInputStream(null) maps to the same kind of default blocking queue as QueueInputStream.Builder.setBlockingQueue(null). Thanks to Gary Gregory. +o CopyDirectoryVisitor creates incorrect file names when copying between different file systems that use different file system separators ("/" versus "\"); fixes PathUtils.copyDirectory(Path, Path, CopyOption...). Thanks to Gary Gregory. +o ThreadUtils.sleep(Duration) should handle the underlying OS time changing. Thanks to zhouchongwen, Gary Gregory. + +Changes +------- + +o Bump commons.bytebuddy.version from 1.15.10 to 1.17.5 #710, #715, #720, #734, #735. Thanks to Dependabot, Gary Gregory. +o Bump commons-codec:commons-codec from 1.17.1 to 1.18.0. #717. Thanks to Gary Gregory. +o Bump org.apache.commons:commons-parent from 78 to 81. Thanks to Gary Gregory. + + +Commons IO 2.7 and up requires Java 8 or above. +Commons IO 2.6 requires Java 7 or above. +Commons IO 2.3 through 2.5 requires Java 6 or above. +Commons IO 2.2 requires Java 5 or above. +Commons IO 1.4 requires Java 1.3 or above. + +Historical list of changes: https://commons.apache.org/proper/commons-io/changes.html + +For complete information on Apache Commons IO, including instructions on how to submit bug reports, +patches, or suggestions for improvement, see the Apache Commons IO website: + +https://commons.apache.org/proper/commons-io/ + +Download page: https://commons.apache.org/proper/commons-io/download_io.cgi + +Have fun! +-Apache Commons Team + +------------------------------------------------------------------------------ + + Apache Commons IO 2.18.0 Release Notes Introduction diff --git a/src/changes/changes.xml b/src/changes/changes.xml index fdfdf0a0c..a26426f32 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -45,7 +45,7 @@ The <action> type attribute can be add,update,fix,remove. <title>Apache Commons IO Release Notes</title> </properties> <body> - <release version="2.19.0" date="YYYY-MM-DD" description="Version 2.19.0: Java 8 is required."> + <release version="2.19.0" date="2025-04-08" description="Version 2.19.0: Java 8 is required."> <!-- FIX --> <action dev="ggregory" type="fix" due-to="Gary Gregory">Deprecate constructor Counters.Counters() to be private in 4.0.</action> <action dev="ggregory" type="fix" due-to="Gary Gregory">Deprecate constructor Charsets.Charsets() to be private in 4.0.</action> diff --git a/src/site/xdoc/download_io.xml b/src/site/xdoc/download_io.xml index 812feb53c..6b212bc9c 100644 --- a/src/site/xdoc/download_io.xml +++ b/src/site/xdoc/download_io.xml @@ -7,7 +7,7 @@ The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, @@ -56,10 +56,12 @@ limitations under the License. | | +======================================================================+ --> -<document> +<document xmlns="http://maven.apache.org/XDOC/2.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 https://maven.apache.org/xsd/xdoc-2.0.xsd"> <properties> <title>Download Apache Commons IO</title> - <author email="d...@commons.apache.org">Apache Commons Documentation Team</author> + <author email="d...@commons.apache.org">Apache Commons Team</author> </properties> <body> <section name="Download Apache Commons IO"> @@ -79,7 +81,7 @@ limitations under the License. mirrors (at the end of the mirrors list) that should be available. <br></br> - [if-any logo]<a href="[link]"><img align="right" src="[logo]" border="0"></img></a>[end] + [if-any logo]<a href="[link]"><img align="right" src="[logo]" border="0" alt="Logo"></img></a>[end] </p> <form action="[location]" method="get" id="SelectMirror"> @@ -113,32 +115,32 @@ limitations under the License. </p> </subsection> </section> - <section name="Apache Commons IO 2.18.0 (requires Java 8)"> + <section name="Apache Commons IO 2.19.0 (requires Java 8)"> <subsection name="Binaries"> <table> <tr> - <td><a href="[preferred]/commons/io/binaries/commons-io-2.18.0-bin.tar.gz">commons-io-2.18.0-bin.tar.gz</a></td> - <td><a href="https://downloads.apache.org/commons/io/binaries/commons-io-2.18.0-bin.tar.gz.sha512">sha512</a></td> - <td><a href="https://downloads.apache.org/commons/io/binaries/commons-io-2.18.0-bin.tar.gz.asc">pgp</a></td> + <td><a href="[preferred]/commons/io/binaries/commons-io-2.19.0-bin.tar.gz">commons-io-2.19.0-bin.tar.gz</a></td> + <td><a href="https://downloads.apache.org/commons/io/binaries/commons-io-2.19.0-bin.tar.gz.sha512">sha512</a></td> + <td><a href="https://downloads.apache.org/commons/io/binaries/commons-io-2.19.0-bin.tar.gz.asc">pgp</a></td> </tr> <tr> - <td><a href="[preferred]/commons/io/binaries/commons-io-2.18.0-bin.zip">commons-io-2.18.0-bin.zip</a></td> - <td><a href="https://downloads.apache.org/commons/io/binaries/commons-io-2.18.0-bin.zip.sha512">sha512</a></td> - <td><a href="https://downloads.apache.org/commons/io/binaries/commons-io-2.18.0-bin.zip.asc">pgp</a></td> + <td><a href="[preferred]/commons/io/binaries/commons-io-2.19.0-bin.zip">commons-io-2.19.0-bin.zip</a></td> + <td><a href="https://downloads.apache.org/commons/io/binaries/commons-io-2.19.0-bin.zip.sha512">sha512</a></td> + <td><a href="https://downloads.apache.org/commons/io/binaries/commons-io-2.19.0-bin.zip.asc">pgp</a></td> </tr> </table> </subsection> <subsection name="Source"> <table> <tr> - <td><a href="[preferred]/commons/io/source/commons-io-2.18.0-src.tar.gz">commons-io-2.18.0-src.tar.gz</a></td> - <td><a href="https://downloads.apache.org/commons/io/source/commons-io-2.18.0-src.tar.gz.sha512">sha512</a></td> - <td><a href="https://downloads.apache.org/commons/io/source/commons-io-2.18.0-src.tar.gz.asc">pgp</a></td> + <td><a href="[preferred]/commons/io/source/commons-io-2.19.0-src.tar.gz">commons-io-2.19.0-src.tar.gz</a></td> + <td><a href="https://downloads.apache.org/commons/io/source/commons-io-2.19.0-src.tar.gz.sha512">sha512</a></td> + <td><a href="https://downloads.apache.org/commons/io/source/commons-io-2.19.0-src.tar.gz.asc">pgp</a></td> </tr> <tr> - <td><a href="[preferred]/commons/io/source/commons-io-2.18.0-src.zip">commons-io-2.18.0-src.zip</a></td> - <td><a href="https://downloads.apache.org/commons/io/source/commons-io-2.18.0-src.zip.sha512">sha512</a></td> - <td><a href="https://downloads.apache.org/commons/io/source/commons-io-2.18.0-src.zip.asc">pgp</a></td> + <td><a href="[preferred]/commons/io/source/commons-io-2.19.0-src.zip">commons-io-2.19.0-src.zip</a></td> + <td><a href="https://downloads.apache.org/commons/io/source/commons-io-2.19.0-src.zip.sha512">sha512</a></td> + <td><a href="https://downloads.apache.org/commons/io/source/commons-io-2.19.0-src.zip.asc">pgp</a></td> </tr> </table> </subsection> diff --git a/src/site/xdoc/issue-tracking.xml b/src/site/xdoc/issue-tracking.xml index fa25f6f52..3cda13d50 100644 --- a/src/site/xdoc/issue-tracking.xml +++ b/src/site/xdoc/issue-tracking.xml @@ -7,7 +7,7 @@ The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, @@ -41,10 +41,12 @@ limitations under the License. | | +======================================================================+ --> -<document> +<document xmlns="http://maven.apache.org/XDOC/2.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 https://maven.apache.org/xsd/xdoc-2.0.xsd"> <properties> <title>Apache Commons IO Issue tracking</title> - <author email="d...@commons.apache.org">Apache Commons Documentation Team</author> + <author email="d...@commons.apache.org">Apache Commons Team</author> </properties> <body> @@ -64,6 +66,7 @@ limitations under the License. <p> If you would like to report a bug, or raise an enhancement request with Apache Commons IO please do the following: + </p> <ol> <li><a href="https://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&pid=12310477&sorter/field=issuekey&sorter/order=DESC&status=1&status=3&status=4">Search existing open bugs</a>. If you find your issue listed then please add a comment with your details.</li> @@ -73,16 +76,15 @@ limitations under the License. <li>Submit either a <a href="https://issues.apache.org/jira/secure/CreateIssueDetails!init.jspa?pid=12310477&issuetype=1&priority=4&assignee=-1">bug report</a> or <a href="https://issues.apache.org/jira/secure/CreateIssueDetails!init.jspa?pid=12310477&issuetype=4&priority=4&assignee=-1">enhancement request</a>.</li> </ol> - </p> <p> Please also remember these points: + </p> <ul> <li>the more information you provide, the better we can help you</li> <li>test cases are vital, particularly for any proposed enhancements</li> <li>the developers of Apache Commons IO are all unpaid volunteers</li> </ul> - </p> <p> For more information on creating patches see the @@ -91,12 +93,12 @@ limitations under the License. <p> You may also find these links useful: + </p> <ul> <li><a href="https://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&pid=12310477&sorter/field=issuekey&sorter/order=DESC&status=1&status=3&status=4">All Open Apache Commons IO bugs</a></li> <li><a href="https://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&pid=12310477&sorter/field=issuekey&sorter/order=DESC&status=5&status=6">All Resolved Apache Commons IO bugs</a></li> <li><a href="https://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&pid=12310477&sorter/field=issuekey&sorter/order=DESC">All Apache Commons IO bugs</a></li> </ul> - </p> </section> </body> </document> diff --git a/src/site/xdoc/mail-lists.xml b/src/site/xdoc/mail-lists.xml index bb94ded27..bfb01dd05 100644 --- a/src/site/xdoc/mail-lists.xml +++ b/src/site/xdoc/mail-lists.xml @@ -7,7 +7,7 @@ The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 + https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, @@ -39,10 +39,12 @@ limitations under the License. | | +======================================================================+ --> -<document> +<document xmlns="http://maven.apache.org/XDOC/2.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 https://maven.apache.org/xsd/xdoc-2.0.xsd"> <properties> <title>Apache Commons IO Mailing Lists</title> - <author email="d...@commons.apache.org">Apache Commons Documentation Team</author> + <author email="d...@commons.apache.org">Apache Commons Team</author> </properties> <body> @@ -53,10 +55,10 @@ limitations under the License. To make it easier for people to only read messages related to components they are interested in, the convention in Commons is to prefix the subject line of messages with the component's name, for example: - <ul> - <li>[io] Problem with the ...</li> - </ul> </p> + <ul> + <li>[io] Problem with the ...</li> + </ul> <p> Questions related to the usage of Apache Commons IO should be posted to the <a href="https://lists.apache.org/list.html?u...@commons.apache.org">User List</a>.