You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iceberg.apache.org by fo...@apache.org on 2023/12/13 08:41:21 UTC

(iceberg) branch main updated: Hive: Make HiveMetastoreExtension configurable (#9288)

This is an automated email from the ASF dual-hosted git repository.

fokko pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg.git


The following commit(s) were added to refs/heads/main by this push:
     new 60876e4a92 Hive: Make HiveMetastoreExtension configurable (#9288)
60876e4a92 is described below

commit 60876e4a925537780fc2198a21fbf26dd8598d36
Author: Eduard Tudenhoefner <et...@gmail.com>
AuthorDate: Wed Dec 13 09:41:16 2023 +0100

    Hive: Make HiveMetastoreExtension configurable (#9288)
---
 .../iceberg/hive/HiveCreateReplaceTableTest.java   |  3 +-
 .../iceberg/hive/HiveMetastoreExtension.java       | 35 +++++++++++++++++++---
 .../org/apache/iceberg/hive/HiveTableBaseTest.java |  3 +-
 .../apache/iceberg/hive/TestCachedClientPool.java  |  3 +-
 .../org/apache/iceberg/hive/TestHiveCatalog.java   |  3 +-
 .../apache/iceberg/hive/TestHiveCommitLocks.java   |  6 ++--
 6 files changed, 39 insertions(+), 14 deletions(-)

diff --git a/hive-metastore/src/test/java/org/apache/iceberg/hive/HiveCreateReplaceTableTest.java b/hive-metastore/src/test/java/org/apache/iceberg/hive/HiveCreateReplaceTableTest.java
index af5f7ce733..d3dc5656ad 100644
--- a/hive-metastore/src/test/java/org/apache/iceberg/hive/HiveCreateReplaceTableTest.java
+++ b/hive-metastore/src/test/java/org/apache/iceberg/hive/HiveCreateReplaceTableTest.java
@@ -24,7 +24,6 @@ import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
 import java.nio.file.Path;
-import java.util.Collections;
 import java.util.concurrent.TimeUnit;
 import org.apache.iceberg.AppendFiles;
 import org.apache.iceberg.CatalogProperties;
@@ -68,7 +67,7 @@ public class HiveCreateReplaceTableTest {
 
   @RegisterExtension
   private static final HiveMetastoreExtension HIVE_METASTORE_EXTENSION =
-      new HiveMetastoreExtension(DB_NAME, Collections.emptyMap());
+      HiveMetastoreExtension.builder().withDatabase(DB_NAME).build();
 
   private static HiveCatalog catalog;
 
diff --git a/hive-metastore/src/test/java/org/apache/iceberg/hive/HiveMetastoreExtension.java b/hive-metastore/src/test/java/org/apache/iceberg/hive/HiveMetastoreExtension.java
index 552307395c..c750ff4de6 100644
--- a/hive-metastore/src/test/java/org/apache/iceberg/hive/HiveMetastoreExtension.java
+++ b/hive-metastore/src/test/java/org/apache/iceberg/hive/HiveMetastoreExtension.java
@@ -33,7 +33,7 @@ public class HiveMetastoreExtension implements BeforeAllCallback, AfterAllCallba
   private final Map<String, String> hiveConfOverride;
   private final String databaseName;
 
-  public HiveMetastoreExtension(String databaseName, Map<String, String> hiveConfOverride) {
+  private HiveMetastoreExtension(String databaseName, Map<String, String> hiveConfOverride) {
     this.databaseName = databaseName;
     this.hiveConfOverride = hiveConfOverride;
   }
@@ -50,9 +50,11 @@ public class HiveMetastoreExtension implements BeforeAllCallback, AfterAllCallba
 
     metastore.start(hiveConfWithOverrides);
     metastoreClient = new HiveMetaStoreClient(hiveConfWithOverrides);
-    String dbPath = metastore.getDatabasePath(databaseName);
-    Database db = new Database(databaseName, "description", dbPath, Maps.newHashMap());
-    metastoreClient.createDatabase(db);
+    if (null != databaseName) {
+      String dbPath = metastore.getDatabasePath(databaseName);
+      Database db = new Database(databaseName, "description", dbPath, Maps.newHashMap());
+      metastoreClient.createDatabase(db);
+    }
   }
 
   @Override
@@ -80,4 +82,29 @@ public class HiveMetastoreExtension implements BeforeAllCallback, AfterAllCallba
   public TestHiveMetastore metastore() {
     return metastore;
   }
+
+  public static Builder builder() {
+    return new Builder();
+  }
+
+  public static class Builder {
+    private String databaseName;
+    private Map<String, String> config;
+
+    public Builder() {}
+
+    public Builder withDatabase(String databaseToCreate) {
+      this.databaseName = databaseToCreate;
+      return this;
+    }
+
+    public Builder withConfig(Map<String, String> configToSet) {
+      this.config = configToSet;
+      return this;
+    }
+
+    public HiveMetastoreExtension build() {
+      return new HiveMetastoreExtension(databaseName, config);
+    }
+  }
 }
diff --git a/hive-metastore/src/test/java/org/apache/iceberg/hive/HiveTableBaseTest.java b/hive-metastore/src/test/java/org/apache/iceberg/hive/HiveTableBaseTest.java
index 9dd193271a..39cb1835c3 100644
--- a/hive-metastore/src/test/java/org/apache/iceberg/hive/HiveTableBaseTest.java
+++ b/hive-metastore/src/test/java/org/apache/iceberg/hive/HiveTableBaseTest.java
@@ -26,7 +26,6 @@ import static org.apache.iceberg.types.Types.NestedField.required;
 import java.io.File;
 import java.nio.file.Paths;
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
@@ -52,7 +51,7 @@ public class HiveTableBaseTest {
 
   @RegisterExtension
   protected static final HiveMetastoreExtension HIVE_METASTORE_EXTENSION =
-      new HiveMetastoreExtension(DB_NAME, Collections.emptyMap());
+      HiveMetastoreExtension.builder().withDatabase(DB_NAME).build();
 
   protected static HiveCatalog catalog;
 
diff --git a/hive-metastore/src/test/java/org/apache/iceberg/hive/TestCachedClientPool.java b/hive-metastore/src/test/java/org/apache/iceberg/hive/TestCachedClientPool.java
index 211fcdbd0c..f281971f07 100644
--- a/hive-metastore/src/test/java/org/apache/iceberg/hive/TestCachedClientPool.java
+++ b/hive-metastore/src/test/java/org/apache/iceberg/hive/TestCachedClientPool.java
@@ -24,7 +24,6 @@ import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
 import java.security.PrivilegedAction;
-import java.util.Collections;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
 import org.apache.hadoop.conf.Configuration;
@@ -44,7 +43,7 @@ public class TestCachedClientPool {
 
   @RegisterExtension
   private static final HiveMetastoreExtension HIVE_METASTORE_EXTENSION =
-      new HiveMetastoreExtension(DB_NAME, Collections.emptyMap());
+      HiveMetastoreExtension.builder().withDatabase(DB_NAME).build();
 
   @Test
   public void testClientPoolCleaner() throws InterruptedException {
diff --git a/hive-metastore/src/test/java/org/apache/iceberg/hive/TestHiveCatalog.java b/hive-metastore/src/test/java/org/apache/iceberg/hive/TestHiveCatalog.java
index 49885cc3af..b70cb1c8e5 100644
--- a/hive-metastore/src/test/java/org/apache/iceberg/hive/TestHiveCatalog.java
+++ b/hive-metastore/src/test/java/org/apache/iceberg/hive/TestHiveCatalog.java
@@ -37,7 +37,6 @@ import static org.mockito.Mockito.when;
 
 import java.io.IOException;
 import java.nio.file.Path;
-import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -105,7 +104,7 @@ public class TestHiveCatalog {
 
   @RegisterExtension
   private static final HiveMetastoreExtension HIVE_METASTORE_EXTENSION =
-      new HiveMetastoreExtension(DB_NAME, Collections.emptyMap());
+      HiveMetastoreExtension.builder().withDatabase(DB_NAME).build();
 
   @BeforeEach
   public void before() {
diff --git a/hive-metastore/src/test/java/org/apache/iceberg/hive/TestHiveCommitLocks.java b/hive-metastore/src/test/java/org/apache/iceberg/hive/TestHiveCommitLocks.java
index 4894652546..44707f216e 100644
--- a/hive-metastore/src/test/java/org/apache/iceberg/hive/TestHiveCommitLocks.java
+++ b/hive-metastore/src/test/java/org/apache/iceberg/hive/TestHiveCommitLocks.java
@@ -107,8 +107,10 @@ public class TestHiveCommitLocks {
 
   @RegisterExtension
   private static final HiveMetastoreExtension HIVE_METASTORE_EXTENSION =
-      new HiveMetastoreExtension(
-          DB_NAME, ImmutableMap.of(HiveConf.ConfVars.HIVE_TXN_TIMEOUT.varname, "1s"));
+      HiveMetastoreExtension.builder()
+          .withDatabase(DB_NAME)
+          .withConfig(ImmutableMap.of(HiveConf.ConfVars.HIVE_TXN_TIMEOUT.varname, "1s"))
+          .build();
 
   private static HiveCatalog catalog;
   private Path tableLocation;