This is an automated email from the ASF dual-hosted git repository.

apucher pushed a commit to branch tls-integration-test
in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git

commit 702f325eb225e3809de832e159391606a67aa74a
Author: Alexander Pucher <a...@alexpucher.com>
AuthorDate: Wed Jun 2 11:26:40 2021 -0700

    support TLS in pinot-transport
---
 .../org/apache/pinot/client/ConnectionFactory.java | 28 +++++++---------
 .../client/JsonAsyncHttpPinotClientTransport.java  | 29 +++++++++++++----
 .../JsonAsyncHttpPinotClientTransportFactory.java  | 37 +++++++++++++++++++---
 .../pinot/client/PinotClientTransportFactory.java  | 11 -------
 .../apache/pinot/client/ConnectionFactoryTest.java |  7 +++-
 .../apache/pinot/client/PreparedStatementTest.java | 21 +++---------
 .../apache/pinot/client/ResultSetGroupTest.java    | 17 ++--------
 .../java/org/apache/pinot/client/PinotDriver.java  | 29 ++++++++++++++---
 .../apache/pinot/client/PinotConnectionTest.java   | 24 +++-----------
 .../pinot/client/PinotPreparedStatementTest.java   | 14 --------
 .../apache/pinot/client/PinotResultSetTest.java    | 17 ++--------
 .../apache/pinot/client/PinotStatementTest.java    | 21 +++---------
 12 files changed, 115 insertions(+), 140 deletions(-)

diff --git 
a/pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/ConnectionFactory.java
 
b/pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/ConnectionFactory.java
index a233fea..d34d7b0 100644
--- 
a/pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/ConnectionFactory.java
+++ 
b/pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/ConnectionFactory.java
@@ -20,7 +20,6 @@ package org.apache.pinot.client;
 
 import java.util.Arrays;
 import java.util.List;
-import java.util.Map;
 import java.util.Properties;
 
 
