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

xiangfu 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 8ca4026  Move compatibility verifier to a separate module (#8049)
8ca4026 is described below

commit 8ca40266414f19f73eb27d728019eab61935e7ff
Author: Xiaotian (Jackie) Jiang <17555551+jackie-ji...@users.noreply.github.com>
AuthorDate: Thu Jan 20 17:43:28 2022 -0800

    Move compatibility verifier to a separate module (#8049)
---
 compatibility-verifier/compCheck.sh                |  21 +---
 .../pinot/common/utils}/SqlResultComparator.java   |   2 +-
 pinot-compatibility-verifier/pom.xml               | 116 +++++++++++++++++++++
 .../main/java/org/apache/pinot/compat}/BaseOp.java |   2 +-
 .../apache/pinot/compat}/ClusterDescriptor.java    |   2 +-
 .../apache/pinot/compat}/CompatTestOperation.java  |   2 +-
 .../pinot/compat}/CompatibilityOpsRunner.java      |   2 +-
 .../java/org/apache/pinot/compat}/QueryOp.java     |   6 +-
 .../java/org/apache/pinot/compat}/SegmentOp.java   |  18 ++--
 .../java/org/apache/pinot/compat}/StreamOp.java    |   5 +-
 .../java/org/apache/pinot/compat}/TableOp.java     |   2 +-
 .../main/java/org/apache/pinot/compat}/Utils.java  |  19 +++-
 .../MergeRollupMinionClusterIntegrationTest.java   |   2 +-
 pom.xml                                            |   1 +
 14 files changed, 159 insertions(+), 41 deletions(-)

diff --git a/compatibility-verifier/compCheck.sh 
b/compatibility-verifier/compCheck.sh
index c89d19d..0803a06 100755
--- a/compatibility-verifier/compCheck.sh
+++ b/compatibility-verifier/compCheck.sh
@@ -225,24 +225,13 @@ function stopServices() {
 # Setup the path and classpath prefix for compatibility tester executable
 function setupCompatTester() {
   COMPAT_TESTER="$(dirname $0)/../${COMPAT_TESTER_PATH}"
-  local pinotIntegTestsRelDir="$(dirname $0)/../pinot-integration-tests/target"
-  local pinotIntegTestsAbsDir=$( (
-    cd ${pinotIntegTestsRelDir}
+  local pinotCompatibilityVerifierRelDir="$(dirname 
$0)/../pinot-compatibility-verifier/target"
+  local pinotCompatibilityVerifierAbsDir=$( (
+    cd ${pinotCompatibilityVerifierRelDir}
     pwd
   ))
-  JAR_LIST=$(ls ${pinotIntegTestsAbsDir}/pinot-integration-tests-*-tests.jar)
+  JAR_LIST="$(ls 
${pinotCompatibilityVerifierAbsDir}/pinot-compatibility-verifier-*.jar)"
   CLASSPATH_PREFIX="$(echo $JAR_LIST | tr ' ' :)"
-  # Adding pinot-integration-test-base JAR
-  # TODO remove this condition once released.
-  local pinotIntegTestBaseRelDir="$(dirname 
$0)/../pinot-integration-test-base/target"
-  if [[ -d "$pinotIntegTestBaseRelDir" ]]; then
-    local pinotIntegTestBaseAbsDir=$( (
-      cd ${pinotIntegTestBaseRelDir}
-      pwd
-    ))
-    JAR_LIST="$(ls 
${pinotIntegTestBaseAbsDir}/pinot-integration-test-base-*.jar)"
-    CLASSPATH_PREFIX="$CLASSPATH_PREFIX:$(echo $JAR_LIST | tr ' ' :)"
-  fi
   echo "CLASSPATH_PREFIX is set as: $CLASSPATH_PREFIX"
   export CLASSPATH_PREFIX
 }
@@ -320,7 +309,7 @@ if [ -z "$workingDir" -o -z "$testSuiteDir" ]; then
   exit 1
 fi
 
