Skip to content

Commit 089fb57

Browse files
committed
Replace create with wrap in RSocketRequester
1 parent a1ad028 commit 089fb57

File tree

5 files changed

+30
-12
lines changed

5 files changed

+30
-12
lines changed

spring-messaging/src/main/java/org/springframework/messaging/rsocket/DefaultRSocketRequesterBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public Mono<RSocketRequester> connect(ClientTransport transport) {
8787
this.factoryConfigurers.forEach(configurer -> configurer.accept(factory));
8888

8989
return factory.transport(transport).start()
90-
.map(rsocket -> RSocketRequester.create(rsocket, dataMimeType, strategies));
90+
.map(rsocket -> new DefaultRSocketRequester(rsocket, dataMimeType, strategies));
9191
});
9292
}
9393

spring-messaging/src/main/java/org/springframework/messaging/rsocket/MessageHandlerAcceptor.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,10 @@ public RSocket apply(RSocket sendingRSocket) {
7272
}
7373

7474
private MessagingRSocket createRSocket(RSocket rsocket) {
75-
return new MessagingRSocket(this::handleMessage, rsocket, this.defaultDataMimeType, getRSocketStrategies());
75+
return new MessagingRSocket(this::handleMessage,
76+
RSocketRequester.wrap(rsocket, this.defaultDataMimeType, getRSocketStrategies()),
77+
this.defaultDataMimeType,
78+
getRSocketStrategies().dataBufferFactory());
7679
}
7780

7881
}

spring-messaging/src/main/java/org/springframework/messaging/rsocket/MessagingRSocket.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -61,18 +61,18 @@ class MessagingRSocket extends AbstractRSocket {
6161
@Nullable
6262
private MimeType dataMimeType;
6363

64-
private final RSocketStrategies strategies;
64+
private final DataBufferFactory bufferFactory;
6565

6666

67-
MessagingRSocket(Function<Message<?>, Mono<Void>> handler, RSocket sendingRSocket,
68-
@Nullable MimeType defaultDataMimeType, RSocketStrategies strategies) {
67+
MessagingRSocket(Function<Message<?>, Mono<Void>> handler, RSocketRequester requester,
68+
@Nullable MimeType defaultDataMimeType, DataBufferFactory bufferFactory) {
6969

7070
Assert.notNull(handler, "'handler' is required");
71-
Assert.notNull(sendingRSocket, "'sendingRSocket' is required");
71+
Assert.notNull(requester, "'requester' is required");
7272
this.handler = handler;
73-
this.requester = RSocketRequester.create(sendingRSocket, defaultDataMimeType, strategies);
73+
this.requester = requester;
7474
this.dataMimeType = defaultDataMimeType;
75-
this.strategies = strategies;
75+
this.bufferFactory = bufferFactory;
7676
}
7777

7878

@@ -175,7 +175,7 @@ private String getDestination(Payload payload) {
175175
}
176176

177177
private DataBuffer retainDataAndReleasePayload(Payload payload) {
178-
return PayloadUtils.retainDataAndReleasePayload(payload, this.strategies.dataBufferFactory());
178+
return PayloadUtils.retainDataAndReleasePayload(payload, this.bufferFactory);
179179
}
180180

181181
private MessageHeaders createHeaders(String destination, @Nullable MonoProcessor<?> replyMono) {
@@ -189,8 +189,7 @@ private MessageHeaders createHeaders(String destination, @Nullable MonoProcessor
189189
if (replyMono != null) {
190190
headers.setHeader(RSocketPayloadReturnValueHandler.RESPONSE_HEADER, replyMono);
191191
}
192-
DataBufferFactory bufferFactory = this.strategies.dataBufferFactory();
193-
headers.setHeader(HandlerMethodReturnValueHandler.DATA_BUFFER_FACTORY_HEADER, bufferFactory);
192+
headers.setHeader(HandlerMethodReturnValueHandler.DATA_BUFFER_FACTORY_HEADER, this.bufferFactory);
194193
return headers.getMessageHeaders();
195194
}
196195

spring-messaging/src/main/java/org/springframework/messaging/rsocket/RSocketRequester.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,30 @@ static RSocketRequester.Builder builder() {
7171
return new DefaultRSocketRequesterBuilder();
7272
}
7373

74+
/**
75+
* Wrap an existing {@link RSocket}. Typically used in a client or server
76+
* responder to wrap the remote {@code RSocket}.
77+
* @param rsocket the RSocket to wrap
78+
* @param dataMimeType the data MimeType, obtained from the
79+
* {@link io.rsocket.ConnectionSetupPayload} (server) or the
80+
* {@link io.rsocket.RSocketFactory.ClientRSocketFactory} (client)
81+
* @param strategies the strategies to use
82+
* @return the created RSocketRequester
83+
*/
84+
static RSocketRequester wrap(RSocket rsocket, @Nullable MimeType dataMimeType, RSocketStrategies strategies) {
85+
return new DefaultRSocketRequester(rsocket, dataMimeType, strategies);
86+
}
87+
7488
/**
7589
* Create a new {@code RSocketRequester} from the given {@link RSocket} and
7690
* strategies for encoding and decoding request and response payloads.
7791
* @param rsocket the sending RSocket to use
7892
* @param dataMimeType the MimeType for data (from the SETUP frame)
7993
* @param strategies encoders, decoders, and others
8094
* @return the created RSocketRequester wrapper
95+
* @deprecated use {@link #wrap(RSocket, MimeType, RSocketStrategies)} instead
8196
*/
97+
@Deprecated
8298
static RSocketRequester create(RSocket rsocket, @Nullable MimeType dataMimeType, RSocketStrategies strategies) {
8399
return new DefaultRSocketRequester(rsocket, dataMimeType, strategies);
84100
}

spring-messaging/src/test/java/org/springframework/messaging/rsocket/DefaultRSocketRequesterTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ public void setUp() {
7070
.encoder(CharSequenceEncoder.allMimeTypes())
7171
.build();
7272
this.rsocket = new TestRSocket();
73-
this.requester = RSocketRequester.create(rsocket, MimeTypeUtils.TEXT_PLAIN, strategies);
73+
this.requester = RSocketRequester.wrap(this.rsocket, MimeTypeUtils.TEXT_PLAIN, strategies);
7474
}
7575

7676

0 commit comments

Comments
 (0)