Switch to Reactor Netty 2 snapshots

Update to Reactor BOM 2022.0.0-SNAPSHOT.
Process package changes.
Adapt to new `HttpHeaders` API.
Adapt to new cookies API.

See gh-29247
This commit is contained in:
Violeta Georgieva
2022-10-03 16:55:38 +03:00
committed by rstoyanchev
parent 1b1682eacd
commit b5adae2086
24 changed files with 149 additions and 90 deletions

View File

@@ -19,7 +19,7 @@ package org.springframework.web.reactive.socket.adapter;
import java.util.HashMap;
import java.util.Map;
import io.netty5.buffer.api.Buffer;
import io.netty5.buffer.Buffer;
import io.netty5.handler.codec.http.websocketx.BinaryWebSocketFrame;
import io.netty5.handler.codec.http.websocketx.PingWebSocketFrame;
import io.netty5.handler.codec.http.websocketx.PongWebSocketFrame;

View File

@@ -17,6 +17,9 @@
package org.springframework.web.reactive.socket.client;
import java.net.URI;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.function.Supplier;
import org.apache.commons.logging.Log;
@@ -148,18 +151,26 @@ public class ReactorNetty2WebSocketClient implements WebSocketClient {
.next();
}
private void setNettyHeaders(HttpHeaders httpHeaders, io.netty5.handler.codec.http.HttpHeaders nettyHeaders) {
private void setNettyHeaders(HttpHeaders httpHeaders, io.netty5.handler.codec.http.headers.HttpHeaders nettyHeaders) {
httpHeaders.forEach(nettyHeaders::set);
}
private HttpHeaders toHttpHeaders(WebsocketInbound inbound) {
HttpHeaders headers = new HttpHeaders();
io.netty5.handler.codec.http.HttpHeaders nettyHeaders = inbound.headers();
io.netty5.handler.codec.http.headers.HttpHeaders nettyHeaders = inbound.headers();
nettyHeaders.forEach(entry -> {
String name = entry.getKey();
headers.put(name, nettyHeaders.getAll(name));
CharSequence name = entry.getKey();
headers.put(name.toString(), getAll(nettyHeaders.valuesIterator(name)));
});
return headers;
}
private static List<String> getAll(Iterator<CharSequence> valuesIterator) {
List<String> result = new ArrayList<>();
while (valuesIterator.hasNext()) {
result.add(valuesIterator.next().toString());
}
return result;
}
}

View File

@@ -863,7 +863,7 @@ class WebClientIntegrationTests {
@ParameterizedWebClientTest
void statusHandlerSuppressedErrorSignalWithFlux(ClientHttpConnector connector) {
// Temporarily disabled, leads to io.netty5.buffer.api.BufferClosedException
// Temporarily disabled, leads to io.netty5.buffer.BufferClosedException
if (connector instanceof ReactorNetty2ClientHttpConnector) {
return;
}
@@ -1188,7 +1188,7 @@ class WebClientIntegrationTests {
prepareResponse(response -> response
.setHeader("Content-Type", "text/plain")
.addHeader("Set-Cookie", "testkey1=testvalue1;")
.addHeader("Set-Cookie", "testkey1=testvalue1") // TODO invalid ";" at the end
.addHeader("Set-Cookie", "testkey2=testvalue2; Max-Age=42; HttpOnly; SameSite=Lax; Secure")
.setBody("test"));