This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-io.git
The following commit(s) were added to refs/heads/master by this push: new a4a63d1 Prepare for release 2.7. a4a63d1 is described below commit a4a63d1dffc371fa7f1beecbae88abc388408025 Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Sun May 24 15:40:32 2020 -0400 Prepare for release 2.7. --- CONTRIBUTING.md | 6 +- NOTICE.txt | 4 +- README.md | 12 +- RELEASE-NOTES.txt | 166 ++++++++++++++++++----- pom.xml | 4 + src/changes/changes.xml | 2 +- src/changes/release-notes.vm | 285 +++++++++++++++++++++++++++++++++++---- src/site/xdoc/download_io.xml | 46 ++++--- src/site/xdoc/issue-tracking.xml | 4 +- src/site/xdoc/mail-lists.xml | 63 ++++----- 10 files changed, 471 insertions(+), 121 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index bd76d94..8226fb0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -25,7 +25,7 @@ | commons-build-plugin/trunk/src/main/resources/commons-xdoc-templates | +======================================================================+ | | - | 1) Re-generate using: mvn commons:contributing-md | + | 1) Re-generate using: mvn commons-build:contributing-md | | | | 2) Set the following properties in the component's pom: | | - commons.jira.id (required, alphabetic, upper case) | @@ -50,7 +50,7 @@ Getting Started + Make sure you have a [JIRA account](https://issues.apache.org/jira/). + Make sure you have a [GitHub account](https://github.com/signup/free). -+ If you're planning to implement a new feature it makes sense to discuss you're changes on the [dev list](https://commons.apache.org/mail-lists.html) first. This way you can make sure you're not wasting your time on something that isn't considered to be in Apache Commons IO's scope. ++ If you're planning to implement a new feature it makes sense to discuss your changes on the [dev list](https://commons.apache.org/mail-lists.html) first. This way you can make sure you're not wasting your time on something that isn't considered to be in Apache Commons IO's scope. + Submit a [Jira Ticket][jira] for your issue, assuming one does not already exist. + Clearly describe the issue including steps to reproduce when it is a bug. + Make sure you fill in the earliest version that you know has the issue. @@ -107,7 +107,7 @@ Additional Resources + [Apache Commons IO JIRA project page][jira] + [Contributor License Agreement][cla] + [General GitHub documentation](https://help.github.com/) -+ [GitHub pull request documentation](https://help.github.com/send-pull-requests/) ++ [GitHub pull request documentation](https://help.github.com/articles/creating-a-pull-request/) + [Apache Commons Twitter Account](https://twitter.com/ApacheCommons) + `#apache-commons` IRC channel on `irc.freenode.net` diff --git a/NOTICE.txt b/NOTICE.txt index 30334f1..4a88d2a 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -1,5 +1,5 @@ Apache Commons IO -Copyright 2002-2019 The Apache Software Foundation +Copyright 2002-2020 The Apache Software Foundation This product includes software developed at -The Apache Software Foundation (http://www.apache.org/). +The Apache Software Foundation (https://www.apache.org/). diff --git a/README.md b/README.md index ef0dc96..92050f0 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ | commons-build-plugin/trunk/src/main/resources/commons-xdoc-templates | +======================================================================+ | | - | 1) Re-generate using: mvn commons:readme-md | + | 1) Re-generate using: mvn commons-build:readme-md | | | | 2) Set the following properties in the component's pom: | | - commons.componentid (required, alphabetic, lower case) | @@ -43,10 +43,10 @@ Apache Commons IO =================== -[](https://travis-ci.org/apache/commons-io) -[](https://coveralls.io/r/apache/commons-io) +[](https://travis-ci.org/apache/commons-io) +[](https://coveralls.io/r/apache/commons-io) [](https://maven-badges.herokuapp.com/maven-central/commons-io/commons-io/) -[](http://www.apache.org/licenses/LICENSE-2.0.html) +[](https://javadoc.io/doc/commons-io/commons-io/2.7) The Apache Commons IO library contains utility classes, stream implementations, file filters, file comparators, endian transformation classes, and much more. @@ -55,7 +55,7 @@ Documentation ------------- More information can be found on the [Apache Commons IO homepage](https://commons.apache.org/proper/commons-io). -The [Javadoc](https://commons.apache.org/proper/commons-io/javadocs/api-release) can be browsed. +The [Javadoc](https://commons.apache.org/proper/commons-io/apidocs) can be browsed. Questions related to the usage of Apache Commons IO should be posted to the [user mailing list][ml]. Where can I get the latest release? @@ -68,7 +68,7 @@ Alternatively you can pull it from the central Maven repositories: <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> - <version>2.6</version> + <version>2.7</version> </dependency> ``` diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 2974310..d1ce75c 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -1,6 +1,108 @@ - Apache Commons IO - Version 2.6 - Release Notes + +Apache Commons IO +Version 2.7-SNAPSHOT +Release Notes + +INTRODUCTION: + +Commons IO is a package of Java utility classes like java.io. +Classes in this package are considered to be so standard and of such high +reuse as to justify existence in java.io. + +The Apache Commons IO library contains utility classes, stream implementations, file filters, +file comparators, endian transformation classes, and much more. + +============================================================================== +Apache Commons IO Version 2.7-SNAPSHOT +============================================================================== +Java 8 required. + +Changes in this version include: + +New features: +o Adding the CircularBufferInputStream, and the PeekableInputStream. +o IO-553: Add org.apache.commons.io.FilenameUtils.isIllegalWindowsFileName(char). +o IO-577: Add readers to filter out given characters: CharacterSetFilterReader and CharacterFilterReader. Thanks to Gary Gregory. +o IO-594: Add IOUtils copy methods with java.lang.Appendable as the target. Thanks to Gary Gregory. +o IO-605: Add class CanExecuteFileFilter. Thanks to Gary Gregory. +o IO-578: Support java.nio.Path and non-default file systems for ReversedLinesFileReader (#62). Thanks to Mark Chesney. +o IO-608: Add a convenience NullPrintStream. Thanks to Gary Gregory. +o IO-612: Add class TeeReader. Thanks to Rob Spoor, Gary Gregory. +o IO-613: Add classes ClosedReader and CloseShieldReader. #84. Thanks to Rob Spoor, Gary Gregory. +o IO-614: Add classes TaggedWriter, ClosedWriter and BrokenWriter. #86. Thanks to Rob Spoor. +o IO-615: Add classes TeeWriter, FilterCollectionWriter, ProxyCollectionWriter, IOExceptionList, IOIndexedException. Thanks to Gary Gregory, Rob Spoor. +o IO-616: Add class AppendableWriter. #87. Thanks to Rob Spoor. +o IO-617: Add class CloseShieldWriter. #83. Thanks to Rob Spoor, Gary Gregory. +o IO-618: Add classes Added TaggedReader, ClosedReader and BrokenReader. #85. Thanks to Rob Spoor. +o IO-619: Support sub sequences in CharSequenceReader. #91. Thanks to Rob Spoor. +o IO-631: Add a CountingFileVisitor (as the basis for a forthcoming DeletingFileVisitor). Thanks to Gary Gregory. +o IO-632: Add PathUtils for operations on NIO Path. Thanks to Gary Gregory. +o IO-633: Add DeletingFileVisitor. Thanks to Gary Gregory. +o IO-635: Add org.apache.commons.io.IOUtils.close(Closeable). Thanks to Gary Gregory. +o IO-636: Add and reuse org.apache.commons.io.IOUtils.closeQuitely(Closeable, Consumer<IOException>). + Add and reuse org.apache.commons.io.IOUtils.close(Closeable, IOConsumer<IOException>). Thanks to Gary Gregory. +o IO-645: Add org.apache.commons.io.file.PathUtils.fileContentEquals(Path, Path, OpenOption...). Thanks to Gary Gregory. +o IO-458: Add a SequenceReader similar to java.io.SequenceInputStream. Thanks to Gary Gregory, Joshua Gitlin. +o IO-648: Implement directory content equality. 100#. Thanks to Gary Gregory. +o IO-648: Refactor ByteArrayOutputStream into synchronized and unsynchronized versions #108. Thanks to Adam Retter, Alex Herbert, Gary Gregory. +o IO-662: Refactor ByteArrayOutputStream into synchronized and unsynchronized versions #108. Thanks to Adam Retter, Gary Gregory. + +Fixed Bugs: +o IO-589: Some tests fail if the base path contains a space. +o IO-582: Make methods in ObservableInputStream.Obsever public. Thanks to Bruno Palos. +o IO-535: Thread bug in FileAlterationMonitor#stop(int). Thanks to Svetlin Zarev, Anthony Raymond. +o IO-557: Perform locale independent upper case conversions. Thanks to luccioman. +o IO-570: Missing Javadoc in FilenameUtils causing Travis-CI build to fail. Thanks to Pranet Verma. +o IO-571: Remove redundant isDirectory() check in org.apache.commons.io.FileUtils.listFilesAndDirs(File, IOFileFilter, IOFileFilter). Thanks to pranet. +o IO-559: FilenameUtils.normalize now verifies hostname syntax in UNC path. +o IO-554: FileUtils.copyToFile(InputStream source, File destination) should not close input stream. Thanks to Michele Mariotti. +o IO-604: FileUtils.doCopyFile(File, File, boolean) can throw ClosedByInterruptException. Thanks to Gary Gregory. +o IO-625: Corrected misleading exception message for FileUtils.copyDirectoryToDirectory. Thanks to Mikko Maunu. +o IO-626: A mistake in the FilenameUtils.concat()'s Javadoc about an absolute path. Thanks to Yuji Konishi. +o IO-640: NPE in org.apache.commons.io.IOUtils.contentEquals(InputStream, InputStream) when only one input is null. Thanks to Gary Gregory. +o IO-641: NPE in org.apache.commons.io.IOUtils.contentEquals(Reader, Reader) when only one input is null. Thanks to Gary Gregory. +o IO-643: NPE in org.apache.commons.io.IOUtils.contentEqualsIgnoreEOL(Reader, Reader) when only one input is null. Thanks to Gary Gregory. +o IO-644: NPE in org.apache.commons.io.FileUtils.contentEqualsIgnoreEOL(File, File) when only one input is null. Thanks to Gary Gregory. +o IO-664: org.apache.commons.io.FileUtils.copyURLToFile(*) open but do not close streams. Thanks to Gary Gregory. + +Changes: +o IO-572: Refactor duplicate code in org.apache.commons.io.FileUtils. Thanks to Pranet Verma. +o IO-580: Update org.apache.commons.io.FilenameUtils.isExtension(String, String[]) to use var args. +o IO-701: Make array declaration in ThresholdingOutputStream consistent with other array declarations in the library #77. Thanks to Raymond Tan. +o IO-607: Update from Java 7 to Java 8. Thanks to Gary Gregory. +o IO-610: Remove throws IOException in method isSymlink() #80. Thanks to Sebastian. +o IO-628: Migration to JUnit Jupiter #97. Thanks to Allon Mureinik. +o IO-630: Deprecate org.apache.commons.io.output.NullOutputStream.NullOutputStream() in favor of org.apache.commons.io.output.NullOutputStream.NULL_OUTPUT_STREAM. Thanks to Gary Gregory. +o IO-629: FileUtils#forceDelete should use Files#delete rather than File#delete so exception messages includes reason for failure. Thanks to Ian Springer, Ian Springer, Gary Gregory. +o IO-634: Make getCause synchronized and use a Deque instead of a Stack #64. Thanks to V�clav Haisman, Bruno P. Kinoshita, Gary Gregory. +o Update tests from Apache Commons Lang 3.9 to 3.10. Thanks to Gary Gregory. +o Update tests org.junit-pioneer:junit-pioneer 0.3.0 -> 0.6.0. Thanks to Gary Gregory. +o Update tests org.junit.jupiter:junit-jupiter 5.5.2 -> 5.6.2. Thanks to Gary Gregory. +o Update tests org.mockito:mockito-core 3.0.0 -> 3.3.3. Thanks to Gary Gregory. +o IO-666: Normalize internal buffers to 8192 bytes. Thanks to Gary Gregory. +o IO-665: Ensure that passing a null InputStream results in NPE with tests #112. Thanks to Otto Fowler, Gary Gregory. +o commons.jacoco.version 0.8.4 -> 0.8.5. Thanks to Gary Gregory. +o com.github.siom79.japicmp:japicmp-maven-plugin 0.14.1 -> 0.14.3. Thanks to Gary Gregory. +o IO-667: Add functional interfaces IOFunction and IOSupplier #110. Thanks to Adam Retter, Gary Gregory. +o Support sub sequences in CharSequenceReader #91. Thanks to Rob Spoor, Gary Gregory. +o Remove deprecated sudo setting. #113. Thanks to dengliming. + +Compatibility with 2.6: +Binary compatible: Yes. +Source compatible: Yes. +Semantic compatible: Yes. + +Commons IO 2.7 requires Java 8. +Commons IO 2.6 requires Java 7. +Commons IO 2.5 requires Java 6. +Commons IO 2.4 requires Java 6. +Commons IO 2.3 requires Java 6. +Commons IO 2.2 requires Java 5. +Commons IO 1.4 requires Java 1.3. + +============================================================================== +Apache Commons IO Version 2.6 +============================================================================== INTRODUCTION: @@ -122,12 +224,12 @@ Source compatible: No, see the rare case in Semantic compatible: No, see the rare case in https://issues.apache.org/jira/browse/IO-318. -Commons IO 2.6 requires JDK 1.7 or later. -Commons IO 2.5 requires JDK 1.6 or later. -Commons IO 2.4 requires JDK 1.6 or later. -Commons IO 2.3 requires JDK 1.6 or later. -Commons IO 2.2 requires JDK 1.5 or later. -Commons IO 1.4 requires JDK 1.3 or later. +Commons IO 2.6 requires Java 7 or later. +Commons IO 2.5 requires Java 6 or later. +Commons IO 2.4 requires Java 6 or later. +Commons IO 2.3 requires Java 6 or later. +Commons IO 2.2 requires Java 5 or later. +Commons IO 1.4 requires Java 1.3 or later. ============================================================================== Apache Commons IO Version 2.5 @@ -234,11 +336,11 @@ Binary compatible: Yes. Source compatible: No, see the rare case in https://issues.apache.org/jira/browse/IO-318. Semantic compatible: No, see the rare case in https://issues.apache.org/jira/browse/IO-318. -Commons IO 2.5 requires JDK 1.6 or later. -Commons IO 2.4 requires JDK 1.6 or later. -Commons IO 2.3 requires JDK 1.6 or later. -Commons IO 2.2 requires JDK 1.5 or later. -Commons IO 1.4 requires JDK 1.3 or later. +Commons IO 2.5 requires Java 6 or later. +Commons IO 2.4 requires Java 6 or later. +Commons IO 2.3 requires Java 6 or later. +Commons IO 2.2 requires Java 5 or later. +Commons IO 1.4 requires Java 1.3 or later. ============================================================================== Apache Commons IO Version 2.4 @@ -287,10 +389,10 @@ Binary compatible: Yes. Source compatible: No, see the rare case in https://issues.apache.org/jira/browse/IO-318. Semantic compatible: No, see the rare case in https://issues.apache.org/jira/browse/IO-318. -Commons IO 2.4 requires JDK 1.6 or later. -Commons IO 2.3 requires JDK 1.6 or later. -Commons IO 2.2 requires JDK 1.5 or later. -Commons IO 1.4 requires JDK 1.3 or later. +Commons IO 2.4 requires Java 6 or later. +Commons IO 2.3 requires Java 6 or later. +Commons IO 2.2 requires Java 5 or later. +Commons IO 1.4 requires Java 1.3 or later. ============================================================================== Apache Commons IO Version 2.3 @@ -308,9 +410,9 @@ Binary compatible: Yes. Source compatible: No, see the rare case in https://issues.apache.org/jira/browse/IO-318. Semantic compatible: No, see the rare case in https://issues.apache.org/jira/browse/IO-318. -Commons IO 2.3 requires JDK 1.6 or later. -Commons IO 2.2 requires JDK 1.5 or later. -Commons IO 1.4 requires JDK 1.3 or later. +Commons IO 2.3 requires Java 6 or later. +Commons IO 2.2 requires Java 5 or later. +Commons IO 1.4 requires Java 1.3 or later. ============================================================================== Apache Commons IO Version 2.2 @@ -355,8 +457,8 @@ Binary compatible: Yes Source compatible: Yes Semantic compatible: Yes. Check the bug fixes section for semantic bug fixes -Commons IO 2.2 requires a minimum of JDK 1.5. -Commons IO 1.4 requires a minimum of JDK 1.3. +Commons IO 2.2 requires a minimum of Java 5. +Commons IO 1.4 requires a minimum of Java 1.3. ============================================================================== Apache Commons IO Version 2.1 @@ -397,8 +499,8 @@ 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) +Commons IO 2.0.1 requires a minimum of Java 5 + (Commons IO 1.4 had a minimum of Java 1.3) Enhancements from 2.0 --------------------- @@ -424,8 +526,8 @@ 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) +Commons IO 2.0 requires a minimum of Java 5 + (Commons IO 1.4 had a minimum of Java 1.3) Deprecations from 1.4 --------------------- @@ -442,7 +544,7 @@ Deprecations from 1.4 Enhancements from 1.4 --------------------- - * [IO-140] Move minimum Java requirement from JDK 1.3 to JDK 1.5 + * [IO-140] Move minimum Java requirement from Java 1.3 to Java 5 - use Generics - add new CharSequence write() flavour methods to IOUtils and FileUtils - replace StringBuffer with StringBuilder, where appropriate @@ -539,10 +641,10 @@ 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 +Commons IO 1.4 introduces four new implementations which depend on Java 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). +It has been built with the JDK source and target options set to Java 1.3 and, except for +those implementations, can be used with Java 1.3 (see IO IO-127). Deprecations from 1.3.2 ----------------------- @@ -856,7 +958,7 @@ Enhancements from 1.2 - TrueFileFilter/FalseFileFilter/DirectoryFileFilter - New singleton instance constants (TRUE/FALSE/DIRECTORY) - - The new constants are more JDK 1.5 friendly with regards to static imports + - The new constants are more Java 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 diff --git a/pom.xml b/pom.xml index c4203c2..502ad58 100644 --- a/pom.xml +++ b/pom.xml @@ -296,6 +296,10 @@ file comparators, endian transformation classes, and much more. <commons.japicmp.version>0.14.3</commons.japicmp.version> <japicmp.skip>false</japicmp.skip> <jacoco.skip>${env.JACOCO_SKIP}</jacoco.skip> + <commons.bc.version>2.6</commons.bc.version> + <commons.release.isDistModule>true</commons.release.isDistModule> + <commons.releaseManagerName>Gary Gregory</commons.releaseManagerName> + <commons.releaseManagerKey>86fdc7e2a11262cb</commons.releaseManagerKey> </properties> <build> diff --git a/src/changes/changes.xml b/src/changes/changes.xml index b3d25a2..bf63628 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -46,7 +46,7 @@ The <action> type attribute can be add,update,fix,remove. <body> <!-- The release date is the date RC is cut --> - <release version="2.7" date="2020-MM-DD" description="Java 8 required."> + <release version="2.7" date="2020-05-24" description="Java 8 required."> <action issue="IO-589" dev="sebb" type="fix"> Some tests fail if the base path contains a space. </action> diff --git a/src/changes/release-notes.vm b/src/changes/release-notes.vm index fb3c29f..7674ab6 100644 --- a/src/changes/release-notes.vm +++ b/src/changes/release-notes.vm @@ -143,6 +143,245 @@ o#if($!issue != "") $issue: #else$indent#end ${action} #if($!dueto != "")Thanks ## End of main loop #end ## +Compatibility with 2.6: +Binary compatible: Yes. +Source compatible: Yes. +Semantic compatible: Yes. + +Commons IO 2.7 requires Java 8. +Commons IO 2.6 requires Java 7. +Commons IO 2.5 requires Java 6. +Commons IO 2.4 requires Java 6. +Commons IO 2.3 requires Java 6. +Commons IO 2.2 requires Java 5. +Commons IO 1.4 requires Java 1.3. + +============================================================================== +Apache Commons IO Version 2.6 +============================================================================== + +INTRODUCTION: + +Apache Commons IO is a package of Java utility classes like java.io. +Classes in this package are considered to be so standard and of such high +reuse as to justify existence in java.io. + +The Apache Commons IO library contains utility classes, stream implementations, +file filters, file comparators, endian transformation classes, and much more. + +Apache Commons IO 2.6 requires at least Java 7 to build and run. + + +DEPRECATIONS +============ + +All closeQuietly overloads in org.apache.commons.io.IOUtils have been +deprecated. Use the try-with-resources statement or handle suppressed +exceptions manually. + +The class org.apache.commons.io.FileSystemUtils has been deprecated. +Use equivalent methods in java.nio.file.FileStore instead, e.g. +Files.getFileStore(Paths.get("/home")).getUsableSpace() or iterate over +FileSystems.getDefault().getFileStores(). + + +COMPATIBILITY WITH JAVA 9 +================== + +The MANIFEST.MF now contains an additional entry: + + Automatic-Module-Name: org.apache.commons.io + +This should make it possible to use Commons IO 2.6 as a module in the Java 9 +module system. For more information see the corresponding issue: + + https://issues.apache.org/jira/browse/IO-551 + +Building Commons IO 2.6 should work out of the box with the latest Java 9 +release. Please report any Java 9 related issues at: + + https://issues.apache.org/jira/browse/IO + + +NEW FEATURES +============ + +o IO-551: Add Automatic-Module-Name MANIFEST entry for Java 9 compatibility. +o IO-367: Add convenience methods for copyToDirectory. Thanks to James Sawle. +o IO-493: Add infinite circular input stream. Thanks to Piotr Turski. +o IO-507: Add a ByteOrderUtils class. +o IO-518: Add ObservableInputStream. +o IO-519: Add MessageDigestCalculatingInputStream. +o IO-513: Add convenience methods for reading class path resources. + Thanks to Behrang Saeedzadeh. + +FIXED BUGS +========== + +o IO-546: ClosedOutputStream#flush should throw. Thanks to Tomas Celaya. +o IO-550: Documentation issue, fix 404 Javadoc issues in the description page. + Thanks to Jimi Adrian. +o IO-442: Javadoc contradictory for FileFilterUtils.ageFileFilter(cutoff) and + the filter it constructs: AgeFileFilter(cutoff). + Thanks to Simon Robinson. +o IO-534: FileUtilTestCase.testForceDeleteDir() should not delete testDirectory + parent. +o IO-528: Fix Tailer.run race condition runaway logging. Thanks to Dave Moten. +o IO-483: getPrefixLength return -1 if unix file contains colon. + Thanks to Marko Vasic. +o IO-520: FileUtilsTestCase#testContentEqualsIgnoreEOL fails on Windows. +o IO-516: .gitattributes not correctly applied. Thanks to Jason Pyeron. +o IO-515: Allow Specifying Initial Buffer Size of DeferredFileOutputStream. + Thanks to Brett Lounsbury, Gary Gregory. +o IO-512: ThresholdingOutputStream.thresholdReached() results in + FileNotFoundException. Thanks to Ralf Hauser. +o IO-511: After a few unit tests, a few newly created directories not cleaned + completely. Thanks to Ahmet Celik. +o IO-502: Exceptions are suppressed incorrectly when copying files. + Thanks to Christian Schulte. +o IO-503: Update platform requirement to Java 7. +o IO-537: BOMInputStream shouldn't sort array of BOMs in-place. + Thanks to Borys Zibrov. + +CHANGES +======= + +o IO-553: Make code style of hasBOM() consistent with getBOMCharsetName(). + Thanks to Michael Ernst. +o IO-542: FileUtils#readFileToByteArray: optimize reading of files with known + size. Thanks to Ilmars Poikans. +o IO-547: Throw a IllegalArgumentException instead of NullPointerException in + FileSystemUtils.freeSpaceWindows(). Thanks to Nikhil Shinde, + Michael Ernst, Gary Greory. +o IO-506: Deprecate methods FileSystemUtils.freeSpaceKb(). + Thanks to Christian Schulte. +o IO-505: Make LineIterator implement Closeable to support try-with-resources + statements. Thanks to Christian Schulte. +o IO-504: Deprecated of all IOUtils.closeQuietly() methods and use + try-with-resources internally. Thanks to Christian Schulte. + +REMOVED +======= + +o IO-514: Remove org.apache.commons.io.Java7Support. + +COMPATIBILITY WITH OLDER VERSIONS +================================= + +Compatibility with 2.5: +Binary compatible: Yes. +Source compatible: Yes. +Semantic compatible: Yes. + +Compatibility with 2.6 and 1.4: +Binary compatible: Yes. +Source compatible: No, see the rare case in + https://issues.apache.org/jira/browse/IO-318. +Semantic compatible: No, see the rare case in + https://issues.apache.org/jira/browse/IO-318. + +Commons IO 2.6 requires Java 7 or later. +Commons IO 2.5 requires Java 6 or later. +Commons IO 2.4 requires Java 6 or later. +Commons IO 2.3 requires Java 6 or later. +Commons IO 2.2 requires Java 5 or later. +Commons IO 1.4 requires Java 1.3 or later. + +============================================================================== +Apache Commons IO Version 2.5 +============================================================================== +New features and bug fixes. + +Changes in this version include: + +New features: +o IO-487: Add ValidatingObjectInputStream for controlled deserialization +o IO-471: Support for additional encodings in ReversedLinesFileReader Thanks to Leandro Reis. +o IO-425: Setter method for threshold on ThresholdingOutputStream Thanks to Craig Swank. +o IO-406: Introduce new class AppendableOutputStream Thanks to Niall Pemberton. +o IO-459: Add WindowsLineEndingInputStream and UnixLineEndingInputStream. Thanks to Kristian Rosenvold. +o IO-457: Add a BoundedReader, a wrapper that can be used to constrain access + to an underlying stream when used with mark/reset - + to avoid overflowing the mark limit of the underlying buffer. Thanks to Kristian Rosenvold. +o IO-426: Add API IOUtils.closeQuietly(Closeable...) +o IO-410: Readfully() That Returns A Byte Array Thanks to Beluga Behr. +o IO-395: Overload IOUtils buffer methods to accept buffer size Thanks to Beluga Behr. +o IO-382: Chunked IO for large arrays. + Added writeChunked(byte[], OutputStream) and writeChunked(char[] Writer) + Added ChunkedOutputStream, ChunkedWriter +o IO-233: Add Methods for Buffering Streams/Writers To IOUtils + Added overloaded buffer() methods - see also IO-330 +o IO-330: IOUtils#toBufferedOutputStream/toBufferedWriter to conditionally wrap the output + Added overloaded buffer() methods - see also IO-233 +o IO-381: Add FileUtils.copyInputStreamToFile API with option to leave the source open. + See copyInputStreamToFile(final InputStream source, final File destination, boolean closeSource) +o IO-379: CharSequenceInputStream - add tests for available() + Fix code so it really does reflect a minimum available. +o IO-346: Add ByteArrayOutputStream.toInputStream() +o IO-341: A constant for holding the BOM character (U+FEFF) +o IO-361: Add API FileUtils.forceMkdirsParent(). +o IO-360: Add API Charsets.requiredCharsets(). +o IO-359: Add IOUtils.skip and skipFully(ReadableByteChannel, long). Thanks to yukoba. +o IO-358: Add IOUtils.read and readFully(ReadableByteChannel, ByteBuffer buffer). Thanks to yukoba. +o IO-353: Add API IOUtils.copy(InputStream, OutputStream, int) Thanks to ggregory. +o IO-349: Add API with array offset and length argument to FileUtils.writeByteArrayToFile. Thanks to scop. +o IO-348: Missing information in IllegalArgumentException thrown by org.apache.commons.io.FileUtils#validateListFilesParameters. Thanks to plcstpierre. +o IO-345: Supply a hook method allowing Tailer actively determining stop condition. Thanks to mkresse. +o IO-437: Make IOUtils.EOF public and reuse it in various classes. + +Fixed Bugs: +o IO-446: adds an endOfFileReached method to the TailerListener Thanks to Jeffrey Barrus. +o IO-484: FilenameUtils should handle embedded null bytes Thanks to Philippe Arteau. +o IO-481: Changed/Corrected algorithm for waitFor +o IO-428: BOMInputStream.skip returns wrong count if stream contains no BOM Thanks to Stefan Gmeiner. +o IO-488: FileUtils.waitFor(...) swallows thread interrupted status Thanks to Bj�rn Buchner. +o IO-452: Support for symlinks with missing target. Added support for JDK7 symlink features when present Thanks to David Standish. +o IO-453: Regression in FileUtils.readFileToString from 2.0.1 Thanks to Steven Christou. +o IO-451: ant test fails - resources missing from test classpath Thanks to David Standish. +o IO-435: Document that FileUtils.deleteDirectory, directoryContains and cleanDirectory + may throw an IllegalArgumentException in case the passed directory does not + exist or is not a directory. Thanks to Dominik Stadler. +o IO-424: Javadoc fixes, mostly to appease 1.8.0 Thanks to Ville Skytt�. +o IO-389: FileUtils.sizeOfDirectory can throw IllegalArgumentException Thanks to Austin Doupnik. +o IO-390: FileUtils.sizeOfDirectoryAsBigInteger can overflow. + Ensure that recursive calls all use BigInteger +o IO-385: FileUtils.doCopyFile can potentially loop for ever + Exit loop if no data to copy +o IO-383: FileUtils.doCopyFile caches the file size; needs to be documented + Added Javadoc; show file lengths in exception message +o IO-380: FileUtils.copyInputStreamToFile should document it closes the input source Thanks to claudio_ch. +o IO-279: Tailer erroneously considers file as new. + Fix to use file.lastModified() rather than System.currentTimeMillis() +o IO-356: CharSequenceInputStream#reset() behaves incorrectly in case when buffer size is not dividable by data size. + Fix code so skip relates to the encoded bytes; reset now re-encodes the data up to the point of the mark +o IO-368: ClassLoaderObjectInputStream does not handle primitive typed members +o IO-314: Deprecate all methods that use the default encoding +o IO-338: When a file is rotated, finish reading previous file prior to starting new one +o IO-354: Commons IO Tailer does not respect UTF-8 Charset. +o IO-323: What should happen in FileUtils.sizeOf[Directory] when an overflow takes place? + Added Javadoc. +o IO-372: FileUtils.moveDirectory can produce misleading error message on failiure +o IO-362: IOUtils.contentEquals* methods returns false if input1 == input2, should return true. Thanks to mmadson, ggregory. +o IO-357: [Tailer] InterruptedException while the thread is sleeping is silently ignored Thanks to mortenh. +o IO-352: Spelling fixes. Thanks to scop. +o IO-436: Improper Javadoc comment for FilenameUtils.indexOfExtension. Thanks to christoph.schneegans. + +Changes: +o IO-433: Converted all testcases to JUnit 4 +o IO-466: Added testcase to show this was fixed with IO-423 +o IO-479: Correct exception message in FileUtils.getFile(File, String...) Thanks to Zhouce Chen. +o IO-465: Update to JUnit 4.12 Thanks to based2. +o IO-462: IOExceptionWithCause no longer needed +o IO-422: Deprecate Charsets Charset constants in favor of Java 7's java.nio.charset.StandardCharsets +o IO-239: Convert IOCase to a Java 1.5+ Enumeration + [N.B. this is binary compatible] +o IO-328: getPrefixLength returns null if filename has leading slashes + Javadoc: add examples to show correct behavior; add unit tests +o IO-299: FileUtils.listFilesAndDirs includes original dir in results even when it doesn't match filter + Javadoc: clarify that original dir is included in the results +o IO-375: FilenameUtils.splitOnTokens(String text) check for '**' could be simplified +o IO-374: WildcardFileFilter ctors should not use null to mean IOCase.SENSITIVE when delegating to other ctors + Compatibility with 2.4: Binary compatible: Yes. Source compatible: Yes. @@ -153,11 +392,11 @@ Binary compatible: Yes. Source compatible: No, see the rare case in https://issues.apache.org/jira/browse/IO-318. Semantic compatible: No, see the rare case in https://issues.apache.org/jira/browse/IO-318. -Commons IO 2.5 requires JDK 1.6 or later. -Commons IO 2.4 requires JDK 1.6 or later. -Commons IO 2.3 requires JDK 1.6 or later. -Commons IO 2.2 requires JDK 1.5 or later. -Commons IO 1.4 requires JDK 1.3 or later. +Commons IO 2.5 requires Java 6 or later. +Commons IO 2.4 requires Java 6 or later. +Commons IO 2.3 requires Java 6 or later. +Commons IO 2.2 requires Java 5 or later. +Commons IO 1.4 requires Java 1.3 or later. ============================================================================== Apache Commons IO Version 2.4 @@ -206,10 +445,10 @@ Binary compatible: Yes. Source compatible: No, see the rare case in https://issues.apache.org/jira/browse/IO-318. Semantic compatible: No, see the rare case in https://issues.apache.org/jira/browse/IO-318. -Commons IO 2.4 requires JDK 1.6 or later. -Commons IO 2.3 requires JDK 1.6 or later. -Commons IO 2.2 requires JDK 1.5 or later. -Commons IO 1.4 requires JDK 1.3 or later. +Commons IO 2.4 requires Java 6 or later. +Commons IO 2.3 requires Java 6 or later. +Commons IO 2.2 requires Java 5 or later. +Commons IO 1.4 requires Java 1.3 or later. ============================================================================== Apache Commons IO Version 2.3 @@ -227,9 +466,9 @@ Binary compatible: Yes. Source compatible: No, see the rare case in https://issues.apache.org/jira/browse/IO-318. Semantic compatible: No, see the rare case in https://issues.apache.org/jira/browse/IO-318. -Commons IO 2.3 requires JDK 1.6 or later. -Commons IO 2.2 requires JDK 1.5 or later. -Commons IO 1.4 requires JDK 1.3 or later. +Commons IO 2.3 requires Java 6 or later. +Commons IO 2.2 requires Java 5 or later. +Commons IO 1.4 requires Java 1.3 or later. ============================================================================== Apache Commons IO Version 2.2 @@ -274,8 +513,8 @@ Binary compatible: Yes Source compatible: Yes Semantic compatible: Yes. Check the bug fixes section for semantic bug fixes -Commons IO 2.2 requires a minimum of JDK 1.5. -Commons IO 1.4 requires a minimum of JDK 1.3. +Commons IO 2.2 requires a minimum of Java 5. +Commons IO 1.4 requires a minimum of Java 1.3. ============================================================================== Apache Commons IO Version 2.1 @@ -316,8 +555,8 @@ 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) +Commons IO 2.0.1 requires a minimum of Java 5 + (Commons IO 1.4 had a minimum of Java 1.3) Enhancements from 2.0 --------------------- @@ -343,8 +582,8 @@ 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) +Commons IO 2.0 requires a minimum of Java 5 + (Commons IO 1.4 had a minimum of Java 1.3) Deprecations from 1.4 --------------------- @@ -361,7 +600,7 @@ Deprecations from 1.4 Enhancements from 1.4 --------------------- - * [IO-140] Move minimum Java requirement from JDK 1.3 to JDK 1.5 + * [IO-140] Move minimum Java requirement from Java 1.3 to Java 5 - use Generics - add new CharSequence write() flavour methods to IOUtils and FileUtils - replace StringBuffer with StringBuilder, where appropriate @@ -458,10 +697,10 @@ 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 +Commons IO 1.4 introduces four new implementations which depend on Java 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). +It has been built with the JDK source and target options set to Java 1.3 and, except for +those implementations, can be used with Java 1.3 (see IO IO-127). Deprecations from 1.3.2 ----------------------- @@ -775,7 +1014,7 @@ Enhancements from 1.2 - TrueFileFilter/FalseFileFilter/DirectoryFileFilter - New singleton instance constants (TRUE/FALSE/DIRECTORY) - - The new constants are more JDK 1.5 friendly with regards to static imports + - The new constants are more Java 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 diff --git a/src/site/xdoc/download_io.xml b/src/site/xdoc/download_io.xml index b8718d8..25d8415 100644 --- a/src/site/xdoc/download_io.xml +++ b/src/site/xdoc/download_io.xml @@ -26,22 +26,24 @@ limitations under the License. | commons-build-plugin/trunk/src/main/resources/commons-xdoc-templates | +======================================================================+ | | - | 1) Re-generate using: mvn commons:download-page | + | 1) Re-generate using: mvn commons-build:download-page | | | | 2) Set the following properties in the component's pom: | - | - commons.componentid (required, alphabetic, lower case) | + | - commons.componentid (required, alphabetic, lower case) | | - commons.release.version (required) | | - commons.release.name (required) | | - commons.binary.suffix (optional) | | (defaults to "-bin", set to "" for pre-maven2 releases) | | - commons.release.desc (optional) | | - commons.release.subdir (optional) | + | - commons.release.hash (optional, lowercase, default sha512) | | | - | - commons.release.2/3.version (conditional) | - | - commons.release.2/3.name (conditional) | - | - commons.release.2/3.binary.suffix (optional) | - | - commons.release.2/3.desc (optional) | - | - commons.release.2/3.subdir (optional) | + | - commons.release.[234].version (conditional) | + | - commons.release.[234].name (conditional) | + | - commons.release.[234].binary.suffix (optional) | + | - commons.release.[234].desc (optional) | + | - commons.release.[234].subdir (optional) | + | - commons.release.[234].hash (optional, lowercase, [sha512])| | | | 3) Example Properties | | (commons.release.name inherited by parent: | @@ -64,7 +66,7 @@ limitations under the License. <subsection name="Using a Mirror"> <p> We recommend you use a mirror to download our release - builds, but you <strong>must</strong> <a href="http://www.apache.org/info/verification.html">verify the integrity</a> of + builds, but you <strong>must</strong> <a href="https://www.apache.org/info/verification.html">verify the integrity</a> of the downloaded files using signatures downloaded from our main distribution directories. Recent releases (48 hours) may not yet be available from all the mirrors. @@ -102,7 +104,7 @@ limitations under the License. It is essential that you <a href="https://www.apache.org/info/verification.html">verify the integrity</a> of downloaded files, preferably using the <code>PGP</code> signature (<code>*.asc</code> files); - failing that using the <code>MD5</code> hash (<code>*.md5</code> checksum files). + failing that using the <code>SHA512</code> hash (<code>*.sha512</code> checksum files). </p> <p> The <a href="https://www.apache.org/dist/commons/KEYS">KEYS</a> @@ -111,32 +113,32 @@ limitations under the License. </p> </subsection> </section> - <section name="Apache Commons IO 2.6 (requires JDK 1.7+)"> + <section name="Apache Commons IO 2.7 (requires Java 8)"> <subsection name="Binaries"> <table> <tr> - <td><a href="[preferred]/commons/io/binaries/commons-io-2.6-bin.tar.gz">commons-io-2.6-bin.tar.gz</a></td> - <td><a href="https://www.apache.org/dist/commons/io/binaries/commons-io-2.6-bin.tar.gz.md5">md5</a></td> - <td><a href="https://www.apache.org/dist/commons/io/binaries/commons-io-2.6-bin.tar.gz.asc">pgp</a></td> + <td><a href="[preferred]/commons/io/binaries/commons-io-2.7-bin.tar.gz">commons-io-2.7-bin.tar.gz</a></td> + <td><a href="https://www.apache.org/dist/commons/io/binaries/commons-io-2.7-bin.tar.gz.sha512">sha512</a></td> + <td><a href="https://www.apache.org/dist/commons/io/binaries/commons-io-2.7-bin.tar.gz.asc">pgp</a></td> </tr> <tr> - <td><a href="[preferred]/commons/io/binaries/commons-io-2.6-bin.zip">commons-io-2.6-bin.zip</a></td> - <td><a href="https://www.apache.org/dist/commons/io/binaries/commons-io-2.6-bin.zip.md5">md5</a></td> - <td><a href="https://www.apache.org/dist/commons/io/binaries/commons-io-2.6-bin.zip.asc">pgp</a></td> + <td><a href="[preferred]/commons/io/binaries/commons-io-2.7-bin.zip">commons-io-2.7-bin.zip</a></td> + <td><a href="https://www.apache.org/dist/commons/io/binaries/commons-io-2.7-bin.zip.sha512">sha512</a></td> + <td><a href="https://www.apache.org/dist/commons/io/binaries/commons-io-2.7-bin.zip.asc">pgp</a></td> </tr> </table> </subsection> <subsection name="Source"> <table> <tr> - <td><a href="[preferred]/commons/io/source/commons-io-2.6-src.tar.gz">commons-io-2.6-src.tar.gz</a></td> - <td><a href="https://www.apache.org/dist/commons/io/source/commons-io-2.6-src.tar.gz.md5">md5</a></td> - <td><a href="https://www.apache.org/dist/commons/io/source/commons-io-2.6-src.tar.gz.asc">pgp</a></td> + <td><a href="[preferred]/commons/io/source/commons-io-2.7-src.tar.gz">commons-io-2.7-src.tar.gz</a></td> + <td><a href="https://www.apache.org/dist/commons/io/source/commons-io-2.7-src.tar.gz.sha512">sha512</a></td> + <td><a href="https://www.apache.org/dist/commons/io/source/commons-io-2.7-src.tar.gz.asc">pgp</a></td> </tr> <tr> - <td><a href="[preferred]/commons/io/source/commons-io-2.6-src.zip">commons-io-2.6-src.zip</a></td> - <td><a href="https://www.apache.org/dist/commons/io/source/commons-io-2.6-src.zip.md5">md5</a></td> - <td><a href="https://www.apache.org/dist/commons/io/source/commons-io-2.6-src.zip.asc">pgp</a></td> + <td><a href="[preferred]/commons/io/source/commons-io-2.7-src.zip">commons-io-2.7-src.zip</a></td> + <td><a href="https://www.apache.org/dist/commons/io/source/commons-io-2.7-src.zip.sha512">sha512</a></td> + <td><a href="https://www.apache.org/dist/commons/io/source/commons-io-2.7-src.zip.asc">pgp</a></td> </tr> </table> </subsection> diff --git a/src/site/xdoc/issue-tracking.xml b/src/site/xdoc/issue-tracking.xml index 6b0c6d6..491b787 100644 --- a/src/site/xdoc/issue-tracking.xml +++ b/src/site/xdoc/issue-tracking.xml @@ -26,7 +26,7 @@ limitations under the License. | commons-build-plugin/trunk/src/main/resources/commons-xdoc-templates | +======================================================================+ | | - | 1) Re-generate using: mvn commons:jira-page | + | 1) Re-generate using: mvn commons-build:jira-page | | | | 2) Set the following properties in the component's pom: | | - commons.jira.id (required, alphabetic, upper case) | @@ -86,7 +86,7 @@ limitations under the License. <p> For more information on subversion and creating patches see the - <a href="http://www.apache.org/dev/contributors.html">Apache Contributors Guide</a>. + <a href="https://www.apache.org/dev/contributors.html">Apache Contributors Guide</a>. </p> <p> diff --git a/src/site/xdoc/mail-lists.xml b/src/site/xdoc/mail-lists.xml index dac0d95..0becfcf 100644 --- a/src/site/xdoc/mail-lists.xml +++ b/src/site/xdoc/mail-lists.xml @@ -26,7 +26,7 @@ limitations under the License. | commons-build-plugin/trunk/src/main/resources/commons-xdoc-templates | +======================================================================+ | | - | 1) Re-generate using: mvn commons:mail-page | + | 1) Re-generate using: mvn commons-build:mail-page | | | | 2) Set the following properties in the component's pom: | | - commons.componentid (required, alphabetic, lower case) | @@ -41,14 +41,14 @@ limitations under the License. --> <document> <properties> - <title>Commons IO Mailing Lists</title> - <author email="d...@commons.apache.org">Commons Documentation Team</author> + <title>Apache Commons IO Mailing Lists</title> + <author email="d...@commons.apache.org">Apache Commons Documentation Team</author> </properties> <body> <section name="Overview"> <p> - <a href="index.html">Commons IO</a> shares mailing lists with all the other + <a href="index.html">Apache Commons IO</a> shares mailing lists with all the other <a href="https://commons.apache.org/components.html">Commons Components</a>. To make it easier for people to only read messages related to components they are interested in, the convention in Commons is to prefix the subject line of messages with the component's name, @@ -58,24 +58,27 @@ limitations under the License. </ul> </p> <p> - Questions related to the usage of Commons IO should be posted to the + Questions related to the usage of Apache Commons IO should be posted to the <a href="https://mail-archives.apache.org/mod_mbox/commons-user/">User List</a>. <br /> The <a href="https://mail-archives.apache.org/mod_mbox/commons-dev/">Developer List</a> - is for questions and discussion related to the development of Commons IO. + is for questions and discussion related to the development of Apache Commons IO. <br /> Please do not cross-post; developers are also subscribed to the user list. + <br /> + You must be subscribed to post to the mailing lists. Follow the Subscribe links below + to subscribe. </p> <p> <strong>Note:</strong> please don't send patches or attachments to any of the mailing lists. - Patches are best handled via the <a href="issue-tracking.html">Issue Tracking</a> system. - Otherwise, please upload the file to a public server and include the URL in the mail. + Patches are best handled via the <a href="issue-tracking.html">Issue Tracking</a> system. + Otherwise, please upload the file to a public server and include the URL in the mail. </p> </section> - <section name="Commons IO Mailing Lists"> + <section name="Apache Commons IO Mailing Lists"> <p> - <strong>Please prefix the subject line of any messages for <a href="index.html">Commons IO</a> + <strong>Please prefix the subject line of any messages for <a href="index.html">Apache Commons IO</a> with <i>[io]</i></strong> - <i>thanks!</i> <br /> <br /> @@ -96,16 +99,16 @@ limitations under the License. <td> <strong>Commons User List</strong> <br /><br /> - Questions on using Commons IO. + Questions on using Apache Commons IO. <br /><br /> </td> <td><a href="mailto:user-subscr...@commons.apache.org">Subscribe</a></td> <td><a href="mailto:user-unsubscr...@commons.apache.org">Unsubscribe</a></td> <td><a href="mailto:u...@commons.apache.org?subject=[io]">Post</a></td> <td><a href="https://mail-archives.apache.org/mod_mbox/commons-user/">mail-archives.apache.org</a></td> - <td><a href="http://markmail.org/list/org.apache.commons.users/">markmail.org</a><br /> - <a href="http://www.mail-archive.com/user@commons.apache.org/">www.mail-archive.com</a><br /> - <a href="http://news.gmane.org/gmane.comp.jakarta.commons.devel">news.gmane.org</a> + <td><a href="https://markmail.org/list/org.apache.commons.users/">markmail.org</a><br /> + <a href="https://www.mail-archive.com/user@commons.apache.org/">www.mail-archive.com</a><br /> + <a href="https://news.gmane.org/gmane.comp.jakarta.commons.devel">news.gmane.org</a> </td> </tr> @@ -114,16 +117,16 @@ limitations under the License. <td> <strong>Commons Developer List</strong> <br /><br /> - Discussion of development of Commons IO. + Discussion of development of Apache Commons IO. <br /><br /> </td> <td><a href="mailto:dev-subscr...@commons.apache.org">Subscribe</a></td> <td><a href="mailto:dev-unsubscr...@commons.apache.org">Unsubscribe</a></td> <td><a href="mailto:d...@commons.apache.org?subject=[io]">Post</a></td> <td><a href="https://mail-archives.apache.org/mod_mbox/commons-dev/">mail-archives.apache.org</a></td> - <td><a href="http://markmail.org/list/org.apache.commons.dev/">markmail.org</a><br /> - <a href="http://www.mail-archive.com/dev@commons.apache.org/">www.mail-archive.com</a><br /> - <a href="http://news.gmane.org/gmane.comp.jakarta.commons.devel">news.gmane.org</a> + <td><a href="https://markmail.org/list/org.apache.commons.dev/">markmail.org</a><br /> + <a href="https://www.mail-archive.com/dev@commons.apache.org/">www.mail-archive.com</a><br /> + <a href="https://news.gmane.org/gmane.comp.jakarta.commons.devel">news.gmane.org</a> </td> </tr> @@ -139,8 +142,8 @@ limitations under the License. <td><a href="mailto:issues-unsubscr...@commons.apache.org">Unsubscribe</a></td> <td><i>read only</i></td> <td><a href="https://mail-archives.apache.org/mod_mbox/commons-issues/">mail-archives.apache.org</a></td> - <td><a href="http://markmail.org/list/org.apache.commons.issues/">markmail.org</a><br /> - <a href="http://www.mail-archive.com/issues@commons.apache.org/">www.mail-archive.com</a> + <td><a href="https://markmail.org/list/org.apache.commons.issues/">markmail.org</a><br /> + <a href="https://www.mail-archive.com/issues@commons.apache.org/">www.mail-archive.com</a> </td> </tr> @@ -149,15 +152,15 @@ limitations under the License. <td> <strong>Commons Commits List</strong> <br /><br /> - Only for e-mails automatically generated by the <a href="scm.html">source control</a> system. + Only for e-mails automatically generated by the <a href="scm.html">source control</a> sytem. <br /><br /> </td> <td><a href="mailto:commits-subscr...@commons.apache.org">Subscribe</a></td> <td><a href="mailto:commits-unsubscr...@commons.apache.org">Unsubscribe</a></td> <td><i>read only</i></td> <td><a href="https://mail-archives.apache.org/mod_mbox/commons-commits/">mail-archives.apache.org</a></td> - <td><a href="http://markmail.org/list/org.apache.commons.commits/">markmail.org</a><br /> - <a href="http://www.mail-archive.com/commits@commons.apache.org/">www.mail-archive.com</a> + <td><a href="https://markmail.org/list/org.apache.commons.commits/">markmail.org</a><br /> + <a href="https://www.mail-archive.com/commits@commons.apache.org/">www.mail-archive.com</a> </td> </tr> @@ -185,14 +188,14 @@ limitations under the License. General announcements of Apache project releases. <br /><br /> </td> - <td><a class="externalLink" href="mailto:announce-subscr...@apache.org">Subscribe</a></td> - <td><a class="externalLink" href="mailto:announce-unsubscr...@apache.org">Unsubscribe</a></td> + <td><a class="externalLink" href="mailto:announce-subscr...@apache.org">Subscribe</a></td> + <td><a class="externalLink" href="mailto:announce-unsubscr...@apache.org">Unsubscribe</a></td> <td><i>read only</i></td> - <td><a class="externalLink" href="https://mail-archives.apache.org/mod_mbox/www-announce/">mail-archives.apache.org</a></td> - <td><a class="externalLink" href="http://markmail.org/list/org.apache.announce/">markmail.org</a><br /> - <a class="externalLink" href="http://old.nabble.com/Apache-News-and-Announce-f109.html">old.nabble.com</a><br /> - <a class="externalLink" href="http://www.mail-archive.com/announce@apache.org/">www.mail-archive.com</a><br /> - <a class="externalLink" href="http://news.gmane.org/gmane.comp.apache.announce">news.gmane.org</a> + <td><a class="externalLink" href="https://mail-archives.apache.org/mod_mbox/www-announce/">mail-archives.apache.org</a></td> + <td><a class="externalLink" href="https://markmail.org/list/org.apache.announce/">markmail.org</a><br /> + <a class="externalLink" href="https://old.nabble.com/Apache-News-and-Announce-f109.html">old.nabble.com</a><br /> + <a class="externalLink" href="https://www.mail-archive.com/announce@apache.org/">www.mail-archive.com</a><br /> + <a class="externalLink" href="https://news.gmane.org/gmane.comp.apache.announce">news.gmane.org</a> </td> </tr> </table>