Introduce RSocketClientFactoryConfigurer
The new interface supersedes ClientResponderFactory and is more general, for any RSocketFactory customization. DefaultClientResponderFactory implements the new interface and is renamed to AnnotationClientResponderConfigurer. See gh-23170
This commit is contained in:
@@ -63,7 +63,7 @@ public class DefaultRSocketRequesterBuilderTests {
|
||||
@Test
|
||||
@SuppressWarnings("unchecked")
|
||||
public void shouldApplyCustomizationsAtSubscription() {
|
||||
Consumer<RSocketFactory.ClientRSocketFactory> factoryConfigurer = mock(Consumer.class);
|
||||
ClientRSocketFactoryConfigurer factoryConfigurer = mock(ClientRSocketFactoryConfigurer.class);
|
||||
Consumer<RSocketStrategies.Builder> strategiesConfigurer = mock(Consumer.class);
|
||||
RSocketRequester.builder()
|
||||
.rsocketFactory(factoryConfigurer)
|
||||
@@ -79,7 +79,7 @@ public class DefaultRSocketRequesterBuilderTests {
|
||||
.encoder(CharSequenceEncoder.allMimeTypes())
|
||||
.decoder(StringDecoder.allMimeTypes())
|
||||
.build();
|
||||
Consumer<RSocketFactory.ClientRSocketFactory> factoryConfigurer = mock(Consumer.class);
|
||||
ClientRSocketFactoryConfigurer factoryConfigurer = mock(ClientRSocketFactoryConfigurer.class);
|
||||
Consumer<RSocketStrategies.Builder> strategiesConfigurer = mock(Consumer.class);
|
||||
RSocketRequester.builder()
|
||||
.rsocketStrategies(strategies)
|
||||
@@ -88,7 +88,8 @@ public class DefaultRSocketRequesterBuilderTests {
|
||||
.connect(this.transport)
|
||||
.block();
|
||||
verify(this.transport).connect(anyInt());
|
||||
verify(factoryConfigurer).accept(any(RSocketFactory.ClientRSocketFactory.class));
|
||||
verify(factoryConfigurer).configureWithStrategies(any(RSocketStrategies.class));
|
||||
verify(factoryConfigurer).configure(any(RSocketFactory.ClientRSocketFactory.class));
|
||||
verify(strategiesConfigurer).accept(any(RSocketStrategies.Builder.class));
|
||||
}
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ import org.springframework.core.codec.StringDecoder;
|
||||
import org.springframework.core.io.buffer.NettyDataBufferFactory;
|
||||
import org.springframework.messaging.handler.annotation.MessageMapping;
|
||||
import org.springframework.messaging.rsocket.annotation.ConnectMapping;
|
||||
import org.springframework.messaging.rsocket.annotation.support.ClientResponderFactory;
|
||||
import org.springframework.messaging.rsocket.annotation.support.AnnotationClientResponderConfigurer;
|
||||
import org.springframework.messaging.rsocket.annotation.support.RSocketMessageHandler;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
@@ -103,22 +103,21 @@ public class RSocketServerToClientIntegrationTests {
|
||||
|
||||
ServerController serverController = context.getBean(ServerController.class);
|
||||
serverController.reset();
|
||||
RSocketStrategies rSocketStrategies = context.getBean(RSocketStrategies.class);
|
||||
|
||||
ClientResponderFactory clientResponder = ClientResponderFactory.create()
|
||||
.strategies(rSocketStrategies)
|
||||
.handlers(new ClientHandler());
|
||||
RSocketStrategies strategies = context.getBean(RSocketStrategies.class);
|
||||
|
||||
RSocketRequester requester = null;
|
||||
try {
|
||||
ClientRSocketFactoryConfigurer responderConfigurer =
|
||||
AnnotationClientResponderConfigurer.withHandlers(new ClientHandler());
|
||||
|
||||
requester = RSocketRequester.builder()
|
||||
.rsocketFactory(factory -> {
|
||||
factory.metadataMimeType("text/plain");
|
||||
factory.setupPayload(ByteBufPayload.create("", connectionRoute));
|
||||
factory.frameDecoder(PayloadDecoder.ZERO_COPY);
|
||||
})
|
||||
.rsocketFactory(clientResponder)
|
||||
.rsocketStrategies(rSocketStrategies)
|
||||
.rsocketFactory(responderConfigurer)
|
||||
.rsocketStrategies(strategies)
|
||||
.connectTcp("localhost", server.address().getPort())
|
||||
.block();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user