diff --git a/catalogs/catalog-lakehouse-iceberg/build.gradle.kts b/catalogs/catalog-lakehouse-iceberg/build.gradle.kts index 25f750a6be9..1b1cd9a29e3 100644 --- a/catalogs/catalog-lakehouse-iceberg/build.gradle.kts +++ b/catalogs/catalog-lakehouse-iceberg/build.gradle.kts @@ -143,6 +143,8 @@ tasks.test { exclude("**/integration/test/**") } else { dependsOn(tasks.jar) + dependsOn(":iceberg:iceberg-rest-server:jar") + dependsOn(":lance:lance-rest-server:jar") } } diff --git a/catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/integration/test/CatalogIcebergBaseIT.java b/catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/integration/test/CatalogIcebergBaseIT.java index 1260d7d795e..b0d4f3b5eb2 100644 --- a/catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/integration/test/CatalogIcebergBaseIT.java +++ b/catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/integration/test/CatalogIcebergBaseIT.java @@ -124,7 +124,7 @@ public abstract class CatalogIcebergBaseIT extends BaseIT { @BeforeAll public void startup() throws Exception { - ignoreIcebergRestService = false; + super.ignoreAuxRestService = false; super.startIntegrationTest(); containerSuite.startHiveContainer(); initIcebergCatalogProperties(); diff --git a/catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/integration/test/CatalogIcebergKerberosHiveIT.java b/catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/integration/test/CatalogIcebergKerberosHiveIT.java index 1017ccb4e10..cce787ec850 100644 --- a/catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/integration/test/CatalogIcebergKerberosHiveIT.java +++ b/catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/integration/test/CatalogIcebergKerberosHiveIT.java @@ -127,7 +127,7 @@ public void startIntegrationTest() { // Config kerberos configuration for Gravitino server addKerberosConfig(); - ignoreIcebergRestService = false; + super.ignoreAuxRestService = false; // Start Gravitino server super.startIntegrationTest(); } catch (Exception e) { diff --git a/conf/gravitino.conf.template b/conf/gravitino.conf.template index 44a9e50f82c..f3af89c12b9 100644 --- a/conf/gravitino.conf.template +++ b/conf/gravitino.conf.template @@ -82,7 +82,7 @@ gravitino.authorization.serviceAdmins = anonymous # THE CONFIGURATION FOR AUXILIARY SERVICE # Auxiliary service names, separate by ',', currently support iceberg-rest and lance-rest -gravitino.auxService.names = iceberg-rest +gravitino.auxService.names = iceberg-rest,lance-rest # Iceberg REST service classpath gravitino.iceberg-rest.classpath = iceberg-rest-server/libs, iceberg-rest-server/conf # Iceberg REST service host diff --git a/flink-connector/flink/src/test/java/org/apache/gravitino/flink/connector/integration/test/FlinkEnvIT.java b/flink-connector/flink/src/test/java/org/apache/gravitino/flink/connector/integration/test/FlinkEnvIT.java index d372eb92afd..ca79144f5b6 100644 --- a/flink-connector/flink/src/test/java/org/apache/gravitino/flink/connector/integration/test/FlinkEnvIT.java +++ b/flink-connector/flink/src/test/java/org/apache/gravitino/flink/connector/integration/test/FlinkEnvIT.java @@ -112,7 +112,7 @@ protected String flinkByPass(String key) { protected abstract String getProvider(); private void initIcebergRestServiceEnv() { - ignoreIcebergRestService = false; + super.ignoreAuxRestService = false; Map icebergRestServiceConfigs = new HashMap<>(); icebergRestServiceConfigs.put( "gravitino." diff --git a/integration-test-common/src/test/java/org/apache/gravitino/integration/test/MiniGravitino.java b/integration-test-common/src/test/java/org/apache/gravitino/integration/test/MiniGravitino.java index d0ce1710d7f..3cff6940c6e 100644 --- a/integration-test-common/src/test/java/org/apache/gravitino/integration/test/MiniGravitino.java +++ b/integration-test-common/src/test/java/org/apache/gravitino/integration/test/MiniGravitino.java @@ -78,7 +78,7 @@ public MiniGravitino(MiniGravitinoContext context) throws IOException { mockConfDir.mkdirs(); } - private void removeIcebergRestConfiguration(Properties properties) { + private void removeAuxRestConfiguration(Properties properties) { // Disable Iceberg REST service properties.remove( AuxiliaryServiceManager.GRAVITINO_AUX_SERVICE_PREFIX @@ -103,9 +103,9 @@ public void start() throws Exception { serverConfig.loadPropertiesFromFile( new File(ITUtils.joinPath(mockConfDir.getAbsolutePath(), "gravitino.conf"))); - // Remove Iceberg rest service. - if (context.ignoreIcebergRestService) { - removeIcebergRestConfiguration(properties); + // Disable auxiliary rest service. + if (context.ignoreAuxRestService) { + removeAuxRestConfiguration(properties); ITUtils.overwriteConfigFile( ITUtils.joinPath(mockConfDir.getAbsolutePath(), "gravitino.conf"), properties); } @@ -230,6 +230,22 @@ Map getIcebergRestServiceConfigs() throws IOException { return customConfigs; } + private Map getLanceRestServiceConfigs() throws IOException { + Map customConfigs = new HashMap<>(); + + String lanceJarPath = Paths.get("lance", "lance-rest-server", "build", "libs").toString(); + String lanceConfigPath = + Paths.get("lance", "lance-rest-server", "src", "main", "resources").toString(); + customConfigs.put( + "gravitino.lance-rest." + AuxiliaryServiceManager.AUX_SERVICE_CLASSPATH, + String.join(",", lanceJarPath, lanceConfigPath)); + + customConfigs.put( + "gravitino.lance-rest." + JettyServerConfig.WEBSERVER_HTTP_PORT.getKey(), + String.valueOf(RESTUtils.findAvailablePort(4000, 5000))); + return customConfigs; + } + // Customize the config file private void customizeConfigFile(String configTempFileName, String configFileName) throws IOException { @@ -239,6 +255,7 @@ private void customizeConfigFile(String configTempFileName, String configFileNam String.valueOf(RESTUtils.findAvailablePort(2000, 3000))); configMap.putAll(getIcebergRestServiceConfigs()); + configMap.putAll(getLanceRestServiceConfigs()); configMap.putAll(context.customConfig); ITUtils.rewriteConfigFile(configTempFileName, configFileName, configMap); diff --git a/integration-test-common/src/test/java/org/apache/gravitino/integration/test/MiniGravitinoContext.java b/integration-test-common/src/test/java/org/apache/gravitino/integration/test/MiniGravitinoContext.java index 5b2acfac331..601138ecfd0 100644 --- a/integration-test-common/src/test/java/org/apache/gravitino/integration/test/MiniGravitinoContext.java +++ b/integration-test-common/src/test/java/org/apache/gravitino/integration/test/MiniGravitinoContext.java @@ -23,10 +23,10 @@ public class MiniGravitinoContext { Map customConfig; - final boolean ignoreIcebergRestService; + final boolean ignoreAuxRestService; - public MiniGravitinoContext(Map customConfig, boolean ignoreIcebergRestService) { + public MiniGravitinoContext(Map customConfig, boolean ignoreAuxRestService) { this.customConfig = customConfig; - this.ignoreIcebergRestService = ignoreIcebergRestService; + this.ignoreAuxRestService = ignoreAuxRestService; } } diff --git a/integration-test-common/src/test/java/org/apache/gravitino/integration/test/util/BaseIT.java b/integration-test-common/src/test/java/org/apache/gravitino/integration/test/util/BaseIT.java index 72923341b93..1ae60a0fecb 100644 --- a/integration-test-common/src/test/java/org/apache/gravitino/integration/test/util/BaseIT.java +++ b/integration-test-common/src/test/java/org/apache/gravitino/integration/test/util/BaseIT.java @@ -102,7 +102,7 @@ public class BaseIT { protected Map customConfigs = new HashMap<>(); - protected boolean ignoreIcebergRestService = true; + protected boolean ignoreAuxRestService = true; public String DOWNLOAD_MYSQL_JDBC_DRIVER_URL = "https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.26/mysql-connector-java-8.0.26.jar"; @@ -330,8 +330,7 @@ public void startIntegrationTest() throws Exception { serverConfig = new ServerConfig(); customConfigs.put(ENTITY_RELATIONAL_JDBC_BACKEND_PATH.getKey(), file.getAbsolutePath()); if (testMode != null && testMode.equals(ITUtils.EMBEDDED_TEST_MODE)) { - MiniGravitinoContext context = - new MiniGravitinoContext(customConfigs, ignoreIcebergRestService); + MiniGravitinoContext context = new MiniGravitinoContext(customConfigs, ignoreAuxRestService); miniGravitino = new MiniGravitino(context); miniGravitino.start(); serverConfig = miniGravitino.getServerConfig(); diff --git a/spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/integration/test/SparkEnvIT.java b/spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/integration/test/SparkEnvIT.java index 273d6d3bcd0..9c2d2d5110b 100644 --- a/spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/integration/test/SparkEnvIT.java +++ b/spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/integration/test/SparkEnvIT.java @@ -155,7 +155,7 @@ private void initHiveEnv() { protected void initCatalogEnv() throws Exception {} private void initIcebergRestServiceEnv() { - ignoreIcebergRestService = false; + super.ignoreAuxRestService = false; Map icebergRestServiceConfigs = new HashMap<>(); icebergRestServiceConfigs.put( "gravitino." diff --git a/spark-connector/v3.3/spark/build.gradle.kts b/spark-connector/v3.3/spark/build.gradle.kts index 9023404980b..1cc7f6d1a18 100644 --- a/spark-connector/v3.3/spark/build.gradle.kts +++ b/spark-connector/v3.3/spark/build.gradle.kts @@ -175,6 +175,7 @@ tasks.test { dependsOn(":catalogs:catalog-lakehouse-iceberg:jar") dependsOn(":catalogs:catalog-hive:jar") dependsOn(":iceberg:iceberg-rest-server:jar") + dependsOn(":lance:lance-rest-server:jar") dependsOn(":catalogs:catalog-lakehouse-paimon:jar") dependsOn(":catalogs:catalog-jdbc-mysql:jar") dependsOn(":catalogs:catalog-jdbc-postgresql:jar") diff --git a/spark-connector/v3.4/spark/build.gradle.kts b/spark-connector/v3.4/spark/build.gradle.kts index 8a9b527dcec..519799d0764 100644 --- a/spark-connector/v3.4/spark/build.gradle.kts +++ b/spark-connector/v3.4/spark/build.gradle.kts @@ -175,6 +175,7 @@ tasks.test { dependsOn(":catalogs:catalog-lakehouse-iceberg:jar") dependsOn(":catalogs:catalog-hive:jar") dependsOn(":iceberg:iceberg-rest-server:jar") + dependsOn(":lance:lance-rest-server:jar") dependsOn(":catalogs:catalog-lakehouse-paimon:jar") dependsOn(":catalogs:catalog-jdbc-mysql:jar") dependsOn(":catalogs:catalog-jdbc-postgresql:jar") diff --git a/spark-connector/v3.5/spark/build.gradle.kts b/spark-connector/v3.5/spark/build.gradle.kts index edbed1ca2db..cc1d8c9f887 100644 --- a/spark-connector/v3.5/spark/build.gradle.kts +++ b/spark-connector/v3.5/spark/build.gradle.kts @@ -177,6 +177,7 @@ tasks.test { dependsOn(":catalogs:catalog-lakehouse-iceberg:jar") dependsOn(":catalogs:catalog-hive:jar") dependsOn(":iceberg:iceberg-rest-server:jar") + dependsOn(":lance:lance-rest-server:jar") dependsOn(":catalogs:catalog-lakehouse-paimon:jar") dependsOn(":catalogs:catalog-jdbc-mysql:jar") dependsOn(":catalogs:catalog-jdbc-postgresql:jar")