Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
RxJava
2.1.4
Maven
API changes
BaseTestConsumer.assertValuesOnly
.Maybe.switchIfEmpty(Single)
.LambdaConsumerIntrospection
for detecting the lack ofonError
callback insubscribe()
calls.Documentation changes
NullPointerException
comment to someSingle
operators.Single
in someObservable
operators.Bugfixes
Observable.combineLatestDelayError
sync initial error not emitting.BaseTestConsumer.assertValueSequence
reversed error message.Observable.concatMapEager
queueing of source items.Other
Single.timeout
unnecessary dispose calls.2.1.3
Maven
Dependency updates
The Reactive-Streams dependency has been updated to version 1.0.1. This new version contains documentation changes and TCK (Test Compatibility Kit) fixes that doesn't affect RxJava's frontend. Other libraries that were using version 1.0.0 should have no issue running with 1.0.1.
JDK 9 compatibility
RxJava 2 from now on is compatible with JDK 9, verified in a separate project whenever a new (non-trivial) update of the JDK or RxJava happens.
Compatibility means the RxJava 2 source code compiles with JDK 9 (targets 6, 8 and 9) and the unit tests pass.
API changes
assertValueAt(int, value)
toTestObserver
/TestConsumer
.Documentation changes
Observable
marbles (07/30) via Issue 5319 comments.Schedulers
.Bugfixes
null
check to fusedObservable.fromCallable
.Other
2.1.2
Maven
Documentation changes
Observable
class' javadoc.Async
andPublish
processors javadoc.combineLatest
operators accepting unspecified number of sources.subscribeOn
.Flowable
andObservable
reduce.F.reduce(seed, reducer)
,F.reduceWith(seedSupplier, reducer)
andO.reduce(seed, reducer)
.Maybe.defaultIfEmpty
regardingtoSingle
.Bugfixes
ReplaySubject.getValue()
inconsistency withgetValues()
on old items.concat
to reportisDisposed
consistently with termination.FlowableWithLatestFrom
not requesting more when the other hasn't emitted yet.ReplayProcessor
backpressure andNotificationLite
emission bug.SpscLinkedArrayQueue
.Single.delaySubscription
methods.Other
@ NonNull
annotation inConsumer
method parameter.@ NonNull
annotation fromFunction
.FlowableTimeoutTimed
instead of anAtomicReference
.Schedulers.io()
javadoc{link
missing the@
symbol.withLatestFrom
conditional subscriber, test cold consumption.2.1.1
Maven
Notable changes
The emitter API (such as
FlowableEmitter
,SingleEmitter
, etc.) now features a new method,tryOnError
that tries to emit theThrowable
if the sequence is not cancelled/disposed. Unlike the regularonError
, if the downstream is no longer willing to accept events, the method returns false and doesn't signal anUndeliverableException
.API enhancements
tryOnError
tocreate/XEmitter
API.subscribeOn
overload to avoid same-pool deadlock with create.Documentation changes
Maybe.toSingle
.FunctionX
Observable
Action1
withConsumer
in docs.SingleFlatMapIterableObservable
.Single.doAfterTeminate
mentioningdoAfterSuccess
.DefaultObserver
javadoc fix: use subscribe, remove disposable code.DefaultSubscriber
javadoc sample fix.Observable.reduce()
andObservable.reduceWith()
.Single.delay
documentation.Bugfixes
interval+trampoline
can be stopped.SingleMap
not allow map function return null.doOnNext
failure not triggeringdoOnError
when fused.buffer(time, maxSize)
duplicating buffers on time-size race.Other
VolatileSizeArrayList
asRandomAccess
listBaseTestConsumer.assertValueSequence
.rx2.buffer-size
to 1.2.1.0
Maven
Summary
Version 2.1.0 is the next minor release of the 2.x era and contains the standardization of many experimental API additions from the past half a year since version 2.0.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
CheckReturnValue
CompletableSubject
,MaybeSubject
,SingleSubject
TestWaitStrategy
Operators
Flowable
:doAfterNext
,doFinally
,sample
(emitLast)Observable
:doAfterNext
,doFinally
,sample
(emitLast)Single
:doAfterSuccess
,doAfterTerminate
,doFinally
Maybe
:doAfterSuccess
,doFinally
,flatMapSingleElement
Completable
:cache
,doFinally
,hide
Test{Observer, Subscriber}
:assertNever
,assertTimeout
,assertNoTimeout
,awaitCount
,clearTimeout
,isTimeout
,withTag
RxJavaPlugins
:createComputationScheduler
,createIoScheduler
,createNewThreadScheduler
,createSingleScheduler
,getOnBeforeBlocking
,setOnBeforeBlocking
,isFailOnBlockingScheduler
,setFailOnBlockingScheduler
.Scheduler.when
,TestSubscriber.requestMore
(For the complete list and details on the promotions, see issue 5243.)
Release 2.1.0 is functionally identical to 2.0.9 except the removal of now unnecessary
Flowable.strict()
operator. To clarify, just like with previous minor version increments with RxJava, there won't be any further development or updates on the version 2.0.x (patch) level.Beta promotions
Some of the enhancements of RxJava 2.0.x were added recently which often represent complex additions to RxJava itself (such as the whole
ParallelFlowable
). We are confident their functionality adds value to the library but not enough time elapsed since their introduction for the community to try it out and provide feedback on them (i.e., naming, encompassed functionality, etc.). To indicate we are willing to support them and eventually standardize them in the next minor release, the following components have been promoted to the status ofBeta
:OnErrorNotImplementedException
,ProtocolViolationException
,UndeliverableException
,ParallelFlowable
FlowableSubscriber
Flowable
:parallel
,subscribe(FlowableSubscriber)
RxJavaPlugins
:getOnParallelAssembly
,onAssembly(ParallelFlowable)
,setOnParallelAssembly
Non-functional changes between 2.0.9 and 2.1
ObservableSource.defer
toObservable.defer
inObservable.scan()
documentation.Flowable.toObservable
referring toPublisher
instead ofObservable
.Project statistics
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):
@ vanniktech, @ veyndan, @ mauin, @ smartbeng, @ ImangazalievM, @ bloderxd, @ mibac138, @ ggikko, @ mostroverkhov, @ sadegh, @ nmorioka, @ SleimanJneidi, @ davidmoten, @ hkurokawa, @ jbarr21, @ alexandre-dubois, @ VeskoI, @ Stephan202, @ PaulWoitaschek, @ soulkeykim, @ stevepeak, @ jschneider, @ JakeWharton, @ tonycosentini, @ hzsweers, @ passsy, @ sergiomarquesmoura, @ ikesyo, @ benjchristensen, @ zsavely, @ DDesideria, @ gaemi, @ Jawnnypoo, @ artem-zinnatullin, @ mkobit, @ abersnaze, @ tbcs, @ gengjiawen, @ qwert2603, @ DmitriyZaitsev
(40 contributors)
The project would also thank its tireless reviewers, @ JakeWharton and @ vanniktech for all their efforts on verifying and providing feedback on the many PRs from the project lead himself. 👍