From c7bb9c00d85452f9aa23e829ee71caaf166dca07 Mon Sep 17 00:00:00 2001 From: yuqi Date: Mon, 23 Sep 2024 21:47:55 +0800 Subject: [PATCH 1/9] Make AbstractIT more independent. --- .../integration/test/RangerHiveE2EIT.java | 12 ++++--- .../integration/test/HadoopCatalogIT.java | 8 +++-- .../test/HadoopUserAuthenticationIT.java | 20 ++++++------ .../test/HadoopUserImpersonationIT.java | 6 ++-- .../hive/integration/test/CatalogHiveIT.java | 10 +++--- .../test/HiveUserAuthenticationIT.java | 24 +++++++------- .../integration/test/ProxyCatalogHiveIT.java | 22 +++++++------ .../integration/test/CatalogDorisIT.java | 8 ++--- .../integration/test/AuditCatalogMysqlIT.java | 12 ++++--- .../test/CatalogMysqlDriverIT.java | 2 ++ .../test/TestMultipleJDBCLoad.java | 4 ++- .../integration/test/CatalogKafkaIT.java | 8 +++-- .../test/CatalogIcebergBaseIT.java | 10 +++--- .../test/CatalogIcebergKerberosHiveIT.java | 24 +++++++------- .../test/TestMultipleJDBCLoad.java | 4 ++- .../CatalogPaimonKerberosFilesystemIT.java | 22 ++++++------- .../client/integration/test/AuditIT.java | 6 ++-- .../client/integration/test/CatalogIT.java | 6 ++-- .../client/integration/test/TagIT.java | 6 ++-- .../integration/test/VersionOperationsIT.java | 2 ++ .../test/authorization/AccessControlIT.java | 6 ++-- .../AccessControlNotAllowIT.java | 2 ++ .../authorization/KerberosOperationsIT.java | 10 +++--- .../authorization/MultiAuthOperationsIT.java | 10 +++--- .../authorization/OAuth2OperationsIT.java | 6 ++-- .../test/authorization/OwnerIT.java | 8 +++-- .../test/GravitinoVirtualFileSystemIT.java | 6 ++-- .../gravitino/storage/TestEntityStorage.java | 5 +-- .../integration/test/FlinkEnvIT.java | 8 +++-- .../integration/test/util/AbstractIT.java | 32 ++++++++++--------- .../integration/test/SparkEnvIT.java | 17 +++++----- .../test/sql/SparkQueryRunner.java | 10 +++--- .../integration/test/TrinoConnectorIT.java | 6 ++-- .../integration/test/TrinoQueryIT.java | 9 ++++-- .../integration/test/TrinoQueryITBase.java | 23 +++++++------ .../integration/test/TrinoQueryTestTool.java | 3 +- .../test/web/ui/CatalogsPageDorisTest.java | 9 +++--- .../test/web/ui/CatalogsPageKafkaTest.java | 9 +++--- .../test/web/ui/CatalogsPageTest.java | 11 ++++--- .../test/web/ui/utils/AbstractWebIT.java | 2 +- 40 files changed, 234 insertions(+), 174 deletions(-) diff --git a/authorizations/authorization-ranger/src/test/java/org/apache/gravitino/authorization/ranger/integration/test/RangerHiveE2EIT.java b/authorizations/authorization-ranger/src/test/java/org/apache/gravitino/authorization/ranger/integration/test/RangerHiveE2EIT.java index 1c57a0001d4..10b6bd152c3 100644 --- a/authorizations/authorization-ranger/src/test/java/org/apache/gravitino/authorization/ranger/integration/test/RangerHiveE2EIT.java +++ b/authorizations/authorization-ranger/src/test/java/org/apache/gravitino/authorization/ranger/integration/test/RangerHiveE2EIT.java @@ -68,10 +68,12 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Tag("gravitino-docker-test") +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class RangerHiveE2EIT extends AbstractIT { private static final Logger LOG = LoggerFactory.getLogger(RangerHiveE2EIT.class); @@ -95,12 +97,12 @@ public class RangerHiveE2EIT extends AbstractIT { private static String HIVE_METASTORE_URIS; @BeforeAll - public static void startIntegrationTest() throws Exception { + public void startIntegrationTest() throws Exception { Map configs = Maps.newHashMap(); configs.put(Configs.ENABLE_AUTHORIZATION.getKey(), String.valueOf(true)); configs.put(Configs.SERVICE_ADMINS.getKey(), AuthConstants.ANONYMOUS_USER); registerCustomConfigs(configs); - AbstractIT.startIntegrationTest(); + super.startIntegrationTest(); RangerITEnv.setup(); containerSuite.startHiveContainer(); @@ -117,8 +119,8 @@ public static void startIntegrationTest() throws Exception { } @AfterAll - public static void stop() throws IOException { - AbstractIT.client = null; + public void stop() throws IOException { + client = null; } @Test @@ -136,7 +138,7 @@ void testCreateRole() { RangerITEnv.verifyRoleInRanger(rangerAuthPlugin, role); } - private static void createMetalake() { + private void createMetalake() { GravitinoMetalake[] gravitinoMetalakes = client.listMetalakes(); Assertions.assertEquals(0, gravitinoMetalakes.length); diff --git a/catalogs/catalog-hadoop/src/test/java/org/apache/gravitino/catalog/hadoop/integration/test/HadoopCatalogIT.java b/catalogs/catalog-hadoop/src/test/java/org/apache/gravitino/catalog/hadoop/integration/test/HadoopCatalogIT.java index 20f9a1eeab8..ab118c58850 100644 --- a/catalogs/catalog-hadoop/src/test/java/org/apache/gravitino/catalog/hadoop/integration/test/HadoopCatalogIT.java +++ b/catalogs/catalog-hadoop/src/test/java/org/apache/gravitino/catalog/hadoop/integration/test/HadoopCatalogIT.java @@ -53,10 +53,12 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Tag("gravitino-docker-test") +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class HadoopCatalogIT extends AbstractIT { private static final Logger LOG = LoggerFactory.getLogger(HadoopCatalogIT.class); private static final ContainerSuite containerSuite = ContainerSuite.getInstance(); @@ -74,7 +76,7 @@ public class HadoopCatalogIT extends AbstractIT { private static String defaultBaseLocation; @BeforeAll - public static void setup() throws IOException { + public void setup() throws IOException { containerSuite.startHiveContainer(); Configuration conf = new Configuration(); conf.set("fs.defaultFS", defaultBaseLocation()); @@ -86,7 +88,7 @@ public static void setup() throws IOException { } @AfterAll - public static void stop() throws IOException { + public void stop() throws IOException { Catalog catalog = metalake.loadCatalog(catalogName); catalog.asSchemas().dropSchema(schemaName, true); metalake.dropCatalog(catalogName); @@ -102,7 +104,7 @@ public static void stop() throws IOException { } } - private static void createMetalake() { + private void createMetalake() { GravitinoMetalake[] gravitinoMetalakes = client.listMetalakes(); Assertions.assertEquals(0, gravitinoMetalakes.length); diff --git a/catalogs/catalog-hadoop/src/test/java/org/apache/gravitino/catalog/hadoop/integration/test/HadoopUserAuthenticationIT.java b/catalogs/catalog-hadoop/src/test/java/org/apache/gravitino/catalog/hadoop/integration/test/HadoopUserAuthenticationIT.java index 7a56f8503a3..a0aeecb6cb8 100644 --- a/catalogs/catalog-hadoop/src/test/java/org/apache/gravitino/catalog/hadoop/integration/test/HadoopUserAuthenticationIT.java +++ b/catalogs/catalog-hadoop/src/test/java/org/apache/gravitino/catalog/hadoop/integration/test/HadoopUserAuthenticationIT.java @@ -54,12 +54,14 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testcontainers.utility.MountableFile; import sun.security.krb5.KrbException; @Tag("gravitino-docker-test") +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class HadoopUserAuthenticationIT extends AbstractIT { private static final Logger LOG = LoggerFactory.getLogger(HadoopUserAuthenticationIT.class); @@ -104,7 +106,7 @@ public class HadoopUserAuthenticationIT extends AbstractIT { private static final String TABLE_NAME = "test_table"; @BeforeAll - public static void startIntegrationTest() throws Exception { + public void startIntegrationTest() throws Exception { containerSuite.startKerberosHiveContainer(); kerberosHiveContainer = containerSuite.getKerberosHiveContainer(); @@ -122,7 +124,7 @@ public static void startIntegrationTest() throws Exception { addKerberosConfig(); // Start Gravitino server - AbstractIT.startIntegrationTest(); + super.startIntegrationTest(); } @AfterAll @@ -222,14 +224,12 @@ private static void createKeyTableForSchemaAndFileset() throws IOException { .copyFileFromContainer(HADOOP_FILESET_KEYTAB, TMP_DIR + HADOOP_FILESET_KEYTAB); } - private static void addKerberosConfig() { - AbstractIT.customConfigs.put(Configs.AUTHENTICATORS.getKey(), "kerberos"); - AbstractIT.customConfigs.put( - "gravitino.authenticator.kerberos.principal", GRAVITINO_SERVER_PRINCIPAL); - AbstractIT.customConfigs.put( - "gravitino.authenticator.kerberos.keytab", TMP_DIR + GRAVITINO_SERVER_KEYTAB); - AbstractIT.customConfigs.put(SDK_KERBEROS_KEYTAB_KEY, TMP_DIR + GRAVITINO_CLIENT_KEYTAB); - AbstractIT.customConfigs.put(SDK_KERBEROS_PRINCIPAL_KEY, GRAVITINO_CLIENT_PRINCIPAL); + private void addKerberosConfig() { + customConfigs.put(Configs.AUTHENTICATORS.getKey(), "kerberos"); + customConfigs.put("gravitino.authenticator.kerberos.principal", GRAVITINO_SERVER_PRINCIPAL); + customConfigs.put("gravitino.authenticator.kerberos.keytab", TMP_DIR + GRAVITINO_SERVER_KEYTAB); + customConfigs.put(SDK_KERBEROS_KEYTAB_KEY, TMP_DIR + GRAVITINO_CLIENT_KEYTAB); + customConfigs.put(SDK_KERBEROS_PRINCIPAL_KEY, GRAVITINO_CLIENT_PRINCIPAL); } @Test diff --git a/catalogs/catalog-hadoop/src/test/java/org/apache/gravitino/catalog/hadoop/integration/test/HadoopUserImpersonationIT.java b/catalogs/catalog-hadoop/src/test/java/org/apache/gravitino/catalog/hadoop/integration/test/HadoopUserImpersonationIT.java index 248b8d54ffb..72bb469216f 100644 --- a/catalogs/catalog-hadoop/src/test/java/org/apache/gravitino/catalog/hadoop/integration/test/HadoopUserImpersonationIT.java +++ b/catalogs/catalog-hadoop/src/test/java/org/apache/gravitino/catalog/hadoop/integration/test/HadoopUserImpersonationIT.java @@ -62,11 +62,13 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.condition.EnabledIf; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Tag("gravitino-docker-test") +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class HadoopUserImpersonationIT extends AbstractIT { private static final Logger LOG = LoggerFactory.getLogger(HadoopCatalogIT.class); @@ -111,7 +113,7 @@ private static void refreshKerberosConfig() { } @BeforeAll - public static void setup() throws Exception { + public void setup() throws Exception { if (!isEmbedded()) { return; } @@ -254,7 +256,7 @@ void testListFileSystem() throws Exception { }); } - private static void createMetalake() { + private void createMetalake() { GravitinoMetalake[] gravitinoMetalakes = client.listMetalakes(); Assertions.assertEquals(0, gravitinoMetalakes.length); diff --git a/catalogs/catalog-hive/src/test/java/org/apache/gravitino/catalog/hive/integration/test/CatalogHiveIT.java b/catalogs/catalog-hive/src/test/java/org/apache/gravitino/catalog/hive/integration/test/CatalogHiveIT.java index c9ef0db1fe6..46cbe67efa7 100644 --- a/catalogs/catalog-hive/src/test/java/org/apache/gravitino/catalog/hive/integration/test/CatalogHiveIT.java +++ b/catalogs/catalog-hive/src/test/java/org/apache/gravitino/catalog/hive/integration/test/CatalogHiveIT.java @@ -110,10 +110,12 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Tag("gravitino-docker-test") +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class CatalogHiveIT extends AbstractIT { private static final Logger LOG = LoggerFactory.getLogger(CatalogHiveIT.class); public static final String metalakeName = @@ -162,7 +164,7 @@ private static String getInsertWithPartitionSql( "'gravitino_it_test'"); @BeforeAll - public static void startup() throws Exception { + public void startup() throws Exception { containerSuite.startHiveContainer(); HIVE_METASTORE_URIS = @@ -210,7 +212,7 @@ public static void startup() throws Exception { } @AfterAll - public static void stop() throws IOException { + public void stop() throws IOException { if (client != null) { Arrays.stream(catalog.asSchemas().listSchemas()) .filter(schema -> !schema.equals("default")) @@ -242,7 +244,7 @@ public static void stop() throws IOException { LOG.error("Failed to close CloseableGroup", e); } - AbstractIT.client = null; + client = null; } @AfterEach @@ -254,7 +256,7 @@ public void resetSchema() throws TException, InterruptedException { createSchema(); } - private static void createMetalake() { + private void createMetalake() { GravitinoMetalake[] gravitinoMetalakes = client.listMetalakes(); Assertions.assertEquals(0, gravitinoMetalakes.length); diff --git a/catalogs/catalog-hive/src/test/java/org/apache/gravitino/catalog/hive/integration/test/HiveUserAuthenticationIT.java b/catalogs/catalog-hive/src/test/java/org/apache/gravitino/catalog/hive/integration/test/HiveUserAuthenticationIT.java index a4d982e30b8..9ce3bd707ff 100644 --- a/catalogs/catalog-hive/src/test/java/org/apache/gravitino/catalog/hive/integration/test/HiveUserAuthenticationIT.java +++ b/catalogs/catalog-hive/src/test/java/org/apache/gravitino/catalog/hive/integration/test/HiveUserAuthenticationIT.java @@ -59,10 +59,12 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Tag("gravitino-docker-test") +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class HiveUserAuthenticationIT extends AbstractIT { private static final Logger LOG = LoggerFactory.getLogger(HiveUserAuthenticationIT.class); @@ -98,7 +100,7 @@ public class HiveUserAuthenticationIT extends AbstractIT { private static final String HIVE_COL_NAME3 = "col3"; @BeforeAll - public static void startIntegrationTest() throws Exception { + public void startIntegrationTest() throws Exception { containerSuite.startKerberosHiveContainer(); kerberosHiveContainer = containerSuite.getKerberosHiveContainer(); @@ -119,11 +121,11 @@ public static void startIntegrationTest() throws Exception { addKerberosConfig(); // Start Gravitino server - AbstractIT.startIntegrationTest(); + super.startIntegrationTest(); } @AfterAll - public static void stop() { + public void stop() { // Reset the UGI UserGroupInformation.reset(); @@ -132,7 +134,7 @@ public static void stop() { System.clearProperty("java.security.krb5.conf"); System.clearProperty("sun.security.krb5.debug"); - AbstractIT.client = null; + client = null; } private static void prepareKerberosConfig() throws Exception { @@ -188,14 +190,12 @@ private static void refreshKerberosConfig() { } } - private static void addKerberosConfig() { - AbstractIT.customConfigs.put(Configs.AUTHENTICATORS.getKey(), "kerberos"); - AbstractIT.customConfigs.put( - "gravitino.authenticator.kerberos.principal", GRAVITINO_SERVER_PRINCIPAL); - AbstractIT.customConfigs.put( - "gravitino.authenticator.kerberos.keytab", TMP_DIR + GRAVITINO_SERVER_KEYTAB); - AbstractIT.customConfigs.put(SDK_KERBEROS_KEYTAB_KEY, TMP_DIR + GRAVITINO_CLIENT_KEYTAB); - AbstractIT.customConfigs.put(SDK_KERBEROS_PRINCIPAL_KEY, GRAVITINO_CLIENT_PRINCIPAL); + private void addKerberosConfig() { + customConfigs.put(Configs.AUTHENTICATORS.getKey(), "kerberos"); + customConfigs.put("gravitino.authenticator.kerberos.principal", GRAVITINO_SERVER_PRINCIPAL); + customConfigs.put("gravitino.authenticator.kerberos.keytab", TMP_DIR + GRAVITINO_SERVER_KEYTAB); + customConfigs.put(SDK_KERBEROS_KEYTAB_KEY, TMP_DIR + GRAVITINO_CLIENT_KEYTAB); + customConfigs.put(SDK_KERBEROS_PRINCIPAL_KEY, GRAVITINO_CLIENT_PRINCIPAL); } @Test diff --git a/catalogs/catalog-hive/src/test/java/org/apache/gravitino/catalog/hive/integration/test/ProxyCatalogHiveIT.java b/catalogs/catalog-hive/src/test/java/org/apache/gravitino/catalog/hive/integration/test/ProxyCatalogHiveIT.java index 24c3c2cf443..51aeb54df8c 100644 --- a/catalogs/catalog-hive/src/test/java/org/apache/gravitino/catalog/hive/integration/test/ProxyCatalogHiveIT.java +++ b/catalogs/catalog-hive/src/test/java/org/apache/gravitino/catalog/hive/integration/test/ProxyCatalogHiveIT.java @@ -62,8 +62,10 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; @Tag("gravitino-docker-test") +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class ProxyCatalogHiveIT extends AbstractIT { public static final String METALAKE_NAME = @@ -88,10 +90,10 @@ public class ProxyCatalogHiveIT extends AbstractIT { private static GravitinoAdminClient anotherClientWithNotExistingName; private static Catalog anotherCatalog; private static Catalog anotherCatalogWithUsername; - private static Catalog anotherCatatlogWithNotExistingName; + private static Catalog anotherCatalogWithNotExistingName; @BeforeAll - public static void startIntegrationTest() throws Exception { + public void startIntegrationTest() throws Exception { originHadoopUser = System.getenv(HADOOP_USER_NAME); setEnv(HADOOP_USER_NAME, null); @@ -100,7 +102,7 @@ public static void startIntegrationTest() throws Exception { Map configs = Maps.newHashMap(); configs.put(Configs.AUTHENTICATORS.getKey(), AuthenticatorType.SIMPLE.name().toLowerCase()); registerCustomConfigs(configs); - AbstractIT.startIntegrationTest(); + super.startIntegrationTest(); containerSuite.startHiveContainer(); HIVE_METASTORE_URIS = String.format( @@ -137,13 +139,13 @@ public static void startIntegrationTest() throws Exception { } @AfterAll - public static void stop() { + public void stop() { setEnv(HADOOP_USER_NAME, originHadoopUser); anotherClient.close(); anotherClientWithUsername.close(); anotherClientWithNotExistingName.close(); - AbstractIT.client = null; + client = null; } @Test @@ -195,7 +197,7 @@ public void testOperateSchema() throws Exception { Assertions.assertThrows( RuntimeException.class, () -> - anotherCatatlogWithNotExistingName + anotherCatalogWithNotExistingName .asSchemas() .createSchema("new_schema", comment, properties)); Assertions.assertTrue(e.getMessage().contains("AccessControlException Permission denied")); @@ -256,7 +258,7 @@ public void testOperateTable() throws Exception { Assertions.assertThrows( RuntimeException.class, () -> { - anotherCatatlogWithNotExistingName + anotherCatalogWithNotExistingName .asTableCatalog() .createTable( anotherIdentWithNotExisting, @@ -370,7 +372,7 @@ public void testOperatePartition() throws Exception { Assertions.assertThrows( RuntimeException.class, () -> - anotherCatatlogWithNotExistingName + anotherCatalogWithNotExistingName .asTableCatalog() .loadTable(nameIdentifier) .supportPartitions() @@ -385,7 +387,7 @@ private Column[] createColumns() { return new Column[] {col1, col2, col3}; } - private static void createMetalake() { + private void createMetalake() { GravitinoMetalake[] gravitinoMetalakes = client.listMetalakes(); Assertions.assertEquals(0, gravitinoMetalakes.length); @@ -421,7 +423,7 @@ private static void loadCatalogWithAnotherClient() { anotherCatalogWithUsername = anotherClientWithUsername.loadMetalake(METALAKE_NAME).loadCatalog(CATALOG_NAME); - anotherCatatlogWithNotExistingName = + anotherCatalogWithNotExistingName = anotherClientWithNotExistingName.loadMetalake(METALAKE_NAME).loadCatalog(CATALOG_NAME); } diff --git a/catalogs/catalog-jdbc-doris/src/test/java/org/apache/gravitino/catalog/doris/integration/test/CatalogDorisIT.java b/catalogs/catalog-jdbc-doris/src/test/java/org/apache/gravitino/catalog/doris/integration/test/CatalogDorisIT.java index 98478ad2347..52e3c82e9cd 100644 --- a/catalogs/catalog-jdbc-doris/src/test/java/org/apache/gravitino/catalog/doris/integration/test/CatalogDorisIT.java +++ b/catalogs/catalog-jdbc-doris/src/test/java/org/apache/gravitino/catalog/doris/integration/test/CatalogDorisIT.java @@ -127,7 +127,7 @@ public void startup() throws IOException { public void stop() { clearTableAndSchema(); metalake.dropCatalog(catalogName); - AbstractIT.client.dropMetalake(metalakeName); + client.dropMetalake(metalakeName); } @AfterEach @@ -141,12 +141,12 @@ private void clearTableAndSchema() { } private void createMetalake() { - GravitinoMetalake[] gravitinoMetaLakes = AbstractIT.client.listMetalakes(); + GravitinoMetalake[] gravitinoMetaLakes = client.listMetalakes(); assertEquals(0, gravitinoMetaLakes.length); GravitinoMetalake createdMetalake = - AbstractIT.client.createMetalake(metalakeName, "comment", Collections.emptyMap()); - GravitinoMetalake loadMetalake = AbstractIT.client.loadMetalake(metalakeName); + client.createMetalake(metalakeName, "comment", Collections.emptyMap()); + GravitinoMetalake loadMetalake = client.loadMetalake(metalakeName); assertEquals(createdMetalake, loadMetalake); metalake = loadMetalake; diff --git a/catalogs/catalog-jdbc-mysql/src/test/java/org/apache/gravitino/catalog/mysql/integration/test/AuditCatalogMysqlIT.java b/catalogs/catalog-jdbc-mysql/src/test/java/org/apache/gravitino/catalog/mysql/integration/test/AuditCatalogMysqlIT.java index b2cf571475f..7635340d1b0 100644 --- a/catalogs/catalog-jdbc-mysql/src/test/java/org/apache/gravitino/catalog/mysql/integration/test/AuditCatalogMysqlIT.java +++ b/catalogs/catalog-jdbc-mysql/src/test/java/org/apache/gravitino/catalog/mysql/integration/test/AuditCatalogMysqlIT.java @@ -48,8 +48,10 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; @Tag("gravitino-docker-test") +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class AuditCatalogMysqlIT extends AbstractIT { private static final ContainerSuite containerSuite = ContainerSuite.getInstance(); public static final String metalakeName = GravitinoITUtils.genRandomName("audit_mysql_metalake"); @@ -62,11 +64,11 @@ public class AuditCatalogMysqlIT extends AbstractIT { private static GravitinoMetalake metalake; @BeforeAll - public static void startIntegrationTest() throws Exception { + public void startIntegrationTest() throws Exception { Map configs = Maps.newHashMap(); configs.put(Configs.AUTHENTICATORS.getKey(), AuthenticatorType.SIMPLE.name().toLowerCase()); registerCustomConfigs(configs); - AbstractIT.startIntegrationTest(); + super.startIntegrationTest(); containerSuite.startMySQLContainer(TestDatabaseName.MYSQL_AUDIT_CATALOG_MYSQL_IT); MYSQL_CONTAINER = containerSuite.getMySQLContainer(); @@ -76,10 +78,10 @@ public static void startIntegrationTest() throws Exception { } @AfterAll - public static void stopIntegrationTest() throws IOException, InterruptedException { + public void stopIntegrationTest() throws IOException, InterruptedException { client.dropMetalake(metalakeName); mysqlService.close(); - AbstractIT.stopIntegrationTest(); + super.stopIntegrationTest(); } @Test @@ -165,7 +167,7 @@ private static Catalog createCatalog(String catalogName) throws SQLException { catalogName, Catalog.Type.RELATIONAL, provider, "comment", catalogProperties); } - private static void createMetalake() { + private void createMetalake() { GravitinoMetalake[] gravitinoMetalakes = client.listMetalakes(); Assertions.assertEquals(0, gravitinoMetalakes.length); diff --git a/catalogs/catalog-jdbc-mysql/src/test/java/org/apache/gravitino/catalog/mysql/integration/test/CatalogMysqlDriverIT.java b/catalogs/catalog-jdbc-mysql/src/test/java/org/apache/gravitino/catalog/mysql/integration/test/CatalogMysqlDriverIT.java index e5f5cb62ab4..f6ae2c7dca1 100644 --- a/catalogs/catalog-jdbc-mysql/src/test/java/org/apache/gravitino/catalog/mysql/integration/test/CatalogMysqlDriverIT.java +++ b/catalogs/catalog-jdbc-mysql/src/test/java/org/apache/gravitino/catalog/mysql/integration/test/CatalogMysqlDriverIT.java @@ -20,8 +20,10 @@ package org.apache.gravitino.catalog.mysql.integration.test; import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.TestInstance; @Tag("gravitino-docker-test") +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class CatalogMysqlDriverIT extends CatalogMysqlIT { public CatalogMysqlDriverIT() { super(); diff --git a/catalogs/catalog-jdbc-postgresql/src/test/java/org/apache/gravitino/catalog/postgresql/integration/test/TestMultipleJDBCLoad.java b/catalogs/catalog-jdbc-postgresql/src/test/java/org/apache/gravitino/catalog/postgresql/integration/test/TestMultipleJDBCLoad.java index 8dc4466eff5..07478e781bb 100644 --- a/catalogs/catalog-jdbc-postgresql/src/test/java/org/apache/gravitino/catalog/postgresql/integration/test/TestMultipleJDBCLoad.java +++ b/catalogs/catalog-jdbc-postgresql/src/test/java/org/apache/gravitino/catalog/postgresql/integration/test/TestMultipleJDBCLoad.java @@ -41,8 +41,10 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; @Tag("gravitino-docker-test") +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class TestMultipleJDBCLoad extends AbstractIT { private static final ContainerSuite containerSuite = ContainerSuite.getInstance(); private static final TestDatabaseName TEST_DB_NAME = @@ -52,7 +54,7 @@ public class TestMultipleJDBCLoad extends AbstractIT { private static PostgreSQLContainer postgreSQLContainer; @BeforeAll - public static void startup() throws IOException { + public void startup() throws IOException { containerSuite.startMySQLContainer(TEST_DB_NAME); mySQLContainer = containerSuite.getMySQLContainer(); containerSuite.startPostgreSQLContainer(TEST_DB_NAME); diff --git a/catalogs/catalog-kafka/src/test/java/org/apache/gravitino/catalog/kafka/integration/test/CatalogKafkaIT.java b/catalogs/catalog-kafka/src/test/java/org/apache/gravitino/catalog/kafka/integration/test/CatalogKafkaIT.java index b73a6c1b86a..8c8c4226791 100644 --- a/catalogs/catalog-kafka/src/test/java/org/apache/gravitino/catalog/kafka/integration/test/CatalogKafkaIT.java +++ b/catalogs/catalog-kafka/src/test/java/org/apache/gravitino/catalog/kafka/integration/test/CatalogKafkaIT.java @@ -68,10 +68,12 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Tag("gravitino-docker-test") +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class CatalogKafkaIT extends AbstractIT { private static final Logger LOG = LoggerFactory.getLogger(CatalogKafkaIT.class); private static final ContainerSuite CONTAINER_SUITE = ContainerSuite.getInstance(); @@ -87,7 +89,7 @@ public class CatalogKafkaIT extends AbstractIT { private static AdminClient adminClient; @BeforeAll - public static void startUp() throws ExecutionException, InterruptedException { + public void startUp() throws ExecutionException, InterruptedException { CONTAINER_SUITE.startKafkaContainer(); kafkaBootstrapServers = String.format( @@ -112,7 +114,7 @@ public static void startUp() throws ExecutionException, InterruptedException { } @AfterAll - public static void shutdown() { + public void shutdown() { Catalog catalog = metalake.loadCatalog(CATALOG_NAME); Arrays.stream(catalog.asSchemas().listSchemas()) .filter(ident -> !ident.equals("default")) @@ -552,7 +554,7 @@ private TopicDescription getTopicDesc(String topicName) .get(); } - private static void createMetalake() { + private void createMetalake() { GravitinoMetalake createdMetalake = client.createMetalake(METALAKE_NAME, "comment", Collections.emptyMap()); GravitinoMetalake loadMetalake = client.loadMetalake(METALAKE_NAME); 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 4a829b3bc9c..8a13c2decdc 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 @@ -125,7 +125,7 @@ public abstract class CatalogIcebergBaseIT extends AbstractIT { @BeforeAll public void startup() throws Exception { ignoreIcebergRestService = false; - AbstractIT.startIntegrationTest(); + super.startIntegrationTest(); containerSuite.startHiveContainer(); initIcebergCatalogProperties(); createMetalake(); @@ -144,12 +144,12 @@ public void stop() throws Exception { if (spark != null) { spark.close(); } - AbstractIT.stopIntegrationTest(); + super.stopIntegrationTest(); } } @AfterEach - private void resetSchema() { + public void resetSchema() { clearTableAndSchema(); createSchema(); } @@ -158,10 +158,10 @@ private void resetSchema() { // if startIntegrationTest() is auto invoked by Junit. So here we override // startIntegrationTest() to disable the auto invoke by junit. @BeforeAll - public static void startIntegrationTest() {} + public void startIntegrationTest() {} @AfterAll - public static void stopIntegrationTest() {} + public void stopIntegrationTest() {} protected abstract void initIcebergCatalogProperties(); diff --git a/catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/integration/test/CatalogIcebergKerberosHiveIT.java b/catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/integration/test/CatalogIcebergKerberosHiveIT.java index ebd8737f550..628b03b60cd 100644 --- a/catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/integration/test/CatalogIcebergKerberosHiveIT.java +++ b/catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/integration/test/CatalogIcebergKerberosHiveIT.java @@ -59,10 +59,12 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Tag("gravitino-docker-test") +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class CatalogIcebergKerberosHiveIT extends AbstractIT { private static final Logger LOG = LoggerFactory.getLogger(CatalogIcebergKerberosHiveIT.class); @@ -101,7 +103,7 @@ public class CatalogIcebergKerberosHiveIT extends AbstractIT { private static final String HIVE_COL_NAME3 = "col3"; @BeforeAll - public static void startIntegrationTest() { + public void startIntegrationTest() { containerSuite.startKerberosHiveContainer(); kerberosHiveContainer = containerSuite.getKerberosHiveContainer(); @@ -129,14 +131,14 @@ public static void startIntegrationTest() { ignoreIcebergRestService = false; // Start Gravitino server - AbstractIT.startIntegrationTest(); + super.startIntegrationTest(); } catch (Exception e) { throw new RuntimeException(e); } } @AfterAll - public static void stop() { + public void stop() { // Reset the UGI UserGroupInformation.reset(); @@ -145,7 +147,7 @@ public static void stop() { System.clearProperty("java.security.krb5.conf"); System.clearProperty("sun.security.krb5.debug"); - AbstractIT.client = null; + client = null; } private static void prepareKerberosConfig() throws Exception { @@ -201,14 +203,12 @@ private static void refreshKerberosConfig() { } } - private static void addKerberosConfig() { - AbstractIT.customConfigs.put(Configs.AUTHENTICATORS.getKey(), "kerberos"); - AbstractIT.customConfigs.put( - "gravitino.authenticator.kerberos.principal", GRAVITINO_SERVER_PRINCIPAL); - AbstractIT.customConfigs.put( - "gravitino.authenticator.kerberos.keytab", TMP_DIR + GRAVITINO_SERVER_KEYTAB); - AbstractIT.customConfigs.put(SDK_KERBEROS_KEYTAB_KEY, TMP_DIR + GRAVITINO_CLIENT_KEYTAB); - AbstractIT.customConfigs.put(SDK_KERBEROS_PRINCIPAL_KEY, GRAVITINO_CLIENT_PRINCIPAL); + private void addKerberosConfig() { + customConfigs.put(Configs.AUTHENTICATORS.getKey(), "kerberos"); + customConfigs.put("gravitino.authenticator.kerberos.principal", GRAVITINO_SERVER_PRINCIPAL); + customConfigs.put("gravitino.authenticator.kerberos.keytab", TMP_DIR + GRAVITINO_SERVER_KEYTAB); + customConfigs.put(SDK_KERBEROS_KEYTAB_KEY, TMP_DIR + GRAVITINO_CLIENT_KEYTAB); + customConfigs.put(SDK_KERBEROS_PRINCIPAL_KEY, GRAVITINO_CLIENT_PRINCIPAL); } @Test diff --git a/catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/integration/test/TestMultipleJDBCLoad.java b/catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/integration/test/TestMultipleJDBCLoad.java index 5f78ab57377..215b4351358 100644 --- a/catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/integration/test/TestMultipleJDBCLoad.java +++ b/catalogs/catalog-lakehouse-iceberg/src/test/java/org/apache/gravitino/catalog/lakehouse/iceberg/integration/test/TestMultipleJDBCLoad.java @@ -43,8 +43,10 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; @Tag("gravitino-docker-test") +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class TestMultipleJDBCLoad extends AbstractIT { private static final TestDatabaseName TEST_DB_NAME = TestDatabaseName.PG_TEST_ICEBERG_CATALOG_MULTIPLE_JDBC_LOAD; @@ -55,7 +57,7 @@ public class TestMultipleJDBCLoad extends AbstractIT { public static final String DEFAULT_POSTGRES_IMAGE = "postgres:13"; @BeforeAll - public static void startup() throws IOException { + public void startup() throws IOException { containerSuite.startMySQLContainer(TEST_DB_NAME); mySQLContainer = containerSuite.getMySQLContainer(); containerSuite.startPostgreSQLContainer(TEST_DB_NAME); diff --git a/catalogs/catalog-lakehouse-paimon/src/test/java/org/apache/gravitino/catalog/lakehouse/paimon/integration/test/CatalogPaimonKerberosFilesystemIT.java b/catalogs/catalog-lakehouse-paimon/src/test/java/org/apache/gravitino/catalog/lakehouse/paimon/integration/test/CatalogPaimonKerberosFilesystemIT.java index f9f31ceadfe..ddc92f70afc 100644 --- a/catalogs/catalog-lakehouse-paimon/src/test/java/org/apache/gravitino/catalog/lakehouse/paimon/integration/test/CatalogPaimonKerberosFilesystemIT.java +++ b/catalogs/catalog-lakehouse-paimon/src/test/java/org/apache/gravitino/catalog/lakehouse/paimon/integration/test/CatalogPaimonKerberosFilesystemIT.java @@ -99,7 +99,7 @@ public class CatalogPaimonKerberosFilesystemIT extends AbstractIT { private static final String FILESYSTEM_COL_NAME3 = "col3"; @BeforeAll - public static void startIntegrationTest() { + public void startIntegrationTest() { containerSuite.startKerberosHiveContainer(); kerberosHiveContainer = containerSuite.getKerberosHiveContainer(); @@ -122,14 +122,14 @@ public static void startIntegrationTest() { addKerberosConfig(); // Start Gravitino server - AbstractIT.startIntegrationTest(); + super.startIntegrationTest(); } catch (Exception e) { throw new RuntimeException(e); } } @AfterAll - public static void stop() { + public void stop() { // Reset the UGI UserGroupInformation.reset(); @@ -138,7 +138,7 @@ public static void stop() { System.clearProperty("java.security.krb5.conf"); System.clearProperty("sun.security.krb5.debug"); - AbstractIT.client = null; + client = null; } private static void prepareKerberosConfig() throws Exception { @@ -194,14 +194,12 @@ private static void refreshKerberosConfig() { } } - private static void addKerberosConfig() { - AbstractIT.customConfigs.put(Configs.AUTHENTICATORS.getKey(), "kerberos"); - AbstractIT.customConfigs.put( - "gravitino.authenticator.kerberos.principal", GRAVITINO_SERVER_PRINCIPAL); - AbstractIT.customConfigs.put( - "gravitino.authenticator.kerberos.keytab", TMP_DIR + GRAVITINO_SERVER_KEYTAB); - AbstractIT.customConfigs.put(SDK_KERBEROS_KEYTAB_KEY, TMP_DIR + GRAVITINO_CLIENT_KEYTAB); - AbstractIT.customConfigs.put(SDK_KERBEROS_PRINCIPAL_KEY, GRAVITINO_CLIENT_PRINCIPAL); + private void addKerberosConfig() { + customConfigs.put(Configs.AUTHENTICATORS.getKey(), "kerberos"); + customConfigs.put("gravitino.authenticator.kerberos.principal", GRAVITINO_SERVER_PRINCIPAL); + customConfigs.put("gravitino.authenticator.kerberos.keytab", TMP_DIR + GRAVITINO_SERVER_KEYTAB); + customConfigs.put(SDK_KERBEROS_KEYTAB_KEY, TMP_DIR + GRAVITINO_CLIENT_KEYTAB); + customConfigs.put(SDK_KERBEROS_PRINCIPAL_KEY, GRAVITINO_CLIENT_PRINCIPAL); } @Test diff --git a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/AuditIT.java b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/AuditIT.java index a7ab09033d9..92e7c35d1ae 100644 --- a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/AuditIT.java +++ b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/AuditIT.java @@ -31,17 +31,19 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class AuditIT extends AbstractIT { private static final String expectUser = System.getProperty("user.name"); @BeforeAll - public static void startIntegrationTest() throws Exception { + public void startIntegrationTest() throws Exception { Map configs = Maps.newHashMap(); configs.put(Configs.AUTHENTICATORS.getKey(), AuthenticatorType.SIMPLE.name().toLowerCase()); registerCustomConfigs(configs); - AbstractIT.startIntegrationTest(); + super.startIntegrationTest(); } @Test diff --git a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/CatalogIT.java b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/CatalogIT.java index 94b9eea68e9..62b26f55562 100644 --- a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/CatalogIT.java +++ b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/CatalogIT.java @@ -37,11 +37,13 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.condition.DisabledIfSystemProperty; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Tag("gravitino-docker-test") +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class CatalogIT extends AbstractIT { private static final Logger LOG = LoggerFactory.getLogger(CatalogIT.class); @@ -55,7 +57,7 @@ public class CatalogIT extends AbstractIT { private static String hmsUri; @BeforeAll - public static void startUp() { + public void startUp() { containerSuite.startHiveContainer(); hmsUri = String.format( @@ -69,7 +71,7 @@ public static void startUp() { } @AfterAll - public static void tearDown() { + public void tearDown() { client.dropMetalake(metalakeName); if (client != null) { diff --git a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/TagIT.java b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/TagIT.java index 8d91c369d81..e7718156793 100644 --- a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/TagIT.java +++ b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/TagIT.java @@ -47,8 +47,10 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; @org.junit.jupiter.api.Tag("gravitino-docker-test") +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class TagIT extends AbstractIT { private static final ContainerSuite containerSuite = ContainerSuite.getInstance(); @@ -61,7 +63,7 @@ public class TagIT extends AbstractIT { private static Table table; @BeforeAll - public static void setUp() { + public void setUp() { containerSuite.startHiveContainer(); String hmsUri = String.format( @@ -108,7 +110,7 @@ public static void setUp() { } @AfterAll - public static void tearDown() { + public void tearDown() { relationalCatalog.asTableCatalog().dropTable(NameIdentifier.of(schema.name(), table.name())); relationalCatalog.asSchemas().dropSchema(schema.name(), true); metalake.dropCatalog(relationalCatalog.name()); diff --git a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/VersionOperationsIT.java b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/VersionOperationsIT.java index 9a50d4dd293..8969d388f4e 100644 --- a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/VersionOperationsIT.java +++ b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/VersionOperationsIT.java @@ -23,7 +23,9 @@ import org.apache.gravitino.integration.test.util.ITUtils; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class VersionOperationsIT extends AbstractIT { @Test public void testGetVersion() { diff --git a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/AccessControlIT.java b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/AccessControlIT.java index 76f2c1b0fe8..b7218028f7b 100644 --- a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/AccessControlIT.java +++ b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/AccessControlIT.java @@ -43,19 +43,21 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class AccessControlIT extends AbstractIT { private static String metalakeName = RandomNameUtils.genRandomName("metalake"); private static GravitinoMetalake metalake; @BeforeAll - public static void startIntegrationTest() throws Exception { + public void startIntegrationTest() throws Exception { Map configs = Maps.newHashMap(); configs.put(Configs.ENABLE_AUTHORIZATION.getKey(), String.valueOf(true)); configs.put(Configs.SERVICE_ADMINS.getKey(), AuthConstants.ANONYMOUS_USER); registerCustomConfigs(configs); - AbstractIT.startIntegrationTest(); + super.startIntegrationTest(); metalake = client.createMetalake(metalakeName, "metalake comment", Collections.emptyMap()); } diff --git a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/AccessControlNotAllowIT.java b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/AccessControlNotAllowIT.java index 22986458ba6..5e2c4db0389 100644 --- a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/AccessControlNotAllowIT.java +++ b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/AccessControlNotAllowIT.java @@ -30,7 +30,9 @@ import org.apache.gravitino.utils.RandomNameUtils; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class AccessControlNotAllowIT extends AbstractIT { public static String metalakeTestName = RandomNameUtils.genRandomName("test"); diff --git a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/KerberosOperationsIT.java b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/KerberosOperationsIT.java index 3ba68e1803c..ab9a07acacc 100644 --- a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/KerberosOperationsIT.java +++ b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/KerberosOperationsIT.java @@ -41,8 +41,10 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; import org.testcontainers.shaded.com.google.common.util.concurrent.Uninterruptibles; +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class KerberosOperationsIT extends AbstractIT { private static final KerberosSecurityTestcase kdc = @@ -65,7 +67,7 @@ public void createMiniKdcConf() { private static final String clientPrincipal = "client@EXAMPLE.COM"; @BeforeAll - public static void startIntegrationTest() throws Exception { + public void startIntegrationTest() throws Exception { kdc.startMiniKdc(); initKeyTab(); @@ -78,7 +80,7 @@ public static void startIntegrationTest() throws Exception { registerCustomConfigs(configs); - AbstractIT.startIntegrationTest(); + super.startIntegrationTest(); client = GravitinoAdminClient.builder(serverUri) @@ -91,8 +93,8 @@ public static void startIntegrationTest() throws Exception { } @AfterAll - public static void stopIntegrationTest() throws IOException, InterruptedException { - AbstractIT.stopIntegrationTest(); + public void stopIntegrationTest() throws IOException, InterruptedException { + super.stopIntegrationTest(); kdc.stopMiniKdc(); } diff --git a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/MultiAuthOperationsIT.java b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/MultiAuthOperationsIT.java index f0df92b6303..3de33de6c3e 100644 --- a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/MultiAuthOperationsIT.java +++ b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/MultiAuthOperationsIT.java @@ -52,9 +52,11 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; import org.testcontainers.shaded.com.google.common.util.concurrent.Uninterruptibles; @Tag("gravitino-docker-test") +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class MultiAuthOperationsIT extends AbstractIT { private static final KerberosSecurityTestcase kdc = new KerberosSecurityTestcase() { @@ -73,7 +75,7 @@ public void createMiniKdcConf() { private static GravitinoAdminClient kerberosClient; @BeforeAll - public static void startIntegrationTest() throws Exception { + public void startIntegrationTest() throws Exception { Map configs = Maps.newHashMap(); configs.put( Configs.AUTHENTICATORS.getKey(), @@ -86,7 +88,7 @@ public static void startIntegrationTest() throws Exception { configKerberos(configs); registerCustomConfigs(configs); - AbstractIT.startIntegrationTest(); + super.startIntegrationTest(); oauthClient = GravitinoAdminClient.builder(serverUri) @@ -107,8 +109,8 @@ public static void startIntegrationTest() throws Exception { } @AfterAll - public static void stopIntegrationTest() throws IOException, InterruptedException { - AbstractIT.stopIntegrationTest(); + public void stopIntegrationTest() throws IOException, InterruptedException { + super.stopIntegrationTest(); kdc.stopMiniKdc(); } diff --git a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/OAuth2OperationsIT.java b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/OAuth2OperationsIT.java index d78586fa0a0..94342468e22 100644 --- a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/OAuth2OperationsIT.java +++ b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/OAuth2OperationsIT.java @@ -37,7 +37,9 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class OAuth2OperationsIT extends AbstractIT { private static final KeyPair keyPair = Keys.keyPairFor(SignatureAlgorithm.RS256); @@ -49,7 +51,7 @@ public class OAuth2OperationsIT extends AbstractIT { @SuppressWarnings("JavaUtilDate") @BeforeAll - public static void startIntegrationTest() throws Exception { + public void startIntegrationTest() throws Exception { Map configs = Maps.newHashMap(); token = Jwts.builder() @@ -68,7 +70,7 @@ public static void startIntegrationTest() throws Exception { registerCustomConfigs(configs); OAuthMockDataProvider mockDataProvider = OAuthMockDataProvider.getInstance(); mockDataProvider.setTokenData(token.getBytes(StandardCharsets.UTF_8)); - AbstractIT.startIntegrationTest(); + super.startIntegrationTest(); } @Test diff --git a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/OwnerIT.java b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/OwnerIT.java index ca9d96b8b10..5762b654acc 100644 --- a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/OwnerIT.java +++ b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/OwnerIT.java @@ -48,10 +48,12 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Tag("gravitino-docker-test") +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class OwnerIT extends AbstractIT { private static final Logger LOG = LoggerFactory.getLogger(OwnerIT.class); @@ -61,12 +63,12 @@ public class OwnerIT extends AbstractIT { private static String kafkaBootstrapServers; @BeforeAll - public static void startIntegrationTest() throws Exception { + public void startIntegrationTest() throws Exception { Map configs = Maps.newHashMap(); configs.put(Configs.ENABLE_AUTHORIZATION.getKey(), String.valueOf(true)); configs.put(Configs.SERVICE_ADMINS.getKey(), AuthConstants.ANONYMOUS_USER); registerCustomConfigs(configs); - AbstractIT.startIntegrationTest(); + super.startIntegrationTest(); containerSuite.startHiveContainer(); hmsUri = @@ -84,7 +86,7 @@ public static void startIntegrationTest() throws Exception { } @AfterAll - public static void tearDown() { + public void tearDown() { if (client != null) { client.close(); client = null; diff --git a/clients/filesystem-hadoop3/src/test/java/org/apache/gravitino/filesystem/hadoop/integration/test/GravitinoVirtualFileSystemIT.java b/clients/filesystem-hadoop3/src/test/java/org/apache/gravitino/filesystem/hadoop/integration/test/GravitinoVirtualFileSystemIT.java index fae41264cbb..3398e28c72a 100644 --- a/clients/filesystem-hadoop3/src/test/java/org/apache/gravitino/filesystem/hadoop/integration/test/GravitinoVirtualFileSystemIT.java +++ b/clients/filesystem-hadoop3/src/test/java/org/apache/gravitino/filesystem/hadoop/integration/test/GravitinoVirtualFileSystemIT.java @@ -50,10 +50,12 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Tag("gravitino-docker-test") +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class GravitinoVirtualFileSystemIT extends AbstractIT { private static final Logger LOG = LoggerFactory.getLogger(GravitinoVirtualFileSystemIT.class); private static final ContainerSuite containerSuite = ContainerSuite.getInstance(); @@ -64,7 +66,7 @@ public class GravitinoVirtualFileSystemIT extends AbstractIT { private static Configuration conf = new Configuration(); @BeforeAll - public static void startUp() { + public void startUp() { containerSuite.startHiveContainer(); Assertions.assertFalse(client.metalakeExists(metalakeName)); metalake = client.createMetalake(metalakeName, "metalake comment", Collections.emptyMap()); @@ -87,7 +89,7 @@ public static void startUp() { } @AfterAll - public static void tearDown() throws IOException { + public void tearDown() throws IOException { Catalog catalog = metalake.loadCatalog(catalogName); catalog.asSchemas().dropSchema(schemaName, true); metalake.dropCatalog(catalogName); diff --git a/core/src/test/java/org/apache/gravitino/storage/TestEntityStorage.java b/core/src/test/java/org/apache/gravitino/storage/TestEntityStorage.java index 46bb5fb9337..e036c91728b 100644 --- a/core/src/test/java/org/apache/gravitino/storage/TestEntityStorage.java +++ b/core/src/test/java/org/apache/gravitino/storage/TestEntityStorage.java @@ -125,6 +125,7 @@ private void init(String type, Config config) { Mockito.when(config.get(ENTITY_RELATIONAL_JDBC_BACKEND_PATH)).thenReturn(DB_DIR); Mockito.when(config.get(STORE_DELETE_AFTER_TIME)).thenReturn(20 * 60 * 1000L); Mockito.when(config.get(VERSION_RETENTION_COUNT)).thenReturn(1L); + AbstractIT abstractIT = new AbstractIT(); try { if (type.equalsIgnoreCase("h2")) { @@ -141,7 +142,7 @@ private void init(String type, Config config) { SQLExceptionConverterFactory.class, "converter", new H2ExceptionConverter(), true); } else if (type.equalsIgnoreCase("mysql")) { - String mysqlJdbcUrl = AbstractIT.startAndInitMySQLBackend(); + String mysqlJdbcUrl = abstractIT.startAndInitMySQLBackend(); Mockito.when(config.get(ENTITY_RELATIONAL_JDBC_BACKEND_URL)).thenReturn(mysqlJdbcUrl); Mockito.when(config.get(ENTITY_RELATIONAL_JDBC_BACKEND_USER)).thenReturn("root"); Mockito.when(config.get(ENTITY_RELATIONAL_JDBC_BACKEND_PASSWORD)).thenReturn("root"); @@ -152,7 +153,7 @@ private void init(String type, Config config) { SQLExceptionConverterFactory.class, "converter", new MySQLExceptionConverter(), true); } else if (type.equalsIgnoreCase("postgresql")) { - String postgreSQLJdbcUrl = AbstractIT.startAndInitPGBackend(); + String postgreSQLJdbcUrl = abstractIT.startAndInitPGBackend(); Mockito.when(config.get(ENTITY_RELATIONAL_JDBC_BACKEND_URL)).thenReturn(postgreSQLJdbcUrl); Mockito.when(config.get(ENTITY_RELATIONAL_JDBC_BACKEND_USER)).thenReturn("root"); Mockito.when(config.get(ENTITY_RELATIONAL_JDBC_BACKEND_PASSWORD)).thenReturn("root"); diff --git a/flink-connector/flink/src/test/java/org/apache/gravitino/flink/connector/integration/test/FlinkEnvIT.java b/flink-connector/flink/src/test/java/org/apache/gravitino/flink/connector/integration/test/FlinkEnvIT.java index 4d61b3ad489..eea1d87965b 100644 --- a/flink-connector/flink/src/test/java/org/apache/gravitino/flink/connector/integration/test/FlinkEnvIT.java +++ b/flink-connector/flink/src/test/java/org/apache/gravitino/flink/connector/integration/test/FlinkEnvIT.java @@ -40,9 +40,11 @@ import org.apache.hadoop.fs.FileSystem; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.TestInstance; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public abstract class FlinkEnvIT extends AbstractIT { private static final Logger LOG = LoggerFactory.getLogger(FlinkEnvIT.class); private static final ContainerSuite CONTAINER_SUITE = ContainerSuite.getInstance(); @@ -61,7 +63,7 @@ public abstract class FlinkEnvIT extends AbstractIT { private static String gravitinoUri = "http://127.0.0.1:8090"; @BeforeAll - static void startUp() { + void startUp() { // Start Gravitino server initGravitinoEnv(); initMetalake(); @@ -82,13 +84,13 @@ protected String flinkByPass(String key) { return PropertiesConverter.FLINK_PROPERTY_PREFIX + key; } - private static void initGravitinoEnv() { + private void initGravitinoEnv() { // Gravitino server is already started by AbstractIT, just construct gravitinoUrl int gravitinoPort = getGravitinoServerPort(); gravitinoUri = String.format("http://127.0.0.1:%d", gravitinoPort); } - private static void initMetalake() { + private void initMetalake() { metalake = client.createMetalake(GRAVITINO_METALAKE, "", Collections.emptyMap()); } diff --git a/integration-test-common/src/test/java/org/apache/gravitino/integration/test/util/AbstractIT.java b/integration-test-common/src/test/java/org/apache/gravitino/integration/test/util/AbstractIT.java index 6644e1f646c..30746f7614a 100644 --- a/integration-test-common/src/test/java/org/apache/gravitino/integration/test/util/AbstractIT.java +++ b/integration-test-common/src/test/java/org/apache/gravitino/integration/test/util/AbstractIT.java @@ -58,6 +58,7 @@ import org.apache.gravitino.server.web.JettyServerConfig; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource; @@ -66,27 +67,28 @@ import org.testcontainers.shaded.org.awaitility.Awaitility; @ExtendWith({PrintFuncNameExtension.class, CloseContainerExtension.class}) +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class AbstractIT { protected static final ContainerSuite containerSuite = ContainerSuite.getInstance(); private static final Logger LOG = LoggerFactory.getLogger(AbstractIT.class); private static final Splitter COMMA = Splitter.on(",").omitEmptyStrings().trimResults(); - protected static GravitinoAdminClient client; + protected GravitinoAdminClient client; private static final OAuthMockDataProvider mockDataProvider = OAuthMockDataProvider.getInstance(); protected static final CloseableGroup closer = CloseableGroup.create(); - private static MiniGravitino miniGravitino; + private MiniGravitino miniGravitino; - protected static Config serverConfig; + protected Config serverConfig; - public static String testMode = ""; + public String testMode = ""; - protected static Map customConfigs = new HashMap<>(); + protected Map customConfigs = new HashMap<>(); - protected static boolean ignoreIcebergRestService = true; + protected boolean ignoreIcebergRestService = true; public static final String DOWNLOAD_MYSQL_JDBC_DRIVER_URL = "https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.26/mysql-connector-java-8.0.26.jar"; @@ -102,17 +104,17 @@ public class AbstractIT { protected static String originConfig; - public static int getGravitinoServerPort() { + public int getGravitinoServerPort() { JettyServerConfig jettyServerConfig = JettyServerConfig.fromConfig(serverConfig, WEBSERVER_CONF_PREFIX); return jettyServerConfig.getHttpPort(); } - public static void registerCustomConfigs(Map configs) { + public void registerCustomConfigs(Map configs) { customConfigs.putAll(configs); } - private static void rewriteGravitinoServerConfig() throws IOException { + private void rewriteGravitinoServerConfig() throws IOException { String gravitinoHome = System.getenv("GRAVITINO_HOME"); Path configPath = Paths.get(gravitinoHome, "conf", GravitinoServer.CONF_FILE); if (originConfig == null) { @@ -139,7 +141,7 @@ private static void recoverGravitinoServerConfig() throws IOException { } } - protected static void downLoadJDBCDriver() throws IOException { + protected void downLoadJDBCDriver() throws IOException { String gravitinoHome = System.getenv("GRAVITINO_HOME"); if (!ITUtils.EMBEDDED_TEST_MODE.equals(testMode)) { String serverPath = ITUtils.joinPath(gravitinoHome, "libs"); @@ -160,7 +162,7 @@ protected static void downLoadJDBCDriver() throws IOException { } } - public static String startAndInitPGBackend() { + public String startAndInitPGBackend() { META_DATA = PG_JDBC_BACKEND; containerSuite.startPostgreSQLContainer(META_DATA); POSTGRESQL_CONTAINER = containerSuite.getPostgreSQLContainer(); @@ -211,7 +213,7 @@ public static String startAndInitPGBackend() { return pgUrlWithoutSchema; } - public static String startAndInitMySQLBackend() { + public String startAndInitMySQLBackend() { META_DATA = TestDatabaseName.MYSQL_JDBC_BACKEND; containerSuite.startMySQLContainer(META_DATA); MYSQL_CONTAINER = containerSuite.getMySQLContainer(); @@ -259,7 +261,7 @@ public static String startAndInitMySQLBackend() { "deploy, kvBackend" }) @BeforeAll - public static void startIntegrationTest() throws Exception { + public void startIntegrationTest() throws Exception { testMode = System.getProperty(ITUtils.TEST_MODE) == null ? ITUtils.EMBEDDED_TEST_MODE @@ -350,7 +352,7 @@ public static void startIntegrationTest() throws Exception { } @AfterAll - public static void stopIntegrationTest() throws IOException, InterruptedException { + public void stopIntegrationTest() throws IOException, InterruptedException { if (testMode != null && testMode.equals(ITUtils.EMBEDDED_TEST_MODE) && miniGravitino != null) { miniGravitino.stop(); } else { @@ -364,7 +366,7 @@ public static void stopIntegrationTest() throws IOException, InterruptedExceptio LOG.info("Tearing down Gravitino Server"); } - public static GravitinoAdminClient getGravitinoClient() { + public GravitinoAdminClient getGravitinoClient() { return client; } diff --git a/spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/integration/test/SparkEnvIT.java b/spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/integration/test/SparkEnvIT.java index 30e6ed44b3f..b534a9772f7 100644 --- a/spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/integration/test/SparkEnvIT.java +++ b/spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/integration/test/SparkEnvIT.java @@ -30,7 +30,6 @@ import org.apache.gravitino.client.GravitinoMetalake; import org.apache.gravitino.integration.test.container.ContainerSuite; import org.apache.gravitino.integration.test.container.HiveContainer; -import org.apache.gravitino.integration.test.util.AbstractIT; import org.apache.gravitino.server.web.JettyServerConfig; import org.apache.gravitino.spark.connector.GravitinoSparkConfig; import org.apache.gravitino.spark.connector.iceberg.IcebergPropertiesConstants; @@ -84,7 +83,7 @@ void startUp() throws Exception { initIcebergRestServiceEnv(); } // Start Gravitino server - AbstractIT.startIntegrationTest(); + super.startIntegrationTest(); initHdfsFileSystem(); initGravitinoEnv(); initMetalakeAndCatalogs(); @@ -107,7 +106,7 @@ void stop() throws IOException, InterruptedException { if (sparkSession != null) { sparkSession.close(); } - AbstractIT.stopIntegrationTest(); + super.stopIntegrationTest(); } // AbstractIT#startIntegrationTest() is static, so we couldn't update the value of @@ -115,14 +114,14 @@ void stop() throws IOException, InterruptedException { // if startIntegrationTest() is auto invoked by Junit. So here we override // startIntegrationTest() to disable the auto invoke by junit. @BeforeAll - public static void startIntegrationTest() {} + public void startIntegrationTest() {} @AfterAll - public static void stopIntegrationTest() {} + public void stopIntegrationTest() {} private void initMetalakeAndCatalogs() { - AbstractIT.client.createMetalake(metalakeName, "", Collections.emptyMap()); - GravitinoMetalake metalake = AbstractIT.client.loadMetalake(metalakeName); + client.createMetalake(metalakeName, "", Collections.emptyMap()); + GravitinoMetalake metalake = client.loadMetalake(metalakeName); Map properties = getCatalogConfigs(); if (lakeHouseIcebergProvider.equalsIgnoreCase(getProvider())) { properties.put(SPARK_PROPERTY_PREFIX + ICEBERG_CATALOG_CACHE_ENABLED, "true"); @@ -133,7 +132,7 @@ private void initMetalakeAndCatalogs() { private void initGravitinoEnv() { // Gravitino server is already started by AbstractIT, just construct gravitinoUrl - int gravitinoPort = AbstractIT.getGravitinoServerPort(); + int gravitinoPort = getGravitinoServerPort(); gravitinoUri = String.format("http://127.0.0.1:%d", gravitinoPort); icebergRestServiceUri = getIcebergRestServiceUri(); } @@ -173,7 +172,7 @@ private void initIcebergRestServiceEnv() { + "." + IcebergPropertiesConstants.GRAVITINO_ICEBERG_CATALOG_WAREHOUSE, warehouse); - AbstractIT.registerCustomConfigs(icebergRestServiceConfigs); + registerCustomConfigs(icebergRestServiceConfigs); } private void initHdfsFileSystem() { diff --git a/spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/integration/test/sql/SparkQueryRunner.java b/spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/integration/test/sql/SparkQueryRunner.java index 982035e8b62..b960eeb2d02 100644 --- a/spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/integration/test/sql/SparkQueryRunner.java +++ b/spark-connector/spark-common/src/test/java/org/apache/gravitino/spark/connector/integration/test/sql/SparkQueryRunner.java @@ -61,6 +61,7 @@ public class SparkQueryRunner { private Map catalogs = new HashMap<>(); private boolean isGravitinoEnvSetup; private String dataDir; + private AbstractIT abstractIT; private static final ContainerSuite containerSuite = ContainerSuite.getInstance(); @@ -83,6 +84,7 @@ public SparkQueryRunner(SparkTestConfig sparkTestConfig) { } initSparkEnv(); + abstractIT = new AbstractIT(); catalogs.put(CatalogType.HIVE, HIVE_CATALOG_NAME); catalogs.put(CatalogType.ICEBERG, ICEBERG_CATALOG_NAME); catalogs.put(CatalogType.UNKNOWN, HIVE_CATALOG_NAME); @@ -134,12 +136,12 @@ private void setupGravitinoEnv() throws Exception { HiveContainer.HDFS_DEFAULTFS_PORT); // Start Gravitino server - AbstractIT.startIntegrationTest(); - int gravitinoPort = AbstractIT.getGravitinoServerPort(); + abstractIT.stopIntegrationTest(); + int gravitinoPort = abstractIT.getGravitinoServerPort(); this.gravitinoUri = String.format("http://127.0.0.1:%d", gravitinoPort); // Init metalake and catalog - GravitinoAdminClient client = AbstractIT.getGravitinoClient(); + GravitinoAdminClient client = abstractIT.getGravitinoClient(); client.createMetalake(metalakeName, "", Collections.emptyMap()); GravitinoMetalake metalake = client.loadMetalake(metalakeName); metalake.createCatalog( @@ -177,7 +179,7 @@ private Map getIcebergCatalogConfigs(String hiveMetastoreUri) { } private void closeGravitinoEnv() throws Exception { - AbstractIT.stopIntegrationTest(); + abstractIT.stopIntegrationTest(); } private void writeQueryOutput(Path outputFile, List queryOutputs) diff --git a/trino-connector/integration-test/src/test/java/org/apache/gravitino/trino/connector/integration/test/TrinoConnectorIT.java b/trino-connector/integration-test/src/test/java/org/apache/gravitino/trino/connector/integration/test/TrinoConnectorIT.java index 589821e6faa..c9bdb7c2f25 100644 --- a/trino-connector/integration-test/src/test/java/org/apache/gravitino/trino/connector/integration/test/TrinoConnectorIT.java +++ b/trino-connector/integration-test/src/test/java/org/apache/gravitino/trino/connector/integration/test/TrinoConnectorIT.java @@ -62,12 +62,14 @@ import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Disabled @Deprecated @Tag("gravitino-docker-test") +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class TrinoConnectorIT extends AbstractIT { public static final Logger LOG = LoggerFactory.getLogger(TrinoConnectorIT.class); @@ -88,7 +90,7 @@ public class TrinoConnectorIT extends AbstractIT { private static Catalog catalog; @BeforeAll - public static void startDockerContainer() throws TException, InterruptedException { + public void startDockerContainer() throws TException, InterruptedException { String trinoConfDir = System.getenv("TRINO_CONF_DIR"); containerSuite.startHiveContainer(); @@ -1379,7 +1381,7 @@ void testDropCatalogAndCreateAgain() { } } - private static void createMetalake() { + private void createMetalake() { GravitinoMetalake[] gravitinoMetalakes = client.listMetalakes(); Assertions.assertEquals(0, gravitinoMetalakes.length); diff --git a/trino-connector/integration-test/src/test/java/org/apache/gravitino/trino/connector/integration/test/TrinoQueryIT.java b/trino-connector/integration-test/src/test/java/org/apache/gravitino/trino/connector/integration/test/TrinoQueryIT.java index c737e762fab..3ec2b6d46e7 100644 --- a/trino-connector/integration-test/src/test/java/org/apache/gravitino/trino/connector/integration/test/TrinoQueryIT.java +++ b/trino-connector/integration-test/src/test/java/org/apache/gravitino/trino/connector/integration/test/TrinoQueryIT.java @@ -46,10 +46,12 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Tag("gravitino-docker-test") +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class TrinoQueryIT extends TrinoQueryITBase { private static final Logger LOG = LoggerFactory.getLogger(TrinoQueryIT.class); @@ -67,6 +69,8 @@ public class TrinoQueryIT extends TrinoQueryITBase { static Set ciTestsets = new HashSet<>(); + static TrinoQueryITBase trinoQueryITBase; + static { testsetsDir = TrinoQueryIT.class.getClassLoader().getResource("trino-ci-testset").getPath(); testsetsDir = ITUtils.joinPath(testsetsDir, "testsets"); @@ -79,8 +83,9 @@ public class TrinoQueryIT extends TrinoQueryITBase { } @BeforeAll - public static void setup() throws Exception { - TrinoQueryITBase.setup(); + public void setup() throws Exception { + trinoQueryITBase = new TrinoQueryITBase(); + trinoQueryITBase.setup(); cleanupTestEnv(); queryParams.put("mysql_uri", mysqlUri); diff --git a/trino-connector/integration-test/src/test/java/org/apache/gravitino/trino/connector/integration/test/TrinoQueryITBase.java b/trino-connector/integration-test/src/test/java/org/apache/gravitino/trino/connector/integration/test/TrinoQueryITBase.java index 1c8e7559fd4..f3832c30771 100644 --- a/trino-connector/integration-test/src/test/java/org/apache/gravitino/trino/connector/integration/test/TrinoQueryITBase.java +++ b/trino-connector/integration-test/src/test/java/org/apache/gravitino/trino/connector/integration/test/TrinoQueryITBase.java @@ -68,14 +68,17 @@ public class TrinoQueryITBase { protected static final String metalakeName = "test"; protected static GravitinoMetalake metalake; - private static void setEnv() throws Exception { + private static AbstractIT abstractIT; + + private void setEnv() throws Exception { + abstractIT = new AbstractIT(); if (autoStart) { - AbstractIT.startIntegrationTest(); - gravitinoClient = AbstractIT.getGravitinoClient(); - gravitinoUri = String.format("http://127.0.0.1:%d", AbstractIT.getGravitinoServerPort()); + abstractIT.startIntegrationTest(); + gravitinoClient = abstractIT.getGravitinoClient(); + gravitinoUri = String.format("http://127.0.0.1:%d", abstractIT.getGravitinoServerPort()); trinoITContainers = ContainerSuite.getTrinoITContainers(); - trinoITContainers.launch(AbstractIT.getGravitinoServerPort()); + trinoITContainers.launch(abstractIT.getGravitinoServerPort()); trinoUri = trinoITContainers.getTrinoUri(); hiveMetastoreUri = trinoITContainers.getHiveMetastoreUri(); @@ -84,16 +87,16 @@ private static void setEnv() throws Exception { postgresqlUri = trinoITContainers.getPostgresqlUri(); } else if (autoStartGravitino) { - AbstractIT.startIntegrationTest(); - gravitinoClient = AbstractIT.getGravitinoClient(); - gravitinoUri = String.format("http://127.0.0.1:%d", AbstractIT.getGravitinoServerPort()); + abstractIT.startIntegrationTest(); + gravitinoClient = abstractIT.getGravitinoClient(); + gravitinoUri = String.format("http://127.0.0.1:%d", abstractIT.getGravitinoServerPort()); } else { gravitinoClient = GravitinoAdminClient.builder(gravitinoUri).build(); } } - public static void setup() throws Exception { + public void setup() throws Exception { if (started) { return; } @@ -113,7 +116,7 @@ public static void cleanup() { try { if (autoStart) { if (trinoITContainers != null) trinoITContainers.shutdown(); - AbstractIT.stopIntegrationTest(); + abstractIT.stopIntegrationTest(); } } catch (Exception e) { LOG.error("Error in cleanup", e); diff --git a/trino-connector/integration-test/src/test/java/org/apache/gravitino/trino/connector/integration/test/TrinoQueryTestTool.java b/trino-connector/integration-test/src/test/java/org/apache/gravitino/trino/connector/integration/test/TrinoQueryTestTool.java index 676bcb62898..820bc255bf7 100644 --- a/trino-connector/integration-test/src/test/java/org/apache/gravitino/trino/connector/integration/test/TrinoQueryTestTool.java +++ b/trino-connector/integration-test/src/test/java/org/apache/gravitino/trino/connector/integration/test/TrinoQueryTestTool.java @@ -217,8 +217,9 @@ public static void main(String[] args) throws Exception { TrinoQueryITBase.autoStart = autoStart; TrinoQueryITBase.autoStartGravitino = autoStartGravitino; - TrinoQueryIT.setup(); +// TrinoQueryIT.setup(); TrinoQueryIT testerRunner = new TrinoQueryIT(); + testerRunner.setup(); if (commandLine.hasOption("gen_output")) { String catalogFileName = "catalog_" + catalog + "_prepare.sql"; diff --git a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/CatalogsPageDorisTest.java b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/CatalogsPageDorisTest.java index 1fcd754b9fc..ac3a9047f03 100644 --- a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/CatalogsPageDorisTest.java +++ b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/CatalogsPageDorisTest.java @@ -29,7 +29,6 @@ import org.apache.gravitino.client.GravitinoMetalake; import org.apache.gravitino.integration.test.container.ContainerSuite; import org.apache.gravitino.integration.test.container.DorisContainer; -import org.apache.gravitino.integration.test.util.AbstractIT; import org.apache.gravitino.integration.test.web.ui.pages.CatalogsPage; import org.apache.gravitino.integration.test.web.ui.pages.MetalakePage; import org.apache.gravitino.integration.test.web.ui.utils.AbstractWebIT; @@ -44,10 +43,12 @@ import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.TestMethodOrder; @Tag("gravitino-docker-test") @TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class CatalogsPageDorisTest extends AbstractWebIT { MetalakePage metalakePage = new MetalakePage(); CatalogsPage catalogsPage = new CatalogsPage(); @@ -77,9 +78,9 @@ public class CatalogsPageDorisTest extends AbstractWebIT { private static final String PROPERTIES_VALUE1 = "val1"; @BeforeAll - public static void before() throws Exception { - gravitinoClient = AbstractIT.getGravitinoClient(); - gravitinoUri = String.format("http://127.0.0.1:%d", AbstractIT.getGravitinoServerPort()); + public void before() throws Exception { + gravitinoClient = getGravitinoClient(); + gravitinoUri = String.format("http://127.0.0.1:%d", getGravitinoServerPort()); containerSuite.startDorisContainer(); diff --git a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/CatalogsPageKafkaTest.java b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/CatalogsPageKafkaTest.java index 5eea61c7a35..d6bbcc768c8 100644 --- a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/CatalogsPageKafkaTest.java +++ b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/CatalogsPageKafkaTest.java @@ -27,7 +27,6 @@ import org.apache.gravitino.client.GravitinoAdminClient; import org.apache.gravitino.client.GravitinoMetalake; import org.apache.gravitino.integration.test.container.ContainerSuite; -import org.apache.gravitino.integration.test.util.AbstractIT; import org.apache.gravitino.integration.test.web.ui.pages.CatalogsPage; import org.apache.gravitino.integration.test.web.ui.pages.MetalakePage; import org.apache.gravitino.integration.test.web.ui.utils.AbstractWebIT; @@ -37,10 +36,12 @@ import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.TestMethodOrder; @Tag("gravitino-docker-test") @TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class CatalogsPageKafkaTest extends AbstractWebIT { MetalakePage metalakePage = new MetalakePage(); CatalogsPage catalogsPage = new CatalogsPage(); @@ -63,10 +64,10 @@ public class CatalogsPageKafkaTest extends AbstractWebIT { public static final int DEFAULT_BROKER_PORT = 9092; @BeforeAll - public static void before() throws Exception { - gravitinoClient = AbstractIT.getGravitinoClient(); + public void before() throws Exception { + gravitinoClient = getGravitinoClient(); - gravitinoUri = String.format("http://127.0.0.1:%d", AbstractIT.getGravitinoServerPort()); + gravitinoUri = String.format("http://127.0.0.1:%d", getGravitinoServerPort()); containerSuite.startKafkaContainer(); diff --git a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/CatalogsPageTest.java b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/CatalogsPageTest.java index 75d385ece8e..ef47eaa5d73 100644 --- a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/CatalogsPageTest.java +++ b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/CatalogsPageTest.java @@ -33,7 +33,6 @@ import org.apache.gravitino.file.Fileset; import org.apache.gravitino.integration.test.container.ContainerSuite; import org.apache.gravitino.integration.test.container.TrinoITContainers; -import org.apache.gravitino.integration.test.util.AbstractIT; import org.apache.gravitino.integration.test.web.ui.pages.CatalogsPage; import org.apache.gravitino.integration.test.web.ui.pages.MetalakePage; import org.apache.gravitino.integration.test.web.ui.utils.AbstractWebIT; @@ -55,11 +54,13 @@ import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.TestMethodOrder; import org.openqa.selenium.By; @Tag("gravitino-docker-test") @TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class CatalogsPageTest extends AbstractWebIT { MetalakePage metalakePage = new MetalakePage(); CatalogsPage catalogsPage = new CatalogsPage(); @@ -115,13 +116,13 @@ public class CatalogsPageTest extends AbstractWebIT { private static String defaultBaseLocation; @BeforeAll - public static void before() throws Exception { - gravitinoClient = AbstractIT.getGravitinoClient(); + public void before() throws Exception { + gravitinoClient = getGravitinoClient(); - gravitinoUri = String.format("http://127.0.0.1:%d", AbstractIT.getGravitinoServerPort()); + gravitinoUri = String.format("http://127.0.0.1:%d", getGravitinoServerPort()); trinoITContainers = ContainerSuite.getTrinoITContainers(); - trinoITContainers.launch(AbstractIT.getGravitinoServerPort()); + trinoITContainers.launch(getGravitinoServerPort()); hiveMetastoreUri = trinoITContainers.getHiveMetastoreUri(); hdfsUri = trinoITContainers.getHdfsUri(); diff --git a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/utils/AbstractWebIT.java b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/utils/AbstractWebIT.java index 9b3b6945d4f..d5e7651e1b4 100644 --- a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/utils/AbstractWebIT.java +++ b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/utils/AbstractWebIT.java @@ -113,7 +113,7 @@ public void beforeEachTest() { } @BeforeAll - public static void startUp() { + public void startUp() { driver = WebDriverManager.getWebDriver(getGravitinoServerPort()); } From dddb2ef73296f7ce3a5c3dfd2aa2d3d5fc713324 Mon Sep 17 00:00:00 2001 From: yuqi Date: Sun, 29 Sep 2024 15:53:46 +0800 Subject: [PATCH 2/9] Fix error. --- integration-test-common/build.gradle.kts | 2 ++ .../trino/connector/integration/test/TrinoQueryTestTool.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/integration-test-common/build.gradle.kts b/integration-test-common/build.gradle.kts index 449c38efce8..93a5cf45cfe 100644 --- a/integration-test-common/build.gradle.kts +++ b/integration-test-common/build.gradle.kts @@ -44,6 +44,8 @@ dependencies { testImplementation(libs.httpclient5) testImplementation(libs.testcontainers) testImplementation(libs.testcontainers.mysql) + testImplementation(libs.mysql.driver) + testImplementation(libs.postgresql.driver) testImplementation(libs.testcontainers.postgresql) testImplementation(libs.ranger.intg) { exclude("org.apache.hadoop", "hadoop-common") diff --git a/trino-connector/integration-test/src/test/java/org/apache/gravitino/trino/connector/integration/test/TrinoQueryTestTool.java b/trino-connector/integration-test/src/test/java/org/apache/gravitino/trino/connector/integration/test/TrinoQueryTestTool.java index 820bc255bf7..1a548067888 100644 --- a/trino-connector/integration-test/src/test/java/org/apache/gravitino/trino/connector/integration/test/TrinoQueryTestTool.java +++ b/trino-connector/integration-test/src/test/java/org/apache/gravitino/trino/connector/integration/test/TrinoQueryTestTool.java @@ -217,7 +217,7 @@ public static void main(String[] args) throws Exception { TrinoQueryITBase.autoStart = autoStart; TrinoQueryITBase.autoStartGravitino = autoStartGravitino; -// TrinoQueryIT.setup(); + // TrinoQueryIT.setup(); TrinoQueryIT testerRunner = new TrinoQueryIT(); testerRunner.setup(); From 1ab6643a88cace2cec707aa10a0979e630043408 Mon Sep 17 00:00:00 2001 From: yuqi Date: Sun, 29 Sep 2024 23:18:20 +0800 Subject: [PATCH 3/9] Fix error. --- .../integration/test/HadoopCatalogIT.java | 4 ++-- .../integration/test/util/AbstractIT.java | 21 ++++++------------- .../test/web/ui/CatalogsPageDorisTest.java | 7 +++++-- .../test/web/ui/CatalogsPageKafkaTest.java | 7 +++++-- .../test/web/ui/CatalogsPageTest.java | 7 +++++-- .../test/web/ui/MetalakePageTest.java | 10 ++++++++- .../test/web/ui/pages/CatalogsPage.java | 3 ++- .../test/web/ui/pages/MetalakePage.java | 3 ++- .../test/web/ui/utils/AbstractWebIT.java | 4 ++-- 9 files changed, 38 insertions(+), 28 deletions(-) diff --git a/catalogs/catalog-hadoop/src/test/java/org/apache/gravitino/catalog/hadoop/integration/test/HadoopCatalogIT.java b/catalogs/catalog-hadoop/src/test/java/org/apache/gravitino/catalog/hadoop/integration/test/HadoopCatalogIT.java index ab118c58850..19a51dd3b69 100644 --- a/catalogs/catalog-hadoop/src/test/java/org/apache/gravitino/catalog/hadoop/integration/test/HadoopCatalogIT.java +++ b/catalogs/catalog-hadoop/src/test/java/org/apache/gravitino/catalog/hadoop/integration/test/HadoopCatalogIT.java @@ -116,14 +116,14 @@ private void createMetalake() { metalake = loadMetalake; } - private static void createCatalog() { + private void createCatalog() { metalake.createCatalog( catalogName, Catalog.Type.FILESET, provider, "comment", ImmutableMap.of()); catalog = metalake.loadCatalog(catalogName); } - private static void createSchema() { + private void createSchema() { Map properties = Maps.newHashMap(); properties.put("key1", "val1"); properties.put("key2", "val2"); diff --git a/integration-test-common/src/test/java/org/apache/gravitino/integration/test/util/AbstractIT.java b/integration-test-common/src/test/java/org/apache/gravitino/integration/test/util/AbstractIT.java index a8d8bf3b8fb..90fec536035 100644 --- a/integration-test-common/src/test/java/org/apache/gravitino/integration/test/util/AbstractIT.java +++ b/integration-test-common/src/test/java/org/apache/gravitino/integration/test/util/AbstractIT.java @@ -60,8 +60,6 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.extension.ExtendWith; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.CsvSource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testcontainers.shaded.org.awaitility.Awaitility; @@ -96,13 +94,13 @@ public class AbstractIT { public static final String DOWNLOAD_POSTGRESQL_JDBC_DRIVER_URL = "https://jdbc.postgresql.org/download/postgresql-42.7.0.jar"; - private static TestDatabaseName META_DATA; - private static MySQLContainer MYSQL_CONTAINER; - private static PostgreSQLContainer POSTGRESQL_CONTAINER; + private TestDatabaseName META_DATA; + private MySQLContainer MYSQL_CONTAINER; + private PostgreSQLContainer POSTGRESQL_CONTAINER; - protected static String serverUri; + protected String serverUri; - protected static String originConfig; + protected String originConfig; public int getGravitinoServerPort() { JettyServerConfig jettyServerConfig = @@ -131,7 +129,7 @@ private void rewriteGravitinoServerConfig() throws IOException { ITUtils.rewriteConfigFile(tmpPath.toString(), configPath.toString(), customConfigs); } - private static void recoverGravitinoServerConfig() throws IOException { + private void recoverGravitinoServerConfig() throws IOException { String gravitinoHome = System.getenv("GRAVITINO_HOME"); Path configPath = Paths.get(gravitinoHome, "conf", GravitinoServer.CONF_FILE); @@ -253,13 +251,6 @@ public String startAndInitMySQLBackend() { } } - @ParameterizedTest - @CsvSource({ - "embedded, jdbcBackend", - "embedded, kvBackend", - "deploy, jdbcBackend", - "deploy, kvBackend" - }) @BeforeAll public void startIntegrationTest() throws Exception { testMode = diff --git a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/CatalogsPageDorisTest.java b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/CatalogsPageDorisTest.java index ac3a9047f03..1c613d1dfbf 100644 --- a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/CatalogsPageDorisTest.java +++ b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/CatalogsPageDorisTest.java @@ -50,8 +50,8 @@ @TestMethodOrder(MethodOrderer.OrderAnnotation.class) @TestInstance(TestInstance.Lifecycle.PER_CLASS) public class CatalogsPageDorisTest extends AbstractWebIT { - MetalakePage metalakePage = new MetalakePage(); - CatalogsPage catalogsPage = new CatalogsPage(); + private MetalakePage metalakePage; + private CatalogsPage catalogsPage; private static final ContainerSuite containerSuite = ContainerSuite.getInstance(); protected static GravitinoAdminClient gravitinoClient; @@ -90,6 +90,9 @@ public void before() throws Exception { containerSuite.getDorisContainer().getContainerIpAddress(), DorisContainer.FE_MYSQL_PORT); LOG.info("Doris jdbc url: {}", dorisJdbcConnectionUri); + + metalakePage = new MetalakePage(driver); + catalogsPage = new CatalogsPage(driver); } /** diff --git a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/CatalogsPageKafkaTest.java b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/CatalogsPageKafkaTest.java index d6bbcc768c8..6c533e46c17 100644 --- a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/CatalogsPageKafkaTest.java +++ b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/CatalogsPageKafkaTest.java @@ -43,8 +43,8 @@ @TestMethodOrder(MethodOrderer.OrderAnnotation.class) @TestInstance(TestInstance.Lifecycle.PER_CLASS) public class CatalogsPageKafkaTest extends AbstractWebIT { - MetalakePage metalakePage = new MetalakePage(); - CatalogsPage catalogsPage = new CatalogsPage(); + private MetalakePage metalakePage; + private CatalogsPage catalogsPage; private static final ContainerSuite containerSuite = ContainerSuite.getInstance(); protected static GravitinoAdminClient gravitinoClient; @@ -73,6 +73,9 @@ public void before() throws Exception { String address = containerSuite.getKafkaContainer().getContainerIpAddress(); kafkaUri = String.format("%s:%d", address, DEFAULT_BROKER_PORT); + + metalakePage = new MetalakePage(driver); + catalogsPage = new CatalogsPage(driver); } /** diff --git a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/CatalogsPageTest.java b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/CatalogsPageTest.java index ef47eaa5d73..0a80d3fad6b 100644 --- a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/CatalogsPageTest.java +++ b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/CatalogsPageTest.java @@ -62,8 +62,8 @@ @TestMethodOrder(MethodOrderer.OrderAnnotation.class) @TestInstance(TestInstance.Lifecycle.PER_CLASS) public class CatalogsPageTest extends AbstractWebIT { - MetalakePage metalakePage = new MetalakePage(); - CatalogsPage catalogsPage = new CatalogsPage(); + private MetalakePage metalakePage; + private CatalogsPage catalogsPage; protected static TrinoITContainers trinoITContainers; protected static GravitinoAdminClient gravitinoClient; @@ -128,6 +128,9 @@ public void before() throws Exception { hdfsUri = trinoITContainers.getHdfsUri(); mysqlUri = trinoITContainers.getMysqlUri(); postgresqlUri = trinoITContainers.getPostgresqlUri(); + + metalakePage = new MetalakePage(driver); + catalogsPage = new CatalogsPage(driver); } /** diff --git a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/MetalakePageTest.java b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/MetalakePageTest.java index d288543cc1f..538459f53ae 100644 --- a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/MetalakePageTest.java +++ b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/MetalakePageTest.java @@ -21,14 +21,17 @@ import org.apache.gravitino.integration.test.web.ui.pages.MetalakePage; import org.apache.gravitino.integration.test.web.ui.utils.AbstractWebIT; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.MethodOrderer; import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.TestMethodOrder; import org.junit.jupiter.api.condition.DisabledIfSystemProperty; @DisabledIfSystemProperty(named = "testMode", matches = "embedded") @TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class MetalakePageTest extends AbstractWebIT { private static final String WEB_TITLE = "Gravitino"; private static final String METALAKE_NAME = "metalake_name"; @@ -38,7 +41,12 @@ public class MetalakePageTest extends AbstractWebIT { private static final String FOOTER_LINK_LICENSE = "https://github.com/apache/gravitino/blob/main/LICENSE"; private static final String FOOTER_LINK_SUPPORT = "https://github.com/apache/gravitino/issues"; - MetalakePage metalakePage = new MetalakePage(); + private MetalakePage metalakePage; + + @BeforeAll + void init() { + metalakePage = new MetalakePage(driver); + } // Create a metalake by name, set the default comment and properties. public void createMetalakeAction(String name) throws InterruptedException { diff --git a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/pages/CatalogsPage.java b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/pages/CatalogsPage.java index 1df4f41729c..e4fab724dd7 100644 --- a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/pages/CatalogsPage.java +++ b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/pages/CatalogsPage.java @@ -30,6 +30,7 @@ import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.Keys; +import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.PageFactory; @@ -115,7 +116,7 @@ public class CatalogsPage extends AbstractWebIT { @FindBy(xpath = "//ul[@aria-labelledby='select-catalog-type']") public WebElement catalogTypeList; - public CatalogsPage() { + public CatalogsPage(WebDriver driver) { PageFactory.initElements(driver, this); } diff --git a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/pages/MetalakePage.java b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/pages/MetalakePage.java index 95153495b1c..5622ef67a9f 100644 --- a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/pages/MetalakePage.java +++ b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/pages/MetalakePage.java @@ -26,6 +26,7 @@ import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.Keys; +import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.PageFactory; @@ -109,7 +110,7 @@ public class MetalakePage extends AbstractWebIT { @FindBy(xpath = "//a[@data-refer='footer-link-support']") public WebElement footerLinkSupport; - public MetalakePage() { + public MetalakePage(WebDriver driver) { PageFactory.initElements(driver, this); } diff --git a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/utils/AbstractWebIT.java b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/utils/AbstractWebIT.java index d5e7651e1b4..1800b5445a7 100644 --- a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/utils/AbstractWebIT.java +++ b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/utils/AbstractWebIT.java @@ -43,7 +43,7 @@ // AbstractWebIT provides a WebDriver instance for WEB UI tests. public class AbstractWebIT extends AbstractIT { protected static final Logger LOG = LoggerFactory.getLogger(AbstractWebIT.class); - protected static WebDriver driver; + protected WebDriver driver; // https://www.selenium.dev/documentation/webdriver/waits/#implicit-waits protected static final long MAX_IMPLICIT_WAIT = 30; @@ -118,7 +118,7 @@ public void startUp() { } @AfterAll - public static void tearDown() { + public void tearDown() { driver.quit(); } } From 97d2bf314990e7aa31b313c034ecf717e8fcae6a Mon Sep 17 00:00:00 2001 From: yuqi Date: Sun, 29 Sep 2024 23:58:47 +0800 Subject: [PATCH 4/9] Fix test error. --- .../integration/test/authorization/KerberosOperationsIT.java | 4 ++++ .../integration/test/authorization/MultiAuthOperationsIT.java | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/KerberosOperationsIT.java b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/KerberosOperationsIT.java index ab9a07acacc..9d94cf37f65 100644 --- a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/KerberosOperationsIT.java +++ b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/KerberosOperationsIT.java @@ -66,6 +66,10 @@ public void createMiniKdcConf() { private static final String clientPrincipal = "client@EXAMPLE.COM"; + public KerberosOperationsIT(GravitinoAdminClient client) { + this.client = client; + } + @BeforeAll public void startIntegrationTest() throws Exception { kdc.startMiniKdc(); diff --git a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/MultiAuthOperationsIT.java b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/MultiAuthOperationsIT.java index 3de33de6c3e..777b989eb91 100644 --- a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/MultiAuthOperationsIT.java +++ b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/MultiAuthOperationsIT.java @@ -123,7 +123,7 @@ public void testMultiAuthenticationSuccess() throws Exception { final String gitCommitId = readGitCommitIdFromGitFile(); Assertions.assertEquals(gitCommitId, gravitinoVersion1.gitCommit()); } - new KerberosOperationsIT().testAuthenticationApi(); + new KerberosOperationsIT(client).testAuthenticationApi(); GravitinoVersion gravitinoVersion2 = kerberosClient.serverVersion(); Assertions.assertEquals(System.getenv("PROJECT_VERSION"), gravitinoVersion2.version()); From be2ea877d12a5e77fde59a9e3ec5548bad45487e Mon Sep 17 00:00:00 2001 From: yuqi Date: Mon, 30 Sep 2024 09:30:16 +0800 Subject: [PATCH 5/9] Fix test error. --- .../integration/test/authorization/KerberosOperationsIT.java | 2 +- .../test/authorization/MultiAuthOperationsIT.java | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/KerberosOperationsIT.java b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/KerberosOperationsIT.java index 9d94cf37f65..124800026ca 100644 --- a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/KerberosOperationsIT.java +++ b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/KerberosOperationsIT.java @@ -66,7 +66,7 @@ public void createMiniKdcConf() { private static final String clientPrincipal = "client@EXAMPLE.COM"; - public KerberosOperationsIT(GravitinoAdminClient client) { + public void setGravitinoAdminClient(GravitinoAdminClient client) { this.client = client; } diff --git a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/MultiAuthOperationsIT.java b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/MultiAuthOperationsIT.java index 777b989eb91..6dcbbf770b0 100644 --- a/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/MultiAuthOperationsIT.java +++ b/clients/client-java/src/test/java/org/apache/gravitino/client/integration/test/authorization/MultiAuthOperationsIT.java @@ -123,7 +123,10 @@ public void testMultiAuthenticationSuccess() throws Exception { final String gitCommitId = readGitCommitIdFromGitFile(); Assertions.assertEquals(gitCommitId, gravitinoVersion1.gitCommit()); } - new KerberosOperationsIT(client).testAuthenticationApi(); + + KerberosOperationsIT kerberosOperationsIT = new KerberosOperationsIT(); + kerberosOperationsIT.setGravitinoAdminClient(client); + kerberosOperationsIT.testAuthenticationApi(); GravitinoVersion gravitinoVersion2 = kerberosClient.serverVersion(); Assertions.assertEquals(System.getenv("PROJECT_VERSION"), gravitinoVersion2.version()); From e3aa6a22e293a3e09988e374c0918200e025a063 Mon Sep 17 00:00:00 2001 From: yuqi Date: Mon, 30 Sep 2024 15:27:08 +0800 Subject: [PATCH 6/9] fix --- .../gravitino/integration/test/web/ui/pages/CatalogsPage.java | 1 + .../gravitino/integration/test/web/ui/pages/MetalakePage.java | 3 ++- .../gravitino/integration/test/web/ui/utils/AbstractWebIT.java | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/pages/CatalogsPage.java b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/pages/CatalogsPage.java index e4fab724dd7..f0497ad7dee 100644 --- a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/pages/CatalogsPage.java +++ b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/pages/CatalogsPage.java @@ -117,6 +117,7 @@ public class CatalogsPage extends AbstractWebIT { public WebElement catalogTypeList; public CatalogsPage(WebDriver driver) { + this.driver = driver; PageFactory.initElements(driver, this); } diff --git a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/pages/MetalakePage.java b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/pages/MetalakePage.java index 5622ef67a9f..f1bf20a0998 100644 --- a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/pages/MetalakePage.java +++ b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/pages/MetalakePage.java @@ -111,6 +111,7 @@ public class MetalakePage extends AbstractWebIT { public WebElement footerLinkSupport; public MetalakePage(WebDriver driver) { + this.driver = driver; PageFactory.initElements(driver, this); } @@ -387,7 +388,7 @@ public boolean verifyLinkInNewWindow( LOG.error(e.getMessage(), e); return false; } finally { - driver.close(); + // driver.close(); driver.switchTo().window(originalWindowHandle); } } diff --git a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/utils/AbstractWebIT.java b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/utils/AbstractWebIT.java index 1800b5445a7..b354511d020 100644 --- a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/utils/AbstractWebIT.java +++ b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/utils/AbstractWebIT.java @@ -47,7 +47,7 @@ public class AbstractWebIT extends AbstractIT { // https://www.selenium.dev/documentation/webdriver/waits/#implicit-waits protected static final long MAX_IMPLICIT_WAIT = 30; - protected static final long MAX_TIMEOUT = 20; + protected static final long MAX_TIMEOUT = 60; protected static final long EACH_TEST_SLEEP_MILLIS = 1_000; protected static final long ACTION_SLEEP_MILLIS = 1_000; From 5ab7af528dab32e259809eca076e9b6ac9bd1857 Mon Sep 17 00:00:00 2001 From: yuqi Date: Mon, 30 Sep 2024 17:32:27 +0800 Subject: [PATCH 7/9] fix --- .../gravitino/integration/test/web/ui/pages/MetalakePage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/pages/MetalakePage.java b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/pages/MetalakePage.java index f1bf20a0998..bb5945862d0 100644 --- a/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/pages/MetalakePage.java +++ b/web/integration-test/src/test/java/org/apache/gravitino/integration/test/web/ui/pages/MetalakePage.java @@ -388,7 +388,7 @@ public boolean verifyLinkInNewWindow( LOG.error(e.getMessage(), e); return false; } finally { - // driver.close(); + driver.close(); driver.switchTo().window(originalWindowHandle); } } From 8a95f321542c84bc087add98d744fdca4512f748 Mon Sep 17 00:00:00 2001 From: yuqi Date: Fri, 11 Oct 2024 11:59:46 +0800 Subject: [PATCH 8/9] Resolved comments --- .../trino/connector/integration/test/TrinoQueryTestTool.java | 1 - 1 file changed, 1 deletion(-) diff --git a/trino-connector/integration-test/src/test/java/org/apache/gravitino/trino/connector/integration/test/TrinoQueryTestTool.java b/trino-connector/integration-test/src/test/java/org/apache/gravitino/trino/connector/integration/test/TrinoQueryTestTool.java index 1a548067888..dee82d6a3c0 100644 --- a/trino-connector/integration-test/src/test/java/org/apache/gravitino/trino/connector/integration/test/TrinoQueryTestTool.java +++ b/trino-connector/integration-test/src/test/java/org/apache/gravitino/trino/connector/integration/test/TrinoQueryTestTool.java @@ -217,7 +217,6 @@ public static void main(String[] args) throws Exception { TrinoQueryITBase.autoStart = autoStart; TrinoQueryITBase.autoStartGravitino = autoStartGravitino; - // TrinoQueryIT.setup(); TrinoQueryIT testerRunner = new TrinoQueryIT(); testerRunner.setup(); From 2948215ab2351e2622ec18a5b156ec593374ceef Mon Sep 17 00:00:00 2001 From: yuqi Date: Fri, 11 Oct 2024 14:27:24 +0800 Subject: [PATCH 9/9] x --- integration-test-common/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/integration-test-common/build.gradle.kts b/integration-test-common/build.gradle.kts index 46ce34f3287..78d63380b10 100644 --- a/integration-test-common/build.gradle.kts +++ b/integration-test-common/build.gradle.kts @@ -43,8 +43,8 @@ dependencies { testImplementation(libs.httpclient5) testImplementation(libs.testcontainers) testImplementation(libs.testcontainers.mysql) - testImplementation(libs.mysql.driver) - testImplementation(libs.postgresql.driver) +// testImplementation(libs.mysql.driver) +// testImplementation(libs.postgresql.driver) testImplementation(libs.testcontainers.postgresql) testImplementation(libs.ranger.intg) { exclude("org.apache.hadoop", "hadoop-common")