Skip to content

3.0.0-RC2 release preparations #6622

Closed
Closed
@akarnokd

Description

@akarnokd

Version 3.0.0-RC2 - August 20, 2019 (Maven)

Javadocs

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.

Flowables 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

API changes

Behavior changes

Bugfixes

Documentation enhancements

No changes in this release.

Other

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions