diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index b91e49f382..c0d4dde5cf 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -41,9 +41,8 @@
Contributing to Apache Commons Collections
======================
-You have found a bug or you have an idea for a cool new feature? Contributing code is a great way to give something back to
-the open source community. Before you dig right into the code there are a few guidelines that we need contributors to
-follow so that we can have a chance of keeping on top of things.
+Have you found a bug or have an idea for a cool new feature? Contributing code is a great way to give something back to the open-source community.
+Before you dig right into the code, we need contributors to follow a few guidelines to have a chance of keeping on top of things.
Getting Started
---------------
@@ -62,7 +61,7 @@ Making Changes
+ Create a _topic branch_ for your isolated work.
* Usually you should base your branch on the `master` branch.
- * A good topic branch name can be the JIRA bug id plus a keyword, e.g. `COLLECTIONS-123-InputStream`.
+ * A good topic branch name can be the JIRA bug ID plus a keyword, e.g. `COLLECTIONS-123-InputStream`.
* If you have submitted multiple JIRA issues, try to maintain separate branches and pull requests.
+ Make commits of logical units.
* Make sure your commit messages are meaningful and in the proper format. Your commit message should contain the key of the JIRA issue.
@@ -72,7 +71,7 @@ Making Changes
+ Create minimal diffs - disable _On Save_ actions like _Reformat Source Code_ or _Organize Imports_. If you feel the source code should be reformatted create a separate PR for this change first.
+ Check for unnecessary whitespace with `git diff` -- check before committing.
+ Make sure you have added the necessary tests for your changes, typically in `src/test/java`.
-+ Run all the tests with `mvn clean verify` to assure nothing else was accidentally broken.
++ Run all the tests with `mvn clean verify` to ensure nothing else was accidentally broken.
Making Trivial Changes
----------------------
diff --git a/README.md b/README.md
index 4cf0a17edc..c18fe00a5a 100644
--- a/README.md
+++ b/README.md
@@ -45,7 +45,7 @@ Apache Commons Collections
[![Java CI](https://github.com/apache/commons-collections/actions/workflows/maven.yml/badge.svg)](https://github.com/apache/commons-collections/actions/workflows/maven.yml)
[![Maven Central](https://img.shields.io/maven-central/v/org.apache.commons/commons-collections4?label=Maven%20Central)](https://search.maven.org/artifact/org.apache.commons/commons-collections4)
-[![Javadocs](https://javadoc.io/badge/org.apache.commons/commons-collections4/4.5.0-M2.svg)](https://javadoc.io/doc/org.apache.commons/commons-collections4/4.5.0-M2)
+[![Javadocs](https://javadoc.io/badge/org.apache.commons/commons-collections4/4.5.0-M3.svg)](https://javadoc.io/doc/org.apache.commons/commons-collections4/4.5.0-M3)
[![CodeQL](https://github.com/apache/commons-collections/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/apache/commons-collections/actions/workflows/codeql-analysis.yml)
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/apache/commons-collections/badge)](https://api.securityscorecards.dev/projects/github.com/apache/commons-collections)
@@ -62,20 +62,20 @@ Getting the latest release
--------------------------
You can download source and binaries from our [download page](https://commons.apache.org/proper/commons-collections/download_collections.cgi).
-Alternatively, you can pull it from the central Maven repositories:
+Alternatively, you can pull it from the central Maven repositories:
```xml
org.apache.commons
commons-collections4
- 4.5.0-M2
+ 4.5.0-M3
```
Building
--------
-Building requires a Java JDK and [Apache Maven](https://maven.apache.org/).
+Building requires a Java JDK and [Apache Maven](https://maven.apache.org/).
The required Java version is found in the `pom.xml` as the `maven.compiler.source` property.
From a command shell, run `mvn` without arguments to invoke the default Maven goal to run all tests and checks.
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 6142ca7e11..388ed07955 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -1,3 +1,83 @@
+Apache Commons Collections 4.5.0-M3 RELEASE NOTES
+-------------------------------------------------
+
+The Apache Commons Collections package contains types that extend and augment the Java Collections Framework.
+
+This is a feature and maintenance release. Java 8 or later is required.
+
+Changes in this version
+-----------------------
+
+New features
+------------
+
+* LayerManager.Builder implements Supplier. Thanks to Gary Gregory.
+* Add CollectionUtils.duplicateList(Collection). Thanks to Gary Gregory, hemanth0525.
+* Add CollectionUtils.duplicateSet(Collection). Thanks to Gary Gregory, hemanth0525.
+* Add CollectionUtils.duplicateSequencedSet(Collection). Thanks to Gary Gregory, hemanth0525.
+* Add HashBag.HashBag(Iterable). Thanks to Gary Gregory.
+* Add TreeBag.TreeBag(Iterable). Thanks to Gary Gregory.
+* COLLECTIONS-858: Add CartesianProductIterator #509. Thanks to Alexey Pelykh, Alex Herbert, Gary Gregory.
+* Add missing methods in AbstractMapTests. Thanks to Gary Gregory.
+* COLLECTIONS-700: Add ConcurrentReferenceHashMap. Thanks to Gary Gregory.
+* Add commons.easymock.version to parameterize EasyMock version. Thanks to Gary Gregory.
+* COLLECTIONS-869: Add org.apache.commons.collections4.IteratorUtils.chainedIterator(Iterator extends Iterator extends E>>). Thanks to Gary Gregory.
+* COLLECTIONS-533: Add ArrayListValuedLinkedHashMap #560. Thanks to Peter De Maeyer.
+* Add missing test AbstractIteratorTest.testForEachRemaining(). Thanks to Gary Gregory.
+* Add FilterIterator.removeNext() #564. Thanks to Gary Gregory, Claude Warren.
+* COLLECTIONS-870: Add ExtendedIterator and tests #564. Thanks to Claude Warren, Gary Gregory.
+* Refactor ExtendedIterator and FilterIterator with a new interface IteratorOperations. Thanks to Gary Gregory.
+* COLLECTIONS-871: Add LinkedHashSetValuedLinkedHashMap #565. Thanks to Peter De Maeyer.
+
+Fixed Bugs
+----------
+
+* COLLECTIONS-857: Complete bloom filter documentation #507. Thanks to Claude Warren.
+* Package private AbstractEmptyIterator implements ResettableIterator so subclasses don't. Thanks to Gary Gregory.
+* Deprecate AbstractEmptyIterator.add(E) without replacement. Thanks to Gary Gregory.
+* Add missing Javadocs. Thanks to Gary Gregory.
+* PatriciaTrie constructor reuse the stateless singleton StringKeyAnalyzer.INSTANCE. Thanks to Gary Gregory.
+* Deprecate StringKeyAnalyzer.StringKeyAnalyzer() in favor of StringKeyAnalyzer.INSTANCE. Thanks to Gary Gregory.
+* [Functional] FunctorUtils.validate(Closure...) is now FunctorUtils.validate(Consumer...). Thanks to Gary Gregory.
+* [Functional] FunctorUtils.validate(Predicate...) is now FunctorUtils.validate(java.util.function.Predicate...). Thanks to Gary Gregory.
+* [Functional] FunctorUtils.validate(Transformer...) is now FunctorUtils.validate(Function...). Thanks to Gary Gregory.
+* Increase test coverage for ListUtils #517. Thanks to Dávid Szigecsán. Gary Gregory.
+* Use the Junit (Jupiter) API #518. Thanks to Dávid Szigecsán.
+* BloomFilterExtractor.flatten() should throw an exception instead of returning null. Thanks to Gary Gregory, Alex Herbert.
+* Improve WrappedBloomFilterTest. All tests now assert copy() the same way. Thanks to Gary Gregory, Claude Warren.
+* COLLECTIONS-860: Javadoc CollectionBag.add* to throw ClassCastException. Thanks to Gary Gregory, Daniele.
+* Fix generics in IteratorChain.IteratorChain(Collection). Thanks to Gary Gregory.
+* Fix generics in org.apache.commons.collections4.IteratorUtils.chainedIterator(Collection). Thanks to Gary Gregory.
+* COLLECTIONS-856: Javadoc: Document interaction between peek and filter iterator #515. Thanks to Benjamin Confino, Gary Gregory.
+* COLLECTIONS-815: Javadoc: Update ClosureUtils Javadoc to match runtime. Thanks to Elia Bertolina, Gary Gregory.
+* COLLECTIONS-815: Javadoc: Update ClosureUtils Javadoc to match runtime. Thanks to Gary Gregory.
+* COLLECTIONS-777: Migrate to JUnit 5. Thanks to Gary Gregory.
+* Fix NullPointerException in FilterIterator.setNextObject(). Thanks to Gary Gregory.
+* EqualPredicate.test(Object) should return true if the parameter is the same object as given the constructor. Thanks to Gary Gregory.
+
+Changes
+-------
+
+* Bump org.apache.commons:commons-parent from 71 to 78 #534, #545, #550 #555, #566. Thanks to Gary Gregory.
+* COLLECTIONS-857: Update bloom filter documentation #508. Thanks to Claude Warren.
+* Bump commons-codec:commons-codec from 1.17.0 to 1.17.1 #514. Thanks to Dependabot, Gary Gregory.
+* Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.17.0 #516, #525, #535. Thanks to Dependabot, Gary Gregory.
+* Bump org.hamcrest:hamcrest from 2.2 to 3.0 #522, #532. Thanks to Dependabot, Gary Gregory.
+* Bump com.google.guava:guava-testlib from 33.2.1-jre to 33.3.1-jre #531, #549. Thanks to Dependabot, Gary Gregory.
+* Bump MathJax from 2.7.2 to 2.7.9. Thanks to Gary Gregory.
+* [test] Bump org.easymock:easymock from 5.3.0 to 5.5.0 #521, #576. Thanks to Dependabot, Gary Gregory.
+* [test] Bump commons-io:commons-io from 2.16.1 to 2.18.0 #544, #575. Thanks to Dependabot, Gary Gregory.
+
+
+For complete information on Apache Commons Collections, including instructions on how to submit bug reports,
+patches, or suggestions for improvement, see the Apache Commons Collections website:
+
+https://commons.apache.org/proper/commons-collections/
+
+Download page: https://commons.apache.org/proper/commons-collections/download_collections.cgi
+
+-----------------------------------------------------------------------------
+
Apache Commons Collections 4.5.0-M2 RELEASE NOTES
-------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index be5da9e04e..756b8f4968 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -22,7 +22,7 @@
Apache Commons Collections Release Notes
-
+
Complete bloom filter documentation #507.
Package private AbstractEmptyIterator implements ResettableIterator so subclasses don't.
diff --git a/src/site/xdoc/download_collections.xml b/src/site/xdoc/download_collections.xml
index cdadd32f5d..35b84b6072 100644
--- a/src/site/xdoc/download_collections.xml
+++ b/src/site/xdoc/download_collections.xml
@@ -113,122 +113,32 @@ limitations under the License.
-