Skip to content

Commit e81f5ac

Browse files
committed
Prepare for release candidate
1 parent 836b21d commit e81f5ac

File tree

6 files changed

+177
-37
lines changed

6 files changed

+177
-37
lines changed

CONTRIBUTING.md

+2-3
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,13 @@ Getting Started
4949
---------------
5050

5151
+ Make sure you have a [JIRA account](https://issues.apache.org/jira/).
52-
+ Make sure you have a [GitHub account](https://github.com/signup/free).
52+
+ Make sure you have a [GitHub account](https://github.com/signup/free). This is not essential, but makes providing patches much easier.
5353
+ 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.
5454
+ Submit a [Jira Ticket][jira] for your issue, assuming one does not already exist.
5555
+ Clearly describe the issue including steps to reproduce when it is a bug.
5656
+ Make sure you fill in the earliest version that you know has the issue.
5757
+ Find the corresponding [repository on GitHub](https://github.com/apache/?query=commons-),
58-
[fork](https://help.github.com/articles/fork-a-repo/) and check out your forked repository.
58+
[fork](https://help.github.com/articles/fork-a-repo/) and check out your forked repository. If you don't have a GitHub account, you can still clone the Commons repository.
5959

6060
Making Changes
6161
--------------
@@ -109,7 +109,6 @@ Additional Resources
109109
+ [General GitHub documentation](https://help.github.com/)
110110
+ [GitHub pull request documentation](https://help.github.com/articles/creating-a-pull-request/)
111111
+ [Apache Commons Twitter Account](https://twitter.com/ApacheCommons)
112-
+ `#apache-commons` IRC channel on `irc.freenode.net`
113112

114113
[cla]:https://www.apache.org/licenses/#clas
115114
[jira]:https://issues.apache.org/jira/browse/IO

README.md

+2-3
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ Apache Commons IO
4646
[![Java CI](https://github.com/apache/commons-io/actions/workflows/maven.yml/badge.svg)](https://github.com/apache/commons-io/actions/workflows/maven.yml)
4747
[![Coverage Status](https://codecov.io/gh/apache/commons-io/branch/master/graph/badge.svg)](https://app.codecov.io/gh/apache/commons-io)
4848
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/commons-io/commons-io/badge.svg?gav=true)](https://maven-badges.herokuapp.com/maven-central/commons-io/commons-io/?gav=true)
49-
[![Javadocs](https://javadoc.io/badge/commons-io/commons-io/2.15.1.svg)](https://javadoc.io/doc/commons-io/commons-io/2.15.1)
49+
[![Javadocs](https://javadoc.io/badge/commons-io/commons-io/2.16.0.svg)](https://javadoc.io/doc/commons-io/commons-io/2.16.0)
5050
[![CodeQL](https://github.com/apache/commons-io/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/apache/commons-io/actions/workflows/codeql-analysis.yml)
5151
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/apache/commons-io/badge)](https://api.securityscorecards.dev/projects/github.com/apache/commons-io)
5252

@@ -70,7 +70,7 @@ Alternatively, you can pull it from the central Maven repositories:
7070
<dependency>
7171
<groupId>commons-io</groupId>
7272
<artifactId>commons-io</artifactId>
73-
<version>2.15.1</version>
73+
<version>2.16.0</version>
7474
</dependency>
7575
```
7676

@@ -112,7 +112,6 @@ Additional Resources
112112
+ [Apache Issue Tracker (JIRA)](https://issues.apache.org/jira/browse/IO)
113113
+ [Apache Commons Slack Channel](https://the-asf.slack.com/archives/C60NVB8AD)
114114
+ [Apache Commons Twitter Account](https://twitter.com/ApacheCommons)
115-
+ `#apache-commons` IRC channel on `irc.freenode.org`
116115

117116
Apache Commons Components
118117
-------------------------

RELEASE-NOTES.txt

+140
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,144 @@
11

2+
Apache Commons IO 2.16.0 Release Notes
3+
4+
Introduction
5+
------------
6+
7+
Commons IO is a package of Java utility classes like java.io.
8+
Classes in this package are considered to be so standard and of such high
9+
reuse as to justify existence in java.io.
10+
11+
The Apache Commons IO library contains utility classes, stream implementations, file filters,
12+
file comparators, endian transformation classes, and much more.
13+
14+
Java 8 is required.
15+
16+
New features
17+
------------
18+
19+
o Add and use PathUtils.getFileName(Path, Function<Path, R>). Thanks to Gary Gregory.
20+
o Add and use PathUtils.getFileNameString(). Thanks to Gary Gregory.
21+
o Make public Erase.rethrow(Throwable). Thanks to Gary Gregory.
22+
o IO-826: Add BrokenInputStream.BrokenInputStream(Throwable). Thanks to markslater, Gary Gregory.
23+
o IO-826: Add BrokenReader.BrokenReader(Throwable). Thanks to markslater, Gary Gregory.
24+
o IO-826: Add BrokenOutputStream.BrokenOutputStream(Throwable). Thanks to markslater, Gary Gregory.
25+
o IO-826: Add BrokenWriter.BrokenWriter(Throwable). Thanks to markslater, Gary Gregory.
26+
o Add BoundedInputStream.getRemaining(). Thanks to Gary Gregory.
27+
o Add FileTimes.toNtfsTime(long). Thanks to Gary Gregory.
28+
o Add FileTimes.fromUnixTime(long). Thanks to Gary Gregory.
29+
o Add FileTimes.isUnixTime(FileTime). Thanks to Gary Gregory.
30+
o Add FileTimes.isUnixTime(long). Thanks to Gary Gregory.
31+
o Add FileTimes.toUnixTime(FileTime). Thanks to Gary Gregory.
32+
o Add BrokenInputStream.Builder. Thanks to Gary Gregory.
33+
o Add PathUtils.getExtension(Path). Thanks to Gary Gregory.
34+
o Add PathUtils.getBaseName(Path). Thanks to Gary Gregory.
35+
o Add ThrottledInputStream. Thanks to Gary Gregory.
36+
o Add IORunnable.noop(). Thanks to Gary Gregory.
37+
o Add ChecksumInputStream and test #548. Thanks to Gary Gregory.
38+
o Add AbstractStreamBuilder.getReader(). Thanks to Gary Gregory.
39+
o Add Maven property project.build.outputTimestamp for build reproducibility. Thanks to Gary Gregory.
40+
o Add ProxyInputStream.unwrap(). Thanks to Gary Gregory.
41+
o Add a running count and builder to BoundedInputStream. Thanks to Gary Gregory.
42+
43+
Fixed Bugs
44+
----------
45+
46+
o Fix and re-enable testSkip_RequiredCharsets #518. Thanks to Elliotte Rusty Harold.
47+
o IO-824: SymbolicLineFileFilter documentation fixes. Thanks to Miguel Munoz, Gary Gregory.
48+
o IO-795: CharSequenceInputStream.reset() only works once #520. Thanks to Miguel Munoz, Gary Gregory.
49+
o IO-795: Finish TODO on CharSequenceInputStream #540. Thanks to Elliotte Rusty Harold.
50+
o IO-825: Add byte array size validation for methods in EndianUtils #521. Thanks to Arthur Chan, Gary Gregory.
51+
o IO-825: Add missing test case CircularByteBufferTest. Thanks to dkdal, Gary Gregory.
52+
o IO-781: Make CharSequenceInputStream.available() more correct in the face of multibyte encodings #525. Thanks to Elliotte Rusty Harold.
53+
o IO-781: Remove unreachable code in AbstractIOFileFilterTest #526. Thanks to Elliotte Rusty Harold.
54+
o IO-808: Rationalize and unify checking for existence of files and directories #529. Thanks to Elliotte Rusty Harold.
55+
o Avoid NullPointerException in IOCase.checkEquals(String, String) on null input. Thanks to Gary Gregory.
56+
o Avoid NullPointerException in CanExecuteFileFilter.accept(File) on null input. Thanks to Gary Gregory.
57+
o Avoid NullPointerException in CanExecuteFileFilter.accept(Path, BasicFileAttributes) on null input. Thanks to Gary Gregory.
58+
o Avoid NullPointerException in CanReadFileFilter.accept(File) on null input. Thanks to Gary Gregory.
59+
o Avoid NullPointerException in CanReadFileFilter.accept(Path, BasicFileAttributes) on null input. Thanks to Gary Gregory.
60+
o Avoid NullPointerException in CanWriteFileFilter.accept(File) on null input. Thanks to Gary Gregory.
61+
o Avoid NullPointerException in CanWriteFileFilter.accept(Path, BasicFileAttributes) on null input. Thanks to Gary Gregory.
62+
o Avoid NullPointerException in DirectoryFileFilter.accept(File) on null input. Thanks to Gary Gregory.
63+
o Avoid NullPointerException in DirectoryFileFilter.accept(Path, BasicFileAttributes) on null input. Thanks to Gary Gregory.
64+
o Avoid NullPointerException in EmptyFileFilter.accept(File) on null input. Thanks to Gary Gregory.
65+
o Avoid NullPointerException in EmptyFileFilter.accept(Path, BasicFileAttributes) on null input. Thanks to Gary Gregory.
66+
o Avoid NullPointerException in FileFileFilter.accept(File) on null input. Thanks to Gary Gregory.
67+
o Avoid NullPointerException in FileFileFilter.accept(Path, BasicFileAttributes) on null input. Thanks to Gary Gregory.
68+
o Avoid NullPointerException in HiddenFileFilter.accept(File) on null input. Thanks to Gary Gregory.
69+
o Avoid NullPointerException in HiddenFileFilter.accept(Path, BasicFileAttributes) on null input. Thanks to Gary Gregory.
70+
o Avoid NullPointerException in IOCase.checkIndexOf(String, int, String) on null input. Thanks to Gary Gregory.
71+
o Avoid NullPointerException in IOCase.checkRegionMatches(String, int, String) on null input. Thanks to Gary Gregory.
72+
o BoundedInputStream.getCount() should not count EOF. Thanks to Gary Gregory.
73+
o Modernize temporary file creation and deletion in DeferredFileOutputStreamTest #535. Thanks to Elliotte Rusty Harold, Gary Gregory.
74+
o Add PathMatcher to IOFileFilter class Javadoc #536. Thanks to Elliotte Rusty Harold.
75+
o IO-781: Fix CharSequenceInputStream coding exception handling #537. Thanks to Marcono1234.
76+
o IO-781: Deprecate int CountingInputStream#getCount() in favor of long CountingInputStream#getByteCount(). Thanks to Marcono1234.
77+
o IO-828: Deprecate CountingInputStream.resetCount() in favor of resetByteCount(). Thanks to Elliotte Rusty Harold, Gary Gregory.
78+
o IO-828: Deprecate CountingInputStream.getMaxLength() in favor of getMaxCount()). Thanks to Gary Gregory.
79+
o IO-818: NullInputStream breaks InputStream's read method contract. Thanks to Gary Gregory.
80+
o Javadoc shouldn't reference 1.x behavior #539. Thanks to Elliotte Rusty Harold.
81+
o IO-829: Don't decode and reencode characters in a potentially different charset in AbstractOrigin.CharSequenceOrigin.getReader(Charset). Thanks to Elliotte Rusty Harold, Gary Gregory.
82+
o Let subclasses of CountingInputStream.afterRead(int) throw IOException. Thanks to Gary Gregory.
83+
o IO-807: Characterization test for broken symlinks when copying directories #547. Thanks to Elliotte Rusty Harold, Gary Gregory.
84+
o ClosedInputStream.read(byte[], int, int) does not always return -1. Thanks to Gary Gregory.
85+
o ClosedOutputStream.write(byte[], int, int) does not always throw IOException. Thanks to Gary Gregory.
86+
o XmlStreamReader can't parse an XML document with a multi-line prolog #550. Thanks to Sylwester Lachiewicz, Gary Gregory.
87+
o XmlStreamReader can't parse XML an document with an external parsed entity prolog. Thanks to Andreas Hubold, Gary Gregory.
88+
o IO-836: Update FileNameUtils Javadoc #554. Thanks to Elliotte Rusty Harold.
89+
o IO-807: Copy symlinks, not the files the symlinks point to #558. Thanks to Jordi Sola, Elliotte Rusty Harold.
90+
o Pickup apache-rat-plugin version from parent POM. Thanks to Gary Gregory.
91+
o Add test for copying a symlink FileUtilsTest#testCopyFile_symLink() #564. Thanks to Elliotte Rusty Harold.
92+
o Make copyFile copy symbolic links by value rather than reference #565. Thanks to Elliotte Rusty Harold.
93+
o Deprecate CopyUtils 0-argument constructor. Thanks to Gary Gregory.
94+
o IO-843: Deprecate EndianUtils 0-argument constructor. Thanks to Gary Gregory, Elliotte Rusty Harold.
95+
o Deprecate FileSystemUtils 0-argument constructor. Thanks to Gary Gregory.
96+
o Deprecate FilenameUtils 0-argument constructor. Thanks to Gary Gregory.
97+
o Deprecate RandomAccessFiles 0-argument constructor. Thanks to Gary Gregory.
98+
o Clarify and correct EndianUtils and SwappedDataInputStream API doc #566. Thanks to Elliotte Rusty Harold, Gary Gregory.
99+
o Add characterization test for copying a symlinked directory #570. Thanks to Elliotte Rusty Harold.
100+
o RandomAccessFileInputStream.builder().get() now throws ISE instead of NPE. Thanks to Gary Gregory.
101+
o IO-845: Test links to targets outside the source directory #571. Thanks to Elliotte Rusty Harold.
102+
o Focus Javadoc on current version rather than past versions #573, #574. Thanks to Elliotte Rusty Harold.
103+
o IO-469: "Self-suppression not permitted" while using BrokenOutput and BrokenInput streams with try-with-resources. Thanks to Grigory Fadeev, Kristian Rosenvold, Elliotte Rusty Harold.
104+
o IO-405: Handle zero and negative thresholds #587. Thanks to Elliotte Rusty Harold.
105+
o Deprecate CountingInputStream in favor of BoundedInputStream. Thanks to Gary Gregory.
106+
o PathUtils.setPosixPermissions(...) only sets permissions if needed. Thanks to Gary Gregory.
107+
o PathUtils.setReadOnly(...) only sets permissions if needed. Thanks to Gary Gregory.
108+
o PathUtils.deleteFile(..., DeleteOption...) only sets permissions if needed. Thanks to Gary Gregory.
109+
o CleaningPathVisitor only sets permissions if needed. Thanks to Gary Gregory.
110+
o DeletingPathVisitor only sets permissions if needed. Thanks to Gary Gregory.
111+
112+
Changes
113+
-------
114+
115+
o Bump commons.bytebuddy.version from 1.14.10 to 1.14.12 #534, #592. Thanks to Gary Gregory.
116+
o Bump org.apache.commons:commons-parent from 65 to 67. Thanks to Gary Gregory.
117+
o Bump commons-codec:commons-codec from 1.16.0 to 1.16.1 #583. Thanks to Dependabot.
118+
o Bump org.codehaus.mojo:exec-maven-plugin from 3.1.1 to 3.2.0 #593. Thanks to Dependabot.
119+
120+
121+
Commons IO 2.7 and up requires Java 8 or above.
122+
Commons IO 2.6 requires Java 7 or above.
123+
Commons IO 2.3 through 2.5 requires Java 6 or above.
124+
Commons IO 2.2 requires Java 5 or above.
125+
Commons IO 1.4 requires Java 1.3 or above.
126+
127+
Historical list of changes: https://commons.apache.org/proper/commons-io/changes-report.html
128+
129+
For complete information on Apache Commons IO, including instructions on how to submit bug reports,
130+
patches, or suggestions for improvement, see the Apache Commons IO website:
131+
132+
https://commons.apache.org/proper/commons-io/
133+
134+
Download page: https://commons.apache.org/proper/commons-io/download_io.cgi
135+
136+
Have fun!
137+
-Apache Commons Team
138+
139+
------------------------------------------------------------------------------
140+
141+
2142
Apache Commons IO
3143
Version 2.15.1
4144
Release Notes

src/changes/changes.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ The <action> type attribute can be add,update,fix,remove.
4646
<title>Apache Commons IO Release Notes</title>
4747
</properties>
4848
<body>
49-
<release version="2.16.0" date="202Y-MM-DD" description="Java 8 is required.">
49+
<release version="2.16.0" date="2024-03-25" description="Java 8 is required.">
5050
<!-- Fix -->
5151
<action dev="ggregory" type="fix" due-to="Elliotte Rusty Harold">Fix and re-enable testSkip_RequiredCharsets #518.</action>
5252
<action dev="ggregory" type="fix" issue="IO-824" due-to="Miguel Munoz, Gary Gregory">SymbolicLineFileFilter documentation fixes.</action>

src/changes/release-notes.vm

+19-17
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,10 @@
1515
## specific language governing permissions and limitations
1616
## under the License.
1717

18-
Apache Commons IO
19-
Version ${version}
20-
Release Notes
18+
Apache Commons IO ${version} Release Notes
2119

22-
INTRODUCTION:
20+
Introduction
21+
------------
2322

2423
Commons IO is a package of Java utility classes like java.io.
2524
Classes in this package are considered to be so standard and of such high
@@ -40,14 +39,14 @@ $release.description.replaceAll(" ", "
4039
#if ($release.getActions().size() == 0)
4140
No changes defined in this version.
4241
#else
43-
Changes in this version include:
44-
4542
## indent to be used if there is no issue attribute.
4643
## should be the same as the indent in the changes.xml file
47-
## less 2 spaces for the 'o' and trailing space
48-
#set($indent=' ')
44+
## less 2 spaces for the '*' and trailing space
45+
#set($indent=' ')
4946
#if ($release.getActions('add').size() !=0)
50-
New features:
47+
New features
48+
------------
49+
5150
#foreach($actionItem in $release.getActions('add'))
5251
## Use replaceAll to fix up LF-only line ends on Windows.
5352
#set($action=$actionItem.getAction().replaceAll("\n","
@@ -70,7 +69,9 @@ o#if($!issue != "") $issue: #else$indent#end ${action} #if($!dueto != "")Thanks
7069
#end
7170

7271
#if ($release.getActions('fix').size() !=0)
73-
Fixed Bugs:
72+
Fixed Bugs
73+
----------
74+
7475
#foreach($actionItem in $release.getActions('fix'))
7576
## Use replaceAll to fix up LF-only line ends on Windows.
7677
#set($action=$actionItem.getAction().replaceAll("\n","
@@ -93,7 +94,9 @@ o#if($!issue != "") $issue: #else$indent#end ${action} #if($!dueto != "")Thanks
9394
#end
9495

9596
#if ($release.getActions('update').size() !=0)
96-
Changes:
97+
Changes
98+
-------
99+
97100
#foreach($actionItem in $release.getActions('update'))
98101
## Use replaceAll to fix up LF-only line ends on Windows.
99102
#set($action=$actionItem.getAction().replaceAll("\n","
@@ -116,7 +119,9 @@ o#if($!issue != "") $issue: #else$indent#end ${action} #if($!dueto != "")Thanks
116119
#end
117120

118121
#if ($release.getActions('remove').size() !=0)
119-
Removed:
122+
Removed
123+
-------
124+
120125
#foreach($actionItem in $release.getActions('remove'))
121126
## Use replaceAll to fix up LF-only line ends on Windows.
122127
#set($action=$actionItem.getAction().replaceAll("\n","
@@ -140,10 +145,6 @@ o#if($!issue != "") $issue: #else$indent#end ${action} #if($!dueto != "")Thanks
140145
## End of main loop
141146
#end
142147
##
143-
Compatibility with 2.6:
144-
Binary compatible: Yes.
145-
Source compatible: Yes.
146-
Semantic compatible: Yes.
147148

148149
Commons IO 2.7 and up requires Java 8 or above.
149150
Commons IO 2.6 requires Java 7 or above.
@@ -163,4 +164,5 @@ Download page: ${project.url}download_io.cgi
163164
Have fun!
164165
-Apache Commons Team
165166

166-
==============================================================================
167+
------------------------------------------------------------------------------
168+

0 commit comments

Comments
 (0)