@@ -28,8 +27,6 @@ import java.util.Properties;
  * Creates connections to Pinot, given various initialization methods.
  */
 public class ConnectionFactory {
-  static PinotClientTransportFactory _transportFactory = new 
JsonAsyncHttpPinotClientTransportFactory();
-
   private ConnectionFactory() {
   }
 
@@ -40,20 +37,20 @@ public class ConnectionFactory {
    * @return A connection that connects to the brokers in the given Helix 
cluster
    */
   public static Connection fromZookeeper(String zkUrl) {
-    return fromZookeeper(zkUrl, null);
+    return fromZookeeper(zkUrl, new 
JsonAsyncHttpPinotClientTransportFactory().buildTransport());
   }
 
   /**
    * Creates a connection to a Pinot cluster, given its Zookeeper URL
    *
    * @param zkUrl The URL to the Zookeeper cluster, must include the cluster 
name e.g host:port/chroot/pinot-cluster
-   * @param headers Map of key and values of header which need to be used 
during http call
+   * @param transport pinot transport
    * @return A connection that connects to the brokers in the given Helix 
cluster
    */
-  public static Connection fromZookeeper(String zkUrl, Map<String, String> 
headers) {
+  public static Connection fromZookeeper(String zkUrl, PinotClientTransport 
transport) {
     try {
       DynamicBrokerSelector dynamicBrokerSelector = new 
DynamicBrokerSelector(zkUrl);
-      return new Connection(dynamicBrokerSelector, 
_transportFactory.buildTransport(headers));
+      return new Connection(dynamicBrokerSelector, transport);
     } catch (Exception e) {
       throw new PinotClientException(e);
     }
@@ -66,19 +63,18 @@ public class ConnectionFactory {
    * @return A connection that connects to the brokers specified in the 
properties
    */
   public static Connection fromProperties(Properties properties) {
-    return fromProperties(properties, null);
+    return fromProperties(properties, new 
JsonAsyncHttpPinotClientTransportFactory().buildTransport());
   }
 
   /**
    * Creates a connection from properties containing the connection parameters.
    *
    * @param properties The properties to use for the connection
-   * @param headers Map of key and values of header which need to be used 
during http call
+   * @param transport pinot transport
    * @return A connection that connects to the brokers specified in the 
properties
    */
-  public static Connection fromProperties(Properties properties, Map<String, 
String> headers) {
-    return new 
Connection(Arrays.asList(properties.getProperty("brokerList").split(",")),
-        _transportFactory.buildTransport(headers));
+  public static Connection fromProperties(Properties properties, 
PinotClientTransport transport) {
+    return new 
Connection(Arrays.asList(properties.getProperty("brokerList").split(",")), 
transport);
   }
 
   /**
@@ -88,17 +84,17 @@ public class ConnectionFactory {
    * @return A connection to the set of brokers specified
    */
   public static Connection fromHostList(String... brokers) {
-    return fromHostList(Arrays.asList(brokers), null);
+    return fromHostList(Arrays.asList(brokers), new 
JsonAsyncHttpPinotClientTransportFactory().buildTransport());
   }
 
   /**
    * Creates a connection which sends queries randomly between the specified 
brokers.
    *
    * @param brokers The list of brokers to send queries to
-   * @param headers Map of key and values of header which need to be used 
during http call
+   * @param transport pinot transport
    * @return A connection to the set of brokers specified
    */
-  public static Connection fromHostList(List<String> brokers, Map<String, 
String> headers) {
-    return new Connection(brokers, _transportFactory.buildTransport(headers));
+  public static Connection fromHostList(List<String> brokers, 
PinotClientTransport transport) {
+    return new Connection(brokers, transport);
   }
 }
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 a5937c2..9c907bc 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
@@ -23,11 +23,15 @@ 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 java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
+import javax.net.ssl.SSLContext;
+import org.apache.pinot.spi.utils.CommonConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -35,18 +39,31 @@ import org.slf4j.LoggerFactory;
 /**
  * JSON encoded Pinot client transport over AsyncHttpClient.
  */
-class JsonAsyncHttpPinotClientTransport implements PinotClientTransport {
+public class JsonAsyncHttpPinotClientTransport implements PinotClientTransport 
{
   private static final Logger LOGGER = 
LoggerFactory.getLogger(JsonAsyncHttpPinotClientTransport.class);
   private static final ObjectReader OBJECT_READER = new 
ObjectMapper().reader();
 
-  AsyncHttpClient _httpClient = new AsyncHttpClient();
-  Map<String, String> _headers;
+  AsyncHttpClient _httpClient;
+
+  Map<String, String> _headers = new HashMap<>();
+  String _scheme = CommonConstants.HTTP_PROTOCOL;
+  SSLContext _sslContext = null;
 
   public JsonAsyncHttpPinotClientTransport() {
+    _httpClient = new AsyncHttpClient();
   }
 
-  public JsonAsyncHttpPinotClientTransport(Map<String, String> headers) {
+  public JsonAsyncHttpPinotClientTransport(SSLContext sslContext, Map<String, 
String> headers, String scheme) {
     _headers = headers;
+    _scheme = scheme;
+    _sslContext = sslContext;
+
+    AsyncHttpClientConfig.Builder builder = new 
AsyncHttpClientConfig.Builder();
+    if (_sslContext != null) {
+      builder.setSSLContext(_sslContext);
+    }
+
+    _httpClient = new AsyncHttpClient(builder.build());
   }
 
   @Override
@@ -72,10 +89,10 @@ class JsonAsyncHttpPinotClientTransport implements 
PinotClientTransport {
 
       final String url;
       if (queryFormat.equalsIgnoreCase("sql")) {
-        url = "http://"; + brokerAddress + "/query/sql";
+        url = _scheme + "://" + brokerAddress + "/query/sql";
         json.put("queryOptions", "groupByMode=sql;responseFormat=sql");
       } else {
-        url = "http://"; + brokerAddress + "/query";
+        url = _scheme + "://" + brokerAddress + "/query";
       }
 
       AsyncHttpClient.BoundRequestBuilder requestBuilder = 
_httpClient.preparePost(url);
diff --git 
a/pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/JsonAsyncHttpPinotClientTransportFactory.java
 
b/pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/JsonAsyncHttpPinotClientTransportFactory.java
index 7dda9d8..8c867f8 100644
--- 
a/pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/JsonAsyncHttpPinotClientTransportFactory.java
+++ 
b/pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/JsonAsyncHttpPinotClientTransportFactory.java
@@ -18,19 +18,46 @@
  */
 package org.apache.pinot.client;
 
+import java.util.HashMap;
 import java.util.Map;
+import javax.net.ssl.SSLContext;
+import org.apache.pinot.spi.utils.CommonConstants;
+
 
 /**
  * Pinot client transport factory for JSON encoded BrokerResults through HTTP.
  */
-class JsonAsyncHttpPinotClientTransportFactory implements 
PinotClientTransportFactory {
+public class JsonAsyncHttpPinotClientTransportFactory implements 
PinotClientTransportFactory {
+  Map<String, String> _headers = new HashMap<>();
+  String _scheme = CommonConstants.HTTP_PROTOCOL;
+  SSLContext _sslContext = null;
+
   @Override
   public PinotClientTransport buildTransport() {
-    return new JsonAsyncHttpPinotClientTransport();
+    return new JsonAsyncHttpPinotClientTransport(_sslContext, _headers, 
_scheme);
   }
 
-  @Override
-  public PinotClientTransport buildTransport(Map<String, String> headers) {
-    return new JsonAsyncHttpPinotClientTransport(headers);
+  public Map<String, String> getHeaders() {
+    return _headers;
+  }
+
+  public void setHeaders(Map<String, String> headers) {
+    _headers = headers;
+  }
+
+  public String getScheme() {
+    return _scheme;
+  }
+
+  public void setScheme(String scheme) {
+    _scheme = scheme;
+  }
+
+  public SSLContext getSslContext() {
+    return _sslContext;
+  }
+
+  public void setSslContext(SSLContext sslContext) {
+    _sslContext = sslContext;
   }
 }
diff --git 
a/pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/PinotClientTransportFactory.java
 
b/pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/PinotClientTransportFactory.java
index 4d4dd5f..8a8bdfa 100644
--- 
a/pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/PinotClientTransportFactory.java
+++ 
b/pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/PinotClientTransportFactory.java
@@ -18,8 +18,6 @@
  */
 package org.apache.pinot.client;
 
-import java.util.Map;
-
 /**
  * Factory for client transports.
  */
@@ -27,14 +25,5 @@ interface PinotClientTransportFactory {
   /**
    * This method is deprecating. Method with headers can be used in place of 
this by passing null headers.
    */
-  @Deprecated
   PinotClientTransport buildTransport();
-
-  /**
-   * Fetch pinot client transport
-   * @param headers custom headers to be passed in the pinot client call.
-   */
-  default PinotClientTransport buildTransport(Map<String, String> headers) {
-    return buildTransport();
-  }
 }
diff --git 
a/pinot-clients/pinot-java-client/src/test/java/org/apache/pinot/client/ConnectionFactoryTest.java
 
b/pinot-clients/pinot-java-client/src/test/java/org/apache/pinot/client/ConnectionFactoryTest.java
index 41f99bc..3deaec8 100644
--- 
a/pinot-clients/pinot-java-client/src/test/java/org/apache/pinot/client/ConnectionFactoryTest.java
+++ 
b/pinot-clients/pinot-java-client/src/test/java/org/apache/pinot/client/ConnectionFactoryTest.java
@@ -66,9 +66,14 @@ public class ConnectionFactoryTest {
     List<String> brokers = new ArrayList<>();
     brokers.add("127.0.0.1:1234");
     brokers.add("localhost:2345");
+
     Map<String, String> headers = new HashMap<>();
     headers.put("Caller", "curl");
-    Connection connection = ConnectionFactory.fromHostList(brokers, headers);
+
+    JsonAsyncHttpPinotClientTransportFactory factory = new 
JsonAsyncHttpPinotClientTransportFactory();
+    factory.setHeaders(headers);
+
+    Connection connection = ConnectionFactory.fromHostList(brokers, 
factory.buildTransport());
 
     // Check that the broker list has the right length and has the same servers
     Assert.assertEquals(connection.getBrokerList(), brokers);
diff --git 
a/pinot-clients/pinot-java-client/src/test/java/org/apache/pinot/client/PreparedStatementTest.java
 
b/pinot-clients/pinot-java-client/src/test/java/org/apache/pinot/client/PreparedStatementTest.java
index 593f0ed..dbb7619 100644
--- 
a/pinot-clients/pinot-java-client/src/test/java/org/apache/pinot/client/PreparedStatementTest.java
+++ 
b/pinot-clients/pinot-java-client/src/test/java/org/apache/pinot/client/PreparedStatementTest.java
@@ -18,10 +18,9 @@
  */
 package org.apache.pinot.client;
 
+import java.util.Collections;
 import java.util.concurrent.Future;
 import org.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
 
@@ -31,13 +30,14 @@ import org.testng.annotations.Test;
  */
 public class PreparedStatementTest {
   private final DummyPinotClientTransport _dummyPinotClientTransport = new 
DummyPinotClientTransport();
-  private PinotClientTransportFactory _previousTransportFactory = null;
 
   @Test
   public void testPreparedStatementEscaping() {
     // Create a prepared statement that has to quote a string appropriately
-    Connection connection = ConnectionFactory.fromHostList("dummy");
-    PreparedStatement preparedStatement = connection.prepareStatement(new 
Request("sql", "SELECT foo FROM bar WHERE baz = ?"));
+    Connection connection =
+        ConnectionFactory.fromHostList(Collections.singletonList("dummy"), 
_dummyPinotClientTransport);
+    PreparedStatement preparedStatement =
+        connection.prepareStatement(new Request("sql", "SELECT foo FROM bar 
WHERE baz = ?"));
     preparedStatement.setString(0, "'hello'");
     preparedStatement.execute();
 
@@ -45,17 +45,6 @@ public class PreparedStatementTest {
     Assert.assertEquals("SELECT foo FROM bar WHERE baz = '''hello'''", 
_dummyPinotClientTransport.getLastQuery());
   }
 
-  @BeforeClass
-  public void overridePinotClientTransport() {
-    _previousTransportFactory = ConnectionFactory._transportFactory;
-    ConnectionFactory._transportFactory = new 
DummyPinotClientTransportFactory();
-  }
-
-  @AfterClass
-  public void resetPinotClientTransport() {
-    ConnectionFactory._transportFactory = _previousTransportFactory;
-  }
-
   static class DummyPinotClientTransport implements PinotClientTransport {
     private String _lastQuery;
 
diff --git 
a/pinot-clients/pinot-java-client/src/test/java/org/apache/pinot/client/ResultSetGroupTest.java
 
b/pinot-clients/pinot-java-client/src/test/java/org/apache/pinot/client/ResultSetGroupTest.java
index 900ec1e..77b337c 100644
--- 
a/pinot-clients/pinot-java-client/src/test/java/org/apache/pinot/client/ResultSetGroupTest.java
+++ 
b/pinot-clients/pinot-java-client/src/test/java/org/apache/pinot/client/ResultSetGroupTest.java
@@ -20,10 +20,9 @@ package org.apache.pinot.client;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import java.io.InputStream;
+import java.util.Collections;
 import java.util.concurrent.Future;
 import org.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
 
@@ -33,7 +32,6 @@ import org.testng.annotations.Test;
  */
 public class ResultSetGroupTest {
   private final DummyJsonTransport _dummyJsonTransport = new 
DummyJsonTransport();
-  private PinotClientTransportFactory _previousTransportFactory = null;
 
   @Test
   public void testDeserializeSelectionResultSet() {
@@ -120,21 +118,10 @@ public class ResultSetGroupTest {
 
   private ResultSetGroup getResultSet(String resourceName) {
     _dummyJsonTransport._resource = resourceName;
-    Connection connection = ConnectionFactory.fromHostList("dummy");
+    Connection connection = 
ConnectionFactory.fromHostList(Collections.singletonList("dummy"), 
_dummyJsonTransport);
     return connection.execute("dummy");
   }
 
-  @BeforeClass
-  public void overridePinotClientTransport() {
-    _previousTransportFactory = ConnectionFactory._transportFactory;
-    ConnectionFactory._transportFactory = new DummyJsonTransportFactory();
-  }
-
-  @AfterClass
-  public void resetPinotClientTransport() {
-    ConnectionFactory._transportFactory = _previousTransportFactory;
-  }
-
   static class DummyJsonTransport implements PinotClientTransport {
     public String _resource;
 
diff --git 
a/pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/PinotDriver.java
 
b/pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/PinotDriver.java
index a4c9bfa..ba2c459 100644
--- 
a/pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/PinotDriver.java
+++ 
b/pinot-clients/pinot-jdbc-client/src/main/java/org/apache/pinot/client/PinotDriver.java
@@ -28,26 +28,45 @@ import java.sql.SQLException;
 import java.sql.SQLFeatureNotSupportedException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.util.Properties;
 import java.util.logging.Logger;
+import java.util.stream.Collectors;
+import org.apache.commons.lang3.tuple.Pair;
 import org.apache.pinot.client.utils.DriverUtils;
 import org.slf4j.LoggerFactory;
 
 
 public class PinotDriver implements Driver {
   private static final org.slf4j.Logger LOGGER = 
LoggerFactory.getLogger(PinotDriver.class);
-  private final String SCHEME = "pinot";
-  public static final String TENANT = "tenant";
+  private static final String URI_SCHEME = "pinot";
+  public static final String INFO_TENANT = "tenant";
   public static final String DEFAULT_TENANT = "DefaultTenant";
+  public static final String INFO_SCHEME = "scheme";
+  public static final String INFO_HEADERS = "headers";
 
   @Override
   public Connection connect(String url, Properties info)
       throws SQLException {
     try {
       LOGGER.info("Initiating connection to database for url: " + url);
-      PinotClientTransport pinotClientTransport = new 
JsonAsyncHttpPinotClientTransportFactory().buildTransport();
+      JsonAsyncHttpPinotClientTransportFactory factory = new 
JsonAsyncHttpPinotClientTransportFactory();
+
+      if (info.contains(INFO_SCHEME)) {
+        factory.setScheme(info.getProperty(INFO_SCHEME));
+      }
+
+      Map<String, String> headers =
+          info.entrySet().stream().filter(entry -> 
entry.getKey().toString().startsWith(INFO_HEADERS + ".")).map(
+              entry -> 
Pair.of(entry.getKey().toString().substring(INFO_HEADERS.length() + 1), 
entry.getValue().toString()))
+              .collect(Collectors.toMap(Pair::getKey, Pair::getValue));
+      if (!headers.isEmpty()) {
+        factory.setHeaders(headers);
+      }
+
+      PinotClientTransport pinotClientTransport = factory.buildTransport();
       String controllerUrl = DriverUtils.getControllerFromURL(url);
-      String tenant = info.getProperty(TENANT, DEFAULT_TENANT);
+      String tenant = info.getProperty(INFO_TENANT, DEFAULT_TENANT);
       return new PinotConnection(controllerUrl, pinotClientTransport, tenant);
     } catch (Exception e) {
       throw new SQLException(String.format("Failed to connect to url : %s", 
url), e);
@@ -59,7 +78,7 @@ public class PinotDriver implements Driver {
       throws SQLException {
     String cleanURI = url.substring(5);
     URI uri = URI.create(cleanURI);
-    return uri.getScheme().contentEquals(SCHEME);
+    return uri.getScheme().contentEquals(URI_SCHEME);
   }
 
   @Override
diff --git 
a/pinot-clients/pinot-jdbc-client/src/test/java/org/apache/pinot/client/PinotConnectionTest.java
 
b/pinot-clients/pinot-jdbc-client/src/test/java/org/apache/pinot/client/PinotConnectionTest.java
index fbf81b4..e2136ae 100644
--- 
a/pinot-clients/pinot-jdbc-client/src/test/java/org/apache/pinot/client/PinotConnectionTest.java
+++ 
b/pinot-clients/pinot-jdbc-client/src/test/java/org/apache/pinot/client/PinotConnectionTest.java
@@ -20,33 +20,19 @@ package org.apache.pinot.client;
 
 import java.sql.Statement;
 import org.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
 
 public class PinotConnectionTest {
-  private DummyPinotClientTransport
-      _dummyPinotClientTransport = new DummyPinotClientTransport();
-
+  private DummyPinotClientTransport _dummyPinotClientTransport = new 
DummyPinotClientTransport();
   private DummyPinotControllerTransport _dummyPinotControllerTransport = new 
DummyPinotControllerTransport();
-  private PinotClientTransportFactory _previousTransportFactory = null;
 
   @Test
-  public void createStatementTest() throws Exception {
-    PinotConnection pinotConnection  = new PinotConnection("dummy", 
_dummyPinotClientTransport, "dummy" ,_dummyPinotControllerTransport);
+  public void createStatementTest()
+      throws Exception {
+    PinotConnection pinotConnection =
+        new PinotConnection("dummy", _dummyPinotClientTransport, "dummy", 
_dummyPinotControllerTransport);
     Statement statement = pinotConnection.createStatement();
     Assert.assertNotNull(statement);
   }
-
-  @BeforeClass
-  public void overridePinotClientTransport() {
-    _previousTransportFactory = ConnectionFactory._transportFactory;
-    ConnectionFactory._transportFactory = new 
DummyPinotClientTransportFactory(_dummyPinotClientTransport);
-  }
-
-  @AfterClass
-  public void resetPinotClientTransport() {
-    ConnectionFactory._transportFactory = _previousTransportFactory;
-  }
 }
diff --git 
a/pinot-clients/pinot-jdbc-client/src/test/java/org/apache/pinot/client/PinotPreparedStatementTest.java
 
b/pinot-clients/pinot-jdbc-client/src/test/java/org/apache/pinot/client/PinotPreparedStatementTest.java
index 1141881..b32e3fe 100644
--- 
a/pinot-clients/pinot-jdbc-client/src/test/java/org/apache/pinot/client/PinotPreparedStatementTest.java
+++ 
b/pinot-clients/pinot-jdbc-client/src/test/java/org/apache/pinot/client/PinotPreparedStatementTest.java
@@ -26,8 +26,6 @@ import java.sql.Timestamp;
 import org.apache.commons.codec.binary.Hex;
 import org.apache.pinot.client.utils.DateTimeUtils;
 import org.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
 
@@ -38,7 +36,6 @@ public class PinotPreparedStatementTest {
   public static final String SINGLE_STRING_QUERY = "SELECT * FROM dummy WHERE 
value = ?";
   private DummyPinotClientTransport _dummyPinotClientTransport = new 
DummyPinotClientTransport();
   private DummyPinotControllerTransport _dummyPinotControllerTransport = new 
DummyPinotControllerTransport();
-  private PinotClientTransportFactory _previousTransportFactory = null;
 
   @Test
   public void testSetAndClearValues()
@@ -108,15 +105,4 @@ public class PinotPreparedStatementTest {
     Assert.assertEquals(_dummyPinotClientTransport.getLastQuery(),
         String.format("SELECT * FROM dummy WHERE value = '%s'", 
Hex.encodeHexString(value.getBytes())));
   }
-
-  @BeforeClass
-  public void overridePinotClientTransport() {
-    _previousTransportFactory = ConnectionFactory._transportFactory;
-    ConnectionFactory._transportFactory = new 
DummyPinotClientTransportFactory(_dummyPinotClientTransport);
-  }
-
-  @AfterClass
-  public void resetPinotClientTransport() {
-    ConnectionFactory._transportFactory = _previousTransportFactory;
-  }
 }
diff --git 
a/pinot-clients/pinot-jdbc-client/src/test/java/org/apache/pinot/client/PinotResultSetTest.java
 
b/pinot-clients/pinot-jdbc-client/src/test/java/org/apache/pinot/client/PinotResultSetTest.java
index e1b470b..468675f 100644
--- 
a/pinot-clients/pinot-jdbc-client/src/test/java/org/apache/pinot/client/PinotResultSetTest.java
+++ 
b/pinot-clients/pinot-jdbc-client/src/test/java/org/apache/pinot/client/PinotResultSetTest.java
@@ -22,13 +22,12 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import java.io.InputStream;
 import java.sql.ResultSetMetaData;
 import java.util.Calendar;
+import java.util.Collections;
 import java.util.Date;
 import java.util.concurrent.Future;
 import org.apache.commons.io.IOUtils;
 import org.apache.pinot.client.utils.DateTimeUtils;
 import org.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
 
@@ -39,7 +38,6 @@ import org.testng.annotations.Test;
 public class PinotResultSetTest {
   public static final String TEST_RESULT_SET_RESOURCE = "result_table.json";
   private DummyJsonTransport _dummyJsonTransport = new DummyJsonTransport();
-  private PinotClientTransportFactory _previousTransportFactory = null;
 
   @Test
   public void testFetchValues()
@@ -164,21 +162,10 @@ public class PinotResultSetTest {
 
   private ResultSetGroup getResultSet(String resourceName) {
     _dummyJsonTransport._resource = resourceName;
-    Connection connection = ConnectionFactory.fromHostList("dummy");
+    Connection connection = 
ConnectionFactory.fromHostList(Collections.singletonList("dummy"), 
_dummyJsonTransport);
     return connection.execute("dummy");
   }
 
-  @BeforeClass
-  public void overridePinotClientTransport() {
-    _previousTransportFactory = ConnectionFactory._transportFactory;
-    ConnectionFactory._transportFactory = new DummyJsonTransportFactory();
-  }
-
-  @AfterClass
-  public void resetPinotClientTransport() {
-    ConnectionFactory._transportFactory = _previousTransportFactory;
-  }
-
   class DummyJsonTransport implements PinotClientTransport {
     public String _resource;
 
diff --git 
a/pinot-clients/pinot-jdbc-client/src/test/java/org/apache/pinot/client/PinotStatementTest.java
 
b/pinot-clients/pinot-jdbc-client/src/test/java/org/apache/pinot/client/PinotStatementTest.java
index c439784..a29a49d 100644
--- 
a/pinot-clients/pinot-jdbc-client/src/test/java/org/apache/pinot/client/PinotStatementTest.java
+++ 
b/pinot-clients/pinot-jdbc-client/src/test/java/org/apache/pinot/client/PinotStatementTest.java
@@ -21,8 +21,6 @@ package org.apache.pinot.client;
 import java.sql.ResultSet;
 import java.sql.Statement;
 import org.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
 
@@ -30,25 +28,14 @@ public class PinotStatementTest {
   private DummyPinotClientTransport _dummyPinotClientTransport = new 
DummyPinotClientTransport();
   private DummyPinotControllerTransport _dummyPinotControllerTransport = new 
DummyPinotControllerTransport();
 
-  private PinotClientTransportFactory _previousTransportFactory = null;
-
   @Test
-  public void testExecuteQuery() throws Exception {
-    PinotConnection connection = new PinotConnection("dummy", 
_dummyPinotClientTransport, "dummy" ,_dummyPinotControllerTransport);
+  public void testExecuteQuery()
+      throws Exception {
+    PinotConnection connection =
+        new PinotConnection("dummy", _dummyPinotClientTransport, "dummy", 
_dummyPinotControllerTransport);
     Statement statement = new PinotStatement(connection);
     ResultSet resultSet = statement.executeQuery("select * from dummy");
     Assert.assertNotNull(resultSet);
     Assert.assertEquals(statement.getConnection(), connection);
   }
-
-  @BeforeClass
-  public void overridePinotClientTransport() {
-    _previousTransportFactory = ConnectionFactory._transportFactory;
-    ConnectionFactory._transportFactory = new 
DummyPinotClientTransportFactory(_dummyPinotClientTransport);
-  }
-
-  @AfterClass
-  public void resetPinotClientTransport() {
-    ConnectionFactory._transportFactory = _previousTransportFactory;
-  }
 }

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to