diff --git a/conf/gravitino-lance-rest-server.conf.template b/conf/gravitino-lance-rest-server.conf.template index 137daf145d7..d74fec3eb7e 100644 --- a/conf/gravitino-lance-rest-server.conf.template +++ b/conf/gravitino-lance-rest-server.conf.template @@ -43,6 +43,7 @@ gravitino.lance-rest.responseHeaderSize = 131072 # THE CONFIGURATION FOR Lance namespace backend # The backend Lance namespace for Lance REST service, it's recommended to use Gravitino gravitino.lance-rest.namespace-backend = gravitino -gravitino.lance-rest.uri = http://localhost:8090 -# replace metalake with your metalake name in Gravitino -# gravitino.lance-rest.metalake-name = metalake +# The uri of the Lance REST service gravitino namespace backend +gravitino.lance-rest.gravitino.uri = http://localhost:8090 +# The metalake name used for Lance REST service gravitino namespace backend, please create the metalake before using it, and configure the metalake name here. +# gravitino.lance-rest.gravitino.metalake-name = metalake diff --git a/conf/gravitino.conf.template b/conf/gravitino.conf.template index a1fdb005cad..44a9e50f82c 100644 --- a/conf/gravitino.conf.template +++ b/conf/gravitino.conf.template @@ -81,9 +81,8 @@ gravitino.authorization.enable = false gravitino.authorization.serviceAdmins = anonymous # THE CONFIGURATION FOR AUXILIARY SERVICE -# Auxiliary service names, separate by ',' such as iceberg-rest,lance-rest +# Auxiliary service names, separate by ',', currently support iceberg-rest and lance-rest gravitino.auxService.names = iceberg-rest - # Iceberg REST service classpath gravitino.iceberg-rest.classpath = iceberg-rest-server/libs, iceberg-rest-server/conf # Iceberg REST service host @@ -105,6 +104,7 @@ gravitino.lance-rest.httpPort = 9101 # THE CONFIGURATION FOR Lance namespace backend # The backend Lance namespace for Lance REST service, it's recommended to use Gravitino gravitino.lance-rest.namespace-backend = gravitino -gravitino.lance-rest.uri = http://localhost:8090 -# replace metalake with your metalake name in Gravitino -# gravitino.lance-rest.metalake-name = metalake +# The uri of the Lance REST service gravitino namespace backend +gravitino.lance-rest.gravitino.uri = http://localhost:8090 +# The metalake name used for Lance REST service gravitino namespace backend, please create the metalake first before using it, and configure the metalake name here. +# gravitino.lance-rest.gravitino.metalake-name = metalake diff --git a/lance/lance-common/build.gradle.kts b/lance/lance-common/build.gradle.kts index 27057950f3a..43cf5f42b85 100644 --- a/lance/lance-common/build.gradle.kts +++ b/lance/lance-common/build.gradle.kts @@ -25,14 +25,7 @@ plugins { } dependencies { - implementation(project(":api")) - implementation(project(":catalogs:catalog-common")) - implementation(project(":clients:client-java")) { - exclude("*") - } - implementation(project(":common")) { - exclude("*") - } + implementation(project(":clients:client-java-runtime", configuration = "shadow")) implementation(project(":core")) { exclude("*") } diff --git a/lance/lance-common/src/main/java/org/apache/gravitino/lance/common/config/LanceConfig.java b/lance/lance-common/src/main/java/org/apache/gravitino/lance/common/config/LanceConfig.java index 3703189ba87..f517d1a349c 100644 --- a/lance/lance-common/src/main/java/org/apache/gravitino/lance/common/config/LanceConfig.java +++ b/lance/lance-common/src/main/java/org/apache/gravitino/lance/common/config/LanceConfig.java @@ -36,29 +36,29 @@ public class LanceConfig extends Config implements OverwriteDefaultConfig { public static final int DEFAULT_LANCE_REST_SERVICE_HTTP_PORT = 9101; public static final int DEFAULT_LANCE_REST_SERVICE_HTTPS_PORT = 9533; - public static final String DEFAULT_NAMESPACE_BACKEND = "gravitino"; - public static final String DEFAULT_URI = "http://localhost:8090"; + public static final String GRAVITINO_NAMESPACE_BACKEND = "gravitino"; + public static final String GRAVITINO_URI = "http://localhost:8090"; public static final ConfigEntry NAMESPACE_BACKEND = new ConfigBuilder(CONFIG_NAMESPACE_BACKEND) .doc("The backend implementation for namespace operations") .version(ConfigConstants.VERSION_0_1_0) .stringConf() - .createWithDefault(DEFAULT_NAMESPACE_BACKEND); + .createWithDefault(GRAVITINO_NAMESPACE_BACKEND); public static final ConfigEntry METALAKE_NAME = - new ConfigBuilder(CONFIG_METALAKE) - .doc("The Metalake name for Gravitino namespace backend") + new ConfigBuilder(LANCE_CONFIG_PREFIX + GRAVITINO_NAMESPACE_BACKEND + "." + CONFIG_METALAKE) + .doc("The Metalake name for Lance Gravitino namespace backend") .version(ConfigConstants.VERSION_0_1_0) .stringConf() .create(); - public static final ConfigEntry NAMESPACE_URI = - new ConfigBuilder(CONFIG_URI) - .doc("The URI for the namespace backend, e.g., Gravitino server URI") + public static final ConfigEntry NAMESPACE_BACKEND_URI = + new ConfigBuilder(LANCE_CONFIG_PREFIX + GRAVITINO_NAMESPACE_BACKEND + "." + CONFIG_URI) + .doc("The URI of the namespace backend, e.g., Gravitino server URI") .version(ConfigConstants.VERSION_0_1_0) .stringConf() - .createWithDefault(DEFAULT_URI); + .createWithDefault(GRAVITINO_URI); public LanceConfig(Map properties) { super(false); @@ -73,8 +73,8 @@ public String getNamespaceBackend() { return get(NAMESPACE_BACKEND); } - public String getNamespaceUri() { - return get(NAMESPACE_URI); + public String getNamespaceBackendUri() { + return get(NAMESPACE_BACKEND_URI); } public String getGravitinoMetalake() { diff --git a/lance/lance-common/src/main/java/org/apache/gravitino/lance/common/ops/gravitino/GravitinoLanceNamespaceWrapper.java b/lance/lance-common/src/main/java/org/apache/gravitino/lance/common/ops/gravitino/GravitinoLanceNamespaceWrapper.java index 1f9e41a2cb0..fe6404a424c 100644 --- a/lance/lance-common/src/main/java/org/apache/gravitino/lance/common/ops/gravitino/GravitinoLanceNamespaceWrapper.java +++ b/lance/lance-common/src/main/java/org/apache/gravitino/lance/common/ops/gravitino/GravitinoLanceNamespaceWrapper.java @@ -19,7 +19,7 @@ package org.apache.gravitino.lance.common.ops.gravitino; import static org.apache.gravitino.lance.common.config.LanceConfig.METALAKE_NAME; -import static org.apache.gravitino.lance.common.config.LanceConfig.NAMESPACE_URI; +import static org.apache.gravitino.lance.common.config.LanceConfig.NAMESPACE_BACKEND_URI; import static org.apache.gravitino.rel.Column.DEFAULT_VALUE_NOT_SET; import com.google.common.base.Joiner; @@ -111,11 +111,11 @@ public GravitinoLanceNamespaceWrapper(LanceConfig config) { @Override protected void initialize() { - String uri = config().get(NAMESPACE_URI); + String uri = config().get(NAMESPACE_BACKEND_URI); String metalakeName = config().get(METALAKE_NAME); Preconditions.checkArgument( StringUtils.isNotBlank(metalakeName), - "Metalake name must be provided for Gravitino namespace backend"); + "Metalake name must be provided for Lance Gravitino namespace backend"); this.client = GravitinoClient.builder(uri).withMetalake(metalakeName).build(); } diff --git a/lance/lance-common/src/test/java/org/apache/gravitino/lance/common/config/TestLanceConfig.java b/lance/lance-common/src/test/java/org/apache/gravitino/lance/common/config/TestLanceConfig.java index 44577a2dfac..6544ca7a3ad 100644 --- a/lance/lance-common/src/test/java/org/apache/gravitino/lance/common/config/TestLanceConfig.java +++ b/lance/lance-common/src/test/java/org/apache/gravitino/lance/common/config/TestLanceConfig.java @@ -26,27 +26,6 @@ import org.junit.jupiter.api.Test; public class TestLanceConfig { - @Test - public void testLoadLanceConfig() { - Map properties = - ImmutableMap.of("gravitino.lance-rest.namespace-backend", "test_catalog"); - - LanceConfig lanceConfig = new LanceConfig(); - lanceConfig.loadFromMap(properties, k -> k.startsWith("gravitino.lance-rest.")); - Assertions.assertEquals("gravitino", lanceConfig.getNamespaceBackend()); - - LanceConfig lanceConfig2 = new LanceConfig(properties); - Assertions.assertEquals("gravitino", lanceConfig2.getNamespaceBackend()); - } - - @Test - public void testDefaultCatalogName() { - // Test default namespace backend name when not specified - Map properties = ImmutableMap.of(); - LanceConfig lanceConfig = new LanceConfig(properties); - Assertions.assertEquals("gravitino", lanceConfig.getNamespaceBackend()); - } - @Test public void testLanceHttpPort() { Map properties = ImmutableMap.of(); @@ -74,18 +53,18 @@ public void testGravitinoUriAndMetalake() { // Test default values Map properties = ImmutableMap.of(); LanceConfig lanceConfig = new LanceConfig(properties); - Assertions.assertEquals("http://localhost:8090", lanceConfig.getNamespaceUri()); + Assertions.assertEquals("http://localhost:8090", lanceConfig.getNamespaceBackendUri()); Assertions.assertNull(lanceConfig.getGravitinoMetalake()); // No default, must be configured // Test custom values properties = ImmutableMap.of( - LanceConfig.NAMESPACE_URI.getKey(), + LanceConfig.NAMESPACE_BACKEND_URI.getKey(), "http://gravitino-server:8090", LanceConfig.METALAKE_NAME.getKey(), "production"); lanceConfig = new LanceConfig(properties); - Assertions.assertEquals("http://gravitino-server:8090", lanceConfig.getNamespaceUri()); + Assertions.assertEquals("http://gravitino-server:8090", lanceConfig.getNamespaceBackendUri()); Assertions.assertEquals("production", lanceConfig.getGravitinoMetalake()); } @@ -94,7 +73,7 @@ public void testCompleteConfiguration() { // Test all configurations together for auxiliary mode Map properties = ImmutableMap.builder() - .put(LanceConfig.NAMESPACE_URI.getKey(), "http://gravitino-prod:8090") + .put(LanceConfig.NAMESPACE_BACKEND_URI.getKey(), "http://gravitino-prod:8090") .put(LanceConfig.METALAKE_NAME.getKey(), "production") .put(LanceConfig.NAMESPACE_BACKEND.getKey(), "gravitino") .put(JettyServerConfig.WEBSERVER_HTTP_PORT.getKey(), "9101") @@ -103,8 +82,7 @@ public void testCompleteConfiguration() { LanceConfig lanceConfig = new LanceConfig(properties); // Verify all config values - Assertions.assertEquals("gravitino", lanceConfig.getNamespaceBackend()); - Assertions.assertEquals("http://gravitino-prod:8090", lanceConfig.getNamespaceUri()); + Assertions.assertEquals("http://gravitino-prod:8090", lanceConfig.getNamespaceBackendUri()); Assertions.assertEquals("production", lanceConfig.getGravitinoMetalake()); JettyServerConfig jettyConfig = JettyServerConfig.fromConfig(lanceConfig); diff --git a/lance/lance-rest-server/build.gradle.kts b/lance/lance-rest-server/build.gradle.kts index 0d7a2c98526..7befc28b35a 100644 --- a/lance/lance-rest-server/build.gradle.kts +++ b/lance/lance-rest-server/build.gradle.kts @@ -26,7 +26,6 @@ plugins { dependencies { implementation(project(":api")) - implementation(project(":catalogs:catalog-common")) implementation(project(":common")) { exclude("*") } diff --git a/lance/lance-rest-server/src/main/java/org/apache/gravitino/lance/LanceRESTService.java b/lance/lance-rest-server/src/main/java/org/apache/gravitino/lance/LanceRESTService.java index 2d9f3e8823d..8c800e49d64 100644 --- a/lance/lance-rest-server/src/main/java/org/apache/gravitino/lance/LanceRESTService.java +++ b/lance/lance-rest-server/src/main/java/org/apache/gravitino/lance/LanceRESTService.java @@ -48,6 +48,8 @@ public class LanceRESTService implements GravitinoAuxiliaryService { public static final String SERVICE_NAME = "lance-rest"; public static final String LANCE_SPEC = "/lance/*"; + private static final String LANCE_REST_SPEC_PACKAGE = "org.apache.gravitino.lance.service.rest"; + private JettyServer server; private NamespaceWrapper lanceNamespace; @@ -70,7 +72,7 @@ public void serviceInit(Map properties) { ResourceConfig resourceConfig = new ResourceConfig(); resourceConfig.register(JacksonFeature.class); - resourceConfig.packages("org.apache.gravitino.lance.service.rest"); + resourceConfig.packages(LANCE_REST_SPEC_PACKAGE); resourceConfig.register( new AbstractBinder() { @Override