File eclipse-collections.changes of Package eclipse-collections
-------------------------------------------------------------------
Mon Jul 28 11:14:22 UTC 2025 - Anton Shvetz <shvetz.anton@gmail.com>
- Update to v12.0.0
* This is the 12.0.0 major release.
This release focused on migrating the development baseline from
Java 8 to Java 11, migrating to JUnit 5, enhancing performance,
adding new API methods, improving test coverage, and updating
dependencies. The team has also made significant efforts to
reduce technical debt and improve code quality.
* New Functionality
+ Added default toArray()/toImmutableList()/toSet()/toBag()
implementations to LazyIterable.
+ Implemented MapIterable.collectKeysUnique(). Fixes #409.
+ Implemented MutableOrderedMap.toImmutable()
+ Implemented ImmutableOrderedMapAdapter.
+ Implemented OrderedMapAdapter.flipUniqueValues().
+ Implemented Stack.getLast().
+ Implemented Stack.distinct().
+ Added feature to reverse Interval ranges.
+ Added withOccurrences() and withoutOccurrences() to
MutableBag.
+ Implemented RichIterable.reduceBy(). Fixes #134.
+ Added toStack() to OrderedPrimitiveIterable.
+ Implemented Comparators.fromPredicate(), to create a
Comparator from a Predicate2 that can answer isBefore().
+ Implemented boxing wrappers for primitive sets. Fixes #1408.
+ Implemented boxing wrappers for primitive lists. Fixes #1408.
+ Exposed trimToSize() in HashBag implementations.
+ Exposed trimToSize() in all primitive maps and sets.
+ Added removeIf() to PrimitiveObject maps.
+ Changed OrderedIterable.indexOf() to have a default
implementation.
+ Added SortedMaps.mutable.empty(comparator) and
SortedSets.mutable.empty(comparator) the missing empty with
comparator methods. Fixes #1328.
* Optimizations
+ Optimized forEach() method on Map views to not delegate to an
iterator.
+ Optimized Map.replaceAll() to not delegate to iterator.
+ Optimized putAll() method.
+ Optimized ImmutableArrayList.takeWhile() and
ImmutableArrayList.dropWhile() for small lists. Fixes #1640.
+ Optimized clear() method of sub-lists. Fixes #1625.
+ Optimized MutableList.subList().
+ Optimized equals() for primitive Bags using
allSatisfyKeyValue() on PrimitivePrimitiveMaps.
+ Added allSatisfyKeyValue() method to Object/Primitive Maps to
optimize HashBag.equals() method.
+ Overrode Map.merge() default method for correctness and
efficiency. Partially addresses #500.
+ Optimized withAll() on MutableSet Factories and Immutable
equivalent. Fixes #1374.
+ Overrode Java 8 default method Map.forEach().
+ Optimized any/all/noneSatisfy() on
UnifiedMapWithHashingStrategy. Fixes #1342.
+ Optimized withAll() for PrimitiveBag factories. Fixes #1372.
* Tech Debt Reduction
+ Added more files to .idea/.gitignore.
+ Used interfaces instead of implementations where possible
without breaking backward compatibility.
+ Formatted yaml files using Spotless.
+ Synced .idea/compiler.xml.
+ Fixed MapIterate.forEachKeyValue() to throw
NullPointerException on null Map.
+ Added missing @Override annotations.
+ Added suppress warnings to RichIterable for
ClassReferencesSubclass.
+ Fixed static analysis violations.
+ Synced IntelliJ project files.
+ Made UnifiedMapWithHashingStrategy more similar to UnifiedMap
by implementing removeIf() and the detect*() methods.
+ Added OSGi Opting in to Service Loader Mediator. Fixes #1568
+ Set .idea to linguist-generated=false in .gitattributes so
that it shows up in code review diffs.
+ Updated Checkstyle AvoidStaticImport to allow JUnit 5 static
imports.
+ Fixed IntelliJ code style settings.
+ Configured CheckStyle check IllegalInstantiation to match the
style of upstream configuration.
+ Configured CheckStyle check HiddenField to match the style of
upstream configuration.
+ Turned on CheckStyle check RightCurly for additional tokens.
+ Turned on CheckStyle check EmptyBlock for additional tokens.
+ Turned on CheckStyle check AnnotationLocation for additional
tokens.
+ Ran
rewrite.activeRecipes=org.openrewrite.java.RemoveUnusedImports.
+ Ran org.openrewrite.java.UseStaticImport: methodPattern:
org.junit.Assert *(..).
+ Extracted interface MapTestCase above
MutableMapIterableTestCase.
+ Replaced new Long() with Long.valueOf().
+ Updated JMH Benchmarks and library dependencies.
+ Simplified Iterate forEach() and sort() by calling Java 8
default methods.
+ Fixed overflow issues in LongInterval. Fixes #1717.
+ Fixed OrderedMapAdapter.groupByUniqueKey().
+ Fixed NullPointerException in
IterableTestCase.assertEquals().
+ Fixed generics in map factories.
+ Fixed return types of aggregateBy() overrides.
+ Added default overrides for getFirst() and getLast() in
MutableList and MutableSortedSet. Fixes #1460.
+ Fixed a type in mutation.yml. Fixes #1440.
+ Fixed a bug in addAllAtIndex() method. Fixes #1433.
+ Turned on additional IntelliJ inspections and fix violations
(trivial if, trivial else, commented out code, method is
identical to its super method). #1323.
+ Added missing overrides in multi-reader interfaces.
+ Refactored distinct() to use select().
+ Refactored FastList to use new InternalArrayIterate primitive
collect methods. Fixes #1350.
* Documentation Changes
+ Added "Eclipse Collections Categorically" book to "Learn
Eclipse Collections" section of README.
+ Improved structural search templates, mostly for collection
factories and assertions.
+ Clarified Java version compatibility in README.
+ Added method categories with emojis in RichIterable using
region/endregion comments.
+ Added method categories with emojis in RichIterable javadoc
summary.
+ Fixed incorrect Javadoc for SortedSetIterable.intersect() and
SetIterable.intersect().
+ Fixed typo in 3-Code_Blocks.adoc.
+ Fixed bold markup typos in the reference guide.
+ Fixed typo in Primitive set doc.
+ Fixed Java version in CONTRIBUTING.MD
+ Added NOTICE.md file.
+ Added Javadoc to ConcurrentMutableMap.merge().
+ Updated README.md compatibility table and add blog links.
+ Fixed some Javadoc errors.
+ Fixed all language links, their order, old website links and
http links.
+ Added missing Javadoc for Iterate.getOnly().
+ Removed prompt from code blocks in CONTRIBUTING.MD.
+ Removed a typo in ImmutableSet Javadoc.
+ Removed anonymous inner class examples from RichIterable and
Iterate JavaDoc.
+ Updated 2-Collection_Containers.adoc file for adding
IntInterval Documentation.
+ Updated 2-Collection_Containers.adoc file for Primitive sets
documentation.
+ Fixed dead links in CONTRIBUTING.MD
* Build Changes
+ Added job forbid-merge-commits to
.github/workflows/pull-request.yml.
+ Replaced mvn install with mvn verify in GitHub workflows.
+ Updated GitHub Actions builds to latest JDK versions.
+ Moved bnd-maven-plugin to a profile.
+ Added Spotless maven profiles.
+ Configured maven-surefire-plugin printSummary to false, to
stop logging successful tests.
+ Added maven profiles and caching to speed up builds.
+ Updated IntelliJ language level to 11.
+ Added consistent use of ./mvnw --color=always from GitHub
workflows.
+ Combined all the GitHub workflows for pull requests.
+ Upgraded maven from 3.6.3 to 3.9.6.
+ Added javadoc:jar step and Java 11 to Javadoc GitHub Action.
+ Upgraded Maven wrapper.
+ Removed sonar-maven-plugin. Fixes #1466.
* Build/Test Dependency Upgrades
+ Added dependency on junit-jupiter-api.
+ Upgraded versions of JUnit to JUnit 5.
+ Upgraded org.jacoco:jacoco-maven-plugin to 0.8.12.
+ Upgraded net.alchim31.maven:scala-maven-plugin to 4.9.2.
+ Upgraded org.apache.maven.plugins:maven-assembly-plugin to
3.7.1.
+ Upgraded org.apache.maven.plugins:maven-source-plugin to
3.3.0.
+ Upgraded org.apache.maven.plugins:maven-compiler-plugin to
3.13.0.
+ Upgraded org.scala-lang:scala-library to 2.13.15.
+ Upgraded ch.qos.logback:logback-classic to 1.5.8.
+ Upgraded slf4j.version to 2.0.16.
+ Upgraded jcstress-core to 0.16.
+ Upgraded com.puppycrawl.tools:checkstyle to 10.18.2.
+ Upgraded org.apache.maven:maven-core to 3.9.9.
+ Upgraded org.apache.maven.plugins:maven-gpg-plugin to 3.2.7.
+ Upgraded
org.apache.maven.plugin-tools:maven-plugin-annotations to
3.15.0.
+ Upgraded org.apache.maven:maven-plugin-api to 3.9.9.
+ Upgraded org.apache.maven.plugins:maven-release-plugin to
3.1.1.
+ Upgraded
org.apache.maven.plugins:maven-project-info-reports-plugin to
3.7.0.
+ Upgraded org.apache.maven.plugins:maven-checkstyle-plugin.
+ Upgraded org.apache.maven.plugins:maven-enforcer-plugin to
3.5.0.
+ Upgraded org.apache.maven.plugins:maven-install-plugin to
3.1.3.
+ Upgraded org.apache.maven.plugins:maven-plugin-plugin to
3.15.0.
+ Upgraded org.apache.maven.plugins:maven-surefire-plugin to
3.5.0.
+ Upgraded org.codehaus.mojo:versions-maven-plugin to 2.17.1.
+ Upgraded org.apache.maven.plugins:maven-deploy-plugin to
3.1.3.
+ Upgraded org.apache.maven.plugins:maven-resources-plugin to
3.3.1.
+ Upgraded actions/setup-java to 4.
+ Upgraded actions/upload-artifact to 4.
+ Upgraded actions/cache from to 4.0.0.
+ Upgraded actions/checkout to 4.
* Test Improvements
+ Added tests for equals() and forEach() on keySet() and
entrySet().
+ Added tests Map_entrySet_setValue() and
MutableMapIterable_entrySet_setValue().
+ Stopped throwing mangled exceptions in Verify.
+ Added test coverage for MutableBagIterable.
+ Removed redundant tests from unit-tests that live in
unit-tests-java8.
+ Changed IterableTestCase.assertIterablesEqual to assert that
the arguments are actually iterable.
+ Added missing @test annotations and fix broken assertion.
+ Added better test coverage of List.subList().
+ Added test coverage for Map.put() and Map.putAll().
+ Improved Verify assertions to not rely on iterators.
+ Deleted four flaky tests:
Collectors2AdditionalTest.sumBy*Parallel().
+ Added more assertions to
IterableTestCase.assertIterablesEqual().
+ Reduced duplication between tests for unmodifiable maps.
+ Improve test coverage for the optimization of
MutableList.subList().
+ Removed @test(expected) from tests and use assertThrows
instead.
+ Uplifted Junit syntax for UnmodifiableSortedBagTest.
+ Fixed test setup in SortedMapAdapterTest which was
accidentally setting up a MutableOrderedMap.
+ Replaced usages of impl.factory.(Bags|Lists|Sets|Maps) with
api.factory in unit-tests.
+ Combined tests in unit-tests-java8 that cover the same method
contract.
+ Removed check for Java 21 in
UnmodifiableMutableOrderedMapSerializationTest.
-------------------------------------------------------------------
Wed Nov 1 06:25:05 UTC 2023 - Fridrich Strba <fstrba@suse.com>
- Build the eclipse-collections-api module with release=8 if the
compiler is supporting it
* fixes incompatibilities with JDK21 and new added methods in
java.util.List interface
-------------------------------------------------------------------
Wed Sep 13 14:12:45 UTC 2023 - Fridrich Strba <fstrba@suse.com>
- Reproducible builds: produce reproducible manifest with bnd
-------------------------------------------------------------------
Sun Jul 31 21:33:18 UTC 2022 - Anton Shvetz <shvetz.anton@gmail.com>
- Update to v11.1.0
* New Functionality
= Added Bag.distinctView().
= Added Bags.mutable.withInitialCapacity.
= Added forEachInBoth to Primitive Lists.
= Added MultiReader to Bags factory in API module.
= Added MultiReader to Lists factory in API module.
= Added MultiReader to Sets factory in API module.
= Added Primitive Bag factories in API module.
= Added Primitive Set factories in API module.
= Added Primitive Stack factories in API module.
= Added factory for ObjectPrimitiveHashMapWithHashingStrategy.
= Added withInitialCapacity api in
mutableObjectPrimitiveHashingStrategyMapFactory.
= Added ability to create Hashing Strategy Sets, Maps and Bags
using Function.
= Added injectInto for primitive types to primitive iterables.
= Added injectIntoKeyValue to MapIterable.
= Added injectIntoKeyValue to objectPrimitiveMap.
= Added injectIntoKeyValue to primitiveObjectMap.
= Added injectIntoKeyValue to primitivePrimitiveMap.
= Added mutable reduction scenario to injectIntoKeyValue test
for primitive maps.
= Added object to primitive map factory to API module.
= Added of and with factory methods to object -> primitive map
factories.
= Added of and with factory methods to primitive -> primitive
and primitive -> object map factories.
= Added withKeyMultiValues to MutableMultimap and subtypes.
= Added withKeyValue to MutableMultimap and subtypes.
= Added getAndPut to mutableObjectPrimitiveMap to retrieve the
value associated with the key if one exists.
= Added peekAndPop methods in ImmutableStack.
= Added fused method for collect + makeString.
= Added missing implementations of toString().
= Added selectWithIndex and rejectWithIndex to Ordered
Primitive Iterables.
= Implemented containsAny, containsNone, containsAnyIterable,
containsNoneIterable on RichIterable.
* Optimizations
= Optimized asParallel() for immutable sets in O(1) instead of
O(n).
= Optimized some implementations of toString() that were
delegating to iterators.
= Improved equals() performance for Set implementations.
* Tech Debt Reduction
= Replaced implementation factories and dependencies with API
factories where possible.
= Fixed CheckStyle configuration for NewlineAtEndOfFile so that
it works across operating systems.
= Made forEach a default method on primitiveIterable.stg.
= Made noneSatisfy a default method on primitiveIterable.stg.
= Removed unnecessary implementations of
toSortedList/Set/Bag/MapBy.
= Disambiguate and deprecate primitive injectInto methods on
RichIterable.
= Improved code generation logic into separate goals for
sources, test-sources, and resources.
= Improved PIT mutation test coverage.
= Improved overall test coverage by adding missing tests.
* Documentation Changes
= Updated reference guide and convert to AsciiDoc.
= Updated CONTRIBUTING.md to reflect contribution guidelines
around commit sign-off.
= Updated README.md with OSS projects that use Eclipse
Collections.
* Build Changes
= Upgraded CheckStyle from 9.1 to 10.1.
= Upgraded actions/cache from 2.1.7 to 3.0.2.
= Upgraded checkstyle-configuration.xml from 1.2 schema to 1.3
schema.
= Upgraded setup-java v3.
= Upgraded actions/cache from 2.1.6 to 2.1.7.
= Upgraded actions/checkout from 2 to 3.
= Upgraded actions/upload-artifact from 2.2.4 to 3.
= Upgraded maven-plugin-api from 3.6.3 to 3.8.5.
= Upgraded maven-shade-plugin from 3.2.2 to 3.2.4.
= Upgraded maven-site-plugin from 3.9.0 to 3.11.0.
= Switched to oracle-actions to download JDK for EA builds.
= Turned on additional CheckStyle rules and IntelliJ
inspections.
= Removed FindBugs build from GitHub workflows.
-------------------------------------------------------------------
Fri Apr 22 01:38:03 UTC 2022 - Anton Shvetz <shvetz.anton@gmail.com>
- Update to v11.0.0
* New Functionality
= Added toImmutableList/Set/Bag/Map/BiMap to RichIterable.
= Added toImmutableSortedList/Set/Bag to RichIterable.
= Added toImmutableSortedBag/List/Set with Comparator
to RichIterable.
= Added toImmutableSortedBagBy/ListBy/SetBy with Function
to RichIterable.
= Added selectWithIndex and rejectWithIndex to OrderedIterable
and ListIterable.
= Added putAllMapIterable method to MutableMap.
= Added withMapIterable to MutableMap.
= Added newWithMap and newWithMapIterable to ImmutableMap.
= Added anySatisfyWithOccurrences, allSatisfyWithOccurrences,
noneSatisfyWithOccurrences, detectWithOccurrences to Bag.
= Added covariant overrides for sortThis().
= Added covariant return types to methods in MultiReaderList
that return this.
= Added primitive singleton iterator.
= Added union, intersect, difference, symmetric difference,
cartesianProduct, isSubsetOf, isProperSubsetOf
to primitive sets.
= Added containsAny and containsNone on primitive iterables.
= Added toSortedList(Comparator) and toSortedListBy(Function)
to primitive iterables.
= Added isEqual and isSame to Pair and Triple as default
methods.
= Added converters from Pair and Triple to List types.
= Added toImmutableSortedBagBy to Collectors2.
= Added toImmutableSortedMap and toImmutableSortedMapBy
to Collectors2.
= Added toSortedMap and toSortedMapBy to Collectors2.
= Added Norwegian translation for the Eclipse Collections
website.
= Added ClassComparer utility.
* Optimizations
= Optimized ImmutableListFactoryImpl.withAll(Iterable).
= Optimized containsAll on primitive iterables.
= Optimized primitive hash set newSet and withAll.
= Optimized sumByLong and sumByInt Primitive methods for Bags.
= Optimized toImmutable on primitive sets.
= Optimized union and difference on SetIterables.
= Added enhanced for-loop syntax wherever as possible.
* Tech Debt Reduction
= Deprecated ImmutableArrayStack.
= Fixed bug with noneSatisfy for ImmutableBooleanEmptySet.
= Fixed compiler errors for JDK-15-EA.
= Fixed return types of aggregateBy().
= Fixed types on Multimap.*MultiValues().
= Fixed primitive hash map values collections removed
for special key zero.
= Fixed CollectIterable detect methods.
= Added missing overrides for toImmutable methods
on synchronized primitive object maps.
= Added missing overrides of aggregateBy()
and aggregateInPlaceBy().
= Added documentation on serializing Eclipse Collections
with jackson.
= Added logic to throw UnsupportedOperationException
on calling withMap method in FixedSizeMap. This is
a breaking change.
= Made org.eclipse.collections.impl.list.Interval#goForward
private. This is a breaking change.
= Replaced HashingStrategies.longHashCode with Java 8
Long.hashCode. This is a breaking change.
= Deleted version.properties as the file is no longer needed.
= Removed extra calls to map.get in sumByDoubleFunction
and sumByFloatFunction.
= Removed implementations of OrderedIterable.toStack()
that can use the default implementation instead.
= Removed implementations of aggregateBy and aggregateInPlaceBy
that can use default implementations instead.
= Removed references to deleted classes in findbugs-exclude
file.
* Removed Functionality
= Removed Verify.assertThrows() which takes a Runnable
in favor of Assert.assertThrows(). This is a breaking change.
= Removed assertNotEquals() from Verify as Assert already
has the same API. This is a breaking change.
* Build Changes
= Upgraded EBR plugin to 1.3.0.
= Upgraded actions/cache to 2.1.6.
= Upgraded actions/upload-artifact to 2.2.4.
= Upgraded antlr ST4 to 2.1.5.
= Upgraded checkstyle plugin to 3.1.2.
= Upgraded checkstyle to 8.42.
= Upgraded codehaus maven plugin to 2.8.1.
= Upgraded jacoco to v2.2.3.
= Upgraded jmh-core to 1.33.
= Upgraded maven-resources-plugin to 3.2.0.
= Upgraded to JUnit 4.13.1.
= Upgraded to setup-java v2.
= Skip p2 repository module during EA builds and Java 15+ builds.
= Enabled Dependabot v2.
= Added GitHub action to generate code coverage report.
= Added JDK Early Access GitHub Actions.
* Breaking Changes
Warning: These changes are already mentioned above. The list
below might not be exhaustive, make sure to test your
application and usages to verify.
= Added logic to throw UnsupportedOperationException on calling
withMap method in FixedSizeMap.
= Made org.eclipse.collections.impl.list.Interval#goForward
private.
= Replaced HashingStrategies.longHashCode with Java 8
Long.hashCode.
= Removed Verify.assertThrows() which takes a Runnable
in favor of Assert.assertThrows().
= Removed assertNotEquals() from Verify as Assert already
has the same API.
-------------------------------------------------------------------
Fri Jul 2 09:26:03 UTC 2021 - Fridrich Strba <fstrba@suse.com>
- Do not use service file
- Avoid unnecessary dependency on tycho and maven-enforcer-plugin
-------------------------------------------------------------------
Wed Jun 30 11:43:06 UTC 2021 - Anton Shvetz <shvetz.anton@gmail.com>
- Initial commit with v10.4.0