Skip to content

Commit 795837e

Browse files
authored
Updating to reflect the 1.0.4 release (#31)
Signed-off-by: Viktor Klang <[email protected]>
1 parent 5a20153 commit 795837e

File tree

305 files changed

+221687
-13
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

305 files changed

+221687
-13
lines changed

_includes/announce-1.0.4.md

+88
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
Reactive Streams 1.0.4 is here!
2+
===============================
3+
4+
We—the Reactive Streams Special Interest Group—are happy to announce the immediate availability of `Reactive Streams version 1.0.4`.
5+
6+
In `1.0.4` we have re-licensed under MIT No Attribution (SPDX: MIT-0), improved the TCK, clarified different aspects of the specification, and proved that the Reactive Streams specification is robust and is successfully used by many various implementations.
7+
8+
As usual, `1.0.4` is binary, and semantically, compatible with the previous 1.0.x releases of Reactive Streams.
9+
10+
Documentation
11+
-------------
12+
13+
* [Specification](https://github.com/reactive-streams/reactive-streams-jvm/tree/v1.0.4#specification)
14+
* [Java API Documentation](http://www.reactive-streams.org/reactive-streams-1.0.4-javadoc)
15+
* [TCK README](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.4/tck/README.md)
16+
* [Flow TCK README](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.4/tck-flow/README.md)
17+
18+
Artifacts
19+
---------
20+
21+
* *the Reactive Streams interfaces*
22+
* `org.reactivestreams:reactive-streams:1.0.4`
23+
24+
* *the Reactive Streams TCK*
25+
* `org.reactivestreams:reactive-streams-tck:1.0.4`
26+
27+
* *the Reactive Streams Flow TCK*
28+
* `org.reactivestreams:reactive-streams-tck-flow:1.0.4`
29+
30+
* *Example implementations—documented & verified—to draw inspiration from*
31+
* `org.reactivestreams:reactive-streams-examples:1.0.4`
32+
33+
Credits
34+
-------
35+
36+
We'd like to thank everyone involved, all contributors and everyone who has given feedback during the development of this project.
37+
38+
39+
## Highlights:
40+
41+
- License
42+
+ This project is now (re-)licensed under MIT No Attribution (SPDX: MIT-0)
43+
- Specification
44+
+ No breaking/semantical changes
45+
+ Rule [clarifications](#specification-clarifications-104)
46+
- Interfaces
47+
+ No changes
48+
- Technology Compatibility Kit (TCK)
49+
+ Improved verification of Subscriber rule §2.3
50+
+ Improved JavaDoc
51+
- Examples
52+
+ No changes
53+
- Artifacts
54+
+ No changes
55+
56+
## Specification clarifications 1.0.4
57+
**1.0.3:** The intent of this rule is to permit the calling of the request and cancel methods (including from multiple threads) if and only if a happens-before relation between each of the calls is established.
58+
59+
**1.0.4:** The intent of this rule is to permit the calling of the request and cancel methods (including from multiple threads) if and only if a [serial](#term_serially) relation between each of the calls is established.
60+
61+
## Contributors
62+
+ Roland Kuhn [(@rkuhn)](https://github.com/rkuhn)
63+
+ Ben Christensen [(@benjchristensen)](https://github.com/benjchristensen)
64+
+ Viktor Klang [(@viktorklang)](https://github.com/viktorklang)
65+
+ Stephane Maldini [(@smaldini)](https://github.com/smaldini)
66+
+ Stanislav Savulchik [(@savulchik)](https://github.com/savulchik)
67+
+ Konrad Malawski [(@ktoso)](https://github.com/ktoso)
68+
+ Slim Ouertani [(@ouertani)](https://github.com/ouertani)
69+
+ Martynas Mickevičius [(@2m)](https://github.com/2m)
70+
+ Luke Daley [(@ldaley)](https://github.com/ldaley)
71+
+ Colin Godsey [(@colinrgodsey)](https://github.com/colinrgodsey)
72+
+ David Moten [(@davidmoten)](https://github.com/davidmoten)
73+
+ Brian Topping [(@briantopping)](https://github.com/briantopping)
74+
+ Rossen Stoyanchev [(@rstoyanchev)](https://github.com/rstoyanchev)
75+
+ Björn Hamels [(@BjornHamels)](https://github.com/BjornHamels)
76+
+ Jake Wharton [(@JakeWharton)](https://github.com/JakeWharton)
77+
+ Anthony Vanelverdinghe[(@anthonyvdotbe)](https://github.com/anthonyvdotbe)
78+
+ Kazuhiro Sera [(@seratch)](https://github.com/seratch)
79+
+ Dávid Karnok [(@akarnokd)](https://github.com/akarnokd)
80+
+ Evgeniy Getman [(@egetman)](https://github.com/egetman)
81+
+ Ángel Sanz [(@angelsanz)](https://github.com/angelsanz)
82+
+ shenghaiyang [(@shenghaiyang)](https://github.com/shenghaiyang)
83+
+ Kyle Thomson [(@kiiadi)](https://github.com/kiiadi)
84+
+ Tomislav Hofman [(@tomislavhofman)](https://github.com/tomislavhofman)
85+
+ Sean Sullivan [(@sullis)](https://github.com/sullis)
86+
87+
*Warm regards,
88+
the Reactive Streams Special Interest Group*

_includes/index.md

+11-13
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ Reactive Streams is an initiative to provide a standard for asynchronous stream
44

55
## JDK9 `java.util.concurrent.Flow`
66

7-
The interfaces available in JDK9's [java.util.concurrent.Flow](https://docs.oracle.com/javase/9/docs/api/java/util/concurrent/Flow.html), are 1:1 semantically equivalent to their respective Reactive Streams counterparts. This means that there will be a migratory period, while libraries move to adopt the new types in the JDK, however this period is expected to be short - due to the full semantic equivalence of the libraries, as well as the Reactive Streams <-> Flow adapter library as well as a TCK compatible directly with the JDK Flow types.
7+
The interfaces available in JDK >= 9 [java.util.concurrent.Flow](https://docs.oracle.com/javase/9/docs/api/java/util/concurrent/Flow.html), are 1:1 semantically equivalent to their respective Reactive Streams counterparts. This means that there will be a migratory period, while libraries move to adopt the new types in the JDK, however this period is expected to be short - due to the full semantic equivalence of the libraries, as well as the Reactive Streams <-> Flow adapter library as well as a TCK compatible directly with the JDK Flow types.
88

9-
Read [this](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.3/README.md) if you are interested in learning more about `Reactive Streams` for the JVM.
9+
Read [this](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.4/README.md) if you are interested in learning more about `Reactive Streams` for the JVM.
1010

1111
## The Problem
1212

@@ -34,42 +34,40 @@ The basic semantics define how the transmission of stream elements is regulated
3434

3535
This working group applies the basic semantics to a set of programming interfaces whose main purpose is to allow the interoperation of different conforming implementations and language bindings for passing streams between objects and threads within the JVM, using the shared memory heap.
3636

37-
As of *August 23rd, 2019* we have released version 1.0.3 of Reactive Streams for the JVM, including Java [API](/reactive-streams-1.0.3-javadoc), a textual [Specification](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.3/README.md#specification), a [TCK](/reactive-streams-tck-1.0.3-javadoc) and [implementation examples](/reactive-streams-examples-1.0.3-javadoc).
38-
39-
New in 1.0.3 is that the JDK9 [adapter library] is included in the main jar.
37+
As of *May 26th, 2022* we have released version 1.0.4 of Reactive Streams for the JVM, including Java [API](/reactive-streams-1.0.4-javadoc), a textual [Specification](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.4/README.md#specification), a [TCK](/reactive-streams-tck-1.0.4-javadoc) and [implementation examples](/reactive-streams-examples-1.0.4-javadoc).
4038

4139
Corresponding code artifacts are available on Maven Central:
4240

4341
<dependency>
4442
<groupId>org.reactivestreams</groupId>
4543
<artifactId>reactive-streams</artifactId>
46-
<version>1.0.3</version>
44+
<version>1.0.4</version>
4745
</dependency>
4846
<dependency>
4947
<groupId>org.reactivestreams</groupId>
5048
<artifactId>reactive-streams-tck</artifactId>
51-
<version>1.0.3</version>
49+
<version>1.0.4</version>
5250
</dependency>
5351
<dependency>
5452
<groupId>org.reactivestreams</groupId>
5553
<artifactId>reactive-streams-tck-flow</artifactId>
56-
<version>1.0.3</version>
54+
<version>1.0.4</version>
5755
</dependency>
5856
<dependency>
5957
<groupId>org.reactivestreams</groupId>
6058
<artifactId>reactive-streams-examples</artifactId>
61-
<version>1.0.3</version>
59+
<version>1.0.4</version>
6260
</dependency>
6361

64-
The source code for these is available on [github](https://github.com/reactive-streams/reactive-streams-jvm/tree/v1.0.3). Please use github issues for providing feedback.
62+
The source code for these is available on [github](https://github.com/reactive-streams/reactive-streams-jvm/tree/v1.0.4). Please use github issues for providing feedback.
6563

66-
All artifacts and specifications are released under [Creative Commons Zero](http://creativecommons.org/publicdomain/zero/1.0) into the Public Domain.
64+
All artifacts and specifications are released under MIT No Attribution (SPDX: MIT-0).
6765

68-
Read more about `Reactive Streams 1.0.3` for the JVM [here](announce-1.0.3).
66+
Read more about `Reactive Streams 1.0.4` for the JVM [here](announce-1.0.4).
6967

7068
##### A Note for Implementors
7169

72-
To get started implementing the final specification, it is recommended to start by reading the [README](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.3/README.md) and the [Java API documentation](/reactive-streams-1.0.3-javadoc), then taking a look at the [Specification](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.3/README.md#specification) then taking a look at the [TCK](https://github.com/reactive-streams/reactive-streams-jvm/tree/v1.0.3/tck) and the [example implementations](https://github.com/reactive-streams/reactive-streams-jvm/tree/v1.0.3/examples/src/main/java/org/reactivestreams/example/unicast). If you have an issue with any of the above, please take a look at [closed issues](https://github.com/reactive-streams/reactive-streams-jvm/issues?page=1&state=closed) and then open a [new issue](https://github.com/reactive-streams/reactive-streams-jvm/issues/new) if it has not already been answered.
70+
To get started implementing the final specification, it is recommended to start by reading the [README](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.4/README.md) and the [Java API documentation](/reactive-streams-1.0.4-javadoc), then taking a look at the [Specification](https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.4/README.md#specification) then taking a look at the [TCK](https://github.com/reactive-streams/reactive-streams-jvm/tree/v1.0.4/tck) and the [example implementations](https://github.com/reactive-streams/reactive-streams-jvm/tree/v1.0.4/examples/src/main/java/org/reactivestreams/example/unicast). If you have an issue with any of the above, please take a look at [closed issues](https://github.com/reactive-streams/reactive-streams-jvm/issues?page=1&state=closed) and then open a [new issue](https://github.com/reactive-streams/reactive-streams-jvm/issues/new) if it has not already been answered.
7371

7472
This work was performed in the [reactive-streams-jvm](https://github.com/reactive-streams/reactive-streams-jvm/) repository.
7573

announce-1.0.4.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
layout: index
3+
---
4+
5+
{% include announce-1.0.4.md %}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Manifest-Version: 1.0
2+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,193 @@
1+
<!DOCTYPE HTML>
2+
<!-- NewPage -->
3+
<html lang="en">
4+
<head>
5+
<!-- Generated by javadoc -->
6+
<title>All Classes (reactive-streams 1.0.4 API)</title>
7+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
8+
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
9+
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
10+
<script type="text/javascript" src="script.js"></script>
11+
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
12+
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
13+
<!--[if IE]>
14+
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
15+
<![endif]-->
16+
<script type="text/javascript" src="jquery/jquery-3.5.1.js"></script>
17+
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
18+
</head>
19+
<body>
20+
<script type="text/javascript"><!--
21+
try {
22+
if (location.href.indexOf('is-external=true') == -1) {
23+
parent.document.title="All Classes (reactive-streams 1.0.4 API)";
24+
}
25+
}
26+
catch(err) {
27+
}
28+
//-->
29+
var data = {"i0":2,"i1":1,"i2":1,"i3":1,"i4":1};
30+
var tabs = {65535:["t0","All Classes"],1:["t1","Interface Summary"],2:["t2","Class Summary"]};
31+
var altColor = "altColor";
32+
var rowColor = "rowColor";
33+
var tableTab = "tableTab";
34+
var activeTableTab = "activeTableTab";
35+
var pathtoroot = "./";
36+
var useModuleDirectories = true;
37+
loadScripts(document, 'script');</script>
38+
<noscript>
39+
<div>JavaScript is disabled on your browser.</div>
40+
</noscript>
41+
<header role="banner">
42+
<nav role="navigation">
43+
<div class="fixedNav">
44+
<!-- ========= START OF TOP NAVBAR ======= -->
45+
<div class="topNav"><a id="navbar.top">
46+
<!-- -->
47+
</a>
48+
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
49+
<a id="navbar.top.firstrow">
50+
<!-- -->
51+
</a>
52+
<ul class="navList" title="Navigation">
53+
<li><a href="org/reactivestreams/package-summary.html">Package</a></li>
54+
<li>Class</li>
55+
<li><a href="overview-tree.html">Tree</a></li>
56+
<li><a href="deprecated-list.html">Deprecated</a></li>
57+
<li><a href="index-all.html">Index</a></li>
58+
<li><a href="help-doc.html">Help</a></li>
59+
</ul>
60+
</div>
61+
<div class="subNav">
62+
<ul class="navList" id="allclasses_navbar_top">
63+
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
64+
</ul>
65+
<ul class="navListSearch">
66+
<li><label for="search">SEARCH:</label>
67+
<input type="text" id="search" value="search" disabled="disabled">
68+
<input type="reset" id="reset" value="reset" disabled="disabled">
69+
</li>
70+
</ul>
71+
<div>
72+
<script type="text/javascript"><!--
73+
allClassesLink = document.getElementById("allclasses_navbar_top");
74+
if(window==top) {
75+
allClassesLink.style.display = "block";
76+
}
77+
else {
78+
allClassesLink.style.display = "none";
79+
}
80+
//-->
81+
</script>
82+
<noscript>
83+
<div>JavaScript is disabled on your browser.</div>
84+
</noscript>
85+
</div>
86+
<a id="skip.navbar.top">
87+
<!-- -->
88+
</a></div>
89+
<!-- ========= END OF TOP NAVBAR ========= -->
90+
</div>
91+
<div class="navPadding">&nbsp;</div>
92+
<script type="text/javascript"><!--
93+
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
94+
//-->
95+
</script>
96+
</nav>
97+
</header>
98+
<main role="main">
99+
<div class="header">
100+
<h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
101+
</div>
102+
<div class="allClassesContainer">
103+
<ul class="blockList">
104+
<li class="blockList">
105+
<table class="typeSummary">
106+
<caption><span id="t0" class="activeTableTab"><span>All Classes</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Interface Summary</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Class Summary</a></span><span class="tabEnd">&nbsp;</span></span></caption>
107+
<tr>
108+
<th class="colFirst" scope="col">Class</th>
109+
<th class="colLast" scope="col">Description</th>
110+
</tr>
111+
<tr id="i0" class="altColor">
112+
<td class="colFirst"><a href="org/reactivestreams/FlowAdapters.html" title="class in org.reactivestreams">FlowAdapters</a></td>
113+
<th class="colLast" scope="row">
114+
<div class="block">Bridge between Reactive Streams API and the Java 9 <code>Flow</code> API.</div>
115+
</th>
116+
</tr>
117+
<tr id="i1" class="rowColor">
118+
<td class="colFirst"><a href="org/reactivestreams/Processor.html" title="interface in org.reactivestreams">Processor</a>&lt;<a href="org/reactivestreams/Processor.html" title="type parameter in Processor">T</a>,&#8203;<a href="org/reactivestreams/Processor.html" title="type parameter in Processor">R</a>&gt;</td>
119+
<th class="colLast" scope="row">
120+
<div class="block">A <a href="org/reactivestreams/Processor.html" title="interface in org.reactivestreams"><code>Processor</code></a> represents a processing stage—which is both a <a href="org/reactivestreams/Subscriber.html" title="interface in org.reactivestreams"><code>Subscriber</code></a>
121+
and a <a href="org/reactivestreams/Publisher.html" title="interface in org.reactivestreams"><code>Publisher</code></a> and obeys the contracts of both.</div>
122+
</th>
123+
</tr>
124+
<tr id="i2" class="altColor">
125+
<td class="colFirst"><a href="org/reactivestreams/Publisher.html" title="interface in org.reactivestreams">Publisher</a>&lt;<a href="org/reactivestreams/Publisher.html" title="type parameter in Publisher">T</a>&gt;</td>
126+
<th class="colLast" scope="row">
127+
<div class="block">A <a href="org/reactivestreams/Publisher.html" title="interface in org.reactivestreams"><code>Publisher</code></a> is a provider of a potentially unbounded number of sequenced elements, publishing them according to
128+
the demand received from its <a href="org/reactivestreams/Subscriber.html" title="interface in org.reactivestreams"><code>Subscriber</code></a>(s).</div>
129+
</th>
130+
</tr>
131+
<tr id="i3" class="rowColor">
132+
<td class="colFirst"><a href="org/reactivestreams/Subscriber.html" title="interface in org.reactivestreams">Subscriber</a>&lt;<a href="org/reactivestreams/Subscriber.html" title="type parameter in Subscriber">T</a>&gt;</td>
133+
<th class="colLast" scope="row">
134+
<div class="block">Will receive call to <a href="org/reactivestreams/Subscriber.html#onSubscribe(org.reactivestreams.Subscription)"><code>Subscriber.onSubscribe(Subscription)</code></a> once after passing an instance of <a href="org/reactivestreams/Subscriber.html" title="interface in org.reactivestreams"><code>Subscriber</code></a> to <a href="org/reactivestreams/Publisher.html#subscribe(org.reactivestreams.Subscriber)"><code>Publisher.subscribe(Subscriber)</code></a>.</div>
135+
</th>
136+
</tr>
137+
<tr id="i4" class="altColor">
138+
<td class="colFirst"><a href="org/reactivestreams/Subscription.html" title="interface in org.reactivestreams">Subscription</a></td>
139+
<th class="colLast" scope="row">
140+
<div class="block">A <a href="org/reactivestreams/Subscription.html" title="interface in org.reactivestreams"><code>Subscription</code></a> represents a one-to-one lifecycle of a <a href="org/reactivestreams/Subscriber.html" title="interface in org.reactivestreams"><code>Subscriber</code></a> subscribing to a <a href="org/reactivestreams/Publisher.html" title="interface in org.reactivestreams"><code>Publisher</code></a>.</div>
141+
</th>
142+
</tr>
143+
</table>
144+
</li>
145+
</ul>
146+
</div>
147+
</main>
148+
<footer role="contentinfo">
149+
<nav role="navigation">
150+
<!-- ======= START OF BOTTOM NAVBAR ====== -->
151+
<div class="bottomNav"><a id="navbar.bottom">
152+
<!-- -->
153+
</a>
154+
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
155+
<a id="navbar.bottom.firstrow">
156+
<!-- -->
157+
</a>
158+
<ul class="navList" title="Navigation">
159+
<li><a href="org/reactivestreams/package-summary.html">Package</a></li>
160+
<li>Class</li>
161+
<li><a href="overview-tree.html">Tree</a></li>
162+
<li><a href="deprecated-list.html">Deprecated</a></li>
163+
<li><a href="index-all.html">Index</a></li>
164+
<li><a href="help-doc.html">Help</a></li>
165+
</ul>
166+
</div>
167+
<div class="subNav">
168+
<ul class="navList" id="allclasses_navbar_bottom">
169+
<li><a href="allclasses.html">All&nbsp;Classes</a></li>
170+
</ul>
171+
<div>
172+
<script type="text/javascript"><!--
173+
allClassesLink = document.getElementById("allclasses_navbar_bottom");
174+
if(window==top) {
175+
allClassesLink.style.display = "block";
176+
}
177+
else {
178+
allClassesLink.style.display = "none";
179+
}
180+
//-->
181+
</script>
182+
<noscript>
183+
<div>JavaScript is disabled on your browser.</div>
184+
</noscript>
185+
</div>
186+
<a id="skip.navbar.bottom">
187+
<!-- -->
188+
</a></div>
189+
<!-- ======== END OF BOTTOM NAVBAR ======= -->
190+
</nav>
191+
</footer>
192+
</body>
193+
</html>

0 commit comments

Comments
 (0)