Eclipse Collections is a collections framework for Java with optimized data structures and a rich, functional and fluent API.

Overview

English | 中文 | Deutsch | Español | Ελληνικά | Français | 日本語 | Norsk (bokmål) | Português-Brasil | Русский | हिंदी

Eclipse Collections is a comprehensive collections library for Java. The library enables productivity and performance by delivering an expressive and efficient set of APIs and types. The iteration protocol was inspired by the Smalltalk collection framework, and the collections are compatible with the Java Collection Framework types.

Eclipse Collections is compatible with Java 8+. Eclipse Collections is a part of the OpenJDK Quality Outreach program, and it is validated for different versions of the OpenJDK.

Why Eclipse Collections?

Learn Eclipse Collections

Eclipse Collections and JDK Compatibility Matrix

EC 7.x.x 8.x.x 9.x.x 10.0.0 10.1.0 10.2.0 10.3.0 10.4.0
JDK 5
JDK 6
JDK 7
JDK 8
JDK 9
JDK 10
JDK 11
JDK 12
JDK 13
JDK 14
JDK 15

Acquiring Eclipse Collections

Maven

<dependency>
  <groupId>org.eclipse.collections</groupId>
  <artifactId>eclipse-collections-api</artifactId>
  <version>10.4.0</version>
</dependency>

<dependency>
  <groupId>org.eclipse.collections</groupId>
  <artifactId>eclipse-collections</artifactId>
  <version>10.4.0</version>
</dependency>

Gradle

implementation 'org.eclipse.collections:eclipse-collections-api:10.4.0'
implementation 'org.eclipse.collections:eclipse-collections:10.4.0'

OSGi Bundle

Eclipse software repository location: http://download.eclipse.org/collections/10.4.0/repository

How to Contribute

We welcome contributions! We accept contributions via pull requests here in GitHub. Please see How To Contribute to get started.

Additional information

