|
1 | 1 | /*
|
2 |
| - * Copyright 2002-2020 the original author or authors. |
| 2 | + * Copyright 2002-2021 the original author or authors. |
3 | 3 | *
|
4 | 4 | * Licensed under the Apache License, Version 2.0 (the "License");
|
5 | 5 | * you may not use this file except in compliance with the License.
|
|
19 | 19 | import java.time.Duration;
|
20 | 20 | import java.util.concurrent.atomic.AtomicInteger;
|
21 | 21 |
|
22 |
| -import io.rsocket.Payload; |
23 | 22 | import io.rsocket.RSocket;
|
24 | 23 | import io.rsocket.SocketAcceptor;
|
25 | 24 | import io.rsocket.core.RSocketServer;
|
|
43 | 42 | import org.springframework.messaging.handler.annotation.Header;
|
44 | 43 | import org.springframework.messaging.handler.annotation.MessageExceptionHandler;
|
45 | 44 | import org.springframework.messaging.handler.annotation.MessageMapping;
|
| 45 | +import org.springframework.messaging.handler.annotation.Payload; |
46 | 46 | import org.springframework.messaging.rsocket.annotation.ConnectMapping;
|
47 | 47 | import org.springframework.messaging.rsocket.annotation.support.RSocketMessageHandler;
|
48 | 48 | import org.springframework.stereotype.Controller;
|
@@ -164,6 +164,12 @@ public void echoChannel() {
|
164 | 164 | .verify(Duration.ofSeconds(5));
|
165 | 165 | }
|
166 | 166 |
|
| 167 | + @Test // gh-26344 |
| 168 | + public void echoChannelWithEmptyInput() { |
| 169 | + Flux<String> result = requester.route("echo-channel-empty").data(Flux.empty()).retrieveFlux(String.class); |
| 170 | + StepVerifier.create(result).verifyComplete(); |
| 171 | + } |
| 172 | + |
167 | 173 | @Test
|
168 | 174 | public void metadataPush() {
|
169 | 175 | Flux.just("bar", "baz")
|
@@ -254,6 +260,11 @@ Flux<String> echoChannel(Flux<String> payloads) {
|
254 | 260 | return payloads.delayElements(Duration.ofMillis(10)).map(payload -> payload + " async");
|
255 | 261 | }
|
256 | 262 |
|
| 263 | + @MessageMapping("echo-channel-empty") |
| 264 | + Flux<String> echoChannelEmpty(@Payload(required = false) Flux<String> payloads) { |
| 265 | + return payloads.map(payload -> payload + " echoed"); |
| 266 | + } |
| 267 | + |
257 | 268 | @MessageMapping("thrown-exception")
|
258 | 269 | Mono<String> handleAndThrow(String payload) {
|
259 | 270 | throw new IllegalArgumentException("Invalid input error");
|
@@ -338,29 +349,29 @@ public RSocket apply(RSocket rsocket) {
|
338 | 349 | }
|
339 | 350 |
|
340 | 351 | @Override
|
341 |
| - public Mono<Void> fireAndForget(Payload payload) { |
| 352 | + public Mono<Void> fireAndForget(io.rsocket.Payload payload) { |
342 | 353 | return this.delegate.fireAndForget(payload)
|
343 | 354 | .doOnSuccess(aVoid -> this.fireAndForgetCount.incrementAndGet());
|
344 | 355 | }
|
345 | 356 |
|
346 | 357 | @Override
|
347 |
| - public Mono<Void> metadataPush(Payload payload) { |
| 358 | + public Mono<Void> metadataPush(io.rsocket.Payload payload) { |
348 | 359 | return this.delegate.metadataPush(payload)
|
349 | 360 | .doOnSuccess(aVoid -> this.metadataPushCount.incrementAndGet());
|
350 | 361 | }
|
351 | 362 |
|
352 | 363 | @Override
|
353 |
| - public Mono<Payload> requestResponse(Payload payload) { |
| 364 | + public Mono<io.rsocket.Payload> requestResponse(io.rsocket.Payload payload) { |
354 | 365 | return this.delegate.requestResponse(payload);
|
355 | 366 | }
|
356 | 367 |
|
357 | 368 | @Override
|
358 |
| - public Flux<Payload> requestStream(Payload payload) { |
| 369 | + public Flux<io.rsocket.Payload> requestStream(io.rsocket.Payload payload) { |
359 | 370 | return this.delegate.requestStream(payload);
|
360 | 371 | }
|
361 | 372 |
|
362 | 373 | @Override
|
363 |
| - public Flux<Payload> requestChannel(Publisher<Payload> payloads) { |
| 374 | + public Flux<io.rsocket.Payload> requestChannel(Publisher<io.rsocket.Payload> payloads) { |
364 | 375 | return this.delegate.requestChannel(payloads);
|
365 | 376 | }
|
366 | 377 | }
|
|
0 commit comments