8000 Merge branch 'release/1.0.0-RC3' · FTTF-git/rsocket-java@2e89fb8 · GitHub
[go: up one dir, main page]

Skip to content

Commit 2e89fb8

Browse files
committed
Merge branch 'release/1.0.0-RC3'
2 parents 6b005ca + 6d7b99a commit 2e89fb8

27 files changed

+919
-94
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ dist: trusty
2020

2121
matrix:
2222
include:
23-
- jdk: oraclejdk8
23+
- jdk: openjdk8
2424
- jdk: openjdk11
2525
env: SKIP_RELEASE=true
2626
- jdk: openjdk12

AUTHORS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,4 @@ somasun = somasun <manikandan@fb.com>
1818
stevegury = Steve Gury <sgury@netflix.com>
1919
tmontgomery = Todd L. Montgomery <tmont@nard.net>
2020
yschimke = Yuri Schimke <yuri@schimke.ee>
21+
OlegDokuka = Oleh Dokuka <oleh@netifi.com>

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ Example:
2323

2424
```groovy
2525
dependencies {
26-
implementation 'io.rsocket:rsocket-core:0.12.2-RC4'
27-
implementation 'io.rsocket:rsocket-transport-netty:0.12.2-RC4'
28-
// implementation 'io.rsocket:rsocket-core:1.0.0-RC1-SNAPSHOT'
29-
// implementation 'io.rsocket:rsocket-transport-netty:1.0.0-RC1-SNAPSHOT'
26+
implementation 'io.rsocket:rsocket-core:1.0.0-RC3'
27+
implementation 'io.rsocket:rsocket-transport-netty:1.0.0-RC3'
28+
// implementation 'io.rsocket:rsocket-core:1.0.0-RC4-SNAPSHOT'
29+
// implementation 'io.rsocket:rsocket-transport-netty:1.0.0-RC4-SNAPSHOT'
3030
}
3131
```
3232