Issues
  • Add translation portugues - pt-br.

    Add translation portugues - pt-br.

    opened by Daniel-Dos 57
  • Please  properly license and sign the artifacts contributed to the release train.

    Please properly license and sign the artifacts contributed to the release train.

    Looking at this report, specifically for Eclipse Collections contribution to SimRel:

    https://download.eclipse.org/oomph/archive/simrel/collections.aggrcon/index.html

    It's clear that you folks need to add a proper license to the feature and that you need to sign the feature's jars.

    I've tried to get your attention via this channel:

    https://www.eclipse.org/lists/cross-project-issues-dev/msg17024.html

    But the latest contributions are still in bad shape.

    At some point I'll ask that the planning council remove such non-conforming contributions...

    If there's something I can do to help, feel free to ask.

    opened by merks 41
  • Deploy p2 repository artifacts to maven central.

    Deploy p2 repository artifacts to maven central.

    help wanted wontfix OSGi 
    opened by nikhilnanivadekar 38
  • reduce for primitive iterables

    reduce for primitive iterables

    Hi,

    This is a PR for #312, this is not finished, but I'm making this PR public in order to get feedbacks as soon as possible.

    TODO:

    • [x] add reduce and reduceIfEmpty to primitive iterables with simple implementation as a default method
    • [x] check if there are other collections (than synchronized primitive iterable and synchronized ~~and unmodifiable~~ primitive collection) that needs a specialized implementation of reduce for correctness
    • [x] make DoubleDoubleToDoubleFunction extend DoubleBinaryOperator (as well as with int and long)
    • [x] ~~introduce primitive optionals (for now I use Optional with primitive wrappers)~~
    • [x] elegantly handle overflow problem (sum on int should give long…)
    • [x] ~~add reduceInPlace~~

    I think that after that, this can be merged and then we could open the following new issues:

    • add optimized implementation of reduce and reduceInPlace in the right places
    • other ideas?

    Open questions:

    • I feel like using a default method (as recommended, see https://github.com/eclipse/eclipse-collections/issues/312#issuecomment-438015186) is dangerous because you never know when it is needed to override or not the method. For example I almost missed abstract synchronized and unmodifiable primitive collections. I'm still not sure if I missed other implementations… If I had added the implementation in the abstract class, I would have a clearer view of the class hierarchies impacted by the addition of the method.

    cc @donraab

    opened by victornoel 34
  • Incorrect feature version in p2 repository

    Incorrect feature version in p2 repository

    When loading the p2 repository https://download.eclipse.org/collections/10.2.0/repository the feature version is shown as 10.1.0.v20200211-1558. I suppose it was missed to update the version in the p2 project pom.xml files. Is that correct or are there any additional places where the incorrect version could be?

    I suppose this can't be fixed for 10.2 as it is already released. But for the next 10.3 it should be updated accordingly.

    opened by fipro78 33
  • Add toBiMap() for RichIterable. Fixes #306

    Add toBiMap() for RichIterable. Fixes #306

    Fixes #306

    cc: @donraab

    opened by sendilkumarn 30
  • Add withMap to MutableMap

    Add withMap to MutableMap

    Signed-off-by: Mohammed Aboullaite [email protected]

    This PR adds withMap a requested in #761

    opened by aboullaite 29
  • add jcstress-based tests for concurrent collections

    add jcstress-based tests for concurrent collections

    Tests for bug reported in #424 and partially fixed in #426

    Uses http://openjdk.java.net/projects/code-tools/jcstress/

    To run them in target folder java -jar jcstress.jar

    opened by isopov 25
  • Primitive list stream

    Primitive list stream

    This is not ready to merge. As this is my first PR in this project i would appreciate if anyone could look at this and see if this is the right direction. I am more concerned with the concepts as with code style, etc

    opened by david-gang 25
  • Hindi Translation of Eclipse Collections website #792

    Hindi Translation of Eclipse Collections website #792

    Hindi Translation of Eclipse Collections website #792

    opened by nishantraut 24
  • Bump actions/cache from 2.1.6 to 2.1.7

    Bump actions/cache from 2.1.6 to 2.1.7

    Bumps actions/cache from 2.1.6 to 2.1.7.

    Release notes

    Sourced from actions/cache's releases.

    v2.1.7

    Support 10GB cache upload using the latest version 1.0.8 of @actions/cache

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 0
  • #1109: Improve Pit Coverage

    #1109: Improve Pit Coverage

    opened by goldbal330 0
  • implement subList() on primitive immutable lists

    implement subList() on primitive immutable lists

    implement subList() on primitive immutable lists

    part of #1053

    AbstractImmutableList defines subList() as returning an object of an inner class but here it is implemented as returning an object of the class itself

    opened by sneznaj 1
  • Bump maven-site-plugin from 3.9.0 to 3.9.1

    Bump maven-site-plugin from 3.9.0 to 3.9.1

    Bumps maven-site-plugin from 3.9.0 to 3.9.1.

    Commits
    • 854e6a0 [maven-release-plugin] prepare release maven-site-plugin-3.9.1
    • ec954c8 [MSITE-856] - NullPointer on org.apache.maven.plugins.site.render.SiteMap.rel...
    • d4160ab fix javadoc issues with JDK 8
    • 963cbcb remove unused plugins
    • da10917 remove enforce bytecode now inherited from maven-parent
    • e033328 [MSITE-757] remove shading not used any more
    • 5179a4d [MSITE-863] fix Maven < 3.6.1 compatibility issue
    • 028119f Github Actions
    • 77c7cff [MSITE-863] upgrade m-reporting-exec to show that MSHARED-921 is fixed
    • 36b11f4 [MSITE-863] revert ae9c132, not caused by Java 7 but Maven 3.6.0-
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Bump maven-plugin-api from 2.0 to 3.8.4

    Bump maven-plugin-api from 2.0 to 3.8.4

    Bumps maven-plugin-api from 2.0 to 3.8.4.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • mplement subList() on primitive immutable lists

    mplement subList() on primitive immutable lists

    part of #1053

    opened by sneznaj 1
  • Add test for SumOfShortProcedure

    Add test for SumOfShortProcedure

    Add test for SumOfShortProcedure. Related issue: #991

    opened by szatyinadam 1
  • Infinite loop in probeThree

    Infinite loop in probeThree

    We saw a case where org.eclipse.collections.impl.map.mutable.primitive.LongObjectHashMap#probeThree caused an infinite loop. I was unable to reproduce it directly but managed a reflective case how the situation would look. Looking at the code it seems an infinite loop can be caused if; nextIndex = this.mask(nextIndex + spreadTwo); Results into nextIndex == nextIndex

    Simple reflective test case would be;

     @Test
        public void testCaseUsingRefleciton()
                throws NoSuchFieldException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {
            final LongObjectHashMap<Object> objects = new LongObjectHashMap<>();
            final Field keys = LongObjectHashMap.class.getDeclaredField("keys");
            keys.setAccessible(true);
            keys.set(objects, new long[]{0L, 0L, 0L, 0L,
                    0L, 0L, 0L, 0L,
                    0L, 0L, 0L, 0L,
                    0L, 0L, 0L, 0L,
                    1337L});
    
            final Method probeThree = LongObjectHashMap.class.getDeclaredMethod("probeThree", long.class, int.class);
            probeThree.setAccessible(true);
            probeThree.invoke(objects, 1, 0);
        }
    
    opened by koenr-bc 7
  • Move next major release of Eclipse Collections (12.0) to Java 11

    Move next major release of Eclipse Collections (12.0) to Java 11

    Java 17 will be released on September 14, 2021. Java 11 has been out since September 25, 2018. Java 8 was released in March, 2014.

    Eclipse Collections major releases are happening roughly every two years, so when we release 11.0 in October 2021, Eclipse Collections 12.0 would likely have a target release date of Q4 2023. This would put the EC 12.0 release around the time of the Java 21 release schedule, and 6 months before Java 8 celebrates its 10th anniversary.

    I believe 11.0 should be the last major version of Eclipse Collections compiled with Java 8. We can have 1 -3 minor releases of 11.x compiling on Java 8, but then should target a 12.0 release on Java 11.

    Thoughts?

    committer discussion 
    opened by donraab 3
  • Bump tycho-version from 1.7.0 to 2.4.0

    Bump tycho-version from 1.7.0 to 2.4.0

    Bumps tycho-version from 1.7.0 to 2.4.0. Updates tycho-core from 1.7.0 to 2.4.0

    Changelog

    Sourced from tycho-core's changelog.

    2.4.0

    Support resolving of JUnit Classpath Container

    It is now possible to resolve the JDT 'JUnit Classpath Container', for this do the following:

    • add the 'JUnit Classpath Container' to the classpath of your eclipse project
    • make sure you check in the .classpath file
    • Now you can use the Junit classes without explcitly adding them to your bundle via require-bundle/import package

    For an example take a look at the integration tests

    Execute unit-tests with eclipse-plugin packaging

    Before unit-tests are only executed for eclipse-test-plugin packaging types. Beside that it was only possible to execute them as part of tycho-surefire (what executes them inside an OSGi runtime) in the integration-test phase (making them actually some kind of integration test).

    From now on this restriction is no longer true and one is able to execute unit-test with maven-surefire as well as integration-tests with tycho-failfast plugin. This works the following way:

    • create a source-folder in your eclipse-plugin packaged project and mark them as a contains test-sources in the classpath settings:grafik
    • Create a unit-test inside that folder, either name it with any of the default-pattern maven-surefire plugin of or configure them explicitly.
    • Include maven-surefire plugin configuration in your pom to select the approriate test-providers
    <plugin>
    	<groupId>org.apache.maven.plugins</groupId>
    	<artifactId>maven-surefire-plugin</artifactId>
    	<version>3.0.0-M5</version>
    	<dependencies>
    		<dependency>
    			<groupId>org.apache.maven.surefire</groupId>
    			<artifactId>surefire-junit47</artifactId>
    			<version>3.0.0-M5</version>
    		</dependency>
    	</dependencies>
    </plugin>
    
    • run your it with mvn test

    Tycho also includes a new tycho-failsafe mojo, that is similar to the maven one:

    • it executes at the integration-test phase but do not fail the build if a test fails, instead a summary file is written
    • the outcome of the tests are checked in the verify phase (and fail the build there if neccesary)
    • this allows to hook some setup/teardown mojos (e.g. start webservers, ...) in the pre-integration-test phase and to safly tear them down in the post-integration test phase (thus the name 'failsafe' see tycho-failsafe-faq for some more details

    Given you have the above setup you create an integration-test (executed in an OSGi runtime like traditional tycho-surefire mojo) as following:

    • create a new test that mathes the pattern *IT.java (or configure a different pattern that do not intersects with the surefire test pattern)
    • run your it with mvn verify

    :warning: If you where previously using -Dtest=.... on the root level of your build tree it might now be neccesary to also include -Dsurefire.failIfNoSpecifiedTests=false as maven-surefire might otherwhise complain about

    No tests were executed! (Set -DfailIfNoTests=false to ignore this error.)

    for your eclipse-plugin packaged project if they do not match anything (the error message is a bit missleading, thsi is tracked in SUREFIRE-1910).

    ... (truncated)

    Commits
    • 4335d09 Issue #183 - avoid parallel execution of compiler (#191)
    • a3e992f MacOS means Cocoa
    • f948e23 #179 Fix false detection of 'clean-only' builds (regression from #166)
    • 654312f Release 2.4.0
    • 0d9b22f #177 Automatically translate maven-license information to osgi (#178)
    • ce14ac0 #166: consider all clean-lifecylce phases and add release-notes entry (#172)
    • b9e57ff [Doc] improve ReadMe and Contributing (Debugging- and Snapshot-section) (#175)
    • 3caa87d Fix #170 - AllKnownEEsResolutionHints is missing equals/hashcode causing
    • c339cbe #166: Skip Tycho dependency-resolution for clean-only builds by default
    • 3ee6e74 Issue #114 - rename to
    • Additional commits viewable in compare view

    Updates tycho-p2-facade from 1.7.0 to 2.4.0

    Updates tycho-sourceref-jgit from 1.7.0 to 2.4.0

    Updates tycho-buildtimestamp-jgit from 1.7.0 to 2.4.0

    Updates tycho-maven-plugin from 1.7.0 to 2.4.0

    Changelog

    Sourced from tycho-maven-plugin's changelog.

    2.4.0

    Support resolving of JUnit Classpath Container

    It is now possible to resolve the JDT 'JUnit Classpath Container', for this do the following:

    • add the 'JUnit Classpath Container' to the classpath of your eclipse project
    • make sure you check in the .classpath file
    • Now you can use the Junit classes without explcitly adding them to your bundle via require-bundle/import package

    For an example take a look at the integration tests

    Execute unit-tests with eclipse-plugin packaging

    Before unit-tests are only executed for eclipse-test-plugin packaging types. Beside that it was only possible to execute them as part of tycho-surefire (what executes them inside an OSGi runtime) in the integration-test phase (making them actually some kind of integration test).

    From now on this restriction is no longer true and one is able to execute unit-test with maven-surefire as well as integration-tests with tycho-failfast plugin. This works the following way:

    • create a source-folder in your eclipse-plugin packaged project and mark them as a contains test-sources in the classpath settings:grafik
    • Create a unit-test inside that folder, either name it with any of the default-pattern maven-surefire plugin of or configure them explicitly.
    • Include maven-surefire plugin configuration in your pom to select the approriate test-providers
    <plugin>
    	<groupId>org.apache.maven.plugins</groupId>
    	<artifactId>maven-surefire-plugin</artifactId>
    	<version>3.0.0-M5</version>
    	<dependencies>
    		<dependency>
    			<groupId>org.apache.maven.surefire</groupId>
    			<artifactId>surefire-junit47</artifactId>
    			<version>3.0.0-M5</version>
    		</dependency>
    	</dependencies>
    </plugin>
    
    • run your it with mvn test

    Tycho also includes a new tycho-failsafe mojo, that is similar to the maven one:

    • it executes at the integration-test phase but do not fail the build if a test fails, instead a summary file is written
    • the outcome of the tests are checked in the verify phase (and fail the build there if neccesary)
    • this allows to hook some setup/teardown mojos (e.g. start webservers, ...) in the pre-integration-test phase and to safly tear them down in the post-integration test phase (thus the name 'failsafe' see tycho-failsafe-faq for some more details

    Given you have the above setup you create an integration-test (executed in an OSGi runtime like traditional tycho-surefire mojo) as following:

    • create a new test that mathes the pattern *IT.java (or configure a different pattern that do not intersects with the surefire test pattern)
    • run your it with mvn verify

    :warning: If you where previously using -Dtest=.... on the root level of your build tree it might now be neccesary to also include -Dsurefire.failIfNoSpecifiedTests=false as maven-surefire might otherwhise complain about

    No tests were executed! (Set -DfailIfNoTests=false to ignore this error.)

    for your eclipse-plugin packaged project if they do not match anything (the error message is a bit missleading, thsi is tracked in SUREFIRE-1910).

    ... (truncated)

    Commits
    • 4335d09 Issue #183 - avoid parallel execution of compiler (#191)
    • a3e992f MacOS means Cocoa
    • f948e23 #179 Fix false detection of 'clean-only' builds (regression from #166)
    • 654312f Release 2.4.0
    • 0d9b22f #177 Automatically translate maven-license information to osgi (#178)
    • ce14ac0 #166: consider all clean-lifecylce phases and add release-notes entry (#172)
    • b9e57ff [Doc] improve ReadMe and Contributing (Debugging- and Snapshot-section) (#175)
    • 3caa87d Fix #170 - AllKnownEEsResolutionHints is missing equals/hashcode causing
    • c339cbe #166: Skip Tycho dependency-resolution for clean-only builds by default
    • 3ee6e74 Issue #114 - rename to
    • Additional commits viewable in compare view

    Updates target-platform-configuration from 1.7.0 to 2.4.0

    Changelog

    Sourced from target-platform-configuration's changelog.

    2.4.0

    Support resolving of JUnit Classpath Container

    It is now possible to resolve the JDT 'JUnit Classpath Container', for this do the following:

    • add the 'JUnit Classpath Container' to the classpath of your eclipse project
    • make sure you check in the .classpath file
    • Now you can use the Junit classes without explcitly adding them to your bundle via require-bundle/import package

    For an example take a look at the integration tests

    Execute unit-tests with eclipse-plugin packaging

    Before unit-tests are only executed for eclipse-test-plugin packaging types. Beside that it was only possible to execute them as part of tycho-surefire (what executes them inside an OSGi runtime) in the integration-test phase (making them actually some kind of integration test).

    From now on this restriction is no longer true and one is able to execute unit-test with maven-surefire as well as integration-tests with tycho-failfast plugin. This works the following way:

    • create a source-folder in your eclipse-plugin packaged project and mark them as a contains test-sources in the classpath settings:grafik
    • Create a unit-test inside that folder, either name it with any of the default-pattern maven-surefire plugin of or configure them explicitly.
    • Include maven-surefire plugin configuration in your pom to select the approriate test-providers
    <plugin>
    	<groupId>org.apache.maven.plugins</groupId>
    	<artifactId>maven-surefire-plugin</artifactId>
    	<version>3.0.0-M5</version>
    	<dependencies>
    		<dependency>
    			<groupId>org.apache.maven.surefire</groupId>
    			<artifactId>surefire-junit47</artifactId>
    			<version>3.0.0-M5</version>
    		</dependency>
    	</dependencies>
    </plugin>
    
    • run your it with mvn test

    Tycho also includes a new tycho-failsafe mojo, that is similar to the maven one:

    • it executes at the integration-test phase but do not fail the build if a test fails, instead a summary file is written
    • the outcome of the tests are checked in the verify phase (and fail the build there if neccesary)
    • this allows to hook some setup/teardown mojos (e.g. start webservers, ...) in the pre-integration-test phase and to safly tear them down in the post-integration test phase (thus the name 'failsafe' see tycho-failsafe-faq for some more details

    Given you have the above setup you create an integration-test (executed in an OSGi runtime like traditional tycho-surefire mojo) as following:

    • create a new test that mathes the pattern *IT.java (or configure a different pattern that do not intersects with the surefire test pattern)
    • run your it with mvn verify

    :warning: If you where previously using -Dtest=.... on the root level of your build tree it might now be neccesary to also include -Dsurefire.failIfNoSpecifiedTests=false as maven-surefire might otherwhise complain about

    No tests were executed! (Set -DfailIfNoTests=false to ignore this error.)

    for your eclipse-plugin packaged project if they do not match anything (the error message is a bit missleading, thsi is tracked in SUREFIRE-1910).

    ... (truncated)

    Commits
    • 4335d09 Issue #183 - avoid parallel execution of compiler (#191)
    • a3e992f MacOS means Cocoa
    • f948e23 #179 Fix false detection of 'clean-only' builds (regression from #166)
    • 654312f Release 2.4.0
    • 0d9b22f #177 Automatically translate maven-license information to osgi (#178)
    • ce14ac0 #166: consider all clean-lifecylce phases and add release-notes entry (#172)
    • b9e57ff [Doc] improve ReadMe and Contributing (Debugging- and Snapshot-section) (#175)
    • 3caa87d Fix #170 - AllKnownEEsResolutionHints is missing equals/hashcode causing
    • c339cbe #166: Skip Tycho dependency-resolution for clean-only builds by default
    • 3ee6e74 Issue #114 - rename to
    • Additional commits viewable in compare view

    Updates tycho-packaging-plugin from 1.7.0 to 2.4.0

    Changelog

    Sourced from tycho-packaging-plugin's changelog.

    2.4.0

    Support resolving of JUnit Classpath Container

    It is now possible to resolve the JDT 'JUnit Classpath Container', for this do the following:

    • add the 'JUnit Classpath Container' to the classpath of your eclipse project
    • make sure you check in the .classpath file
    • Now you can use the Junit classes without explcitly adding them to your bundle via require-bundle/import package

    For an example take a look at the integration tests

    Execute unit-tests with eclipse-plugin packaging

    Before unit-tests are only executed for eclipse-test-plugin packaging types. Beside that it was only possible to execute them as part of tycho-surefire (what executes them inside an OSGi runtime) in the integration-test phase (making them actually some kind of integration test).

    From now on this restriction is no longer true and one is able to execute unit-test with maven-surefire as well as integration-tests with tycho-failfast plugin. This works the following way:

    • create a source-folder in your eclipse-plugin packaged project and mark them as a contains test-sources in the classpath settings:grafik
    • Create a unit-test inside that folder, either name it with any of the default-pattern maven-surefire plugin of or configure them explicitly.
    • Include maven-surefire plugin configuration in your pom to select the approriate test-providers
    <plugin>
    	<groupId>org.apache.maven.plugins</groupId>
    	<artifactId>maven-surefire-plugin</artifactId>
    	<version>3.0.0-M5</version>
    	<dependencies>
    		<dependency>
    			<groupId>org.apache.maven.surefire</groupId>
    			<artifactId>surefire-junit47</artifactId>
    			<version>3.0.0-M5</version>
    		</dependency>
    	</dependencies>
    </plugin>
    
    • run your it with mvn test

    Tycho also includes a new tycho-failsafe mojo, that is similar to the maven one:

    • it executes at the integration-test phase but do not fail the build if a test fails, instead a summary file is written
    • the outcome of the tests are checked in the verify phase (and fail the build there if neccesary)
    • this allows to hook some setup/teardown mojos (e.g. start webservers, ...) in the pre-integration-test phase and to safly tear them down in the post-integration test phase (thus the name 'failsafe' see tycho-failsafe-faq for some more details

    Given you have the above setup you create an integration-test (executed in an OSGi runtime like traditional tycho-surefire mojo) as following:

    • create a new test that mathes the pattern *IT.java (or configure a different pattern that do not intersects with the surefire test pattern)
    • run your it with mvn verify

    :warning: If you where previously using -Dtest=.... on the root level of your build tree it might now be neccesary to also include -Dsurefire.failIfNoSpecifiedTests=false as maven-surefire might otherwhise complain about

    No tests were executed! (Set -DfailIfNoTests=false to ignore this error.)

    for your eclipse-plugin packaged project if they do not match anything (the error message is a bit missleading, thsi is tracked in SUREFIRE-1910).

    ... (truncated)

    Commits
    • 4335d09 Issue #183 - avoid parallel execution of compiler (#191)
    • a3e992f MacOS means Cocoa
    • f948e23 #179 Fix false detection of 'clean-only' builds (regression from #166)
    • 654312f Release 2.4.0
    • 0d9b22f #177 Automatically translate maven-license information to osgi (#178)
    • ce14ac0 #166: consider all clean-lifecylce phases and add release-notes entry (#172)
    • b9e57ff [Doc] improve ReadMe and Contributing (Debugging- and Snapshot-section) (#175)
    • 3caa87d Fix #170 - AllKnownEEsResolutionHints is missing equals/hashcode causing
    • c339cbe #166: Skip Tycho dependency-resolution for clean-only builds by default
    • 3ee6e74 Issue #114 - rename to
    • Additional commits viewable in compare view

    Updates tycho-p2-plugin from 1.7.0 to 2.4.0

    Updates tycho-p2-director-plugin from 1.7.0 to 2.4.0

    Updates tycho-p2-repository-plugin from 1.7.0 to 2.4.0

    Updates tycho-source-plugin from 1.7.0 to 2.4.0

    Changelog

    Sourced from tycho-source-plugin's changelog.

    2.4.0

    Support resolving of JUnit Classpath Container

    It is now possible to resolve the JDT 'JUnit Classpath Container', for this do the following:

    • add the 'JUnit Classpath Container' to the classpath of your eclipse project
    • make sure you check in the .classpath file
    • Now you can use the Junit classes without explcitly adding them to your bundle via require-bundle/import package

    For an example take a look at the integration tests

    Execute unit-tests with eclipse-plugin packaging

    Before unit-tests are only executed for eclipse-test-plugin packaging types. Beside that it was only possible to execute them as part of tycho-surefire (what executes them inside an OSGi runtime) in the integration-test phase (making them actually some kind of integration test).

    From now on this restriction is no longer true and one is able to execute unit-test with maven-surefire as well as integration-tests with tycho-failfast plugin. This works the following way:

    • create a source-folder in your eclipse-plugin packaged project and mark them as a contains test-sources in the classpath settings:grafik
    • Create a unit-test inside that folder, either name it with any of the default-pattern maven-surefire plugin of or configure them explicitly.
    • Include maven-surefire plugin configuration in your pom to select the approriate test-providers
    <plugin>
    	<groupId>org.apache.maven.plugins</groupId>
    	<artifactId>maven-surefire-plugin</artifactId>
    	<version>3.0.0-M5</version>
    	<dependencies>
    		<dependency>
    			<groupId>org.apache.maven.surefire</groupId>
    			<artifactId>surefire-junit47</artifactId>
    			<version>3.0.0-M5</version>
    		</dependency>
    	</dependencies>
    </plugin>
    
    • run your it with mvn test

    Tycho also includes a new tycho-failsafe mojo, that is similar to the maven one:

    • it executes at the integration-test phase but do not fail the build if a test fails, instead a summary file is written
    • the outcome of the tests are checked in the verify phase (and fail the build there if neccesary)
    • this allows to hook some setup/teardown mojos (e.g. start webservers, ...) in the pre-integration-test phase and to safly tear them down in the post-integration test phase (thus the name 'failsafe' see tycho-failsafe-faq for some more details

    Given you have the above setup you create an integration-test (executed in an OSGi runtime like traditional tycho-surefire mojo) as following:

    • create a new test that mathes the pattern *IT.java (or configure a different pattern that do not intersects with the surefire test pattern)
    • run your it with mvn verify

    :warning: If you where previously using -Dtest=.... on the root level of your build tree it might now be neccesary to also include -Dsurefire.failIfNoSpecifiedTests=false as maven-surefire might otherwhise complain about

    No tests were executed! (Set -DfailIfNoTests=false to ignore this error.)

    for your eclipse-plugin packaged project if they do not match anything (the error message is a bit missleading, thsi is tracked in SUREFIRE-1910).

    ... (truncated)

    Commits
    • 4335d09 Issue #183 - avoid parallel execution of compiler (#191)
    • a3e992f MacOS means Cocoa
    • f948e23 #179 Fix false detection of 'clean-only' builds (regression from #166)
    • 654312f Release 2.4.0
    • 0d9b22f #177 Automatically translate maven-license information to osgi (#178)
    • ce14ac0 #166: consider all clean-lifecylce phases and add release-notes entry (#172)
    • b9e57ff [Doc] improve ReadMe and Contributing (Debugging- and Snapshot-section) (#175)
    • 3caa87d Fix #170 - AllKnownEEsResolutionHints is missing equals/hashcode causing
    • c339cbe #166: Skip Tycho dependency-resolution for clean-only builds by default
    • 3ee6e74 Issue #114 - rename to
    • Additional commits viewable in compare view

    Updates tycho-source-feature-plugin from 1.7.0 to 2.4.0

    Updates tycho-custom-bundle-plugin from 1.7.0 to 2.4.0

    Updates tycho-p2-extras-plugin from 1.7.0 to 2.4.0

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
Releases(11.0.0)
  • 11.0.0(Nov 29, 2021)

    This is the 11.0.0 major release.

    Central theme of this release is addition of new APIs, features as requested by the community and decrease Tech Debt.

    The Eclipse Collections team gives a huge thank you to everyone who participated in this release.

    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.

    Note


    We have taken all the measures to ensure all features are captured in the release notes. However, release notes compilation is manual, so it is possible that a commit might be missed. For a comprehensive list of commits please go through the commit log.

    Acquiring Eclipse Collections

    Maven

    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-api</artifactId>
      <version>11.0.0</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections</artifactId>
      <version>11.0.0</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-testutils</artifactId>
      <version>11.0.0</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-forkjoin</artifactId>
      <version>11.0.0</version>
    </dependency>
    

    Gradle

    implementation 'org.eclipse.collections:eclipse-collections-api:11.0.0'
    implementation 'org.eclipse.collections:eclipse-collections:11.0.0'
    testImplementation 'org.eclipse.collections:eclipse-collections-testutils:11.0.0'
    implementation 'org.eclipse.collections:eclipse-collections-forkjoin:11.0.0'
    

    Ivy

    <dependency org="org.eclipse.collections" name="eclipse-collections-api" rev="11.0.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections" rev="11.0.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-testutils" rev="11.0.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-forkjoin" rev="11.0.0"/>
    

    OSGi Bundle

    Eclipse software repository location: http://download.eclipse.org/collections/11.0.0/repository

    Source code(tar.gz)
    Source code(zip)
  • 10.4.0(Aug 23, 2020)

    This is the 10.4.0 minor release. This release includes mandatory fixes to make the library compatible with JDK-15.

    Changes


    • Added CharAdapter.isEmpty(), CodePointAdapter.isEmpty(), CodePointList.isEmpty(), as JDK-15 introduced CharSequence.isEmpty().
    • Fixed Javadoc errors for MapIterable, Multimaps, ImmutablePrimitiveBagFactory, MutablePrimitiveBagFactory, ImmutablePrimitiveListFactory, MutablePrimitiveListFactory, ImmutablePrimitiveSetFactory, MutablePrimitiveSetFactory, ImmutablePrimitiveStackFactory, MutablePrimitiveStackFactory.

    Acquiring Eclipse Collections

    Maven

    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-api</artifactId>
      <version>10.4.0</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections</artifactId>
      <version>10.4.0</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-testutils</artifactId>
      <version>10.4.0</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-forkjoin</artifactId>
      <version>10.4.0</version>
    </dependency>
    

    Gradle

    implementation 'org.eclipse.collections:eclipse-collections-api:10.4.0'
    implementation 'org.eclipse.collections:eclipse-collections:10.4.0'
    testImplementation 'org.eclipse.collections:eclipse-collections-testutils:10.4.0'
    implementation 'org.eclipse.collections:eclipse-collections-forkjoin:10.4.0'
    

    Ivy

    <dependency org="org.eclipse.collections" name="eclipse-collections-api" rev="10.4.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections" rev="10.4.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-testutils" rev="10.4.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-forkjoin" rev="10.4.0"/>
    

    OSGi Bundle

    Eclipse software repository location: http://download.eclipse.org/collections/10.4.0/repository

    Source code(tar.gz)
    Source code(zip)
  • 10.3.0(Aug 9, 2020)

    This is the 10.3.0 minor release. Even though this is a minor release, by no means the release was minor. This release is feature packed with numerous contributions from many contributors. This release is to provide new features requested by the community, various optimizations, reduce tech debt, and includes OSGi integration improvements.

    The Eclipse Collections team gives a huge thank you to everyone who participated in this release.

    New Functionality


    • Implemented RichIterable.containsBy().
    • Implemented RichIterable.flatCollectPrimitive().
    • Implemented ListIterable.forEachInBoth().
    • Implemented MapIterable.getOrDefault() to allow easy inter-op.
    • Implemented MapIterable.aggregateBy() which can aggregate on key and value.
    • Implemented MutableMap.withMap().
    • Implemented primitiveIterable.toArray() which takes an array as a parameter to store the elements of the iterable.
    • Implemented primitiveLists.withInitialCapacity() and primitiveSets.withInitialCapacity().
    • Implemented primitiveList.wrapCopy() to create a list by first copying the array passed in.
    • Implemented MutablePrimitiveList.shuffleThis().
    • Implemented MutablePrimitiveList.swap().
    • Implemented variant of MutablePrimitiveList.sortThis() which takes Comparator as input.
    • Implemented variants of MutablePrimitiveList.sortThisBy() which takes primitiveToObjectFunction and Comparator as inputs.
    • Made primitive*HashMap.keySet() serializable.
    • Implemented singly-linked ImmutableStack.
    • Implemented LongInterval.
    • Implemented IntInterval.subList()
    • Implemented Interval.fromToExclusive().
    • Implemented Triples.
    • Implemented Tuples.identicalTwin(), Tuples.identicalTriplet().
    • Implemented missing methods in Multimap factory.
    • Implemented Comparators.byFunctionNullsFirst(), Comparators.byFunctionNullsLast().
    • Implemented Bags.ofOccurrences() and Bags.withOccurrences().
    • Added Hindi Translation of Eclipse Collections website.

    Tech Debt Reduction


    • Replaced usage of org.eclipse.collections.impl.factory with org.eclipse.collections.api.factory wherever possible.
    • Added default method for RichIterable.aggregateBy() that takes a target Map.
    • Pulled up RichIterable.groupByUniqueKey() as default methods.
    • Pulled up implementations of aggregateBy() as default methods.
    • Pulled up implementations of with(), without(), withAll(), withoutAll() as default methods.
    • Pulled up OrderedIterable.toStack() as a default method.
    • Pulled up ListIterable.binarySearch() as default methods.
    • Simplified implementation of RichIterable.containsBy().
    • Added missing tests for MapIterable.getIfAbsent*().
    • Added missing tests for MultimapsTest.
    • Added missing tests for primitiveIterable.reduceIfEmpty().
    • Optimized ImmutableListFactoryImpl.toImmutable() by not creating a redundant array copy
    • Optimized Bag.aggregateBy() to use forEachWithOccurrences.
    • Optimized primitiveList.toImmutable() by not creating a redundant array copy.
    • Optimized collect methods for primitiveImmutableSingletonBag, primitiveImmutableSingletonSet, and primitiveImmutableSingletonList.
    • Optimized BooleanArrayList.removeIf().
    • Optimized IntInterval.size() and Interval.size() by caching size.
    • Optimized IntInterval.sum(), IntInterval.mean(), and IntInterval.average() by using direct formulas.
    • Removed duplicate code for implementations of aggregateBy().
    • Removed duplicate methods in AbstractMutableBagIterable and AbstractImmutableBagIterable that have been moved up as default methods.
    • Removed duplicate overrides for forEach().
    • Added Javadocs for primitivePrimitiveMaps, primitiveObjectMaps, objectPrimitiveMaps, primitiveValuesMaps and their hierarchy.
    • Improved documentation of Function2, Function3, and MutableCollection.injectIntoWith.
    • Enabled code generation of BooleanArrayStack from the common primitive stack template.
    • Added missing @Override annotations for tap().
    • Added and fixed Checkstyle checks for comma-separated lists that are partially wrapped.
    • Fixed Javadoc errors and warnings.
    • Fixed whitespace and line-wrapping violations.
    • Fixed inspections violations.
    • Fixed gradle dependency settings in website.

    OSGi Integration Improvements


    • Added OSGi metadata.
    • Fixed OSGi metadata to have sun.misc be an optional import package.
    • Fixed project versions published to p2 repository.

    Build Changes


    • Migrated builds to GitHub Actions.
    • Removed Travis builds.
    • Added initial integration with Pitest for mutation testing.
    • Upgraded Maven to 3.6.3.
    • Upgraded dependencies used by tests.
    • Upgraded CheckStyle to 8.34
    • Upgraded Tycho plugin to 1.7.0
    • Upgraded EBR plugin to 1.2.0.
    • Upgraded versions of various Maven plugins.

    Note


    We have taken all the measures to ensure all features are captured in the release notes. However, release notes compilation is manual, so it is possible that a commit might be missed. For a comprehensive list of commits please go through the commit log.

    Acquiring Eclipse Collections

    Maven

    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-api</artifactId>
      <version>10.3.0</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections</artifactId>
      <version>10.3.0</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-testutils</artifactId>
      <version>10.3.0</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-forkjoin</artifactId>
      <version>10.3.0</version>
    </dependency>
    

    Gradle

    implementation 'org.eclipse.collections:eclipse-collections-api:10.3.0'
    implementation 'org.eclipse.collections:eclipse-collections:10.3.0'
    testImplementation 'org.eclipse.collections:eclipse-collections-testutils:10.3.0'
    implementation 'org.eclipse.collections:eclipse-collections-forkjoin:10.3.0'
    

    Ivy

    <dependency org="org.eclipse.collections" name="eclipse-collections-api" rev="10.3.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections" rev="10.3.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-testutils" rev="10.3.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-forkjoin" rev="10.3.0"/>
    

    OSGi Bundle

    Eclipse software repository location: http://download.eclipse.org/collections/10.3.0/repository

    Source code(tar.gz)
    Source code(zip)
  • 10.2.0(Feb 16, 2020)

    This is the 10.2.0 minor release. Central theme of this release is to fix bugs for edge cases, reduce tech debt, optimize iteration patterns and provide user requested functionality to ensure better usability for higher order use cases of Eclipse Collections.

    New Functionality

    • Exposed the allocateTable method as protected in Primitive Maps and Primitive Sets.

    Bug Fixes

    • Fixed size edge case issues in Interval and IntInterval.

    Tech Debt Reduction

    • Optimized removeIf on UnifiedMap.
    • Implemented removeIf as a default method on MutableMapIterable.
    • Replaced usages of Comparators.nullSafeEquals() with Objects.equals().

    Build Changes

    • Moved some maven configuration from .travis.yml to jvm.config.
    • Changed Maven plugin repository to use https.

    Acquiring Eclipse Collections

    Maven

    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-api</artifactId>
      <version>10.2.0</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections</artifactId>
      <version>10.2.0</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-testutils</artifactId>
      <version>10.2.0</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-forkjoin</artifactId>
      <version>10.2.0</version>
    </dependency>
    

    Gradle

    compile 'org.eclipse.collections:eclipse-collections-api:10.2.0'
    compile 'org.eclipse.collections:eclipse-collections:10.2.0'
    testCompile 'org.eclipse.collections:eclipse-collections-testutils:10.2.0'
    compile 'org.eclipse.collections:eclipse-collections-forkjoin:10.2.0'
    

    Ivy

    <dependency org="org.eclipse.collections" name="eclipse-collections-api" rev="10.2.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections" rev="10.2.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-testutils" rev="10.2.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-forkjoin" rev="10.2.0"/>
    

    OSGi Bundle

    Eclipse software repository location: http://download.eclipse.org/collections/10.2.0/repository

    Source code(tar.gz)
    Source code(zip)
  • 10.1.0(Dec 7, 2019)

    This is the 10.1.0 minor release. Central theme of this release is to fix issues identified for SimRel repository. There are also few new features, enhancements and bug fixes.

    New Functionality

    • Implemented RichIterable.groupByAndCollect().
    • Implemented NoopProcedure.

    Bug Fixes

    • Fixed IntInterval.fromToBy() for same values of from and to with a negative step.
    • Fixed IntInterval.injectInto() for same values of from and to with a negative step.

    Tech Debt Reduction

    • Added examples for creating and modifying Immutable Collections in documentation.
    • Changed internal variable name in Multimaps class for ImmutableSortedBagFactory
    • Fixed generated Eclipse features for p2 repository to ensure correct EPLv1 license is downloaded.
    • Fixed generated Eclipse features for p2 repository to ensure correct signatures on artifacts.
    • Fixed repository path for Eclipse features.

    Build Changes

    • Fixed configuration to gpg sign plugin to work on new CI infrastructure.
    • Improved .gitignore for maven to reduce noise.
    • Modified build to use maven's --no-transfer-progress option to reduce noise.
    • Upgraded maven plugins.

    Acquiring Eclipse Collections

    Maven

    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-api</artifactId>
      <version>10.1.0</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections</artifactId>
      <version>10.1.0</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-testutils</artifactId>
      <version>10.1.0</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-forkjoin</artifactId>
      <version>10.1.0</version>
    </dependency>
    

    Gradle

    compile 'org.eclipse.collections:eclipse-collections-api:10.1.0'
    compile 'org.eclipse.collections:eclipse-collections:10.1.0'
    testCompile 'org.eclipse.collections:eclipse-collections-testutils:10.1.0'
    compile 'org.eclipse.collections:eclipse-collections-forkjoin:10.1.0'
    

    Ivy

    <dependency org="org.eclipse.collections" name="eclipse-collections-api" rev="10.1.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections" rev="10.1.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-testutils" rev="10.1.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-forkjoin" rev="10.1.0"/>
    

    OSGi Bundle

    Eclipse software repository location: http://download.eclipse.org/collections/10.1.0/repository

    Source code(tar.gz)
    Source code(zip)
  • 10.0.0(Jul 14, 2019)

    This is the 10.0.0 major release. Central theme of this release is addition of new APIs, features as requested by the community and decrease Tech Debt. This is our yearly major release.

    New Functionality

    • Changed collection factories to be services that get loaded by the ServiceLoader in the API package.
    • Changed RichIterable.groupByUniqueKey() so that it's target extends MutableMapIterable instead of MutableMap.
    • Implemented UnmodifiableMutableOrderedMap.
    • Added <primitive1><primitive2>To<primitive1>Function.
    • Added specialized MultiReader interfaces for List, Set and Bag to improve the interface hierarchy.
    • Implemented RichIterable.getAny().
    • Implemented RichIterable.countByEach().
    • Implemented RichIterable.toMap() with target.
    • Implemented RichIterable.toBiMap().
    • Implemented MutableMapIterable.removeIf().
    • Implemented MutableMapIterable.removeAllKeys().
    • Implemented Bag.collectWithOccurrences(ObjectIntToObjectFunction).
    • Implemented Multimap.collectKeyMultiValues().
    • Implemented MutableMultimap.getIfAbsentPutAll().
    • Implemented UnifiedSetWithHashingStrategy.addOrReplace(Object).
    • Implemented LazyIterate.cartesianProduct().
    • Added override for replaceAll() and sort() on List implementations.
    • Implemented fromStream(Stream) on Mutable Collection Factories and Immutable Collection Factories.
    • Implemented ImmutableSortedBagMultimapFactory for Multimaps
    • Implemented HashingStrategySets.ofInitialCapacity() and HashingStrategySets.withInitialCapacity().
    • Implemented a Map factory method that takes a Map as a parameter
    • Implemented PrimitiveIterable.reduce() and PrimitiveIterable.reduceIfEmpty().
    • Implemented PrimitiveList.primitiveStream().
    • Implemented PrimitiveMap.updateValues().
    • Implemented factory methods to convert Iterable<BoxedPrimitive> to PrimitiveList, PrimitiveSet, PrimitiveBag, PrimitiveStack.
    • Implemented ofInitialCapacity() and withInitialCapacity() to Primitive Map Factories.
    • Added ability to create ObjectPrimitiveMap, PrimitiveObjectMap, PrimitivePrimitiveMap from Iterable.

    Optimizations

    • Revamped and standardized resize/rehash for all primitive hash structures.

    Bug Fixes

    • Fixed ImmutableDoubletonMap.flipUniqueValues() to throw exception when it has duplicates.
    • Added missing toSentinel() calls in UnifiedSet.put(), UnifiedSetWithHashingStrategy.put().
    • Added validation in FastList for initial capacity < 0.

    Tech Debt Reduction

    • Fixed SerializeTestHelper to use try-with-resources.
    • Reduced duplicate readlock and writelock code in MultiReaderFastList, MultiReaderHashBag and MultiReaderUnifiedSet.
    • Replaced Apache commons-codec by Java 8 Base64 in Verify.
    • Added missing bounded wildcards on generic types.
    • Added wildcard types in MutableMapIterable.putPair(), MutableMapIterable.add(), MutableMultimap.putAllPairs() and MutableMultimap.add().
    • Fixed generics on MultiReaderFastList.newList().
    • Added overrides for methods in MutableOrderedMap.
    • Fixed assignment order in constructor of IntIntervalSpliterator.
    • Removed unnecessary casts, redundant type arguments.
    • Fixed invalid cast in UnifiedSet.trimToSize().
    • Changed Boxed result array to Primitive array to avoid unnecessary boxing in Primitive reduce.
    • Fixed several inspection violations, checkstyle violations and static analysis violations to increase code hygiene.
    • Fixed incorrect org.eclipse.collections.api.list api doc.
    • Fixed Javadoc lint errors, legacy Javadoc to update references to Eclipse Collections.
    • Moved implementations for forEach(), toSortedListBy(), toSortedSetBy(), toSortedBagsBy(), toSortedMapBy(), toArray(), countBy(), countByWith(), selectUnique(), flatCollectWith(), reverseForEach(), reverseForEachWithIndex() as default methods to interfaces.
    • Moved implementations for tap(), select(), selectWith(), reject(), rejectWith(), collect(), collectWith(), collectIf(), flatCollect(), toImmutable(), toReversed(), reverseThis(), shuffleThis() to MutableList as default implementations.
    • Removed default implementations for RichIterable.toSortedMapBy(), MutableListFactory.ofInitialCapacity(), selectUnique() from all Bag interfaces viz. Bag, ImmutableBag, ImmutableBagIterable, ImmutablePrimitiveBag, ImmutableSortedBag, MutableBag, MutableBagIterable, MutablePrimitiveBag, MutableSortedBag, PrimitiveBag, SortedBag, UnsortedBag. These were added to allow inclusion in minor release.
    • Changed collection constructor factories from enums to singleton classes.
    • Upgraded CollectPrimitiveProcedure to be generated at build time by using stg file.
    • Added SerializationTest for CollectPrimitiveProcedure.
    • Added test coverage for IntInterval, MultiReaderHashBag, CharAdapter, CodePointAdapter, CodePointList, Lists, Primitive Factories, RichIterable.minOptional(), RichIterable.maxOptional(), RichIterable.zip(), MapIterable.detectOptional, MapIterable.detectWithOptional and MutableMapIterable.removeIf().
    • Updated IntListJMHTest to include benchmarks using IntStream.
    • Reduced benchmark errors by consuming every object created in a benchmark to avoid DCE.

    Removed Functionality

    • Removed unused ant build module.
    • Removed deprecated classes marked for removal: SummaryStatistics, SerializableIntSummaryStatistics, SerializableLongSummaryStatistics, and SerializableDoubleSummaryStatistics.

    Build Changes

    • Added Javadoc build for pull requests to ensure correct CI.
    • Upgraded maven plugins for build time stability.
    • Updated Tycho Version to 1.3.0.
    • Configured Travis to run maven using the maven wrapper.
    • Fixed 'maven install' for newer versions of Java by using maven profiles to link modules with the version of Java that can build them.
    • Fixed maven pluginRepositories settings to include maven central.
    • Fixed Travis builds to cache the maven local cache without including Eclipse Collections jars.
    • Removed EclipseCollectionsCodeGenerator Task.
    • Removed unused dependencies from maven build.
    • Removed obsolete maven prerequisites.
    • Customized IntelliJ maven argline settings.
    • Turned on Eclipse Collections Code Generator plugin on configuration for Eclipse IDE.

    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.

    • Changed groupByUniqueKey() so that it's target extends MutableMapIterable instead of MutableMap. This breaks binary compatibility.
    • Added missing bounded wildcards on generic types.
    • Removed deprecated classes marked for removal: SummaryStatistics, SerializableIntSummaryStatistics, SerializableLongSummaryStatistics, and SerializableDoubleSummaryStatistics.
    • Removed default implementations for RichIterable.toSortedMapBy(), MutableListFactory.ofInitialCapacity(), selectUnique() from all Bag interfaces viz. Bag, ImmutableBag, ImmutableBagIterable, ImmutablePrimitiveBag, ImmutableSortedBag, MutableBag, MutableBagIterable, MutablePrimitiveBag, MutableSortedBag, PrimitiveBag, SortedBag, UnsortedBag. These were added to allow inclusion in minor release.
    • Upgraded CollectPrimitiveProcedure to be generated at build time by using stg file. This might break serialization.
    • Added validation in FastList for initial capacity < 0.
    • Fixed ImmutableDoubletonMap.flipUniqueValues() to throw exception when it has duplicates.

    Acquiring Eclipse Collections

    Maven

    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-api</artifactId>
      <version>10.0.0</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections</artifactId>
      <version>10.0.0</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-testutils</artifactId>
      <version>10.0.0</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-forkjoin</artifactId>
      <version>10.0.0</version>
    </dependency>
    

    Gradle

    compile 'org.eclipse.collections:eclipse-collections-api:10.0.0'
    compile 'org.eclipse.collections:eclipse-collections:10.0.0'
    testCompile 'org.eclipse.collections:eclipse-collections-testutils:10.0.0'
    compile 'org.eclipse.collections:eclipse-collections-forkjoin:10.0.0'
    

    Ivy

    <dependency org="org.eclipse.collections" name="eclipse-collections-api" rev="10.0.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections" rev="10.0.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-testutils" rev="10.0.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-forkjoin" rev="10.0.0"/>
    

    OSGi Bundle

    Eclipse software repository location: http://download.eclipse.org/collections/10.0.0/repository

    Source code(tar.gz)
    Source code(zip)
  • 9.2.0(May 20, 2018)

    This is the 9.2.0 minor release. This release was entirely driven by the Eclipse Collections user community. The main theme of this release was to add functionalities suggested by the community and bug fixes for a few critical issues reported by the users.

    New Functionality

    • Implemented flatCollectWith() on RichIterable.
    • Implemented toSortedMapBy() on RichIterable.
    • Implemented Bag#selectDuplicates().
    • Implemented Bag#selectUnique().
    • Implemented OrderedMapAdapter, the first implementation of MutableOrderedMap.
    • Implemented chunk() on Primitive Iterables.
    • Implemented newEmpty() on MutablePrimitiveCollection.
    • Implemented PrimitiveBag#selectDuplicates().
    • Implemented PrimitiveBag#selectUnique().
    • Implemented toStringOfItemToCount() on Primitive Bags.
    • Added MultiReader factories to Sets factory.
    • Added MultiReader factories to Bags factory.
    • Implemented summarizeDouble(), summarizeFloat(), summarizeLong(), summarizeInt on Procedures2.
    • Implemented aggregateBy() on Collectors2.
    • Implemented countByEach() on Collectors2.
    • Implemented assertPostSerializedEqualsHashCodeAndToString() on Verify.
    • Added jcstress-based tests for Concurrent Collections.

    Optimizations

    • Optimized zip() by pre-sizing target.
    • Optimized UnifiedMap#detectOptional(org.eclipse.collections.api.block.predicate.Predicate2) to not use an iterator.
    • Optimized groupByUniqueKey() by pre-sizing the target maps.

    Bug Fixes

    • Fixed PrimitiveHashSet#iterator()#remove() to not rehash.
    • Fixed PrimitiveHashMap#addToValue() to return correct value after rehash and grow.
    • Fixed ConcurrentHashMap#iterator() with size close to zero.
    • Fixed ConcurrentHashMapUnsafe#iterator() with size close to zero.
    • Fixed equals() and hashCode() in IntInterval to handle edge case for negative from, to, step.
    • Fixed invalid cast in UnifiedSet#trimToSize().
    • Fixed toImmutable(), asUnmodifiable() implementations in synchronized primitive collections and maps.

    Tech Debt Reduction

    • Made Primitive Collections non-final.
    • Marked index methods non-final in UnifiedMap, UnifiedMapWithHashingStrategy, UnifiedSet and UnifiedSetWithHashingStrategy.
    • Marked HashingStrategy protected in UnifiedMapWithHashingStrategy and UnifiedSetWithHashingStrategy.
    • Updated UnifiedMap, UnifiedMapWithHashingStrategy, UnifiedSet and UnifiedSetWithHashingStrategy to use newEmpty().
    • Fixed static code analysis inspection violations.
    • Fixed Javadoc and whitespace formatting.
    • Removed unused imports from Primitive classes.
    • Removed redundant imports from Primitive classes.
    • Enabled CheckStyle analysis for generated code.
    • Removed unnecessary override in test for selectByOccurrences().
    • Removed Java-8 check from tests.
    • Added UnifiedMapWithHashingStrategyNoIteratorTest.

    Library Upgrades

    • Upgraded JMH to 1.19
    • Upgraded CheckStyle to 8.8.
    • Upgraded JaCoCo to 0.8.0.

    Acquiring Eclipse Collections

    Maven

    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-api</artifactId>
      <version>9.2.0</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections</artifactId>
      <version>9.2.0</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-testutils</artifactId>
      <version>9.2.0</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-forkjoin</artifactId>
      <version>9.2.0</version>
    </dependency>
    

    Gradle

    compile 'org.eclipse.collections:eclipse-collections-api:9.2.0'
    compile 'org.eclipse.collections:eclipse-collections:9.2.0'
    testCompile 'org.eclipse.collections:eclipse-collections-testutils:9.2.0'
    compile 'org.eclipse.collections:eclipse-collections-forkjoin:9.2.0'
    

    Ivy

    <dependency org="org.eclipse.collections" name="eclipse-collections-api" rev="9.2.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections" rev="9.2.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-testutils" rev="9.2.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-forkjoin" rev="9.2.0"/>
    

    OSGi Bundle

    Eclipse software repository location: http://download.eclipse.org/collections/9.2.0/repository

    Source code(tar.gz)
    Source code(zip)
  • 9.1.0(Jan 2, 2018)

    9.1.0 (January 2018)

    This is the 9.1.0 minor release. Main theme of this release to converge the API of Primitive and Object Collections. This release is also used to prepare for Eclipse Photon contribution and enhance OSGi support based on user feedback.

    New Functionality

    • Implemented collectWithIndex() on OrderedIterable.
    • Implemented collectWithIndex() on PrimitiveOrderedIterable.
    • Implemented collectWithIndex() on ListIterate.
    • Implemented collectWithIndex() on RandomAccessListIterate.
    • Implemented collectWithOccurrences() on Bags.
    • Implemented zip() on primitive lists.
    • Implemented zip() on IntIterable.
    • Implemented zipInt() on IntIterable.
    • Implemented removeIf(PrimitivePredicate) for MutablePrimitiveCollections.
    • Implemented MutablePrimitivePrimitiveMap.putPair(PrimitivePrimitivePair).
    • Implemented MutablePrimitiveObjectMap.putPair(PrimitiveObjectPair).
    • Implemented MutableObjectPrimitiveMap.putPair(ObjectPrimitivePair).
    • Implemented MutableMapIterable.putPair(Pair<K, V> keyValue).
    • Implemented trimToSize() on UnifiedMapWithHashingStrategy.
    • Implemented countBy() on Collectors2.
    • Implemented groupByEach() on Collectors2.
    • Implemented groupByUniqueKey() on Collectors2.
    • Implemented MultiReaderList factory.
    • Added withInitialCapacity() and ofInitialCapacity() on MutableList factory.
    • Added withInitialCapacity() and ofInitialCapacity() on MultiReaderList factory.
    • Implemented a factory class for Strings.

    Bug Fixes

    • Fixed concurrency issues in EntrySet.removeIf() for ConcurrentHashMap and ConcurrentHashMapUnsafe.

    Tech Debt Reduction

    • Removed unnecessary probe() call in PrimitiveObjectHashMap.
    • Added Javadoc to Pair, Twin, Tuples, PrimitiveTuples, ObjectPrimitivePair, PrimitivePrimitivePair and PrimitiveObjectPair.
    • Upgraded Maven Enforcer and Maven Javadoc plugins.
    • Enabled unused import checkstyle configuration and fixed offenders.
    • Enabled Java 9 unit test build on Travis.

    OSGi

    • Added a feature for Eclipse Collections

    Acquiring Eclipse Collections

    Maven

    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-api</artifactId>
      <version>9.1.0</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections</artifactId>
      <version>9.1.0</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-testutils</artifactId>
      <version>9.1.0</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-forkjoin</artifactId>
      <version>9.1.0</version>
    </dependency>
    

    Gradle

    compile 'org.eclipse.collections:eclipse-collections-api:9.1.0'
    compile 'org.eclipse.collections:eclipse-collections:9.1.0'
    testCompile 'org.eclipse.collections:eclipse-collections-testutils:9.1.0'
    compile 'org.eclipse.collections:eclipse-collections-forkjoin:9.1.0'
    

    Ivy

    <dependency org="org.eclipse.collections" name="eclipse-collections-api" rev="9.1.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections" rev="9.1.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-testutils" rev="9.1.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-forkjoin" rev="9.1.0"/>
    

    OSGi Bundle

    Eclipse software repository location: http://download.eclipse.org/collections/9.1.0/repository

    Source code(tar.gz)
    Source code(zip)
  • 9.0.0(Sep 22, 2017)

    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

    Source code(tar.gz)
    Source code(zip)
  • 8.2.0(Jun 23, 2017)

    The primary theme of 8.2.0 release is to continue leveraging features of Java 8, prepare for Java 9, improve OSGi integration and reduce tech debt.

    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.

    Acquiring Eclipse Collections

    Maven

    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-api</artifactId>
      <version>8.2.0</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections</artifactId>
      <version>8.2.0</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-testutils</artifactId>
      <version>8.2.0</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-forkjoin</artifactId>
      <version>8.2.0</version>
    </dependency>
    

    Gradle

    compile 'org.eclipse.collections:eclipse-collections-api:8.2.0'
    compile 'org.eclipse.collections:eclipse-collections:8.2.0'
    testCompile 'org.eclipse.collections:eclipse-collections-testutils:8.2.0'
    compile 'org.eclipse.collections:eclipse-collections-forkjoin:8.2.0'
    

    Ivy

    <dependency org="org.eclipse.collections" name="eclipse-collections-api" rev="8.2.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections" rev="8.2.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-testutils" rev="8.2.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-forkjoin" rev="8.2.0"/>
    

    OSGi Bundle

    Eclipse software repository location: http://download.eclipse.org/collections/8.2.0/repository

    Source code(tar.gz)
    Source code(zip)
  • 8.1.0(Mar 16, 2017)

    The primary theme of 8.1.0 release is to continue leveraging features of Java 8, and add new functionality for API symmetry and completeness.

    New Functionality

    • Implemented primitive case procedures.
    • Implemented primitive case functions.
    • Implemented select and reject with targets on primitive iterables.
    • Implemented collect and flatCollect with target collections on primitiveIterable.stg.
    • Added collect with target collections as default methods in primitiveIterable.stg.
    • Made SummaryStatistics Serializable.
    • Implemented summingBigDecimal, sumByBigDecimal, summingBigInteger, sumByBigInteger on Collectors2.
    • Implemented BigDecimalSummaryStatistics and BigIntegerSummaryStatistics.
    • Implemented SummaryStatistics and Collectors2.summarizing.
    • Integrated JaCoCo for test coverage.
    • Implemented flatCollect on Collectors2.
    • Modified PersonAndPetKataTest.getAgeStatisticsOfPets to use summaryStatistics.
    • Added Abstract primitive Stacks.
    • Add public constructors to Unmodifiable and Synchronized collections.
    • Implement throwing method on functional interface factories which takes a user specified runtime exception function.
    • Implement spliterator on FastList and ArrayAdapter.

    Optimizations

    • Changed collect and collectWith with target collections on InternalArrayIterate to use ensureCapacity for FastLists and ArrayLists.
    • Replaced anonymous inner classes with lambdas and method references.

    Bug fixes

    • Removed JMH tests and generator codes from Javadoc output.
    • Updated links to point to the Eclipse Collections Kata instead of the GS Collections Kata.
    • Fixed addAll() method in CompositeFastList to return false on isEmpty().
    • Fixed exporting all necessary packages in MANIFEST.MF.
    • Added sign jar step as part of deploy build.

    Documentation

    • Added the Eclipse Collections reference guide.
    • Enriched README.md.

    Acquiring Eclipse Collections

    Maven

    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-api</artifactId>
      <version>8.1.0</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections</artifactId>
      <version>8.1.0</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-testutils</artifactId>
      <version>8.1.0</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-forkjoin</artifactId>
      <version>8.1.0</version>
    </dependency>
    

    Gradle

    compile 'org.eclipse.collections:eclipse-collections-api:8.1.0'
    compile 'org.eclipse.collections:eclipse-collections:8.1.0'
    testCompile 'org.eclipse.collections:eclipse-collections-testutils:8.1.0'
    compile 'org.eclipse.collections:eclipse-collections-forkjoin:8.1.0'
    

    Ivy

    <dependency org="org.eclipse.collections" name="eclipse-collections-api" rev="8.1.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections" rev="8.1.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-testutils" rev="8.1.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-forkjoin" rev="8.1.0"/>
    
    Source code(tar.gz)
    Source code(zip)
  • 8.0.0(Sep 8, 2016)

    The primary theme of the 8.0.0 release is leveraging features of Java 8. In previous versions, Eclipse Collections already used Java 8 in test modules, but the main library targeted Java 5 bytecode. By dropping support for older versions of Java, Eclipse Collections can benefit from new features and better integrate with the standard libraries.

    New Functionality

    • Added static method BooleanArrayList.newWithNValues, following other primitive ArrayLists.
    • Changed MutableBagIterable.addOccurrences(T item, int occurrences) to return the updated number of occurrences instead of void.
    • Implemented Bags.mutable.ofAll(Iterable<? extends T> items) and Bags.mutable.withAll(Iterable<? extends T> items).
    • Implemented Multimap.keySet() to return an unmodifiable SetIterable of keys.
    • Implemented MutableMultimap.putAllPairs(Iterable<Pair<K, V>> keyValuePairs).
    • Implemented LazyIterable.takeWhile(Predicate<? super T> predicate) and LazyIterable.dropWhile(Predicate<? super T> predicate).
    • Implemented unmodifiable BiMaps.
    • Implemented RichIterable.getOnly().
    • Pull up into() from LazyIterable to RichIterable.
    • Made StackIterable implement OrderedIterable.
    • Implemented summarizeInt/Float/Long/Double({Int/Float/Long/Double}Function) on RichIterable
    • Implemented summaryStatistics() on Primitive Iterables.
    • Implemented reduce(BinaryOperator), reduceInPlace(Collector) and reduceInPlace(Supplier, BiConsumer) on RichIterable.
    • Implemented Collectors2 with makeString, toList, toSet, toBag, toStack, toMap, toBiMap, groupBy, to{List/Set/Bag}Multimap.
    • Implemented detectOptional() and detectWithOptional() on RichIterable.
    • Changed the basic functional interface to extend the JDK ones and add default implementation of the JDK SAM so that our types still have a single abstract method.
    • Changed our IntPredicate, LongPredicate, and DoublePredicate to extend the JDK types with the same names.
    • Added a factory class for MutableSortedBagMultimap to Multimaps.
    • Implemented synchronized Multimaps.
    • Implemented selectByOccurrences on primitive Bags.
    • Implemented top/bottomOccurrences on primitive Bags.
    • Changed primitive functional interfaces to extend the corresponding JDK functional interfaces.
    • Made detectOptional methods throw NullPointerException when detecting null value.

    Optimizations

    • In ArrayList.newWithNValues, replace loop with Arrays.fill.
    • Optimized MutableList.chunk() for RandomAccess lists to use the backing array instead of an iterator.
    • Optimized AbstractImmutableList.chunk() by using sublists.

    Bug fixes

    • Fixed bug in ArrayList.reverseThis().
    • Fixed Interval.take(int count) when count is 0. Old behavior was to return an Interval of size 1. This is a behavior breaking change.
    • Changed AbstractSynchronizedRichIterable.groupByUniqueKey() to return MapIterable instead of MutableMap.
    • Changed AbstractMutableMapIterable.groupByUniqueKey() to return MutableMapIterable instead of MutableMap.
    • Changed MutableMapIterable.aggregateBy() to return MutableMap instead of MutableMapIterable.
    • Fixed return types on MapIterable.collect(Function2) overrides.
    • Fixed return type of UnifiedSetWithHashingStrategy.groupByEach() method to preserve hashing strategy.
    • Fixed generics on Multimap.forEachKeyValue().
    • Fixed generics on Multimap.forEachKeyMultiValues().
    • Fixed method signature of sumByInt(), sumByLong(), sumByFloat() and sumByDouble(). Added missing covariant overrides, now calling these iteration patterns on mutable side will return a MutableObjectPrimitiveMap, on immutable side it will return ImmutableObjectPrimitiveMap.
    • Made primitive-object maps more bag-like. Change the filtering and transformation methods to return bags since they contain duplicates and no meaningful order.

    Acquiring Eclipse Collections

    Maven

    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-api</artifactId>
      <version>8.0.0</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections</artifactId>
      <version>8.0.0</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-testutils</artifactId>
      <version>8.0.0</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-forkjoin</artifactId>
      <version>8.0.0</version>
    </dependency>
    

    Gradle

    compile 'org.eclipse.collections:eclipse-collections-api:8.0.0'
    compile 'org.eclipse.collections:eclipse-collections:8.0.0'
    testCompile 'org.eclipse.collections:eclipse-collections-testutils:8.0.0'
    compile 'org.eclipse.collections:eclipse-collections-forkjoin:8.0.0'
    

    Ivy

    <dependency org="org.eclipse.collections" name="eclipse-collections-api" rev="8.0.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections" rev="8.0.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-testutils" rev="8.0.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-forkjoin" rev="8.0.0"/>
    
    Source code(tar.gz)
    Source code(zip)
  • 8.0.0-M1(Jul 6, 2016)

    This is the 8.0.0 Milestone 1 build.

    New Functionality

    • Added static method BooleanArrayList.newWithNValues, following other primitive ArrayLists.
    • Changed MutableBagIterable.addOccurrences(T item, int occurrences) to return the updated number of occurrences instead of void.
    • Implemented Bags.mutable.ofAll(Iterable<? extends T> items) and Bags.mutable.withAll(Iterable<? extends T> items).
    • Implemented Multimap.keySet() to return an unmodifiable SetIterable of keys.
    • Implemented MutableMultimap.putAllPairs(Iterable<Pair<K, V>> keyValuePairs).
    • Implemented LazyIterable.takeWhile(Predicate<? super T> predicate) and LazyIterable.dropWhile(Predicate<? super T> predicate).
    • Implemented unmodifiable BiMaps.
    • Implemented RichIterable.getOnly().
    • Pull up into() from LazyIterable to RichIterable.
    • Made StackIterable implement OrderedIterable.
    • Implemented summarizeInt/Float/Long/Double({Int/Float/Long/Double}Function) on RichIterable
    • Implemented summaryStatistics() on Primitive Iterables.
    • Implemented reduce(BinaryOperator), reduceInPlace(Collector) and reduceInPlace(Supplier, BiConsumer) on RichIterable.
    • Implemented Collectors2 with makeString, toList, toSet, toBag, toStack, toMap, toBiMap, groupBy, to{List/Set/Bag}Multimap.
    • Implemented detectOptional() and detectWithOptional() on RichIterable.
    • Changed the basic functional interface to extend the JDK ones and add default implementation of the JDK SAM so that our types still have a single abstract method.
    • Changed our IntPredicate, LongPredicate, and DoublePredicate to extend the JDK types with the same names.

    Optimizations

    • In ArrayList.newWithNValues, replace loop with Arrays.fill.
    • Optimized MutableList.chunk() for RandomAccess lists to use the backing array instead of an iterator.
    • Optimized AbstractImmutableList.chunk() by using sublists.

    Bug fixes

    • Fixed bug in ArrayList.reverseThis().
    • Fixed Interval.take(int count) when count is 0. Old behavior was to return an Interval of size 1. This is a behavior breaking change.
    • Changed AbstractSynchronizedRichIterable.groupByUniqueKey() to return MapIterable instead of MutableMap.
    • Changed AbstractMutableMapIterable.groupByUniqueKey() to return MutableMapIterable instead of MutableMap.
    • Changed MutableMapIterable.aggregateBy() to return MutableMap instead of MutableMapIterable.
    • Fixed return types on MapIterable.collect(Function2) overrides.
    • Fixed return type of UnifiedSetWithHashingStrategy.groupByEach() method to preserve hashing strategy.
    • Fixed generics on Multimap.forEachKeyValue().
    • Fixed generics on Multimap.forEachKeyMultiValues().
    • Fixed method signature of sumByInt(), sumByLong(), sumByFloat() and sumByDouble(). Added missing covariant overrides, now calling these iteration patterns on mutable side will return a MutableObjectPrimitiveMap, on immutable side it will return ImmutableObjectPrimitiveMap.
    • Made primitive-object maps more bag-like. Change the filtering and transformation methods to return bags since they contain duplicates and no meaningful order.

    Acquiring Eclipse Collections

    Maven

    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-api</artifactId>
      <version>8.0.0-M1</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections</artifactId>
      <version>8.0.0-M1</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-testutils</artifactId>
      <version>8.0.0-M1</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-forkjoin</artifactId>
      <version>8.0.0-M1</version>
    </dependency>
    

    Gradle

    compile 'org.eclipse.collections:eclipse-collections-api:8.0.0-M1'
    compile 'org.eclipse.collections:eclipse-collections:8.0.0-M1'
    testCompile 'org.eclipse.collections:eclipse-collections-testutils:8.0.0-M1'
    compile 'org.eclipse.collections:eclipse-collections-forkjoin:8.0.0-M1'
    

    Ivy

    <dependency org="org.eclipse.collections" name="eclipse-collections-api" rev="8.0.0-M1" />
    <dependency org="org.eclipse.collections" name="eclipse-collections" rev="8.0.0-M1" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-testutils" rev="8.0.0-M1" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-forkjoin" rev="8.0.0-M1"/>
    
    Source code(tar.gz)
    Source code(zip)
  • 7.1.0(Apr 8, 2016)

    The primary theme of the 7.1.0 release is community engagement.

    Community Engagement

    New Functionality

    • Implemented Iterate.toMultimap().
    • Implemented Iterate.groupByAndCollect().
    • Implemented HashBagWithHashingStrategy.

    Optimizations

    • Simplified and optimized a few methods in ImmutableSingletonBag.
    • Fixed performance problem in ArrayStack.minBy().
    • Optimized UnifiedMap.getFirst() to not delegate to an iterator.
    • Optimized AbstractBag for all MutableBagIterable targets, not just MutableBag targets.
    • Optimized iteration patterns in a few LazyIterables to not delegate to an Iterator.
    • Extracted size variables to make iteration patterns in RandomAccessListIterate consistent.

    Test Improvements

    • Implemented Verify.assertListMultimapsEqual(), Verify.assertSetMultimapsEqual(), Verify.assertBagMultimapsEqual(), Verify.assertSortedSetMultimapsEqual(), Verify.assertSortedBagMultimapsEqual().
    • Added new assertions Verify.assertNotSerializable() and Verify.assertNotInstanceOf().
    • Fixed IterableTestCase.checkNotSame() to factor in empty sorted immutable collections having different instances due to construction with a comparator.
    • Added test coverage for additional classes and methods in the java 8 test suite.
    • Replaced forkMode with forkCount for surefire plugin.

    Bug fixes

    • Fixed bug in ArrayIterate.chunk().

    Documentation

    • Added instructions for commit sign-off to contribution guide.
    • Fixed syntax of examples in Javadoc.
    • Added badge for GitHub release notes to the README.

    Acquiring Eclipse Collections

    Maven

    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-api</artifactId>
      <version>7.1.0</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections</artifactId>
      <version>7.1.0</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-testutils</artifactId>
      <version>7.1.0</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-forkjoin</artifactId>
      <version>7.1.0</version>
    </dependency>
    

    Gradle

    compile 'org.eclipse.collections:eclipse-collections-api:7.1.0'
    compile 'org.eclipse.collections:eclipse-collections:7.1.0'
    testCompile 'org.eclipse.collections:eclipse-collections-testutils:7.1.0'
    compile 'org.eclipse.collections:eclipse-collections-forkjoin:7.1.0'
    

    Ivy

    <dependency org="org.eclipse.collections" name="eclipse-collections-api" rev="7.1.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections" rev="7.1.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-testutils" rev="7.1.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-forkjoin" rev="7.1.0"/>
    
    Source code(tar.gz)
    Source code(zip)
  • 7.0.2(Mar 9, 2016)

    Bug Fixes

    • Fixed memory leak in HashBiMap.
    • Fixed incorrect code path in key collision handling and keyset iterator based remove operation in primitive Maps with Hashing Strategy.

    Acquiring Eclipse Collections

    Maven

    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-api</artifactId>
      <version>7.0.2</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections</artifactId>
      <version>7.0.2</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-testutils</artifactId>
      <version>7.0.2</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-forkjoin</artifactId>
      <version>7.0.2</version>
    </dependency>
    

    Gradle

    compile 'org.eclipse.collections:eclipse-collections-api:7.0.2'
    compile 'org.eclipse.collections:eclipse-collections:7.0.2'
    testCompile 'org.eclipse.collections:eclipse-collections-testutils:7.0.2'
    compile 'org.eclipse.collections:eclipse-collections-forkjoin:7.0.2'
    

    Ivy

    <dependency org="org.eclipse.collections" name="eclipse-collections-api" rev="7.0.2" />
    <dependency org="org.eclipse.collections" name="eclipse-collections" rev="7.0.2" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-testutils" rev="7.0.2" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-forkjoin" rev="7.0.2"/>
    
    Source code(tar.gz)
    Source code(zip)
  • 7.0.1(Feb 5, 2016)

    Bug Fixes

    Fixed UnifiedSet.ChainedBucket.removeLongChain() method to handle many collisions in one bucket.

    Acquiring Eclipse Collections

    Maven

    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-api</artifactId>
      <version>7.0.1</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections</artifactId>
      <version>7.0.1</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-testutils</artifactId>
      <version>7.0.1</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-forkjoin</artifactId>
      <version>7.0.1</version>
    </dependency>
    

    Gradle

    compile 'org.eclipse.collections:eclipse-collections-api:7.0.1'
    compile 'org.eclipse.collections:eclipse-collections:7.0.1'
    testCompile 'org.eclipse.collections:eclipse-collections-testutils:7.0.1'
    compile 'org.eclipse.collections:eclipse-collections-forkjoin:7.0.1'
    

    Ivy

    <dependency org="org.eclipse.collections" name="eclipse-collections-api" rev="7.0.1" />
    <dependency org="org.eclipse.collections" name="eclipse-collections" rev="7.0.1" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-testutils" rev="7.0.1" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-forkjoin" rev="7.0.1"/>
    
    Source code(tar.gz)
    Source code(zip)
  • 7.0.0(Jan 20, 2016)

    This is the initial release of Eclipse Collections after rebranding GS Collections and migrating the project to the Eclipse Foundation.

    What's changed

    Eclipse Collections 7.0.0 is functionally equivalent to GS Collections 7.0.0, with several non-functional changes related to the migration.

    • Replaced the Apache 2.0 license with the EDL and EPL licenses.
    • Converted package com.gs to org.eclipse and renamed the equivalent directories.
    • Removed the memory-tests module that relies on a third party library with a different license.
    • Updated author information, README.md, and other strings which refered to GS Collections.
    • Updated README.md contents to be in line with Eclipse Collections.
    • Configured git settings.
    • Fixed locale sensitive test cases.
    • Added GPG signing and OSSRH configuration to pom files.

    Acquiring Eclipse Collections

    Maven

    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-api</artifactId>
      <version>7.0.0</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections</artifactId>
      <version>7.0.0</version>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-testutils</artifactId>
      <version>7.0.0</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.collections</groupId>
      <artifactId>eclipse-collections-forkjoin</artifactId>
      <version>7.0.0</version>
    </dependency>
    

    Gradle

    compile 'org.eclipse.collections:eclipse-collections-api:7.0.0'
    compile 'org.eclipse.collections:eclipse-collections:7.0.0'
    testCompile 'org.eclipse.collections:eclipse-collections-testutils:7.0.0'
    compile 'org.eclipse.collections:eclipse-collections-forkjoin:7.0.0'
    

    Ivy

    <dependency org="org.eclipse.collections" name="eclipse-collections-api" rev="7.0.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections" rev="7.0.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-testutils" rev="7.0.0" />
    <dependency org="org.eclipse.collections" name="eclipse-collections-forkjoin" rev="7.0.0"/>
    
    Source code(tar.gz)
    Source code(zip)
Java Collections till the last breadcrumb of memory and performance

Koloboke A family of projects around collections in Java (so far). The Koloboke Collections API A carefully designed extension of the Java Collections

Roman Leventov 933 Nov 23, 2021
Eclipse Collections is a collections framework for Java with optimized data structures and a rich, functional and fluent API.

English | 中文 | Deutsch | Español | Ελληνικά | Français | 日本語 | Norsk (bokmål) | Português-Brasil | Русский | हिंदी Eclipse Collections is a comprehens

Eclipse Foundation 1.8k Nov 29, 2021
GS Collections has been migrated to the Eclipse Foundation, re-branded as Eclipse Collections. https://www.eclipse.org/collections/

GS Collections is now Eclipse Collections We are pleased to announce that GS Collections has been migrated to the Eclipse Foundation, re-branded as Ec

null 1.8k Nov 28, 2021
GS Collections has been migrated to the Eclipse Foundation, re-branded as Eclipse Collections. https://www.eclipse.org/collections/

GS Collections is now Eclipse Collections We are pleased to announce that GS Collections has been migrated to the Eclipse Foundation, re-branded as Ec

null 1.8k Nov 28, 2021
Eclipse Foundation 2.8k Dec 2, 2021
A distributed data integration framework that simplifies common aspects of big data integration such as data ingestion, replication, organization and lifecycle management for both streaming and batch data ecosystems.

Apache Gobblin Apache Gobblin is a highly scalable data management solution for structured and byte-oriented data in heterogeneous data ecosystems. Ca

The Apache Software Foundation 2k Dec 1, 2021
dOOv (Domain Object Oriented Validation) a fluent API for type-safe bean validation and mapping

dOOv (Domain Object Oriented Validation) dOOv is a fluent API for typesafe domain model validation and mapping. It uses annotations, code generation a

dOOv 63 Oct 11, 2021
Fluent builders with typesafe API for the JCA

Security Builders This library implements a set of "fluent" API builders for the java.security classes, and provides more typesafe, intuitive API to a

Terse Systems 40 Aug 29, 2021
High Performance data structures and utility methods for Java

Agrona Agrona provides a library of data structures and utility methods that are a common need when building high-performance applications in Java. Ma

Real Logic 2.1k Nov 22, 2021
High Performance data structures and utility methods for Java

Agrona Agrona provides a library of data structures and utility methods that are a common need when building high-performance applications in Java. Ma

Real Logic 2.1k Dec 4, 2021
Algorithms and Data Structures implemented in Java

Java : Algorithms and Data Structure The algorithms and data structures are implemented in Java. This is a collection of algorithms and data structure

Justin Wetherell 3.9k Dec 8, 2021
This repository consists of the code samples, assignments, and the curriculum for the Community Classroom complete Data Structures & Algorithms Java bootcamp.

DSA-Bootcamp-Java Subscribe to our channel Complete Playlist Syllabus Discord for discussions Telegram for announcements Connect with me     Follow Co

Kunal Kushwaha 4.9k Dec 4, 2021
Computer science data structures and algorithms implementation from scratch

Data Structures and Algorithms Computer science data structures and algorithms implementation from scratch Stack (Last In First Out) Stack is an abstr

Harshal Patil 49 Jun 13, 2021
Clojure's data structures modified for use outside of Clojure

This library has been extracted from the master branch of Clojure (http://clojure.org) version 1.5.1 (as of October 2013) http://github.com/richhick

Karl Krukow 220 Oct 21, 2021
Java 8 optimized, memory efficient, speedy template engine producing statically typed, plain java objects

Rocker Templates by Fizzed Fizzed, Inc. (Follow on Twitter: @fizzed_inc) Sponsored by Rocker is proudly sponsored by Greenback. We love the service an

Fizzed, Inc. 639 Nov 30, 2021
Rich-text area for JavaFX

RichTextFX RichTextFX provides a memory-efficient text area for JavaFX that allows the developer to style ranges of text, display custom objects in-li

null 976 Dec 5, 2021
:fire: Spring-Boot-Plus is a easy-to-use, high-speed, high-efficient,feature-rich, open source spring boot scaffolding. :rocket:

Everyone can develop projects independently, quickly and efficiently! What is spring-boot-plus? A easy-to-use, high-speed, high-efficient, feature-ric

geekidea 2.2k Nov 25, 2021
AssertJ is a library providing easy to use rich typed assertions

AssertJ - Fluent assertions for java AssertJ provides a rich and intuitive set of strongly-typed assertions to use for unit testing (with JUnit, TestN

AssertJ 2.1k Dec 6, 2021
Java annotation-based framework for parsing Git like command line structures

Airline Airline is a Java annotation-based framework for parsing Git like command line structures. Latest release is 0.8, available from Maven Central

null 850 Nov 23, 2021
Powerful event-bus optimized for high throughput in multi-threaded applications. Features: Sync and Async event publication, weak/strong references, event filtering, annotation driven

MBassador MBassador is a light-weight, high-performance event bus implementing the publish subscribe pattern. It is designed for ease of use and aims

Benjamin Diedrichsen 901 Nov 27, 2021
https://www.spigotmc.org/resources/deluxeasyncjoinleavemessage-fully-optimized-async-everything-open-source.88129/

https://www.spigotmc.org/resources/deluxeasyncjoinleavemessage-fully-optimized-async-everything-open-source.88129/ Events: PrePreAsyncJoinPlayerEvent

null 18 Nov 26, 2021
Fluent assertions for Java and Android

What is Truth? Truth makes your test assertions and failure messages more readable. Similar to AssertJ, it natively supports many JDK and Guava types,

Google 2.4k Dec 2, 2021
Fluent assertions library for Java

Deep Dive Assertions Deep Dive is an assertion library for Java. It offers a fluent API which allows you to dive deep, i.e. going back and forth betwe

Johannes Döbler 5 Nov 16, 2021
Layout and functional testing framework for websites

Galen Framework master: Galen is an open-source tool for testing layout and responsive design of web applications. It is also a powerfull functional t

Galen Framework 1.4k Nov 17, 2021
"I am fluent in over 6 million forms of communication!"

K3PO K3PO is a network driver and language agnostic testing tool. It is designed to be able to create arbitrary network traffic and behavior, and to c

K3PO 42 Aug 19, 2021