Author: britter
Date: Sat Oct 14 12:24:09 2017
New Revision: 22474
Log:
Prepare Apache Commons IO 2.6 RC2
Added:
dev/commons/io/commons-io-2.6-RC2/
dev/commons/io/commons-io-2.6-RC2/RELEASE-NOTES.txt
dev/commons/io/commons-io-2.6-RC2/binaries/
dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.tar.gz
(with props)
dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.tar.gz.asc
dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.tar.gz.md5
dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.tar.gz.sha1
dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.zip (with
props)
dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.zip.asc
dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.zip.md5
dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.zip.sha1
dev/commons/io/commons-io-2.6-RC2/source/
dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.tar.gz (with
props)
dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.tar.gz.asc
dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.tar.gz.md5
dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.tar.gz.sha1
dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.zip (with
props)
dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.zip.asc
dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.zip.md5
dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.zip.sha1
Added: dev/commons/io/commons-io-2.6-RC2/RELEASE-NOTES.txt
==============================================================================
--- dev/commons/io/commons-io-2.6-RC2/RELEASE-NOTES.txt (added)
+++ dev/commons/io/commons-io-2.6-RC2/RELEASE-NOTES.txt Sat Oct 14 12:24:09 2017
@@ -0,0 +1,1110 @@
+ Apache Commons IO
+ Version 2.6
+ Release Notes
+
+INTRODUCTION:
+
+Apache 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 2.6 requires at least Java 7 to build and run.
+
+
+DEPRECATIONS
+============
+
+All closeQuietly overloads in org.apache.commons.io.IOUtils have been
+deprecated. Use the try-with-resources statement or handle suppressed
+exceptions manually.
+
+The class org.apache.commons.io.FileSystemUtils has been deprecated.
+Use equivalent methods in java.nio.file.FileStore instead, e.g.
+Files.getFileStore(Paths.get("/home")).getUsableSpace() or iterate over
+FileSystems.getDefault().getFileStores().
+
+
+COMPATIBILITY WITH JAVA 9
+==================
+
+The MANIFEST.MF now contains an additional entry:
+
+ Automatic-Module-Name: org.apache.commons.io
+
+This should make it possible to use Commons IO 2.6 as a module in the Java 9
+module system. For more information see the corresponding issue:
+
+ https://issues.apache.org/jira/browse/IO-551
+
+Building Commons IO 2.6 should work out of the box with the latest Java 9
+release. Please report any Java 9 related issues at:
+
+ https://issues.apache.org/jira/browse/IO
+
+
+NEW FEATURES
+============
+
+o IO-551: Add Automatic-Module-Name MANIFEST entry for Java 9 compatibility.
+o IO-367: Add convenience methods for copyToDirectory. Thanks to James Sawle.
+o IO-493: Add infinite circular input stream. Thanks to Piotr Turski.
+o IO-507: Add a ByteOrderUtils class.
+o IO-518: Add ObservableInputStream.
+o IO-519: Add MessageDigestCalculatingInputStream.
+o IO-513: Add convenience methods for reading class path resources.
+ Thanks to Behrang Saeedzadeh.
+
+FIXED BUGS
+==========
+
+o IO-546: ClosedOutputStream#flush should throw. Thanks to Tomas Celaya.
+o IO-550: Documentation issue, fix 404 Javadoc issues in the description page.
+ Thanks to Jimi Adrian.
+o IO-442: Javadoc contradictory for FileFilterUtils.ageFileFilter(cutoff) and
+ the filter it constructs: AgeFileFilter(cutoff).
+ Thanks to Simon Robinson.
+o IO-534: FileUtilTestCase.testForceDeleteDir() should not delete testDirectory
+ parent.
+o IO-528: Fix Tailer.run race condition runaway logging. Thanks to Dave Moten.
+o IO-483: getPrefixLength return -1 if unix file contains colon.
+ Thanks to Marko Vasic.
+o IO-520: FileUtilsTestCase#testContentEqualsIgnoreEOL fails on Windows.
+o IO-516: .gitattributes not correctly applied. Thanks to Jason Pyeron.
+o IO-515: Allow Specifying Initial Buffer Size of DeferredFileOutputStream.
+ Thanks to Brett Lounsbury, Gary Gregory.
+o IO-512: ThresholdingOutputStream.thresholdReached() results in
+ FileNotFoundException. Thanks to Ralf Hauser.
+o IO-511: After a few unit tests, a few newly created directories not cleaned
+ completely. Thanks to Ahmet Celik.
+o IO-502: Exceptions are suppressed incorrectly when copying files.
+ Thanks to Christian Schulte.
+o IO-503: Update platform requirement to Java 7.
+o IO-537: BOMInputStream shouldn't sort array of BOMs in-place.
+ Thanks to Borys Zibrov.
+
+CHANGES
+=======
+
+o IO-553: Make code style of hasBOM() consistent with getBOMCharsetName().
+ Thanks to Michael Ernst.
+o IO-542: FileUtils#readFileToByteArray: optimize reading of files with known
+ size. Thanks to Ilmars Poikans.
+o IO-547: Throw a IllegalArgumentException instead of NullPointerException in
+ FileSystemUtils.freeSpaceWindows(). Thanks to Nikhil Shinde,
+ Michael Ernst, Gary Greory.
+o IO-506: Deprecate methods FileSystemUtils.freeSpaceKb().
+ Thanks to Christian Schulte.
+o IO-505: Make LineIterator implement Closeable to support try-with-resources
+ statements. Thanks to Christian Schulte.
+o IO-504: Deprecated of all IOUtils.closeQuietly() methods and use
+ try-with-resources internally. Thanks to Christian Schulte.
+
+REMOVED
+=======
+
+o IO-514: Remove org.apache.commons.io.Java7Support.
+
+COMPATIBILITY WITH OLDER VERSIONS
+=================================
+
+Compatibility with 2.5:
+Binary compatible: Yes.
+Source compatible: Yes.
+Semantic compatible: Yes.
+
+Compatibility with 2.6 and 1.4:
+Binary compatible: Yes.
+Source compatible: No, see the rare case in
+ https://issues.apache.org/jira/browse/IO-318.
+Semantic compatible: No, see the rare case in
+ https://issues.apache.org/jira/browse/IO-318.
+
+Commons IO 2.6 requires JDK 1.7 or later.
+Commons IO 2.5 requires JDK 1.6 or later.
+Commons IO 2.4 requires JDK 1.6 or later.
+Commons IO 2.3 requires JDK 1.6 or later.
+Commons IO 2.2 requires JDK 1.5 or later.
+Commons IO 1.4 requires JDK 1.3 or later.
+
+==============================================================================
+Apache Commons IO Version 2.5
+==============================================================================
+New features and bug fixes.
+
+Changes in this version include:
+
+New features:
+o IO-487: Add ValidatingObjectInputStream for controlled deserialization
+o IO-471: Support for additional encodings in ReversedLinesFileReader Thanks
to Leandro Reis.
+o IO-425: Setter method for threshold on ThresholdingOutputStream Thanks to
Craig Swank.
+o IO-406: Introduce new class AppendableOutputStream Thanks to Niall
Pemberton.
+o IO-459: Add WindowsLineEndingInputStream and UnixLineEndingInputStream.
Thanks to Kristian Rosenvold.
+o IO-457: Add a BoundedReader, a wrapper that can be used to constrain access
+ to an underlying stream when used with mark/reset -
+ to avoid overflowing the mark limit of the underlying buffer. Thanks
to Kristian Rosenvold.
+o IO-426: Add API IOUtils.closeQuietly(Closeable...)
+o IO-410: Readfully() That Returns A Byte Array Thanks to Beluga Behr.
+o IO-395: Overload IOUtils buffer methods to accept buffer size Thanks to
Beluga Behr.
+o IO-382: Chunked IO for large arrays.
+ Added writeChunked(byte[], OutputStream) and writeChunked(char[]
Writer)
+ Added ChunkedOutputStream, ChunkedWriter
+o IO-233: Add Methods for Buffering Streams/Writers To IOUtils
+ Added overloaded buffer() methods - see also IO-330
+o IO-330: IOUtils#toBufferedOutputStream/toBufferedWriter to conditionally
wrap the output
+ Added overloaded buffer() methods - see also IO-233
+o IO-381: Add FileUtils.copyInputStreamToFile API with option to leave the
source open.
+ See copyInputStreamToFile(final InputStream source, final File
destination, boolean closeSource)
+o IO-379: CharSequenceInputStream - add tests for available()
+ Fix code so it really does reflect a minimum available.
+o IO-346: Add ByteArrayOutputStream.toInputStream()
+o IO-341: A constant for holding the BOM character (U+FEFF)
+o IO-361: Add API FileUtils.forceMkdirsParent().
+o IO-360: Add API Charsets.requiredCharsets().
+o IO-359: Add IOUtils.skip and skipFully(ReadableByteChannel, long). Thanks
to yukoba.
+o IO-358: Add IOUtils.read and readFully(ReadableByteChannel, ByteBuffer
buffer). Thanks to yukoba.
+o IO-353: Add API IOUtils.copy(InputStream, OutputStream, int) Thanks to
ggregory.
+o IO-349: Add API with array offset and length argument to
FileUtils.writeByteArrayToFile. Thanks to scop.
+o IO-348: Missing information in IllegalArgumentException thrown by
org.apache.commons.io.FileUtils#validateListFilesParameters. Thanks to
plcstpierre.
+o IO-345: Supply a hook method allowing Tailer actively determining stop
condition. Thanks to mkresse.
+o IO-437: Make IOUtils.EOF public and reuse it in various classes.
+
+Fixed Bugs:
+o IO-446: adds an endOfFileReached method to the TailerListener Thanks to
Jeffrey Barrus.
+o IO-484: FilenameUtils should handle embedded null bytes Thanks to Philippe
Arteau.
+o IO-481: Changed/Corrected algorithm for waitFor
+o IO-428: BOMInputStream.skip returns wrong count if stream contains no BOM
Thanks to Stefan Gmeiner.
+o IO-488: FileUtils.waitFor(...) swallows thread interrupted status Thanks to
Björn Buchner.
+o IO-452: Support for symlinks with missing target. Added support for JDK7
symlink features when present Thanks to David Standish.
+o IO-453: Regression in FileUtils.readFileToString from 2.0.1 Thanks to
Steven Christou.
+o IO-451: ant test fails - resources missing from test classpath Thanks to
David Standish.
+o IO-435: Document that FileUtils.deleteDirectory, directoryContains and
cleanDirectory
+ may throw an IllegalArgumentException in case the passed directory
does not
+ exist or is not a directory. Thanks to Dominik Stadler.
+o IO-424: Javadoc fixes, mostly to appease 1.8.0 Thanks to Ville Skyttä.
+o IO-389: FileUtils.sizeOfDirectory can throw IllegalArgumentException Thanks
to Austin Doupnik.
+o IO-390: FileUtils.sizeOfDirectoryAsBigInteger can overflow.
+ Ensure that recursive calls all use BigInteger
+o IO-385: FileUtils.doCopyFile can potentially loop for ever
+ Exit loop if no data to copy
+o IO-383: FileUtils.doCopyFile caches the file size; needs to be documented
+ Added Javadoc; show file lengths in exception message
+o IO-380: FileUtils.copyInputStreamToFile should document it closes the input
source Thanks to claudio_ch.
+o IO-279: Tailer erroneously considers file as new.
+ Fix to use file.lastModified() rather than System.currentTimeMillis()
+o IO-356: CharSequenceInputStream#reset() behaves incorrectly in case when
buffer size is not dividable by data size.
+ Fix code so skip relates to the encoded bytes; reset now re-encodes
the data up to the point of the mark
+o IO-368: ClassLoaderObjectInputStream does not handle primitive typed
members
+o IO-314: Deprecate all methods that use the default encoding
+o IO-338: When a file is rotated, finish reading previous file prior to
starting new one
+o IO-354: Commons IO Tailer does not respect UTF-8 Charset.
+o IO-323: What should happen in FileUtils.sizeOf[Directory] when an overflow
takes place?
+ Added Javadoc.
+o IO-372: FileUtils.moveDirectory can produce misleading error message on
failiure
+o IO-362: IOUtils.contentEquals* methods returns false if input1 == input2,
should return true. Thanks to mmadson, ggregory.
+o IO-357: [Tailer] InterruptedException while the thread is sleeping is
silently ignored Thanks to mortenh.
+o IO-352: Spelling fixes. Thanks to scop.
+o IO-436: Improper JavaDoc comment for FilenameUtils.indexOfExtension. Thanks
to christoph.schneegans.
+
+Changes:
+o IO-433: Converted all testcases to JUnit 4
+o IO-466: Added testcase to show this was fixed with IO-423
+o IO-479: Correct exception message in FileUtils.getFile(File, String...)
Thanks to Zhouce Chen.
+o IO-465: Update to JUnit 4.12 Thanks to based2.
+o IO-462: IOExceptionWithCause no longer needed
+o IO-422: Deprecate Charsets Charset constants in favor of Java 7's
java.nio.charset.StandardCharsets
+o IO-239: Convert IOCase to a Java 1.5+ Enumeration
+ [N.B. this is binary compatible]
+o IO-328: getPrefixLength returns null if filename has leading slashes
+ Javadoc: add examples to show correct behaviour; add unit tests
+o IO-299: FileUtils.listFilesAndDirs includes original dir in results even
when it doesn't match filter
+ Javadoc: clarify that original dir is included in the results
+o IO-375: FilenameUtils.splitOnTokens(String text) check for '**' could be
simplified
+o IO-374: WildcardFileFilter ctors should not use null to mean
IOCase.SENSITIVE when delegating to other ctors
+
+Compatibility with 2.4:
+Binary compatible: Yes.
+Source compatible: Yes.
+Semantic compatible: Yes.
+
+Compatibility with 2.2 and 1.4:
+Binary compatible: Yes.
+Source compatible: No, see the rare case in
https://issues.apache.org/jira/browse/IO-318.
+Semantic compatible: No, see the rare case in
https://issues.apache.org/jira/browse/IO-318.
+
+Commons IO 2.5 requires JDK 1.6 or later.
+Commons IO 2.4 requires JDK 1.6 or later.
+Commons IO 2.3 requires JDK 1.6 or later.
+Commons IO 2.2 requires JDK 1.5 or later.
+Commons IO 1.4 requires JDK 1.3 or later.
+
+==============================================================================
+Apache Commons IO Version 2.4
+==============================================================================
+
+Changes in this version include:
+
+New features:
+o IO-269: Tailer locks file from deletion/rename on Windows. Thanks to
+sebb.
+o IO-333: Export OSGi packages at version 1.x in addition to 2.x. Thanks
+to fmeschbe.
+o IO-320: Add XmlStreamReader support for UTF-32. Thanks to ggregory.
+o IO-331: BOMInputStream wrongly detects UTF-32LE_BOM files as
+UTF-16LE_BOM files in method getBOM(). Thanks to ggregory.
+o IO-327: Add byteCountToDisplaySize(BigInteger). Thanks to ggregory.
+o IO-326: Add new FileUtils.sizeOf[Directory] APIs to return BigInteger.
+Thanks to ggregory.
+o IO-325: Add IOUtils.toByteArray methods to work with URL and URI. Thanks
+to raviprak.
+o IO-324: Add missing Charset sister APIs to method that take a String
+charset name. Thanks to raviprak.
+
+Fixed Bugs:
+o IO-336: Yottabyte (YB) incorrectly defined in FileUtils. Thanks to
+rleavelle.
+o IO-279: Tailer erroneously considers file as new. Thanks to Sergio
+Bossa, Chris Baron.
+o IO-335: Tailer#readLines - incorrect CR handling.
+o IO-334: FileUtils.toURLs throws NPE for null parameter; document the
+behavior.
+o IO-332: Improve tailer's reading performance. Thanks to liangly.
+o IO-279: Improve Tailer performance with buffered reads (see IO-332).
+o IO-329: FileUtils.writeLines uses unbuffered IO. Thanks to tivv.
+o IO-319: FileUtils.sizeOfDirectory follows symbolic links. Thanks to
+raviprak.
+
+
+Compatibility with 2.3:
+Binary compatible: Yes.
+Source compatible: Yes.
+Semantic compatible: Yes.
+
+Compatibility with 2.2 and 1.4:
+Binary compatible: Yes.
+Source compatible: No, see the rare case in
https://issues.apache.org/jira/browse/IO-318.
+Semantic compatible: No, see the rare case in
https://issues.apache.org/jira/browse/IO-318.
+
+Commons IO 2.4 requires JDK 1.6 or later.
+Commons IO 2.3 requires JDK 1.6 or later.
+Commons IO 2.2 requires JDK 1.5 or later.
+Commons IO 1.4 requires JDK 1.3 or later.
+
+==============================================================================
+Apache Commons IO Version 2.3
+==============================================================================
+
+Changes in this version include:
+
+New features:
+o IO-322: Add and use class Charsets. Thanks to ggregory.
+o IO-321: ByteOrderMark UTF_32LE is incorrect. Thanks to ggregory.
+o IO-318: Add Charset sister APIs to method that take a String charset name.
Thanks to ggregory.
+
+Compatibility with 2.2 and 1.4:
+Binary compatible: Yes.
+Source compatible: No, see the rare case in
https://issues.apache.org/jira/browse/IO-318.
+Semantic compatible: No, see the rare case in
https://issues.apache.org/jira/browse/IO-318.
+
+Commons IO 2.3 requires JDK 1.6 or later.
+Commons IO 2.2 requires JDK 1.5 or later.
+Commons IO 1.4 requires JDK 1.3 or later.
+
+==============================================================================
+Apache Commons IO Version 2.2
+==============================================================================
+
+Changes in this version include:
+
+New features:
+o Add IOUTils.toBufferedReader(Reader) Issue: IO-313. Thanks to ggregory.
+o Allow applications to provide buffer (or size) for copyLarge methods.
Issue: IO-308. Thanks to Manoj Mokashi.
+o New copyLarge() method in IOUtils that takes additional offset, length
arguments Issue: IO-305. Thanks to Manoj Mokashi.
+o Use terabyte (TB), petabyte (PB) and exabyte (EB) in
FileUtils.byteCountToDisplaySize(long size) Issue: IO-287. Thanks to Ron
Kuris, Gary Gregory.
+o FileUtils.listFiles() doesn't return directories Issue: IO-173. Thanks to
Marcos Vinícius da Silva.
+o CharSequenceInputStream to efficiently stream content of a CharSequence
Issue: IO-297. Thanks to Oleg Kalnichevski.
+o The second constructor of Tailer class does not pass 'delay' to the third
one Issue: IO-304. Thanks to liangly.
+o TeeOutputStream does not call branch.close() when main.close() throws an
exception Issue: IO-303. Thanks to fabian.barney.
+o ArrayIndexOutOfBoundsException in BOMInputStream when reading a file without
BOM multiple times Issue: IO-302. Thanks to jsteuerwald, detinho.
+o Add IOUtils.closeQuietly(Selector) necessary Issue: IO-301. Thanks to
kaykay.unique.
+o IOUtils.closeQuietly() should take a ServerSocket as a parameter Issue:
IO-292. Thanks to sebb.
+o Add read/readFully methods to IOUtils Issue: IO-290. Thanks to sebb.
+o Supply a ReversedLinesFileReader Issue: IO-288. Thanks to Georg Henzler.
+o Add new function FileUtils.directoryContains. Issue: IO-291. Thanks to
ggregory.
+o FileUtils.contentEquals and IOUtils.contentEquals - Add option to ignore
"line endings"
+ Added contentEqualsIgnoreEOL methods to both classes Issue: IO-275.
Thanks to CJ Aspromgos.
+
+Fixed Bugs:
+o IOUtils.read(InputStream/Reader) ignores the offset parameter Issue:
IO-311. Thanks to Robert Muir.
+o CharSequenceInputStream(CharSequence s, Charset charset, int bufferSize)
ignores bufferSize Issue: IO-312.
+o FileUtils.moveDirectoryToDirectory removes source directory if destination
is a subdirectory Issue: IO-300.
+o ReaderInputStream#read(byte[] b, int off, int len) should check for valid
parameters Issue: IO-307.
+o ReaderInputStream#read(byte[] b, int off, int len) should always return 0
for length == 0 Issue: IO-306.
+o "FileUtils#deleteDirectoryOnExit(File)" does not work Issue: IO-276. Thanks
to nkami.
+o BoundedInputStream.read() treats max differently from
BoundedInputStream.read(byte[]...) Issue: IO-273. Thanks to sebb.
+o Various methods of class 'org.apache.commons.io.FileUtils' incorrectly
suppress 'java.io.IOException' Issue: IO-298. Thanks to Christian Schulte.
+
+Changes:
+o ReaderInputStream optimization: more efficient reading of small chunks of
data Issue: IO-296. Thanks to Oleg Kalnichevski.
+
+
+Compatibility with 2.1 and 1.4:
+Binary compatible: Yes
+Source compatible: Yes
+Semantic compatible: Yes. Check the bug fixes section for semantic bug fixes
+
+Commons IO 2.2 requires a minimum of JDK 1.5.
+Commons IO 1.4 requires a minimum of JDK 1.3.
+
+==============================================================================
+Apache Commons IO Version 2.1
+==============================================================================
+
+New features:
+o Use standard Maven directory layout Issue: IO-285. Thanks to ggregory.
+o Add IOUtils API toString for URL and URI to get contents Issue: IO-284.
Thanks to ggregory.
+o Add API FileUtils.copyFile(File input, OutputStream output) Issue: IO-282.
Thanks to ggregory.
+o FileAlterationObserver has no getter for FileFilter Issue: IO-262.
+o Add FileUtils.getFile API with varargs parameter Issue: IO-261.
+o Add new APPEND parameter for writing string into files Issue: IO-182.
+o Add new read method "toByteArray" to handle InputStream with known size.
Issue: IO-251. Thanks to Marco Albini.
+
+Fixed Bugs:
+o Dubious use of mkdirs() return code Issue: IO-280. Thanks to sebb.
+o ReaderInputStream enters infinite loop when it encounters an unmappable
character Issue: IO-277.
+o FileUtils.moveFile() JavaDoc should specify FileExistsException thrown
Issue: IO-264.
+o ClassLoaderObjectInputStream does not handle Proxy classes Issue: IO-260.
+o Tailer returning partial lines when reaching EOF before EOL Issue: IO-274.
Thanks to Frank Grimes.
+o FileUtils.copyFile() throws IOException when copying large files to a shared
directory (on Windows) Issue: IO-266. Thanks to Igor Smereka.
+o FileSystemUtils.freeSpaceKb throws exception for Windows volumes with no
visible files.
+ Improve coverage by also looking for hidden files. Issue: IO-263.
Thanks to Gil Adam.
+
+Changes:
+o FileAlterationMonitor.stop(boolean allowIntervalToFinish) Issue: IO-259.
+
+==============================================================================
+Apache Commons IO Package 2.0.1
+==============================================================================
+
+Compatibility with 2.0 and 1.4
+------------------------------
+Binary compatible - Yes
+
+Source compatible - Yes
+
+Semantic compatible - Yes
+ Check the bug fixes section for semantic bug fixes
+
+Commons IO 2.0.1 requires a minimum of JDK 1.5
+ (Commons IO 1.4 had a minimum of JDK 1.3)
+
+Enhancements from 2.0
+---------------------
+
+ * [IO-256] - Provide thread factory for FileAlternationMonitor
+
+Bug fixes from 2.0
+------------------
+
+ * [IO-257] - BOMInputStream.read(byte[]) can return 0 which it should not
+ * [IO-258] - XmlStreamReader consumes the stream during encoding detection
+
+==============================================================================
+Apache Commons IO Package 2.0
+==============================================================================
+
+Compatibility with 1.4
+----------------------
+Binary compatible - Yes
+
+Source compatible - Yes
+
+Semantic compatible - Yes
+ Check the bug fixes section for semantic bug fixes
+
+Commons IO 2.0 requires a minimum of JDK 1.5
+ (Commons IO 1.4 had a minimum of JDK 1.3)
+
+Deprecations from 1.4
+---------------------
+
+- IOUtils
+ - write(StringBuffer, Writer) in favour of write(CharSequence, Writer)
+ - write(StringBuffer, OutputStream) in favour of write(CharSequence,
OutputStream)
+ - write(StringBuffer, OutputStream, String) in favour of write(CharSequence,
OutputStream, String)
+
+- FileFilterUtils
+ - andFileFilter(IOFileFilter, IOFileFilter) in favour of
and(IOFileFilter...)
+ - orFileFilter(IOFileFilter, IOFileFilter) in favour of or(IOFileFilter...)
+
+Enhancements from 1.4
+---------------------
+
+ * [IO-140] Move minimum Java requirement from JDK 1.3 to JDK 1.5
+ - use Generics
+ - add new CharSequence write() flavour methods to IOUtils and
FileUtils
+ - replace StringBuffer with StringBuilder, where appropriate
+ - add new Reader/Writer methods to ProxyReader and ProxyWriter
+ - Annotate with @Override and @Deprecated
+
+ * [IO-178] New BOMInputStream and ByteOrderMark implementations - to detect
and optionally exclude an initial Byte Order mark (BOM)
+ * [IO-197] New BoundedInputStream (copied from from Apache JackRabbit)
+ * [IO-193] New Broken Input and Output streams
+ * [IO-132] New File Listener/Monitor facility
+ * [IO-158] New ReaderInputStream and WriterOutputStream implementations
+ * [IO-139] New StringBuilder Writer implementation
+ * [IO-192] New Tagged Input and Output streams
+ * [IO-177] New Tailer class - simple implementation of the Unix "tail -f"
functionality
+ * [IO-162] New XML Stream Reader/Writer implementations (from ROME via
plexus-utils)
+
+ * [IO-142] Comparators - add facility to sort file lists/arrays
+ * [IO-186] Comparators - new Composite and Directory File Comparator
implementations
+ * [IO-176] DirectoryWalker - add filterDirectoryContents() callback method
for filtering directory contents
+ * [IO-210] FileFilter - new Magic Number FileFilter
+ * [IO-221] FileFilterUtils - add methods for suffix and prefix filters which
take an IOCase object
+ * [IO-232] FileFilterUtils - add method for name filters which take an
IOCase object
+ * [IO-229] FileFilterUtils - add varargs and() and or() methods
+ * [IO-198] FileFilterUtils - add ability to apply file filters to
collections and arrays
+ * [IO-156] FilenameUtils - add normalize() and normalizeNoEndSeparator()
methods which allow the separator character to be specified
+ * [IO-194] FileSystemUtils - add freeSpaceKb() method with no input arguments
+ * [IO-185] FileSystemUtils - add freeSpaceKb() methods that take a timeout
parameter - fixes freeSpaceWindows() blocks
+ * [IO-155] FileUtils - use NIO to copy files
+ * [IO-168] FileUtils - add new isSymlink() method
+ * [IO-219] FileUtils - throw FileExistsException when moving a file or
directory if the destination already exists
+ * [IO-234] FileUtils - add Methods for retrieving System User/Temp
directories/paths
+ * [IO-208] FileUtils - add timeout (connection and read) support for
copyURLToFile() method
+ * [IO-238] FileUtils - add sizeOf(File) method
+ * [IO-181] LineIterator now implements Iterable
+ * [IO-224] IOUtils - add closeQuietly(Closeable) and closeQuietly(Socket)
methods
+ * [IO-203] IOUtils - add skipFully() method for InputStreams
+ * [IO-137] IOUtils and ByteArrayOutputStream - add toBufferedInputStream()
method to avoid unnecessary array allocation/copy
+ * [IO-195] Proxy streams/Reader/Writer - provide exception handling methods
+ * [IO-211] Proxy Input/Output streams - add pre/post processing support
+ * [IO-242] Proxy Reader/Writer - add pre/post processing support
+
+Bug fixes from 1.4
+------------------
+ * [IO-214] ByteArrayOutputStream - fix inconsistent synchronization of fields
+ * [IO-201] Counting Input/Output streams - fix inconsistent synchronization
+ * [IO-159] FileCleaningTracker - fix remove() never returns null
+ * [IO-220] FileCleaningTracker - fix Vector performs badly under load
+ * [IO-167] FilenameUtils - fix case-insensitive string handling in
FilenameUtils and FilesystemUtils
+ * [IO-179] FilenameUtils - fix StringIndexOutOfBounds exception in
getPathNoEndSeparator()
+ * [IO-248] FilenameUtils - fix getFullPathNoEndSeparator() returns empty
while path is a one level directory
+ * [IO-246] FilenameUtils - fix wildcardMatch gives incorrect results
+ * [IO-187] FileSystemUtils - fix freeSpaceKb() doesn't work with relative
paths on Linux
+ * [IO-160] FileSystemUtils - fix freeSpace() fails on solaris
+ * [IO-209] FileSystemUtils - fix freeSpaceKb() fails to return correct size
for a windows mount point
+ * [IO-163] FileUtils - fix toURLs() using deprecated method of conversion to
URL
+ * [IO-168] FileUtils - fix Symbolic links followed when deleting directory
+ * [IO-231] FileUtils - fix wrong exception message generated in
isFileNewer() method
+ * [IO-207] FileUtils - fix race condition in forceMkdir() method
+ * [IO-217] FileUtils - fix copyDirectoryToDirectory() makes infinite loops
+ * [IO-166] FileUtils - fix URL decoding in toFile(URL)
+ * [IO-190] FileUtils - fix copyDirectory not preserving lastmodified date on
sub-directories
+ * [IO-240] FileFilterUtils - ensure cvsFilter and svnFilter are only created
once.
+ * [IO-175] IOUtils - fix copyFile() issues with very large files
+ * [IO-191] Improvements from static analysis
+ * [IO-216] LockableFileWriter - delete files quietly when an exception is
thrown during initialization
+ * [IO-243] SwappedDataInputStream - fix readBoolean is inverted
+ * [IO-235] Tests - remove unused YellOnFlushAndCloseOutputStream from
CopyUtilsTest
+ * [IO-161] Tests - fix FileCleaningTrackerTestCase hanging
+
+Documentation changes from 1.4
+------------------------------
+ * [IO-183 FilenameUtils.getExtension() method documentation improvements
+ * [IO-226 FileUtils.byteCountToDisplaySize() documentation corrections
+ * [IO-205 FileUtils.forceMkdir() documentation improvements
+ * [IO-215 FileUtils copy file/directory improve documentation regarding
preserving the last modified date
+ * [IO-189 HexDump.dump() method documentation improvements
+ * [IO-171 IOCase document that it assumes there are only two OSes: Windows
and Unix
+ * [IO-223 IOUtils.copy() documentation corrections
+ * [IO-247 IOUtils.closeQuietly() improve documentation with examples
+ * [IO-202 NotFileFilter documentation corrections
+ * [IO-206 ProxyInputStream - fix misleading parameter names
+ * [IO-212 ProxyInputStream.skip() documentation corrections
+
+==============================================================================
+Apache Commons IO Version 1.4
+==============================================================================
+
+Compatibility with 1.3.2
+------------------------
+Binary compatible - Yes
+
+Source compatible - Yes
+
+Semantic compatible - Yes
+ Check the bug fixes section for semantic bug fixes
+
+Commons IO 1.4 introduces four new implementations which depend on JDK 1.4
features
+(CharSequenceReader, FileWriterWithEncoding, IOExceptionWithCause and
RegexFileFilter).
+It has been built with the JDK source and target options set to JDK 1.3 and,
except for
+those implementations, can be used with JDK 1.3 (see IO IO-127).
+
+Deprecations from 1.3.2
+-----------------------
+- FileCleaner deprecated in favour of FileCleaningTracker [see IO-116]
+
+Bug fixes from 1.3.2
+--------------------
+- FileUtils
+ - forceDelete of orphaned Softlinks does not work [IO-147]
+ - Infinite loop on FileUtils.copyDirectory when the destination directory is
within
+ the source directory [IO-141]
+ - Add a copyDirectory() method that makes use of FileFilter [IO-105]
+ - Add moveDirectory() and moveFile() methods [IO-77]
+
+- HexDump
+ - HexDump's use of static StringBuffers isn't thread-safe [IO-136]
+
+Enhancements from 1.3.2
+-----------------------
+- FileUtils
+ - Add a deleteQuietly method [IO-135]
+
+- FilenameUtils
+ - Add file name extension separator constants[IO-149]
+
+- IOExceptionWithCause [IO-148]
+ - Add a new IOException implementation with constructors which take a cause
+
+- TeeInputStream [IO-129]
+ - Add new Tee input stream implementation
+
+- FileWriterWithEncoding [IO-153]
+ - Add new File Writer implementation that accepts an encoding
+
+- CharSequenceReader [IO-138]
+ - Add new Reader implementation that handles any CharSequence (String,
+ StringBuffer, StringBuilder or CharBuffer)
+
+- ThesholdingOuputStream [IO-121]
+ - Add a reset() method which sets the count of the bytes written back to
zero.
+
+- DeferredFileOutputStream [IO-130]
+ - Add support for temporary files
+
+- ByteArrayOutputStream
+ - Add a new write(InputStream) method [IO-152]
+
+- New Closed Input/Output stream implementations [IO-122]
+ - AutoCloseInputStream - automatically closes and discards the underlying
input stream
+ - ClosedInputStream - returns -1 for any read attempts
+ - ClosedOutputStream - throws an IOException for any write attempts
+ - CloseShieldInputStream - prevents the underlying input stream from being
closed.
+ - CloseShieldOutputStream - prevents the underlying output stream from being
closed.
+
+- Add Singleton Constants to several stream classes [IO-143]
+
+- PrefixFileFilter [IO-126]
+ - Add faciltiy to specify case sensitivity on prefix matching
+
+- SuffixFileFilter [IO-126]
+ - Add faciltiy to specify case sensitivity on suffix matching
+
+- RegexFileFilter [IO-74]
+ - Add new regular expression file filter implementation
+
+- Make IOFileFilter implementations Serializable [IO-131]
+
+- Improve IOFileFilter toString() methods [IO-120]
+
+- Make fields final so classes are immutable/threadsafe [IO-133]
+ - changes to Age, Delegate, Name, Not, Prefix, Regex, Size, Suffix and
Wildcard IOFileFilter
+ implementations.
+
+- IOCase
+ - Add a compare method to IOCase [IO-144]
+
+- Add a package of java.util.Comparator implementations for files [IO-145]
+ - DefaultFileComparator - compare files using the default
File.compareTo(File) method.
+ - ExtensionFileComparator - compares files using file name extensions.
+ - LastModifiedFileComparator - compares files using the last modified
date/time.
+ - NameFileComparator - compares files using file names.
+ - PathFileComparator - compares files using file paths.
+ - SizeFileComparator - compares files using file sizes.
+
+==============================================================================
+Apache Commons IO Version 1.3.2
+==============================================================================
+
+Compatibility with 1.3.1
+----------------------
+Binary compatible - Yes
+
+Source compatible - Yes
+
+Semantic compatible - Yes
+
+Compatibility with 1.3
+----------------------
+Binary compatible - No
+ See [IO-113]
+
+Source compatible - No
+ See [IO-113]
+
+Semantic compatible - Yes
+
+Enhancements since 1.3.1
+------------------------
+
+- Created the FileCleaningTracker, basically a non-static version of the
+ FileCleaner, which can be controlled by the user. [IO-116]
+- The FileCleaner is deprecated.
+
+Bug fixes from 1.3.1
+--------------------
+
+- Some tests, which are implicitly assuming a Unix-like file system, are
+ now skipped on Windows. [IO-115]
+- EndianUtils
+ - Both readSwappedUnsignedInteger(...) methods could return negative
+ numbers due to int/long casting. [IO-117]
+
+Bug fixes from 1.3
+------------------
+
+- FileUtils
+ - NPE in openOutputStream(File) when file has no parent in path [IO-112]
+ - readFileToString(File) is not static [IO-113]
+
+==============================================================================
+Apache Commons IO Version 1.3.1
+==============================================================================
+
+Compatibility with 1.3
+----------------------
+Binary compatible - No
+ See [IO-113]
+
+Source compatible - No
+ See [IO-113]
+
+Semantic compatible - Yes
+
+Bug fixes from 1.3
+------------------
+
+- FileUtils
+ - NPE in openOutputStream(File) when file has no parent in path [IO-112]
+ - readFileToString(File) is not static [IO-113]
+
+==============================================================================
+Apache Commons IO Version 1.3
+==============================================================================
+
+Compatibility with 1.2
+----------------------
+Binary compatible - Yes
+
+Source compatible - Yes
+
+Semantic compatible - Yes
+ Check the bug fixes section for semantic bug fixes
+
+Deprecations from 1.2
+---------------------
+- WildcardFilter deprecated, replaced by WildcardFileFilter
+ - old class only accepted files, thus had a confusing dual purpose
+
+- FileSystemUtils.freeSpace deprecated, replaced by freeSpaceKb
+ - freeSpace returns a result that varies by operating system and
+ thus isn't that useful
+ - freeSpaceKb returns much better and more consistent results
+ - freeSpaceKb existed in v1.2, so this is a gentle cutover
+
+Bug fixes from 1.2
+------------------
+- LineIterator now implements Iterator
+ - It was always supposed to...
+
+- FileSystemUtils.freeSpace/freeSpaceKb [IO-83]
+ - These should now work on AIX and HP-UX
+
+- FileSystemUtils.freeSpace/freeSpaceKb [IO-90]
+ - Avoid infinite looping in Windows
+ - Catch more errors with nice messages
+
+- FileSystemUtils.freeSpace [IO-91]
+ - This is now documented not to work on SunOS 5
+
+- FileSystemUtils [IO-93]
+ - Fixed resource leak leading to 'Too many open files' error
+ - Previously did not destroy Process instances (as JDK Javadoc is so poor)
+ - http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4801027
+
+- FileUtils.touch [IO-100]
+ - The touch method previously gave no indication when the file could not
+ be touched successfully (such as due to access restrictions) - it now
+ throws an IOException if the last modified date cannot be changed
+
+- FileCleaner
+ - This now handles the situation where an error occurs when deleting the file
+
+- IOUtils.copy [IO-84]
+ - Copy methods could return inaccurate byte/char count for large streams
+ - The copy(InputStream, OutputStream) method now returns -1 if the count is
greater than an int
+ - The copy(Reader, Writer) method now throws now returns -1 if the count is
greater than an int
+ - Added a new copyLarge(InputStream, OutputStream) method that returns a long
+ - Added a new copyLarge(Reader, Writer) method that returns a long
+
+- CountingInputStream/CountingOutputStream [IO-84]
+ - Methods were declared as int thus the count was innacurate for large
streams
+ - new long based methods getByteCount()/resetByteCount() added
+ - existing methods changed to throw an exception if the count is greater
than an int
+
+- FileBasedTestCase
+ - Fixed bug in compare content methods identified by GNU classpath
+
+- EndianUtils.writeSwappedLong(byte[], int) [IO-101]
+ - An int overrun in the bit shifting when it should have been a long
+
+- EndianUtils.writeSwappedLong(InputStream) [IO-102]
+ - The return of input.read(byte[]) was not being checked to ensure all 8
bytes were read
+
+Enhancements from 1.2
+---------------------
+- DirectoryWalker [IO-86]
+ - New class designed for subclassing to walk through a set of files.
+ DirectoryWalker provides the walk of the directories, filtering of
+ directories and files, and cancellation support. The subclass must provide
+ the specific behaviour, such as text searching or image processing.
+
+- IOCase
+ - New class/enumeration for case-sensitivity control
+
+- FilenameUtils
+ - New methods to handle case-sensitivity
+ - wildcardMatch - new method that has IOCase as a parameter
+ - equals - new method that has IOCase as a parameter
+
+- FileUtils [IO-108] - new default encoding methods for:
+ - readFileToString(File)
+ - readLines(File)
+ - lineIterator(File)
+ - writeStringToFile(File, String)
+ - writeLines(File, Collection)
+ - writeLines(File, Collection, String)
+
+- FileUtils.openOutputStream [IO-107]
+ - new method to open a FileOutputStream, creating parent directories if
required
+- FileUtils.touch
+- FileUtils.copyURLToFile
+- FileUtils.writeStringToFile
+- FileUtils.writeByteArrayToFile
+- FileUtils.writeLines
+ - enhanced to create parent directories if required
+- FileUtils.openInputStream [IO-107]
+ - new method to open a FileInputStream, providing better error messages than
the JDK
+
+- FileUtils.isFileOlder
+ - new methods to check if a file is older (i.e. isFileOlder()) - counterparts
+ to the existing isFileNewer() methods.
+
+- FileUtils.checksum, FileUtils.checksumCRC32
+ - new methods to create a checksum of a file
+
+- FileUtils.copyFileToDirectory [IO-104]
+ - new variant that optionally retains the file date
+
+- FileDeleteStrategy
+- FileCleaner [IO-56,IO-70]
+ - FileDeleteStrategy is a strategy for handling file deletion
+ - This can be used as a calback in FileCleaner
+ - Together these allow FileCleaner to do a forceDelete to kill directories
+
+- FileCleaner.exitWhenFinished [IO-99]
+ - A new method that allows the internal cleaner thread to be cleanly
terminated
+
+- WildcardFileFilter
+ - Replacement for WildcardFilter
+ - Accepts both files and directories
+ - Ability to control case-sensitivity
+
+- NameFileFilter
+ - Ability to control case-sensitivity
+
+- FileFileFilter
+ - New IOFileFilter implementation
+ - Accepts files where File.isFile() is true
+ - In other words it filters out directories
+ - Singleton instance provided (FILE)
+
+- CanReadFileFilter
+ - New IOFileFilter implementation
+ - Accepts files where File.canRead() is true
+ - Singleton instances provided (CAN_READ/CANNOT_READ/READ_ONLY)
+
+- CanWriteFileFilter
+ - New IOFileFilter implementation
+ - Accepts files where File.canWrite() is true
+ - Singleton instances provided (CAN_WRITE/CANNOT_WRITE)
+
+- HiddenFileFilter
+ - New IOFileFilter implementation
+ - Accepts files where File.isHidden() is true
+ - Singleton instances provided (HIDDEN/VISIBLE)
+
+- EmptyFileFilter
+ - New IOFileFilter implementation
+ - Accepts files or directories that are empty
+ - Singleton instances provided (EMPTY/NOT_EMPTY)
+
+- TrueFileFilter/FalseFileFilter/DirectoryFileFilter
+ - New singleton instance constants (TRUE/FALSE/DIRECTORY)
+ - The new constants are more JDK 1.5 friendly with regards to static imports
+ (whereas if everything uses INSTANCE, then they just clash)
+ - The old INSTANCE constants are still present and have not been deprecated
+
+- FileFilterUtils.sizeRangeFileFilter
+ - new sizeRangeFileFilter(long minimumSize, long maximumSize) method which
+ creates a filter that accepts files within the specified size range.
+
+- FileFilterUtils.makeDirectoryOnly/makeFileOnly
+ - two new methods that decorate a file filter to make it apply to
+ directories only or files only
+
+- NullWriter
+ - New writer that acts as a sink for all data, as per /dev/null
+
+- NullInputStream
+ - New input stream that emulates a stream of a specified size
+
+- NullReader
+ - New reader that emulates a reader of a specified size
+
+- ByteArrayOutputStream [IO-97]
+ - Performance enhancements
+
+==============================================================================
+Apache Commons IO Version 1.2
+==============================================================================
+
+Compatibility with 1.1
+----------------------
+Binary compatible - Yes
+
+Source compatible - Yes
+
+Semantic compatible - Yes
+
+Deprecations from 1.1
+---------------------
+
+Bug fixes from 1.1
+------------------
+- FileSystemUtils.freeSpace(drive)
+ Fix to allow Windows based command to function in French locale
+
+- FileUtils.read*
+ Increase certainty that files are closed in case of error
+
+- LockableFileWriter
+ Locking mechanism was broken and only provided limited protection [38942]
+ File deletion and locking in case of constructor error was broken
+
+Enhancements from 1.1
+---------------------
+- AgeFileFilter/SizeFileFilter
+ New file filters that compares against the age and size of the file
+
+- FileSystemUtils.freeSpaceKb(drive)
+ New method that unifies result to be in kilobytes [38574]
+
+- FileUtils.contentEquals(File,File)
+ Performance improved by adding length and file location checking
+
+- FileUtils.iterateFiles
+ Two new method to provide direct access to iterators over files
+
+- FileUtils.lineIterator
+ IOUtils.lineIterator
+ New methods to provide an iterator over the lines in a file [38083]
+
+- FileUtils.copyDirectoryToDirectory
+ New method to copy a directory to within another directory [36315]
+
+==============================================================================
+Apache Commons IO Version 1.1
+==============================================================================
+
+Incompatible changes from 1.0
+-----------------------------
+Binary compatible - Yes
+
+Source compatible - Yes
+
+Semantic compatible - Yes, except:
+- FileUtils.writeStringToFile()
+ A null encoding previously used 'ISO-8859-1', now it uses the platform
default
+ Generally this will make no difference
+
+- LockableFileWriter
+ Improved validation and now create directories if necesssary
+
+plus these bug fixes may affect you semantically:
+- FileUtils.touch() (Bug fix 29821)
+ Now creates the file if it did not previously exist
+
+- FileUtils.toFile(URL) (Bug fix 32575)
+ Now handles escape syntax such as %20
+
+- FileUtils.sizeOfDirectory() (Bug fix 36801)
+ May now return a size of 0 if the directory is security restricted
+
+Deprecations from 1.0
+---------------------
+- CopyUtils has been deprecated.
+ Its methods have been moved to IOUtils.
+ The new IOUtils methods handle nulls better, and have clearer names.
+
+- IOUtils.toByteArray(String) - Use {@link String#getBytes()}
+- IOUtils.toString(byte[]) - Use {@link String#String(byte[])}
+- IOUtils.toString(byte[],String) - Use {@link String#String(byte[],String)}
+
+Bug fixes from 1.0
+------------------
+- FileUtils - touch() [29821]
+ Now creates the file if it did not previously exist
+
+- FileUtils - toFile(URL) [32575]
+ Now handles escape syntax such as %20
+
+- FileFilterUtils - makeCVSAware(IOFileFilter) [33023]
+ Fixed bug that caused method to be completely broken
+
+- CountingInputStream [33336]
+ Fixed bug that caused the count to reduce by one at the end of the stream
+
+- CountingInputStream - skip(long) [34311]
+ Bytes from calls to this method were not previously counted
+
+- NullOutputStream [33481]
+ Remove unnecessary synchronization
+
+- AbstractFileFilter - accept(File, String) [30992]
+ Fixed broken implementation
+
+- FileUtils [36801]
+ Previously threw NPE when listing files in a security restricted directory
+ Now throw IOException with a better message
+
+- FileUtils - writeStringToFile()
+ Null encoding now correctly uses the platform default
+
+Enhancements from 1.0
+---------------------
+- FilenameUtils - new class [33303,29351]
+ A static utility class for working with filenames
+ Seeks to ease the pain of developing on Windows and deploying on Unix
+
+- FileSystemUtils - new class [32982,36325]
+ A static utility class for working with file systems
+ Provides one method at present, to get the free space on the filing system
+
+- IOUtils - new public constants
+ Constants for directory and line separators on Windows and Unix
+
+- IOUtils - toByteArray(Reader,encoding)
+ Handles encodings when reading to a byte array
+
+- IOUtils - toCharArray(InputStream) [28979]
+ - toCharArray(InputStream,encoding)
+ - toCharArray(Reader)
+ Reads a stream/reader into a charatcter array
+
+- IOUtils - readLines(InputStream) [36214]
+ - readLines(InputStream,encoding)
+ - readLines(Reader)
+ Reads a stream/reader line by line into a List of Strings
+
+- IOUtils - toInputStream(String) [32958]
+ - toInputStream(String,encoding)
+ Creates an input stream that uses the string as a source of data
+
+- IOUtils - writeLines(Collection,lineEnding,OutputStream) [36214]
+ - writeLines(Collection,lineEnding,OutputStream,encoding)
+ - writeLines(Collection,lineEnding,Writer)
+ Writes a collection to a stream/writer line by line
+
+- IOUtils - write(...)
+ Write data to a stream/writer (moved from CopyUtils with better null
handling)
+
+- IOUtils - copy(...)
+ Copy data between streams (moved from CopyUtils with better null handling)
+
+- IOUtils - contentEquals(Reader,Reader)
+ Method to compare the contents of two readers
+
+- FileUtils - toFiles(URL[])
+ Converts an array of URLs to an array of Files
+
+- FileUtils - copyDirectory() [32944]
+ New methods to copy a directory
+
+- FileUtils - readFileToByteArray(File)
+ Reads an entire file into a byte array
+
+- FileUtils - writeByteArrayToFile(File,byte[])
+ Writes a byte array to a file
+
+- FileUtils - readLines(File,encoding) [36214]
+ Reads a file line by line into a List of Strings
+
+- FileUtils - writeLines(File,encoding,List)
+ writeLines(File,encoding,List,lineEnding)
+ Writes a collection to a file line by line
+
+- FileUtils - EMPTY_FILE_ARRAY
+ Constant for an empty array of File objects
+
+- ConditionalFileFilter - new interface [30705]
+ Defines the behaviour of list based filters
+
+- AndFileFilter, OrFileFilter [30705]
+ Now support a list of filters to and/or
+
+- WildcardFilter [31115]
+ New filter that can match using wildcard file names
+
+- FileFilterUtils - makeSVNAware(IOFileFilter)
+ New method, like makeCVSAware, that ignores Subversion source control
directories
+
+- ClassLoaderObjectInputStream
+ An ObjectInputStream that supports a ClassLoader
+
+- CountingInputStream,CountingOutputStream - resetCount() [28976]
+ Adds the ability to reset the count part way through reading/writing the
stream
+
+- DeferredFileOutputStream - writeTo(OutputStream) [34173]
+ New method to allow current contents to be written to a stream
+
+- DeferredFileOutputStream [34142]
+ Performance optimizations avoiding double buffering
+
+- LockableFileWriter - encoding support [36825]
+ Add support for character encodings to LockableFileWriter
+ Improve the validation
+ Create directories if necesssary
+
+- IOUtils and EndianUtils are no longer final [28978]
+ Allows developers to have subclasses if desired
+
+==============================================================================
+Feedback
+==============================================================================
+
+Open source works best when you give feedback:
+http://commons.apache.org/io/
+
+Please direct all bug reports to JIRA
+http://issues.apache.org/jira/browse/IO
+
+Or subscribe to the commons-user mailing list (prefix emails by [io])
+http://commons.apache.org/mail-lists.html
+
+The Commons-IO Team
Added: dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.tar.gz
==============================================================================
Binary file - no diff available.
Propchange: dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.tar.gz
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.tar.gz.asc
==============================================================================
--- dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.tar.gz.asc
(added)
+++ dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.tar.gz.asc
Sat Oct 14 12:24:09 2017
@@ -0,0 +1,16 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAABCgAdFiEEzVRkMV8LmMd+bo7NnarcHJ/MgtAFAlniAF4ACgkQnarcHJ/M
+gtBasxAAn2/aZQC8+a1o9yKQ4kyKgE5urfGzBS5bP5lJ6n5rHnuU50bWWzoWyHGl
+Ge/5Qvg/uGVoDT6KaiyuqawTasqkput6aAoKSbjHQFtMqbQS0DfQdKGMBzcIP3Bv
+GBy8PUhy4SqYzB18awrELp8t0v1yfuqdDcjItdriESxg/O9WdjvV2z5f+r4lY/k0
+TyhgEmNsGOmg5xLzwTioLgjnM/dc2nezn1RXlM03AHGO1LX+RkcsMKXhaNEZMfsD
+vlPNCBOZMpZMGwaaY+6oNv+YYQ8BAYDN+WAhkQIOCVODnH4JtwTSrrPqNjvxltdg
+dc0+O1kDGPXpD68RBrZt3A7KJjACSJ2skbfSY+qa24ghOE/xBxOJ/klyQXZrQP2v
+XY9/fcGyCtDY1cFSjJEHhoJNYSlKhaZ8i0C+ucYnNU+5iVfBAMXO49YyWjpx1BlD
+DxK3SmE6hNmVyRiqQ4ZuKvUCfZLFnPiHFH2IyQ4IvfmpyT2s7BIqnnDypyEdDnQg
+n5fJfEm6q+48b3x7Kx9yfDC1NQcor2Qy59HgGObZafbfpwsoYCWFacVddcTXWbdp
+I2tNGh1Na76hNY5QMfEEDW1+EMVjVRlXFw2E1VuMNkP9i0Ih7Ok1EN9POMiaQFxS
+6mNyJt+qc3Y73ISoONSeS52/CcdB4WYz0eJmR6rC5Z14G8PF1ho=
+=JqCE
+-----END PGP SIGNATURE-----
Added: dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.tar.gz.md5
==============================================================================
--- dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.tar.gz.md5
(added)
+++ dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.tar.gz.md5
Sat Oct 14 12:24:09 2017
@@ -0,0 +1 @@
+c38257ccbc87f47db3f93fc26fa6298e
\ No newline at end of file
Added: dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.tar.gz.sha1
==============================================================================
--- dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.tar.gz.sha1
(added)
+++ dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.tar.gz.sha1
Sat Oct 14 12:24:09 2017
@@ -0,0 +1 @@
+9884d639329cd946258526ead4c2be231dad1d1f
\ No newline at end of file
Added: dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.zip
==============================================================================
Binary file - no diff available.
Propchange: dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.zip
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.zip.asc
==============================================================================
--- dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.zip.asc
(added)
+++ dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.zip.asc Sat
Oct 14 12:24:09 2017
@@ -0,0 +1,16 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAABCgAdFiEEzVRkMV8LmMd+bo7NnarcHJ/MgtAFAlniAF4ACgkQnarcHJ/M
+gtDxsA/+M4u0uUL/K2ef1CIBMYVpoEXDjQkTAvCslh1bD+dlF148e9KmJwvao0EC
+TZ/fLJI3ARb0zFfm9Sr6STWIcasiP/jCH7+0H7VqgSoiMBM+5dTSLRd0H3ESEHNU
+n5j3ir/fxz6pXvKpNXiZzpLQviY5WW37ayLtZG9u+PArgWUFWAiGZ31VV/D6pIDU
+tJkv/KgxitFS9ktLjK5BeDczztFJkyZuc6GQGJoYN4CBTT7dDLINkMGNLdSg+wXB
+cVF5Ij24XuzHkQMYdTD8EB/iw+7MR/r92oXuSLZUJf6+9OfBLlDHN0Prnzo/g6nL
+Ji4EtBwS1t0Htw0Nmt1WW7N6QUUpIArlMCKW4HANcMgsbqbud1iJQQXqDlzKYQh+
+ItkF0EiAflTOeuHWR1HkbyjpCHsUkMKk2WM5MxL8ZzwsPxm69r/YzhP7L9HVTawb
+LeCwo3dsMyZZYNvuCCAu0enmWTdV6veRSevhk2imbL+qqNCJsSnu1CElwiDp61BZ
+3tCIBl2aNUQN2f0f5uDq5nFk8XWLTAHTF2ksqIGIbpDOC+nbv6GqPNOrr1Ykstle
+QXB7njPmbFq5UQjmwOhvxU19xY9zQeVtySoDPH/kbVsbRNSLnU+L+W6Qa1hH3XfS
+Tv38TJTqiJiGZZCC5cIlcitYagn+SunTM9ZUa+6XtfxKGQ727hw=
+=eX/6
+-----END PGP SIGNATURE-----
Added: dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.zip.md5
==============================================================================
--- dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.zip.md5
(added)
+++ dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.zip.md5 Sat
Oct 14 12:24:09 2017
@@ -0,0 +1 @@
+439d1bd1d25483bcab8d3e6046edd819
\ No newline at end of file
Added: dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.zip.sha1
==============================================================================
--- dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.zip.sha1
(added)
+++ dev/commons/io/commons-io-2.6-RC2/binaries/commons-io-2.6-bin.zip.sha1 Sat
Oct 14 12:24:09 2017
@@ -0,0 +1 @@
+7b502b969cf55810f74bdd58af20171428c37227
\ No newline at end of file
Added: dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.tar.gz
==============================================================================
Binary file - no diff available.
Propchange: dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.tar.gz
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.tar.gz.asc
==============================================================================
--- dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.tar.gz.asc
(added)
+++ dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.tar.gz.asc Sat
Oct 14 12:24:09 2017
@@ -0,0 +1,16 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAABCgAdFiEEzVRkMV8LmMd+bo7NnarcHJ/MgtAFAlniAF8ACgkQnarcHJ/M
+gtCShw//UfBagUuUWyom/Gp7j/9g65QacPHTwaLqeMnefBbRaLbsyxmvTT1ZF1Mf
+T50CGrYLrPPtGoNeug7zJJyugAXDglVYHL176rZF/QFhlxgKZJa7HFkkJGJW1v8V
+rrWRKRvfhmhFWOVnl24v6u5KYVMwtCvFVxKg4ydqI/w3dX2AA/xv7d3iYLUBYZf7
+DlfYJQEuwVFbWATvS1fS20mHJXsgyg2TK/oXdX0+UG785OPQtwdhXKKnr65XhfHM
+SIdC5UOKCqWwdXTLylrNbri5nVdQEaIKjc/Z3AZ6HFKvE9GYe/jllv4LlQVP1Tws
+XRwvgBLIu6ngle5puLhUA8h9k8UbO5wk3G0FSDe07bF7y7fGJKXzbPLd24tDeOfj
+82wKYczqx8N9Dqv4IWmtH/9Uu13/LBvVxj586QUk0U+X+bpKeXercS6bTpLaDkAy
+Lv/OEDis0/wLWIL8Tgqw/wP9TMHxl9dvGWRlvNIljZbrud3sn5+z2GjYtCOCv9VF
+evAmiMc9ImUiRozE18h0r3paqYzLfNS7TcDMtL2sm6fd8IoU9J+iR+i48LdDZ8SL
+PG8+ojNLuNnqzDCKflu3zUsamwLYKXv/L9wScbICi16fr5J3OLPJTjWm+tcfDiw7
+/bU1ISDF7wOkTEkvD+5XlrrJFAkRCyeIuTx1Wsj9CaaQ0AAI5/M=
+=j6V6
+-----END PGP SIGNATURE-----
Added: dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.tar.gz.md5
==============================================================================
--- dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.tar.gz.md5
(added)
+++ dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.tar.gz.md5 Sat
Oct 14 12:24:09 2017
@@ -0,0 +1 @@
+ded4e860eebcb495b1a1e29726e14e23
\ No newline at end of file
Added: dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.tar.gz.sha1
==============================================================================
--- dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.tar.gz.sha1
(added)
+++ dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.tar.gz.sha1 Sat
Oct 14 12:24:09 2017
@@ -0,0 +1 @@
+a9dbe0a315be40d324b9f2e2034f5a1e659ffa6a
\ No newline at end of file
Added: dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.zip
==============================================================================
Binary file - no diff available.
Propchange: dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.zip
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.zip.asc
==============================================================================
--- dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.zip.asc (added)
+++ dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.zip.asc Sat Oct
14 12:24:09 2017
@@ -0,0 +1,16 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAABCgAdFiEEzVRkMV8LmMd+bo7NnarcHJ/MgtAFAlniAF8ACgkQnarcHJ/M
+gtAHgBAAjGHvHarbuq9qmXlHgDtnTIdPZga7N8jtQUla9UMmeXO9qD0fw/KDzBvC
+J54TkGIX5LRPHHMBMJaSL+RZv/D4xaqfIjxx3GxVM/ma3V5gyMGVIqahO6RTaYI9
+arBfplDL4fyYgJyn6uagOPbPVMCh4dfE8bQRag0VjgrPyP0S8ap4KREXs3SfeNzW
+575amhaOOuLkdVneM9yFSB29xszx5QL141Nb7cQf0mpbykyaLkGvaj5OT8jWFWlV
+W7sy2IpYlvyDKcGrynJ5tFUq1fZ8wucwJt/7Sqyn9nTBIIXbcighsaGIG+cmIm9i
+e1J0NYRzcv0nnWOOnM6MtMwvHoxRdpdeZ/bo3tn+RgCDax/EKsBx3/XsjGJ+51g9
+ErKvpS8/eS3WkjPLyC3M2Qsil0OCeU7rfykDLxZqMpODgjkV4S9igSqlIUDy1bhM
+jV3cwep8fk2Lul9w/DilaFFMWS2O+EslxVZIGI3g8V7rWjfIuSrLS1qajXWIz/nM
+EWA2w7WQB9l0a+cX44H7IynzPCFVJF0bYEwzhUQGF95YoZgLbQty7Q97a+ZDk+NM
+rotFquVQ5HXez/rk4Eupnxr7LBc7NTku2/SWi8jbJ5RVxzwNQbovvTmG1Rd/EVQ3
+zHT1rCT0xWsGwR+T/dztbgLh8zBM06QLd7aTPI3+Mn35NyGCqgE=
+=cG0T
+-----END PGP SIGNATURE-----
Added: dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.zip.md5
==============================================================================
--- dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.zip.md5 (added)
+++ dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.zip.md5 Sat Oct
14 12:24:09 2017
@@ -0,0 +1 @@
+292ca1c7325a56191c0e3f3b22a6f8b0
\ No newline at end of file
Added: dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.zip.sha1
==============================================================================
--- dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.zip.sha1 (added)
+++ dev/commons/io/commons-io-2.6-RC2/source/commons-io-2.6-src.zip.sha1 Sat
Oct 14 12:24:09 2017
@@ -0,0 +1 @@
+7760e6c13c9f7ec199f606fc6ef1be7b61d9dd26
\ No newline at end of file