9.0.0 (September 2017)
nikhilnanivadekar
released this
23 Sep 02:57
·
1579 commits
to master
since this release
The primary focus of 9.0.0 release is to prepare for Java 9, introduce new APIs, enhance symmetry between object and primitive APIs, improve OSGi integration and reduce tech debt.
New Functionality
- Added "Automatic-Module-Name" to manifests of JAR files for Java 9.
- Implemented countBy() and countBy() with target as default methods on RichIterable.
- Implemented adapt() on factory classes.
- Implemented ofAll() and withAll() for Int, Long, Double collection factories with primitive streams.
- Implemented averageIfEmpty() on primitive iterables.
- Implemented medianIfEmpty() on primitive iterables.
- Implemented flatCollect() on lazy primitive iterables.
- Implemented cartesianProduct() on primitive sets factory.
- Implemented tap() on primitive iterables.
- Implemented flipUniqueValues() on primitive maps.
- Implemented spliterator(), stream(), parallelStream() and castToCollection() on ImmutableCollection.
- Implemented stream(), parallelStream() and spliterator() on all object valued maps.
- Implemented ReversibleIterable.reverseForEachWithIndex().
- Implemented distinctBy() on ListIterable.
- Implemented trimToSize() on UnifiedSet.
- Implemented trimToSize() on UnifiedMap.
- Implemented HashingStrategies.nullSafeFromFunction(Function).
Breaking Change
- Reduced scope of EMPTY_INSTANCE in ImmutableBiMapFactoryImpl.
- Reduced scope of EMPTY Multimap instances in Multimaps Factory.
- Removed access to collection factory constructors.
- Removed usage of JCIP annotations.
- Removed Apache Felix plugin. Please use p2 repository for OSGi bundles.
Tech Debt Reduction
- Added covariant override for subList() in ListIterable hierarchy.
- Added an efficient default implementation of forEach.
- Added Javadoc for distinctBy().
- Activated Checkstyle RequireThis module.
- Enabled signing of p2 repository artifacts.
- Enabled export of all packages to OSGi.
- Removed unnecessary Tycho signing in p2 repository build.
- Fixed Javadoc issue in Maps.
- Fixed warnings generated during Javadoc build.
Miscellaneous
- Added logo in reference guide.
- Added Eclipse Collections logo in README.
- Added Eclipse Collections logo.
Acquiring Eclipse Collections
Maven
<dependency>
<groupId>org.eclipse.collections</groupId>
<artifactId>eclipse-collections-api</artifactId>
<version>9.0.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.collections</groupId>
<artifactId>eclipse-collections</artifactId>
<version>9.0.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.collections</groupId>
<artifactId>eclipse-collections-testutils</artifactId>
<version>9.0.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.eclipse.collections</groupId>
<artifactId>eclipse-collections-forkjoin</artifactId>
<version>9.0.0</version>
</dependency>
Gradle
compile 'org.eclipse.collections:eclipse-collections-api:9.0.0'
compile 'org.eclipse.collections:eclipse-collections:9.0.0'
testCompile 'org.eclipse.collections:eclipse-collections-testutils:9.0.0'
compile 'org.eclipse.collections:eclipse-collections-forkjoin:9.0.0'
Ivy
<dependency org="org.eclipse.collections" name="eclipse-collections-api" rev="9.0.0" />
<dependency org="org.eclipse.collections" name="eclipse-collections" rev="9.0.0" />
<dependency org="org.eclipse.collections" name="eclipse-collections-testutils" rev="9.0.0" />
<dependency org="org.eclipse.collections" name="eclipse-collections-forkjoin" rev="9.0.0"/>
OSGi Bundle
Eclipse software repository location: http://download.eclipse.org/collections/9.0.0/repository