8.2.0 (June 2017)
This is the 8.2.0 minor release.
New Functionality
- Implemented OrderedIterable.getFirstOptional() and OrderedIterable.getLastOptional().
- Implemented RichIterable.minOptional() and RichIterable.minByOptional().
- Implemented RichIterable.maxOptional() and RichIterable.maxByOptional().
- Provided a p2 repository with new OSGi bundle.
Optimizations
- Optimized ImmutableTreeSet constructor to not create a new TreeSortedSet.
- Optimized constructors of ImmutableTreeSet which take an array as input.
- Optimized minOptional(), minByOptional(), maxOptional() and maxByOptional() on LazyIterable.
- Optimized size() on CompositeIterable.
Java 9 Compatibility Fixes
- Added workaround for reflection in ArrayListIterate.
- Deprecated SerializableDoubleSummaryStatistics, SerializableIntSummaryStatistics,SerializableLongSummaryStatistics, SummaryStatistics.
- Fixed compilation errors for JDK 9.
- Changed 'throws' tests to support Java 8 and Java 9.
- Added workaround for reflection in Verify#assertShallowClone().
- Deprecated Verify#assertShallowClone().
Tech Debt Reduction
- Deprecated EMPTY_INSTANCE in ImmutableBiMapFactoryImpl.
- Deprecated EMPTY Multimap instances in org.eclipse.collections.impl.factory.Multimaps.
- Pulled up implementation of detectIfNone(), toSortedList() from AbstractRichIterable to RichIterable.
- Replaced the type specification with the diamond operator ("<>") in primitive collections.
- Removed duplicate and unnecessary imports.
- Annotated interfaces with the @FunctionalInterface annotation.
- Added missing @Override annotations.
- Fixed angle brackets in Javadoc.
- Added unit tests for PairPredicate and MapEntryPredicate.
Miscellaneous
- Enabled SonarQube analysis.
- Upgraded versions of maven-jar-plugin, maven-source-plugin, maven-plugin-plugin, maven-compiler, maven-javadoc plugin, checkstyle, JaCoCo.
- Upgraded versions of Guava, HPPC, JMH, Logback, SLF4J.