Eclipse Collections 9.0.0 Release Review

Type: 
Release
State: 
Successful
End Date of the Review Period: 

Reviews run for a minimum of one week. The outcome of the review is decided on this date. This is the last day to make comments or ask questions about this review.

Wednesday, September 20, 2017
Release: 
Nikhil Nanivadekar's picture

This is the 9.0.0 major release. Theme of this project is to increase symmetry between the object and primitive collection hierarchy, improve Java 9 and OSGi support, reduce tech debt.

New Functionality
-----------------

* Implement flipUniqueValues on primitive maps.
* Implement tap on primitive iterables.
* Implement Implement ReversibleIterable.reverseForEachWithIndex().
* Implement distinctBy on ListIterable.
* Implement adapt on factory classes.
* Implement UnifiedSet.trimToSize().
* Implement UnifiedMap.trimToSize().
* Implement ofAll and withAll for Int, Long, Double collection factories with primitive streams.
* Implement stream, parallelStream and spliterator on all object valued maps.
* Implement HashingStrategies.nullSafeFromFunction(Function).
* Implement spliterator, stream, parallelStream and castToCollection on ImmutableCollection.
* Add an efficient default implementation of forEach.
* Implement flatCollect on lazy primitive iterables and cartesianProduct on primitive sets factory.
* Add covariant override for subList() in ListIterable hierarchy.
* Implement averageIfEmpty and medianIfEmpty on primitive iterables.
* Implement countBy and countBy with target as default methods on RichIterable.
* For Java 9 add "Automatic-Module-Name" to manifests of JAR files.
* Improve OSGi bundle API information to remove Eclipse PDE "discouraged access" warnings.

Tech Debt Reduction
-------------------

* Activate Checkstyle RequireThis module.
* Fix warnings generated during Javadoc build.

Breaking Change
---------------

* Remove Apache Felix plugin.
* Deprecate or hide collection factory constructors. 
* Reduce scope of EMPTY_INSTANCE in ImmutableBiMapFactoryImpl.

Miscellaneous
-------------

* Add logo in reference guide.
* Add Eclipse Collections logo in README.
* Add Eclipse Collections logo.