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 2.5 to 2.6</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 Ebrahimi These are the release notes and advice for upgrading Apache Commons IO from 28*0c4d7b72SSadaf Ebrahimi version 2.5 to version 2.6 29*0c4d7b72SSadaf Ebrahimi <source> 30*0c4d7b72SSadaf Ebrahimi Apache Commons IO is a package of Java utility classes like java.io. 31*0c4d7b72SSadaf Ebrahimi Classes in this package are considered to be so standard and of such high 32*0c4d7b72SSadaf Ebrahimi reuse as to justify existence in java.io. 33*0c4d7b72SSadaf Ebrahimi 34*0c4d7b72SSadaf Ebrahimi The Apache Commons IO library contains utility classes, stream implementations, 35*0c4d7b72SSadaf Ebrahimi file filters, file comparators, endian transformation classes, and much more. 36*0c4d7b72SSadaf Ebrahimi 37*0c4d7b72SSadaf Ebrahimi Apache Commons IO 2.6 requires at least Java 7 to build and run. 38*0c4d7b72SSadaf Ebrahimi 39*0c4d7b72SSadaf Ebrahimi 40*0c4d7b72SSadaf Ebrahimi DEPRECATIONS 41*0c4d7b72SSadaf Ebrahimi ============ 42*0c4d7b72SSadaf Ebrahimi 43*0c4d7b72SSadaf Ebrahimi All closeQuietly overloads in org.apache.commons.io.IOUtils have been 44*0c4d7b72SSadaf Ebrahimi deprecated. Use the try-with-resources statement or handle suppressed 45*0c4d7b72SSadaf Ebrahimi exceptions manually. 46*0c4d7b72SSadaf Ebrahimi 47*0c4d7b72SSadaf Ebrahimi The class org.apache.commons.io.FileSystemUtils has been deprecated. 48*0c4d7b72SSadaf Ebrahimi Use equivalent methods in java.nio.file.FileStore instead, e.g. 49*0c4d7b72SSadaf Ebrahimi Files.getFileStore(Paths.get("/home")).getUsableSpace() or iterate over 50*0c4d7b72SSadaf Ebrahimi FileSystems.getDefault().getFileStores(). 51*0c4d7b72SSadaf Ebrahimi 52*0c4d7b72SSadaf Ebrahimi 53*0c4d7b72SSadaf Ebrahimi COMPATIBILITY WITH JAVA 9 54*0c4d7b72SSadaf Ebrahimi ================== 55*0c4d7b72SSadaf Ebrahimi 56*0c4d7b72SSadaf Ebrahimi The MANIFEST.MF now contains an additional entry: 57*0c4d7b72SSadaf Ebrahimi 58*0c4d7b72SSadaf Ebrahimi Automatic-Module-Name: org.apache.commons.io 59*0c4d7b72SSadaf Ebrahimi 60*0c4d7b72SSadaf Ebrahimi This should make it possible to use Commons IO 2.6 as a module in the Java 9 61*0c4d7b72SSadaf Ebrahimi module system. For more information see the corresponding issue: 62*0c4d7b72SSadaf Ebrahimi 63*0c4d7b72SSadaf Ebrahimi https://issues.apache.org/jira/browse/IO-551 64*0c4d7b72SSadaf Ebrahimi 65*0c4d7b72SSadaf Ebrahimi Building Commons IO 2.6 should work out of the box with the latest Java 9 66*0c4d7b72SSadaf Ebrahimi release. Please report any Java 9 related issues at: 67*0c4d7b72SSadaf Ebrahimi 68*0c4d7b72SSadaf Ebrahimi https://issues.apache.org/jira/browse/IO 69*0c4d7b72SSadaf Ebrahimi 70*0c4d7b72SSadaf Ebrahimi 71*0c4d7b72SSadaf Ebrahimi NEW FEATURES 72*0c4d7b72SSadaf Ebrahimi ============ 73*0c4d7b72SSadaf Ebrahimi 74*0c4d7b72SSadaf Ebrahimi o IO-551: Add Automatic-Module-Name MANIFEST entry for Java 9 compatibility. 75*0c4d7b72SSadaf Ebrahimi o IO-367: Add convenience methods for copyToDirectory. Thanks to James Sawle. 76*0c4d7b72SSadaf Ebrahimi o IO-493: Add infinite circular input stream. Thanks to Piotr Turski. 77*0c4d7b72SSadaf Ebrahimi o IO-507: Add a ByteOrderUtils class. 78*0c4d7b72SSadaf Ebrahimi o IO-518: Add ObservableInputStream. 79*0c4d7b72SSadaf Ebrahimi o IO-519: Add MessageDigestCalculatingInputStream. 80*0c4d7b72SSadaf Ebrahimi o IO-513: Add convenience methods for reading class path resources. 81*0c4d7b72SSadaf Ebrahimi Thanks to Behrang Saeedzadeh. 82*0c4d7b72SSadaf Ebrahimi 83*0c4d7b72SSadaf Ebrahimi FIXED BUGS 84*0c4d7b72SSadaf Ebrahimi ========== 85*0c4d7b72SSadaf Ebrahimi 86*0c4d7b72SSadaf Ebrahimi o IO-550: Documentation issue, fix 404 Javadoc issues in the description page. 87*0c4d7b72SSadaf Ebrahimi Thanks to Jimi Adrian. 88*0c4d7b72SSadaf Ebrahimi o IO-442: Javadoc contradictory for FileFilterUtils.ageFileFilter(cutoff) and 89*0c4d7b72SSadaf Ebrahimi the filter it constructs: AgeFileFilter(cutoff). 90*0c4d7b72SSadaf Ebrahimi Thanks to Simon Robinson. 91*0c4d7b72SSadaf Ebrahimi o IO-534: FileUtilTestCase.testForceDeleteDir() should not delete testDirectory 92*0c4d7b72SSadaf Ebrahimi parent. 93*0c4d7b72SSadaf Ebrahimi o IO-528: Fix Tailer.run race condition runaway logging. Thanks to Dave Moten. 94*0c4d7b72SSadaf Ebrahimi o IO-483: getPrefixLength return -1 if Unix file contains colon. 95*0c4d7b72SSadaf Ebrahimi Thanks to Marko Vasic. 96*0c4d7b72SSadaf Ebrahimi o IO-520: FileUtilsTestCase#testContentEqualsIgnoreEOL fails on Windows. 97*0c4d7b72SSadaf Ebrahimi o IO-516: .gitattributes not correctly applied. Thanks to Jason Pyeron. 98*0c4d7b72SSadaf Ebrahimi o IO-515: Allow Specifying Initial Buffer Size of DeferredFileOutputStream. 99*0c4d7b72SSadaf Ebrahimi Thanks to Brett Lounsbury, Gary Gregory. 100*0c4d7b72SSadaf Ebrahimi o IO-512: ThresholdingOutputStream.thresholdReached() results in 101*0c4d7b72SSadaf Ebrahimi FileNotFoundException. Thanks to Ralf Hauser. 102*0c4d7b72SSadaf Ebrahimi o IO-511: After a few unit tests, a few newly created directories not cleaned 103*0c4d7b72SSadaf Ebrahimi completely. Thanks to Ahmet Celik. 104*0c4d7b72SSadaf Ebrahimi o IO-502: Exceptions are suppressed incorrectly when copying files. 105*0c4d7b72SSadaf Ebrahimi Thanks to Christian Schulte. 106*0c4d7b72SSadaf Ebrahimi o IO-503: Update platform requirement to Java 7. 107*0c4d7b72SSadaf Ebrahimi o IO-537: BOMInputStream shouldn't sort array of BOMs in-place. 108*0c4d7b72SSadaf Ebrahimi Thanks to Borys Zibrov. 109*0c4d7b72SSadaf Ebrahimi 110*0c4d7b72SSadaf Ebrahimi CHANGES 111*0c4d7b72SSadaf Ebrahimi ======= 112*0c4d7b72SSadaf Ebrahimi 113*0c4d7b72SSadaf Ebrahimi o IO-542: FileUtils#readFileToByteArray: optimize reading of files with known 114*0c4d7b72SSadaf Ebrahimi size. Thanks to Ilmars Poikans. 115*0c4d7b72SSadaf Ebrahimi o IO-547: Throw a IllegalArgumentException instead of NullPointerException in 116*0c4d7b72SSadaf Ebrahimi FileSystemUtils.freeSpaceWindows(). Thanks to Nikhil Shinde, 117*0c4d7b72SSadaf Ebrahimi Michael Ernst, Gary Greory. 118*0c4d7b72SSadaf Ebrahimi o IO-506: Deprecate methods FileSystemUtils.freeSpaceKb(). 119*0c4d7b72SSadaf Ebrahimi Thanks to Christian Schulte. 120*0c4d7b72SSadaf Ebrahimi o IO-505: Make LineIterator implement Closeable to support try-with-resources 121*0c4d7b72SSadaf Ebrahimi statements. Thanks to Christian Schulte. 122*0c4d7b72SSadaf Ebrahimi o IO-504: Deprecated of all IOUtils.closeQuietly() methods and use 123*0c4d7b72SSadaf Ebrahimi try-with-resources internally. Thanks to Christian Schulte. 124*0c4d7b72SSadaf Ebrahimi 125*0c4d7b72SSadaf Ebrahimi REMOVED 126*0c4d7b72SSadaf Ebrahimi ======= 127*0c4d7b72SSadaf Ebrahimi 128*0c4d7b72SSadaf Ebrahimi o IO-514: Remove org.apache.commons.io.Java7Support. 129*0c4d7b72SSadaf Ebrahimi 130*0c4d7b72SSadaf Ebrahimi COMPATIBILITY WITH OLDER VERSIONS 131*0c4d7b72SSadaf Ebrahimi ================================= 132*0c4d7b72SSadaf Ebrahimi 133*0c4d7b72SSadaf Ebrahimi Compatibility with 2.5: 134*0c4d7b72SSadaf Ebrahimi Binary compatible: Yes. 135*0c4d7b72SSadaf Ebrahimi Source compatible: Yes. 136*0c4d7b72SSadaf Ebrahimi Semantic compatible: Yes. 137*0c4d7b72SSadaf Ebrahimi 138*0c4d7b72SSadaf Ebrahimi Compatibility with 2.6 and 1.4: 139*0c4d7b72SSadaf Ebrahimi Binary compatible: Yes. 140*0c4d7b72SSadaf Ebrahimi Source compatible: No, see the rare case in 141*0c4d7b72SSadaf Ebrahimi https://issues.apache.org/jira/browse/IO-318. 142*0c4d7b72SSadaf Ebrahimi Semantic compatible: No, see the rare case in 143*0c4d7b72SSadaf Ebrahimi https://issues.apache.org/jira/browse/IO-318. 144*0c4d7b72SSadaf Ebrahimi 145*0c4d7b72SSadaf Ebrahimi Commons IO 2.6 requires Java 7 or later. 146*0c4d7b72SSadaf Ebrahimi Commons IO 2.5 requires Java 6 or later. 147*0c4d7b72SSadaf Ebrahimi Commons IO 2.4 requires Java 6 or later. 148*0c4d7b72SSadaf Ebrahimi Commons IO 2.3 requires Java 6 or later. 149*0c4d7b72SSadaf Ebrahimi Commons IO 2.2 requires Java 5 or later. 150*0c4d7b72SSadaf Ebrahimi Commons IO 1.4 requires Java 1.3 or later. 151*0c4d7b72SSadaf Ebrahimi </source> 152*0c4d7b72SSadaf Ebrahimi </p> 153*0c4d7b72SSadaf Ebrahimi </section> 154*0c4d7b72SSadaf Ebrahimi 155*0c4d7b72SSadaf Ebrahimi </body> 156*0c4d7b72SSadaf Ebrahimi</document> 157