Rxjava: What's Different in 3.x (tracking issue)

Created on 19 Jun 2019  路  4Comments  路  Source: ReactiveX/RxJava

Many code changes in 3.x can be done independently, but updating the new What's Different in 3.x.md would conflict. This issue tracks which changes should be eventually described in the file:

  • [x] Introduction of the Supplier interface -> #6511
  • [x] Callable use changed to Supplier in the API -> #6511
  • [x] Removal of getValues() from various subjects and processors -> #6516
  • [x] Maybe.defaultIfEmpty() returns Single -> #6517
  • [x] Removal of Maybe.toSingle(T) -> #6517
  • [x] Removal of Flowable.subscribe(4 args) -> #6517
  • [x] Removal of Observable.subscribe(4 args) -> #6517
  • [x] Removal of Single.toCompletable() -> #6517
  • [x] Removal of Completable.blockingGet() -> #6517
  • [x] ConnectableX redesign. -> #6519
  • [x] Test consumer API changes. -> #6526
  • [x] The rename of startWith+1 to startWithItem & startWithIterable -> #6530
  • [x] Bounded replay() with eagerTruncate option -> #6532
  • [x] Removal replay(Scheduler) and its variants. -> #6539
  • [x] Changes to using() order of upstream dispose and resource dispose -> #6534
  • [x] API promotions to standard -> #6537
  • [x] concatMap with Scheduler -> #6538
  • [x] Removal of the no-arg deserialize() -> #6539
  • [x] Removal of onExceptionResumeNext()
  • [x] Removal of buffer(Supplier) and window(Supplier) variants.
  • [x] Rename of onErrorResumeNext(source) to onErrorResumeWith. -> #6551
  • [x] More undeliverable errors reported due to cancellation.
  • [x] Widening of XOnSubscribe interfaces. -> #6579
  • [x] Removal of combineLatest(vararg) & combineLatestDelayError(vararg) -> #6635
  • [x] Removal of zip(O(O)) overload -> #6638
  • [x] Rename of zipIterable to zip -> #6638
  • [x] Change parameter order of concatMapDelayError and concatMapEagerDelayError -> #6638
  • [x] Rename to combineLatestArray -> #6640
  • [x] groupBy abandoned group behavior change -> #6642
  • [x] Flowable.groupBy signaling MissingBackpressureException instead of possibly hanging -> #6740
  • [x] Add fair mode overload to Schedulers.from(Executor) -> #6744
  • [x] Make DisposableContainer public API -> #6745
  • [x] Change CompositeException::getCause() output and message -> #6748
  • [x] window handling abandoned inner windows -> #6758, #6761, #6762
  • [x] Java 8 support -> #6765
  • [x] Disposables utility class inlined into Disposable -> #6781
  • [x] BehaviorProcessor, PublishProcessor and MulticastProcessor offer null-check change. -> #6799
  • [x] MulticastProcessor.offer now throws IllegalStateException when called in fusion mode. -> #6799
  • [x] Add blockingForEach(Consumer, int) overloads -> #6800
  • [x] Removal of fromFuture(..., Scheduler) overloads -> #6814
  • [x] Operators used to throw IndexOutOfBoundsException (skipLast, takeLast, takeLastTimed) now throw IllegalArgumentException for param validation.
  • [x] skip(count) now throws IAE if count < 0
  • [x] Remove Observable.concatMapIterable(Function, int) overload -> #6837
  • [x] Rename combineLatestDelayError(array) to combineLatestArrayDelayError(array) -> #6838
  • [x] Rename Single.equals to Single.sequenceEqual
  • [x] Change input type in Flowable.buffer(openingIndicator) overloads -> #6858
  • [x] Add blockingSubscribe across -> #6862
  • [x] Add Maybe.delayError(..., delayError) overload -> #6864
  • [x] Add onErrorComplete across -> #6867
  • [x] Add onErrorResumeWith across -> #6868
  • [x] Add retryUntil -> #6869
  • [x] Add switchOnNext[DelayError] to M/S/C -> #6870
  • [x] Add Maybe.dematerialize -> #6871
  • [x] Add fromAction, fromRunnable, fromMaybe, fromSingle, fromPublisher, fromObservable -> #6873
  • [x] Changed fromAction and fromRunnable to not execute if cancelled upfront. -> #6873
  • [x] Add timeInterval and timestamp to M/S -> #6874
  • [x] Add toFuture to M/C ->#6875
  • [x] Add ofType to M/S -> #6876
  • [x] Add doOnLifecycle to M/S/C -> #6877
  • [x] Add concatMapX missing across -> #6879
  • [x] Add concatMapXDelayError missing across -> #6881
  • [x] Add Single.mergeArrayX -> #6882
  • [x] Add Completable.sequenceEqual -> #6884
  • [x] Add startWith missing across -> #6885
  • [x] Add Completable.onErrorReturn[Item] -> #6886
  • [x] Add safeSubscribe to M/S/C -> #6887
  • [x] Swap Maybe.flatMapSingle and Maybe.flatMapSingleElement -> #6891
  • [x] Add Single.flatMap(F, F) and Single.flatMap(F, Bi) operators -> #6893
  • [x] Add concatEager(Iterator, int) and concatEagerDelayError across -> #6899
  • [x] Merge as() into to() -> #6514
3.x Documentation

Most helpful comment

The poll indicated only a few people were using it. Replace it with assertNoErrors().assertNotComplete().

All 4 comments

Why was TestObserver#assertNotTerminated removed? That's a useful API IMO

The poll indicated only a few people were using it. Replace it with assertNoErrors().assertNotComplete().

I've written most of the wiki page about the changes.

https://github.com/ReactiveX/RxJava/wiki/What's-different-in-3.0

Still a few dozen new operators are not yet written from this list and from #6776.

Let me know if I've forgotten something else.

Done.

Was this page helpful?
0 / 5 - 0 ratings