1*0c4d7b72SSadaf Ebrahimi<?xml version="1.0"?> 2*0c4d7b72SSadaf Ebrahimi<!-- 3*0c4d7b72SSadaf EbrahimiLicensed to the Apache Software Foundation (ASF) under one or more 4*0c4d7b72SSadaf Ebrahimicontributor license agreements. See the NOTICE file distributed with 5*0c4d7b72SSadaf Ebrahimithis work for additional information regarding copyright ownership. 6*0c4d7b72SSadaf EbrahimiThe ASF licenses this file to You under the Apache License, Version 2.0 7*0c4d7b72SSadaf Ebrahimi(the "License"); you may not use this file except in compliance with 8*0c4d7b72SSadaf Ebrahimithe License. You may obtain a copy of the License at 9*0c4d7b72SSadaf Ebrahimi 10*0c4d7b72SSadaf Ebrahimi http://www.apache.org/licenses/LICENSE-2.0 11*0c4d7b72SSadaf Ebrahimi 12*0c4d7b72SSadaf EbrahimiUnless required by applicable law or agreed to in writing, software 13*0c4d7b72SSadaf Ebrahimidistributed under the License is distributed on an "AS IS" BASIS, 14*0c4d7b72SSadaf EbrahimiWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15*0c4d7b72SSadaf EbrahimiSee the License for the specific language governing permissions and 16*0c4d7b72SSadaf Ebrahimilimitations under the License. 17*0c4d7b72SSadaf Ebrahimi--> 18*0c4d7b72SSadaf Ebrahimi<document> 19*0c4d7b72SSadaf Ebrahimi <properties> 20*0c4d7b72SSadaf Ebrahimi <title>Upgrade from 1.3.2 to 1.4</title> 21*0c4d7b72SSadaf Ebrahimi <author email="[email protected]">Commons Documentation Team</author> 22*0c4d7b72SSadaf Ebrahimi </properties> 23*0c4d7b72SSadaf Ebrahimi<body> 24*0c4d7b72SSadaf Ebrahimi 25*0c4d7b72SSadaf Ebrahimi<section name="Upgrade"> 26*0c4d7b72SSadaf Ebrahimi<p> 27*0c4d7b72SSadaf EbrahimiThese are the release notes and advice for upgrading Commons-IO from 28*0c4d7b72SSadaf Ebrahimiversion 1.3.2 to version 1.4. 29*0c4d7b72SSadaf Ebrahimi<source> 30*0c4d7b72SSadaf EbrahimiCommons IO is a package of Java utility classes for java.io's hierarchy. 31*0c4d7b72SSadaf EbrahimiClasses in this package are considered to be so standard and of such high 32*0c4d7b72SSadaf Ebrahimireuse as to justify existence in java.io. 33*0c4d7b72SSadaf Ebrahimi 34*0c4d7b72SSadaf EbrahimiCommons IO contains utility classes, stream implementations, file filters, 35*0c4d7b72SSadaf Ebrahimifile comparators and endian transformation classes. 36*0c4d7b72SSadaf Ebrahimi 37*0c4d7b72SSadaf Ebrahimi 38*0c4d7b72SSadaf EbrahimiCompatibility with 1.3.2 39*0c4d7b72SSadaf Ebrahimi------------------------ 40*0c4d7b72SSadaf EbrahimiBinary compatible - Yes 41*0c4d7b72SSadaf Ebrahimi 42*0c4d7b72SSadaf EbrahimiSource compatible - Yes 43*0c4d7b72SSadaf Ebrahimi 44*0c4d7b72SSadaf EbrahimiSemantic compatible - Yes 45*0c4d7b72SSadaf Ebrahimi Check the bug fixes section for semantic bug fixes 46*0c4d7b72SSadaf Ebrahimi 47*0c4d7b72SSadaf EbrahimiCommons IO 1.4 introduces four new implementations which depend on JDK 1.4 features 48*0c4d7b72SSadaf Ebrahimi(CharSequenceReader, FileWriterWithEncoding, IOExceptionWithCause and RegexFileFilter). 49*0c4d7b72SSadaf EbrahimiIt has been built with the JDK source and target options set to JDK 1.3 and, except for 50*0c4d7b72SSadaf Ebrahimithose implementations, can be used with JDK 1.3 (see IO-127). 51*0c4d7b72SSadaf Ebrahimi 52*0c4d7b72SSadaf Ebrahimi 53*0c4d7b72SSadaf EbrahimiDeprecations from 1.3.2 54*0c4d7b72SSadaf Ebrahimi----------------------- 55*0c4d7b72SSadaf Ebrahimi- FileCleaner deprecated in favour of FileCleaningTracker [see IO-116] 56*0c4d7b72SSadaf Ebrahimi 57*0c4d7b72SSadaf Ebrahimi 58*0c4d7b72SSadaf EbrahimiBug fixes from 1.3.2 59*0c4d7b72SSadaf Ebrahimi-------------------- 60*0c4d7b72SSadaf Ebrahimi- FileUtils 61*0c4d7b72SSadaf Ebrahimi - forceDelete of orphaned Softlinks does not work [IO-147] 62*0c4d7b72SSadaf Ebrahimi - Infinite loop on FileUtils.copyDirectory when the destination directory is within 63*0c4d7b72SSadaf Ebrahimi the source directory [IO-141] 64*0c4d7b72SSadaf Ebrahimi 65*0c4d7b72SSadaf Ebrahimi- HexDump 66*0c4d7b72SSadaf Ebrahimi - HexDump's use of static StringBuffers isn't thread-safe [IO-136] 67*0c4d7b72SSadaf Ebrahimi 68*0c4d7b72SSadaf Ebrahimi 69*0c4d7b72SSadaf EbrahimiEnhancements from 1.3.2 70*0c4d7b72SSadaf Ebrahimi----------------------- 71*0c4d7b72SSadaf Ebrahimi- FileUtils 72*0c4d7b72SSadaf Ebrahimi - Add a deleteQuietly method [IO-135] 73*0c4d7b72SSadaf Ebrahimi - Add a copyDirectory() method that makes use of FileFilter [IO-105] 74*0c4d7b72SSadaf Ebrahimi - Add moveDirectory() and moveFile() methods [IO-77] 75*0c4d7b72SSadaf Ebrahimi 76*0c4d7b72SSadaf Ebrahimi- FilenameUtils 77*0c4d7b72SSadaf Ebrahimi - Add file name extension separator constants[IO-149] 78*0c4d7b72SSadaf Ebrahimi 79*0c4d7b72SSadaf Ebrahimi- IOExceptionWithCause [IO-148] 80*0c4d7b72SSadaf Ebrahimi - Add a new IOException implementation with constructors which take a cause 81*0c4d7b72SSadaf Ebrahimi 82*0c4d7b72SSadaf Ebrahimi- TeeInputStream [IO-129] 83*0c4d7b72SSadaf Ebrahimi - Add new Tee input stream implementation 84*0c4d7b72SSadaf Ebrahimi 85*0c4d7b72SSadaf Ebrahimi- FileWriterWithEncoding [IO-153] 86*0c4d7b72SSadaf Ebrahimi - Add new File Writer implementation that accepts an encoding 87*0c4d7b72SSadaf Ebrahimi 88*0c4d7b72SSadaf Ebrahimi- CharSequenceReader [IO-138] 89*0c4d7b72SSadaf Ebrahimi - Add new Reader implementation that handles any CharSequence (String, 90*0c4d7b72SSadaf Ebrahimi StringBuffer, StringBuilder or CharBuffer) 91*0c4d7b72SSadaf Ebrahimi 92*0c4d7b72SSadaf Ebrahimi- ThresholdingOutputStream [IO-121] 93*0c4d7b72SSadaf Ebrahimi - Add a reset() method which sets the count of the bytes written back to zero. 94*0c4d7b72SSadaf Ebrahimi 95*0c4d7b72SSadaf Ebrahimi- DeferredFileOutputStream [IO-130] 96*0c4d7b72SSadaf Ebrahimi - Add support for temporary files 97*0c4d7b72SSadaf Ebrahimi 98*0c4d7b72SSadaf Ebrahimi- ByteArrayOutputStream 99*0c4d7b72SSadaf Ebrahimi - Add a new write(InputStream) method [IO-152] 100*0c4d7b72SSadaf Ebrahimi 101*0c4d7b72SSadaf Ebrahimi- New Closed Input/Output stream implementations [IO-122] 102*0c4d7b72SSadaf Ebrahimi - AutoCloseInputStream - automatically closes and discards the underlying input stream 103*0c4d7b72SSadaf Ebrahimi - ClosedInputStream - returns -1 for any read attempts 104*0c4d7b72SSadaf Ebrahimi - ClosedOutputStream - throws an IOException for any write attempts 105*0c4d7b72SSadaf Ebrahimi - CloseShieldInputStream - prevents the underlying input stream from being closed. 106*0c4d7b72SSadaf Ebrahimi - CloseShieldOutputStream - prevents the underlying output stream from being closed. 107*0c4d7b72SSadaf Ebrahimi 108*0c4d7b72SSadaf Ebrahimi- Add Singleton Constants to several stream classes [IO-143] 109*0c4d7b72SSadaf Ebrahimi 110*0c4d7b72SSadaf Ebrahimi- PrefixFileFilter [IO-126] 111*0c4d7b72SSadaf Ebrahimi - Add facility to specify case sensitivity on prefix matching 112*0c4d7b72SSadaf Ebrahimi 113*0c4d7b72SSadaf Ebrahimi- SuffixFileFilter [IO-126] 114*0c4d7b72SSadaf Ebrahimi - Add facility to specify case sensitivity on suffix matching 115*0c4d7b72SSadaf Ebrahimi 116*0c4d7b72SSadaf Ebrahimi- RegexFileFilter [IO-74] 117*0c4d7b72SSadaf Ebrahimi - Add new regular expression file filter implementation 118*0c4d7b72SSadaf Ebrahimi 119*0c4d7b72SSadaf Ebrahimi- Make IOFileFilter implementations Serializable [IO-131] 120*0c4d7b72SSadaf Ebrahimi 121*0c4d7b72SSadaf Ebrahimi- Improve IOFileFilter toString() methods [IO-120] 122*0c4d7b72SSadaf Ebrahimi 123*0c4d7b72SSadaf Ebrahimi- Make fields final so classes are immutable/threadsafe [IO-133] 124*0c4d7b72SSadaf Ebrahimi - changes to Age, Delegate, Name, Not, Prefix, Regex, Size, Suffix and Wildcard IOFileFilter 125*0c4d7b72SSadaf Ebrahimi implementations. 126*0c4d7b72SSadaf Ebrahimi 127*0c4d7b72SSadaf Ebrahimi- IOCase 128*0c4d7b72SSadaf Ebrahimi - Add a compare method to IOCase [IO-144] 129*0c4d7b72SSadaf Ebrahimi 130*0c4d7b72SSadaf Ebrahimi- Add a package of java.util.Comparator implementations for files [IO-145] 131*0c4d7b72SSadaf Ebrahimi - DefaultFileComparator - compare files using the default File.compareTo(File) method. 132*0c4d7b72SSadaf Ebrahimi - ExtensionFileComparator - compares files using file name extensions. 133*0c4d7b72SSadaf Ebrahimi - LastModifiedFileComparator - compares files using the last modified date/time. 134*0c4d7b72SSadaf Ebrahimi - NameFileComparator - compares files using file names. 135*0c4d7b72SSadaf Ebrahimi - PathFileComparator - compares files using file paths. 136*0c4d7b72SSadaf Ebrahimi - SizeFileComparator - compares files using file sizes. 137*0c4d7b72SSadaf Ebrahimi</source> 138*0c4d7b72SSadaf Ebrahimi</p> 139*0c4d7b72SSadaf Ebrahimi</section> 140*0c4d7b72SSadaf Ebrahimi 141*0c4d7b72SSadaf Ebrahimi</body> 142*0c4d7b72SSadaf Ebrahimi</document> 143