Hello Gary,

> Am 02.10.2017 um 19:00 schrieb Gary Gregory <garydgreg...@gmail.com>:
> 
> Hi Benedikt,
> 
> First, thank you for being the RM here.
> 
> Granted, I might have documented this new class better (and made the ctor
> private.)
> 
> That said, while it is a new class for 2.6, we cannot RERO and change the
> class name later.

Sorry I meant I can roll out another RC to polish this API.

> 
> I do believe that in this case, the narrow class name of "Factory" is
> better but I will not -1 the release. Maybe ByteOrderParser would be even
> better.
> 
> If other operations are needed in the future, like some conversion gadgets,
> then a good class name should be created for that, and not dumped in a Util
> class. But, hey, that's just me, YMMV. I just like clear names that
> demonstrate intent.

I have been to fast changing this class without giving others the chance to 
review and comment my changes. For this reason I canceled the release of IO 
2.6. Let’s find a class design that everybody is happy with.

Cheers,
Benedikt

> 
> Cheers,
> Gary
> 
> 
> Gary
> 
> 
> 
> 
> On Mon, Oct 2, 2017 at 10:42 AM, Benedikt Ritter <brit...@apache.org> wrote:
> 
>> Hey Gary,
>> 
>>> Am 02.10.2017 um 16:15 schrieb Gary Gregory <garydgreg...@gmail.com>:
>>> 
>>> I am not happy about the change of class name from ByteOrderFactory to
>>> ByteOrderUtils. I am also did a knee jerk -1 when I saw the commit go by
>>> but I have in the middle of moving.
>>> 
>>> - A ByteOrderFactory creates ByteOrder objects and that's it. The intent
>> is
>>> clear and focused.
>>> - The use of ByteOrder "Utils" does not have any use ATM, there are no
>>> other "util" methods.
>>> - The use of ByteOrder "Utils" leads to the same problems we have seen
>> with
>>> [lang]'s StringUtils: An endless, unorganized, dumping ground.
>>> - Granted there is less room for expansion with ByteOrder than with
>>> Strings. But, having dealt with byte order code in the past, I can tell
>> you
>>> from experience it can grow a plenty to deal with all sorts of funky
>> cases.
>>> Ever heard of middle-endian? ;-)
>> 
>> Thank you for your feedback! To be honest I was confused when I came along
>> that class. My observations were:
>> 
>> - Only static methods, but instantiable
>> - It is really a parser but it was called factory (okay, „utils" isn’t
>> better…)
>> - strange special handling of Strings „Little“ and „Big“ with no
>> explanation
>> 
>> So I tried to change it in a way, that it makes more sense to me, but that
>> doesn’t seem to make sense for everybody :-)
>> 
>> I have no problem with RERO, if this class need more polishing.
>> 
>> Regards,
>> Benedikt
>> 
>>> 
>>> Gary
>>> 
>>> On Fri, Mar 16, 2012 at 6:28 PM, <s...@apache.org> wrote:
>>> 
>>>> Author: sebb
>>>> Date: Sat Mar 17 00:28:40 2012
>>>> New Revision: 1301835
>>>> 
>>>> URL: http://svn.apache.org/viewvc?rev=1301835&view=rev
>>>> Log:
>>>> Move changes.xml to location expected by CP24
>>>> Add previous release notes to end of .vm file so we keep history when
>>>> regenerating
>>>> 
>>>> Added:
>>>>   commons/proper/io/trunk/src/changes/
>>>>     - copied from r1178270, commons/proper/io/trunk/src/changes/
>>>>   commons/proper/io/trunk/src/changes/changes.xml
>>>>     - copied unchanged from r1300447, commons/proper/io/trunk/src/
>>>> changes/changes.xml
>>>>   commons/proper/io/trunk/src/changes/release-notes.vm   (with props)
>>>> Modified:
>>>>   commons/proper/io/trunk/RELEASE-NOTES.txt
>>>> 
>>>> Modified: commons/proper/io/trunk/RELEASE-NOTES.txt
>>>> URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/
>>>> RELEASE-NOTES.txt?rev=1301835&r1=1301834&r2=1301835&view=diff
>>>> ============================================================
>>>> ==================
>>>> --- commons/proper/io/trunk/RELEASE-NOTES.txt (original)
>>>> +++ commons/proper/io/trunk/RELEASE-NOTES.txt Sat Mar 17 00:28:40 2012
>>>> @@ -1,8 +1,7 @@
>>>> -$Id$
>>>> 
>>>> -                        Commons IO Package
>>>> -                           Version 2.1
>>>> -                          Release Notes
>>>> +             Commons IO Package
>>>> +                Version 2.2
>>>> +               Release Notes
>>>> 
>>>> INTRODUCTION:
>>>> 
>>>> @@ -17,31 +16,39 @@ file comparators and endian transformati
>>>> Commons IO Package Version 2.2
>>>> ============================================================
>>>> ==================
>>>> 
>>>> +The Commons IO library contains utility classes, stream
>> implementations,
>>>> file filters, file comparators and endian classes.
>>>> +
>>>> +$release.description.replaceAll("  ", "
>>>> +")
>>>> +
>>>> +Changes in this version include:
>>>> +
>>>> New features:
>>>> -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.
>>>> +o IO-287:  Use terabyte (TB) , petabyte (PB) and exabyte (EB) in
>>>> FileUtils.byteCountToDisplaySize(long size) Thanks to Ron Kuris, Gary
>>>> Gregory.
>>>> +o IO-173:  FileUtils.listFiles() doesn't return directories Thanks to
>>>> Marcos Vinícius da Silva.
>>>> +o IO-297:  CharSequenceInputStream to efficiently stream content of a
>>>> CharSequence Thanks to Oleg Kalnichevski.
>>>> +o IO-304:  The second constructor of Tailer class does not pass 'delay'
>>>> to the third one Thanks to liangly.
>>>> +o IO-303:  TeeOutputStream does not call branch.close() when
>> main.close()
>>>> throws an exception Thanks to fabian.barney.
>>>> +o IO-302:  ArrayIndexOutOfBoundsException in BOMInputStream when
>> reading
>>>> a file without BOM multiple times Thanks to jsteuerwald, detinho.
>>>> +o IO-301:  Add IOUtils.closeQuietly(Selector) necessary Thanks to
>>>> kaykay.unique.
>>>> +o IO-292:  IOUtils.closeQuietly() should take a ServerSocket as a
>>>> parameter Thanks to sebb.
>>>> +o IO-290:  Add read/readFully methods to IOUtils Thanks to sebb.
>>>> +o IO-288:  Supply a ReversedLinesFileReader Thanks to Georg Henzler.
>>>> +o IO-291:  Add new function FileUtils.directoryContains. Thanks to
>>>> ggregory.
>>>> +o IO-275:  FileUtils.contentEquals and IOUtils.contentEquals - Add
>> option
>>>> to ignore "line endings"
>>>> +        Added contentEqualsIgnoreEOL methods to both classes Thanks to
>> CJ
>>>> Aspromgos.
>>>> 
>>>> Fixed Bugs:
>>>> -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.
>>>> +o IO-300:  FileUtils.moveDirectoryToDirectory removes source directory
>>>> if destination is a subdirectory
>>>> +o IO-307:  ReaderInputStream#read(byte[] b, int off, int len) should
>>>> check for valid parameters
>>>> +o IO-306:  ReaderInputStream#read(byte[] b, int off, int len) should
>>>> always return 0 for length == 0
>>>> +o IO-276:  "FileUtils#deleteDirectoryOnExit(File)" does not work
>> Thanks
>>>> to nkami.
>>>> +o IO-273:  BoundedInputStream.read() treats max differently from
>>>> BoundedInputStream.read(byte[]...) Thanks to sebb.
>>>> +o IO-298:  Various methods of class 'org.apache.commons.io.FileUtils'
>>>> incorrectly suppress 'java.io.IOException' Thanks to Christian Schulte.
>>>> 
>>>> Changes:
>>>> -o ReaderInputStream optimization: more efficient reading of small
>> chunks
>>>> of data  Issue: IO-296. Thanks to Oleg Kalnichevski.
>>>> +o IO-296:  ReaderInputStream optimization: more efficient reading of
>>>> small chunks of data Thanks to Oleg Kalnichevski.
>>>> +
>>>> 
>>>> ============================================================
>>>> ==================
>>>> Commons IO Package Version 2.1
>>>> 
>>>> Added: commons/proper/io/trunk/src/changes/release-notes.vm
>>>> URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/
>>>> changes/release-notes.vm?rev=1301835&view=auto
>>>> ============================================================
>>>> ==================
>>>> --- commons/proper/io/trunk/src/changes/release-notes.vm (added)
>>>> +++ commons/proper/io/trunk/src/changes/release-notes.vm Sat Mar 17
>>>> 00:28:40 2012
>>>> @@ -0,0 +1,897 @@
>>>> +## Licensed to the Apache Software Foundation (ASF) under one
>>>> +## or more contributor license agreements.  See the NOTICE file
>>>> +## distributed with this work for additional information
>>>> +## regarding copyright ownership.  The ASF licenses this file
>>>> +## to you under the Apache License, Version 2.0 (the
>>>> +## "License"); you may not use this file except in compliance
>>>> +## with the License.  You may obtain a copy of the License at
>>>> +##
>>>> +##  http://www.apache.org/licenses/LICENSE-2.0
>>>> +##
>>>> +## Unless required by applicable law or agreed to in writing,
>>>> +## software distributed under the License is distributed on an
>>>> +## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>>> +## KIND, either express or implied.  See the License for the
>>>> +## specific language governing permissions and limitations
>>>> +## under the License.
>>>> +
>>>> +             Commons IO Package
>>>> +                Version ${version}
>>>> +               Release Notes
>>>> +
>>>> +INTRODUCTION:
>>>> +
>>>> +Commons IO is a package of Java utility classes for java.io's
>> hierarchy.
>>>> +Classes in this package are considered to be so standard and of such
>> high
>>>> +reuse as to justify existence in java.io.
>>>> +
>>>> +Commons IO contains utility classes, stream implementations, file
>> filters,
>>>> +file comparators and endian transformation classes.
>>>> +
>>>> +===========================================================
>>>> ===================
>>>> +Commons IO Package Version ${version}
>>>> +===========================================================
>>>> ===================
>>>> +
>>>> +$introduction.replaceAll("(?<!\015)\012", "
>>>> +")
>>>> +
>>>> +## N.B. the available variables are described here:
>>>> +## http://maven.apache.org/plugins/maven-changes-plugin/
>>>> examples/using-a-custom-announcement-template.html
>>>> +##
>>>> +## Hack to improve layout: replace all pairs of spaces with a single
>>>> new-line
>>>> +$release.description.replaceAll("  ", "
>>>> +")
>>>> +
>>>> +#if ($release.getActions().size() == 0)
>>>> +No changes defined in this version.
>>>> +#else
>>>> +Changes in this version include:
>>>> +
>>>> +## indent to be used if there is no issue attribute.
>>>> +## should be the same as the indent in the changes.xml file
>>>> +## less 2 spaces for the 'o' and trailing space
>>>> +#set($indent='          ')
>>>> +#if ($release.getActions('add').size() !=0)
>>>> +New features:
>>>> +#foreach($actionItem in $release.getActions('add'))
>>>> +## Use replaceAll to fix up LF-only line ends on Windows.
>>>> +#set($action=$actionItem.getAction().replaceAll("\n","
>>>> +"))
>>>> +#if ($actionItem.getIssue())
>>>> +#set($issue=$actionItem.getIssue())
>>>> +#else
>>>> +#set($issue="")
>>>> +#end
>>>> +#if ($actionItem.getDueTo())
>>>> +#set($dueto=$actionItem.getDueTo())
>>>> +#else
>>>> +#set($dueto="")
>>>> +#end
>>>> +o#if($!issue != "") $issue: #else$indent#end ${action} #if($!dueto !=
>>>> "")Thanks to $dueto. #end
>>>> +
>>>> +#set($issue="")
>>>> +#set($dueto="")
>>>> +#end
>>>> +#end
>>>> +
>>>> +#if ($release.getActions('fix').size() !=0)
>>>> +Fixed Bugs:
>>>> +#foreach($actionItem in $release.getActions('fix'))
>>>> +## Use replaceAll to fix up LF-only line ends on Windows.
>>>> +#set($action=$actionItem.getAction().replaceAll("\n","
>>>> +"))
>>>> +#if ($actionItem.getIssue())
>>>> +#set($issue=$actionItem.getIssue())
>>>> +#else
>>>> +#set($issue="")
>>>> +#end
>>>> +#if ($actionItem.getDueTo())
>>>> +#set($dueto=$actionItem.getDueTo())
>>>> +#else
>>>> +#set($dueto="")
>>>> +#end
>>>> +o#if($!issue != "") $issue: #else$indent#end ${action} #if($!dueto !=
>>>> "")Thanks to $dueto. #end
>>>> +
>>>> +#set($issue="")
>>>> +#set($dueto="")
>>>> +#end
>>>> +#end
>>>> +
>>>> +#if ($release.getActions('update').size() !=0)
>>>> +Changes:
>>>> +#foreach($actionItem in $release.getActions('update'))
>>>> +## Use replaceAll to fix up LF-only line ends on Windows.
>>>> +#set($action=$actionItem.getAction().replaceAll("\n","
>>>> +"))
>>>> +#if ($actionItem.getIssue())
>>>> +#set($issue=$actionItem.getIssue())
>>>> +#else
>>>> +#set($issue="")
>>>> +#end
>>>> +#if ($actionItem.getDueTo())
>>>> +#set($dueto=$actionItem.getDueTo())
>>>> +#else
>>>> +#set($dueto="")
>>>> +#end
>>>> +o#if($!issue != "") $issue: #else$indent#end ${action} #if($!dueto !=
>>>> "")Thanks to $dueto. #end
>>>> +
>>>> +#set($issue="")
>>>> +#set($dueto="")
>>>> +#end
>>>> +#end
>>>> +
>>>> +#if ($release.getActions('remove').size() !=0)
>>>> +Removed:
>>>> +#foreach($actionItem in $release.getActions('remove'))
>>>> +## Use replaceAll to fix up LF-only line ends on Windows.
>>>> +#set($action=$actionItem.getAction().replaceAll("\n","
>>>> +"))
>>>> +#if ($actionItem.getIssue())
>>>> +#set($issue=$actionItem.getIssue())
>>>> +#else
>>>> +#set($issue="")
>>>> +#end
>>>> +#if ($actionItem.getDueTo())
>>>> +#set($dueto=$actionItem.getDueTo())
>>>> +#else
>>>> +#set($dueto="")
>>>> +#end
>>>> +o#if($!issue != "") $issue: #else$indent#end ${action} #if($!dueto !=
>>>> "")Thanks to $dueto. #end
>>>> +
>>>> +#set($issue="")
>>>> +#set($dueto="")
>>>> +#end
>>>> +#end
>>>> +## End of main loop
>>>> +#end
>>>> +
>>>> +===========================================================
>>>> ===================
>>>> +Commons IO Package 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.
>>>> +
>>>> +===========================================================
>>>> ===================
>>>> +Commons IO Package Version 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
>>>> +
>>>> +===========================================================
>>>> ===================
>>>> +Commons IO Package Version 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
>>>> +
>>>> +===========================================================
>>>> ===================
>>>> +Commons IO Package 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.
>>>> +
>>>> +===========================================================
>>>> ===================
>>>> +Commons IO Package 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]
>>>> +
>>>> +===========================================================
>>>> ===================
>>>> +Commons IO Package 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]
>>>> +
>>>> +===========================================================
>>>> ===================
>>>> +Commons IO Package 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
>>>> +
>>>> +===========================================================
>>>> ===================
>>>> +Commons IO Package 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]
>>>> +
>>>> +===========================================================
>>>> ===================
>>>> +Commons IO Package 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 unecessary 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
>>>> 
>>>> Propchange: commons/proper/io/trunk/src/changes/release-notes.vm
>>>> ------------------------------------------------------------
>>>> ------------------
>>>>   svn:eol-style = native
>>>> 
>>>> 
>>>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>> For additional commands, e-mail: dev-h...@commons.apache.org
>> 
>> 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to