Releases: ReactiveX/RxJava
2.1.4
API changes
- Pull 5568: Add
BaseTestConsumer.assertValuesOnly
. - Pull 5582: Add
Maybe.switchIfEmpty(Single)
. - Pull 5590: Add
LambdaConsumerIntrospection
for detecting the lack ofonError
callback insubscribe()
calls.
Documentation changes
- Pull 5578: Add
NullPointerException
comment to someSingle
operators. - Pull 5600: Updating JavaDoc with correct return types of
Single
in someObservable
operators.
Bugfixes
- Pull 5560: Fix
Observable.combineLatestDelayError
sync initial error not emitting. - Pull 5594: Fix
BaseTestConsumer.assertValueSequence
reversed error message. - Pull 5609: Fix
Observable.concatMapEager
queueing of source items.
Other
- Pull 5586: fix
Single.timeout
unnecessary dispose calls.
1.3.2
1.3.1
API changes
Remark: submitted & merged before the feature freeze of June 1st.
- Pull 5332: Add the
cast
operator toSingle
.
Bugfixes
2.1.3
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
- Pull 5529: Add
assertValueAt(int, value)
toTestObserver
/TestConsumer
.
Documentation changes
- Pull 5524: Add/update
Observable
marbles (07/30) via Issue 5319 comments. - Pull 5552: Fix a typo in
Schedulers
.
Bugfixes
- Pull 5517: Add missing
null
check to fusedObservable.fromCallable
.
Other
- Pull 5546: Upgrade Reactive-Streams dependency to 1.0.1
2.1.2
Documentation changes
- Pull 5432: Fix/clarify the
Observable
class' javadoc. - Pull 5444: Fix wording in
Async
andPublish
processors javadoc. - Pull 5413: Add empty source clauses to javadocs of
combineLatest
operators accepting unspecified number of sources. - Pull 5465: Fix wording of toList, fix a/an in
subscribeOn
. - Pull 5476: Fix Javadoc for
Flowable
andObservable
reduce. - Pull 5478: Corrected return type in doc for
F.reduce(seed, reducer)
,F.reduceWith(seedSupplier, reducer)
andO.reduce(seed, reducer)
. - Pull 5486: Small note on
Maybe.defaultIfEmpty
regardingtoSingle
.
Bugfixes
- Pull 5434: Fix time bounded
ReplaySubject.getValue()
inconsistency withgetValues()
on old items. - Pull 5440:
concat
to reportisDisposed
consistently with termination. - Pull 5441: Fix periodic scheduler purging config not honored.
- Pull 5494: Fix
FlowableWithLatestFrom
not requesting more when the other hasn't emitted yet. - Pull 5493: Fix
ReplayProcessor
backpressure andNotificationLite
emission bug. - Pull 5507: Fix GC nepotism in
SpscLinkedArrayQueue
. - Pull 5511: Remove unnecessary generic type parameter for the timed
Single.delaySubscription
methods.
Other
- Pull 5447: Remove
@NonNull
annotation inConsumer
method parameter. - Pull 5449: Remove the
@NonNull
annotation fromFunction
. - Commit 4d8f008c: add missing 'the' to the changed sentences of Pull 5413
- Pull 5460: Fix Javadoc mistakes and some style.
- Pull 5466: Use a mutable field in
FlowableTimeoutTimed
instead of anAtomicReference
. - Commit 5d2e8fb4: Fix
Schedulers.io()
javadoc{link
missing the@
symbol. - Pull 5495: Make
withLatestFrom
conditional subscriber, test cold consumption.
2.1.1
Notable changes
The emitter API (such as FlowableEmitter
, SingleEmitter
, etc.) now features a new method, tryOnError
that tries to emit the Throwable
if the sequence is not cancelled/disposed. Unlike the regular onError
, if the downstream is no longer willing to accept events, the method returns false and doesn't signal an UndeliverableException
.
API enhancements
- Pull 5344: Add
tryOnError
tocreate/XEmitter
API. - Pull 5386: Add
subscribeOn
overload to avoid same-pool deadlock with create.
Documentation changes
- Pull 5343: Fix Javadoc for
Maybe.toSingle
. - Pull 5347: Fix Javadoc for
FunctionX
- Pull 5351: Update some marbles of
Observable
- Commit b4aeb6e3: Replace
Action1
withConsumer
in docs. - Pull 5383: Fixed Javadoc for
SingleFlatMapIterableObservable
. - Pull 5403: Fix the copy-paste error in the Javadoc of
Single.doAfterTeminate
mentioningdoAfterSuccess
. - Pull 5405:
DefaultObserver
javadoc fix: use subscribe, remove disposable code. - Pull 5407:
DefaultSubscriber
javadoc sample fix. - Pull 5406: Fix javadoc for
Observable.reduce()
andObservable.reduceWith()
. - Pull 5409: Corrected
Single.delay
documentation.
Bugfixes
- Pull 5367: Make sure
interval+trampoline
can be stopped. - Pull 5378: Make
SingleMap
not allow map function return null. - Pull 5379: Add missing null checks on values returned by user functions.
- Pull 5415: Fix
doOnNext
failure not triggeringdoOnError
when fused. - Pull 5419: Fix periodic scheduling with negative period causing IAE.
- Pull 5427: Fix
buffer(time, maxSize)
duplicating buffers on time-size race.
Other
1.3.0
Summary
Version 1.3.0 is the next minor release of the 1.x series of RxJava containing many formerly experimental API components promoted to standard. Most notably the Completable
base reactive type is now standard as well.
Note that the experimental rx.Observable.fromEmitter()
has been removed in favor for the now also standard Observable.create(Action1<Emitter<T>> emitter, Emitter.BackpressureMode backpressure)
The planned lifecycle of the 1.x line is as follows:
Date | Remark |
---|---|
June 1, 2017 | Feature freeze, only bugfixes from this on. |
September 1, 2017 | Release 1.4.0 finalizing the remaining API components. |
March 31, 2018 | End of development. |
The following components have been promoted to standard:
Classes, interfaces
- classes:
AssemblyStackTraceException
,RxJavaCompletableExecutionHook
,RxJavaHooks
,UnicastSubject
,BlockingSingle
,Completable
,AssertableSubscriber
,AsyncCompletableSubscriber
,SafeCompletableSubscriber
- interfaces:
Cancellable
,Emitter
,SingleEmitter
,CompletableEmitter
,CompletableSubscriber
,BackpressureOverflow.Strategy
Operators
Observable
:create
,unsafeCreate
,to
,zip(Observable[], FuncN)
,flatMapCompletable
,flatMapSingle
,groupby(Func1, Func1, Func1<Action1<K>, Map<K, Object>>)
,onTerminateDetach
,rebatchRequests
,subscribeOn(Scheduler, boolean)
,sorted
,withLatestFrom
,test
,toCompletable
,concatDelayError
,mergeDelayError
,switchOnNextDelayError
,using(Func0, Func1, Action1, boolean)
,concatMapDelayError
,delaySubscription(Observable)
,distinctUntilChanged(Func2)
,concatEager
,concatMapEager
,onBackpressureBuffer(long, Action0, BackpressureOverflow.Strategy)
,switchMapDelayError
,toSortedList(int)
,toSortedList(Func2, int)
Completable
:fromEmitter
,test
Single
:fromEmitter
,merge
,mergeDelayError
,cache
,to
,doOnEach
,doOnSuccess
,test
,onErrorResumeNext
,toCompletable
,doOnError
,doOnSubscribe
,delay
,defer
,doOnUnsubscribe
,doAfterTerminate
,flatMapCompletable
,lift
,toBlocking
,using
,delaySubscription(Observable)
TestSubscriber
:getCompletions
,awaitValueCount
,assertValuesAndClear
SyncOnSubscriber
:createSingleState
,createStateful
,createStateless
Other
Schedulers.reset
CompositeException(Throwable...)
constructorExceptions.throwOrReport
(4 overloads)BlockingObservable.subscribe
(6 overloads)RxJavaSchedulersHook
:createComputationScheduler
,createIoScheduler
,createNewThreadScheduler
- internal:
AssertableSubscriberObservable
,FlatMapCompletable
,FlatMapSingle
,SchedulerWhen
,BackpressureDrainManager
,BlockingUtils
. RxJavaPlugins
:reset
,getCompletableExecutionHook
,registerCompletableExecutionHook
RxJavaErrorHandler
:handleOnNextValueRendering
,render
In addition, the class AsyncOnsubscribe
with its 7 factory methods and Observable.create(AsyncOnSubscribe<S, T>)
have been promoted to beta.
Acknowledgements
Thanks to all who contributed to the 1.x line in the past 6 months (in order they appear on the commit page):
@mtiidla, @dhendry, @mostroverkhov, @yshrsmz, @BraisGabin, @cesar1000, @Jawnnypoo, @chanx2, @abersnaze, @davidmoten, @ortex, @marwinxxii, @ekchang, @pyricau, @JakeWharton, @VictorAlbertos
2.1.0
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
- Annotation:
CheckReturnValue
- Subjects:
CompletableSubject
,MaybeSubject
,SingleSubject
- Enum:
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
.- Other:
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 of Beta
:
- Classes:
OnErrorNotImplementedException
,ProtocolViolationException
,UndeliverableException
,
ParallelFlowable
- Interface:
FlowableSubscriber
- Methods
Flowable
:parallel
,subscribe(FlowableSubscriber)
RxJavaPlugins
:getOnParallelAssembly
,onAssembly(ParallelFlowable)
,setOnParallelAssembly
Non-functional changes between 2.0.9 and 2.1
- Pull 5306: Change
ObservableSource.defer
toObservable.defer
inObservable.scan()
documentation. - Pull 5309: Fix Javadoc of
Flowable.toObservable
referring toPublisher
instead ofObservable
.
Project statistics
- Unique contributors: 41
- Issues closed: 315
- Bugs reported: 43
- by community: 40 (93%)
- Commits: 193
- PRs: 225
- PRs accepted: 198 (88%)
- Community PRs: 76 (38.4% of all accepted)
- Bugs fixed: 58
- by community: 8 (13.9%)
- Documentation enhancements: 46
- by community: 22 (52.2%)
- Cleanup: 40
- by community: 22 (55%)
- Lines
- added: 44,931
- removed: 7,405
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. 👍
1.2.10
2.0.9
API enhancements
- Pull 5302: Add
Single.unsubscribeOn()
.
Bugfixes
- Pull 5247: Fix
Flowable.toList()
onNext
/cancel
race. - Pull 5256: Fix
flatMapIterable
appearing to be empty when fused. - Pull 5277: Fix
Single.subscribe(BiConsumer)
to be consistent withisDisposed
. - Pull 5281: Fix
BehaviorProcessor
&BehaviorSubject
terminate-subscribe race. - Pull 5287: Fix
Flowable.flatMapMaybe
/Flowable.flatMapSingle
maxConcurrency
not requesting more.
Documentation
- Pull 5271: enable link to external JDK, fix
Schedulers
style. - Pull 5286: Cleanup for text and Javadoc 04/15.
- Commit 7c95808: Fix
DisposableX
copy-paste error in Javadoc. - Pull 5296: Improve
doOnDispose
JavaDoc. - Pull 5297: Fix JavaDoc image for
Single.flatMapObservable()
. - Pull 5304: Correct documented return type of
Single.flatMapObservable()
's function argument.
Other
- Pull 5255: Add
NullPointerException
comments andObjectHelper
test code. - Pull 5251: More nullability annotations.
- Pull 5257: Remove
@NonNull
annotations fromBiConsumer
. - Pull 5268: Remove commented out code from
IoScheduler
. - Pull 5301: More detailed no-multi-subscribe error message with the standard consumer types (such as
DisposableObserver
).