This is an automated email from the ASF dual-hosted git repository.
jshao pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gravitino.git
The following commit(s) were added to refs/heads/main by this push:
new 61fe0eef0 [#4476] feat(iceberg): rename IcebergTableOps to
IcebergCatalogWrapper (#4947)
61fe0eef0 is described below
commit 61fe0eef05de7ada691cfcc970703019cedf604c
Author: FANNG <[email protected]>
AuthorDate: Wed Sep 18 14:03:03 2024 +0800
[#4476] feat(iceberg): rename IcebergTableOps to IcebergCatalogWrapper
(#4947)
### What changes were proposed in this pull request?
The name of `IcebergTableOps` is not accurate, rename to
`IcebergCatalogWrapper`
### Why are the changes needed?
Fix: #4476
### Does this PR introduce _any_ user-facing change?
no
### How was this patch tested?
existing tests
---
.../iceberg/IcebergCatalogOperations.java | 68 +++++++++++++---------
...elper.java => IcebergCatalogWrapperHelper.java} | 6 +-
.../lakehouse/iceberg/TestIcebergCatalog.java | 8 +--
.../integration/test/CatalogIcebergBaseIT.java | 22 +++----
.../iceberg/ops/TestIcebergTableUpdate.java | 60 ++++++++++---------
.../gravitino/iceberg/common/IcebergConfig.java | 2 +-
...ergTableOps.java => IcebergCatalogWrapper.java} | 8 +--
...der.java => IcebergCatalogWrapperProvider.java} | 10 ++--
.../org/apache/gravitino/iceberg/RESTService.java | 12 ++--
... ConfigBasedIcebergCatalogWrapperProvider.java} | 12 ++--
...avitinoBasedIcebergCatalogWrapperProvider.java} | 14 ++---
...ager.java => IcebergCatalogWrapperManager.java} | 43 +++++++-------
.../service/metrics/IcebergMetricsManager.java | 4 +-
.../service/rest/IcebergNamespaceOperations.java | 22 +++----
.../service/rest/IcebergTableOperations.java | 26 +++++----
.../service/rest/IcebergTableRenameOperations.java | 10 ++--
...tConfigBasedIcebergCatalogWrapperProvider.java} | 16 ++---
...avitinoBasedIcebergCatalogWrapperProvider.java} | 14 +++--
....java => TestIcebergCatalogWrapperManager.java} | 10 ++--
...BasedIcebergCatalogWrapperProviderForTest.java} | 11 ++--
...Test.java => IcebergCatalogWrapperForTest.java} | 4 +-
.../iceberg/service/rest/IcebergRestTestUtil.java | 9 +--
22 files changed, 209 insertions(+), 182 deletions(-)
diff --git
a/catalogs/catalog-lakehouse-iceberg/src/main/java/org/apache/gravitino/catalog/lakehouse/iceberg/IcebergCatalogOperations.java
b/catalogs/catalog-lakehouse-iceberg/src/main/java/org/apache/gravitino/catalog/lakehouse/iceberg/IcebergCatalogOperations.java
index 67a0471f8..c42ee0503 100644
---
a/catalogs/catalog-lakehouse-iceberg/src/main/java/org/apache/gravitino/catalog/lakehouse/iceberg/IcebergCatalogOperations.java
+++
b/catalogs/catalog-lakehouse-iceberg/src/main/java/org/apache/gravitino/catalog/lakehouse/iceberg/IcebergCatalogOperations.java
@@ -37,7 +37,7 @@ import org.apache.gravitino.Catalog;
import org.apache.gravitino.NameIdentifier;
import org.apache.gravitino.Namespace;
import org.apache.gravitino.SchemaChange;
-import
org.apache.gravitino.catalog.lakehouse.iceberg.ops.IcebergTableOpsHelper;
+import
org.apache.gravitino.catalog.lakehouse.iceberg.ops.IcebergCatalogWrapperHelper;
import org.apache.gravitino.connector.CatalogInfo;
import org.apache.gravitino.connector.CatalogOperations;
import org.apache.gravitino.connector.HasPropertyMetadata;
@@ -50,8 +50,8 @@ import
org.apache.gravitino.exceptions.NonEmptySchemaException;
import org.apache.gravitino.exceptions.SchemaAlreadyExistsException;
import org.apache.gravitino.exceptions.TableAlreadyExistsException;
import org.apache.gravitino.iceberg.common.IcebergConfig;
-import org.apache.gravitino.iceberg.common.ops.IcebergTableOps;
-import
org.apache.gravitino.iceberg.common.ops.IcebergTableOps.IcebergTableChange;
+import org.apache.gravitino.iceberg.common.ops.IcebergCatalogWrapper;
+import
org.apache.gravitino.iceberg.common.ops.IcebergCatalogWrapper.IcebergTableChange;
import org.apache.gravitino.meta.AuditInfo;
import org.apache.gravitino.rel.Column;
import org.apache.gravitino.rel.Table;
@@ -82,9 +82,9 @@ public class IcebergCatalogOperations implements
CatalogOperations, SupportsSche
public static final Logger LOG =
LoggerFactory.getLogger(IcebergCatalogOperations.class);
- @VisibleForTesting IcebergTableOps icebergTableOps;
+ @VisibleForTesting IcebergCatalogWrapper icebergCatalogWrapper;
- private IcebergTableOpsHelper icebergTableOpsHelper;
+ private IcebergCatalogWrapperHelper icebergCatalogWrapperHelper;
/**
* Initializes the Iceberg catalog operations with the provided
configuration.
@@ -113,16 +113,17 @@ public class IcebergCatalogOperations implements
CatalogOperations, SupportsSche
}
IcebergConfig icebergConfig = new IcebergConfig(resultConf);
- this.icebergTableOps = new IcebergTableOps(icebergConfig);
- this.icebergTableOpsHelper = new
IcebergTableOpsHelper(icebergTableOps.getCatalog());
+ this.icebergCatalogWrapper = new IcebergCatalogWrapper(icebergConfig);
+ this.icebergCatalogWrapperHelper =
+ new IcebergCatalogWrapperHelper(icebergCatalogWrapper.getCatalog());
}
/** Closes the Iceberg catalog and releases the associated client pool. */
@Override
public void close() {
- if (null != icebergTableOps) {
+ if (null != icebergCatalogWrapper) {
try {
- icebergTableOps.close();
+ icebergCatalogWrapper.close();
} catch (Exception e) {
LOG.warn("Failed to close Iceberg catalog", e);
}
@@ -140,7 +141,9 @@ public class IcebergCatalogOperations implements
CatalogOperations, SupportsSche
public NameIdentifier[] listSchemas(Namespace namespace) throws
NoSuchCatalogException {
try {
List<org.apache.iceberg.catalog.Namespace> namespaces =
-
icebergTableOps.listNamespace(IcebergTableOpsHelper.getIcebergNamespace()).namespaces();
+ icebergCatalogWrapper
+ .listNamespace(IcebergCatalogWrapperHelper.getIcebergNamespace())
+ .namespaces();
return namespaces.stream()
.map(icebergNamespace -> NameIdentifier.of(namespace,
icebergNamespace.toString()))
@@ -178,8 +181,9 @@ public class IcebergCatalogOperations implements
CatalogOperations, SupportsSche
.withCreateTime(Instant.now())
.build())
.build();
- icebergTableOps.createNamespace(
-
createdSchema.toCreateRequest(IcebergTableOpsHelper.getIcebergNamespace(ident.name())));
+ icebergCatalogWrapper.createNamespace(
+ createdSchema.toCreateRequest(
+ IcebergCatalogWrapperHelper.getIcebergNamespace(ident.name())));
LOG.info(
"Created Iceberg schema (database) {} in Iceberg\ncurrentUser:{}
\ncomment: {} \nmetadata: {}",
ident.name(),
@@ -211,7 +215,8 @@ public class IcebergCatalogOperations implements
CatalogOperations, SupportsSche
public IcebergSchema loadSchema(NameIdentifier ident) throws
NoSuchSchemaException {
try {
GetNamespaceResponse response =
-
icebergTableOps.loadNamespace(IcebergTableOpsHelper.getIcebergNamespace(ident.name()));
+ icebergCatalogWrapper.loadNamespace(
+ IcebergCatalogWrapperHelper.getIcebergNamespace(ident.name()));
IcebergSchema icebergSchema =
IcebergSchema.builder()
.withName(ident.name())
@@ -244,7 +249,8 @@ public class IcebergCatalogOperations implements
CatalogOperations, SupportsSche
throws NoSuchSchemaException {
try {
GetNamespaceResponse response =
-
icebergTableOps.loadNamespace(IcebergTableOpsHelper.getIcebergNamespace(ident.name()));
+ icebergCatalogWrapper.loadNamespace(
+ IcebergCatalogWrapperHelper.getIcebergNamespace(ident.name()));
Map<String, String> metadata = response.properties();
List<String> removals = new ArrayList<>();
Map<String, String> updates = new HashMap<>();
@@ -278,8 +284,8 @@ public class IcebergCatalogOperations implements
CatalogOperations, SupportsSche
UpdateNamespacePropertiesRequest updateNamespacePropertiesRequest =
UpdateNamespacePropertiesRequest.builder().updateAll(updates).removeAll(removals).build();
UpdateNamespacePropertiesResponse updateNamespacePropertiesResponse =
- icebergTableOps.updateNamespaceProperties(
- IcebergTableOpsHelper.getIcebergNamespace(ident.name()),
+ icebergCatalogWrapper.updateNamespaceProperties(
+ IcebergCatalogWrapperHelper.getIcebergNamespace(ident.name()),
updateNamespacePropertiesRequest);
LOG.info(
"Altered Iceberg schema (database) {}. UpdateResponse:\n{}",
@@ -306,7 +312,8 @@ public class IcebergCatalogOperations implements
CatalogOperations, SupportsSche
public boolean dropSchema(NameIdentifier ident, boolean cascade) throws
NonEmptySchemaException {
Preconditions.checkArgument(!cascade, "Iceberg does not support cascading
delete operations.");
try {
-
icebergTableOps.dropNamespace(IcebergTableOpsHelper.getIcebergNamespace(ident.name()));
+ icebergCatalogWrapper.dropNamespace(
+ IcebergCatalogWrapperHelper.getIcebergNamespace(ident.name()));
LOG.info("Dropped Iceberg schema (database) {}", ident.name());
return true;
} catch (NamespaceNotEmptyException e) {
@@ -336,7 +343,8 @@ public class IcebergCatalogOperations implements
CatalogOperations, SupportsSche
try {
ListTablesResponse listTablesResponse =
-
icebergTableOps.listTable(IcebergTableOpsHelper.getIcebergNamespace(namespace));
+ icebergCatalogWrapper.listTable(
+ IcebergCatalogWrapperHelper.getIcebergNamespace(namespace));
return listTablesResponse.identifiers().stream()
.map(
tableIdentifier ->
@@ -359,7 +367,8 @@ public class IcebergCatalogOperations implements
CatalogOperations, SupportsSche
try {
LoadTableResponse tableResponse =
-
icebergTableOps.loadTable(IcebergTableOpsHelper.buildIcebergTableIdentifier(tableIdent));
+ icebergCatalogWrapper.loadTable(
+
IcebergCatalogWrapperHelper.buildIcebergTableIdentifier(tableIdent));
IcebergTable icebergTable =
IcebergTable.fromIcebergTable(tableResponse.tableMetadata(),
tableIdent.name());
@@ -408,9 +417,9 @@ public class IcebergCatalogOperations implements
CatalogOperations, SupportsSche
try {
String[] levels = tableIdent.namespace().levels();
IcebergTableChange icebergTableChange =
- icebergTableOpsHelper.buildIcebergTableChanges(
+ icebergCatalogWrapperHelper.buildIcebergTableChanges(
NameIdentifier.of(levels[levels.length - 1], tableIdent.name()),
changes);
- LoadTableResponse loadTableResponse =
icebergTableOps.updateTable(icebergTableChange);
+ LoadTableResponse loadTableResponse =
icebergCatalogWrapper.updateTable(icebergTableChange);
loadTableResponse.validate();
return IcebergTable.fromIcebergTable(loadTableResponse.tableMetadata(),
tableIdent.name());
} catch (org.apache.iceberg.exceptions.NoSuchTableException e) {
@@ -432,12 +441,12 @@ public class IcebergCatalogOperations implements
CatalogOperations, SupportsSche
try {
RenameTableRequest renameTableRequest =
RenameTableRequest.builder()
-
.withSource(IcebergTableOpsHelper.buildIcebergTableIdentifier(tableIdent))
+
.withSource(IcebergCatalogWrapperHelper.buildIcebergTableIdentifier(tableIdent))
.withDestination(
- IcebergTableOpsHelper.buildIcebergTableIdentifier(
+ IcebergCatalogWrapperHelper.buildIcebergTableIdentifier(
tableIdent.namespace(), renameTable.getNewName()))
.build();
- icebergTableOps.renameTable(renameTableRequest);
+ icebergCatalogWrapper.renameTable(renameTableRequest);
return loadTable(NameIdentifier.of(tableIdent.namespace(),
renameTable.getNewName()));
} catch (org.apache.iceberg.exceptions.NoSuchTableException e) {
throw new NoSuchTableException(e, ICEBERG_TABLE_DOES_NOT_EXIST_MSG,
tableIdent.name());
@@ -453,7 +462,8 @@ public class IcebergCatalogOperations implements
CatalogOperations, SupportsSche
@Override
public boolean dropTable(NameIdentifier tableIdent) {
try {
-
icebergTableOps.dropTable(IcebergTableOpsHelper.buildIcebergTableIdentifier(tableIdent));
+ icebergCatalogWrapper.dropTable(
+ IcebergCatalogWrapperHelper.buildIcebergTableIdentifier(tableIdent));
LOG.info("Dropped Iceberg table {}", tableIdent.name());
return true;
} catch (org.apache.iceberg.exceptions.NoSuchTableException e) {
@@ -522,8 +532,8 @@ public class IcebergCatalogOperations implements
CatalogOperations, SupportsSche
.build();
LoadTableResponse loadTableResponse =
- icebergTableOps.createTable(
- IcebergTableOpsHelper.getIcebergNamespace(schemaIdent.name()),
+ icebergCatalogWrapper.createTable(
+
IcebergCatalogWrapperHelper.getIcebergNamespace(schemaIdent.name()),
createdTable.toCreateTableRequest());
loadTableResponse.validate();
@@ -545,7 +555,7 @@ public class IcebergCatalogOperations implements
CatalogOperations, SupportsSche
public boolean purgeTable(NameIdentifier tableIdent) throws
UnsupportedOperationException {
try {
String schema =
NameIdentifier.of(tableIdent.namespace().levels()).name();
- icebergTableOps.purgeTable(TableIdentifier.of(schema,
tableIdent.name()));
+ icebergCatalogWrapper.purgeTable(TableIdentifier.of(schema,
tableIdent.name()));
LOG.info("Purge Iceberg table {}", tableIdent.name());
return true;
} catch (org.apache.iceberg.exceptions.NoSuchTableException e) {
@@ -573,7 +583,7 @@ public class IcebergCatalogOperations implements
CatalogOperations, SupportsSche
String comment,
Map<String, String> properties) {
try {
-
icebergTableOps.listNamespace(IcebergTableOpsHelper.getIcebergNamespace());
+
icebergCatalogWrapper.listNamespace(IcebergCatalogWrapperHelper.getIcebergNamespace());
} catch (Exception e) {
throw new ConnectionFailedException(
e, "Failed to run listNamespace on Iceberg catalog: %s",
e.getMessage());
diff --git
a/catalogs/catalog-lakehouse-iceberg/src/main/java/org/apache/gravitino/catalog/lakehouse/iceberg/ops/IcebergTableOpsHelper.java
b/catalogs/catalog-lakehouse-iceberg/src/main/java/org/apache/gravitino/catalog/lakehouse/iceberg/ops/IcebergCatalogWrapperHelper.java
similarity index 98%
rename from
catalogs/catalog-lakehouse-iceberg/src/main/java/org/apache/gravitino/catalog/lakehouse/iceberg/ops/IcebergTableOpsHelper.java
rename to
catalogs/catalog-lakehouse-iceberg/src/main/java/org/apache/gravitino/catalog/lakehouse/iceberg/ops/IcebergCatalogWrapperHelper.java
index 679deb439..28ea5eafc 100644
---
a/catalogs/catalog-lakehouse-iceberg/src/main/java/org/apache/gravitino/catalog/lakehouse/iceberg/ops/IcebergTableOpsHelper.java
+++
b/catalogs/catalog-lakehouse-iceberg/src/main/java/org/apache/gravitino/catalog/lakehouse/iceberg/ops/IcebergCatalogWrapperHelper.java
@@ -29,7 +29,7 @@ import java.util.List;
import java.util.Set;
import org.apache.gravitino.NameIdentifier;
import
org.apache.gravitino.catalog.lakehouse.iceberg.converter.IcebergDataTypeConverter;
-import
org.apache.gravitino.iceberg.common.ops.IcebergTableOps.IcebergTableChange;
+import
org.apache.gravitino.iceberg.common.ops.IcebergCatalogWrapper.IcebergTableChange;
import org.apache.gravitino.rel.TableChange;
import org.apache.gravitino.rel.TableChange.AddColumn;
import org.apache.gravitino.rel.TableChange.After;
@@ -55,7 +55,7 @@ import org.apache.iceberg.catalog.TableIdentifier;
import org.apache.iceberg.types.Type.PrimitiveType;
import org.apache.iceberg.types.Types.NestedField;
-public class IcebergTableOpsHelper {
+public class IcebergCatalogWrapperHelper {
@VisibleForTesting public static final Joiner DOT = Joiner.on(".");
private static final Set<String> IcebergReservedProperties =
ImmutableSet.of(
@@ -68,7 +68,7 @@ public class IcebergTableOpsHelper {
private Catalog icebergCatalog;
- public IcebergTableOpsHelper(Catalog icebergCatalog) {
+ public IcebergCatalogWrapperHelper(Catalog icebergCatalog) {
this.icebergCatalog = icebergCatalog;
}
diff --git
a/catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/TestIcebergCatalog.java
b/catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/TestIcebergCatalog.java
index f00807c39..36c2abbfd 100644
---
a/catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/TestIcebergCatalog.java
+++
b/catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/TestIcebergCatalog.java
@@ -30,7 +30,7 @@ import org.apache.gravitino.catalog.PropertiesMetadataHelpers;
import org.apache.gravitino.connector.CatalogOperations;
import org.apache.gravitino.connector.HasPropertyMetadata;
import org.apache.gravitino.connector.PropertiesMetadata;
-import org.apache.gravitino.iceberg.common.ops.IcebergTableOps;
+import org.apache.gravitino.iceberg.common.ops.IcebergCatalogWrapper;
import org.apache.gravitino.meta.AuditInfo;
import org.apache.gravitino.meta.CatalogEntity;
import org.apache.iceberg.rest.responses.ListNamespacesResponse;
@@ -87,10 +87,10 @@ public class TestIcebergCatalog {
CatalogOperations catalogOperations = icebergCatalog.ops();
Assertions.assertTrue(catalogOperations instanceof
IcebergCatalogOperations);
- IcebergTableOps icebergTableOps =
- ((IcebergCatalogOperations) catalogOperations).icebergTableOps;
+ IcebergCatalogWrapper icebergCatalogWrapper =
+ ((IcebergCatalogOperations) catalogOperations).icebergCatalogWrapper;
ListNamespacesResponse listNamespacesResponse =
-
icebergTableOps.listNamespace(org.apache.iceberg.catalog.Namespace.empty());
+
icebergCatalogWrapper.listNamespace(org.apache.iceberg.catalog.Namespace.empty());
Assertions.assertTrue(listNamespacesResponse.namespaces().isEmpty());
}
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 415c86d3c..4a829b3bc 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
@@ -49,7 +49,7 @@ import org.apache.gravitino.SupportsSchemas;
import org.apache.gravitino.auth.AuthConstants;
import
org.apache.gravitino.catalog.lakehouse.iceberg.IcebergSchemaPropertiesMetadata;
import org.apache.gravitino.catalog.lakehouse.iceberg.IcebergTable;
-import
org.apache.gravitino.catalog.lakehouse.iceberg.ops.IcebergTableOpsHelper;
+import
org.apache.gravitino.catalog.lakehouse.iceberg.ops.IcebergCatalogWrapperHelper;
import org.apache.gravitino.client.GravitinoMetalake;
import org.apache.gravitino.dto.util.DTOConverters;
import org.apache.gravitino.exceptions.NoSuchSchemaException;
@@ -284,7 +284,7 @@ public abstract class CatalogIcebergBaseIT extends
AbstractIT {
Assertions.assertTrue(schemaNames.contains(schemaName));
List<org.apache.iceberg.catalog.Namespace> icebergNamespaces =
-
icebergSupportsNamespaces.listNamespaces(IcebergTableOpsHelper.getIcebergNamespace());
+
icebergSupportsNamespaces.listNamespaces(IcebergCatalogWrapperHelper.getIcebergNamespace());
schemaNames =
icebergNamespaces.stream().map(ns -> ns.level(ns.length() -
1)).collect(Collectors.toSet());
Assertions.assertTrue(schemaNames.contains(schemaName));
@@ -298,7 +298,7 @@ public abstract class CatalogIcebergBaseIT extends
AbstractIT {
Assertions.assertTrue(schemaNames.contains(testSchemaName));
icebergNamespaces =
-
icebergSupportsNamespaces.listNamespaces(IcebergTableOpsHelper.getIcebergNamespace());
+
icebergSupportsNamespaces.listNamespaces(IcebergCatalogWrapperHelper.getIcebergNamespace());
schemaNames =
icebergNamespaces.stream().map(ns -> ns.level(ns.length() -
1)).collect(Collectors.toSet());
Assertions.assertTrue(schemaNames.contains(testSchemaName));
@@ -311,7 +311,7 @@ public abstract class CatalogIcebergBaseIT extends
AbstractIT {
Map<String, String> hiveCatalogProps =
icebergSupportsNamespaces.loadNamespaceMetadata(
- IcebergTableOpsHelper.getIcebergNamespace(schemaIdent.name()));
+
IcebergCatalogWrapperHelper.getIcebergNamespace(schemaIdent.name()));
Assertions.assertTrue(hiveCatalogProps.containsKey("t1"));
Map<String, String> emptyMap = Collections.emptyMap();
@@ -324,7 +324,7 @@ public abstract class CatalogIcebergBaseIT extends
AbstractIT {
Assertions.assertThrows(
NoSuchSchemaException.class, () ->
schemas.loadSchema(schemaIdent.name()));
org.apache.iceberg.catalog.Namespace icebergNamespace =
- IcebergTableOpsHelper.getIcebergNamespace(schemaIdent.name());
+ IcebergCatalogWrapperHelper.getIcebergNamespace(schemaIdent.name());
Assertions.assertThrows(
NoSuchNamespaceException.class,
() -> {
@@ -359,7 +359,7 @@ public abstract class CatalogIcebergBaseIT extends
AbstractIT {
Assertions.assertFalse(schemas.dropSchema(schemaIdent.name(), false));
Assertions.assertFalse(tableCatalog.dropTable(table));
icebergNamespaces =
-
icebergSupportsNamespaces.listNamespaces(IcebergTableOpsHelper.getIcebergNamespace());
+
icebergSupportsNamespaces.listNamespaces(IcebergCatalogWrapperHelper.getIcebergNamespace());
schemaNames =
icebergNamespaces.stream().map(ns -> ns.level(ns.length() -
1)).collect(Collectors.toSet());
Assertions.assertTrue(schemaNames.contains(schemaName));
@@ -442,7 +442,7 @@ public abstract class CatalogIcebergBaseIT extends
AbstractIT {
// catalog load check
org.apache.iceberg.Table table =
icebergCatalog.loadTable(
-
IcebergTableOpsHelper.buildIcebergTableIdentifier(tableIdentifier));
+
IcebergCatalogWrapperHelper.buildIcebergTableIdentifier(tableIdentifier));
Assertions.assertEquals(tableName,
table.name().substring(table.name().lastIndexOf(".") + 1));
Assertions.assertEquals(
table_comment,
table.properties().get(IcebergTable.ICEBERG_COMMENT_FIELD_NAME));
@@ -514,7 +514,7 @@ public abstract class CatalogIcebergBaseIT extends
AbstractIT {
org.apache.iceberg.Table table =
icebergCatalog.loadTable(
-
IcebergTableOpsHelper.buildIcebergTableIdentifier(tableIdentifier));
+
IcebergCatalogWrapperHelper.buildIcebergTableIdentifier(tableIdentifier));
org.apache.iceberg.Schema icebergSchema = table.schema();
Assertions.assertEquals("iceberg_column_1",
icebergSchema.columns().get(0).name());
Assertions.assertEquals(
@@ -550,7 +550,7 @@ public abstract class CatalogIcebergBaseIT extends
AbstractIT {
Assertions.assertEquals("table_1", nameIdentifiers[0].name());
List<TableIdentifier> tableIdentifiers =
-
icebergCatalog.listTables(IcebergTableOpsHelper.getIcebergNamespace(schemaName));
+
icebergCatalog.listTables(IcebergCatalogWrapperHelper.getIcebergNamespace(schemaName));
Assertions.assertEquals(1, tableIdentifiers.size());
Assertions.assertEquals("table_1", tableIdentifiers.get(0).name());
@@ -569,7 +569,7 @@ public abstract class CatalogIcebergBaseIT extends
AbstractIT {
Assertions.assertEquals("table_2", nameIdentifiers[1].name());
tableIdentifiers =
-
icebergCatalog.listTables(IcebergTableOpsHelper.getIcebergNamespace(schemaName));
+
icebergCatalog.listTables(IcebergCatalogWrapperHelper.getIcebergNamespace(schemaName));
Assertions.assertEquals(2, tableIdentifiers.size());
Assertions.assertEquals("table_1", tableIdentifiers.get(0).name());
Assertions.assertEquals("table_2", tableIdentifiers.get(1).name());
@@ -585,7 +585,7 @@ public abstract class CatalogIcebergBaseIT extends
AbstractIT {
Assertions.assertEquals(0, nameIdentifiers.length);
tableIdentifiers =
-
icebergCatalog.listTables(IcebergTableOpsHelper.getIcebergNamespace(schemaName));
+
icebergCatalog.listTables(IcebergCatalogWrapperHelper.getIcebergNamespace(schemaName));
Assertions.assertEquals(0, tableIdentifiers.size());
}
diff --git
a/catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/ops/TestIcebergTableUpdate.java
b/catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/ops/TestIcebergTableUpdate.java
index f8d771da2..c4bac4df1 100644
---
a/catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/ops/TestIcebergTableUpdate.java
+++
b/catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/ops/TestIcebergTableUpdate.java
@@ -21,8 +21,8 @@ package org.apache.gravitino.catalog.lakehouse.iceberg.ops;
import java.util.List;
import java.util.stream.Collectors;
import org.apache.gravitino.NameIdentifier;
-import org.apache.gravitino.iceberg.common.ops.IcebergTableOps;
-import
org.apache.gravitino.iceberg.common.ops.IcebergTableOps.IcebergTableChange;
+import org.apache.gravitino.iceberg.common.ops.IcebergCatalogWrapper;
+import
org.apache.gravitino.iceberg.common.ops.IcebergCatalogWrapper.IcebergTableChange;
import org.apache.gravitino.rel.TableChange;
import org.apache.gravitino.rel.TableChange.ColumnPosition;
import org.apache.gravitino.rel.types.Types;
@@ -44,8 +44,8 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
public class TestIcebergTableUpdate {
- private IcebergTableOps icebergTableOps = null;
- private IcebergTableOpsHelper icebergTableOpsHelper = null;
+ private IcebergCatalogWrapper icebergCatalogWrapper = null;
+ private IcebergCatalogWrapperHelper icebergCatalogWrapperHelper = null;
private static final String TEST_NAMESPACE_NAME = "gravitino_test_namespace";
private static final String TEST_TABLE_NAME = "gravitino_test_table";
@@ -79,8 +79,9 @@ public class TestIcebergTableUpdate {
@BeforeEach
public void init() {
- icebergTableOps = new IcebergTableOps();
- icebergTableOpsHelper = new
IcebergTableOpsHelper(icebergTableOps.getCatalog());
+ icebergCatalogWrapper = new IcebergCatalogWrapper();
+ icebergCatalogWrapperHelper =
+ new IcebergCatalogWrapperHelper(icebergCatalogWrapper.getCatalog());
createNamespace(TEST_NAMESPACE_NAME);
createTable(TEST_NAMESPACE_NAME, TEST_TABLE_NAME);
}
@@ -88,21 +89,22 @@ public class TestIcebergTableUpdate {
public LoadTableResponse updateTable(
NameIdentifier gravitinoNameIdentifier, TableChange...
gravitinoTableChanges) {
IcebergTableChange icebergTableChange =
- icebergTableOpsHelper.buildIcebergTableChanges(
+ icebergCatalogWrapperHelper.buildIcebergTableChanges(
gravitinoNameIdentifier, gravitinoTableChanges);
- return icebergTableOps.updateTable(icebergTableChange);
+ return icebergCatalogWrapper.updateTable(icebergTableChange);
}
private void createNamespace(String namespace) {
- icebergTableOps.createNamespace(
+ icebergCatalogWrapper.createNamespace(
CreateNamespaceRequest.builder().withNamespace(Namespace.of(namespace)).build());
}
private void createTable(String namespace, String tableName) {
CreateTableRequest createTableRequest =
CreateTableRequest.builder().withName(tableName).withSchema(tableSchema).build();
- icebergTableOps.createTable(Namespace.of(namespace), createTableRequest);
-
Assertions.assertTrue(icebergTableOps.tableExists(TableIdentifier.of(namespace,
tableName)));
+ icebergCatalogWrapper.createTable(Namespace.of(namespace),
createTableRequest);
+ Assertions.assertTrue(
+ icebergCatalogWrapper.tableExists(TableIdentifier.of(namespace,
tableName)));
}
@Test
@@ -119,7 +121,7 @@ public class TestIcebergTableUpdate {
String testPropertyKey = "test_property_key";
String testPropertyValue = "test_property_value";
String testPropertyNewValue = "test_property_new_value";
- LoadTableResponse loadTableResponse =
icebergTableOps.loadTable(icebergIdentifier);
+ LoadTableResponse loadTableResponse =
icebergCatalogWrapper.loadTable(icebergIdentifier);
Assertions.assertFalse(
loadTableResponse.tableMetadata().properties().containsKey(testPropertyKey));
@@ -141,7 +143,7 @@ public class TestIcebergTableUpdate {
Assertions.assertFalse(
loadTableResponse.tableMetadata().properties().containsKey(testPropertyKey));
- IcebergTableOpsHelper.getIcebergReservedProperties().stream()
+ IcebergCatalogWrapperHelper.getIcebergReservedProperties().stream()
.forEach(
property -> {
TableChange setProperty1 = TableChange.setProperty(property,
"test_v");
@@ -149,7 +151,7 @@ public class TestIcebergTableUpdate {
IllegalArgumentException.class, () ->
updateTable(identifier, setProperty1));
});
- IcebergTableOpsHelper.getIcebergReservedProperties().stream()
+ IcebergCatalogWrapperHelper.getIcebergReservedProperties().stream()
.forEach(
property -> {
TableChange removeProperty1 =
TableChange.removeProperty(property);
@@ -208,7 +210,7 @@ public class TestIcebergTableUpdate {
loadTableResponse
.tableMetadata()
.schema()
- .findType(IcebergTableOpsHelper.DOT.join(fourthField[0],
"element"));
+ .findType(IcebergCatalogWrapperHelper.DOT.join(fourthField[0],
"element"));
Assertions.assertEquals("struct_after", t.fields().get(1).name());
// add to struct first
@@ -224,7 +226,7 @@ public class TestIcebergTableUpdate {
loadTableResponse
.tableMetadata()
.schema()
- .findType(IcebergTableOpsHelper.DOT.join(fourthField[0],
"element"));
+ .findType(IcebergCatalogWrapperHelper.DOT.join(fourthField[0],
"element"));
Assertions.assertEquals("struct_first", t.fields().get(0).name());
// add to struct last
@@ -237,7 +239,7 @@ public class TestIcebergTableUpdate {
loadTableResponse
.tableMetadata()
.schema()
- .findType(IcebergTableOpsHelper.DOT.join(fourthField[0],
"element"));
+ .findType(IcebergCatalogWrapperHelper.DOT.join(fourthField[0],
"element"));
Assertions.assertEquals("struct_last", t.fields().get(t.fields().size() -
1).name());
// add column exists
@@ -286,7 +288,7 @@ public class TestIcebergTableUpdate {
loadTableResponse = updateTable(identifier, deleteColumn);
Schema schema = loadTableResponse.tableMetadata().schema();
Assertions.assertTrue(
- schema.findType(IcebergTableOpsHelper.DOT.join(deleteColumnArray)) ==
null);
+
schema.findType(IcebergCatalogWrapperHelper.DOT.join(deleteColumnArray)) ==
null);
deleteColumn = TableChange.deleteColumn(notExistField, true);
// no exception
@@ -341,7 +343,7 @@ public class TestIcebergTableUpdate {
loadTableResponse
.tableMetadata()
.schema()
- .findType(IcebergTableOpsHelper.DOT.join(fourthField[0],
"element"));
+ .findType(IcebergCatalogWrapperHelper.DOT.join(fourthField[0],
"element"));
Assertions.assertEquals(LongType.get(), t.fields().get(0).type());
TableChange updateColumnType2 =
@@ -368,7 +370,7 @@ public class TestIcebergTableUpdate {
loadTableResponse
.tableMetadata()
.schema()
- .findType(IcebergTableOpsHelper.DOT.join(fourthField[0],
"element"));
+ .findType(IcebergCatalogWrapperHelper.DOT.join(fourthField[0],
"element"));
Assertions.assertEquals(newColumnName, t.fields().get(0).name());
TableChange renameColumn2 = TableChange.renameColumn(notExistField,
newColumnName);
@@ -414,7 +416,7 @@ public class TestIcebergTableUpdate {
loadTableResponse
.tableMetadata()
.schema()
- .findType(IcebergTableOpsHelper.DOT.join(fourthField[0],
"element"));
+ .findType(IcebergCatalogWrapperHelper.DOT.join(fourthField[0],
"element"));
Assertions.assertEquals("struct_map", structType.fields().get(0).name());
Assertions.assertEquals("struct_int", structType.fields().get(1).name());
@@ -428,7 +430,7 @@ public class TestIcebergTableUpdate {
loadTableResponse
.tableMetadata()
.schema()
- .findType(IcebergTableOpsHelper.DOT.join(fourthField[0],
"element"));
+ .findType(IcebergCatalogWrapperHelper.DOT.join(fourthField[0],
"element"));
Assertions.assertEquals("struct_int", structType.fields().get(0).name());
Assertions.assertEquals("struct_map", structType.fields().get(1).name());
@@ -473,15 +475,17 @@ public class TestIcebergTableUpdate {
@Test
void testGetFieldName() {
- Assertions.assertEquals(null, IcebergTableOpsHelper.getParentName(new
String[] {"a"}));
+ Assertions.assertEquals(null,
IcebergCatalogWrapperHelper.getParentName(new String[] {"a"}));
Assertions.assertEquals(
- "a.b", IcebergTableOpsHelper.getParentName(new String[] {"a", "b",
"c"}));
+ "a.b", IcebergCatalogWrapperHelper.getParentName(new String[] {"a",
"b", "c"}));
- Assertions.assertEquals("a", IcebergTableOpsHelper.getLeafName(new
String[] {"a"}));
- Assertions.assertEquals("c", IcebergTableOpsHelper.getLeafName(new
String[] {"a", "b", "c"}));
+ Assertions.assertEquals("a", IcebergCatalogWrapperHelper.getLeafName(new
String[] {"a"}));
+ Assertions.assertEquals(
+ "c", IcebergCatalogWrapperHelper.getLeafName(new String[] {"a", "b",
"c"}));
- Assertions.assertEquals("p", IcebergTableOpsHelper.getSiblingName(new
String[] {"a"}, "p"));
Assertions.assertEquals(
- "a.b.p", IcebergTableOpsHelper.getSiblingName(new String[] {"a", "b",
"c"}, "p"));
+ "p", IcebergCatalogWrapperHelper.getSiblingName(new String[] {"a"},
"p"));
+ Assertions.assertEquals(
+ "a.b.p", IcebergCatalogWrapperHelper.getSiblingName(new String[] {"a",
"b", "c"}, "p"));
}
}
diff --git
a/iceberg/iceberg-common/src/main/java/org/apache/gravitino/iceberg/common/IcebergConfig.java
b/iceberg/iceberg-common/src/main/java/org/apache/gravitino/iceberg/common/IcebergConfig.java
index 97f91d210..805be399a 100644
---
a/iceberg/iceberg-common/src/main/java/org/apache/gravitino/iceberg/common/IcebergConfig.java
+++
b/iceberg/iceberg-common/src/main/java/org/apache/gravitino/iceberg/common/IcebergConfig.java
@@ -201,7 +201,7 @@ public class IcebergConfig extends Config implements
OverwriteDefaultConfig {
public static final ConfigEntry<String> ICEBERG_REST_CATALOG_PROVIDER =
new ConfigBuilder(IcebergConstants.ICEBERG_REST_CATALOG_PROVIDER)
.doc(
- "Catalog provider class name, you can develop a class that
implements `IcebergTableOpsProvider` and add the corresponding jar file to the
Iceberg REST service classpath directory.")
+ "Catalog provider class name, you can develop a class that
implements `IcebergCatalogWrapperProvider` and add the corresponding jar file
to the Iceberg REST service classpath directory.")
.version(ConfigConstants.VERSION_0_7_0)
.stringConf()
.createWithDefault("config-based-provider");
diff --git
a/iceberg/iceberg-common/src/main/java/org/apache/gravitino/iceberg/common/ops/IcebergTableOps.java
b/iceberg/iceberg-common/src/main/java/org/apache/gravitino/iceberg/common/ops/IcebergCatalogWrapper.java
similarity index 98%
rename from
iceberg/iceberg-common/src/main/java/org/apache/gravitino/iceberg/common/ops/IcebergTableOps.java
rename to
iceberg/iceberg-common/src/main/java/org/apache/gravitino/iceberg/common/ops/IcebergCatalogWrapper.java
index aaed61bfd..0c7c2914b 100644
---
a/iceberg/iceberg-common/src/main/java/org/apache/gravitino/iceberg/common/ops/IcebergTableOps.java
+++
b/iceberg/iceberg-common/src/main/java/org/apache/gravitino/iceberg/common/ops/IcebergCatalogWrapper.java
@@ -59,9 +59,9 @@ import
org.apache.iceberg.rest.responses.UpdateNamespacePropertiesResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class IcebergTableOps implements AutoCloseable {
+public class IcebergCatalogWrapper implements AutoCloseable {
- public static final Logger LOG =
LoggerFactory.getLogger(IcebergTableOps.class);
+ public static final Logger LOG =
LoggerFactory.getLogger(IcebergCatalogWrapper.class);
@Getter protected Catalog catalog;
private SupportsNamespaces asNamespaceCatalog;
@@ -80,7 +80,7 @@ public class IcebergTableOps implements AutoCloseable {
IcebergConstants.ICEBERG_OSS_ACCESS_KEY_ID,
IcebergConstants.ICEBERG_OSS_ACCESS_KEY_SECRET);
- public IcebergTableOps(IcebergConfig icebergConfig) {
+ public IcebergCatalogWrapper(IcebergConfig icebergConfig) {
this.catalogBackend =
IcebergCatalogBackend.valueOf(
icebergConfig.get(IcebergConfig.CATALOG_BACKEND).toUpperCase(Locale.ROOT));
@@ -101,7 +101,7 @@ public class IcebergTableOps implements AutoCloseable {
this.catalogPropertiesMap = icebergConfig.getIcebergCatalogProperties();
}
- public IcebergTableOps() {
+ public IcebergCatalogWrapper() {
this(new IcebergConfig(Collections.emptyMap()));
}
diff --git
a/iceberg/iceberg-common/src/main/java/org/apache/gravitino/iceberg/common/ops/IcebergTableOpsProvider.java
b/iceberg/iceberg-common/src/main/java/org/apache/gravitino/iceberg/common/ops/IcebergCatalogWrapperProvider.java
similarity index 80%
rename from
iceberg/iceberg-common/src/main/java/org/apache/gravitino/iceberg/common/ops/IcebergTableOpsProvider.java
rename to
iceberg/iceberg-common/src/main/java/org/apache/gravitino/iceberg/common/ops/IcebergCatalogWrapperProvider.java
index cda5ac20a..758aa46aa 100644
---
a/iceberg/iceberg-common/src/main/java/org/apache/gravitino/iceberg/common/ops/IcebergTableOpsProvider.java
+++
b/iceberg/iceberg-common/src/main/java/org/apache/gravitino/iceberg/common/ops/IcebergCatalogWrapperProvider.java
@@ -21,10 +21,10 @@ package org.apache.gravitino.iceberg.common.ops;
import java.util.Map;
/**
- * IcebergTableOpsProvider is an interface defining how Iceberg REST catalog
server gets Iceberg
- * catalogs.
+ * IcebergCatalogWrapperProvider is an interface defining how Iceberg REST
catalog server gets
+ * Iceberg catalogs.
*/
-public interface IcebergTableOpsProvider {
+public interface IcebergCatalogWrapperProvider {
/**
* @param properties The parameters for creating Provider which from
configurations whose prefix
@@ -34,7 +34,7 @@ public interface IcebergTableOpsProvider {
/**
* @param catalogName a param send by clients.
- * @return the instance of IcebergTableOps.
+ * @return the instance of IcebergCatalogWrapper.
*/
- IcebergTableOps getIcebergTableOps(String catalogName);
+ IcebergCatalogWrapper getIcebergTableOps(String catalogName);
}
diff --git
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/RESTService.java
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/RESTService.java
index d791a6a1c..027b2614d 100644
---
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/RESTService.java
+++
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/RESTService.java
@@ -23,9 +23,9 @@ import javax.servlet.Servlet;
import org.apache.gravitino.GravitinoEnv;
import org.apache.gravitino.auxiliary.GravitinoAuxiliaryService;
import org.apache.gravitino.iceberg.common.IcebergConfig;
+import org.apache.gravitino.iceberg.service.IcebergCatalogWrapperManager;
import org.apache.gravitino.iceberg.service.IcebergExceptionMapper;
import org.apache.gravitino.iceberg.service.IcebergObjectMapperProvider;
-import org.apache.gravitino.iceberg.service.IcebergTableOpsManager;
import org.apache.gravitino.iceberg.service.metrics.IcebergMetricsManager;
import org.apache.gravitino.metrics.MetricsSystem;
import org.apache.gravitino.metrics.source.MetricsSource;
@@ -48,7 +48,7 @@ public class RESTService implements GravitinoAuxiliaryService
{
public static final String SERVICE_NAME = "iceberg-rest";
public static final String ICEBERG_SPEC = "/iceberg/*";
- private IcebergTableOpsManager icebergTableOpsManager;
+ private IcebergCatalogWrapperManager icebergCatalogWrapperManager;
private IcebergMetricsManager icebergMetricsManager;
private void initServer(IcebergConfig icebergConfig) {
@@ -66,13 +66,13 @@ public class RESTService implements
GravitinoAuxiliaryService {
new
HttpServerMetricsSource(MetricsSource.ICEBERG_REST_SERVER_METRIC_NAME, config,
server);
metricsSystem.register(httpServerMetricsSource);
- icebergTableOpsManager = new
IcebergTableOpsManager(icebergConfig.getAllConfig());
+ icebergCatalogWrapperManager = new
IcebergCatalogWrapperManager(icebergConfig.getAllConfig());
icebergMetricsManager = new IcebergMetricsManager(icebergConfig);
config.register(
new AbstractBinder() {
@Override
protected void configure() {
-
bind(icebergTableOpsManager).to(IcebergTableOpsManager.class).ranked(1);
+
bind(icebergCatalogWrapperManager).to(IcebergCatalogWrapperManager.class).ranked(1);
bind(icebergMetricsManager).to(IcebergMetricsManager.class).ranked(1);
}
});
@@ -114,8 +114,8 @@ public class RESTService implements
GravitinoAuxiliaryService {
server.stop();
LOG.info("Iceberg REST service stopped");
}
- if (icebergTableOpsManager != null) {
- icebergTableOpsManager.close();
+ if (icebergCatalogWrapperManager != null) {
+ icebergCatalogWrapperManager.close();
}
if (icebergMetricsManager != null) {
icebergMetricsManager.close();
diff --git
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/provider/ConfigBasedIcebergTableOpsProvider.java
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/provider/ConfigBasedIcebergCatalogWrapperProvider.java
similarity index 88%
rename from
iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/provider/ConfigBasedIcebergTableOpsProvider.java
rename to
iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/provider/ConfigBasedIcebergCatalogWrapperProvider.java
index 2cbf2af2c..522bca39f 100644
---
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/provider/ConfigBasedIcebergTableOpsProvider.java
+++
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/provider/ConfigBasedIcebergCatalogWrapperProvider.java
@@ -24,8 +24,8 @@ import java.util.Optional;
import java.util.stream.Collectors;
import org.apache.gravitino.catalog.lakehouse.iceberg.IcebergConstants;
import org.apache.gravitino.iceberg.common.IcebergConfig;
-import org.apache.gravitino.iceberg.common.ops.IcebergTableOps;
-import org.apache.gravitino.iceberg.common.ops.IcebergTableOpsProvider;
+import org.apache.gravitino.iceberg.common.ops.IcebergCatalogWrapper;
+import org.apache.gravitino.iceberg.common.ops.IcebergCatalogWrapperProvider;
import org.apache.gravitino.utils.MapUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -40,9 +40,9 @@ import org.slf4j.LoggerFactory;
* gravitino.iceberg-rest.catalog.hive_proxy.catalog-backend = hive
* gravitino.iceberg-rest.catalog.hive_proxy.uri = thrift://{host}:{port} ...
*/
-public class ConfigBasedIcebergTableOpsProvider implements
IcebergTableOpsProvider {
+public class ConfigBasedIcebergCatalogWrapperProvider implements
IcebergCatalogWrapperProvider {
public static final Logger LOG =
- LoggerFactory.getLogger(ConfigBasedIcebergTableOpsProvider.class);
+ LoggerFactory.getLogger(ConfigBasedIcebergCatalogWrapperProvider.class);
public static final String CONFIG_BASE_ICEBERG_TABLE_OPS_PROVIDER_NAME =
"config-based-provider";
@@ -68,14 +68,14 @@ public class ConfigBasedIcebergTableOpsProvider implements
IcebergTableOpsProvid
}
@Override
- public IcebergTableOps getIcebergTableOps(String catalogName) {
+ public IcebergCatalogWrapper getIcebergTableOps(String catalogName) {
IcebergConfig icebergConfig = this.catalogConfigs.get(catalogName);
if (icebergConfig == null) {
String errorMsg = String.format("%s can not match any catalog",
catalogName);
LOG.warn(errorMsg);
throw new RuntimeException(errorMsg);
}
- return new IcebergTableOps(icebergConfig);
+ return new IcebergCatalogWrapper(icebergConfig);
}
private Optional<String> getCatalogName(String catalogConfigKey) {
diff --git
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/provider/GravitinoBasedIcebergTableOpsProvider.java
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/provider/GravitinoBasedIcebergCatalogWrapperProvider.java
similarity index 87%
rename from
iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/provider/GravitinoBasedIcebergTableOpsProvider.java
rename to
iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/provider/GravitinoBasedIcebergCatalogWrapperProvider.java
index a09abbb1a..a38fd9cf3 100644
---
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/provider/GravitinoBasedIcebergTableOpsProvider.java
+++
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/provider/GravitinoBasedIcebergCatalogWrapperProvider.java
@@ -27,8 +27,8 @@ import
org.apache.gravitino.catalog.lakehouse.iceberg.IcebergConstants;
import org.apache.gravitino.catalog.lakehouse.iceberg.IcebergPropertiesUtils;
import org.apache.gravitino.client.GravitinoAdminClient;
import org.apache.gravitino.iceberg.common.IcebergConfig;
-import org.apache.gravitino.iceberg.common.ops.IcebergTableOps;
-import org.apache.gravitino.iceberg.common.ops.IcebergTableOpsProvider;
+import org.apache.gravitino.iceberg.common.ops.IcebergCatalogWrapper;
+import org.apache.gravitino.iceberg.common.ops.IcebergCatalogWrapperProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -39,10 +39,10 @@ import org.slf4j.LoggerFactory;
*
* <p>The catalogName is iceberg_catalog
*/
-public class GravitinoBasedIcebergTableOpsProvider
- implements IcebergTableOpsProvider, AutoCloseable {
+public class GravitinoBasedIcebergCatalogWrapperProvider
+ implements IcebergCatalogWrapperProvider, AutoCloseable {
public static final Logger LOG =
- LoggerFactory.getLogger(GravitinoBasedIcebergTableOpsProvider.class);
+
LoggerFactory.getLogger(GravitinoBasedIcebergCatalogWrapperProvider.class);
public static final String GRAVITINO_BASE_ICEBERG_TABLE_OPS_PROVIDER_NAME =
"gravitino-based-provider";
@@ -66,7 +66,7 @@ public class GravitinoBasedIcebergTableOpsProvider
}
@Override
- public IcebergTableOps getIcebergTableOps(String catalogName) {
+ public IcebergCatalogWrapper getIcebergTableOps(String catalogName) {
Preconditions.checkArgument(
StringUtils.isNotBlank(catalogName), "blank catalogName is illegal");
Preconditions.checkArgument(
@@ -81,7 +81,7 @@ public class GravitinoBasedIcebergTableOpsProvider
Map<String, String> properties =
IcebergPropertiesUtils.toIcebergCatalogProperties(catalog.properties());
- return new IcebergTableOps(new IcebergConfig(properties));
+ return new IcebergCatalogWrapper(new IcebergConfig(properties));
}
@VisibleForTesting
diff --git
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/IcebergTableOpsManager.java
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/IcebergCatalogWrapperManager.java
similarity index 76%
rename from
iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/IcebergTableOpsManager.java
rename to
iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/IcebergCatalogWrapperManager.java
index 906bb5b26..17342acf7 100644
---
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/IcebergTableOpsManager.java
+++
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/IcebergCatalogWrapperManager.java
@@ -30,28 +30,29 @@ import java.util.concurrent.TimeUnit;
import org.apache.commons.lang3.StringUtils;
import org.apache.gravitino.catalog.lakehouse.iceberg.IcebergConstants;
import org.apache.gravitino.iceberg.common.IcebergConfig;
-import org.apache.gravitino.iceberg.common.ops.IcebergTableOps;
-import org.apache.gravitino.iceberg.common.ops.IcebergTableOpsProvider;
-import
org.apache.gravitino.iceberg.provider.ConfigBasedIcebergTableOpsProvider;
-import
org.apache.gravitino.iceberg.provider.GravitinoBasedIcebergTableOpsProvider;
+import org.apache.gravitino.iceberg.common.ops.IcebergCatalogWrapper;
+import org.apache.gravitino.iceberg.common.ops.IcebergCatalogWrapperProvider;
+import
org.apache.gravitino.iceberg.provider.ConfigBasedIcebergCatalogWrapperProvider;
+import
org.apache.gravitino.iceberg.provider.GravitinoBasedIcebergCatalogWrapperProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class IcebergTableOpsManager implements AutoCloseable {
- public static final Logger LOG =
LoggerFactory.getLogger(IcebergTableOpsManager.class);
+public class IcebergCatalogWrapperManager implements AutoCloseable {
+ public static final Logger LOG =
LoggerFactory.getLogger(IcebergCatalogWrapperManager.class);
private static final ImmutableMap<String, String>
ICEBERG_TABLE_OPS_PROVIDER_NAMES =
ImmutableMap.of(
-
ConfigBasedIcebergTableOpsProvider.CONFIG_BASE_ICEBERG_TABLE_OPS_PROVIDER_NAME,
- ConfigBasedIcebergTableOpsProvider.class.getCanonicalName(),
-
GravitinoBasedIcebergTableOpsProvider.GRAVITINO_BASE_ICEBERG_TABLE_OPS_PROVIDER_NAME,
- GravitinoBasedIcebergTableOpsProvider.class.getCanonicalName());
+
ConfigBasedIcebergCatalogWrapperProvider.CONFIG_BASE_ICEBERG_TABLE_OPS_PROVIDER_NAME,
+ ConfigBasedIcebergCatalogWrapperProvider.class.getCanonicalName(),
+ GravitinoBasedIcebergCatalogWrapperProvider
+ .GRAVITINO_BASE_ICEBERG_TABLE_OPS_PROVIDER_NAME,
+
GravitinoBasedIcebergCatalogWrapperProvider.class.getCanonicalName());
- private final Cache<String, IcebergTableOps> icebergTableOpsCache;
+ private final Cache<String, IcebergCatalogWrapper> icebergTableOpsCache;
- private final IcebergTableOpsProvider provider;
+ private final IcebergCatalogWrapperProvider provider;
- public IcebergTableOpsManager(Map<String, String> properties) {
+ public IcebergCatalogWrapperManager(Map<String, String> properties) {
this.provider = createProvider(properties);
this.provider.initialize(properties);
this.icebergTableOpsCache =
@@ -62,8 +63,8 @@ public class IcebergTableOpsManager implements AutoCloseable {
TimeUnit.MILLISECONDS)
.removalListener(
(k, v, c) -> {
- LOG.info("Remove IcebergTableOps cache {}.", k);
- closeIcebergTableOps((IcebergTableOps) v);
+ LOG.info("Remove IcebergCatalogWrapper cache {}.", k);
+ closeIcebergTableOps((IcebergCatalogWrapper) v);
})
.scheduler(
Scheduler.forScheduledExecutorService(
@@ -79,11 +80,11 @@ public class IcebergTableOpsManager implements
AutoCloseable {
/**
* @param rawPrefix The path parameter is passed by a Jetty handler. The
pattern is matching
* ([^/]*\/), end with /
- * @return the instance of IcebergTableOps.
+ * @return the instance of IcebergCatalogWrapper.
*/
- public IcebergTableOps getOps(String rawPrefix) {
+ public IcebergCatalogWrapper getOps(String rawPrefix) {
String catalogName = getCatalogName(rawPrefix);
- IcebergTableOps tableOps =
+ IcebergCatalogWrapper tableOps =
icebergTableOpsCache.get(catalogName, k ->
provider.getIcebergTableOps(catalogName));
// Reload conf to reset UserGroupInformation or icebergTableOps will
always use
// Simple auth.
@@ -102,14 +103,14 @@ public class IcebergTableOpsManager implements
AutoCloseable {
return prefix;
}
- private IcebergTableOpsProvider createProvider(Map<String, String>
properties) {
+ private IcebergCatalogWrapperProvider createProvider(Map<String, String>
properties) {
String providerName =
(new
IcebergConfig(properties)).get(IcebergConfig.ICEBERG_REST_CATALOG_PROVIDER);
String className =
ICEBERG_TABLE_OPS_PROVIDER_NAMES.getOrDefault(providerName, providerName);
LOG.info("Load Iceberg catalog provider: {}.", className);
try {
Class<?> providerClz = Class.forName(className);
- return (IcebergTableOpsProvider)
providerClz.getDeclaredConstructor().newInstance();
+ return (IcebergCatalogWrapperProvider)
providerClz.getDeclaredConstructor().newInstance();
} catch (Exception e) {
throw new RuntimeException(e);
}
@@ -126,7 +127,7 @@ public class IcebergTableOpsManager implements
AutoCloseable {
}
}
- private void closeIcebergTableOps(IcebergTableOps ops) {
+ private void closeIcebergTableOps(IcebergCatalogWrapper ops) {
try {
ops.close();
} catch (Exception ex) {
diff --git
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/metrics/IcebergMetricsManager.java
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/metrics/IcebergMetricsManager.java
index b50da0ca1..42bd86512 100644
---
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/metrics/IcebergMetricsManager.java
+++
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/metrics/IcebergMetricsManager.java
@@ -30,14 +30,14 @@ import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import org.apache.gravitino.iceberg.common.IcebergConfig;
-import org.apache.gravitino.iceberg.common.ops.IcebergTableOps;
+import org.apache.gravitino.iceberg.common.ops.IcebergCatalogWrapper;
import org.apache.gravitino.iceberg.service.IcebergRestUtils;
import org.apache.iceberg.metrics.MetricsReport;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class IcebergMetricsManager {
- private static final Logger LOG =
LoggerFactory.getLogger(IcebergTableOps.class);
+ private static final Logger LOG =
LoggerFactory.getLogger(IcebergCatalogWrapper.class);
// Register IcebergMetricsStore's short name to its full qualified class
name in the map. So
// that user doesn't need to specify the full qualified class name when
creating an
diff --git
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/rest/IcebergNamespaceOperations.java
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/rest/IcebergNamespaceOperations.java
index c9fd7a5c0..831a9b907 100644
---
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/rest/IcebergNamespaceOperations.java
+++
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/rest/IcebergNamespaceOperations.java
@@ -34,8 +34,8 @@ import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
+import org.apache.gravitino.iceberg.service.IcebergCatalogWrapperManager;
import org.apache.gravitino.iceberg.service.IcebergRestUtils;
-import org.apache.gravitino.iceberg.service.IcebergTableOpsManager;
import org.apache.gravitino.metrics.MetricNames;
import org.apache.iceberg.catalog.Namespace;
import org.apache.iceberg.rest.RESTUtil;
@@ -57,15 +57,15 @@ public class IcebergNamespaceOperations {
private static final Logger LOG =
LoggerFactory.getLogger(IcebergNamespaceOperations.class);
- private IcebergTableOpsManager icebergTableOpsManager;
+ private IcebergCatalogWrapperManager icebergCatalogWrapperManager;
@SuppressWarnings("UnusedVariable")
@Context
private HttpServletRequest httpRequest;
@Inject
- public IcebergNamespaceOperations(IcebergTableOpsManager
icebergTableOpsManager) {
- this.icebergTableOpsManager = icebergTableOpsManager;
+ public IcebergNamespaceOperations(IcebergCatalogWrapperManager
icebergCatalogWrapperManager) {
+ this.icebergCatalogWrapperManager = icebergCatalogWrapperManager;
}
@GET
@@ -77,7 +77,7 @@ public class IcebergNamespaceOperations {
Namespace parentNamespace =
parent.isEmpty() ? Namespace.empty() :
RESTUtil.decodeNamespace(parent);
ListNamespacesResponse response =
- icebergTableOpsManager.getOps(prefix).listNamespace(parentNamespace);
+
icebergCatalogWrapperManager.getOps(prefix).listNamespace(parentNamespace);
return IcebergRestUtils.ok(response);
}
@@ -89,7 +89,9 @@ public class IcebergNamespaceOperations {
public Response loadNamespace(
@PathParam("prefix") String prefix, @PathParam("namespace") String
namespace) {
GetNamespaceResponse getNamespaceResponse =
-
icebergTableOpsManager.getOps(prefix).loadNamespace(RESTUtil.decodeNamespace(namespace));
+ icebergCatalogWrapperManager
+ .getOps(prefix)
+ .loadNamespace(RESTUtil.decodeNamespace(namespace));
return IcebergRestUtils.ok(getNamespaceResponse);
}
@@ -102,7 +104,7 @@ public class IcebergNamespaceOperations {
@PathParam("prefix") String prefix, @PathParam("namespace") String
namespace) {
// todo check if table exists in namespace after table ops is added
LOG.info("Drop Iceberg namespace: {}, prefix: {}", namespace, prefix);
-
icebergTableOpsManager.getOps(prefix).dropNamespace(RESTUtil.decodeNamespace(namespace));
+
icebergCatalogWrapperManager.getOps(prefix).dropNamespace(RESTUtil.decodeNamespace(namespace));
return IcebergRestUtils.noContent();
}
@@ -114,7 +116,7 @@ public class IcebergNamespaceOperations {
@PathParam("prefix") String prefix, CreateNamespaceRequest
namespaceRequest) {
LOG.info("Create Iceberg namespace: {}, prefix: {}", namespaceRequest,
prefix);
CreateNamespaceResponse response =
-
icebergTableOpsManager.getOps(prefix).createNamespace(namespaceRequest);
+
icebergCatalogWrapperManager.getOps(prefix).createNamespace(namespaceRequest);
return IcebergRestUtils.ok(response);
}
@@ -129,7 +131,7 @@ public class IcebergNamespaceOperations {
UpdateNamespacePropertiesRequest request) {
LOG.info("Update Iceberg namespace: {}, request: {}, prefix: {}",
namespace, request, prefix);
UpdateNamespacePropertiesResponse response =
- icebergTableOpsManager
+ icebergCatalogWrapperManager
.getOps(prefix)
.updateNamespaceProperties(RESTUtil.decodeNamespace(namespace),
request);
return IcebergRestUtils.ok(response);
@@ -146,7 +148,7 @@ public class IcebergNamespaceOperations {
RegisterTableRequest request) {
LOG.info("Register table, namespace: {}, request: {}", namespace, request);
LoadTableResponse response =
- icebergTableOpsManager
+ icebergCatalogWrapperManager
.getOps(prefix)
.registerTable(RESTUtil.decodeNamespace(namespace), request);
return IcebergRestUtils.ok(response);
diff --git
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/rest/IcebergTableOperations.java
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/rest/IcebergTableOperations.java
index d028c8d4a..0c383e520 100644
---
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/rest/IcebergTableOperations.java
+++
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/rest/IcebergTableOperations.java
@@ -37,9 +37,9 @@ import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
+import org.apache.gravitino.iceberg.service.IcebergCatalogWrapperManager;
import org.apache.gravitino.iceberg.service.IcebergObjectMapper;
import org.apache.gravitino.iceberg.service.IcebergRestUtils;
-import org.apache.gravitino.iceberg.service.IcebergTableOpsManager;
import org.apache.gravitino.iceberg.service.metrics.IcebergMetricsManager;
import org.apache.gravitino.metrics.MetricNames;
import org.apache.iceberg.catalog.TableIdentifier;
@@ -57,7 +57,7 @@ public class IcebergTableOperations {
private static final Logger LOG =
LoggerFactory.getLogger(IcebergTableOperations.class);
- private IcebergTableOpsManager icebergTableOpsManager;
+ private IcebergCatalogWrapperManager icebergCatalogWrapperManager;
private IcebergMetricsManager icebergMetricsManager;
private ObjectMapper icebergObjectMapper;
@@ -68,8 +68,9 @@ public class IcebergTableOperations {
@Inject
public IcebergTableOperations(
- IcebergTableOpsManager icebergTableOpsManager, IcebergMetricsManager
icebergMetricsManager) {
- this.icebergTableOpsManager = icebergTableOpsManager;
+ IcebergCatalogWrapperManager icebergCatalogWrapperManager,
+ IcebergMetricsManager icebergMetricsManager) {
+ this.icebergCatalogWrapperManager = icebergCatalogWrapperManager;
this.icebergObjectMapper = IcebergObjectMapper.getInstance();
this.icebergMetricsManager = icebergMetricsManager;
}
@@ -81,7 +82,7 @@ public class IcebergTableOperations {
public Response listTable(
@PathParam("prefix") String prefix, @PathParam("namespace") String
namespace) {
return IcebergRestUtils.ok(
-
icebergTableOpsManager.getOps(prefix).listTable(RESTUtil.decodeNamespace(namespace)));
+
icebergCatalogWrapperManager.getOps(prefix).listTable(RESTUtil.decodeNamespace(namespace)));
}
@POST
@@ -97,7 +98,7 @@ public class IcebergTableOperations {
namespace,
createTableRequest);
return IcebergRestUtils.ok(
- icebergTableOpsManager
+ icebergCatalogWrapperManager
.getOps(prefix)
.createTable(RESTUtil.decodeNamespace(namespace),
createTableRequest));
}
@@ -122,7 +123,9 @@ public class IcebergTableOperations {
TableIdentifier tableIdentifier =
TableIdentifier.of(RESTUtil.decodeNamespace(namespace), table);
return IcebergRestUtils.ok(
- icebergTableOpsManager.getOps(prefix).updateTable(tableIdentifier,
updateTableRequest));
+ icebergCatalogWrapperManager
+ .getOps(prefix)
+ .updateTable(tableIdentifier, updateTableRequest));
}
@DELETE
@@ -143,9 +146,9 @@ public class IcebergTableOperations {
TableIdentifier tableIdentifier =
TableIdentifier.of(RESTUtil.decodeNamespace(namespace), table);
if (purgeRequested) {
- icebergTableOpsManager.getOps(prefix).purgeTable(tableIdentifier);
+ icebergCatalogWrapperManager.getOps(prefix).purgeTable(tableIdentifier);
} else {
- icebergTableOpsManager.getOps(prefix).dropTable(tableIdentifier);
+ icebergCatalogWrapperManager.getOps(prefix).dropTable(tableIdentifier);
}
return IcebergRestUtils.noContent();
}
@@ -163,7 +166,8 @@ public class IcebergTableOperations {
// todo support snapshots
TableIdentifier tableIdentifier =
TableIdentifier.of(RESTUtil.decodeNamespace(namespace), table);
- return
IcebergRestUtils.ok(icebergTableOpsManager.getOps(prefix).loadTable(tableIdentifier));
+ return IcebergRestUtils.ok(
+
icebergCatalogWrapperManager.getOps(prefix).loadTable(tableIdentifier));
}
@HEAD
@@ -177,7 +181,7 @@ public class IcebergTableOperations {
@PathParam("table") String table) {
TableIdentifier tableIdentifier =
TableIdentifier.of(RESTUtil.decodeNamespace(namespace), table);
- if (icebergTableOpsManager.getOps(prefix).tableExists(tableIdentifier)) {
+ if
(icebergCatalogWrapperManager.getOps(prefix).tableExists(tableIdentifier)) {
return IcebergRestUtils.okWithoutContent();
} else {
return IcebergRestUtils.notExists();
diff --git
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/rest/IcebergTableRenameOperations.java
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/rest/IcebergTableRenameOperations.java
index 4fc2ea832..553508c01 100644
---
a/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/rest/IcebergTableRenameOperations.java
+++
b/iceberg/iceberg-rest-server/src/main/java/org/apache/gravitino/iceberg/service/rest/IcebergTableRenameOperations.java
@@ -30,8 +30,8 @@ import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
+import org.apache.gravitino.iceberg.service.IcebergCatalogWrapperManager;
import org.apache.gravitino.iceberg.service.IcebergRestUtils;
-import org.apache.gravitino.iceberg.service.IcebergTableOpsManager;
import org.apache.gravitino.metrics.MetricNames;
import org.apache.iceberg.rest.requests.RenameTableRequest;
@@ -44,11 +44,11 @@ public class IcebergTableRenameOperations {
@Context
private HttpServletRequest httpRequest;
- private IcebergTableOpsManager icebergTableOpsManager;
+ private IcebergCatalogWrapperManager icebergCatalogWrapperManager;
@Inject
- public IcebergTableRenameOperations(IcebergTableOpsManager
icebergTableOpsManager) {
- this.icebergTableOpsManager = icebergTableOpsManager;
+ public IcebergTableRenameOperations(IcebergCatalogWrapperManager
icebergCatalogWrapperManager) {
+ this.icebergCatalogWrapperManager = icebergCatalogWrapperManager;
}
@POST
@@ -57,7 +57,7 @@ public class IcebergTableRenameOperations {
@ResponseMetered(name = "rename-table", absolute = true)
public Response renameTable(
@PathParam("prefix") String prefix, RenameTableRequest
renameTableRequest) {
- icebergTableOpsManager.getOps(prefix).renameTable(renameTableRequest);
+
icebergCatalogWrapperManager.getOps(prefix).renameTable(renameTableRequest);
return IcebergRestUtils.okWithoutContent();
}
}
diff --git
a/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/provider/TestConfigBasedIcebergTableOpsProvider.java
b/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/provider/TestConfigBasedIcebergCatalogWrapperProvider.java
similarity index 89%
rename from
iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/provider/TestConfigBasedIcebergTableOpsProvider.java
rename to
iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/provider/TestConfigBasedIcebergCatalogWrapperProvider.java
index be97e03d0..99e83f2e4 100644
---
a/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/provider/TestConfigBasedIcebergTableOpsProvider.java
+++
b/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/provider/TestConfigBasedIcebergCatalogWrapperProvider.java
@@ -22,7 +22,7 @@ import com.google.common.collect.Maps;
import java.util.Map;
import org.apache.gravitino.catalog.lakehouse.iceberg.IcebergConstants;
import org.apache.gravitino.iceberg.common.IcebergConfig;
-import org.apache.gravitino.iceberg.common.ops.IcebergTableOps;
+import org.apache.gravitino.iceberg.common.ops.IcebergCatalogWrapper;
import org.apache.iceberg.hive.HiveCatalog;
import org.apache.iceberg.inmemory.InMemoryCatalog;
import org.apache.iceberg.jdbc.JdbcCatalog;
@@ -31,7 +31,7 @@ import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
-public class TestConfigBasedIcebergTableOpsProvider {
+public class TestConfigBasedIcebergCatalogWrapperProvider {
@Test
public void testValidIcebergTableOps() {
String hiveCatalogName = "hive_backend";
@@ -58,15 +58,16 @@ public class TestConfigBasedIcebergTableOpsProvider {
config.put("catalog-backend", "memory");
config.put("warehouse", "/tmp/");
- ConfigBasedIcebergTableOpsProvider provider = new
ConfigBasedIcebergTableOpsProvider();
+ ConfigBasedIcebergCatalogWrapperProvider provider =
+ new ConfigBasedIcebergCatalogWrapperProvider();
provider.initialize(config);
IcebergConfig hiveIcebergConfig =
provider.catalogConfigs.get(hiveCatalogName);
IcebergConfig jdbcIcebergConfig =
provider.catalogConfigs.get(jdbcCatalogName);
IcebergConfig defaultIcebergConfig =
provider.catalogConfigs.get(defaultCatalogName);
- IcebergTableOps hiveOps = provider.getIcebergTableOps(hiveCatalogName);
- IcebergTableOps jdbcOps = provider.getIcebergTableOps(jdbcCatalogName);
- IcebergTableOps defaultOps =
provider.getIcebergTableOps(defaultCatalogName);
+ IcebergCatalogWrapper hiveOps =
provider.getIcebergTableOps(hiveCatalogName);
+ IcebergCatalogWrapper jdbcOps =
provider.getIcebergTableOps(jdbcCatalogName);
+ IcebergCatalogWrapper defaultOps =
provider.getIcebergTableOps(defaultCatalogName);
Assertions.assertEquals(
hiveCatalogName,
hiveIcebergConfig.get(IcebergConfig.CATALOG_BACKEND_NAME));
@@ -101,7 +102,8 @@ public class TestConfigBasedIcebergTableOpsProvider {
@ParameterizedTest
@ValueSource(strings = {"", "not_match"})
public void testInvalidIcebergTableOps(String catalogName) {
- ConfigBasedIcebergTableOpsProvider provider = new
ConfigBasedIcebergTableOpsProvider();
+ ConfigBasedIcebergCatalogWrapperProvider provider =
+ new ConfigBasedIcebergCatalogWrapperProvider();
provider.initialize(Maps.newHashMap());
Assertions.assertThrowsExactly(
diff --git
a/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/provider/TestGravitinoBasedIcebergTableOpsProvider.java
b/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/provider/TestGravitinoBasedIcebergCatalogWrapperProvider.java
similarity index 89%
rename from
iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/provider/TestGravitinoBasedIcebergTableOpsProvider.java
rename to
iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/provider/TestGravitinoBasedIcebergCatalogWrapperProvider.java
index c26ceeb2f..8acac4ffd 100644
---
a/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/provider/TestGravitinoBasedIcebergTableOpsProvider.java
+++
b/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/provider/TestGravitinoBasedIcebergCatalogWrapperProvider.java
@@ -23,14 +23,14 @@ import org.apache.gravitino.Catalog;
import org.apache.gravitino.catalog.lakehouse.iceberg.IcebergConstants;
import org.apache.gravitino.client.GravitinoAdminClient;
import org.apache.gravitino.client.GravitinoMetalake;
-import org.apache.gravitino.iceberg.common.ops.IcebergTableOps;
+import org.apache.gravitino.iceberg.common.ops.IcebergCatalogWrapper;
import org.apache.iceberg.hive.HiveCatalog;
import org.apache.iceberg.jdbc.JdbcCatalog;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
-public class TestGravitinoBasedIcebergTableOpsProvider {
+public class TestGravitinoBasedIcebergCatalogWrapperProvider {
@Test
public void testValidIcebergTableOps() {
String hiveCatalogName = "hive_backend";
@@ -71,13 +71,14 @@ public class TestGravitinoBasedIcebergTableOpsProvider {
}
});
- GravitinoBasedIcebergTableOpsProvider provider = new
GravitinoBasedIcebergTableOpsProvider();
+ GravitinoBasedIcebergCatalogWrapperProvider provider =
+ new GravitinoBasedIcebergCatalogWrapperProvider();
GravitinoAdminClient client = Mockito.mock(GravitinoAdminClient.class);
Mockito.when(client.loadMetalake(Mockito.any())).thenReturn(gravitinoMetalake);
provider.setClient(client);
- IcebergTableOps hiveOps = provider.getIcebergTableOps(hiveCatalogName);
- IcebergTableOps jdbcOps = provider.getIcebergTableOps(jdbcCatalogName);
+ IcebergCatalogWrapper hiveOps =
provider.getIcebergTableOps(hiveCatalogName);
+ IcebergCatalogWrapper jdbcOps =
provider.getIcebergTableOps(jdbcCatalogName);
Assertions.assertEquals(hiveCatalogName, hiveOps.getCatalog().name());
Assertions.assertEquals(jdbcCatalogName, jdbcOps.getCatalog().name());
@@ -100,7 +101,8 @@ public class TestGravitinoBasedIcebergTableOpsProvider {
GravitinoAdminClient client = Mockito.mock(GravitinoAdminClient.class);
Mockito.when(client.loadMetalake(Mockito.any())).thenReturn(gravitinoMetalake);
- GravitinoBasedIcebergTableOpsProvider provider = new
GravitinoBasedIcebergTableOpsProvider();
+ GravitinoBasedIcebergCatalogWrapperProvider provider =
+ new GravitinoBasedIcebergCatalogWrapperProvider();
provider.setClient(client);
Assertions.assertThrowsExactly(
diff --git
a/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/TestIcebergTableOpsManager.java
b/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/TestIcebergCatalogWrapperManager.java
similarity index 86%
rename from
iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/TestIcebergTableOpsManager.java
rename to
iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/TestIcebergCatalogWrapperManager.java
index 68e03841f..328bafa62 100644
---
a/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/TestIcebergTableOpsManager.java
+++
b/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/TestIcebergCatalogWrapperManager.java
@@ -21,12 +21,12 @@ package org.apache.gravitino.iceberg.service;
import com.google.common.collect.Maps;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
-import org.apache.gravitino.iceberg.common.ops.IcebergTableOps;
+import org.apache.gravitino.iceberg.common.ops.IcebergCatalogWrapper;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
-public class TestIcebergTableOpsManager {
+public class TestIcebergCatalogWrapperManager {
private static final String DEFAULT_CATALOG = "memory";
@@ -39,9 +39,9 @@ public class TestIcebergTableOpsManager {
}
Map<String, String> config = Maps.newHashMap();
config.put(String.format("catalog.%s.catalog-backend-name", prefix),
prefix);
- IcebergTableOpsManager manager = new IcebergTableOpsManager(config);
+ IcebergCatalogWrapperManager manager = new
IcebergCatalogWrapperManager(config);
- IcebergTableOps ops = manager.getOps(rawPrefix);
+ IcebergCatalogWrapper ops = manager.getOps(rawPrefix);
if (StringUtils.isBlank(prefix)) {
Assertions.assertEquals(ops.getCatalog().name(), DEFAULT_CATALOG);
@@ -55,7 +55,7 @@ public class TestIcebergTableOpsManager {
strings = {"hello", "\\\n\t\\\'", "\u0024", "\100", "[_~",
"__gravitino_default_catalog/"})
public void testInvalidGetOps(String rawPrefix) {
Map<String, String> config = Maps.newHashMap();
- IcebergTableOpsManager manager = new IcebergTableOpsManager(config);
+ IcebergCatalogWrapperManager manager = new
IcebergCatalogWrapperManager(config);
Assertions.assertThrowsExactly(IllegalArgumentException.class, () ->
manager.getOps(rawPrefix));
}
diff --git
a/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/rest/ConfigBasedIcebergTableOpsProviderForTest.java
b/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/rest/ConfigBasedIcebergCatalogWrapperProviderForTest.java
similarity index 69%
rename from
iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/rest/ConfigBasedIcebergTableOpsProviderForTest.java
rename to
iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/rest/ConfigBasedIcebergCatalogWrapperProviderForTest.java
index 07ef96d20..222391bcc 100644
---
a/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/rest/ConfigBasedIcebergTableOpsProviderForTest.java
+++
b/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/rest/ConfigBasedIcebergCatalogWrapperProviderForTest.java
@@ -18,12 +18,13 @@
*/
package org.apache.gravitino.iceberg.service.rest;
-import org.apache.gravitino.iceberg.common.ops.IcebergTableOps;
-import
org.apache.gravitino.iceberg.provider.ConfigBasedIcebergTableOpsProvider;
+import org.apache.gravitino.iceberg.common.ops.IcebergCatalogWrapper;
+import
org.apache.gravitino.iceberg.provider.ConfigBasedIcebergCatalogWrapperProvider;
-public class ConfigBasedIcebergTableOpsProviderForTest extends
ConfigBasedIcebergTableOpsProvider {
+public class ConfigBasedIcebergCatalogWrapperProviderForTest
+ extends ConfigBasedIcebergCatalogWrapperProvider {
@Override
- public IcebergTableOps getIcebergTableOps(String prefix) {
- return new IcebergTableOpsForTest();
+ public IcebergCatalogWrapper getIcebergTableOps(String prefix) {
+ return new IcebergCatalogWrapperForTest();
}
}
diff --git
a/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/rest/IcebergTableOpsForTest.java
b/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/rest/IcebergCatalogWrapperForTest.java
similarity index 93%
rename from
iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/rest/IcebergTableOpsForTest.java
rename to
iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/rest/IcebergCatalogWrapperForTest.java
index af1ea314b..69c0a50e4 100644
---
a/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/rest/IcebergTableOpsForTest.java
+++
b/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/rest/IcebergCatalogWrapperForTest.java
@@ -18,7 +18,7 @@
*/
package org.apache.gravitino.iceberg.service.rest;
-import org.apache.gravitino.iceberg.common.ops.IcebergTableOps;
+import org.apache.gravitino.iceberg.common.ops.IcebergCatalogWrapper;
import org.apache.iceberg.PartitionSpec;
import org.apache.iceberg.Schema;
import org.apache.iceberg.TableMetadata;
@@ -30,7 +30,7 @@ import org.apache.iceberg.types.Types.NestedField;
import org.apache.iceberg.types.Types.StringType;
import org.testcontainers.shaded.com.google.common.collect.ImmutableMap;
-public class IcebergTableOpsForTest extends IcebergTableOps {
+public class IcebergCatalogWrapperForTest extends IcebergCatalogWrapper {
@Override
public LoadTableResponse registerTable(Namespace namespace,
RegisterTableRequest request) {
if (request.name().contains("fail")) {
diff --git
a/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/rest/IcebergRestTestUtil.java
b/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/rest/IcebergRestTestUtil.java
index ab36d1924..8bccdab7c 100644
---
a/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/rest/IcebergRestTestUtil.java
+++
b/iceberg/iceberg-rest-server/src/test/java/org/apache/gravitino/iceberg/service/rest/IcebergRestTestUtil.java
@@ -25,9 +25,9 @@ import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.gravitino.catalog.lakehouse.iceberg.IcebergConstants;
import org.apache.gravitino.iceberg.common.IcebergConfig;
+import org.apache.gravitino.iceberg.service.IcebergCatalogWrapperManager;
import org.apache.gravitino.iceberg.service.IcebergExceptionMapper;
import org.apache.gravitino.iceberg.service.IcebergObjectMapperProvider;
-import org.apache.gravitino.iceberg.service.IcebergTableOpsManager;
import org.apache.gravitino.iceberg.service.metrics.IcebergMetricsManager;
import org.glassfish.hk2.utilities.binding.AbstractBinder;
import org.glassfish.jersey.jackson.JacksonFeature;
@@ -73,15 +73,16 @@ public class IcebergRestTestUtil {
catalogConf.put(String.format("catalog.%s.catalog-backend-name",
PREFIX), PREFIX);
catalogConf.put(
IcebergConstants.ICEBERG_REST_CATALOG_PROVIDER,
- ConfigBasedIcebergTableOpsProviderForTest.class.getName());
- IcebergTableOpsManager icebergTableOpsManager = new
IcebergTableOpsManager(catalogConf);
+ ConfigBasedIcebergCatalogWrapperProviderForTest.class.getName());
+ IcebergCatalogWrapperManager icebergCatalogWrapperManager =
+ new IcebergCatalogWrapperManager(catalogConf);
IcebergMetricsManager icebergMetricsManager = new
IcebergMetricsManager(new IcebergConfig());
resourceConfig.register(
new AbstractBinder() {
@Override
protected void configure() {
-
bind(icebergTableOpsManager).to(IcebergTableOpsManager.class).ranked(2);
+
bind(icebergCatalogWrapperManager).to(IcebergCatalogWrapperManager.class).ranked(2);
bind(icebergMetricsManager).to(IcebergMetricsManager.class).ranked(2);
}
});