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

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


The following commit(s) were added to refs/heads/main by this push:
     new 1d9262642 [#5582] improvement(hadoop3-filesystem): Remove 
configuration `fs.gvfs.filesystem.providers` from GVFS client. (#5634)
1d9262642 is described below

commit 1d9262642d35f41f58a5ce737396ad4a930a0a81
Author: Qi Yu <[email protected]>
AuthorDate: Mon Dec 16 18:56:22 2024 +0800

    [#5582] improvement(hadoop3-filesystem): Remove configuration 
`fs.gvfs.filesystem.providers` from GVFS client. (#5634)
    
    ### What changes were proposed in this pull request?
    
    Configuration `fs.gvfs.filesystem.providers` is redundant, so we'd
    better remove this configuation.
    
    ### Why are the changes needed?
    
    This configuration is redundant.
    Fix: #5582
    
    
    ### Does this PR introduce _any_ user-facing change?
    
    N/A
    
    ### How was this patch tested?
    
    Existing tests.
---
 build.gradle.kts                                   |  4 +--
 bundles/aliyun-bundle/build.gradle.kts             |  3 ++
 bundles/aws-bundle/build.gradle.kts                |  3 ++
 bundles/azure-bundle/build.gradle.kts              |  3 ++
 bundles/gcp-bundle/build.gradle.kts                |  3 ++
 catalogs/catalog-hadoop/build.gradle.kts           | 41 ++++++++++++----------
 .../catalog/hadoop/fs/FileSystemUtils.java         |  4 +--
 .../hadoop-common}/build.gradle.kts                | 34 ++----------------
 .../catalog/hadoop/fs/FileSystemProvider.java      |  0
 clients/filesystem-hadoop3/build.gradle.kts        | 13 +++++--
 .../hadoop/GravitinoVirtualFileSystem.java         | 28 ++++++++++++---
 .../GravitinoVirtualFileSystemConfiguration.java   |  9 -----
 .../test/GravitinoVirtualFileSystemABSIT.java      |  1 -
 .../test/GravitinoVirtualFileSystemGCSIT.java      |  6 ++--
 .../test/GravitinoVirtualFileSystemOSSIT.java      |  2 --
 .../test/GravitinoVirtualFileSystemS3IT.java       |  2 --
 docs/how-to-use-gvfs.md                            | 10 ------
 settings.gradle.kts                                |  1 +
 18 files changed, 78 insertions(+), 89 deletions(-)

diff --git a/build.gradle.kts b/build.gradle.kts
index 401ccba3d..4ebeec804 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -779,7 +779,7 @@ tasks {
         !it.name.startsWith("client") && !it.name.startsWith("filesystem") && 
!it.name.startsWith("spark") && !it.name.startsWith("iceberg") && it.name != 
"trino-connector" &&
         it.name != "integration-test" && it.name != "bundled-catalog" && 
!it.name.startsWith("flink") &&
         it.name != "integration-test" && it.name != "hive-metastore-common" && 
!it.name.startsWith("flink") &&
-        it.name != "gcp-bundle" && it.name != "aliyun-bundle" && it.name != 
"aws-bundle" && it.name != "azure-bundle"
+        it.name != "gcp-bundle" && it.name != "aliyun-bundle" && it.name != 
"aws-bundle" && it.name != "azure-bundle" && it.name != "hadoop-common"
       ) {
         from(it.configurations.runtimeClasspath)
         into("distribution/package/libs")
@@ -802,7 +802,7 @@ tasks {
         it.name != "bundled-catalog" &&
         it.name != "hive-metastore-common" && it.name != "gcp-bundle" &&
         it.name != "aliyun-bundle" && it.name != "aws-bundle" && it.name != 
"azure-bundle" &&
-        it.name != "docs"
+        it.name != "hadoop-common" && it.name != "docs"
       ) {
         dependsOn("${it.name}:build")
         from("${it.name}/build/libs")
diff --git a/bundles/aliyun-bundle/build.gradle.kts 
b/bundles/aliyun-bundle/build.gradle.kts
index e803c517b..bc2d21a68 100644
--- a/bundles/aliyun-bundle/build.gradle.kts
+++ b/bundles/aliyun-bundle/build.gradle.kts
@@ -29,6 +29,9 @@ dependencies {
   compileOnly(project(":core"))
   compileOnly(project(":catalogs:catalog-common"))
   compileOnly(project(":catalogs:catalog-hadoop"))
+  compileOnly(project(":catalogs:hadoop-common")) {
+    exclude("*")
+  }
   compileOnly(libs.hadoop3.common)
 
   implementation(libs.aliyun.credentials.sdk)
diff --git a/bundles/aws-bundle/build.gradle.kts 
b/bundles/aws-bundle/build.gradle.kts
index 0036b5eea..94c7d1cb2 100644
--- a/bundles/aws-bundle/build.gradle.kts
+++ b/bundles/aws-bundle/build.gradle.kts
@@ -29,6 +29,9 @@ dependencies {
   compileOnly(project(":core"))
   compileOnly(project(":catalogs:catalog-common"))
   compileOnly(project(":catalogs:catalog-hadoop"))
+  compileOnly(project(":catalogs:hadoop-common")) {
+    exclude("*")
+  }
   compileOnly(libs.hadoop3.common)
 
   implementation(libs.aws.iam)
diff --git a/bundles/azure-bundle/build.gradle.kts 
b/bundles/azure-bundle/build.gradle.kts
index fa6a68d1a..8580c672e 100644
--- a/bundles/azure-bundle/build.gradle.kts
+++ b/bundles/azure-bundle/build.gradle.kts
@@ -28,6 +28,9 @@ dependencies {
   compileOnly(project(":api"))
   compileOnly(project(":core"))
   compileOnly(project(":catalogs:catalog-hadoop"))
+  compileOnly(project(":catalogs:hadoop-common")) {
+    exclude("*")
+  }
 
   compileOnly(libs.hadoop3.common)
 
diff --git a/bundles/gcp-bundle/build.gradle.kts 
b/bundles/gcp-bundle/build.gradle.kts
index 7d679f627..bae7411c7 100644
--- a/bundles/gcp-bundle/build.gradle.kts
+++ b/bundles/gcp-bundle/build.gradle.kts
@@ -29,6 +29,9 @@ dependencies {
   compileOnly(project(":core"))
   compileOnly(project(":catalogs:catalog-common"))
   compileOnly(project(":catalogs:catalog-hadoop"))
+  compileOnly(project(":catalogs:hadoop-common")) {
+    exclude("*")
+  }
 
   compileOnly(libs.hadoop3.common)
 
diff --git a/catalogs/catalog-hadoop/build.gradle.kts 
b/catalogs/catalog-hadoop/build.gradle.kts
index 84488efb0..8873b7950 100644
--- a/catalogs/catalog-hadoop/build.gradle.kts
+++ b/catalogs/catalog-hadoop/build.gradle.kts
@@ -32,6 +32,7 @@ dependencies {
   implementation(project(":core")) {
     exclude(group = "*")
   }
+
   implementation(project(":common")) {
     exclude(group = "*")
   }
@@ -40,7 +41,9 @@ dependencies {
     exclude(group = "*")
   }
 
-  compileOnly(libs.guava)
+  implementation(project(":catalogs:hadoop-common")) {
+    exclude(group = "*")
+  }
 
   implementation(libs.hadoop3.common) {
     exclude("com.sun.jersey")
@@ -54,6 +57,14 @@ dependencies {
     exclude("com.sun.jersey", "jersey-servlet")
   }
 
+  implementation(libs.hadoop3.client) {
+    exclude("org.apache.hadoop", "hadoop-mapreduce-client-core")
+    exclude("org.apache.hadoop", "hadoop-mapreduce-client-jobclient")
+    exclude("org.apache.hadoop", "hadoop-yarn-api")
+    exclude("org.apache.hadoop", "hadoop-yarn-client")
+    exclude("com.squareup.okhttp", "okhttp")
+  }
+
   implementation(libs.hadoop3.hdfs) {
     exclude("com.sun.jersey")
     exclude("javax.servlet", "servlet-api")
@@ -63,38 +74,32 @@ dependencies {
     exclude("io.netty")
     exclude("org.fusesource.leveldbjni")
   }
-  implementation(libs.hadoop3.client) {
-    exclude("org.apache.hadoop", "hadoop-mapreduce-client-core")
-    exclude("org.apache.hadoop", "hadoop-mapreduce-client-jobclient")
-    exclude("org.apache.hadoop", "hadoop-yarn-api")
-    exclude("org.apache.hadoop", "hadoop-yarn-client")
-    exclude("com.squareup.okhttp", "okhttp")
-  }
 
   implementation(libs.slf4j.api)
 
-  testImplementation(project(":clients:client-java"))
-  testImplementation(project(":integration-test-common", "testArtifacts"))
-  testImplementation(project(":server"))
-  testImplementation(project(":server-common"))
+  compileOnly(libs.guava)
+
   testImplementation(project(":bundles:aws-bundle"))
   testImplementation(project(":bundles:gcp-bundle"))
   testImplementation(project(":bundles:aliyun-bundle"))
   testImplementation(project(":bundles:azure-bundle"))
-
-  testImplementation(libs.minikdc)
-  testImplementation(libs.hadoop3.minicluster)
+  testImplementation(project(":clients:client-java"))
+  testImplementation(project(":integration-test-common", "testArtifacts"))
+  testImplementation(project(":server"))
+  testImplementation(project(":server-common"))
 
   testImplementation(libs.bundles.log4j)
+  testImplementation(libs.hadoop3.gcs)
+  testImplementation(libs.hadoop3.minicluster)
+  testImplementation(libs.junit.jupiter.api)
+  testImplementation(libs.junit.jupiter.params)
+  testImplementation(libs.minikdc)
   testImplementation(libs.mockito.core)
   testImplementation(libs.mockito.inline)
   testImplementation(libs.mysql.driver)
   testImplementation(libs.postgresql.driver)
-  testImplementation(libs.junit.jupiter.api)
-  testImplementation(libs.junit.jupiter.params)
   testImplementation(libs.testcontainers)
   testImplementation(libs.testcontainers.mysql)
-  testImplementation(libs.hadoop3.gcs)
 
   testRuntimeOnly(libs.junit.jupiter.engine)
 }
diff --git 
a/catalogs/catalog-hadoop/src/main/java/org/apache/gravitino/catalog/hadoop/fs/FileSystemUtils.java
 
b/catalogs/catalog-hadoop/src/main/java/org/apache/gravitino/catalog/hadoop/fs/FileSystemUtils.java
index 3ed307aa0..129a8e882 100644
--- 
a/catalogs/catalog-hadoop/src/main/java/org/apache/gravitino/catalog/hadoop/fs/FileSystemUtils.java
+++ 
b/catalogs/catalog-hadoop/src/main/java/org/apache/gravitino/catalog/hadoop/fs/FileSystemUtils.java
@@ -63,8 +63,8 @@ public class FileSystemUtils {
               if (resultMap.containsKey(fileSystemProvider.scheme())) {
                 throw new UnsupportedOperationException(
                     String.format(
-                        "File system provider: '%s' with scheme '%s' already 
exists in the use provider list "
-                            + "Please make sure the file system provider 
scheme is unique.",
+                        "File system provider: '%s' with scheme '%s' already 
exists in the provider list,"
+                            + "please make sure the file system provider 
scheme is unique.",
                         fileSystemProvider.getClass().getName(), 
fileSystemProvider.scheme()));
               }
               resultMap.put(fileSystemProvider.scheme(), fileSystemProvider);
diff --git a/bundles/aws-bundle/build.gradle.kts 
b/catalogs/hadoop-common/build.gradle.kts
similarity index 50%
copy from bundles/aws-bundle/build.gradle.kts
copy to catalogs/hadoop-common/build.gradle.kts
index 0036b5eea..ab768cb1f 100644
--- a/bundles/aws-bundle/build.gradle.kts
+++ b/catalogs/hadoop-common/build.gradle.kts
@@ -16,41 +16,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
 
 plugins {
-  `maven-publish`
   id("java")
-  alias(libs.plugins.shadow)
 }
 
+// try to avoid adding extra dependencies because it is used by catalogs and 
connectors.
 dependencies {
-  compileOnly(project(":api"))
-  compileOnly(project(":core"))
-  compileOnly(project(":catalogs:catalog-common"))
-  compileOnly(project(":catalogs:catalog-hadoop"))
-  compileOnly(libs.hadoop3.common)
-
-  implementation(libs.aws.iam)
-  implementation(libs.aws.policy)
-  implementation(libs.aws.sts)
-  implementation(libs.hadoop3.aws)
-  implementation(project(":catalogs:catalog-common")) {
-    exclude("*")
-  }
-}
-
-tasks.withType(ShadowJar::class.java) {
-  isZip64 = true
-  configurations = listOf(project.configurations.runtimeClasspath.get())
-  archiveClassifier.set("")
-}
-
-tasks.jar {
-  dependsOn(tasks.named("shadowJar"))
-  archiveClassifier.set("empty")
-}
-
-tasks.compileJava {
-  dependsOn(":catalogs:catalog-hadoop:runtimeJars")
+  implementation(libs.commons.lang3)
+  implementation(libs.hadoop3.common)
 }
diff --git 
a/catalogs/catalog-hadoop/src/main/java/org/apache/gravitino/catalog/hadoop/fs/FileSystemProvider.java
 
b/catalogs/hadoop-common/src/main/java/org/apache/gravitino/catalog/hadoop/fs/FileSystemProvider.java
similarity index 100%
rename from 
catalogs/catalog-hadoop/src/main/java/org/apache/gravitino/catalog/hadoop/fs/FileSystemProvider.java
rename to 
catalogs/hadoop-common/src/main/java/org/apache/gravitino/catalog/hadoop/fs/FileSystemProvider.java
diff --git a/clients/filesystem-hadoop3/build.gradle.kts 
b/clients/filesystem-hadoop3/build.gradle.kts
index 55c0f59a0..d24eb4efd 100644
--- a/clients/filesystem-hadoop3/build.gradle.kts
+++ b/clients/filesystem-hadoop3/build.gradle.kts
@@ -26,10 +26,11 @@ plugins {
 dependencies {
   compileOnly(project(":clients:client-java-runtime", configuration = 
"shadow"))
   compileOnly(libs.hadoop3.common)
-  implementation(project(":catalogs:catalog-hadoop")) {
+
+  implementation(project(":catalogs:catalog-common")) {
     exclude(group = "*")
   }
-  implementation(project(":catalogs:catalog-common")) {
+  implementation(project(":catalogs:hadoop-common")) {
     exclude(group = "*")
   }
 
@@ -42,16 +43,19 @@ dependencies {
   testImplementation(project(":server-common"))
   testImplementation(project(":clients:client-java"))
   testImplementation(project(":integration-test-common", "testArtifacts"))
+  testImplementation(project(":catalogs:catalog-hadoop"))
   testImplementation(project(":bundles:gcp-bundle"))
   testImplementation(project(":bundles:aliyun-bundle"))
   testImplementation(project(":bundles:aws-bundle"))
   testImplementation(project(":bundles:azure-bundle"))
+  testImplementation(project(":bundles:gcp-bundle"))
+
   testImplementation(libs.awaitility)
   testImplementation(libs.bundles.jetty)
   testImplementation(libs.bundles.jersey)
   testImplementation(libs.bundles.jwt)
-  testImplementation(libs.testcontainers)
   testImplementation(libs.guava)
+
   testImplementation(libs.hadoop3.client)
   testImplementation(libs.hadoop3.common) {
     exclude("com.sun.jersey")
@@ -75,6 +79,8 @@ dependencies {
   }
   testImplementation(libs.mysql.driver)
   testImplementation(libs.postgresql.driver)
+  testImplementation(libs.testcontainers)
+
   testRuntimeOnly(libs.junit.jupiter.engine)
 }
 
@@ -99,6 +105,7 @@ tasks.test {
   dependsOn(":bundles:aws-bundle:jar")
   dependsOn(":bundles:aliyun-bundle:jar")
   dependsOn(":bundles:gcp-bundle:jar")
+  dependsOn(":bundles:azure-bundle:jar")
 }
 
 tasks.javadoc {
diff --git 
a/clients/filesystem-hadoop3/src/main/java/org/apache/gravitino/filesystem/hadoop/GravitinoVirtualFileSystem.java
 
b/clients/filesystem-hadoop3/src/main/java/org/apache/gravitino/filesystem/hadoop/GravitinoVirtualFileSystem.java
index a1e7bb5d5..e18e376b4 100644
--- 
a/clients/filesystem-hadoop3/src/main/java/org/apache/gravitino/filesystem/hadoop/GravitinoVirtualFileSystem.java
+++ 
b/clients/filesystem-hadoop3/src/main/java/org/apache/gravitino/filesystem/hadoop/GravitinoVirtualFileSystem.java
@@ -18,8 +18,6 @@
  */
 package org.apache.gravitino.filesystem.hadoop;
 
-import static 
org.apache.gravitino.filesystem.hadoop.GravitinoVirtualFileSystemConfiguration.FS_FILESYSTEM_PROVIDERS;
-
 import com.github.benmanes.caffeine.cache.Cache;
 import com.github.benmanes.caffeine.cache.Caffeine;
 import com.github.benmanes.caffeine.cache.Scheduler;
@@ -27,6 +25,7 @@ import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
+import com.google.common.collect.Streams;
 import com.google.common.util.concurrent.ThreadFactoryBuilder;
 import java.io.File;
 import java.io.IOException;
@@ -34,6 +33,7 @@ import java.net.URI;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import java.util.ServiceLoader;
 import java.util.concurrent.ScheduledThreadPoolExecutor;
 import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.TimeUnit;
@@ -46,7 +46,6 @@ import org.apache.gravitino.audit.FilesetAuditConstants;
 import org.apache.gravitino.audit.FilesetDataOperation;
 import org.apache.gravitino.audit.InternalClientType;
 import org.apache.gravitino.catalog.hadoop.fs.FileSystemProvider;
-import org.apache.gravitino.catalog.hadoop.fs.FileSystemUtils;
 import org.apache.gravitino.client.DefaultOAuth2TokenProvider;
 import org.apache.gravitino.client.GravitinoClient;
 import org.apache.gravitino.client.KerberosTokenProvider;
@@ -135,8 +134,7 @@ public class GravitinoVirtualFileSystem extends FileSystem {
     initializeClient(configuration);
 
     // Register the default local and HDFS FileSystemProvider
-    String fileSystemProviders = configuration.get(FS_FILESYSTEM_PROVIDERS);
-    
fileSystemProvidersMap.putAll(FileSystemUtils.getFileSystemProviders(fileSystemProviders));
+    fileSystemProvidersMap.putAll(getFileSystemProviders());
 
     this.workingDirectory = new Path(name);
     this.uri = URI.create(name.getScheme() + "://" + name.getAuthority());
@@ -618,4 +616,24 @@ public class GravitinoVirtualFileSystem extends FileSystem 
{
       return fileSystem;
     }
   }
+
+  private static Map<String, FileSystemProvider> getFileSystemProviders() {
+    Map<String, FileSystemProvider> resultMap = Maps.newHashMap();
+    ServiceLoader<FileSystemProvider> allFileSystemProviders =
+        ServiceLoader.load(FileSystemProvider.class);
+
+    Streams.stream(allFileSystemProviders.iterator())
+        .forEach(
+            fileSystemProvider -> {
+              if (resultMap.containsKey(fileSystemProvider.scheme())) {
+                throw new UnsupportedOperationException(
+                    String.format(
+                        "File system provider: '%s' with scheme '%s' already 
exists in the provider list, "
+                            + "please make sure the file system provider 
scheme is unique.",
+                        fileSystemProvider.getClass().getName(), 
fileSystemProvider.scheme()));
+              }
+              resultMap.put(fileSystemProvider.scheme(), fileSystemProvider);
+            });
+    return resultMap;
+  }
 }
diff --git 
a/clients/filesystem-hadoop3/src/main/java/org/apache/gravitino/filesystem/hadoop/GravitinoVirtualFileSystemConfiguration.java
 
b/clients/filesystem-hadoop3/src/main/java/org/apache/gravitino/filesystem/hadoop/GravitinoVirtualFileSystemConfiguration.java
index 95ce4df2a..e2bce7345 100644
--- 
a/clients/filesystem-hadoop3/src/main/java/org/apache/gravitino/filesystem/hadoop/GravitinoVirtualFileSystemConfiguration.java
+++ 
b/clients/filesystem-hadoop3/src/main/java/org/apache/gravitino/filesystem/hadoop/GravitinoVirtualFileSystemConfiguration.java
@@ -18,8 +18,6 @@
  */
 package org.apache.gravitino.filesystem.hadoop;
 
-import org.apache.gravitino.catalog.hadoop.fs.FileSystemProvider;
-
 /** Configuration class for Gravitino Virtual File System. */
 public class GravitinoVirtualFileSystemConfiguration {
 
@@ -44,13 +42,6 @@ public class GravitinoVirtualFileSystemConfiguration {
   /** The configuration key for the Gravitino client auth type. */
   public static final String FS_GRAVITINO_CLIENT_AUTH_TYPE_KEY = 
"fs.gravitino.client.authType";
 
-  /**
-   * File system provider names configuration key. The value is a comma 
separated list of file
-   * system provider name which is defined in the service loader. Users can 
custom their own file
-   * system by implementing the {@link FileSystemProvider} interface.
-   */
-  public static final String FS_FILESYSTEM_PROVIDERS = 
"fs.gvfs.filesystem.providers";
-
   /** The authentication type for simple authentication. */
   public static final String SIMPLE_AUTH_TYPE = "simple";
   /** The authentication type for oauth2 authentication. */
diff --git 
a/clients/filesystem-hadoop3/src/test/java/org/apache/gravitino/filesystem/hadoop/integration/test/GravitinoVirtualFileSystemABSIT.java
 
b/clients/filesystem-hadoop3/src/test/java/org/apache/gravitino/filesystem/hadoop/integration/test/GravitinoVirtualFileSystemABSIT.java
index cc16ce920..11557417f 100644
--- 
a/clients/filesystem-hadoop3/src/test/java/org/apache/gravitino/filesystem/hadoop/integration/test/GravitinoVirtualFileSystemABSIT.java
+++ 
b/clients/filesystem-hadoop3/src/test/java/org/apache/gravitino/filesystem/hadoop/integration/test/GravitinoVirtualFileSystemABSIT.java
@@ -95,7 +95,6 @@ public class GravitinoVirtualFileSystemABSIT extends 
GravitinoVirtualFileSystemI
     conf.set("fs.gravitino.server.uri", serverUri);
     conf.set("fs.gravitino.client.metalake", metalakeName);
 
-    conf.set("fs.gvfs.filesystem.providers", 
AzureFileSystemProvider.ABS_PROVIDER_NAME);
     // Pass this configuration to the real file system
     conf.set(ABSProperties.GRAVITINO_ABS_ACCOUNT_NAME, ABS_ACCOUNT_NAME);
     conf.set(ABSProperties.GRAVITINO_ABS_ACCOUNT_KEY, ABS_ACCOUNT_KEY);
diff --git 
a/clients/filesystem-hadoop3/src/test/java/org/apache/gravitino/filesystem/hadoop/integration/test/GravitinoVirtualFileSystemGCSIT.java
 
b/clients/filesystem-hadoop3/src/test/java/org/apache/gravitino/filesystem/hadoop/integration/test/GravitinoVirtualFileSystemGCSIT.java
index b66fb34df..f27370881 100644
--- 
a/clients/filesystem-hadoop3/src/test/java/org/apache/gravitino/filesystem/hadoop/integration/test/GravitinoVirtualFileSystemGCSIT.java
+++ 
b/clients/filesystem-hadoop3/src/test/java/org/apache/gravitino/filesystem/hadoop/integration/test/GravitinoVirtualFileSystemGCSIT.java
@@ -20,7 +20,6 @@
 package org.apache.gravitino.filesystem.hadoop.integration.test;
 
 import static 
org.apache.gravitino.catalog.hadoop.HadoopCatalogPropertiesMetadata.FILESYSTEM_PROVIDERS;
-import static 
org.apache.gravitino.filesystem.hadoop.GravitinoVirtualFileSystemConfiguration.FS_FILESYSTEM_PROVIDERS;
 
 import com.google.common.collect.Maps;
 import java.io.IOException;
@@ -92,15 +91,14 @@ public class GravitinoVirtualFileSystemGCSIT extends 
GravitinoVirtualFileSystemI
 
     // Pass this configuration to the real file system
     conf.set(GCSProperties.GCS_SERVICE_ACCOUNT_JSON_PATH, 
SERVICE_ACCOUNT_FILE);
-    conf.set(FS_FILESYSTEM_PROVIDERS, "gcs");
   }
 
   @AfterAll
   public void tearDown() throws IOException {
     Catalog catalog = metalake.loadCatalog(catalogName);
     catalog.asSchemas().dropSchema(schemaName, true);
-    metalake.dropCatalog(catalogName);
-    client.dropMetalake(metalakeName);
+    metalake.dropCatalog(catalogName, true);
+    client.dropMetalake(metalakeName, true);
 
     if (client != null) {
       client.close();
diff --git 
a/clients/filesystem-hadoop3/src/test/java/org/apache/gravitino/filesystem/hadoop/integration/test/GravitinoVirtualFileSystemOSSIT.java
 
b/clients/filesystem-hadoop3/src/test/java/org/apache/gravitino/filesystem/hadoop/integration/test/GravitinoVirtualFileSystemOSSIT.java
index e2218b5bc..5cd02ef4e 100644
--- 
a/clients/filesystem-hadoop3/src/test/java/org/apache/gravitino/filesystem/hadoop/integration/test/GravitinoVirtualFileSystemOSSIT.java
+++ 
b/clients/filesystem-hadoop3/src/test/java/org/apache/gravitino/filesystem/hadoop/integration/test/GravitinoVirtualFileSystemOSSIT.java
@@ -20,7 +20,6 @@
 package org.apache.gravitino.filesystem.hadoop.integration.test;
 
 import static 
org.apache.gravitino.catalog.hadoop.HadoopCatalogPropertiesMetadata.FILESYSTEM_PROVIDERS;
-import static 
org.apache.gravitino.filesystem.hadoop.GravitinoVirtualFileSystemConfiguration.FS_FILESYSTEM_PROVIDERS;
 
 import com.google.common.collect.Maps;
 import java.io.IOException;
@@ -100,7 +99,6 @@ public class GravitinoVirtualFileSystemOSSIT extends 
GravitinoVirtualFileSystemI
     conf.set(OSSProperties.GRAVITINO_OSS_ACCESS_KEY_SECRET, OSS_SECRET_KEY);
     conf.set(OSSProperties.GRAVITINO_OSS_ENDPOINT, OSS_ENDPOINT);
     conf.set("fs.oss.impl", 
"org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem");
-    conf.set(FS_FILESYSTEM_PROVIDERS, "oss");
   }
 
   @AfterAll
diff --git 
a/clients/filesystem-hadoop3/src/test/java/org/apache/gravitino/filesystem/hadoop/integration/test/GravitinoVirtualFileSystemS3IT.java
 
b/clients/filesystem-hadoop3/src/test/java/org/apache/gravitino/filesystem/hadoop/integration/test/GravitinoVirtualFileSystemS3IT.java
index 22c487288..4bb6ad38d 100644
--- 
a/clients/filesystem-hadoop3/src/test/java/org/apache/gravitino/filesystem/hadoop/integration/test/GravitinoVirtualFileSystemS3IT.java
+++ 
b/clients/filesystem-hadoop3/src/test/java/org/apache/gravitino/filesystem/hadoop/integration/test/GravitinoVirtualFileSystemS3IT.java
@@ -20,7 +20,6 @@
 package org.apache.gravitino.filesystem.hadoop.integration.test;
 
 import static 
org.apache.gravitino.catalog.hadoop.HadoopCatalogPropertiesMetadata.FILESYSTEM_PROVIDERS;
-import static 
org.apache.gravitino.filesystem.hadoop.GravitinoVirtualFileSystemConfiguration.FS_FILESYSTEM_PROVIDERS;
 
 import com.google.common.collect.Maps;
 import java.io.IOException;
@@ -157,7 +156,6 @@ public class GravitinoVirtualFileSystemS3IT extends 
GravitinoVirtualFileSystemIT
     conf.set(S3Properties.GRAVITINO_S3_SECRET_ACCESS_KEY, accessKey);
     conf.set(S3Properties.GRAVITINO_S3_ACCESS_KEY_ID, secretKey);
     conf.set(S3Properties.GRAVITINO_S3_ENDPOINT, s3Endpoint);
-    conf.set(FS_FILESYSTEM_PROVIDERS, "s3");
   }
 
   @AfterAll
diff --git a/docs/how-to-use-gvfs.md b/docs/how-to-use-gvfs.md
index 5b79a80f8..34835ec8d 100644
--- a/docs/how-to-use-gvfs.md
+++ b/docs/how-to-use-gvfs.md
@@ -73,7 +73,6 @@ Apart from the above properties, to access fileset like S3, 
GCS, OSS and custom
 
 | Configuration item             | Description                                 
                                                                                
                                                           | Default value | 
Required                 | Since version    |
 
|--------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|--------------------------|------------------|
-| `fs.gvfs.filesystem.providers` | The file system providers to add. Set it to 
`s3` if it's a S3 fileset, or a comma separated string that contains `s3` like 
`gs,s3` to support multiple kinds of fileset including `s3`.| (none)        | 
Yes if it's a S3 fileset.| 0.7.0-incubating |
 | `s3-endpoint`                  | The endpoint of the AWS S3.                 
                                                                                
                                                           | (none)        | 
Yes if it's a S3 fileset.| 0.7.0-incubating |
 | `s3-access-key-id`             | The access key of the AWS S3.               
                                                                                
                                                           | (none)        | 
Yes if it's a S3 fileset.| 0.7.0-incubating |
 | `s3-secret-access-key`         | The secret key of the AWS S3.               
                                                                                
                                                           | (none)        | 
Yes if it's a S3 fileset.| 0.7.0-incubating |
@@ -85,7 +84,6 @@ At the same time, you need to place the corresponding bundle 
jar [`gravitino-aws
 
 | Configuration item             | Description                                 
                                                                                
                                                             | Default value | 
Required                  | Since version    |
 
|--------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|---------------------------|------------------|
-| `fs.gvfs.filesystem.providers` | The file system providers to add. Set it to 
`gs` if it's a GCS fileset, or a comma separated string that contains `gs` like 
`gs,s3` to support multiple kinds of fileset including `gs`. | (none)        | 
Yes if it's a GCS fileset.| 0.7.0-incubating |
 | `gcs-service-account-file`     | The path of GCS service account JSON file.  
                                                                                
                                                             | (none)        | 
Yes if it's a GCS fileset.| 0.7.0-incubating |
 
 In the meantime, you need to place the corresponding bundle jar 
[`gravitino-gcp-bundle-${version}.jar`](https://repo1.maven.org/maven2/org/apache/gravitino/gcp-bundle/)
 in the Hadoop environment(typically located in 
`${HADOOP_HOME}/share/hadoop/common/lib/`).
@@ -95,7 +93,6 @@ In the meantime, you need to place the corresponding bundle 
jar [`gravitino-gcp-
 
 | Configuration item              | Description                                
                                                                                
                                                                    | Default 
value | Required                  | Since version    |
 
|---------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|---------------------------|------------------|
-| `fs.gvfs.filesystem.providers`  | The file system providers to add. Set it 
to `oss` if it's a OSS fileset, or a comma separated string that contains `oss` 
like `oss,gs,s3` to support multiple kinds of fileset including `oss`.| (none)  
      | Yes if it's a OSS fileset.| 0.7.0-incubating |
 | `oss-endpoint`                  | The endpoint of the Aliyun OSS.            
                                                                                
                                                                    | (none)    
    | Yes if it's a OSS fileset.| 0.7.0-incubating |
 | `oss-access-key-id`             | The access key of the Aliyun OSS.          
                                                                                
                                                                    | (none)    
    | Yes if it's a OSS fileset.| 0.7.0-incubating |
 | `oss-secret-access-key`         | The secret key of the Aliyun OSS.          
                                                                                
                                                                    | (none)    
    | Yes if it's a OSS fileset.| 0.7.0-incubating |
@@ -106,7 +103,6 @@ In the meantime, you need to place the corresponding bundle 
jar [`gravitino-aliy
 
 | Configuration item             | Description                                 
                                                                                
                                                                                
    | Default value | Required                                  | Since version 
   |
 
|--------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|-------------------------------------------|------------------|
-| `fs.gvfs.filesystem.providers` | The file system providers to add. Set it to 
`abs` if it's a Azure Blob Storage fileset, or a comma separated string that 
contains `abs` like `oss,abs,s3` to support multiple kinds of fileset including 
`abs`. | (none)        | Yes                                       | 
0.8.0-incubating |
 | `abs-account-name`             | The account name of Azure Blob Storage.     
                                                                                
                                                                                
    | (none)        | Yes if it's a Azure Blob Storage fileset. | 
0.8.0-incubating |
 | `abs-account-key`              | The account key of Azure Blob Storage.      
                                                                                
                                                                                
    | (none)        | Yes if it's a Azure Blob Storage fileset. | 
0.8.0-incubating |
 
@@ -118,7 +114,6 @@ So, if you want to access the custom fileset through GVFS, 
you need to configure
 
 | Configuration item             | Description                                 
                                                            | Default value | 
Required | Since version    |
 
|--------------------------------|---------------------------------------------------------------------------------------------------------|---------------|----------|------------------|
-| `fs.gvfs.filesystem.providers` | The file system providers. please set it to 
the value of `YourCustomFileSystemProvider#name`            | (none)        | 
Yes      | 0.7.0-incubating |
 | `your-custom-properties`       | The properties will be used to create a 
FileSystem instance in `CustomFileSystemProvider#getFileSystem` | (none)        
| No       | -                |
 
 You can configure these properties in two ways:
@@ -133,7 +128,6 @@ You can configure these properties in two ways:
     conf.set("fs.gravitino.client.metalake","test_metalake");
    
     // Optional. It's only for S3 catalog. For GCS and OSS catalog, you should 
set the corresponding properties.
-    conf.set("fs.gvfs.filesystem.providers", "s3");
     conf.set("s3-endpoint", "http://localhost:9000";);
     conf.set("s3-access-key-id", "minio");
     conf.set("s3-secret-access-key", "minio123"); 
@@ -171,10 +165,6 @@ For example if you want to access the S3 fileset, you need 
to place the S3 bundl
       </property>
    
       <!-- Optional. It's only for S3 catalog. For GCs and OSS catalog, you 
should set the corresponding properties. -->
-      <property>
-        <name>fs.gvfs.filesystem.providers</name>
-        <value>s3</value>
-      </property>
       <property>
         <name>s3-endpoint</name>
         <value>http://localhost:9000</value>
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 75dd967c4..5776d34fa 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -81,3 +81,4 @@ include(":bundles:aws-bundle")
 include(":bundles:gcp-bundle")
 include(":bundles:aliyun-bundle")
 include("bundles:azure-bundle")
+include("catalogs:hadoop-common")

Reply via email to