github reactor/reactor-core v3.1.0.M2

latest releases: v3.8.5, v3.7.18, v3.8.4...
pre-release8 years ago

This is the MILESTONE 2 release of Reactor 3.1.0, which will be part of the Bismuth Release Train.

This MILESTONE covers API changes of the upcoming 3.1.0 release, as well as improvements.

Note that starting from this pre-release, the source code for the reactor-test artifact is part of the reactor-core github repository.

Most deprecations introduced in this pre-release should be followed by a removal in the next pre-release (or GA if no M3 happens).

⚠️ Update considerations and API changes

  • Mono#subscribe() returns a Disposable. Use .toProcessor() to get the exact legacy behavior (see #566, #605 and #638)
  • Flux.windowTimeOrSize: the timeout now starts right from subscription, resulting in potentially empty windows being emitted. It also restarts if the
    timeout expires, so there could be several empty windows emitted eg. 3 for a timeout of 100ms if the Flux doesn't emit for 300ms.
    The equivalent buffer version remains unchanged. (#484)
  • reactor-test source code is now part of this repository, and the artifact has changed Maven groupId to io.projectreactor
  • Mono#untilOther removed (use delayUntilOther(other.take(1)) instead, see #558)
  • Most factory methods of Processors are deprecated in favor of Builder (see #471, #616 and #628)
  • Scannable: attributes are now split into typed categories (eg. BooleanAttr) so that scan doesn't need a Class to attempt a cast. Operator implementation is still based on a Object scan, scanUnsafe. Some operators mapped some attributes to a value of incoherent type, which has been modified to fit the category of said attributes (see #606).
  • Mono#zip with an iterable: for consistency, swap the arguments (old "function, iterable" version is deprecated, see #619)

✨ New features and improvements

  • the checkpoint description is included inFlux/MonoSource#toString (#611)
  • checkpoint(String) is now light by default, lowering the cost of using that operator (see #587)
  • the Supplier used for distinct can be tuned (#577)
  • refCount now has a variant that waits for a grace period before unsubscribing from upstream (#569, #624, #627)

🪲 Bug fixes

  • a memory leak has been fixed in SingleScheduler.schedule (#578)

📖 Documentation, Tests and Build

  • some operators' usage restrictions have been better documented in the javadoc (#560,#596)
  • the reference guide's introduction to reactive programming shows an example of Future and Callback Hell, vs Reactor (#580)

👍 Thanks to the following contributors that also participated to this release

In alphabetical order:

@akarnokd, @Dmitriusan, @fabriziofortino, @jimhorng, @kamilszymanski, @making, @rajinisivaram, @TomekJurkowski

Don't miss a new reactor-core release

NewReleases is sending notifications on new releases.