diff --git a/integration-tests/kyuubi-flink-it/pom.xml b/integration-tests/kyuubi-flink-it/pom.xml new file mode 100644 index 000000000..971204e84 --- /dev/null +++ b/integration-tests/kyuubi-flink-it/pom.xml @@ -0,0 +1,91 @@ + + + + + + integration-tests + org.apache.kyuubi + 1.5.0-SNAPSHOT + ../pom.xml + + 4.0.0 + + kyuubi-flink-it_2.12 + Kyuubi Project IT Flink SQL + + + + + org.apache.kyuubi + kyuubi-common_${scala.binary.version} + ${project.version} + test-jar + test + + + + org.apache.kyuubi + kyuubi-server_${scala.binary.version} + ${project.version} + + + + org.apache.kyuubi + kyuubi-server_${scala.binary.version} + ${project.version} + test-jar + test + + + + org.apache.kyuubi + kyuubi-hive-jdbc-shaded + ${project.version} + test + + + + + org.apache.flink + flink-core + test + + + + org.apache.flink + flink-runtime + test + + + + org.apache.flink + flink-table-runtime_${scala.binary.version} + test + + + + org.slf4j + jul-to-slf4j + test + + + + + diff --git a/kyuubi-server/src/test/scala/org/apache/kyuubi/WithKyuubiServerAndFlinkLocalCluster.scala b/integration-tests/kyuubi-flink-it/src/test/scala/org/apache/kyuubi/it/flink/WithKyuubiServerAndFlinkMiniCluster.scala similarity index 51% rename from kyuubi-server/src/test/scala/org/apache/kyuubi/WithKyuubiServerAndFlinkLocalCluster.scala rename to integration-tests/kyuubi-flink-it/src/test/scala/org/apache/kyuubi/it/flink/WithKyuubiServerAndFlinkMiniCluster.scala index a6d5d92ed..0e0f28265 100644 --- a/kyuubi-server/src/test/scala/org/apache/kyuubi/WithKyuubiServerAndFlinkLocalCluster.scala +++ b/integration-tests/kyuubi-flink-it/src/test/scala/org/apache/kyuubi/it/flink/WithKyuubiServerAndFlinkMiniCluster.scala @@ -15,24 +15,36 @@ * limitations under the License. */ -package org.apache.kyuubi +package org.apache.kyuubi.it.flink -import scala.sys.process._ +import org.apache.flink.configuration.{Configuration, RestOptions} +import org.apache.flink.runtime.minicluster.{MiniCluster, MiniClusterConfiguration} -import org.apache.kyuubi.engine.flink.FlinkProcessBuilder +import org.apache.kyuubi.WithKyuubiServer -trait WithKyuubiServerAndFlinkLocalCluster extends WithKyuubiServer { +trait WithKyuubiServerAndFlinkMiniCluster extends WithKyuubiServer { - private lazy val FLINK_HOME: String = - new FlinkProcessBuilder(Utils.currentUser, conf).FLINK_HOME + protected lazy val flinkConfig = new Configuration() + protected var miniCluster: MiniCluster = _ override def beforeAll(): Unit = { - s"$FLINK_HOME/bin/start-cluster.sh".! + startMiniCluster() super.beforeAll() } override def afterAll(): Unit = { super.afterAll() - s"$FLINK_HOME/bin/stop-cluster.sh".! + miniCluster.close() + } + + private def startMiniCluster(): Unit = { + val cfg = new MiniClusterConfiguration.Builder() + .setConfiguration(flinkConfig) + .setNumSlotsPerTaskManager(1) + .build + miniCluster = new MiniCluster(cfg) + miniCluster.start() + flinkConfig.setString(RestOptions.ADDRESS, miniCluster.getRestAddress.get().getHost) + flinkConfig.setInteger(RestOptions.PORT, miniCluster.getRestAddress.get().getPort) } } diff --git a/kyuubi-server/src/test/scala/org/apache/kyuubi/operation/flink/FlinkOperationSuite.scala b/integration-tests/kyuubi-flink-it/src/test/scala/org/apache/kyuubi/it/flink/operation/FlinkOperationSuite.scala similarity index 90% rename from kyuubi-server/src/test/scala/org/apache/kyuubi/operation/flink/FlinkOperationSuite.scala rename to integration-tests/kyuubi-flink-it/src/test/scala/org/apache/kyuubi/it/flink/operation/FlinkOperationSuite.scala index 8915c1978..2ab44a4ef 100644 --- a/kyuubi-server/src/test/scala/org/apache/kyuubi/operation/flink/FlinkOperationSuite.scala +++ b/integration-tests/kyuubi-flink-it/src/test/scala/org/apache/kyuubi/it/flink/operation/FlinkOperationSuite.scala @@ -15,15 +15,15 @@ * limitations under the License. */ -package org.apache.kyuubi.operation.flink +package org.apache.kyuubi.it.flink.operation -import org.apache.kyuubi.WithKyuubiServerAndFlinkLocalCluster import org.apache.kyuubi.config.KyuubiConf import org.apache.kyuubi.config.KyuubiConf.{ENGINE_TYPE, FRONTEND_THRIFT_BINARY_BIND_PORT} +import org.apache.kyuubi.it.flink.WithKyuubiServerAndFlinkMiniCluster import org.apache.kyuubi.operation.HiveJDBCTestHelper import org.apache.kyuubi.operation.meta.ResultSetSchemaConstant.TABLE_CAT -class FlinkOperationSuite extends WithKyuubiServerAndFlinkLocalCluster with HiveJDBCTestHelper { +class FlinkOperationSuite extends WithKyuubiServerAndFlinkMiniCluster with HiveJDBCTestHelper { override val conf: KyuubiConf = KyuubiConf() .set(ENGINE_TYPE, "FLINK_SQL") .set(FRONTEND_THRIFT_BINARY_BIND_PORT, 10019) diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml new file mode 100644 index 000000000..df58e73d9 --- /dev/null +++ b/integration-tests/pom.xml @@ -0,0 +1,38 @@ + + + + + + kyuubi-parent + org.apache.kyuubi + 1.5.0-SNAPSHOT + + + 4.0.0 + pom + + integration-tests + Kyuubi Integration Tests + + + kyuubi-flink-it + + + diff --git a/kyuubi-server/pom.xml b/kyuubi-server/pom.xml index 100875402..309f73bd8 100644 --- a/kyuubi-server/pom.xml +++ b/kyuubi-server/pom.xml @@ -460,5 +460,21 @@ target/scala-${scala.binary.version}/classes target/scala-${scala.binary.version}/test-classes + + + + org.apache.maven.plugins + maven-jar-plugin + + + prepare-test-jar + test-compile + + test-jar + + + + + diff --git a/pom.xml b/pom.xml index dfa0df629..225fa5295 100644 --- a/pom.xml +++ b/pom.xml @@ -70,6 +70,7 @@ externals/kyuubi-flink-sql-engine externals/kyuubi-spark-sql-engine externals/kyuubi-trino-engine + integration-tests kyuubi-assembly kyuubi-common kyuubi-ctl