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 6514969 Prepare for release candidate 2.9.0-RC1. 6514969 is described below commit 651496937d094d5dabd166897136f934ed573c7a Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Sat May 22 10:05:38 2021 -0400 Prepare for release candidate 2.9.0-RC1. --- RELEASE-NOTES.txt | 139 +++++++++++++++++++++++++++- src/changes/changes.xml | 2 +- src/changes/release-notes.vm | 212 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 351 insertions(+), 2 deletions(-) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 28d02c8..677f76c 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -1,3 +1,140 @@ + +Apache Commons IO +Version 2.9.0 +Release Notes + +INTRODUCTION: + +Commons IO is a package of Java utility classes like java.io. +Classes in this package are considered to be so standard and of such high +reuse as to justify existence in java.io. + +The Apache Commons IO library contains utility classes, stream implementations, file filters, +file comparators, endian transformation classes, and much more. + +============================================================================== +Apache Commons IO Version 2.9.0 +============================================================================== +Java 8 required. + +Changes in this version include: + +New features: +o Add FileSystemProviders class. Thanks to Gary Gregory. +o Let org.apache.commons.io.filefilter classes work with java.nio.file.Files.walk* APIs. Thanks to Gary Gregory. +o Let org.apache.commons.io.filefilter classes work with java.nio.file.Files#newDirectoryStream(Path, DirectoryStream.Filter). Thanks to Gary Gregory. +o IO-510: Add and adapt ReadAheadInputStream and BufferedFileChannelInputStream from Apache Spark. Thanks to Gary Gregory, Apache Spark, David Mollitor. +o Add PathUtils.createParentDirectories(Path, FileAttribute...). Thanks to Gary Gregory. +o Add factory methods to CloseShieldInputStream, CloseShieldReader, CloseShieldOutputStream, CloseShieldWriter, #173. Thanks to Rob Spoor, Gary Gregory. +o Add QueueInputStream and QueueOutputStream as simpler alternatives to PipedInputStream and PipedOutputStream #171. Thanks to Rob Spoor, Gary Gregory. +o Add StandardLineSeparator. Thanks to Gary Gregory. +o Replace magic numbers with constants with the new IOUtils.CR and LF. Thanks to Gary Gregory. +o Add FileSystem#supportsDriveLetter(). Thanks to Gary Gregory. +o Add FileUtils.delete(File). Thanks to Gary Gregory. +o IO-700: Add FileUtils.moveFile(File, File, CopyOption...) #185. Thanks to Gary Gregory. +o IO-700: Add FileUtils.isEmptyDirectory(File). Thanks to Gary Gregory. +o Add FileUtils.lastModified[Unchecked](File) to workaround https://bugs.openjdk.java.net/browse/JDK-8177809. Thanks to Gary Gregory. +o IO-709: Add null safe variants of isDirectory and isRegularFile. Thanks to Boris Unckel, Gary Gregory. +o Add and use IOExceptionList(String, List). Thanks to Gary Gregory. +o Add and use ObservableInputStream.ObservableInputStream(InputStream, Observer...). Thanks to Gary Gregory. +o Make ObservableInputStream.getObservers() public. Thanks to Gary Gregory. +o IO-706: Add TimestampedObserver. Thanks to Gary Gregory. +o Add and use IOUtils.byteArray(*). Thanks to Gary Gregory. +o Make public and reuse IOUtils.EMPTY_BYTE_ARRAY. Thanks to Gary Gregory. +o Add IOUtils.copy(URL, File). Thanks to Gary Gregory. +o Add copy(URL, OutputStream). Thanks to Gary Gregory. +o IO-651: Add DeferredFileOutputStream.toInputStream() #206. Thanks to jmark109, Gary Gregory. +o Add CharacterSetFilterReader.CharacterSetFilterReader(Reader, Integer...). Thanks to Gary Gregory. +o Add AbstractCharacterFilterReader(Reader, IntPredicate), #227. + Add CharacterFilterReader(Reader, IntPredicate), #227. + Add CharacterFilterReaderIntPredicateTest, #227. Thanks to Rob Spoor, Gary Gregory. +o Add IOConsumer.noop(). Thanks to Gary Gregory. +o Add constructor ThresholdingOutputStream(int, IOConsumer, IOFunction) and make the class concrete. Thanks to Gary Gregory. +o Add constructor accepting collection of file alteration observers #236. Thanks to nstdspace, Gary Gregory. + +Fixed Bugs: +o IO-686: IOUtils.toByteArray(InputStream) Javadoc does not match code. Thanks to Alan Moffat, Gary Gregory. +o IO-689: FileUtils: Remove Instant->ZonedDateTime->Instant round-trip. Thanks to Uwe Schindler. +o Make FilenameUtils.equals() not throw an exception #154. Thanks to Michael Ernst, Gary Gregory. +o Un-deprecate IOUtils.closeQuietly() methods. Thanks to Jan Peter Stotz, Bernd Eckenfels, Gary Gregory. +o FileUtils#copyDirectory(File, File, FileFilter, preserveFileDate) clean up #163. Thanks to Michiel Kalkman. +o AccumulatorPathVisitor does not track directories properly. Thanks to Gary Gregory. +o IO-597: FileUtils.iterateFiles runs out of memory when executed for a directory with large number of files. + Re-implement FileUtils' iterateFiles(), iterateFilesAndDirs(), listFiles(), listFilesAndDirs() to use NIO + file tree walking instead of IO file listings to avoid memory consumption issues on large file trees. Thanks to Gary Gregory, Arvind, Rob Spoor. +o FileUtils.forceDelete(File) actually forces deletion of read-only files as it did in version 2.6. Thanks to Gary Gregory. +o IO-692: PathUtils.deleteFile() no longer throws a NoSuchFileException when applied on a symbolic link pointing + to a file that doesn't exist. Thanks to Matthew Rooney, Emmanuel Bourg. +o IO-694: Behavior change in FileUtils.copyDirectory() file last modified timestamp preservation. Match Javadoc to code. Thanks to Tan Yee Fan, Gary Gregory. +o IO-600: Fix getPrefixLength method for Linux filename #179. Thanks to Abhyankar Chaubey, Gary Gregory. +o IO-699: Wrong logging in FileUtils.setLastModified. Thanks to tza, Gary Gregory. +o IO-686: IOUtils.toByteArray(InputStream) Javadoc does not match code. Thanks to Alan Moffat, Sebb, Gary Gregory. +o IO-688: CopyUtils deprecation message gives wrong version. Thanks to Michael Ernst, Gary Gregory. +o IO-701: Make PathUtils.setReadOnly deal with LinuxDosFileAttributeView #186. Thanks to Gary Gregory. +o IO-702: FileUtils.forceDelete does not delete invalid links. #187. Thanks to Boris Unckel, Gary Gregory. +o IO-690: IOUtils.toByteArray(null) no longer throws a NullPointerException. Thanks to Chris Heisterkamp, Gary Gregory. +o IO-705: MarkShieldInputStream#reset should throw UnsupportedOperationException. Thanks to Hao Zhong, Gary Gregory. +o IO-705: LockableFileWriter.close() should fail when the lock file cannot be deleted. Thanks to Hao Zhong, Gary Gregory. +o IO-705: Fix infinite loops in ObservableInputStream read(*) when an exception is caught but not re-thrown. Thanks to Hao Zhong, Gary Gregory. +o IO-719: Fixed error of copying directories between different file systems #203. Thanks to Andrew Shcheglov, Gary Gregory. +o Fix Typos in JavaDoc, Comments and Tests #201. Thanks to Felix Rilling. +o IO-718: FileUtils.checksumCRC32 and FileUtils.checksum are not thread safe. Thanks to Robert Cooper, Gary Gregory. +o IO-720: Fix error about usage of DirectBuffer in JRE 16/17 #205. Thanks to XenoAmess. +o Prevent infinite loop with AbstractCharacterFilterReader if EOF is filtered out #226. Thanks to Rob Spoor, Gary Gregory. +o IO-429: Check for long streams in IOUtils.toByteArray #175. Thanks to Rob Spoor, Ivan Leskin. + +Changes: +o Update junit-jupiter from 5.6.2 to 5.7.0 #153. Thanks to Dependabot. +o Update mockito-core from 3.5.9 to 3.10.0, #152, #155, #157, #166, #167, #169, #182. Thanks to Dependabot. +o Bump mockito-inline from 3.7.0 to 3.10.0 #188, #207, #230. Thanks to Dependabot. +o Update commons.jacoco.version 0.8.5 to 0.8.7, fixes Java 15 builds and up. Thanks to Gary Gregory. +o Update spotbugs from 4.1.2 to 4.2.2, 4.2.3, #158, #164, #165, #180, #199, #213, #224. Thanks to Dependabot. +o Bump spotbugs-maven-plugin from 4.0.4 to 4.2.3, #161, #172, #223. Thanks to Dependabot. +o Update org.junit-pioneer:junit-pioneer 0.9.0 -> 1.4,1, #159, #162, #170, #189, #191, #210, #229. Thanks to Gary Gregory, Dependabot. +o Update actions/checkout from v2.3.2 to v2.3.4, #156, #168. Thanks to Dependabot. +o Bump actions/setup-java from v1.4.2 to v2 #160. Thanks to Dependabot, Gary Gregory. +o Update maven-surefire-plugin from 2.22.2 to 3.0.0-M5. Thanks to Gary Gregory. +o Minor improvements, #176, 177, #190. Thanks to Arturo Bernal. +o Update commons.japicmp.version 0.14.4 -> 0.15.3. Thanks to Gary Gregory. +o Tiny performance improvement in FileUtils#moveDirectoryToDirectory() #174. Thanks to Michiel Kalkman. +o Bump checkstyle from 8.38 to 8.42 #689, #209, #225. Thanks to Dependabot. +o Bump maven-checkstyle-plugin from 3.1.1 to 3.1.2 #198. Thanks to Dependabot. +o Bump jimfs from 1.1 to 1.2 #183. Thanks to Dependabot. +o Improve performance of IOUtils.contentEquals(InputStream, InputStream). Thanks to XenoAmess, Gary Gregory. +o Improve performance of IOUtils.contentEquals(Reader, Reader). Thanks to XenoAmess, Gary Gregory. +o Bump actions/cache from v2 to v2.1.5 #202, #228. Thanks to Dependabot. +o Bump junit-bom from 5.7.0 to 5.7.2 #200, #232. Thanks to Dependabot. +o Update from Apache Commons Lang 3.11 to 3.12.0. Thanks to Gary Gregory. +o Minor improvements #233. Thanks to Arturo Bernal. +o Simplify Assertions in tests #234. Thanks to Arturo Bernal. + +Compatibility with 2.6: +Binary compatible: Yes. +Source compatible: Yes. +Semantic compatible: Yes. + +Commons IO 2.9.0 requires Java 8. +Commons IO 2.8.0 requires Java 8. +Commons IO 2.7 requires Java 8. +Commons IO 2.6 requires Java 7. +Commons IO 2.5 requires Java 6. +Commons IO 2.4 requires Java 6. +Commons IO 2.3 requires Java 6. +Commons IO 2.2 requires Java 5. +Commons IO 1.4 requires Java 1.3. + +Historical list of changes: https://commons.apache.org/proper/commons-io/changes-report.html + +For complete information on Apache Commons IO, including instructions on how to submit bug reports, +patches, or suggestions for improvement, see the Apache 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 Version 2.8.0 Release Notes @@ -146,7 +283,7 @@ o IO-662: Refactor ByteArrayOutputStream into synchronized and unsynchronized v Fixed Bugs: o IO-589: Some tests fail if the base path contains a space. o IO-582: Make methods in ObservableInputStream.Obsever public. Thanks to Bruno Palos. -o IO-535: Thread bug in FileAlterationMonitor#stop(int). Thanks to Svetlin Zarev, Anthony Raymond. +o IO-535: Thread bug in FileAlterationMonitor.stop(int). Thanks to Svetlin Zarev, Anthony Raymond. o IO-557: Perform locale independent upper case conversions. Thanks to luccioman. o IO-570: Missing Javadoc in FilenameUtils causing Travis-CI build to fail. Thanks to Pranet Verma. o IO-571: Remove redundant isDirectory() check in org.apache.commons.io.FileUtils.listFilesAndDirs(File, IOFileFilter, IOFileFilter). Thanks to pranet. diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 73593c5..9872779 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -46,7 +46,7 @@ The <action> type attribute can be add,update,fix,remove. <body> <!-- The release date is the date RC is cut --> - <release version="2.9.0" date="2021-MM-DD" description="Java 8 required."> + <release version="2.9.0" date="2021-05-22" description="Java 8 required."> <!-- FIX --> <action issue="IO-686" dev="ggregory" type="fix" due-to="Alan Moffat, Gary Gregory"> IOUtils.toByteArray(InputStream) Javadoc does not match code. diff --git a/src/changes/release-notes.vm b/src/changes/release-notes.vm index af1d613..05218e5 100644 --- a/src/changes/release-notes.vm +++ b/src/changes/release-notes.vm @@ -148,6 +148,8 @@ Binary compatible: Yes. Source compatible: Yes. Semantic compatible: Yes. +Commons IO 2.9.0 requires Java 8. +Commons IO 2.8.0 requires Java 8. Commons IO 2.7 requires Java 8. Commons IO 2.6 requires Java 7. Commons IO 2.5 requires Java 6. @@ -168,6 +170,216 @@ Download page: ${project.url}download_io.cgi Have fun! -Apache Commons Team +Apache Commons IO +Version 2.8.0 +Release Notes + +INTRODUCTION: + +Commons IO is a package of Java utility classes like java.io. +Classes in this package are considered to be so standard and of such high +reuse as to justify existence in java.io. + +The Apache Commons IO library contains utility classes, stream implementations, file filters, +file comparators, endian transformation classes, and much more. + +============================================================================== +Apache Commons IO Version 2.8.0 +============================================================================== +Java 8 required. + +Changes in this version include: + +New features: +o Add org.apache.commons.io.input.CircularInputStream. Thanks to Gary Gregory. +o Add org.apache.commons.io.file.PathUtils.cleanDirectory(Path, FileVisitOption...). Thanks to Gary Gregory. +o Add org.apache.commons.io.file.PathUtils.deleteDirectory(Path, FileVisitOption...). Thanks to Gary Gregory. +o Add NullAppendable. Thanks to Gary Gregory. +o Add PathUtils.getAclEntryList(Path). Thanks to Gary Gregory. +o Null-guard IOUtils.close(Closeable, IOConsumer). Thanks to Gary Gregory. +o Add ReversedLinesFileReader.readLines(int). Thanks to Gary Gregory. +o Add ReversedLinesFileReader.toString(int). Thanks to Gary Gregory. +o IO-684: Add PathUtils.delete(Path, DeleteOption...). + Add PathUtils.deleteDirectory(Path, DeleteOption...). + Add PathUtils.deleteFile(Path, DeleteOption...). + Add PathUtils.setReadOnly(Path, boolean, LinkOption...). + Add CleaningPathVisitor.CleaningPathVisitor(PathCounters, DeleteOption[], String...). + Add DeletingPathVisitor.DeletingPathVisitor(PathCounters, DeleteOption[], String...). Thanks to Gary Gregory, Robin Jansohn. +o Add RandomAccessFileInputStream. Thanks to Gary Gregory. +o IO-681: IOUtils.close(Closeable) should allow a list of closeables. +o Add IOUtils.consume(InputStream). Thanks to Gary Gregory. +o IO-676: Add isFileNewer() and isFileOlder() methods that support the Java 8 Date/Time API. #124. Thanks to Isira Seneviratne, Gary Gregory. +o Add a MarkShieldInputStream #119. Thanks to Adam Retter, Gary Gregory. +o Deprecate IOUtils.LINE_SEPARATOR in favor of Java 7's System.lineSeparator(). Thanks to Gary Gregory. + +Fixed Bugs: +o CharSequenceReader.skip should return 0 instead of EOF on stream end #123. Thanks to Rob Spoor, Jochen Wiedmann. +o Implement CharSequenceReader.ready() #122. Thanks to Rob Spoor. +o IO-669: Fix code smells; fix typos #115. Thanks to XenoAmess, Gary Gregory. +o Add caching for required charsets #120. Thanks to Jerome Wolff, Gary Gregory. +o IO-673: Make some simplifications #121. Thanks to Jerome Wolff. +o IO-674: InfiniteCircularInputStream is not infinite if its input buffer contains -1. Thanks to Gary Gregory. +o IO-675: InfiniteCircularInputStream throws a divide-by-zero exception when reading if its input buffer is size 0. Thanks to Gary Gregory. +o IO-677: FileSystem.getCurrent() does not return the correct enum. Thanks to Gary Gregory. +o IO-679: input.AbstractCharacterFilterReader passes count of chars read #132. Thanks to proneel. +o IO-683: CircularBufferInputStream.read() fails to convert byte to unsigned int +o Fix SpotBugs issues in org.apache.commons.io.FileUtils. Thanks to Gary Gregory. +o IO-672: Copying a File sets last modified date to 01 January 1970. +o IO-676: Prevent NullPointerException in ReversedLinesFileReader constructors #117. Thanks to Michael Ernst, Gary Gregory. + +Changes: +o Replace FindBugs with SpotBugs. Thanks to Gary Gregory. +o maven-checkstyle-plugin 3.1.0 -> 3.1.1. Thanks to Gary Gregory. +o Update tests from org.apache.commons:commons-lang3 3.10 to 3.11. Thanks to Gary Gregory. +o Update commons-parent from 50 to 51 #129. Thanks to Gary Gregory. +o Update actions/checkout from v1 to v2.3.1 #126. Thanks to Gary Gregory. +o Update junit-pioneer from 0.6.0 to 0.8.0, #127, #135. Thanks to Gary Gregory. +o Update mockito-core from 3.3.3 to 3.5.9 #128, #133, #145, #149, #151. Thanks to Gary Gregory. +o Update spotbugs from 4.0.6 to 4.1.1 #134. Thanks to Dependabot. +o Update junit-pioneer from 0.8.0 to 0.9.0 #138. Thanks to Dependabot. +o Update actions/checkout from v2.3.1 to v2.3.2 #140. Thanks to Dependabot. +o Update actions/setup-java from v1.4.0 to v1.4.2 #141, #148. Thanks to Dependabot. + +Compatibility with 2.7: +Binary compatible: Yes. +Source compatible: Yes. +Semantic compatible: Yes. + +Commons IO 2.7 requires Java 8. +Commons IO 2.6 requires Java 7. +Commons IO 2.5 requires Java 6. +Commons IO 2.4 requires Java 6. +Commons IO 2.3 requires Java 6. +Commons IO 2.2 requires Java 5. +Commons IO 1.4 requires Java 1.3. + +Historical list of changes: https://commons.apache.org/proper/commons-io/changes-report.html + +For complete information on Apache Commons IO, including instructions on how to submit bug reports, +patches, or suggestions for improvement, see the Apache 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 +Version 2.7 +Release Notes + +INTRODUCTION: + +Commons IO is a package of Java utility classes like java.io. +Classes in this package are considered to be so standard and of such high +reuse as to justify existence in java.io. + +The Apache Commons IO library contains utility classes, stream implementations, file filters, +file comparators, endian transformation classes, and much more. + +============================================================================== +Apache Commons IO Version 2.7 +============================================================================== +Java 8 required. + +Changes in this version include: + +New features: +o Adding the CircularBufferInputStream, and the PeekableInputStream. +o IO-553: Add org.apache.commons.io.FilenameUtils.isIllegalWindowsFileName(char). +o IO-577: Add readers to filter out given characters: CharacterSetFilterReader and CharacterFilterReader. Thanks to Gary Gregory. +o IO-594: Add IOUtils copy methods with java.lang.Appendable as the target. Thanks to Gary Gregory. +o IO-605: Add class CanExecuteFileFilter. Thanks to Gary Gregory. +o IO-578: Support java.nio.Path and non-default file systems for ReversedLinesFileReader (#62). Thanks to Mark Chesney. +o IO-608: Add a convenience NullPrintStream. Thanks to Gary Gregory. +o IO-612: Add class TeeReader. Thanks to Rob Spoor, Gary Gregory. +o IO-613: Add classes ClosedReader and CloseShieldReader. #84. Thanks to Rob Spoor, Gary Gregory. +o IO-614: Add classes TaggedWriter, ClosedWriter and BrokenWriter. #86. Thanks to Rob Spoor. +o IO-615: Add classes TeeWriter, FilterCollectionWriter, ProxyCollectionWriter, IOExceptionList, IOIndexedException. Thanks to Gary Gregory, Rob Spoor. +o IO-616: Add class AppendableWriter. #87. Thanks to Rob Spoor. +o IO-617: Add class CloseShieldWriter. #83. Thanks to Rob Spoor, Gary Gregory. +o IO-618: Add classes Added TaggedReader, ClosedReader and BrokenReader. #85. Thanks to Rob Spoor. +o IO-619: Support sub sequences in CharSequenceReader. #91. Thanks to Rob Spoor. +o IO-631: Add a CountingFileVisitor (as the basis for a forthcoming DeletingFileVisitor). Thanks to Gary Gregory. +o IO-632: Add PathUtils for operations on NIO Path. Thanks to Gary Gregory. +o IO-633: Add DeletingFileVisitor. Thanks to Gary Gregory. +o IO-635: Add org.apache.commons.io.IOUtils.close(Closeable). Thanks to Gary Gregory. +o IO-636: Add and reuse org.apache.commons.io.IOUtils.closeQuitely(Closeable, Consumer<IOException>). + Add and reuse org.apache.commons.io.IOUtils.close(Closeable, IOConsumer<IOException>). Thanks to Gary Gregory. +o IO-645: Add org.apache.commons.io.file.PathUtils.fileContentEquals(Path, Path, OpenOption...). Thanks to Gary Gregory. +o IO-458: Add a SequenceReader similar to java.io.SequenceInputStream. Thanks to Gary Gregory, Joshua Gitlin. +o IO-648: Implement directory content equality. 100#. Thanks to Gary Gregory. +o IO-648: Refactor ByteArrayOutputStream into synchronized and unsynchronized versions #108. Thanks to Adam Retter, Alex Herbert, Gary Gregory. +o IO-662: Refactor ByteArrayOutputStream into synchronized and unsynchronized versions #108. Thanks to Adam Retter, Gary Gregory. + +Fixed Bugs: +o IO-589: Some tests fail if the base path contains a space. +o IO-582: Make methods in ObservableInputStream.Obsever public. Thanks to Bruno Palos. +o IO-535: Thread bug in FileAlterationMonitor.stop(int). Thanks to Svetlin Zarev, Anthony Raymond. +o IO-557: Perform locale independent upper case conversions. Thanks to luccioman. +o IO-570: Missing Javadoc in FilenameUtils causing Travis-CI build to fail. Thanks to Pranet Verma. +o IO-571: Remove redundant isDirectory() check in org.apache.commons.io.FileUtils.listFilesAndDirs(File, IOFileFilter, IOFileFilter). Thanks to pranet. +o IO-559: FilenameUtils.normalize now verifies hostname syntax in UNC path. +o IO-554: FileUtils.copyToFile(InputStream source, File destination) should not close input stream. Thanks to Michele Mariotti. +o IO-604: FileUtils.doCopyFile(File, File, boolean) can throw ClosedByInterruptException. Thanks to Gary Gregory. +o IO-625: Corrected misleading exception message for FileUtils.copyDirectoryToDirectory. Thanks to Mikko Maunu. +o IO-626: A mistake in the FilenameUtils.concat()'s Javadoc about an absolute path. Thanks to Yuji Konishi. +o IO-640: NPE in org.apache.commons.io.IOUtils.contentEquals(InputStream, InputStream) when only one input is null. Thanks to Gary Gregory. +o IO-641: NPE in org.apache.commons.io.IOUtils.contentEquals(Reader, Reader) when only one input is null. Thanks to Gary Gregory. +o IO-643: NPE in org.apache.commons.io.IOUtils.contentEqualsIgnoreEOL(Reader, Reader) when only one input is null. Thanks to Gary Gregory. +o IO-644: NPE in org.apache.commons.io.FileUtils.contentEqualsIgnoreEOL(File, File) when only one input is null. Thanks to Gary Gregory. +o IO-664: org.apache.commons.io.FileUtils.copyURLToFile(*) open but do not close streams. Thanks to Gary Gregory. + +Changes: +o IO-572: Refactor duplicate code in org.apache.commons.io.FileUtils. Thanks to Pranet Verma. +o IO-580: Update org.apache.commons.io.FilenameUtils.isExtension(String, String[]) to use var args. +o IO-701: Make array declaration in ThresholdingOutputStream consistent with other array declarations in the library #77. Thanks to Raymond Tan. +o IO-607: Update from Java 7 to Java 8. Thanks to Gary Gregory. +o IO-610: Remove throws IOException in method isSymlink() #80. Thanks to Sebastian. +o IO-628: Migration to JUnit Jupiter #97. Thanks to Allon Mureinik. +o IO-630: Deprecate org.apache.commons.io.output.NullOutputStream.NullOutputStream() in favor of org.apache.commons.io.output.NullOutputStream.NULL_OUTPUT_STREAM. Thanks to Gary Gregory. +o IO-629: FileUtils#forceDelete should use Files#delete rather than File#delete so exception messages includes reason for failure. Thanks to Ian Springer, Ian Springer, Gary Gregory. +o IO-634: Make getCause synchronized and use a Deque instead of a Stack #64. Thanks to V�clav Haisman, Bruno P. Kinoshita, Gary Gregory. +o Update tests from Apache Commons Lang 3.9 to 3.10. Thanks to Gary Gregory. +o Update tests org.junit-pioneer:junit-pioneer 0.3.0 -> 0.6.0. Thanks to Gary Gregory. +o Update tests org.junit.jupiter:junit-jupiter 5.5.2 -> 5.6.2. Thanks to Gary Gregory. +o Update tests org.mockito:mockito-core 3.0.0 -> 3.3.3. Thanks to Gary Gregory. +o IO-666: Normalize internal buffers to 8192 bytes. Thanks to Gary Gregory. +o IO-665: Ensure that passing a null InputStream results in NPE with tests #112. Thanks to Otto Fowler, Gary Gregory. +o commons.jacoco.version 0.8.4 -> 0.8.5. Thanks to Gary Gregory. +o com.github.siom79.japicmp:japicmp-maven-plugin 0.14.1 -> 0.14.3. Thanks to Gary Gregory. +o IO-667: Add functional interfaces IOFunction and IOSupplier #110. Thanks to Adam Retter, Gary Gregory. +o Support sub sequences in CharSequenceReader #91. Thanks to Rob Spoor, Gary Gregory. +o Remove deprecated sudo setting. #113. Thanks to dengliming. + +Compatibility with 2.6: +Binary compatible: Yes. +Source compatible: Yes. +Semantic compatible: Yes. + +Commons IO 2.7 requires Java 8. +Commons IO 2.6 requires Java 7. +Commons IO 2.5 requires Java 6. +Commons IO 2.4 requires Java 6. +Commons IO 2.3 requires Java 6. +Commons IO 2.2 requires Java 5. +Commons IO 1.4 requires Java 1.3. + +Historical list of changes: https://commons.apache.org/proper/commons-io/changes-report.html + +For complete information on Apache Commons IO, including instructions on how to submit bug reports, +patches, or suggestions for improvement, see the Apache 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 Version 2.6 ==============================================================================