Skip to content

Commit 598094c

Browse files
committed
Make HttpClientCodec#initialBufferSize configurable, close AsyncHttpClient#1405
1 parent a0e60a5 commit 598094c

File tree

5 files changed

+24
-2
lines changed

5 files changed

+24
-2
lines changed

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,8 @@ public interface AsyncHttpClientConfig {
241241

242242
int getHttpClientCodecMaxChunkSize();
243243

244+
int getHttpClientInitialBufferSize();
245+
244246
boolean isDisableZeroCopy();
245247

246248
int getHandshakeTimeout();

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ public class DefaultAsyncHttpClientConfig implements AsyncHttpClientConfig {
116116
private final int httpClientCodecMaxInitialLineLength;
117117
private final int httpClientCodecMaxHeaderSize;
118118
private final int httpClientCodecMaxChunkSize;
119+
private final int httpClientInitialBufferSize;
119120
private final int chunkedFileChunkSize;
120121
private final int webSocketMaxBufferSize;
121122
private final int webSocketMaxFrameSize;
@@ -197,6 +198,7 @@ private DefaultAsyncHttpClientConfig(//
197198
int httpClientCodecMaxInitialLineLength,//
198199
int httpClientCodecMaxHeaderSize,//
199200
int httpClientCodecMaxChunkSize,//
201+
int httpClientInitialBufferSize,//
200202
int chunkedFileChunkSize,//
201203
int webSocketMaxBufferSize,//
202204
int webSocketMaxFrameSize,//
@@ -272,6 +274,7 @@ private DefaultAsyncHttpClientConfig(//
272274
this.httpClientCodecMaxInitialLineLength = httpClientCodecMaxInitialLineLength;
273275
this.httpClientCodecMaxHeaderSize = httpClientCodecMaxHeaderSize;
274276
this.httpClientCodecMaxChunkSize = httpClientCodecMaxChunkSize;
277+
this.httpClientInitialBufferSize = httpClientInitialBufferSize;
275278
this.chunkedFileChunkSize = chunkedFileChunkSize;
276279
this.webSocketMaxBufferSize = webSocketMaxBufferSize;
277280
this.webSocketMaxFrameSize = webSocketMaxFrameSize;
@@ -540,6 +543,11 @@ public int getHttpClientCodecMaxChunkSize() {
540543
return httpClientCodecMaxChunkSize;
541544
}
542545

546+
@Override
547+
public int getHttpClientInitialBufferSize() {
548+
return httpClientInitialBufferSize;
549+
}
550+
543551
@Override
544552
public int getChunkedFileChunkSize() {
545553
return chunkedFileChunkSize;
@@ -673,6 +681,7 @@ public static class Builder {
673681
private int httpClientCodecMaxInitialLineLength = defaultHttpClientCodecMaxInitialLineLength();
674682
private int httpClientCodecMaxHeaderSize = defaultHttpClientCodecMaxHeaderSize();
675683
private int httpClientCodecMaxChunkSize = defaultHttpClientCodecMaxChunkSize();
684+
private int httpClientInitialBufferSize = defaultHttpClientInitialBufferSize();
676685
private int chunkedFileChunkSize = defaultChunkedFileChunkSize();
677686
private int webSocketMaxBufferSize = defaultWebSocketMaxBufferSize();
678687
private int webSocketMaxFrameSize = defaultWebSocketMaxFrameSize();
@@ -1043,6 +1052,11 @@ public Builder setHttpClientCodecMaxChunkSize(int httpClientCodecMaxChunkSize) {
10431052
return this;
10441053
}
10451054

1055+
public Builder setHttpClientInitialBufferSize(int httpClientInitialBufferSize) {
1056+
this.httpClientInitialBufferSize = httpClientInitialBufferSize;
1057+
return this;
1058+
}
1059+
10461060
public Builder setChunkedFileChunkSize(int chunkedFileChunkSize) {
10471061
this.chunkedFileChunkSize = chunkedFileChunkSize;
10481062
return this;
@@ -1173,6 +1187,7 @@ public DefaultAsyncHttpClientConfig build() {
11731187
httpClientCodecMaxInitialLineLength, //
11741188
httpClientCodecMaxHeaderSize, //
11751189
httpClientCodecMaxChunkSize, //
1190+
httpClientInitialBufferSize, //
11761191
chunkedFileChunkSize, //
11771192
webSocketMaxBufferSize, //
11781193
webSocketMaxFrameSize, //

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
*/
1313
package org.asynchttpclient.config;
1414

15-
1615
public final class AsyncHttpClientConfigDefaults {
1716

1817
private AsyncHttpClientConfigDefaults() {
@@ -164,6 +163,10 @@ public static int defaultHttpClientCodecMaxChunkSize() {
164163
return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "httpClientCodecMaxChunkSize");
165164
}
166165

166+
public static int defaultHttpClientInitialBufferSize() {
167+
return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getInt(ASYNC_CLIENT_CONFIG_ROOT + "httpClientInitialBufferSize");
168+
}
169+
167170
public static boolean defaultDisableZeroCopy() {
168171
return AsyncHttpClientConfigHelper.getAsyncHttpClientConfig().getBoolean(ASYNC_CLIENT_CONFIG_ROOT + "disableZeroCopy");
169172
}

client/src/main/java/org/asynchttpclient/netty/channel/ChannelManager.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,8 @@ private HttpClientCodec newHttpClientCodec() {
329329
config.getHttpClientCodecMaxHeaderSize(),//
330330
config.getHttpClientCodecMaxChunkSize(),//
331331
false,//
332-
config.isValidateResponseHeaders());
332+
config.isValidateResponseHeaders(),//
333+
config.getHttpClientInitialBufferSize());
333334
}
334335

335336
private SslHandler createSslHandler(String peerHost, int peerPort) {

client/src/main/resources/ahc-default.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ org.asynchttpclient.soRcvBuf=-1
3535
org.asynchttpclient.httpClientCodecMaxInitialLineLength=4096
3636
org.asynchttpclient.httpClientCodecMaxHeaderSize=8192
3737
org.asynchttpclient.httpClientCodecMaxChunkSize=8192
38+
org.asynchttpclient.httpClientInitialBufferSize=128
3839
org.asynchttpclient.disableZeroCopy=false
3940
org.asynchttpclient.handshakeTimeout=10000
4041
org.asynchttpclient.chunkedFileChunkSize=8192

0 commit comments

Comments
 (0)