diff --git a/README.md b/README.md index 6f9b4efd..e43693cc 100644 --- a/README.md +++ b/README.md @@ -8,12 +8,12 @@ The latest release is available on Maven Central as org.reactivestreams reactive-streams - 1.0.1-RC1 + 1.0.1-RC2 org.reactivestreams reactive-streams-tck - 1.0.1-RC1 + 1.0.1-RC2 test ``` @@ -83,7 +83,7 @@ followed by a possibly unbounded number of `onNext` signals (as requested by `Su ### SPECIFICATION -#### 1. Publisher ([Code](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.1-RC1/api/src/main/java/org/reactivestreams/Publisher.java)) +#### 1. Publisher ([Code](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.1-RC2/api/src/main/java/org/reactivestreams/Publisher.java)) ```java public interface Publisher { @@ -116,7 +116,7 @@ public interface Publisher { | 11 | A `Publisher` MAY support multiple `Subscriber`s and decides whether each `Subscription` is unicast or multicast. | | [: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.* | -#### 2. Subscriber ([Code](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.1-RC1/api/src/main/java/org/reactivestreams/Subscriber.java)) +#### 2. Subscriber ([Code](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.1-RC2/api/src/main/java/org/reactivestreams/Subscriber.java)) ```java public interface Subscriber { @@ -156,7 +156,7 @@ public interface Subscriber { | 13 | 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. | | [: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.* | -#### 3. Subscription ([Code](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.1-RC1/api/src/main/java/org/reactivestreams/Subscription.java)) +#### 3. Subscription ([Code](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.1-RC2/api/src/main/java/org/reactivestreams/Subscription.java)) ```java public interface Subscription { @@ -204,7 +204,7 @@ public interface Subscription { 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. -#### 4.Processor ([Code](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.1-RC1/api/src/main/java/org/reactivestreams/Processor.java)) +#### 4.Processor ([Code](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.1-RC2/api/src/main/java/org/reactivestreams/Processor.java)) ```java public interface Processor extends Subscriber, Publisher { diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 3dd4b6e7..bd2db4b2 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -2,11 +2,11 @@ --- -# Version 1.0.1-RC1 released on 2017-06-29 +# Version 1.0.1-RC2 released on 2017-07-10 ## Announcement: -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`. +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`. 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). @@ -17,7 +17,7 @@ When JDK9 ships, `Reactive Streams` will publish a compatibility/conversion libr ## Highlights: - Specification - + A new [Glossary](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.1-RC1/README.md#glossary) section + + A new [Glossary](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.1-RC2/README.md#glossary) section + Description of the intent behind every single rule + No breaking semantical changes + Multiple rule [clarifications](#specification-clarifications) @@ -103,6 +103,14 @@ When JDK9 ships, `Reactive Streams` will publish a compatibility/conversion libr **Comment: Footnote reworked into the Intent-section of the rule.** +## Subscription Rule 9 + +**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. + +**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. + +**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.** + ## Subscription Rule 13 **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 - Renamed `untested_spec305_cancelMustNotSynchronouslyPerformHeavyCompuatation` to `untested_spec305_cancelMustNotSynchronouslyPerformHeavyComputation` ([#306](https://github.com/reactive-streams/reactive-streams-jvm/issues/306)) - 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)) - 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)) +- 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. --- ## Contributors diff --git a/build.gradle b/build.gradle index c74aa802..f57c047a 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ subprojects { apply plugin: "osgi" group = "org.reactivestreams" - version = "1.0.1-RC1" + version = "1.0.1-RC2" sourceCompatibility = 1.6 targetCompatibility = 1.6 @@ -42,7 +42,7 @@ subprojects { instructionReplace "Bundle-Vendor", "Reactive Streams SIG" instructionReplace "Bundle-Description", "Reactive Streams API" instructionReplace "Bundle-DocURL", "http://reactive-streams.org" - instructionReplace "Bundle-Version", "1.0.1-RC1" + instructionReplace "Bundle-Version", "1.0.1-RC2" } } diff --git a/tck/README.md b/tck/README.md index 2aa9b9f0..eb5a8846 100644 --- a/tck/README.md +++ b/tck/README.md @@ -27,7 +27,7 @@ The TCK is provided as binary artifact on [Maven Central](http://search.maven.or org.reactivestreams reactive-streams-tck - 1.0.1-RC1 + 1.0.1-RC2 test ```