Skip to content

Commit e398ee0

Browse files
committed
Properly propagate aggregateWebSocketFrameFragments, close AsyncHttpClient#1502
Motivation: Original `aggregateWebSocketFrameFragments ` is lost when creating DefaultAsyncHttpClientConfig from another config Modification: Propagate original value Result: Original `aggregateWebSocketFrameFragments` is not lost
1 parent 771d4d7 commit e398ee0

File tree

3 files changed

+54
-46
lines changed

3 files changed

+54
-46
lines changed

client/src/main/java/org/asynchttpclient/DefaultAsyncHttpClientConfig.java

Lines changed: 45 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@
3434
import org.asynchttpclient.proxy.ProxyServerSelector;
3535
import org.asynchttpclient.util.ProxyUtils;
3636

37-
import java.io.IOException;
38-
import java.io.InputStream;
3937
import java.util.*;
4038
import java.util.concurrent.ThreadFactory;
4139
import java.util.function.Consumer;
@@ -355,8 +353,23 @@ public ProxyServerSelector getProxyServerSelector() {
355353
return proxyServerSelector;
356354
}
357355

358-
// timeouts
356+
// websocket
357+
@Override
358+
public boolean isAggregateWebSocketFrameFragments() {
359+
return aggregateWebSocketFrameFragments;
360+
}
361+
362+
@Override
363+
public int getWebSocketMaxBufferSize() {
364+
return webSocketMaxBufferSize;
365+
}
359366

