xref: /aosp_15_r20/external/apache-commons-io/src/site/xdoc/upgradeto1_1.xml (revision 0c4d7b72e49a04598d65c566f44504b95342d75a)
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.0 to 1.1</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.0 to version 1.1.
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 Ebrahimiand endian transformation classes.
36*0c4d7b72SSadaf Ebrahimi
37*0c4d7b72SSadaf Ebrahimi
38*0c4d7b72SSadaf EbrahimiIncompatible changes from 1.0
39*0c4d7b72SSadaf Ebrahimi-----------------------------
40*0c4d7b72SSadaf EbrahimiBinary compatible - Yes
41*0c4d7b72SSadaf Ebrahimi
42*0c4d7b72SSadaf EbrahimiSource compatible - Yes
43*0c4d7b72SSadaf Ebrahimi
44*0c4d7b72SSadaf EbrahimiSemantic compatible - Yes, except:
45*0c4d7b72SSadaf Ebrahimi- FileUtils.writeStringToFile()
46*0c4d7b72SSadaf Ebrahimi    A null encoding previously used 'ISO-8859-1', now it uses the platform default
47*0c4d7b72SSadaf Ebrahimi    Generally this will make no difference
48*0c4d7b72SSadaf Ebrahimi
49*0c4d7b72SSadaf Ebrahimi- LockableFileWriter
50*0c4d7b72SSadaf Ebrahimi    Improved validation and now create directories if necessary
51*0c4d7b72SSadaf Ebrahimi
52*0c4d7b72SSadaf Ebrahimiplus these bug fixes may affect you semantically:
53*0c4d7b72SSadaf Ebrahimi- FileUtils.touch()  (Bug fix 29821)
54*0c4d7b72SSadaf Ebrahimi    Now creates the file if it did not previously exist
55*0c4d7b72SSadaf Ebrahimi
56*0c4d7b72SSadaf Ebrahimi- FileUtils.toFile(URL) (Bug fix 32575)
57*0c4d7b72SSadaf Ebrahimi    Now handles escape syntax such as %20
58*0c4d7b72SSadaf Ebrahimi
59*0c4d7b72SSadaf Ebrahimi- FileUtils.sizeOfDirectory()  (Bug fix 36801)
60*0c4d7b72SSadaf Ebrahimi    May now return a size of 0 if the directory is security restricted
61*0c4d7b72SSadaf Ebrahimi
62*0c4d7b72SSadaf Ebrahimi
63*0c4d7b72SSadaf EbrahimiDeprecations from 1.0
64*0c4d7b72SSadaf Ebrahimi---------------------
65*0c4d7b72SSadaf Ebrahimi- CopyUtils has been deprecated.
66*0c4d7b72SSadaf Ebrahimi    Its methods have been moved to IOUtils.
67*0c4d7b72SSadaf Ebrahimi    The new IOUtils methods handle nulls better, and have clearer names.
68*0c4d7b72SSadaf Ebrahimi
69*0c4d7b72SSadaf Ebrahimi- IOUtils.toByteArray(String) - Use {@link String#getBytes()}
70*0c4d7b72SSadaf Ebrahimi- IOUtils.toString(byte[]) - Use {@link String#String(byte[])}
71*0c4d7b72SSadaf Ebrahimi- IOUtils.toString(byte[],String) - Use {@link String#String(byte[],String)}
72*0c4d7b72SSadaf Ebrahimi
73*0c4d7b72SSadaf Ebrahimi
74*0c4d7b72SSadaf EbrahimiBug fixes from 1.0
75*0c4d7b72SSadaf Ebrahimi------------------
76*0c4d7b72SSadaf Ebrahimi- FileUtils - touch()  [29821]
77*0c4d7b72SSadaf Ebrahimi    Now creates the file if it did not previously exist
78*0c4d7b72SSadaf Ebrahimi
79*0c4d7b72SSadaf Ebrahimi- FileUtils - toFile(URL)  [32575]
80*0c4d7b72SSadaf Ebrahimi    Now handles escape syntax such as %20
81*0c4d7b72SSadaf Ebrahimi
82*0c4d7b72SSadaf Ebrahimi- FileFilterUtils - makeCVSAware(IOFileFilter)  [33023]
83*0c4d7b72SSadaf Ebrahimi    Fixed bug that caused method to be completely broken
84*0c4d7b72SSadaf Ebrahimi
85*0c4d7b72SSadaf Ebrahimi- CountingInputStream  [33336]
86*0c4d7b72SSadaf Ebrahimi    Fixed bug that caused the count to reduce by one at the end of the stream
87*0c4d7b72SSadaf Ebrahimi
88*0c4d7b72SSadaf Ebrahimi- CountingInputStream - skip(long)  [34311]
89*0c4d7b72SSadaf Ebrahimi    Bytes from calls to this method were not previously counted
90*0c4d7b72SSadaf Ebrahimi
91*0c4d7b72SSadaf Ebrahimi- NullOutputStream  [33481]
92*0c4d7b72SSadaf Ebrahimi    Remove unnecessary synchronization
93*0c4d7b72SSadaf Ebrahimi
94*0c4d7b72SSadaf Ebrahimi- AbstractFileFilter - accept(File, String)  [30992]
95*0c4d7b72SSadaf Ebrahimi    Fixed broken implementation
96*0c4d7b72SSadaf Ebrahimi
97*0c4d7b72SSadaf Ebrahimi- FileUtils  [36801]
98*0c4d7b72SSadaf Ebrahimi    Previously threw NPE when listing files in a security restricted directory
99*0c4d7b72SSadaf Ebrahimi    Now throw IOException with a better message
100*0c4d7b72SSadaf Ebrahimi
101*0c4d7b72SSadaf Ebrahimi- FileUtils - writeStringToFile()
102*0c4d7b72SSadaf Ebrahimi    Null encoding now correctly uses the platform default
103*0c4d7b72SSadaf Ebrahimi
104*0c4d7b72SSadaf Ebrahimi
105*0c4d7b72SSadaf EbrahimiEnhancements from 1.0
106*0c4d7b72SSadaf Ebrahimi---------------------
107*0c4d7b72SSadaf Ebrahimi- FilenameUtils - new class  [33303,29351]
108*0c4d7b72SSadaf Ebrahimi    A static utility class for working with filenames
109*0c4d7b72SSadaf Ebrahimi    Seeks to ease the pain of developing on Windows and deploying on Unix
110*0c4d7b72SSadaf Ebrahimi
111*0c4d7b72SSadaf Ebrahimi- FileSystemUtils - new class  [32982,36325]
112*0c4d7b72SSadaf Ebrahimi    A static utility class for working with file systems
113*0c4d7b72SSadaf Ebrahimi    Provides one method at present, to get the free space on the filing system
114*0c4d7b72SSadaf Ebrahimi
115*0c4d7b72SSadaf Ebrahimi- IOUtils - new public constants
116*0c4d7b72SSadaf Ebrahimi    Constants for directory and line separators on Windows and Unix
117*0c4d7b72SSadaf Ebrahimi
118*0c4d7b72SSadaf Ebrahimi- IOUtils - toByteArray(Reader,encoding)
119*0c4d7b72SSadaf Ebrahimi    Handles encodings when reading to a byte array
120*0c4d7b72SSadaf Ebrahimi
121*0c4d7b72SSadaf Ebrahimi- IOUtils - toCharArray(InputStream)  [28979]
122*0c4d7b72SSadaf Ebrahimi          - toCharArray(InputStream,encoding)
123*0c4d7b72SSadaf Ebrahimi          - toCharArray(Reader)
124*0c4d7b72SSadaf Ebrahimi    Reads a stream/reader into a character array
125*0c4d7b72SSadaf Ebrahimi
126*0c4d7b72SSadaf Ebrahimi- IOUtils - readLines(InputStream)  [36214]
127*0c4d7b72SSadaf Ebrahimi          - readLines(InputStream,encoding)
128*0c4d7b72SSadaf Ebrahimi          - readLines(Reader)
129*0c4d7b72SSadaf Ebrahimi    Reads a stream/reader line by line into a List of Strings
130*0c4d7b72SSadaf Ebrahimi
131*0c4d7b72SSadaf Ebrahimi- IOUtils - toInputStream(String)  [32958]
132*0c4d7b72SSadaf Ebrahimi          - toInputStream(String,encoding)
133*0c4d7b72SSadaf Ebrahimi    Creates an input stream that uses the string as a source of data
134*0c4d7b72SSadaf Ebrahimi
135*0c4d7b72SSadaf Ebrahimi- IOUtils - writeLines(Collection,lineEnding,OutputStream)  [36214]
136*0c4d7b72SSadaf Ebrahimi          - writeLines(Collection,lineEnding,OutputStream,encoding)
137*0c4d7b72SSadaf Ebrahimi          - writeLines(Collection,lineEnding,Writer)
138*0c4d7b72SSadaf Ebrahimi    Writes a collection to a stream/writer line by line
139*0c4d7b72SSadaf Ebrahimi
140*0c4d7b72SSadaf Ebrahimi- IOUtils - write(...)
141*0c4d7b72SSadaf Ebrahimi    Write data to a stream/writer (moved from CopyUtils with better null handling)
142*0c4d7b72SSadaf Ebrahimi
143*0c4d7b72SSadaf Ebrahimi- IOUtils - copy(...)
144*0c4d7b72SSadaf Ebrahimi    Copy data between streams (moved from CopyUtils with better null handling)
145*0c4d7b72SSadaf Ebrahimi
146*0c4d7b72SSadaf Ebrahimi- IOUtils - contentEquals(Reader,Reader)
147*0c4d7b72SSadaf Ebrahimi    Method to compare the contents of two readers
148*0c4d7b72SSadaf Ebrahimi
149*0c4d7b72SSadaf Ebrahimi- FileUtils - toFiles(URL[])
150*0c4d7b72SSadaf Ebrahimi    Converts an array of URLs to an array of Files
151*0c4d7b72SSadaf Ebrahimi
152*0c4d7b72SSadaf Ebrahimi- FileUtils - copyDirectory()  [32944]
153*0c4d7b72SSadaf Ebrahimi    New methods to copy a directory
154*0c4d7b72SSadaf Ebrahimi
155*0c4d7b72SSadaf Ebrahimi- FileUtils - readFileToByteArray(File)
156*0c4d7b72SSadaf Ebrahimi    Reads an entire file into a byte array
157*0c4d7b72SSadaf Ebrahimi
158*0c4d7b72SSadaf Ebrahimi- FileUtils - writeByteArrayToFile(File,byte[])
159*0c4d7b72SSadaf Ebrahimi    Writes a byte array to a file
160*0c4d7b72SSadaf Ebrahimi
161*0c4d7b72SSadaf Ebrahimi- FileUtils - readLines(File,encoding)  [36214]
162*0c4d7b72SSadaf Ebrahimi    Reads a file line by line into a List of Strings
163*0c4d7b72SSadaf Ebrahimi
164*0c4d7b72SSadaf Ebrahimi- FileUtils - writeLines(File,encoding,List)
165*0c4d7b72SSadaf Ebrahimi              writeLines(File,encoding,List,lineEnding)
166*0c4d7b72SSadaf Ebrahimi    Writes a collection to a file line by line
167*0c4d7b72SSadaf Ebrahimi
168*0c4d7b72SSadaf Ebrahimi- FileUtils - EMPTY_FILE_ARRAY
169*0c4d7b72SSadaf Ebrahimi    Constant for an empty array of File objects
170*0c4d7b72SSadaf Ebrahimi
171*0c4d7b72SSadaf Ebrahimi- ConditionalFileFilter - new interface  [30705]
172*0c4d7b72SSadaf Ebrahimi    Defines the behavior of list based filters
173*0c4d7b72SSadaf Ebrahimi
174*0c4d7b72SSadaf Ebrahimi- AndFileFilter, OrFileFilter  [30705]
175*0c4d7b72SSadaf Ebrahimi    Now support a list of filters to and/or
176*0c4d7b72SSadaf Ebrahimi
177*0c4d7b72SSadaf Ebrahimi- WildcardFilter  [31115]
178*0c4d7b72SSadaf Ebrahimi    New filter that can match using wildcard file names
179*0c4d7b72SSadaf Ebrahimi
180*0c4d7b72SSadaf Ebrahimi- FileFilterUtils - makeSVNAware(IOFileFilter)
181*0c4d7b72SSadaf Ebrahimi    New method, like makeCVSAware, that ignores Subversion source control directories
182*0c4d7b72SSadaf Ebrahimi
183*0c4d7b72SSadaf Ebrahimi- ClassLoaderObjectInputStream
184*0c4d7b72SSadaf Ebrahimi    An ObjectInputStream that supports a ClassLoader
185*0c4d7b72SSadaf Ebrahimi
186*0c4d7b72SSadaf Ebrahimi- CountingInputStream,CountingOutputStream - resetCount()  [28976]
187*0c4d7b72SSadaf Ebrahimi    Adds the ability to reset the count part way through reading/writing the stream
188*0c4d7b72SSadaf Ebrahimi
189*0c4d7b72SSadaf Ebrahimi- DeferredFileOutputStream - writeTo(OutputStream)  [34173]
190*0c4d7b72SSadaf Ebrahimi    New method to allow current contents to be written to a stream
191*0c4d7b72SSadaf Ebrahimi
192*0c4d7b72SSadaf Ebrahimi- DeferredFileOutputStream  [34142]
193*0c4d7b72SSadaf Ebrahimi    Performance optimizations avoiding double buffering
194*0c4d7b72SSadaf Ebrahimi
195*0c4d7b72SSadaf Ebrahimi- LockableFileWriter - encoding support [36825]
196*0c4d7b72SSadaf Ebrahimi    Add support for character encodings to LockableFileWriter
197*0c4d7b72SSadaf Ebrahimi    Improve the validation
198*0c4d7b72SSadaf Ebrahimi    Create directories if necessary
199*0c4d7b72SSadaf Ebrahimi
200*0c4d7b72SSadaf Ebrahimi- IOUtils and EndianUtils are no longer final  [28978]
201*0c4d7b72SSadaf Ebrahimi    Allows developers to have subclasses if desired
202*0c4d7b72SSadaf Ebrahimi</source>
203*0c4d7b72SSadaf Ebrahimi</p>
204*0c4d7b72SSadaf Ebrahimi</section>
205*0c4d7b72SSadaf Ebrahimi
206*0c4d7b72SSadaf Ebrahimi</body>
207*0c4d7b72SSadaf Ebrahimi</document>
208