-COMPAT_TESTER_PATH="pinot-integration-tests/target/pinot-integration-tests-pkg/bin/pinot-compat-test-runner.sh"
+COMPAT_TESTER_PATH="pinot-compatibility-verifier/target/pinot-compatibility-verifier-pkg/bin/pinot-compat-test-runner.sh"
 
 BROKER_CONF=${testSuiteDir}/config/BrokerConfig.properties
 CONTROLLER_CONF=${testSuiteDir}/config/ControllerConfig.properties
diff --git 
a/pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/SqlResultComparator.java
 
b/pinot-common/src/main/java/org/apache/pinot/common/utils/SqlResultComparator.java
similarity index 99%
rename from 
pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/SqlResultComparator.java
rename to 
pinot-common/src/main/java/org/apache/pinot/common/utils/SqlResultComparator.java
index e7e87de..41d98ca 100644
--- 
a/pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/SqlResultComparator.java
+++ 
b/pinot-common/src/main/java/org/apache/pinot/common/utils/SqlResultComparator.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pinot.compat.tests;
+package org.apache.pinot.common.utils;
 
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.node.ArrayNode;
diff --git a/pinot-compatibility-verifier/pom.xml 
b/pinot-compatibility-verifier/pom.xml
new file mode 100644
index 0000000..6d38d9d
--- /dev/null
+++ b/pinot-compatibility-verifier/pom.xml
@@ -0,0 +1,116 @@
+<?xml version="1.0"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <artifactId>pinot</artifactId>
+    <groupId>org.apache.pinot</groupId>
+    <version>0.10.0-SNAPSHOT</version>
+    <relativePath>..</relativePath>
+  </parent>
+  <artifactId>pinot-compatibility-verifier</artifactId>
+  <name>Pinot Compatibility Verifier</name>
+  <url>https://pinot.apache.org/</url>
+  <packaging>jar</packaging>
+
+  <properties>
+    <pinot.root>${basedir}/..</pinot.root>
+    <kafka.lib.version>2.8.1</kafka.lib.version>
+  </properties>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-jar-plugin</artifactId>
+        <executions>
+          <execution>
+            <goals>
+              <goal>test-jar</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>appassembler-maven-plugin</artifactId>
+        <configuration>
+          <programs>
+            <program>
+              
<mainClass>org.apache.pinot.compat.CompatibilityOpsRunner</mainClass>
+              <name>pinot-compat-test-runner</name>
+              <jvmSettings>
+                <initialMemorySize>2G</initialMemorySize>
+                <maxMemorySize>2G</maxMemorySize>
+              </jvmSettings>
+            </program>
+          </programs>
+          <repositoryLayout>flat</repositoryLayout>
+          <repositoryName>lib</repositoryName>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-enforcer-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.pinot</groupId>
+      <artifactId>pinot-tools</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.pinot</groupId>
+      <artifactId>pinot-common</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.pinot</groupId>
+      <artifactId>pinot-controller</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+    </dependency>
+    <!-- Kafka  -->
+    <dependency>
+      <groupId>org.apache.kafka</groupId>
+      <artifactId>kafka-clients</artifactId>
+      <version>${kafka.lib.version}</version>
+      <exclusions>
+        <exclusion>
+          <groupId>org.slf4j</groupId>
+          <artifactId>slf4j-log4j12</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>net.sf.jopt-simple</groupId>
+          <artifactId>jopt-simple</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.scala-lang</groupId>
+          <artifactId>scala-library</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+  </dependencies>
+</project>
diff --git 
a/pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/BaseOp.java
 
b/pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/BaseOp.java
similarity index 98%
rename from 
pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/BaseOp.java
rename to 
pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/BaseOp.java
index 713528a..d46de96 100644
--- 
a/pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/BaseOp.java
+++ 
b/pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/BaseOp.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pinot.compat.tests;
+package org.apache.pinot.compat;
 
 import com.fasterxml.jackson.annotation.JsonSubTypes;
 import com.fasterxml.jackson.annotation.JsonTypeInfo;
