From 6f68af686070b36bf78712a4e78441cf35ae725a Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Mon, 13 Feb 2017 15:01:59 -0500 Subject: [PATCH] Uncomment test following fix in reactor-netty --- .../socket/client/ReactorNettyWebSocketClient.java | 12 ++++++------ .../reactive/socket/WebSocketIntegrationTests.java | 6 ------ 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/socket/client/ReactorNettyWebSocketClient.java b/spring-webflux/src/main/java/org/springframework/web/reactive/socket/client/ReactorNettyWebSocketClient.java index b386b5e380a..ec70e4e0141 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/socket/client/ReactorNettyWebSocketClient.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/socket/client/ReactorNettyWebSocketClient.java @@ -22,11 +22,11 @@ import io.netty.buffer.ByteBufAllocator; import reactor.core.publisher.Mono; import reactor.ipc.netty.http.client.HttpClient; import reactor.ipc.netty.http.client.HttpClientOptions; -import reactor.ipc.netty.http.client.HttpClientRequest; import reactor.ipc.netty.http.client.HttpClientResponse; import org.springframework.core.io.buffer.NettyDataBufferFactory; import org.springframework.http.HttpHeaders; +import org.springframework.util.StringUtils; import org.springframework.web.reactive.socket.HandshakeInfo; import org.springframework.web.reactive.socket.WebSocketHandler; import org.springframework.web.reactive.socket.WebSocketSession; @@ -76,10 +76,11 @@ public class ReactorNettyWebSocketClient extends WebSocketClientSupport implemen public Mono execute(URI url, HttpHeaders headers, WebSocketHandler handler) { String[] protocols = beforeHandshake(url, headers, handler); - // TODO: https://github.com/reactor/reactor-netty/issues/20 return getHttpClient() - .get(url.toString(), request -> addHeaders(request, headers).sendWebsocket()) + .ws(url.toString(), + nettyHeaders -> setNettyHeaders(headers, nettyHeaders), + StringUtils.arrayToCommaDelimitedString(protocols)) .then(response -> { HandshakeInfo info = afterHandshake(url, toHttpHeaders(response)); ByteBufAllocator allocator = response.channel().alloc(); @@ -91,9 +92,8 @@ public class ReactorNettyWebSocketClient extends WebSocketClientSupport implemen }); } - private HttpClientRequest addHeaders(HttpClientRequest request, HttpHeaders headers) { - headers.keySet().stream().forEach(key -> request.requestHeaders().set(key, headers.get(key))); - return request; + private void setNettyHeaders(HttpHeaders headers, io.netty.handler.codec.http.HttpHeaders nettyHeaders) { + headers.keySet().stream().forEach(key -> nettyHeaders.set(key, headers.get(key))); } private HttpHeaders toHttpHeaders(HttpClientResponse response) { diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/socket/WebSocketIntegrationTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/socket/WebSocketIntegrationTests.java index fbb5eaf026c..93d68925565 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/socket/WebSocketIntegrationTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/socket/WebSocketIntegrationTests.java @@ -32,11 +32,9 @@ import org.springframework.context.annotation.Configuration; import org.springframework.http.HttpHeaders; import org.springframework.web.reactive.HandlerMapping; import org.springframework.web.reactive.handler.SimpleUrlHandlerMapping; -import org.springframework.web.reactive.socket.client.ReactorNettyWebSocketClient; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThat; -import static org.junit.Assume.assumeFalse; /** * Integration tests with server-side {@link WebSocketHandler}s. @@ -72,10 +70,6 @@ public class WebSocketIntegrationTests extends AbstractWebSocketIntegrationTests @Test public void subProtocol() throws Exception { - // TODO - // https://github.com/reactor/reactor-netty/issues/20 - assumeFalse(client instanceof ReactorNettyWebSocketClient); - String protocol = "echo-v1"; AtomicReference infoRef = new AtomicReference<>(); MonoProcessor output = MonoProcessor.create();