build.gradle

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,13 @@ subprojects {
4646
googleJavaFormat {
4747
toolVersion = '1.6'
4848
}
49-
49+
50+
ext {
51+
if (project.hasProperty('versionSuffix')) {
52+
project.version += project.getProperty('versionSuffix')
53+
}
54+
}
55+
5056
dependencyManagement {
5157
imports {
5258
mavenBom "io.projectreactor:reactor-bom:${ext['reactor-bom.version']}"
@@ -177,6 +183,16 @@ subprojects {
177183
name 'Yuri Schimke'
178184
email 'yuri@schimke.ee'
179185
}
186+
developer {
187+
id 'OlegDokuka'
188+
name 'Oleh Dokuka'
189+
email 'oleh@netifi.com'
190+
}
191+
developer {
192+
id 'mostroverkhov'
193+
name 'Maksym Ostroverkhov'
194+
email 'm.ostroverkhov@gmail.com'
195+
}
180196
}
181197

182198
scm {

ci/travis.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ elif [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_TAG" == "" ] && [ "$bin
1111
./gradlew \
1212
-PbintrayUser="${bintrayUser}" -PbintrayKey="${bintrayKey}" \
1313
-PsonatypeUsername="${sonatypeUsername}" -PsonatypePassword="${sonatypePassword}" \
14+
-PversionSuffix="-SNAPSHOT" \
1415
build artifactoryPublish --stacktrace
1516

1617
elif [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_TAG" != "" ] && [ "$bintrayUser" != "" ] ; then

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@
1111
# See the License for the specific language governing permissions and
1212
# limitations under the License.
1313
#
14-
version=1.0.0-RC2
14+
version=1.0.0-RC3

rsocket-bom/build.gradle

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
/*
2+
* Copyright 2015-2019 the original author or authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
plugins {
17+
id 'java-library'
18+
id 'maven'
19+
id 'maven-publish'
20+
id 'com.jfrog.artifactory'
21+
id 'com.jfrog.bintray'
22+
id 'io.morethan.jmhreport'
23+
id 'me.champeau.gradle.jmh'
24+
}
25+
26+
description = 'Bill of materials to make sure a consistent set of versions is used for RSocket-Java.'
27+
configurations.archives.artifacts.clear()
28+
29+
build.doLast {
30+
pom {
31+
customizePom(it, project)
32+
}
33+
}
34+
35+
dependencies {
36+
compile project(':rsocket-core')
37+
compile project(':rsocket-test')
38+
compile project(':rsocket-load-balancer')
39+
compile project(':rsocket-micrometer')
40+
compile project(':rsocket-transport-local')
41+
compile project(':rsocket-transport-netty')
42+
}
43+
44+
def customizePom(generatedPom, gradleProject) {
45+
//make sure that dependencies are under <dependencyManagement>
46+
generatedPom.withXml {
47+
if (generatedPom.generatedDependencies.size > 0) {
48+
asNode().appendNode('dependencyManagement', asNode().dependencies)
49+
asNode().dependencies.replaceNode {}
50+
}
51+
}
52+
53+
generatedPom.project {
54+
name = 'RSocket-Java Release Train - BOM'
55+
description = gradleProject.description
56+
url = 'http://rsocket.io'
57+
groupId = group
58+
packaging = "pom"
59+
licenses {
60+
license {
61+
name = 'The Apache License, Version 2.0'
62+
url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
63+
}
64+
}
65+
developers {
66+
developer {
67+
id 'robertroeser'
68+
name 'Robert Roeser'
69+
email 'robert@netifi.com'
70+
}
71+
developer {
72+
id 'rdegnan'
73+
name 'Ryland Degnan'
74+
email 'ryland@netifi.com'
75+
}
76+
developer {
77+
id 'yschimke'
78+
name 'Yuri Schimke'
79+
email 'yuri@schimke.ee'
80+
}
81+
developer {
82+
id 'OlegDokuka'
83+
name 'Oleh Dokuka'
84+
email 'oleh@netifi.com'
85+
}
86+
developer {
87+
id 'mostroverkhov'
88+
name 'Maksym Ostroverkhov'
89+
email 'm.ostroverkhov@gmail.com'
90+
}
91+
}
92+
scm {
93+
connection = 'scm:git:git://github.com/rsocket/rsocket-java.git'
94+
developerConnection = 'scm:git:ssh://github.com/rsocket/rsocket-java.git'
95+
url = 'http://github.com/rsocket/rsocket-java/'
96+
}
97+
issueManagement {
98+
system = "GitHub Issues"
99+
url = "https://github.com/rsocket/rsocket-java/issues"
100+
}
101+
}
102+
103+
generatedPom.writeTo("$buildDir/poms/rsocket-bom-${version}.xml")
104+
}
105+
plugins.withType(MavenPublishPlugin) {
106+
publishing {
107+
publications {
108+
mavenJava(MavenPublication) {
109+
pom.withXml {
110+
def sb = asString()
111+
sb.setLength 0
112+
sb.append file("$buildDir/poms/rsocket-bom-${version}.xml").text
113+
println(sb.toString())
114+
}
115+
}
116+
}
117+
}
118+
}
119+
120+
publish.dependsOn("build")
121+
publishToMavenLocal.dependsOn("build")

rsocket-core/src/main/java/io/rsocket/RSocketFactory.java

Lines changed: 67 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@
3131
import io.rsocket.internal.ClientSetup;
3232
import io.rsocket.internal.ServerSetup;
3333
import io.rsocket.keepalive.KeepAliveHandler;
34-
import io.rsocket.lease.*;
35-
import io.rsocket.plugins.DuplexConnectionInterceptor;
36-
import io.rsocket.plugins.PluginRegistry;
37-
import io.rsocket.plugins.Plugins;
38-
import io.rsocket.plugins.RSocketInterceptor;
34+
import io.rsocket.lease.LeaseStats;
35+
import io.rsocket.lease.Leases;
36+
import io.rsocket.lease.RequesterLeaseHandler;
37+
import io.rsocket.lease.ResponderLeaseHandler;
38+
import io.rsocket.plugins.*;
3939
import io.rsocket.resume.*;
4040
import io.rsocket.transport.ClientTransport;
4141
import io.rsocket.transport.ServerTransport;
@@ -44,7 +44,10 @@
4444
import io.rsocket.util.MultiSubscriberRSocket;
4545
import java.time.Duration;
4646
import java.util.Objects;
47-
import java.util.function.*;
47+
import java.util.function.BiFunction;
48+
import java.util.function.Consumer;
49+
import java.util.function.Function;
50+
import java.util.function.Supplier;
4851
import reactor.core.publisher.Mono;
4952

5053
/** Factory for creating RSocket clients and servers. */
@@ -93,10 +96,7 @@ default <T extends Closeable> Start<T> transport(ServerTransport<T> transport) {
9396
public static class ClientRSocketFactory implements ClientTransportAcceptor {
9497
private static final String CLIENT_TAG = "client";
9598

96-
private Supplier<Function<RSocket, RSocket>> acceptor =
97-
() -> rSocket -> new AbstractRSocket() {};
98-
99-
private BiFunction<ConnectionSetupPayload, RSocket, RSocket> biAcceptor;
99+
private SocketAcceptor acceptor = (setup, sendingSocket) -> Mono.just(new AbstractRSocket() {});
100100

101101
private Consumer<Throwable> errorConsumer = Throwable::printStackTrace;
102102
private int mtu = 0;
@@ -161,6 +161,11 @@ public ClientRSocketFactory addResponderPlugin(RSocketInterceptor interceptor) {
161161
return this;
162162
}
163163

164+
public ClientRSocketFactory addSocketAcceptorPlugin(SocketAcceptorInterceptor interceptor) {
165+
plugins.addSocketAcceptorPlugin(interceptor);
166+
return this;
167+
}
168+
164169
/**
165170
* Deprecated as Keep-Alive is not optional according to spec
166171
*
@@ -268,18 +273,25 @@ public Start<RSocket> transport(Supplier<ClientTransport> transportClient) {
268273
}
269274

270275
public ClientTransportAcceptor acceptor(Function<RSocket, RSocket> acceptor) {
271-
this.acceptor = () -> acceptor;
272-
return StartClient::new;
276+
return acceptor(() -> acceptor);
273277
}
274278

275279
public ClientTransportAcceptor acceptor(Supplier<Function<RSocket, RSocket>> acceptor) {
276-
this.acceptor = acceptor;
277-
return StartClient::new;
280+
return acceptor(
281+
(SocketAcceptor)
282+
(setup, sendingSocket) -> Mono.just(acceptor.get().apply(sendingSocket)));
278283
}
279284

285+
@Deprecated
280286
public ClientTransportAcceptor acceptor(
281287
BiFunction<ConnectionSetupPayload, RSocket, RSocket> biAcceptor) {
282-
this.biAcceptor = biAcceptor;
288+
return acceptor(
289+
(SocketAcceptor)
290+
(setup, sendingSocket) -> Mono.just(biAcceptor.apply(setup, sendingSocket)));
< 10000 /td>
291+
}
292+
293+
public ClientTransportAcceptor acceptor(SocketAcceptor acceptor) {
294+
this.acceptor = acceptor;
283295
return StartClient::new;
284296
}
285297

@@ -346,6 +358,8 @@ public Mono<RSocket> start() {
346358
rSocketRequester = new MultiSubscriberRSocket(rSocketRequester);
347359
}
348360

361+
RSocket wrappedRSocketRequester = plugins.applyRequester(rSocketRequester);
362+
349363
ByteBuf setupFrame =
350364
SetupFrameFlyweight.encode(
351365
allocator,
@@ -357,34 +371,38 @@ public Mono<RSocket> start() {
357371
dataMimeType,
358372
setupPayload);
359373

360-
RSocket wrappedRSocketRequester = plugins.applyRequester(rSocketRequester);
361-
362-
RSocket rSocketHandler;
363-
if (biAcceptor != null) {
364-
ConnectionSetupPayload setup = ConnectionSetupPayload.create(setupFrame);
365-
rSocketHandler = biAcceptor.apply(setup, wrappedRSocketRequester);
366-
} else {
367-
rSocketHandler = acceptor.get().apply(wrappedRSocketRequester);
368-
}
369-
370-
RSocket wrappedRSocketHandler = plugins.applyResponder(rSocketHandler);
371-
372-
ResponderLeaseHandler responderLeaseHandler =
373-
isLeaseEnabled
374-
? new ResponderLeaseHandler.Impl<>(
375-
CLIENT_TAG, allocator, leases.sender(), errorConsumer, leases.stats())
376-
: ResponderLeaseHandler.None;
377-
378-
RSocket rSocketResponder =
379-
new RSocketResponder(
380-
allocator,
381-
multiplexer.asServerConnection(),
382-
wrappedRSocketHandler,
383-
payloadDecoder,
384-
errorConsumer,
385-
responderLeaseHandler);
374+
ConnectionSetupPayload setup = ConnectionSetupPayload.create(setupFrame);
375+
376+
return plugins
377+
.applySocketAcceptorInterceptor(acceptor)
378+
.accept(setup, wrappedRSocketRequester)
379+
.flatMap(
380+
rSocketHandler -> {
381+
RSocket wrappedRSocketHandler = plugins.applyResponder(rSocketHandler);
382+
383+
ResponderLeaseHandler responderLeaseHandler =
384+
isLeaseEnabled
385+
? new ResponderLeaseHandler.Impl<>(
386+
CLIENT_TAG,
387+
allocator,
388+
leases.sender(),
389+
errorConsumer,
390+
leases.stats())
391+
: ResponderLeaseHandler.None;
392+
393+
RSocket rSocketResponder =
394+
new RSocketResponder(
395+
allocator,
396+
multiplexer.asServerConnection(),
397+
wrappedRSocketHandler,
398+
payloadDecoder,
399+
errorConsumer,
400+
responderLeaseHandler);
386401

387-
return wrappedConnection.sendOne(setupFrame).thenReturn(wrappedRSocketRequester);
402+
return wrappedConnection
403+
.sendOne(setupFrame)
404+
.thenReturn(wrappedRSocketRequester);
405+
});
388406
});
389407
}
390408

@@ -476,6 +494,11 @@ public ServerRSocketFactory addResponderPlugin(RSocketInterceptor interceptor) {
476494
return this;
477495
}
478496

497+
public ServerRSocketFactory addSocketAcceptorPlugin(SocketAcceptorInterceptor interceptor) {
498+
plugins.addSocketAcceptorPlugin(interceptor);
499+
return this;
500+
}
501+
479502
public ServerTransportAcceptor acceptor(SocketAcceptor acceptor) {
480503
this.acceptor = acceptor;
481504
return new ServerStart<>();
@@ -644,7 +667,8 @@ private Mono<Void> acceptSetup(
644667
}
645668
RSocket wrappedRSocketRequester = plugins.applyRequester(rSocketRequester);
646669

647-
return acceptor
670+
return plugins
671+
.applySocketAcceptorInterceptor(acceptor)
648672
.accept(setupPayload, wrappedRSocketRequester)
649673
.onErrorResume(
650674
err -> sendError(multiplexer, rejectedSetupError(err)).then(Mono.error(err)))

0 commit comments

Comments
 (0)
0