Skip to content

Commit d8dff1b

Browse files
authored
Merge pull request #387 from reactive-streams/wip-1.0.1-RC2-√
Updating versions to 1.0.1-RC2 and clarifying changes in RELEASE-NOTE…
2 parents 1a42607 + 61b52f1 commit d8dff1b

File tree

4 files changed

+21
-12
lines changed

4 files changed

+21
-12
lines changed

README.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ The latest release is available on Maven Central as
88
<dependency>
99
<groupId>org.reactivestreams</groupId>
1010
<artifactId>reactive-streams</artifactId>
11-
<version>1.0.1-RC1</version>
11+
<version>1.0.1-RC2</version>
1212
</dependency>
1313
<dependency>
1414
<groupId>org.reactivestreams</groupId>
1515
<artifactId>reactive-streams-tck</artifactId>
16-
<version>1.0.1-RC1</version>
16+
<version>1.0.1-RC2</version>
1717
<scope>test</scope>
1818
</dependency>
1919
```
@@ -83,7 +83,7 @@ followed by a possibly unbounded number of `onNext` signals (as requested by `Su
8383

8484
### SPECIFICATION
8585

86-
#### 1. Publisher ([Code](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.1-RC1/api/src/main/java/org/reactivestreams/Publisher.java))
86+
#### 1. Publisher ([Code](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.1-RC2/api/src/main/java/org/reactivestreams/Publisher.java))
8787

