|
1 | 1 |
|
| 2 | +Apache Commons IO 2.19.0 Release Notes |
| 3 | + |
| 4 | +Introduction |
| 5 | +------------ |
| 6 | + |
| 7 | +The Apache Commons IO library contains utility classes, stream implementations, file filters, |
| 8 | +file comparators, endian transformation classes, and much more. |
| 9 | + |
| 10 | +Version 2.19.0: Java 8 is required. |
| 11 | + |
| 12 | +New features |
| 13 | +------------ |
| 14 | + |
| 15 | +o IO-860: Add ThrottledInputStream.Builder.setMaxBytes(long, ChronoUnit). Thanks to Nico Strecker, Gary Gregory. |
| 16 | +o Add IOIterable. Thanks to Gary Gregory. |
| 17 | +o ReversedLinesFileReader implements IOIterable<String>. Thanks to Gary Gregory. |
| 18 | +o Add AbstractByteArrayOutputStream.write(CharSequence, Charset). Thanks to Gary Gregory. |
| 19 | +o Add AbstractByteArrayOutputStream.write(byte[]). Thanks to Gary Gregory. |
| 20 | +o Add RandomAccessFileOutputStream.getRandomAccessFile(). Thanks to Gary Gregory. |
| 21 | +o Add ProxyInputStream.setReference(InputStream), was package-private setIn(InputStream). Thanks to Gary Gregory. |
| 22 | +o Add ProxyOutputStream.setReference(OutputStream). Thanks to Gary Gregory. |
| 23 | +o Add RandomAccessFileInputStream.copy(long, long, OutputStream). Thanks to Gary Gregory. |
| 24 | +o Add ProxyOutputStream.Builder. Thanks to Gary Gregory. |
| 25 | +o Add ByteOrderMark.matches(int[]). Thanks to Gary Gregory. |
| 26 | +o Add BrokenOutputStream.BrokenOutputStream(Function<String>, Throwable>) and deprecate Supplier<String> constructor. Thanks to Gary Gregory. |
| 27 | +o Add IOBooleanSupplier. Thanks to Gary Gregory. |
| 28 | +o Add Uncheck.getAsBoolean(IOBooleanSupplier). Thanks to Gary Gregory. |
| 29 | +o Add FileChannels.contentEquals(SeekableByteChannel, SeekableByteChannel, int). Thanks to Gary Gregory. |
| 30 | +o Add FileChannels.contentEquals(ReadableByteChannel, ReadableByteChannel, int). Thanks to Gary Gregory. |
| 31 | +o IO-872: Add SimplePathVisitor.AbstractBuilder. Thanks to Gary Gregory. |
| 32 | +o IO-872: Add CountingPathVisitor.AbstractBuilder and CountingPathVisitor.Builder. Thanks to Gary Gregory. |
| 33 | +o IO-872: Add AccumulatorPathVisitor.Builder and builder(). Thanks to Gary Gregory. |
| 34 | +o Add PathUtils.contentEquals(FileSystem, FileSystem). Thanks to Gary Gregory. |
| 35 | + |
| 36 | +Fixed Bugs |
| 37 | +---------- |
| 38 | + |
| 39 | +o Deprecate constructor Counters.Counters() to be private in 4.0. Thanks to Gary Gregory. |
| 40 | +o Deprecate constructor Charsets.Charsets() to be private in 4.0. Thanks to Gary Gregory. |
| 41 | +o Pick up maven-antrun-plugin version from parent POM org.apache:apache. Thanks to Gary Gregory. |
| 42 | +o Javadoc is missing its Overview page. Thanks to Gary Gregory. |
| 43 | +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. |
| 44 | +o Deprecate DeferredFileOutputStream.getStream() in favor of getOutputStream(). Thanks to Gary Gregory. |
| 45 | +o IO-868: Improve Javadoc for a BoundedInputStream builder() throwing IOException. Thanks to Julian Reschke, Gary Gregory. |
| 46 | +o IO-868: Improve Javadoc for all implementations of AbstractOriginSupplier#get(). Thanks to Julian Reschke, Gary Gregory. |
| 47 | +o The Consumer to IOUtils.closeQuietly(Closeable, Consumer) now accepts Exception, not just IOException. Thanks to Gary Gregory. |
| 48 | +o The Consumer to IOUtils.close(Closeable, IOConsumer) now accepts wrapped Exception, not just IOException. Thanks to Gary Gregory. |
| 49 | +o Use Uncheck.getAsBoolean(IOBooleanSupplier) to avoid boxing and unboxing of boolean values. Thanks to Gary Gregory. |
| 50 | +o Avoid unnecessary boxing and unboxing of long values in FileUtils.sizeOf(File). Thanks to Gary Gregory. |
| 51 | +o Avoid unnecessary boxing and unboxing of int values in UncheckedBufferedReader.read(). Thanks to Gary Gregory. |
| 52 | +o Avoid unnecessary boxing and unboxing of int values in UncheckedFilterInputStream.available() and read(). Thanks to Gary Gregory. |
| 53 | +o Avoid unnecessary boxing and unboxing of int values in UncheckedFilterReader.read(). Thanks to Gary Gregory. |
| 54 | +o FileChannels.contentEquals(FileChannel, FileChannel, int) can return false when comparing a non-blocking channel. Thanks to Gary Gregory. |
| 55 | +o Deprecate FileChannels.contentEquals(FileChannel, FileChannel, int) in favor of FileChannels.contentEquals(SeekableByteChannel, SeekableByteChannel, int). Thanks to Gary Gregory. |
| 56 | +o Improve performance of IOUtils.contentEquals(InputStream, InputStream) by about 13%. Thanks to Gary Gregory. |
| 57 | +o IO-870: PathUtils.copyFileToDirectory() across file systems #728. Thanks to Gary Gregory. |
| 58 | +o IO-871: IOUtils.contentEquals is incorrect when InputStream.available under-reports. Thanks to Éamonn McManus, Gary Gregory. |
| 59 | +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. |
| 60 | +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. |
| 61 | +o FileTimes.toNtfsTime(*) methods can overflow result values. Thanks to Gary Gregory. |
| 62 | +o Fix Javadoc for ChunkedOutputStream.Builder. Thanks to Gary Gregory. |
| 63 | +o General Javadoc improvements. Thanks to Gary Gregory. |
| 64 | +o Calling QueueInputStream.QueueInputStream(null) maps to the same kind of default blocking queue as QueueInputStream.Builder.setBlockingQueue(null). Thanks to Gary Gregory. |
| 65 | +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. |
| 66 | +o ThreadUtils.sleep(Duration) should handle the underlying OS time changing. Thanks to zhouchongwen, Gary Gregory. |
| 67 | + |
| 68 | +Changes |
| 69 | +------- |
| 70 | + |
| 71 | +o Bump commons.bytebuddy.version from 1.15.10 to 1.17.5 #710, #715, #720, #734, #735. Thanks to Dependabot, Gary Gregory. |
| 72 | +o Bump commons-codec:commons-codec from 1.17.1 to 1.18.0. #717. Thanks to Gary Gregory. |
| 73 | +o Bump org.apache.commons:commons-parent from 78 to 81. Thanks to Gary Gregory. |
| 74 | + |
| 75 | + |
| 76 | +Commons IO 2.7 and up requires Java 8 or above. |
| 77 | +Commons IO 2.6 requires Java 7 or above. |
| 78 | +Commons IO 2.3 through 2.5 requires Java 6 or above. |
| 79 | +Commons IO 2.2 requires Java 5 or above. |
| 80 | +Commons IO 1.4 requires Java 1.3 or above. |
| 81 | + |
| 82 | +Historical list of changes: https://commons.apache.org/proper/commons-io/changes.html |
| 83 | + |
| 84 | +For complete information on Apache Commons IO, including instructions on how to submit bug reports, |
| 85 | +patches, or suggestions for improvement, see the Apache Commons IO website: |
| 86 | + |
| 87 | +https://commons.apache.org/proper/commons-io/ |
| 88 | + |
| 89 | +Download page: https://commons.apache.org/proper/commons-io/download_io.cgi |
| 90 | + |
| 91 | +Have fun! |
| 92 | +-Apache Commons Team |
| 93 | + |
| 94 | +------------------------------------------------------------------------------ |
| 95 | + |
| 96 | + |
2 | 97 | Apache Commons IO 2.18.0 Release Notes |
3 | 98 |
|
4 | 99 | Introduction |
|
0 commit comments