Skip to content

Commit da256e7

Browse files
committed
1.x: release 1.1.1 preparations
1 parent fe9badc commit da256e7

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

CHANGES.md

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,75 @@
11
# RxJava Releases #
22

3+
### Version 1.1.1 - January 22, 2016 ([Maven](http://search.maven.org/#artifactdetails%7Cio.reactivex%7Crxjava%7C1.1.1%7C))
4+
5+
#### The new `Completable` class
6+
7+
- [Pull 3444](https://github.com/ReactiveX/RxJava/pull/3444) Completable class to support valueless event composition + tests
8+
9+
##### What is this Completable class?
10+
11+
We can think of a `Completable` object as a stripped version of `Observable` where only the terminal events, `onError` and `onCompleted` are ever emitted; they may look like an `Observable.empty()` typified in a concrete class but unlike `empty()`, `Completable` is an active class. `Completable` mandates side effects when subscribed to and it is its main purpose indeed. `Completable` contains some deferred computation with side effects and only notifies about the success or failure of such computation.
12+
13+
Similar to `Single`, the `Completable` behavior can be emulated with `Observable<?>` to some extend, but many API designers think codifying the valuelessness in a separate type is more expressive than messing with wildcards (and usually type-variance problems) in an `Observable` chain.
14+
15+
`Completable` doesn't stream a single value, therefore, it doesn't need backpressure, simplifying the internal structure from one perspective, however, optimizing these internals requires more lock-free atomics knowledge in some respect.
16+
17+
18+
##### Hello World!
19+
20+
Let's see how one can build a (side-effecting) Hello World `Completable`:
21+
22+
```java
23+
Completable.fromAction(() -> System.out.println("Hello World!"))
24+
.subscribe();
25+
```
26+
27+
Quite straightforward. We have a set of `fromXXX` method which can take many sources: `Action`, `Callable`, `Single` and even `Observable` (stripping any values generated by the latter 3 of course). On the receiving end, we have the usual subscribe capabilities: empty, lambdas for the terminal events, a `rx.Subscriber` and a `rx.Completable.CompletableSubscriber`, the main intended receiver for `Completable`s.
28+
29+
##### Further reading
30+
31+
- [The new Completable API - part 1](http://akarnokd.blogspot.hu/2015/12/the-new-completable-api-part-1.html)
32+
- [The new Completable API - part 2](http://akarnokd.blogspot.hu/2015/12/the-new-completable-api-part-2-final.html)
33+
34+
#### API enhancements
35+
36+
- [Pull 3434](https://github.com/ReactiveX/RxJava/pull/3434) Add Single.doAfterTerminate()
37+
- [Pull 3447](https://github.com/ReactiveX/RxJava/pull/3447) operator DelaySubscription with plain Observable
38+
- [Pull 3489](https://github.com/ReactiveX/RxJava/pull/3489) Rename cache(int) to cacheWithCapacityHint(int)
39+
- [Pull 3539](https://github.com/ReactiveX/RxJava/pull/3539) Add Single.zip() for Iterable of Singles
40+
- [Pull 3562](https://github.com/ReactiveX/RxJava/pull/3562) Add Single.doOnUnsubscribe()
41+
- [Pull 3566](https://github.com/ReactiveX/RxJava/pull/3566) Deprecate Observable.finallyDo() and add Observable.doAfterTerminate() instead
42+
- [Pull 3567](https://github.com/ReactiveX/RxJava/pull/3567) Implemented Observable#toCompletable
43+
- [Pull 3570](https://github.com/ReactiveX/RxJava/pull/3570) Implemented Completable#andThen(Observable)
44+
45+
#### API deprecations
46+
47+
- `cache(int)` via #3489, replaced by `cacheWithCapacityHint(int)`
48+
- `finallyDo(Action0)` via #3566, replaced by `doAfterTerminate(Action0)`
49+
50+
### Performance improvements
51+
52+
- [Pull 3477](https://github.com/ReactiveX/RxJava/pull/3477) add a source OnSubscribe which works from an array directly
53+
- [Pull 3579](https://github.com/ReactiveX/RxJava/pull/3579) No more need to convert Singles to Observables for Single.zip()
54+
- [Pull 3587](https://github.com/ReactiveX/RxJava/pull/3587) Remove the need for javac to generate synthetic methods
55+
- [Pull 3614](https://github.com/ReactiveX/RxJava/pull/3614) just() now supports backpressure
56+
57+
#### Bugfixes
58+
59+
- [Pull 3428](https://github.com/ReactiveX/RxJava/pull/3428) GroupBy backpressure fix
60+
- [Pull 3454](https://github.com/ReactiveX/RxJava/pull/3454) fix: bounded replay() not requesting enough for latecommers
61+
- [Pull 3467](https://github.com/ReactiveX/RxJava/pull/3467) compensate for drastic clock drifts when scheduling periodic tasks
62+
- [Pull 3555](https://github.com/ReactiveX/RxJava/pull/3555) fix toMap and toMultimap not handling exceptions of the callbacks
63+
- [Pull 3585](https://github.com/ReactiveX/RxJava/pull/3585) fix Completable.using not disposing the resource if the factory crashes during the subscription phase
64+
- [Pull 3588](https://github.com/ReactiveX/RxJava/pull/3588) Fix the initialization order in GenericScheduledExecutorService
65+
- [Pull 3630](https://github.com/ReactiveX/RxJava/pull/3630) ConcatMapEager allow nulls from inner Observables.
66+
- [Pull 3637](https://github.com/ReactiveX/RxJava/pull/3637) handle predicate exceptions properly in skipWhile
67+
- [Pull 3638](https://github.com/ReactiveX/RxJava/pull/3638) fix error handling in OperatorDistinctUntilChanged
68+
- [Pull 3639](https://github.com/ReactiveX/RxJava/pull/3639) fix error handling in onBackpressureBuffer
69+
- [Pull 3640](https://github.com/ReactiveX/RxJava/pull/3640) fix error handling in onBackpressureDrop
70+
- [Pull 3644](https://github.com/ReactiveX/RxJava/pull/3644)fix SyncOnSubscribe not signalling onError if the generator crashes
71+
- [Pull 3645](https://github.com/ReactiveX/RxJava/pull/3645)fix Amb sharing the choice among all subscribers
72+
373
### Version 1.1.0 – December 2 2015 ([Maven Central](http://search.maven.org/#artifactdetails%7Cio.reactivex%7Crxjava%7C1.1.0%7C)) ###
474

575
* [Pull 3550] (https://github.com/ReactiveX/RxJava/pull/3550) Public API changes for 1.1.0 release

0 commit comments

Comments
 (0)