Skip to content

@simonbasle simonbasle released this Dec 2, 2019 · 16 commits to master since this release

Reactor-Core 3.3.1.RELEASE is part of Dysprosium-SR2 Release Train.

It also includes changes from the 3.2.13.RELEASE version.

One important change to pick up for testing Reactor is in StepVerifier: the combination of expectNoEvent followed by thenCancel wasn't working terribly well, and a new better terminal expectation has been introduced: expectTimeout (#1913)

⚠️ Update considerations and deprecations

  • #1911 Instrument ScheduledExecutorService via Micrometer
  • Instead of doing our own executor decorator we now rely on the Micrometer one, but it might have different coverage of tasks

New features and improvements

  • #1557 Removed greediness from FluxBufferTimeout
  • #1938 Remove overeager toString calls in FluxIndexFuseable
  • #1913 StepVerifier: expectTimeout(Duration) as an alternative to expectNoEvent(Duration).thenCancel()
  • #1902 When transform or transformDeferred apply a transformation to a non-Reactor Publisher, warn when/if the original Context is lost (#1888)
  • #1966 Internal simplification of how the comparator is applied in collectSortedList
  • #1962 Avoid extending Map.Entry in Context1 to ensure various libraries don't represent it inconsistenly when printing out collections of Context
  • #1963 Retain insertion order in ContextN (by extending LinkedHashMap instead of HashMap)
  • changes from 3.2.13.RELEASE:
    • #1916 Interpret MAX_VALUEms as indefinite caching in Mono#cache(Function, Function, Supplier) (backported)
    • #1746 Add VirtualTimeScheduler#getScheduledTaskCount() (backported)
    • #1968 Make Flux#publish() propagate 1st subscriber Context
    • #1953 Add Exceptions.isTraceback, and a mean to unwrap a composite without the tacebacks (Exceptions.unwrapMultipleExcludingTracebacks)

🐞 Bug fixes

  • changes from 3.2.13.RELEASE:
    • #1945 Avoid unnecessary wrapping of exceptions in scalar flatMap
    • #1959 GroupedFlux fused with parallel() not replenishing properly

📖 Documentation, Tests and Build

  • [doc] #1908 Marble diagram for bufferWhile was incorrectly showing dropped separators
  • [doc] #1915 Flux#join javadoc and marble have been clarified
  • [dependency] Bumped BlockHound to the release version (#1923)
  • [build] Reorganization of the build with separation of concerns (buildSrc, gradle.properties, etc...) (0bd50de, a1dab8a)
  • [build] Add reactor.blockhound to OSGI optional bundles (#1932, #1933)
  • [build] Prepare for a releasetrain releaser script: add new tasks, allow mavenLocal source (06977a6, #1960)
  • changes from 3.2.13.RELEASE:
    • [build] Switched to Gradle 5.6 (8e97f91)
    • [build] Switched publication plugin to maven-publish and artifactory (#1943)
    • [build] Fixed generation of refguide pdf when custom version is used (2c621b6)
    • [polish] Exceptions.multiple(Iterable) now produces a CompositeException, more test coverage of Exceptions util (#1954)

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

@andreisilviudragnea, @akarnokd, @berry120, @dittos, @EleanorRoseLegg, @gindex, @jabrena, @simondaudin, @slisaasquatch, @thiyagu-7, @ttddyy, @slisaasquatch, @wonwoo

Assets 2
You can’t perform that action at this time.