8888
```java
8989
public interface Publisher<T> {
@@ -116,7 +116,7 @@ public interface Publisher<T> {
116116
| <a name="1.11">11</a> | A `Publisher` MAY support multiple `Subscriber`s and decides whether each `Subscription` is unicast or multicast. |
117117
| [:bulb:](#1.11 "1.11 explained") | *The intent of this rule is to give Publisher implementations the flexibility to decide how many, if any, Subscribers they will support, and how elements are going to be distributed.* |
118118

119-
#### 2. Subscriber ([Code](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.1-RC1/api/src/main/java/org/reactivestreams/Subscriber.java))
119+
#### 2. Subscriber ([Code](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.1-RC2/api/src/main/java/org/reactivestreams/Subscriber.java))
120120

121121
```java
122122
public interface Subscriber<T> {
@@ -156,7 +156,7 @@ public interface Subscriber<T> {
156156
| <a name="2.13">13</a> | Calling `onSubscribe`, `onNext`, `onError` or `onComplete` MUST [return normally](#term_return_normally) except when any provided parameter is `null` in which case it MUST throw a `java.lang.NullPointerException` to the caller, for all other situations the only legal way for a `Subscriber` to signal failure is by cancelling its `Subscription`. In the case that this rule is violated, any associated `Subscription` to the `Subscriber` MUST be considered as cancelled, and the caller MUST raise this error condition in a fashion that is adequate for the runtime environment. |
157157
| [:bulb:](#2.13 "2.13 explained") | *The intent of this rule is to establish the semantics for the methods of Subscriber and what the Publisher is allowed to do in which case this rule is violated. «Raise this error condition in a fashion that is adequate for the runtime environment» could mean logging the error—or otherwise make someone or something aware of the situation—as the error cannot be signalled to the faulty Subscriber.* |
158158

159-
#### 3. Subscription ([Code](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.1-RC1/api/src/main/java/org/reactivestreams/Subscription.java))
159+
#### 3. Subscription ([Code](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.1-RC2/api/src/main/java/org/reactivestreams/Subscription.java))
160160

161161
```java
162162
public interface Subscription {
@@ -204,7 +204,7 @@ public interface Subscription {
204204

205205
A `Subscription` is shared by exactly one `Publisher` and one `Subscriber` for the purpose of mediating the data exchange between this pair. This is the reason why the `subscribe()` method does not return the created `Subscription`, but instead returns `void`; the `Subscription` is only passed to the `Subscriber` via the `onSubscribe` callback.
206206

207-
#### 4.Processor ([Code](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.1-RC1/api/src/main/java/org/reactivestreams/Processor.java))
207+
#### 4.Processor ([Code](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.1-RC2/api/src/main/java/org/reactivestreams/Processor.java))
208208

209209
```java
210210
public interface Processor<T, R> extends Subscriber<T>, Publisher<R> {

RELEASE-NOTES.md

+12-3
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
---
44

5-
# Version 1.0.1-RC1 released on 2017-06-29
5+
# Version 1.0.1-RC2 released on 2017-07-10
66

77
## Announcement:
88

9-
After more than two years since 1.0.0, we are proud to announce the immediate availability of `Reactive Streams version 1.0.1-RC1`.
9+
After more than two years since 1.0.0, we are proud to announce the immediate availability of `Reactive Streams version 1.0.1-RC2`.
1010

1111
Since 1.0.0 was released `Reactive Streams` has managed to achieve most, if not all, it set out to achieve. There are now numerous implementations, and it is scheduled to be included in [JDK9](http://download.java.net/java/jdk9/docs/api/java/util/concurrent/Flow.html).
1212

@@ -17,7 +17,7 @@ When JDK9 ships, `Reactive Streams` will publish a compatibility/conversion libr
1717
## Highlights:
1818

1919
- Specification
20-
+ A new [Glossary](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.1-RC1/README.md#glossary) section
20+
+ A new [Glossary](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.1-RC2/README.md#glossary) section
2121
+ Description of the intent behind every single rule
2222
+ No breaking semantical changes
2323
+ Multiple rule [clarifications](#specification-clarifications)
@@ -103,6 +103,14 @@ When JDK9 ships, `Reactive Streams` will publish a compatibility/conversion libr
103103

104104
**Comment: Footnote reworked into the Intent-section of the rule.**
105105

106+
## Subscription Rule 9
107+
108+
**1.0.0:** While the Subscription is not cancelled, Subscription.request(long n) MUST signal onError with a java.lang.IllegalArgumentException if the argument is <= 0. The cause message MUST include a reference to this rule and/or quote the full rule.
109+
110+
**1.0.1:** While the Subscription is not cancelled, Subscription.request(long n) MUST signal onError with a java.lang.IllegalArgumentException if the argument is <= 0. The cause message SHOULD explain that non-positive request signals are illegal.
111+
112+
**Comment: The MUST requirement to include a reference to the rule in the exception message has been dropped, in favor of that the exception message SHOULD explain that non-positive requests are illegal.**
113+
106114
## Subscription Rule 13
107115

108116
**1.0.0:** While the Subscription is not cancelled, Subscription.cancel() MUST request the Publisher to eventually drop any references to the corresponding subscriber. Re-subscribing with the same Subscriber object is discouraged [see 2.12], but this specification does not mandate that it is disallowed since that would mean having to store previously cancelled subscriptions indefinitely.
@@ -144,6 +152,7 @@ When JDK9 ships, `Reactive Streams` will publish a compatibility/conversion libr
144152
- Renamed `untested_spec305_cancelMustNotSynchronouslyPerformHeavyCompuatation` to `untested_spec305_cancelMustNotSynchronouslyPerformHeavyComputation` ([#306](https://github.com/reactive-streams/reactive-streams-jvm/issues/306))
145153
- Allow configuring separate timeout for "no events during N time", allowing for more aggressive timeouts in the rest of the test suite if required ([#314](https://github.com/reactive-streams/reactive-streams-jvm/issues/314))
146154
- New test verifying Rule 2.10, in which subscriber must be prepared to receive onError signal without having signaled request before ([#374](https://github.com/reactive-streams/reactive-streams-jvm/issues/374))
155+
- The verification of Rule 3.9 has been split up into 2 different tests, one to verify that an IllegalArgumentException is sent, and the other an optional check to verify that the exception message informs that non-positive request signals are illegal.
147156
---
148157

149158
## Contributors

build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ subprojects {
33
apply plugin: "osgi"
44

55
group = "org.reactivestreams"
6-
version = "1.0.1-RC1"
6+
version = "1.0.1-RC2"
77

88
sourceCompatibility = 1.6
99
targetCompatibility = 1.6
@@ -42,7 +42,7 @@ subprojects {
4242
instructionReplace "Bundle-Vendor", "Reactive Streams SIG"
4343
instructionReplace "Bundle-Description", "Reactive Streams API"
4444
instructionReplace "Bundle-DocURL", "http://reactive-streams.org"
45-
instructionReplace "Bundle-Version", "1.0.1-RC1"
45+
instructionReplace "Bundle-Version", "1.0.1-RC2"
4646
}
4747
}
4848

tck/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ The TCK is provided as binary artifact on [Maven Central](http://search.maven.or
2727
<dependency>
2828
<groupId>org.reactivestreams</groupId>
2929
<artifactId>reactive-streams-tck</artifactId>
30-
<version>1.0.1-RC1</version>
30+
<version>1.0.1-RC2</version>
3131
<scope>test</scope>
3232
</dependency>
3333
```

0 commit comments

Comments
 (0)