367+
@Override
368+
public int getWebSocketMaxFrameSize() {
369+
return webSocketMaxFrameSize;
370+
}
371+
372+
// timeouts
360373
@Override
361374
public int getConnectTimeout() {
362375
return connectTimeout;
@@ -428,11 +441,6 @@ public boolean isValidateResponseHeaders() {
428441
return validateResponseHeaders;
429442
}
430443

431-
@Override
432-
public boolean isAggregateWebSocketFrameFragments() {
433-
return aggregateWebSocketFrameFragments;
434-
}
435-
436444
// ssl
437445
@Override
438446
public boolean isUseOpenSsl() {
@@ -563,16 +571,6 @@ public int getChunkedFileChunkSize() {
563571
return chunkedFileChunkSize;
564572
}
565573

566-
@Override
567-
public int getWebSocketMaxBufferSize() {
568-
return webSocketMaxBufferSize;
569-
}
570-
571-
@Override
572-
public int getWebSocketMaxFrameSize() {
573-
return webSocketMaxFrameSize;
574-
}
575-
576574
@Override
577575
public Map<ChannelOption<Object>, Object> getChannelOptions() {
578576
return channelOptions;
@@ -648,13 +646,19 @@ public static class Builder {
648646
private boolean useProxySelector = defaultUseProxySelector();
649647
private boolean useProxyProperties = defaultUseProxyProperties();
650648
private boolean validateResponseHeaders = defaultValidateResponseHeaders();
649+
650+
// websocket
651651
private boolean aggregateWebSocketFrameFragments = defaultAggregateWebSocketFrameFragments();
652+
private int webSocketMaxBufferSize = defaultWebSocketMaxBufferSize();
653+
private int webSocketMaxFrameSize = defaultWebSocketMaxFrameSize();
654+
652655
// timeouts
653656
private int connectTimeout = defaultConnectTimeout();
654657
private int requestTimeout = defaultRequestTimeout();
655658
private int readTimeout = defaultReadTimeout();
656659
private int shutdownQuietPeriod = defaultShutdownQuietPeriod();
657660
private int shutdownTimeout = defaultShutdownTimeout();
661+
658662
// keep-alive
659663
private boolean keepAlive = defaultKeepAlive();
660664
private int pooledConnectionIdleTimeout = defaultPooledConnectionIdleTimeout();
@@ -664,6 +668,7 @@ public static class Builder {
664668
private int maxConnectionsPerHost = defaultMaxConnectionsPerHost();
665669
private ChannelPool channelPool;
666670
private KeepAliveStrategy keepAliveStrategy = new DefaultKeepAliveStrategy();
671+
667672
// ssl
668673
private boolean useOpenSsl = defaultUseOpenSsl();
669674
private boolean useInsecureTrustManager = defaultUseInsecureTrustManager();
@@ -675,6 +680,7 @@ public static class Builder {
675680
private int sslSessionTimeout = defaultSslSessionTimeout();
676681
private SslContext sslContext;
677682
private SslEngineFactory sslEngineFactory;
683+
678684
// cookie store
679685
private CookieStore cookieStore = new ThreadSafeCookieStore();
680686

@@ -692,8 +698,6 @@ public static class Builder {
692698
private int httpClientCodecMaxChunkSize = defaultHttpClientCodecMaxChunkSize();
693699
private int httpClientCodecInitialBufferSize = defaultHttpClientCodecInitialBufferSize();
694700
private int chunkedFileChunkSize = defaultChunkedFileChunkSize();
695-
private int webSocketMaxBufferSize = defaultWebSocketMaxBufferSize();
696-
private int webSocketMaxFrameSize = defaultWebSocketMaxFrameSize();
697701
private boolean useNativeTransport = defaultUseNativeTransport();
698702
private ByteBufAllocator allocator;
699703
private Map<ChannelOption<Object>, Object> channelOptions = new HashMap<>();
@@ -722,6 +726,11 @@ public Builder(AsyncHttpClientConfig config) {
722726
keepEncodingHeader = config.isKeepEncodingHeader();
723727
proxyServerSelector = config.getProxyServerSelector();
724728

729+
// websocket
730+
aggregateWebSocketFrameFragments = config.isAggregateWebSocketFrameFragments();
731+
webSocketMaxBufferSize = config.getWebSocketMaxBufferSize();
732+
webSocketMaxFrameSize = config.getWebSocketMaxFrameSize();
733+
725734
// timeouts
726735
connectTimeout = config.getConnectTimeout();
727736
requestTimeout = config.getRequestTimeout();
@@ -766,8 +775,6 @@ public Builder(AsyncHttpClientConfig config) {
766775
httpClientCodecMaxHeaderSize = config.getHttpClientCodecMaxHeaderSize();
767776
httpClientCodecMaxChunkSize = config.getHttpClientCodecMaxChunkSize();
768777
chunkedFileChunkSize = config.getChunkedFileChunkSize();
769-
webSocketMaxBufferSize = config.getWebSocketMaxBufferSize();
770-
webSocketMaxFrameSize = config.getWebSocketMaxFrameSize();
771778
channelOptions.putAll(config.getChannelOptions());
772779
eventLoopGroup = config.getEventLoopGroup();
773780
useNativeTransport = config.isUseNativeTransport();
@@ -851,11 +858,6 @@ public Builder setValidateResponseHeaders(boolean validateResponseHeaders) {
851858
return this;
852859
}
853860

854-
public Builder setAggregateWebSocketFrameFragments(boolean aggregateWebSocketFrameFragments) {
855-
this.aggregateWebSocketFrameFragments = aggregateWebSocketFrameFragments;
856-
return this;
857-
}
858-
859861
public Builder setProxyServer(ProxyServer proxyServer) {
860862
this.proxyServerSelector = uri -> proxyServer;
861863
return this;
@@ -875,6 +877,22 @@ public Builder setUseProxyProperties(boolean useProxyProperties) {
875877
return this;
876878
}
877879

880+
// websocket
881+
public Builder setAggregateWebSocketFrameFragments(boolean aggregateWebSocketFrameFragments) {
882+
this.aggregateWebSocketFrameFragments = aggregateWebSocketFrameFragments;
883+
return this;
884+
}
885+
886+
public Builder setWebSocketMaxBufferSize(int webSocketMaxBufferSize) {
887+
this.webSocketMaxBufferSize = webSocketMaxBufferSize;
888+
return this;
889+
}
890+
891+
public Builder setWebSocketMaxFrameSize(int webSocketMaxFrameSize) {
892+
this.webSocketMaxFrameSize = webSocketMaxFrameSize;
893+
return this;
894+
}
895+
878896
// timeouts
879897
public Builder setConnectTimeout(int connectTimeout) {
880898
this.connectTimeout = connectTimeout;
@@ -1082,16 +1100,6 @@ public Builder setChunkedFileChunkSize(int chunkedFileChunkSize) {
10821100
return this;
10831101
}
10841102

1085-
public Builder setWebSocketMaxBufferSize(int webSocketMaxBufferSize) {
1086-
this.webSocketMaxBufferSize = webSocketMaxBufferSize;
1087-
return this;
1088-
}
1089-
1090-
public Builder setWebSocketMaxFrameSize(int webSocketMaxFrameSize) {
1091-
this.webSocketMaxFrameSize = webSocketMaxFrameSize;
1092-
return this;
1093-
}
1094-
10951103
@SuppressWarnings("unchecked")
10961104
public <T> Builder addChannelOption(ChannelOption<T> name, T value) {
10971105
channelOptions.put((ChannelOption<Object>) name, value);

client/src/main/java/org/asynchttpclient/config/AsyncHttpClientConfigDefaults.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public final class AsyncHttpClientConfigDefaults {
3737
public static final String USE_PROXY_SELECTOR_CONFIG = "useProxySelector";
3838
public static final String USE_PROXY_PROPERTIES_CONFIG = "useProxyProperties";
3939
public static final String VALIDATE_RESPONSE_HEADERS_CONFIG = "validateResponseHeaders";
40-
public static final String AGGREGATE_WEB_SOCKET_FRAME_FRAGMENTS_CONFIG = "aggregateWebSocketFrameFragments";
40+
public static final String AGGREGATE_WEBSOCKET_FRAME_FRAGMENTS_CONFIG = "aggregateWebSocketFrameFragments";
4141
public static final String STRICT_302_HANDLING_CONFIG = "strict302Handling";
4242
public static final String KEEP_ALIVE_CONFIG = "keepAlive";
4343
public static final String MAX_REQUEST_RETRY_CONFIG = "maxRequestRetry";
@@ -60,8 +60,8 @@ public final class AsyncHttpClientConfigDefaults {
6060
public static final String DISABLE_ZERO_COPY_CONFIG = "disableZeroCopy";
6161
public static final String HANDSHAKE_TIMEOUT_CONFIG = "handshakeTimeout";
6262
public static final String CHUNKED_FILE_CHUNK_SIZE_CONFIG = "chunkedFileChunkSize";
63-
public static final String WEB_SOCKET_MAX_BUFFER_SIZE_CONFIG = "webSocketMaxBufferSize";
64-
public static final String WEB_SOCKET_MAX_FRAME_SIZE_CONFIG = "webSocketMaxFrameSize";
63+
public static final String WEBSOCKET_MAX_BUFFER_SIZE_CONFIG = "webSocketMaxBufferSize";
64+
public static final String WEBSOCKET_MAX_FRAME_SIZE_CONFIG = "webSocketMaxFrameSize";
6565
public static final String KEEP_ENCODING_HEADER_CONFIG = "keepEncodingHeader";
6666
public static final String SHUTDOWN_QUIET_PERIOD_CONFIG = "shutdownQuietPeriod";
6767
public static final String SHUTDOWN_TIMEOUT_CONFIG = "shutdownTimeout";
@@ -156,7 +156,7 @@ public static boolean defaultValidateResponseHeaders() {
156156
}
157157

158158
public static boolean defaultAggregateWebSocketFrameFragments() {
159-
return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + AGGREGATE_WEB_SOCKET_FRAME_FRAGMENTS_CONFIG);
159+
return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + AGGREGATE_WEBSOCKET_FRAME_FRAGMENTS_CONFIG);
160160
}
161161

162162
public static boolean defaultStrict302Handling() {
@@ -248,11 +248,11 @@ public static int defaultChunkedFileChunkSize() {
248248
}
249249

250250
public static int defaultWebSocketMaxBufferSize() {
251-
return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + WEB_SOCKET_MAX_BUFFER_SIZE_CONFIG);
251+
return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + WEBSOCKET_MAX_BUFFER_SIZE_CONFIG);
252252
}
253253

254254
public static int defaultWebSocketMaxFrameSize() {
255-
return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + WEB_SOCKET_MAX_FRAME_SIZE_CONFIG);
255+
return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + WEBSOCKET_MAX_FRAME_SIZE_CONFIG);
256256
}
257257

258258
public static boolean defaultKeepEncodingHeader() {

extras/typesafeconfig/src/main/java/org/asynchttpclient/extras/typesafeconfig/AsyncHttpClientTypesafeConfig.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -260,12 +260,12 @@ public int getChunkedFileChunkSize() {
260260

261261
@Override
262262
public int getWebSocketMaxBufferSize() {
263-
return getIntegerOpt(WEB_SOCKET_MAX_BUFFER_SIZE_CONFIG).orElse(defaultWebSocketMaxBufferSize());
263+
return getIntegerOpt(WEBSOCKET_MAX_BUFFER_SIZE_CONFIG).orElse(defaultWebSocketMaxBufferSize());
264264
}
265265

266266
@Override
267267
public int getWebSocketMaxFrameSize() {
268-
return getIntegerOpt(WEB_SOCKET_MAX_FRAME_SIZE_CONFIG).orElse(defaultWebSocketMaxFrameSize());
268+
return getIntegerOpt(WEBSOCKET_MAX_FRAME_SIZE_CONFIG).orElse(defaultWebSocketMaxFrameSize());
269269
}
270270

271271
@Override
@@ -335,7 +335,7 @@ public boolean isValidateResponseHeaders() {
335335

336336
@Override
337337
public boolean isAggregateWebSocketFrameFragments() {
338-
return getBooleanOpt(AGGREGATE_WEB_SOCKET_FRAME_FRAGMENTS_CONFIG).orElse(defaultAggregateWebSocketFrameFragments());
338+
return getBooleanOpt(AGGREGATE_WEBSOCKET_FRAME_FRAGMENTS_CONFIG).orElse(defaultAggregateWebSocketFrameFragments());
339339
}
340340

341341
@Override

0 commit comments

Comments
 (0)