RxJava 是一个基于Reactive Extensions的JVM实现框架
RxJava 是一个基于Reactive Extensions的JVM实现框架,它通过观察者队列的做法,将消息的异步处理与基于事件的编程进行很好地结合。Bugfixes
- Fix
Flowable.groupBy
eviction logic double decrement and hang. (#6975) - Fix
Flowable.groupBy
cancellation/cleanup/eviction race hangs. (#6979) - Disable fusion on the groups of
Flowable.groupBy
. (#6983) - Fix
Flowable.groupBy
eviction-completion-replenishment problems. (#6988) - Removed unnecessary
upstream.cancel()
call for casually finished upstream sequences. (#6992)
Assets
2
Bugfixes
Assets
2
Bugfixes
- Pull 6894: Fix
groupBy
not requesting more if a group is cancelled with buffered items.
Assets
2
We are happy to announce the release of RxJava 3.0.0 final.
Please read the wiki page What's different in 3.0 for the details on the various changes compared to RxJava 2.x. The page also doubles as a migration guide.
Please read the wiki page carefully before posting about common and expected migration issues such as wrong imports, changed or missing methods or using the wrong maven address.
The project would like to thank the following contributors for their tireless effors improving RxJava 3:
vjgarciag96, slisaasquatch, pestrada, JLLeitschuh, dvolkovv, JakeWharton, hepin1989, richardkapolnai-da, JosemyDuarte, io7m, arriolac, davidmoten, vanniktech, RomanWuattier, Erlkoenig90, hluhovskyi, luis-cortes, slievrly, maksim-m
In addition, we would like to thank our regular and diligent reviewers, @JakeWharton and @vanniktech for their continued support of the project.
Changes since 3.0.0-RC9
There were no functional, API or behavior changes since RC9.
3.0.0 development statistics
Time: 8 months 8 days; or 253 days since the fork from 2.2.7.
Issues closed: 107
PRs: 178
Files
- Changed: 3,538
- Lines aded: 465,505
- Lines deleted: 420,753
Assets
2
This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups. Please check out the wiki page What's different in 3.0 from time to time for the details and migration guide.
API changes
- Rename
Single.equals
toSingle.sequenceEqual
. (#6856) - Change some
Flowable.buffer
overload signatures to usePublisher
as input. (#6895) - Add
delayError
overload toMaybe.delay
. (#6864) - Add
Maybe
/Single
/Completable
blockingSubscribe
. (#6862) - Add
onErrorComplete
toFlowable
,Observable
andSingle
. (#6867) - Add
Completable.onErrorResumeWith
. (#6868) - Add
Single
/Completable
retryUntil
. (#6869) - Add
Maybe
/Single
/Completable
switchOnNext
&switchOnNextDelayError
. (#6870) - Add
Maybe.dematerialize
. (#6871) - Add missing
fromX
operators. (#6873) - Add
Maybe
/Single
timeInterval
×tamp
. (#6874) - Add
Maybe
/Completable
toFuture
. (#6875) - Add
Single.ofType
. (#6876) - Add
Maybe
/Single
/Completable
doOnLifecycle
. (#6877) - Add various
concatMapX
operators (aliases). (#6879) - Add various
concatXDelayError
operators. (#6881) - Add
Single.mergeArray
&mergeArrayDelayError
. (#6882) - Add
Completable.sequenceEqual
. (#6884) - Add missing
startWith
overloads. (#6885) - Add
Completable.onErrorReturn[Item]
. (#6886) - Add
safeSubscribe
toMaybe
,Single
&Completable
. (#6887) - Swap
Maybe.flatMapSingle
andMaybe.flatMapSingleElement
, remove the latter. (#6891) - Add
Single.flatMap
overloads with combiner and notification selector mode (#6893) - Add
concatEager(Iterator, int)
toMaybe
andSingle
. (#6899) - And
concatEagerDelayError
toFlowable
,Observable
,Maybe
andSingle
. (#6899)
Bugfixes
- Fix
Flowable.groupBy
not requesting more if a group is cancelled with items still buffered. (#6895)
Documentation enhancements
- Improve Operator-Matrix Wiki with links and notes. (#6857)
- Add last missing
@throws
tag to JavaDocs. (#6860) - Fix many marbles in
Maybe
. (#6866) - Add
Maybe.retryUntil
marble. (#6869) - Add the last set of
Maybe
marble diagrams. (#6897)
Other changes
- Fix method argument naming across types. (#6853)
- Verify the use of base interfaces in operator inputs & lambdas. (#6895)
- Bump
biz.aQute.bnd.gradle
from 4.3.1 to 5.0.0 (#6861) - Use more appropriate operators when delegating to
Flowable
operators. (#6888) - Fix marble dimensions, add program that checks them. (#6890)
Assets
2
This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups. Please check out the wiki page What's different in 3.0 from time to time for the details and migration guide.
API changes
- Remove
fromFuture(..., Scheduler)
overloads. (#6814) - Remove a pointless
concatMapIterable
overload. (#6837) - Rename to
combineLatestArrayDelayError
. (#6838) - Remove
Maybe.onExceptionResumeNext
. (#6844)
Bugfixes
- Fix
Flowable.flatMap
not canceling the inner sources on outer error. (#6826)
Documentation enhancements
- Prettify
Flowable
JavaDocs + validator. (#6806) - Improve JavaDocs of
Completable
and some others. (#6809) - Improve JavaDocs of
Single
(#6812) - Improve JavaDocs of
Maybe
(#6815) - Improve JavaDocs of
Observable
and fix similar issues elsewhere (#6831) - Cleanup JavaDocs for parameter validation all around. (#6835)
- Improve wording of operators. (#6843)
- Add operator matrix wiki + auto-extractor. (#6845)
- Simplify
@return
sentences in JavaDocs (#6847)
Other changes
- Bump
junit
from 4.12 to 4.13 (#6810) - Enable javac parameter saving in class files. (#6839)
- Bump
build-info-extractor-gradle
from 4.12.0 to 4.13.0 (#6808) - Add nullability annotations to type arguments. (#6840)
- Deleted unnecessary NPE tests. (#6846)
- Add Official Gradle Wrapper Validation GitHub Action. (#6848)
Assets
2
Assets
2
For Android development, the latest Android Studio is always recommended which is already able to desugar many Java 8 constructs. The upcoming AS 4 will support even more desugaring for older API levels. Until then, one should stick to the non-Java 8 standard methods so the Java 8 methods can be ignored by AS.
This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups. Please check out the wiki page What's different in 3.0 from time to time for the details and migration guide.
Behavior changes
- Change how the cause of
CompositeException
is generated. (#6748) - Change
Flowable.window
(size, time) abandonment. (#6758) - Change
Observable.window
(size & time) abandonment. (#6761) - Change
window
(boundary, start/end) cancel and abandonment. (#6762) - [Java 8] Upgrade to Java 8 baseline. (#6765)
- Change
XProcessor.offer
to throwNullPointerException
immediately. (#6799)
API changes
- [Java 8] Add
fromOptional
,fromCompletionStage
,fromStream
operators toFlowable
. (#6765) - [Java 8] Add
FunctionalInterface
annotations. (#6773) - [Java 8] Add
mapOptional
,collector
,{first|last|single}Stage
operators toFlowable
. (#6775) - [Java 8] Add
AutoCloseable
<->Disposable
conversions. (#6780) - [Java 8] Add
blockingStream
&flatMapStream
operators toFlowable
. (#6779) - [Java 8] Migrate
Disposables
static factories toDisposable
interface. (#6781) - [Java 8] Add
fromOptional
,fromCompletionStage
,mapOptional
andtoCompletionStage
toMaybe
/Single
/Completable
. (#6783) - Widen
{Flowable|Observable|Maybe|Single|Completable|ParallelFlowable}Operator
throws declaration toThrowable
. (#6785) - [Java 8] Add
@NonNull
&@SafeVarargs
annotations. (#6791) - Add missing
@NonNull
,@CheckReturnValue
, etc. annotations. (#6795) - [Java 8] Add the new operators to
Observable
. (#6797) - [Java 8] Add
ParallelFlowable
operators and add missing annotations to existing operators. (#6798) - Add
blockingForEach(Consumer, int)
overload. (#6800) - [Java 8] Add
flattenStreamAsFlowable
andflattenStreamAsObservable
toMaybe
andSingle
. (#6805)
Bugfixes
- Fix
Observable
amb
,combineLatest
&zip
ArrayStoreException
. (#6756) - Fix
Flowable.window
(size, time) cancellation and abandonment. (#6758) - Fix
Observable.window
(size & time) cancellation and abandonment. (#6761) - Fix
window
(boundary, start/end) cancel and abandonment. (#6762)
Documentation enhancements
- Update
observeOn
docs with links and +backpressure explanation. (#6750) - Fix typo in
Flowable
javadoc. (#6760) - Javadocs
package-info
made nicer. (#6778) - [Java 8] Update README regarding Java 8. (#6778)
- Nicen
Disposable
Javadocs. (#6780) - Cleanup and prettify Javadocs (#6785)
Other changes
- Do not update snapshot Javadocs from secondary branches. (#6752)
- Remove
ObjectHelper.requireNonNull(long, String)
. (#6769) - [Java 8] Replace some
ObjecsHelper
methods with Java 8 APIs. (#6770) - [Java 8] Replace
ObjectHelper.requireNonNull
withObjects.requireNonNull
. (#6771) - [Java 8] Diamond operators in unit tests,
flowable
package. (#6787) - [Java 8] Diamond operators in unit tests,
observable
package. (#6786) - [Java 8] Diamond operators in various unit tests. (#6788)
- [Java 8] Diamond operators in unit tests, small packages. (#6789)
- [Java 8] Remove now unnecessary unchecked warning suppressions. (#6790)
- [Java 8] Add
@NonNull
&@SafeVarargs
annotations validator. (#6791) - [Java 8] Fix many diamonds. (#6795)
- [Java 8]
Observable
operator cleanup. (#6797) - [Java 8]
ParallelFlowable
operator cleanup. (#6798) - Add missing
throwIfFatal
calls (#6801) - [Java 8] Fix diamonds, spelling, unnecessary code. (#6804)
Assets
2
This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups.
Please check out the wiki page What's different in 3.0 from time to time for the details and migration guide.
Behavior changes
- Change
Flowable.groupBy
to signalMissingBackpressureException
instead of possibly hanging. (#6740)
API changes
- Add fair mode overload to
Schedulers.from(Executor)
(#6744) - Make
DisposableContainer
public API (#6745)
Bugfixes
- Fix
parallel()
on groupedFlowable
not replenishing properly. (#6719)
Documentation enhancements
Assets
2
Bugfixes
- Pull 6715: Fix
MulticastProcessor
not requesting more after limit is reached. - Pull 6710: Fix concurrent
clear
inobserveOn
while output-fused. - Pull 6720: Fix
parallel()
on grouped flowable not replenishing properly.
Documentation changes
- Pull 6722: Update javadoc for
observeOn
to mention its eagerness.
Other changes
- Pull 6704: Add ProGuard rule to avoid
j.u.c.Flow
warnings due to RS 1.0.3.
Assets
2
This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups.
Please check out the wiki page What's different in 3.0 from time to time for the details and migration guide.
Bugfixes
- Fix concurrent clear in
observeOn
while output-fused. (#6708) - Fix
MulticastProcessor
not requesting more after limit is reached. (#6714)
Documentation enhancements
- Update javadoc for
observeOn
to mention its eagerness. (#6700)
Other
- Embed R8 ProGuard rules to ignore Flow* interfaces in RS 1.0.3 (#6706)
Assets
2
This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups.
Please check out the wiki page What's different in 3.0 from time to time for the details and migration guide.
Bugfixes
- Fix
groupBy
group emission in some cases. (#6664) - Fix concurrent
clear()
calls when fused chains are canceled. (#6676) - Fix
window(time)
possible interrupts while terminating. (#6674)
Documentation enhancements
- Add missing marble diagrams to
Single
. (#6668)
Other
- Add Export-Package declarations for OSGi headers. (#6675)
Assets
2
Dependencies
- Commit cc690ff2: Upgrade to Reactive Streams 1.0.3.
Bugfixes
- Commit cc690ff2: Avoid using
System.getProperties()
. - Pull 6653: Fix
takeLast(time)
last events time window calculation. - Pull 6657: Fix size+time bound
window
not creating windows properly.
Assets
2
This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups.
Please check out the wiki page What's different in 3.0 from time to time for the details and migration guide.
Dependency changes
- Upgrade to Reactive Streams 1.0.3. (#6633)
API changes
- Remove vararg overloads for
combineLatest
inObservable
+Flowable
. (#6635) - Rename
zipIterable
, removezip(O(O))
, adjustconcatMapX
argument order. (#6638) - Rename
combineLatest
methods that take an array tocombineLatestArray
. (#6640) - Remove
limit
and make its backpressure behavior default intake
(#6650)
Behavior changes
groupBy
will now close groups that do not get subscribed synchronously in order to avoid group leaks and upstream cancellation issues. (#6642)take
now limits the maximum upstream request amount to the provided value instead of requesting unbounded. (#6650)
Bugfixes
- Fix
blockingIterable
not unblocking when force-disposed. (#6626) - Fix
groupBy
not canceling upstream due to group abandonment. (#6642) - Fix
takeLast(time)
last events time window calculation. (#6648) - Fix size+time bound
window
not creating windows properly (#6652)
Documentation enhancements
No changes in this release.
Other
Assets
2
Version 3.0.0-RC2 - August 20, 2019 (Maven)
This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups.
Please check out the wiki page What's different in 3.0 from time to time for the details and migration guide.
Major change
After considering several factors, the components of RxJava 3 have been moved to a new base package to avoid class file conflicts due to having v2 and v3 in the same project. The new base package is io.reactivex.rxjava3
and the base types will live in io.reactivex.rxjava3.core
:
Name | v2 | v3 |
---|---|---|
Base package | io.reactivex |
io.reactivex.rxjava3 |
Flowable |
io.reactivex.Flowable |
io.reactivex.rxjava3.core.Flowable |
PublishSubject |
io.reactivex.subjects.PublishSubject |
io.reactivex.rxjava3.subjects.PublishSubject |
ConnectableObservable |
io.reactivex.observables.ConnectableObservable |
io.reactivex.rxjava3.observables.ConnectableObservable |
Function |
io.reactivex.functions.Function |
io.reactivex.rxjava3.functions.Function |
etc. |
Flowable
s of the two versions can talk to each other without bridges because both implement the Reactive Streams' interfaces such as Publisher
:
io.reactivex.Flowable.range(1, 10)
.flatMap(v -> io.reactivex.rxjava3.core.Flowable.just(v * 10))
.subscribeWith(new io.reactivex.rxjava3.subscribers.TestSubscriber<>())
.assertResult(10, 20, 30, 40, 50, 60, 70, 80, 90, 100);
The other reactive types do not share such base interfaces (they have their own respective copies) and will require bridges, likely provided via 3rd party libraries as with v1->v2 or v1->v3 bridges.
Dependency changes
- Upgrade to Reactive Streams 1.0.3-RC1 (#6621)
API changes
- Widen throws on the
XOnSubscribe
interfaces (#6579)
Behavior changes
- Constrain upstream requests of
elementAt
andfirst
operators (#6620)
Bugfixes
- Fix
switchMaps
inconsistency swallowing errors when cancelled (#6572) - Fix
ObservableBlockingSubscribe
compares TERMINATED with wrong object (#6577) - Fix truncation bugs in
replay()
andReplaySubject
/Processor
(#6582) - Fix
mergeWith
not cancelling the other source if the main errors (#6598) - Fix
refCount
not resetting when termination triggers cross-cancel (#6609) - Fix many operators swallowing undeliverable exceptions (#6612)
- Fix
switchMap
incorrect sync-fusion & error management (#6616)
Documentation enhancements
No changes in this release.
Other
Assets
2
Bugfixes
- Pull 6560: Fix NPE when debouncing an empty source.
- Pull 6599: Fix
mergeWith
not canceling other when the main fails. - Pull 6601:
ObservableBlockingSubscribe
compares with wrong object. - Pull 6602: Fix truncation bugs in
replay()
andReplaySubject
/Processor
.
Documentation changes
- Pull 6565: Fix JavaDocs of
Single.doOnTerminate
refer toonComplete
notification.
Assets
2
This is an early release for 3.0.0 to allow preparations for the breaking API changes and cleanups.
Please check out the wiki page What's different in 3.0 from time to time for the details and migration guide.
API changes
- Rename
onErrorResumeNext(<source>)
toonErrorResumeWith(<source>)
to avoid lambda ambiguity withonErrorResumeNext(Function)
. (#6550) - Remove
buffer(Supplier)
variants (#6564) - Remove
window(Supplier)
variants (#6564) - Remove
onExceptionResumeNext
(#6564)
Behavior changes
No behavior changes in this release.
Bugfixes
- Fix NPE when debouncing empty source (#6559)
Documentation enhancements
- Fix wording in Single javadocs (#6566)
Other
Assets
2
This is an early release for 3.0.0 to verify the release process still works for the new artifact location.
This release note does not detail the changes since 2.2.x. Please check out the wiki page What's different in 3.0 from time to time for the details and migration guide.
API changes
- Add eager truncation to bounded
replay()
to avoid item retention (#6532) - Add
X.fromSupplier()
(#6529) - Add
concatMap
withScheduler
guaranteeing where the mapper function runs (#6538) - Add
startWithItem
&startWithIterable
(#6530) ConnectableFlowable
/ConnetableFlowable
redesign (#6519)- Merge
as()
intoto()
(#6514) - Change
Maybe.defaultIfEmpty()
to returnSingle
(#6517) - Widen functional interface throws, replace
Callable
withSupplier
in operator signatures (#6511) - Promote Beta/Experimental operators to Standard (#6537)
- Remove
getValues()
from some subjects/processors (#6516) - Remove methods from test consumers, make internal versions (#6526)
- Remove
replay(Scheduler)
and its overloads (#6539) - Remove
dematerialize()
(#6539) - Remove
startWith(T|Iterable)
(#6530) - Remove
as()
(#6514) - Remove
Maybe.toSingle(T)
(#6517) - Remove
Flowable.subscribe(4 args)
(#6517) - Remove
Observable.subscribe(4 args)
(#6517) - Remove
Single.toCompletable()
(#6517) - Remove
Completable.blockingGet()
(#6517)
Behavior changes
- Make
using()
resource disposal order consistent with eager-mode (#6534) ConnectableFlowable
/ConnetableFlowable
redesign (#6519)- Add eager truncation to bounded
replay()
to avoid item retention (#6532)
Bugfixes
- Fix
concatMapDelayError
not continuing on fused inner source crash (#6523) - Sync up with 2.2.10 snapshot (#6507)
- Merge in changes from 2.x since the initial branching (#6498)
Documentation enhancements
- Clarify create emitters are per consumer (#6535)
- Add marbles to
X.fromSupplier
(#6531) - Sync up with 2.2.10 snapshot (#6507)
- Merge in changes from 2.x since the initial branching (#6498)
Other
Assets
2
Bugfixes
- Pull 6442: Add missing undeliverable error handling logic for
Completable.fromRunnable
&fromAction
operators.
Documentation changes
- Pull 6432: Improve the docs of
CompositeDisposable
. - Pull 6434: Improve subjects and processors package doc.
- Pull 6436: Improve
Creating-Observables
wiki doc.
Other
- Pull 6433: Make error messages of parameter checks consistent.
Assets
2
Assets
2
API enhancements
- Pull 6370: Add interruptible mode via the new
Schedulers.from(Executor, boolean)
overload.
Bugfixes
- Pull 6359: Fix the error/race in
Observable.repeatWhen
due to flooding repeat signal. - Pull 6362 : Fix
Completable.andThen(Completable)
not running onobserveOn
'sScheduler
. - Pull 6364: Fix
Flowable.publish
not requesting upon client change. - Pull 6371: Fix bounded
replay()
memory leak due to bad node retention. - Pull 6375: Don't dispose the winner of
{Single|Maybe|Completable}.amb()
. - Pull 6380: Fix
CompositeException.getRootCause()
detecting loops in the cause graph.
Documentation changes
- Pull 6365: Indicate source disposal in
timeout(fallback)
.
Other changes
- Pull 6353: Use
ignoreElement
to convertSingle
toCompletable
in theREADME.md
.
Assets
2
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
Assets
2
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.
Assets
2
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
.
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.
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:
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
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.
Other changes
2.1.14-RC1
akarnokd released this
Release candidate for 2.1.14 testing the automatic JavaDoc pushback for release mode.
Please ignore this release and any subsequent RCx in case the pushback doesn't work properly.
API changes
- Pull 5957: Add
Single.ignoreElement
, deprecateSingle.toCompletable
(will be removed in 3.0).
Documentation changes
- Pull 5936: Fix
Completable.toMaybe()
@return
javadoc. - Pull 5948: Fix
Observable
javadoc mentioningdoOnCancel
instead ofdoOnDispose
. - Pull 5951: Update
blockingX
JavaDoc to mention wrapping of checked Exceptions.
Bugfixes
- Pull 5952: Fixed conditional iteration breaking in
AppendOnlyLinkedArrayList.forEachWhile
. - Pull 5972: Fix
Observable.concatMapSingle
dropping upstream items.
Other changes
RxJava 1.x is now officially end-of-life (EOL). No further developments, bugfixes, enhancements, javadoc changes or maintenance will be provided by this project after version 1.3.8 and after today.
Users are encouraged to migrate to 2.x. In accordance, the wiki will be updated in the coming months to describe 2.x features and properties.
Bugfixes
- Pull 5935: Fix
take()
to route late errors toRxJavaHooks
.
API changes
- Pull 5871: Add
Flowable.concatMapCompletable{DelayError}
operator. - Pull 5870: Add
Flowable.switchMapCompletable{DelayError}
operator. - Pull 5872: Add
Flowable.concatMap{Maybe,Single}{DelayError}
operators. - Pull 5873: Add
Flowable.switchMap{Maybe,Single}{DelayError}
operators. - Pull 5875: Add
Observable
switchMapX
andconcatMapX
operators. - Pull 5906: Add public constructor for
TestScheduler
that takes the initial virtual time.
Performance enhancements
- Pull 5915: Optimize
Observable.concatMapCompletable
. - Pull 5918: Improve the scalar source performance of
Observable.(concat|switch)Map{Completable|Single|Maybe}
. - Pull 5919: Add fusion to
Observable.switchMap
inner source.
Documentation changes
- Pull 5863: Expand the documentation of the
Flowable.lift()
operator. - Pull 5865: Improve the JavaDoc of the other
lift()
operators. - Pull 5876: Add note about
NoSuchElementException
toSingle.zip()
. - Pull 5897: Clarify
dematerialize()
and terminal items/signals. - Pull 5895: Fix
buffer()
documentation to correctly describeonError
behavior.
Bugfixes
- Pull 5887: Fix
window(Observable|Callable)
upstream handling. - Pull 5888: Fix
Flowable.window(Publisher|Callable)
upstream handling. - Pull 5892: Fix the extra retention problem in
ReplaySubject
. - Pull 5900: Fix
Observable.flatMap
scalarmaxConcurrency
overflow. - Pull 5893: Fix
publish(-|Function)
subscriber swap possible data loss. - Pull 5898: Fix excess item retention in the other
replay
components. - Pull 5904: Fix
Flowable.singleOrError().toFlowable()
not signallingNoSuchElementException
. - Pull 5883: Fix
FlowableWindowBoundary
not cancelling the upstream on a missing backpressure case, causingNullPointerException
.
Other changes
- Pull 5890: Added
@Nullable
annotations to subjects. - Pull 5886: Upgrade the algorithm of Observable.timeout(time|selector) operators.
- Coverage improvements
- Pull 5883: Improve coverage and fix small mistakes/untaken paths in operators.
- Pull 5889: Cleanup, coverage and related component fixes
- Pull 5891: Improve coverage & related cleanup 03/05.
- Pull 5905: Coverage improvements, logical fixes and cleanups 03/08.
- Pull 5910: Improve coverage, fix operator logic 03/12.
API changes
- Pull 5845: Add efficient
concatWith(Single|Maybe|Completable)
overloads toFlowable
andObservable
. - Pull 5847: Add efficient
mergeWith(Single|Maybe|Completable)
overloads toFlowable
andObservable
. - Pull 5860: Add
Flowable.groupBy
overload with evicting map factory.
Documentation changes
- Pull 5824: Improve the wording of the
share()
JavaDocs. - Pull 5826: Fix
Observable.blockingIterable(int)
and addObservable.blockingLatest
marbles. - Pull 5828: Document size-bounded
replay
emission's item retention property. - Pull 5830: Reword the
just()
operator and reference other typical alternatives. - Pull 5834: Fix copy-paste errors in
SingleSubject
JavaDoc. - Pull 5837: Detail
distinct()
anddistinctUntilChanged()
in JavaDoc. - Pull 5841: Improve JavaDoc of
Observer
,SingleObserver
,MaybeObserver
andCompletableObserver
. - Pull 5843: Expand the JavaDocs of the
Scheduler
API. - Pull 5844: Explain the properties of the
{Flowable|Observable|Single|Maybe|Completable}Emitter
interfaces in detail. - Pull 5848: Improve the wording of the
Maybe.fromCallable
JavaDoc. - Pull 5856: Add finite requirement to various collector operators' JavaDoc.
Bugfixes
- Pull 5833: Fix
Observable.switchMap
mainonError
not disposing the current inner source.
Other changes
API changes
- Pull 5799: Add missing
{Maybe|Single}.mergeDelayError
variants.
Performance improvements
- Pull 5790: Improve request accounting overhead in
Flowable
retry
/repeat
.
Documentation changes
- Pull 5783: Fix JavaDoc wording of
onTerminateDetach
. - Pull 5780: Improve
BehaviorSubject
JavaDoc + related clarifications. - Pull 5781: Describe
merge()
error handling. - Pull 5785: Update
Maybe doOn{Success,Error,Complete}
JavaDoc. - Pull 5786: Add error handling section to
merge()
operator JavaDocs. - Pull 5802: Improved
XSubject
JavaDocs. - Marble diagram fixes to
Observable
: - Pull 5816: Add
Subject
andProcessor
marbles.
Bugfixes
Watchers:2328 |
Star:44086 |
Fork:7327 |
创建时间: 2013-01-09 04:11:48 |
最后Commits: 17天前 |
许可协议:Apache-2.0 |
0811a65
Compare
Verified
Maven
JavaDocs
API
onBackpressureReduce
operators (#7124, #7129)Documentation
Other