diff --git 
a/pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/ClusterDescriptor.java
 
b/pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/ClusterDescriptor.java
similarity index 98%
rename from 
pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/ClusterDescriptor.java
rename to 
pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/ClusterDescriptor.java
index 716d771..9a49951 100644
--- 
a/pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/ClusterDescriptor.java
+++ 
b/pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/ClusterDescriptor.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pinot.compat.tests;
+package org.apache.pinot.compat;
 
 // TODO Support https, perhaps based on configuration
 public class ClusterDescriptor {
diff --git 
a/pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/CompatTestOperation.java
 
b/pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/CompatTestOperation.java
similarity index 97%
rename from 
pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/CompatTestOperation.java
rename to 
pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/CompatTestOperation.java
index 0791480..c3768fa 100644
--- 
a/pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/CompatTestOperation.java
+++ 
b/pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/CompatTestOperation.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pinot.compat.tests;
+package org.apache.pinot.compat;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import java.util.List;
diff --git 
a/pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/CompatibilityOpsRunner.java
 
b/pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/CompatibilityOpsRunner.java
similarity index 98%
rename from 
pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/CompatibilityOpsRunner.java
rename to 
pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/CompatibilityOpsRunner.java
index 15382b6..bd76f24 100644
--- 
a/pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/CompatibilityOpsRunner.java
+++ 
b/pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/CompatibilityOpsRunner.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pinot.compat.tests;
+package org.apache.pinot.compat;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
diff --git 
a/pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/QueryOp.java
 
b/pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/QueryOp.java
similarity index 96%
rename from 
pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/QueryOp.java
rename to 
pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/QueryOp.java
index 0720a20..928b591 100644
--- 
a/pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/QueryOp.java
+++ 
b/pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/QueryOp.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pinot.compat.tests;
+package org.apache.pinot.compat;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.databind.JsonNode;
@@ -24,7 +24,7 @@ import java.io.BufferedReader;
 import java.io.FileInputStream;
 import java.io.InputStreamReader;
 import java.nio.charset.StandardCharsets;
-import org.apache.pinot.integration.tests.ClusterTest;
+import org.apache.pinot.common.utils.SqlResultComparator;
 import org.apache.pinot.spi.utils.JsonUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -124,7 +124,7 @@ public class QueryOp extends BaseOp {
         JsonNode actualJson = null;
         if (expectedJson != null) {
           try {
-            actualJson = ClusterTest.postSqlQuery(query, 
ClusterDescriptor.getInstance().getBrokerUrl());
+            actualJson = Utils.postSqlQuery(query, 
ClusterDescriptor.getInstance().getBrokerUrl());
           } catch (Exception e) {
             LOGGER.error("Comparison FAILED: Line: {} Exception caught while 
running query: '{}'", queryLineNum, query,
                 e);
diff --git 
a/pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/SegmentOp.java
 
b/pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/SegmentOp.java
similarity index 95%
rename from 
pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/SegmentOp.java
rename to 
pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/SegmentOp.java
index cf0a9fa..480352b 100644
--- 
a/pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/SegmentOp.java
+++ 
b/pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/SegmentOp.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pinot.compat.tests;
+package org.apache.pinot.compat;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.databind.JsonNode;
@@ -29,11 +29,11 @@ import java.util.UUID;
 import java.util.stream.Collectors;
 import org.apache.commons.io.FileUtils;
 import org.apache.pinot.common.utils.FileUploadDownloadClient;
+import org.apache.pinot.common.utils.SqlResultComparator;
 import org.apache.pinot.common.utils.TarGzCompressionUtils;
 import org.apache.pinot.controller.api.resources.TableViews;
 import org.apache.pinot.controller.helix.ControllerRequestURLBuilder;
 import org.apache.pinot.controller.helix.ControllerTest;
-import org.apache.pinot.integration.tests.ClusterTest;
 import 
org.apache.pinot.segment.local.segment.creator.impl.SegmentIndexCreationDriverImpl;
 import org.apache.pinot.segment.spi.creator.SegmentGeneratorConfig;
 import org.apache.pinot.segment.spi.creator.SegmentIndexCreationDriver;
@@ -191,8 +191,8 @@ public class SegmentOp extends BaseOp {
     }
 
     Schema schema = JsonUtils.fileToObject(new 
File(getAbsoluteFileName(_schemaFileName)), Schema.class);
-    RecordReaderConfig recordReaderConfig = RecordReaderFactory
-        .getRecordReaderConfig(DEFAULT_FILE_FORMAT, 
getAbsoluteFileName(_recordReaderConfigFileName));
+    RecordReaderConfig recordReaderConfig = 
RecordReaderFactory.getRecordReaderConfig(DEFAULT_FILE_FORMAT,
+        getAbsoluteFileName(_recordReaderConfigFileName));
 
     SegmentGeneratorConfig segmentGeneratorConfig = new 
SegmentGeneratorConfig(tableConfig, schema);
     segmentGeneratorConfig.setInputFilePath(localReplacedInputDataFilePath);
@@ -263,18 +263,18 @@ public class SegmentOp extends BaseOp {
       throws Exception {
     String query = "SELECT count(*) FROM " + _tableName;
     ClusterDescriptor clusterDescriptor = ClusterDescriptor.getInstance();
-    JsonNode result = ClusterTest.postSqlQuery(query, 
clusterDescriptor.getBrokerUrl());
+    JsonNode result = Utils.postSqlQuery(query, 
clusterDescriptor.getBrokerUrl());
     long startTime = System.currentTimeMillis();
     while (SqlResultComparator.isEmpty(result)) {
       if ((System.currentTimeMillis() - startTime) > 
DEFAULT_MAX_SLEEP_TIME_MS) {
-        LOGGER
-            .error("Upload segment verification failed, routing table has not 
been updated after max wait time {} ms.",
-                DEFAULT_MAX_SLEEP_TIME_MS);
+        LOGGER.error(
+            "Upload segment verification failed, routing table has not been 
updated after max wait time {} ms.",
+            DEFAULT_MAX_SLEEP_TIME_MS);
         return false;
       }
       LOGGER.warn("Routing table has not been updated yet, will retry after {} 
ms.", DEFAULT_SLEEP_INTERVAL_MS);
       Thread.sleep(DEFAULT_SLEEP_INTERVAL_MS);
-      result = ClusterTest.postSqlQuery(query, 
clusterDescriptor.getBrokerUrl());
+      result = Utils.postSqlQuery(query, clusterDescriptor.getBrokerUrl());
     }
     LOGGER.info("Routing table has been updated.");
     return true;
diff --git 
a/pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/StreamOp.java
 
b/pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/StreamOp.java
similarity index 98%
rename from 
pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/StreamOp.java
rename to 
pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/StreamOp.java
index 7b53f22..11a4c3f 100644
--- 
a/pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/StreamOp.java
+++ 
b/pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/StreamOp.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pinot.compat.tests;
+package org.apache.pinot.compat;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.databind.JsonNode;
@@ -39,7 +39,6 @@ import org.apache.kafka.clients.admin.NewTopic;
 import org.apache.pinot.common.exception.QueryException;
 import org.apache.pinot.controller.helix.ControllerRequestURLBuilder;
 import org.apache.pinot.controller.helix.ControllerTest;
-import org.apache.pinot.integration.tests.ClusterTest;
 import org.apache.pinot.plugin.inputformat.csv.CSVRecordReaderConfig;
 import org.apache.pinot.spi.config.table.TableConfig;
 import org.apache.pinot.spi.data.DateTimeFormatSpec;
@@ -270,7 +269,7 @@ public class StreamOp extends BaseOp {
   private long fetchExistingTotalDocs(String tableName)
       throws Exception {
     String query = "SELECT count(*) FROM " + tableName;
-    JsonNode response = ClusterTest.postSqlQuery(query, 
ClusterDescriptor.getInstance().getBrokerUrl());
+    JsonNode response = Utils.postSqlQuery(query, 
ClusterDescriptor.getInstance().getBrokerUrl());
     if (response == null) {
       String errorMsg = String.format("Failed to query Table: %s", tableName);
       LOGGER.error(errorMsg);
diff --git 
a/pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/TableOp.java
 
b/pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/TableOp.java
similarity index 99%
rename from 
pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/TableOp.java
rename to 
pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/TableOp.java
index 33bf0c1..2cf0d46 100644
--- 
a/pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/TableOp.java
+++ 
b/pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/TableOp.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pinot.compat.tests;
+package org.apache.pinot.compat;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import java.io.File;
diff --git 
a/pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/Utils.java
 b/pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/Utils.java
similarity index 70%
rename from 
pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/Utils.java
rename to 
pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/Utils.java
index 672bb8b..86d8507 100644
--- 
a/pinot-integration-tests/src/test/java/org/apache/pinot/compat/tests/Utils.java
+++ 
b/pinot-compatibility-verifier/src/main/java/org/apache/pinot/compat/Utils.java
@@ -16,14 +16,18 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pinot.compat.tests;
+package org.apache.pinot.compat;
 
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
 import java.io.File;
 import java.io.IOException;
 import java.nio.file.Files;
 import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
+import org.apache.pinot.controller.helix.ControllerTest;
+import org.apache.pinot.spi.utils.JsonUtils;
 
 
 public class Utils {
@@ -41,9 +45,18 @@ public class Utils {
   public static void replaceContent(File originalDataFile, File 
replacedDataFile, String original, String replaced)
       throws IOException {
     Stream<String> lines = Files.lines(originalDataFile.toPath());
-    List<String> replacedContent = lines.map(line -> line.replaceAll(original, 
replaced)).
-        collect(Collectors.toList());
+    List<String> replacedContent = lines.map(line -> line.replaceAll(original, 
replaced)).collect(Collectors.toList());
     Files.write(replacedDataFile.toPath(), replacedContent);
     lines.close();
   }
+
+  public static JsonNode postSqlQuery(String query, String brokerBaseApiUrl)
+      throws Exception {
+    ObjectNode payload = JsonUtils.newObjectNode();
+    payload.put("sql", query);
+    payload.put("queryOptions", "groupByMode=sql;responseFormat=sql");
+
+    return JsonUtils.stringToJsonNode(
+        ControllerTest.sendPostRequest(brokerBaseApiUrl + "/query/sql", 
payload.toString()));
+  }
 }
diff --git 
a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/MergeRollupMinionClusterIntegrationTest.java
 
b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/MergeRollupMinionClusterIntegrationTest.java
index f26cfc4..c4110d1 100644
--- 
a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/MergeRollupMinionClusterIntegrationTest.java
+++ 
b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/MergeRollupMinionClusterIntegrationTest.java
@@ -34,8 +34,8 @@ import 
org.apache.pinot.common.lineage.SegmentLineageAccessHelper;
 import org.apache.pinot.common.metadata.segment.SegmentZKMetadata;
 import org.apache.pinot.common.minion.MergeRollupTaskMetadata;
 import org.apache.pinot.common.minion.MinionTaskMetadataUtils;
+import org.apache.pinot.common.utils.SqlResultComparator;
 import org.apache.pinot.common.utils.TarGzCompressionUtils;
-import org.apache.pinot.compat.tests.SqlResultComparator;
 import org.apache.pinot.controller.helix.core.PinotHelixResourceManager;
 import 
org.apache.pinot.controller.helix.core.minion.PinotHelixTaskResourceManager;
 import org.apache.pinot.controller.helix.core.minion.PinotTaskManager;
diff --git a/pom.xml b/pom.xml
index 4835168..426936c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -55,6 +55,7 @@
     <module>pinot-distribution</module>
     <module>pinot-connectors</module>
     <module>pinot-segment-local</module>
+    <module>pinot-compatibility-verifier</module>
   </modules>
 
   <licenses>

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

Reply via email to