You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by ma...@apache.org on 2021/12/30 05:45:50 UTC
[pinot] branch master updated: async-http-client upgraded (#7968)
This is an automated email from the ASF dual-hosted git repository.
mayanks pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to refs/heads/master by this push:
new 88f1dda async-http-client upgraded (#7968)
88f1dda is described below
commit 88f1ddae34fc214d67188e3774e3faa36c62b69d
Author: Shounak kulkarni <sh...@gmail.com>
AuthorDate: Thu Dec 30 11:15:23 2021 +0530
async-http-client upgraded (#7968)
Changed updated org to AsyncHttpClient
Pumped version to 2.12.3
Refactored pinot-java-client and pinot-jdbc-client as per new version
---
pinot-clients/pinot-java-client/pom.xml | 6 ++-
.../client/JsonAsyncHttpPinotClientTransport.java | 48 ++++++++++++++++------
pinot-clients/pinot-jdbc-client/pom.xml | 6 ++-
.../controller/PinotControllerTransport.java | 21 ++++++----
.../response/ControllerResponseFuture.java | 5 ++-
.../response/ControllerTenantBrokerResponse.java | 2 +-
.../client/controller/response/SchemaResponse.java | 2 +-
.../client/controller/response/TableResponse.java | 2 +-
pom.xml | 4 +-
9 files changed, 68 insertions(+), 28 deletions(-)
diff --git a/pinot-clients/pinot-java-client/pom.xml b/pinot-clients/pinot-java-client/pom.xml
index 5671e36..26e0c6f 100644
--- a/pinot-clients/pinot-java-client/pom.xml
+++ b/pinot-clients/pinot-java-client/pom.xml
@@ -61,13 +61,17 @@
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
- <groupId>com.ning</groupId>
+ <groupId>org.asynchttpclient</groupId>
<artifactId>async-http-client</artifactId>
<exclusions>
<exclusion>
<groupId>io.netty</groupId>
<artifactId>netty</artifactId>
</exclusion>
+ <exclusion>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-transport-native-unix-common</artifactId>
+ </exclusion>
</exclusions>
</dependency>
<dependency>
diff --git a/pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/JsonAsyncHttpPinotClientTransport.java b/pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/JsonAsyncHttpPinotClientTransport.java
index 98687e9..603d6aa 100644
--- a/pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/JsonAsyncHttpPinotClientTransport.java
+++ b/pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/JsonAsyncHttpPinotClientTransport.java
@@ -22,9 +22,11 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectReader;
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.ning.http.client.AsyncHttpClient;
-import com.ning.http.client.AsyncHttpClientConfig;
-import com.ning.http.client.Response;
+import io.netty.handler.ssl.ClientAuth;
+import io.netty.handler.ssl.JdkSslContext;
+import io.netty.handler.ssl.SslContext;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ExecutionException;
@@ -33,6 +35,11 @@ import java.util.concurrent.TimeUnit;
import javax.annotation.Nullable;
import javax.net.ssl.SSLContext;
import org.apache.pinot.spi.utils.CommonConstants;
+import org.asynchttpclient.AsyncHttpClient;
+import org.asynchttpclient.BoundRequestBuilder;
+import org.asynchttpclient.DefaultAsyncHttpClientConfig.Builder;
+import org.asynchttpclient.Dsl;
+import org.asynchttpclient.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -52,25 +59,38 @@ public class JsonAsyncHttpPinotClientTransport implements PinotClientTransport {
public JsonAsyncHttpPinotClientTransport() {
_headers = new HashMap<>();
_scheme = CommonConstants.HTTP_PROTOCOL;
- _httpClient = new AsyncHttpClient();
+ _httpClient = Dsl.asyncHttpClient();
}
public JsonAsyncHttpPinotClientTransport(Map<String, String> headers, String scheme,
- @Nullable SSLContext sslContext) {
+ @Nullable SSLContext sslContext) {
_headers = headers;
_scheme = scheme;
- AsyncHttpClientConfig.Builder builder = new AsyncHttpClientConfig.Builder();
+ Builder builder = Dsl.config();
if (sslContext != null) {
- builder.setSSLContext(sslContext);
+ builder.setSslContext(new JdkSslContext(sslContext, true, ClientAuth.OPTIONAL));
}
- _httpClient = new AsyncHttpClient(builder.build());
+ _httpClient = Dsl.asyncHttpClient(builder.build());
+ }
+
+ public JsonAsyncHttpPinotClientTransport(Map<String, String> headers, String scheme,
+ @Nullable SslContext sslContext) {
+ _headers = headers;
+ _scheme = scheme;
+
+ Builder builder = Dsl.config();
+ if (sslContext != null) {
+ builder.setSslContext(sslContext);
+ }
+
+ _httpClient = Dsl.asyncHttpClient(builder.build());
}
@Override
public BrokerResponse executeQuery(String brokerAddress, String query)
- throws PinotClientException {
+ throws PinotClientException {
try {
return executeQueryAsync(brokerAddress, query).get();
} catch (Exception e) {
@@ -97,7 +117,7 @@ public class JsonAsyncHttpPinotClientTransport implements PinotClientTransport {
url = _scheme + "://" + brokerAddress + "/query";
}
- AsyncHttpClient.BoundRequestBuilder requestBuilder = _httpClient.preparePost(url);
+ BoundRequestBuilder requestBuilder = _httpClient.preparePost(url);
if (_headers != null) {
_headers.forEach((k, v) -> requestBuilder.addHeader(k, v));
@@ -135,7 +155,11 @@ public class JsonAsyncHttpPinotClientTransport implements PinotClientTransport {
if (_httpClient.isClosed()) {
throw new PinotClientException("Connection is already closed!");
}
- _httpClient.close();
+ try {
+ _httpClient.close();
+ } catch (IOException exception) {
+ throw new PinotClientException("Error while closing connection!");
+ }
}
private static class BrokerResponseFuture implements Future<BrokerResponse> {
@@ -185,7 +209,7 @@ public class JsonAsyncHttpPinotClientTransport implements PinotClientTransport {
"Pinot returned HTTP status " + httpResponse.getStatusCode() + ", expected 200");
}
- String responseBody = httpResponse.getResponseBody("UTF-8");
+ String responseBody = httpResponse.getResponseBody(StandardCharsets.UTF_8);
return BrokerResponse.fromJson(OBJECT_READER.readTree(responseBody));
} catch (Exception e) {
throw new ExecutionException(e);
diff --git a/pinot-clients/pinot-jdbc-client/pom.xml b/pinot-clients/pinot-jdbc-client/pom.xml
index 2bc332a..8a7cbec 100644
--- a/pinot-clients/pinot-jdbc-client/pom.xml
+++ b/pinot-clients/pinot-jdbc-client/pom.xml
@@ -75,13 +75,17 @@
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
- <groupId>com.ning</groupId>
+ <groupId>org.asynchttpclient</groupId>
<artifactId>async-http-client</artifactId>
<exclusions>
<exclusion>
<groupId>io.netty</groupId>
<artifactId>netty</artifactId>
</exclusion>
+ <exclusion>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-transport-native-unix-common</artifactId>
+ </exclusion>
</exclusions>
</dependency>
<dependency>
diff --git a/pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/controller/PinotControllerTransport.java b/pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/controller/PinotControllerTransport.java
index 07dd8c1..ac6860c 100644
--- a/pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/controller/PinotControllerTransport.java
+++ b/pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/controller/PinotControllerTransport.java
@@ -18,8 +18,7 @@
*/
package org.apache.pinot.client.controller;
-import com.ning.http.client.AsyncHttpClient;
-import com.ning.http.client.Response;
+import java.io.IOException;
import java.util.Map;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
@@ -27,6 +26,10 @@ import org.apache.pinot.client.PinotClientException;
import org.apache.pinot.client.controller.response.ControllerTenantBrokerResponse;
import org.apache.pinot.client.controller.response.SchemaResponse;
import org.apache.pinot.client.controller.response.TableResponse;
+import org.asynchttpclient.AsyncHttpClient;
+import org.asynchttpclient.BoundRequestBuilder;
+import org.asynchttpclient.Dsl;
+import org.asynchttpclient.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -35,7 +38,7 @@ public class PinotControllerTransport {
private static final Logger LOGGER = LoggerFactory.getLogger(PinotControllerTransport.class);
- AsyncHttpClient _httpClient = new AsyncHttpClient();
+ AsyncHttpClient _httpClient = Dsl.asyncHttpClient();
Map<String, String> _headers;
public PinotControllerTransport() {
@@ -48,7 +51,7 @@ public class PinotControllerTransport {
public TableResponse getAllTables(String controllerAddress) {
try {
String url = "http://" + controllerAddress + "/tables";
- AsyncHttpClient.BoundRequestBuilder requestBuilder = _httpClient.prepareGet(url);
+ BoundRequestBuilder requestBuilder = _httpClient.prepareGet(url);
if (_headers != null) {
_headers.forEach((k, v) -> requestBuilder.addHeader(k, v));
}
@@ -66,7 +69,7 @@ public class PinotControllerTransport {
public SchemaResponse getTableSchema(String table, String controllerAddress) {
try {
String url = "http://" + controllerAddress + "/tables/" + table + "/schema";
- AsyncHttpClient.BoundRequestBuilder requestBuilder = _httpClient.prepareGet(url);
+ BoundRequestBuilder requestBuilder = _httpClient.prepareGet(url);
if (_headers != null) {
_headers.forEach((k, v) -> requestBuilder.addHeader(k, v));
}
@@ -84,7 +87,7 @@ public class PinotControllerTransport {
public ControllerTenantBrokerResponse getBrokersFromController(String controllerAddress, String tenant) {
try {
String url = "http://" + controllerAddress + "/v2/brokers/tenants/" + tenant;
- AsyncHttpClient.BoundRequestBuilder requestBuilder = _httpClient.prepareGet(url);
+ BoundRequestBuilder requestBuilder = _httpClient.prepareGet(url);
if (_headers != null) {
_headers.forEach((k, v) -> requestBuilder.addHeader(k, v));
}
@@ -105,6 +108,10 @@ public class PinotControllerTransport {
if (_httpClient.isClosed()) {
throw new PinotClientException("Connection is already closed!");
}
- _httpClient.close();
+ try {
+ _httpClient.close();
+ } catch (IOException exception) {
+ throw new PinotClientException("Error while closing connection!");
+ }
}
}
diff --git a/pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/controller/response/ControllerResponseFuture.java b/pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/controller/response/ControllerResponseFuture.java
index 485a4a8..1bc0470 100644
--- a/pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/controller/response/ControllerResponseFuture.java
+++ b/pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/controller/response/ControllerResponseFuture.java
@@ -18,11 +18,12 @@
*/
package org.apache.pinot.client.controller.response;
-import com.ning.http.client.Response;
+import java.nio.charset.StandardCharsets;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import org.apache.pinot.client.PinotClientException;
+import org.asynchttpclient.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -74,7 +75,7 @@ abstract class ControllerResponseFuture<T> implements Future<T> {
throw new PinotClientException("Pinot returned HTTP status " + httpResponse.getStatusCode() + ", expected 200");
}
- String responseBody = httpResponse.getResponseBody("UTF-8");
+ String responseBody = httpResponse.getResponseBody(StandardCharsets.UTF_8);
return responseBody;
} catch (Exception e) {
diff --git a/pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/controller/response/ControllerTenantBrokerResponse.java b/pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/controller/response/ControllerTenantBrokerResponse.java
index 5872219..4bc3d65 100644
--- a/pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/controller/response/ControllerTenantBrokerResponse.java
+++ b/pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/controller/response/ControllerTenantBrokerResponse.java
@@ -21,13 +21,13 @@ package org.apache.pinot.client.controller.response;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectReader;
-import com.ning.http.client.Response;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
+import org.asynchttpclient.Response;
public class ControllerTenantBrokerResponse {
diff --git a/pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/controller/response/SchemaResponse.java b/pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/controller/response/SchemaResponse.java
index 719bd08..76e7376 100644
--- a/pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/controller/response/SchemaResponse.java
+++ b/pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/controller/response/SchemaResponse.java
@@ -21,11 +21,11 @@ package org.apache.pinot.client.controller.response;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectReader;
-import com.ning.http.client.Response;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
+import org.asynchttpclient.Response;
public class SchemaResponse {
diff --git a/pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/controller/response/TableResponse.java b/pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/controller/response/TableResponse.java
index 29d57ab..16dc239 100644
--- a/pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/controller/response/TableResponse.java
+++ b/pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/controller/response/TableResponse.java
@@ -21,13 +21,13 @@ package org.apache.pinot.client.controller.response;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectReader;
-import com.ning.http.client.Response;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
+import org.asynchttpclient.Response;
public class TableResponse {
diff --git a/pom.xml b/pom.xml
index 8adb23e..973f4c2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -122,7 +122,7 @@
<zkclient.version>0.7</zkclient.version>
<jackson.version>2.10.0</jackson.version>
<zookeeper.version>3.5.8</zookeeper.version>
- <async-http-client.version>1.9.21</async-http-client.version>
+ <async-http-client.version>2.12.3</async-http-client.version>
<jersey.version>2.28</jersey.version>
<grizzly.version>2.4.4</grizzly.version>
<swagger.version>1.5.16</swagger.version>
@@ -720,7 +720,7 @@
<version>3.3.4</version>
</dependency>
<dependency>
- <groupId>com.ning</groupId>
+ <groupId>org.asynchttpclient</groupId>
<artifactId>async-http-client</artifactId>
<version>${async-http-client.version}</version>
</dependency>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org