@nikhilnanivadekar nikhilnanivadekar released this Sep 23, 2017 · 355 commits to master since this release

Assets 2

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