Skip to content

Commit

Permalink
upgrade httpcore5/httpclient5 to support ExtendedSocketOption in Http…
Browse files Browse the repository at this point in the history
…AsyncClient

Signed-off-by: kkewwei <[email protected]>
Signed-off-by: kkewwei <[email protected]>
  • Loading branch information
kkewwei committed Dec 2, 2024
1 parent b75f27a commit 27a474b
Show file tree
Hide file tree
Showing 19 changed files with 51 additions and 12 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- Bump `org.xerial.snappy:snappy-java` from 1.1.10.6 to 1.1.10.7 ([#16665](https://github.com/opensearch-project/OpenSearch/pull/16665))
- Bump `codecov/codecov-action` from 4 to 5 ([#16667](https://github.com/opensearch-project/OpenSearch/pull/16667))
- Bump `org.apache.logging.log4j:log4j-core` from 2.24.1 to 2.24.2 ([#16718](https://github.com/opensearch-project/OpenSearch/pull/16718))
- Bump Apache HttpCore5/HttpClient5 dependencies from 5.2.5/5.3.1 to 5.3.1/5.4.1 to support ExtendedSocketOption in HttpAsyncClient ([#16757](https://github.com/opensearch-project/OpenSearch/pull/16757))

### Changed
- Indexed IP field supports `terms_query` with more than 1025 IP masks [#16391](https://github.com/opensearch-project/OpenSearch/pull/16391)
Expand Down
1 change: 0 additions & 1 deletion client/rest/licenses/httpclient5-5.3.1.jar.sha1

This file was deleted.

1 change: 1 addition & 0 deletions client/rest/licenses/httpclient5-5.4.1.jar.sha1
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ce913081e592ee8eeee35c4e577d7dce13cba7a4
1 change: 0 additions & 1 deletion client/rest/licenses/httpcore5-5.2.5.jar.sha1

This file was deleted.

1 change: 1 addition & 0 deletions client/rest/licenses/httpcore5-5.3.1.jar.sha1
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
eaf64237945d7d0f301d48420e8bdb7f565a7b0e
1 change: 0 additions & 1 deletion client/rest/licenses/httpcore5-h2-5.2.5.jar.sha1

This file was deleted.

1 change: 1 addition & 0 deletions client/rest/licenses/httpcore5-h2-5.3.1.jar.sha1
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
760c34db3ba41b0ffa07e956bc308d3a12356915
1 change: 0 additions & 1 deletion client/rest/licenses/httpcore5-reactive-5.2.5.jar.sha1

This file was deleted.

1 change: 1 addition & 0 deletions client/rest/licenses/httpcore5-reactive-5.3.1.jar.sha1
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
c4c0c3c7bbcb0db54aa7ddd39e34a835428c99c0
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
import org.apache.hc.core5.http.Header;
import org.apache.hc.core5.http.HttpHost;
import org.apache.hc.core5.http.message.BasicHeader;
import org.apache.hc.core5.reactor.IOReactorConfig;
import org.apache.hc.core5.util.Timeout;

import java.io.IOException;
Expand Down Expand Up @@ -143,6 +144,12 @@ public void testBuild() throws IOException {
builder.setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
@Override
public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
IOReactorConfig.Builder iOReactorConfig = IOReactorConfig.custom();
iOReactorConfig.setTcpKeepCount(randomIntBetween(5, 10));
iOReactorConfig.setTcpKeepInterval(randomIntBetween(5, 10));
iOReactorConfig.setTcpKeepIdle(randomIntBetween(100, 200));
iOReactorConfig.setIoThreadCount(2);
httpClientBuilder.setIOReactorConfig(iOReactorConfig.build());
return httpClientBuilder;
}
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
Expand Down Expand Up @@ -377,8 +378,20 @@ public void testRequestResetAndAbort() throws Exception {
* Exercises the test http server ability to send back whatever headers it received.
*/
public void testHeaders() throws Exception {
// https://github.com/apache/httpcomponents-client/pull/542
Set<String> upgradableMethods = new HashSet<>(Arrays.asList("HEAD", "OPTIONS", "GET"));
for (String method : getHttpMethods()) {
final Set<String> standardHeaders = new HashSet<>(Arrays.asList("Connection", "Host", "User-agent", "Date"));
final List<String> standardHeaders = new ArrayList<>();
standardHeaders.add("Connection");
if (upgradableMethods.contains(method)) {
standardHeaders.add("Connection");
}
standardHeaders.add("Host");
standardHeaders.add("User-agent");
if (upgradableMethods.contains(method)) {
standardHeaders.add("Upgrade");
}
standardHeaders.add("Date");
if (method.equals("HEAD") == false) {
standardHeaders.add("Content-length");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -482,7 +482,7 @@ public void testHeaders() throws Exception {
esResponse = e.getResponse();
}
assertThat(esResponse.getStatusLine().getStatusCode(), equalTo(statusCode));
assertHeaders(defaultHeaders, requestHeaders, esResponse.getHeaders(), Collections.<String>emptySet());
assertHeaders(defaultHeaders, requestHeaders, esResponse.getHeaders(), Collections.<String>emptyList());
assertFalse(esResponse.hasWarnings());
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -376,6 +376,24 @@ public HttpAsyncClientBuilder customizeHttpClient(
});
//end::rest-client-config-threads
}
{
//tag::rest-client-config-tcpKeepIdle/tcpKeepInterval/tcpKeepCount
RestClientBuilder builder = RestClient.builder(
new HttpHost("localhost", 9200))
.setHttpClientConfigCallback(new HttpClientConfigCallback() {
@Override
public HttpAsyncClientBuilder customizeHttpClient(
HttpAsyncClientBuilder httpClientBuilder) {
return httpClientBuilder.setIOReactorConfig(
IOReactorConfig.custom()
.setTcpKeepIdle(200)
.setTcpKeepInterval(10)
.setTcpKeepCount(10)
.build());
}
});
//end::rest-client-config-tcpKeepIdle/tcpKeepInterval/tcpKeepCount
}
{
//tag::rest-client-config-basic-auth
final BasicCredentialsProvider credentialsProvider = new BasicCredentialsProvider();
Expand Down
1 change: 0 additions & 1 deletion client/sniffer/licenses/httpclient5-5.3.1.jar.sha1

This file was deleted.

1 change: 1 addition & 0 deletions client/sniffer/licenses/httpclient5-5.4.1.jar.sha1
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ce913081e592ee8eeee35c4e577d7dce13cba7a4
1 change: 0 additions & 1 deletion client/sniffer/licenses/httpcore5-5.2.5.jar.sha1

This file was deleted.

1 change: 1 addition & 0 deletions client/sniffer/licenses/httpcore5-5.3.1.jar.sha1
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
eaf64237945d7d0f301d48420e8bdb7f565a7b0e
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ protected static void assertHeaders(
final Header[] defaultHeaders,
final Header[] requestHeaders,
final Header[] actualHeaders,
final Set<String> ignoreHeaders
final List<String> ignoreHeaders
) {
final Map<String, List<String>> expectedHeaders = new HashMap<>();
final Set<String> requestHeaderKeys = new HashSet<>();
Expand All @@ -96,7 +96,7 @@ protected static void assertHeaders(
addValueToListEntry(expectedHeaders, name, defaultHeader.getValue());
}
}
Set<String> actualIgnoredHeaders = new HashSet<>();
List<String> actualIgnoredHeaders = new ArrayList<>();
for (Header responseHeader : actualHeaders) {
final String name = responseHeader.getName();
if (ignoreHeaders.contains(name)) {
Expand Down
4 changes: 2 additions & 2 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ reactor_netty = "1.1.23"
reactor = "3.5.20"

# client dependencies
httpclient5 = "5.3.1"
httpcore5 = "5.2.5"
httpclient5 = "5.4.1"
httpcore5 = "5.3.1"
httpclient = "4.5.14"
httpcore = "4.4.16"
httpasyncclient = "4.1.5"
Expand Down

0 comments on commit 27a474b

Please sign in to comment.