Releases: ReactiveX/RxJava
2.2.5
Documentation changes
- Pull 6344: Use correct return type in JavaDocs documentation in
elementAtOrDefault
. - Pull 6346: Fix JavaDoc examples using markdown instead of
@code
.
Wiki changes
- Pull 6324: Java 8 version for Problem-Solving-Examples-in-RxJava.
- Pull 6343: Update Filtering Observables docs.
- Pull 6351: Updated java example in How-To-Use-RxJava.md file with java 8 version.
Other changes
2.2.4
API changes
- Pull 6278: Add
Maybe
/Single
/Completable
materialize
operator, - Pull 6278: Add
Single.dematerialize(selector)
operator. - Pull 6281: Add
Flowable
/Observable
dematerialize(selector)
operator.
Bugfixes
- Pull 6258: Fix cancel/dispose upon upstream switch for some operators.
- Pull 6269: Call the
doOn{Dispose|Cancel}
handler at most once. - Pull 6283: Fix
Observable.flatMap
to sustain concurrency level. - Pull 6297: Fix refCount eager disconnect not resetting the connection.
Documentation changes
- Pull 6280: Improve the package docs of
io.reactivex.schedulers
. - Pull 6301: Add missing
onSubscribe
null-checks to NPE docs onFlowable
/Observable
subscribe
. - Pull 6303: Fix incorrect image placement in
Flowable.zip
docs. - Pull 6305: Explain the non-concurrency requirement of the
Emitter
interface methods. - Pull 6308: Explain the need to consume both the group sequence and each group specifically with
Flowable.groupBy
. - Pull 6311: Explain that
distinctUntilChanged
requires non-mutating data to work as expected.
Wiki changes
- Pull 6260: Add
generate
examples toCreating-Observables.md
. - Pull 6267: Fix
Creating-Observables.md
docs stlye mistake. - Pull 6273: Fix broken markdown of
How-to-Contribute.md
. - Pull 6266: Update Error Handling Operators docs.
- Pull 6291: Update Transforming Observables docs.
Other changes
- Pull 6262: Use JUnit's assert format for assert messages for better IDE interoperation.
- Pull 6263: Inline
SubscriptionHelper.isCancelled()
. - Pull 6275: Improve the
Observable
/Flowable
cache()
operators. - Pull 6287: Expose the Keep-Alive value of the IO
Scheduler
as System property. - Pull 6321: Fix
Flowable.toObservable
backpressure annotation.
2.2.3
API changes
- Pull 6242: Add timed
Completable.delaySubscription()
operator.
Documentation changes
- Pull 6220: Remove unnecessary 's' from
ConnectableObservable
. - Pull 6241: Remove mention of
io.reactivex.functions.Functions
nonexistent utility class.
Other changes
- Pull 6232: Cleanup
Observable.flatMap
drain logic. - Pull 6234: Add timeout and unit to
TimeoutException
message in thetimeout
operators. - Pull 6236: Adjust
UndeliverableException
andOnErrorNotImplementedException
message to use the full inner exception. - Pull 6244: Add
@Nullable
annotations for blocking methods inCompletable
.
2.2.2
Bugfixes
- Pull 6187: Fix
refCount
termination-reconnect race.
Documentation changes
- Pull 6171: Add explanation text to
Undeliverable
&OnErrorNotImplemented
exceptions. - Pull 6174: Auto-clean up RxJavaPlugins JavaDocs HTML.
- Pull 6175: Explain
null
observer/subscriber return errors fromRxJavaPlugins
in detail. - Pull 6180: Update
Additional-Reading.md
. - Pull 6180: Fix
Flowable.reduce(BiFunction)
JavaDoc; the operator does not signalNoSuchElementException
. - Pull 6193: Add "error handling" java docs section to
fromCallable
& co. - Pull 6199: Fix terminology of cancel/dispose in the JavaDocs.
- Pull 6200: Fix
toFuture
marbles and descriptions.
2.2.1
API changes
- Pull 6143: Add
concatArrayEagerDelayError
operator (expose feature).
Bugfixes
- Pull 6145: Fix boundary fusion of
concatMap
andpublish
operator. - Pull 6158: Make
Flowable.fromCallable
consistent with the otherfromCallable
s. - Pull 6165: Handle undeliverable error in
Completable.fromCallable
viaRxJavaPlugins
. - Pull 6167: Make
observeOn
not letworker.dispose()
get called prematurely.
Performance improvements
- Pull 6123: Improve
Completable.onErrorResumeNext
internals. - Pull 6121:
Flowable.onErrorResumeNext
improvements.
Documentation changes
JavaDocs
- Pull 6095: Add marbles for
Single.timer
,Single.defer
andSingle.toXXX
operators. - Pull 6137: Add marbles for
Single.concat
operator. - Pull 6141: Add marble diagrams for various
Single
operators. - Pull 6152: Clarify
TestObserver.assertValueSet
in docs and via tests. - Pull 6155: Fix marble of
Maybe.flatMap
events toMaybeSource
.
Wiki changes
- Pull 6128: Remove
fromEmitter()
in wiki. - Pull 6133: Update
_Sidebar.md
with new order of topics. - Pull 6135: Initial clean up for Combining Observables docs.
- Pull 6131: Expand
Creating-Observables.md
wiki. - Pull 6134: Update RxJava Android Module documentation.
- Pull 6140: Update Mathematical and Aggregate Operators docs.
2.2.0
Summary
Version 2.2.0 is the next minor release of the 2.x era and contains the standardization of many experimental API additions from the past year since version 2.1.0. Therefore, the following components are now considered stable and will be supported throughout the rest of the life of RxJava 2.x.
Classes, Enums, Annotations
- Annotation: N/A
- Subject:
MulticastProcessor
- Classes:
ParallelFlowable
,UndeliverableException
,OnErrorNotImplementedException
- Enum:
ParallelFailureHandling
- Interfaces:
{Completable|Single|Maybe|Observable|Flowable|Parallel}Emitter
,{Completable|Single|Maybe|Observable|Flowable|Parallel}Converter
,LambdaConsumerIntrospection
,ScheduledRunnableIntrospection
Operators
Flowable
:as
,concatMap{Single|Maybe|Completable}
,limit
,parallel
,switchMap{Single|Maybe|Completable}
,throttleLatest
Observable
:as
,concatMap{Single|Maybe|Completable}
,switchMap{Single|Maybe|Completable}
,throttleLatest
Single
:as
,mergeDelayError
,onTerminateDetach
,unsubscribeOn
Maybe
:as
,mergeDelayError
,switchIfEmpty
Completable
:as
,fromMaybe
,onTerminateDetach
,takeUntil
ParallelFlowable
:as
,map|filter|doOnNext(errorHandling)
˙,sequentialDelayError
Connectable{Flowable, Observable}
:refCount(count + timeout)
Subject
/FlowableProcessor
:offer
,cleanupBuffer
,create(..., delayError)
Test{Observer, Subscriber}
:assertValueAt
,assertValuesOnly
,assertValueSetOnly
(For the complete list and details on the promotions, see PR 6105.)
Release 2.2.0 is functionally identical to 2.1.17. Also to clarify, just like with previous minor version increments with RxJava, there won't be any further development or updates on the version 2.1.x (patch) level.
Other promotions
All Experimental/Beta APIs introduced up to version 2.1.17 are now standard with 2.2.
Project statistics
- Unique contributors: 75
- Issues closed: 283
- Bugs reported: 20
- by community: 19 (95%)
- Commits: 320
- PRs: 296
- Bugs fixed: 39
- by community: 8 (20.51%)
- Documentation enhancements: 117
- by community: 40 (34.19%)
- Cleanup: 50
- by community: 21 (42%)
- Performance enhancements: 12
- by community: 1 (8.33%)
- Lines
- added: 70,465
- removed: 12,373
Acknowledgements
The project would like to thank the following contributors for their work on various code and documentation improvements (in the order they appear on the commit page):
@lcybo, @jnlopar, @UMFsimke, @apodkutin, @sircelsius,
@romanzes, @Kiskae, @RomanWuattier, @satoshun, @hans123456,
@fjoshuajr, @davidmoten, @vanniktech, @antego, @strekha,
@artfullyContrived, @VeskoI, @Desislav-Petrov, @Apsaliya, @sidjain270592,
@Milack27, @mekarthedev, @kjkrum, @zhyuri, @artem-zinnatullin,
@vpriscan, @aaronhe42, @adamsp, @bangarharshit, @zhukic,
@afeozzz, @btilbrook-nextfaze, @eventualbuddha, @shaishavgandhi05, @lukaszguz,
@runningcode, @kimkevin, @JakeWharton, @hzsweers, @ggikko,
@philleonard, @sadegh, @dsrees, @benwicks, @dweebo,
@dimsuz, @levaja, @takuaraki, @PhilGlass, @bmaslakov,
@tylerbwong, @AllanWang, @NickFirmani, @plackemacher, @matgabriel,
@jemaystermind, @ansman, @ganapathi004, @leonardortlima, @pwittchen,
@youngam, @Sroka, @serj-lotutovici, @nathankooij, @mithunsasidharan,
@devisnik, @mg6maciej, @rémon S, @hvesalai, @kojilin,
@ragunathjawahar, @BruceZZ, @paulblessing, @cypressf, @langara
(75 contributors)
The project would also thank its tireless reviewer @vanniktech for all his efforts on verifying and providing feedback on the many PRs from the project lead himself. 👍
2.1.17
API changes
- Pull 6079: Add
Completable.takeUntil(Completable)
operator. - Pull 6085: Add
Completable.fromMaybe
operator.
Performance improvements
- Pull 6096: Improve
Completable.delay
operator internals.
Documentation changes
- Pull 6066: Fix links for
Single
class. - Pull 6070: Adjust JavaDocs
dl
/dd
entry stylesheet. - Pull 6080: Improve class JavaDoc of
Single
,Maybe
andCompletable
. - Pull 6102: Adjust JavaDoc stylesheet of
dt
/dd
within the method details. - Pull 6103: Fix
Completable
mergeX
JavaDoc missingdt
beforedd
. - Pull 6104: Fixing javadoc's code example of
Observable#lift
. - Marble diagrams (Tracking issue 5789)
- Pull 6074:
Single.never
method. - Pull 6075:
Single.filter
method. - Pull 6078:
Maybe.hide
marble diagram. - Pull 6076:
Single.delay
method. - Pull 6077:
Single.hide
operator. - Pull 6083: Add
Completable
marble diagrams (07/17a). - Pull 6081:
Single.repeat
operators. - Pull 6085: More
Completable
marbles. - Pull 6084:
Single.repeatUntil
operator. - Pull 6090: Add missing
Completable
marbles (+17, 07/18a). - Pull 6091:
Single.amb
operators. - Pull 6097: Add missing
Completable
marbles (+19, 07/19a). - Pull 6098: Several more
Completable
marbles (7/19b). - Pull 6101: Final set of missing
Completable
marbles (+26).
- Pull 6074:
2.1.16
2.1.15
API changes
- Pull 6026: Add
blockingSubscribe
overload with prefetch amount allowing bounded backpressure. - Pull 6052: Change
{PublishSubject|PublishProcessor}.subscribeActual
toprotected
. They were accidentally made public and there is no reason to call them outside of RxJava internals.
Documentation changes
- Pull 6031: Inline
CompositeDisposable
JavaDoc. - Pull 6042: Fix
MulticastProcessor
JavaDoc comment. - Pull 6049: Make it explicit that
throttleWithTimout
is an alias ofdebounce
. - Pull 6053: Add
Maybe
marble diagrams 06/21/a - Pull 6057: Use different wording on
blockingForEach()
JavaDocs. - Pull 6054: Expand
{X}Processor
JavaDocs by syncing with{X}Subject
docs.
Performance enhancements
- Pull 6021: Add full implementation for
Single.flatMapPublisher
so it doesn't batch requests. - Pull 6024: Dedicated
{Single|Maybe}.flatMap{Publisher|Observable}
&andThen(Observable|Publisher)
implementations. - Pull 6028: Improve
Observable.takeUntil
.
Bugfixes
- Pull 6019: Fix
Single.takeUntil
,Maybe.takeUntil
dispose behavior. - Pull 5947: Fix
groupBy
eviction so that source is cancelled and reduce volatile reads. - Pull 6036: Fix disposed
LambdaObserver.onError
to route to global error handler. - Pull 6045: Fix check in
BlockingSubscriber
that would always be false due to wrong variable.
Other changes
2.1.14
API changes
- Pull 5976: Add
Single.concatEager()
. - Pull 5986: Add
ConnectableObservable.refCount()
andConnectableFlowable.refCount()
with minimum consumer count & disconnect grace period. - Pull 5979: Add
Observable.throttleLatest
andFlowable.throttleLatest()
. - Pull 6002: Add
MulticastProcessor
. - Pull 6010: Add
assertValueSetOnly
andassertValueSequenceOnly
toTestObserver
/TestSubscriber
.
Deprecations
- Pull 5982: Deprecate
getValues()
inSubject
s/FlowableProcessor
s to be removed in 3.x.
Documentation changes
- Pull 5977:
Maybe
/Single
JavaDocs; annotation cleanup. - Pull 5981: Improve JavaDocs of the
subscribeActual
methods. - Pull 5984: Add
blockingSubscribe
JavaDoc clarifications. - Pull 5987: Add marble diagrams to some
Single.doOnX
methods. - Pull 5992:
Observable
javadoc cleanup.
Bugfixes
- Pull 5975: Fix
refCount()
connect/subscribe/cancel deadlock. - Pull 5978:
Flowable.take
to route post-cancel errors to plugin error handler. - Pull 5991: Fix
switchMap
to indicate boundary fusion.