<commit_before>$Id$

			 Commons IO Package
			    Version 1.4
			   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.


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.


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
<commit_msg>Update the release notes for 2.0<commit_after>$Id$

			 Commons IO Package
			    Version 1.4
			   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.


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 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


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

{'fraction_non_alphanumeric': 0.08625084976206662, 'fraction_numerical': 0.028467029231815093, 'mean_word_length': 3.7076, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6767814', 'n_tokens_mistral': 3444, 'n_tokens_neox': 3126, 'n_words': 1299}