Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions conf/gravitino-lance-rest-server.conf.template
Original file line number Diff line number Diff line change
Expand Up @@ -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
10 changes: 5 additions & 5 deletions conf/gravitino.conf.template
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
9 changes: 1 addition & 8 deletions lance/lance-common/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -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("*")
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<String> 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<String> 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<String> NAMESPACE_URI =
new ConfigBuilder(CONFIG_URI)
.doc("The URI for the namespace backend, e.g., Gravitino server URI")
public static final ConfigEntry<String> 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<String, String> properties) {
super(false);
Expand All @@ -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() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,27 +26,6 @@
import org.junit.jupiter.api.Test;

public class TestLanceConfig {
@Test
public void testLoadLanceConfig() {
Map<String, String> 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<String, String> properties = ImmutableMap.of();
LanceConfig lanceConfig = new LanceConfig(properties);
Assertions.assertEquals("gravitino", lanceConfig.getNamespaceBackend());
}

@Test
public void testLanceHttpPort() {
Map<String, String> properties = ImmutableMap.of();
Expand Down Expand Up @@ -74,18 +53,18 @@ public void testGravitinoUriAndMetalake() {
// Test default values
Map<String, String> 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());
}

Expand All @@ -94,7 +73,7 @@ public void testCompleteConfiguration() {
// Test all configurations together for auxiliary mode
Map<String, String> properties =
ImmutableMap.<String, String>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")
Expand All @@ -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);
Expand Down
1 change: 0 additions & 1 deletion lance/lance-rest-server/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ plugins {

dependencies {
implementation(project(":api"))
implementation(project(":catalogs:catalog-common"))
implementation(project(":common")) {
exclude("*")
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -70,7 +72,7 @@ public void serviceInit(Map<String, String> 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
Expand Down