This is the release we’ve been waiting for.
Thank you to the community
Eclipse Collections 10.2 was released in February 2020 and was a relatively small bug fix release after the somewhat monumental 10.0 release. I am happy to say that six months later, the 10.3 release has a lot of new features submitted by our outstanding community of contributors.
Thank you so much to all of the contributors who donated their valuable time to making Eclipse Collections more feature rich and even higher quality. Your efforts are very much appreciated.
If you’re thinking about contributing to an open source project but aren’t sure, check out this great blog from one of our community contributors. In the blog Sirisha Pratha explains some of the benefits she has experienced as she has become an active contributor in the OSS community.
We are always looking for new contributors to join the Eclipse Collections community. Please consider contributing to Eclipse Collections if you are looking for a project to get started on your journey.
Eclipse Collections received an amazing and humbling honor in a Java Magazine article in June when it was named one of “The 25 Greatest Java Apps Ever Written.”
The 25 greatest Java apps ever written
June 5, 2020 Download a PDF of this article The story of Java began in 1991, at a time when Sun Microsystems sought to…
The credit belongs to the entire Eclipse Collections community. Your hard work and patience contributing to this library is being recognized. Congratulations and thank you to our entire community. Keep up the great work! You all rock!
Loads of new features and several contributor blogs
There are so many features included in Eclipse Collections 10.3, that it is going to take me a bit longer to write good examples leveraging all of them. The good news is that I’ve already gotten some help from the community. Some contributors blogged about the features they added before I started writing this blog.
Dirk Fauth wrote a blog where he evaluated whether there would be any performance and memory improvements including Eclipse Collections in NatTable. He also raised an issue for a missing feature, contributed the feature, and then updated the blog!
NatTable + Eclipse Collections = Performance & Memory improvements ?
Some time ago I got reports from NatTable users about high memory consumption when using NatTable with huge data sets…
I thanked Dirk for both the blog and code contribution, and he said something in response on Twitter that I found very inspirational.
IMHO this is the way OSS works. Use it, like it, write about it. Find an issue, report it, fix it, contribute back.
Well done, and well said! This is exactly the spirit of community that keeps me working happily in open source.
A suggestion for future releases and future bloggers
Feature blogging is something I would love to see more of in the future from contributors. This is a great way to make sure the features you contribute get discovered by other developers. This may in turn encourage developers to upgrade to the latest release. It is also a great way to help build your own personal brand, as I will link to your feature blogs from the release blog. I will also be happy to like and retweet your blog and thank you publicly for the contribution. You are saving me time explaining how the feature you added works in the release blog, so trust me I will be very thankful and happy to help socialize your hard work!
The Feature Summary
Features with blogs shared by contributors
MapIterableto aggregate on key and value — by Alex Goldberg
FlatCollectinto primitive collections — by Alex Goldberg
Triples— by Brian Vermeer
- Support sorting of primitive lists by indirect comparison — by Vladimir Zakharov
MapIterable.getOrDefault()to allow easy inter-op—by Nikhil Nanivadekar
- ContainsBy on
RichIterable— by Donald Raab
New Website Translation
Hindi Translation of Eclipse Collections website.
- Added new APIs
withOccurrences, to bag mutable and immutable factories.
wrapCopy()to primitive lists to mirror functionality in FastList.
- Added singly-linked implementation of immutable stacks.
toArray()method to primitive iterables which takes an array as a parameter to store the elements of the iterable.
- Added default
aggregateBymethod to RichIterable that takes a target Map.
shuffleThis()operation to primitive lists.
swap()method on mutable primitive lists.
MapIterablewith a variant to aggregate on key and value.
- Implemented Null Safe Comparators by Function.
- Added badges to README.md for GitHub Actions build.
Working with GitHubwiki page.
- Added Javadocs for
- Added Javadocs for
- Added Javadocs for
- Improved documentation of
- Fixed Gradle dependency settings in website.
- Fixed size edge case issues in Interval and IntInterval.
- Fixed Javadoc warnings, code generation errors.
- Fixed inspections, line-wrapping and whitespace violations.
- Fixed symmetry issues with factory methods in Multimaps factory.
- Added CheckStyle checks for comma-separated lists that are partially wrapped.
Tech Debt Reduction
- Increased test coverage for
reduceIfEmptyon primitive iterables,
sun.miscan optional Import-Package in OSGi metadata.
- Optimized collect methods for primitive Immutable Singleton
- Optimized implementations of
aggregateByin Bags to use
- Pulled up
aggregateBy()as default methods.
withoutAll()as default methods.
PersonAndPetKatatTestto use newer APIs.
- Removed duplicate
- Created a simple utility to aid in Javadoc creation.
- Updated common primitive stack template for
- Used direct formulas to calculate
toImmutable()method on FastList and Primitive Lists to avoids creating a redundant array copy.
From all the contributors and committers to the entire Eclipse Collections community… thank you for using Eclipse Collections. We hope you enjoy all of the new features and improvements in the 10.3 release.
I am a Project Lead and Committer for the Eclipse Collections OSS project at the Eclipse Foundation. Eclipse Collections is open for contributions. If you like the library, you can let us know by starring it on GitHub.