Remove use of MonoProcessor.fromSinks
See gh-25884
This commit is contained in:
@@ -20,8 +20,6 @@ import java.time.Duration;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import reactor.core.publisher.Mono;
|
||||
import reactor.core.publisher.MonoProcessor;
|
||||
import reactor.core.publisher.Sinks;
|
||||
|
||||
import org.springframework.core.MethodParameter;
|
||||
import org.springframework.core.ReactiveAdapterRegistry;
|
||||
@@ -91,9 +89,7 @@ class ErrorsMethodArgumentResolverTests {
|
||||
@Test
|
||||
void resolveWithMono() {
|
||||
BindingResult bindingResult = createBindingResult(new Foo(), "foo");
|
||||
MonoProcessor<BindingResult> monoProcessor = MonoProcessor.fromSink(Sinks.one());
|
||||
monoProcessor.onNext(bindingResult);
|
||||
this.bindingContext.getModel().asMap().put(BindingResult.MODEL_KEY_PREFIX + "foo", monoProcessor);
|
||||
this.bindingContext.getModel().asMap().put(BindingResult.MODEL_KEY_PREFIX + "foo", Mono.just(bindingResult));
|
||||
|
||||
MethodParameter parameter = this.testMethod.arg(Errors.class);
|
||||
Object actual = this.resolver.resolveArgument(parameter, this.bindingContext, this.exchange)
|
||||
|
||||
@@ -26,7 +26,7 @@ import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.MonoProcessor;
|
||||
import reactor.core.publisher.Mono;
|
||||
import reactor.core.publisher.Sinks;
|
||||
import reactor.test.StepVerifier;
|
||||
|
||||
@@ -224,7 +224,9 @@ class SseIntegrationTests extends AbstractHttpHandlerIntegrationTests {
|
||||
|
||||
private static final Flux<Long> INTERVAL = testInterval(Duration.ofMillis(100), 50);
|
||||
|
||||
private MonoProcessor<Void> cancellation = MonoProcessor.fromSink(Sinks.one());
|
||||
private final Sinks.Empty<Void> cancelSink = Sinks.empty();
|
||||
|
||||
private Mono<Void> cancellation = cancelSink.asMono();
|
||||
|
||||
|
||||
@GetMapping("/string")
|
||||
@@ -250,7 +252,7 @@ class SseIntegrationTests extends AbstractHttpHandlerIntegrationTests {
|
||||
Flux<String> infinite() {
|
||||
return Flux.just(0, 1).map(l -> "foo " + l)
|
||||
.mergeWith(Flux.never())
|
||||
.doOnCancel(() -> cancellation.onComplete());
|
||||
.doOnCancel(() -> cancelSink.emitEmpty(Sinks.EmitFailureHandler.FAIL_FAST));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -27,8 +27,6 @@ import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
import reactor.core.publisher.MonoProcessor;
|
||||
import reactor.core.publisher.Sinks;
|
||||
import reactor.util.retry.Retry;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@@ -99,7 +97,7 @@ class WebSocketIntegrationTests extends AbstractWebSocketIntegrationTests {
|
||||
|
||||
String protocol = "echo-v1";
|
||||
AtomicReference<HandshakeInfo> infoRef = new AtomicReference<>();
|
||||
MonoProcessor<Object> output = MonoProcessor.fromSink(Sinks.unsafe().one());
|
||||
AtomicReference<Object> protocolRef = new AtomicReference<>();
|
||||
|
||||
this.client.execute(getUrl("/sub-protocol"),
|
||||
new WebSocketHandler() {
|
||||
@@ -113,7 +111,8 @@ class WebSocketIntegrationTests extends AbstractWebSocketIntegrationTests {
|
||||
infoRef.set(session.getHandshakeInfo());
|
||||
return session.receive()
|
||||
.map(WebSocketMessage::getPayloadAsText)
|
||||
.subscribeWith(output)
|
||||
.doOnNext(protocolRef::set)
|
||||
.doOnError(protocolRef::set)
|
||||
.then();
|
||||
}
|
||||
})
|
||||
@@ -123,7 +122,7 @@ class WebSocketIntegrationTests extends AbstractWebSocketIntegrationTests {
|
||||
assertThat(info.getHeaders().getFirst("Upgrade")).isEqualToIgnoringCase("websocket");
|
||||
assertThat(info.getHeaders().getFirst("Sec-WebSocket-Protocol")).isEqualTo(protocol);
|
||||
assertThat(info.getSubProtocol()).as("Wrong protocol accepted").isEqualTo(protocol);
|
||||
assertThat(output.block(TIMEOUT)).as("Wrong protocol detected on the server side").isEqualTo(protocol);
|
||||
assertThat(protocolRef.get()).as("Wrong protocol detected on the server side").isEqualTo(protocol);
|
||||
}
|
||||
|
||||
@ParameterizedWebSocketTest
|
||||
@@ -132,27 +131,28 @@ class WebSocketIntegrationTests extends AbstractWebSocketIntegrationTests {
|
||||
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.add("my-header", "my-value");
|
||||
MonoProcessor<Object> output = MonoProcessor.fromSink(Sinks.unsafe().one());
|
||||
AtomicReference<Object> headerRef = new AtomicReference<>();
|
||||
|
||||
this.client.execute(getUrl("/custom-header"), headers,
|
||||
session -> session.receive()
|
||||
.map(WebSocketMessage::getPayloadAsText)
|
||||
.subscribeWith(output)
|
||||
.doOnNext(headerRef::set)
|
||||
.doOnError(headerRef::set)
|
||||
.then())
|
||||
.block(TIMEOUT);
|
||||
|
||||
assertThat(output.block(TIMEOUT)).isEqualTo("my-header:my-value");
|
||||
assertThat(headerRef.get()).isEqualTo("my-header:my-value");
|
||||
}
|
||||
|
||||
@ParameterizedWebSocketTest
|
||||
void sessionClosing(WebSocketClient client, HttpServer server, Class<?> serverConfigClass) throws Exception {
|
||||
startServer(client, server, serverConfigClass);
|
||||
|
||||
MonoProcessor<CloseStatus> statusProcessor = MonoProcessor.fromSink(Sinks.unsafe().one());
|
||||
AtomicReference<Object> statusRef = new AtomicReference<>();
|
||||
this.client.execute(getUrl("/close"),
|
||||
session -> {
|
||||
logger.debug("Starting..");
|
||||
session.closeStatus().subscribe(statusProcessor);
|
||||
session.closeStatus().subscribe(statusRef::set, statusRef::set, () -> {});
|
||||
return session.receive()
|
||||
.doOnNext(s -> logger.debug("inbound " + s))
|
||||
.then()
|
||||
@@ -162,25 +162,26 @@ class WebSocketIntegrationTests extends AbstractWebSocketIntegrationTests {
|
||||
})
|
||||
.block(TIMEOUT);
|
||||
|
||||
assertThat(statusProcessor.block()).isEqualTo(CloseStatus.GOING_AWAY);
|
||||
assertThat(statusRef.get()).isEqualTo(CloseStatus.GOING_AWAY);
|
||||
}
|
||||
|
||||
@ParameterizedWebSocketTest
|
||||
void cookie(WebSocketClient client, HttpServer server, Class<?> serverConfigClass) throws Exception {
|
||||
startServer(client, server, serverConfigClass);
|
||||
|
||||
MonoProcessor<Object> output = MonoProcessor.fromSink(Sinks.unsafe().one());
|
||||
AtomicReference<String> cookie = new AtomicReference<>();
|
||||
AtomicReference<Object> receivedCookieRef = new AtomicReference<>();
|
||||
this.client.execute(getUrl("/cookie"),
|
||||
session -> {
|
||||
cookie.set(session.getHandshakeInfo().getHeaders().getFirst("Set-Cookie"));
|
||||
return session.receive()
|
||||
.map(WebSocketMessage::getPayloadAsText)
|
||||
.subscribeWith(output)
|
||||
.doOnNext(receivedCookieRef::set)
|
||||
.doOnError(receivedCookieRef::set)
|
||||
.then();
|
||||
})
|
||||
.block(TIMEOUT);
|
||||
assertThat(output.block(TIMEOUT)).isEqualTo("cookie");
|
||||
assertThat(receivedCookieRef.get()).isEqualTo("cookie");
|
||||
assertThat(cookie.get()).isEqualTo("project=spring");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user