Skip to content

3.3.0

Latest
Compare
Choose a tag to compare
@pivovarit pivovarit released this 07 May 20:09
· 45 commits to master since this release

This release focused on performance, correctness, and flexibility. Most notable changes:

  • enhanced type variance support
  • introduced new API methods that allow for custom Executors with unbounded parallelism
  • aligned the async collector’s behavior with the rest of the library
  • ensured correct ordering in the batching stream collector and preventing out-of-bounds access in the batching spliterator.

Internally, we’ve moved to an Option-based configuration model, and even fixed a small but annoying CSS issue in the mutation testing results page.

That new configuration model is likely to make its way to public API in the next minor release. You can see it in action in ParallelCollectors class:

return collecting(mapper,
  batched(),
  executor(executor),
  parallelism(parallelism));

What's Changed

  • Use Function<? super T, R> to maximize variance support by @pivovarit in #1023
  • Use Function<? super T, ? extends R> to maximize variance support (covariance) by @pivovarit in #1024
  • Add new API methods supporting custom Executors with unbounded parallelism by @pivovarit in #919
  • Validate Executors when used with unbounded Dispatcher and batching collectors by @pivovarit in #932
  • Align behaviour of async colllector with other implementations by @pivovarit in #936
  • Fix ParallelCollectors.Batching.parallelToStream enforcing the original ordering by @pivovarit in #1029
  • Fix missing CSS in mutation testing results page by @pivovarit in #967
  • Introduce Option-based configuration internally by @pivovarit in #1020
  • Faster async Collector by @pivovarit in #1025
  • Fallback to SyncCollector when parallel streaming with parallelism of one by @pivovarit in #1035
  • Fallback to AsyncCollector when calling parallel() with parallelism of one by @pivovarit in #1036
  • Ensure BatchingSpliterator doesn't go out of bounds by @pivovarit in #1044

Full Changelog: 3.2.0...parallel-collectors-3.3.0