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

yuqi4733 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 6bc045fb98 [#9775] improvement(catalogs): Reorg catalogs structure 
(#9781)
6bc045fb98 is described below

commit 6bc045fb983e64a05fdb3983c12b66782019445e
Author: Mini Yu <[email protected]>
AuthorDate: Tue Jan 27 19:53:19 2026 +0800

    [#9775] improvement(catalogs): Reorg catalogs structure (#9781)
    
    ### What changes were proposed in this pull request?
    
    This pull request reorganizes the OceanBase JDBC catalog by moving it
    from the main `catalogs` directory to a new `catalogs-contrib` module,
    and updates build and documentation files to reflect this change. It
    also clarifies the differences between the standard and all Gravitino
    distribution packages, and disables all tasks in the new
    `catalogs-contrib` build configuration.
    
    ### Why are the changes needed?
    
    To better manage more catalogs to be added.
    
    Fix: #9775
    
    ### Does this PR introduce _any_ user-facing change?
    
    N/A
    
    ### How was this patch tested?
    
    Existing tests.
---
 .../workflows/backend-integration-test-action.yml  |  1 +
 build.gradle.kts                                   | 45 +++++++++++++++++++++-
 .../build.gradle.kts                               | 25 ++++--------
 .../catalog-jdbc-oceanbase/build.gradle.kts        |  0
 .../catalog/oceanbase/OceanBaseCatalog.java        |  0
 .../oceanbase/OceanBaseCatalogCapability.java      |  0
 .../OceanBaseColumnDefaultValueConverter.java      |  0
 .../converter/OceanBaseTypeConverter.java          |  0
 .../operation/OceanBaseDatabaseOperations.java     |  0
 .../operation/OceanBaseTableOperations.java        |  0
 .../services/org.apache.gravitino.CatalogProvider  |  0
 .../src/main/resources/jdbc-oceanbase.conf         |  0
 .../converter/TestOceanBaseTypeConverter.java      |  0
 .../integration/test/CatalogOceanBaseIT.java       |  0
 .../integration/test/service/OceanBaseService.java |  0
 .../catalog/oceanbase/operation/TestOceanBase.java |  0
 .../operation/TestOceanBaseDatabaseOperations.java |  0
 .../operation/TestOceanBaseTableOperations.java    |  0
 .../src/test/resources/log4j2.properties           |  0
 docs/how-to-install.md                             |  6 ++-
 settings.gradle.kts                                |  3 +-
 21 files changed, 57 insertions(+), 23 deletions(-)

diff --git a/.github/workflows/backend-integration-test-action.yml 
b/.github/workflows/backend-integration-test-action.yml
index 266e2a8146..7af351caba 100644
--- a/.github/workflows/backend-integration-test-action.yml
+++ b/.github/workflows/backend-integration-test-action.yml
@@ -67,6 +67,7 @@ jobs:
           -x :spark-connector:spark-runtime-3.3:test -x 
:spark-connector:spark-runtime-3.4:test -x 
:spark-connector:spark-runtime-3.5:test
           -x :trino-connector:integration-test:test -x 
:trino-connector:trino-connector:test
           -x :authorizations:authorization-chain:test -x 
:authorizations:authorization-ranger:test 
+          -x :catalogs-contrib:catalog-jdbc-oceanbase:test
 
       - name: Upload integrate tests reports
         uses: actions/upload-artifact@v4
diff --git a/build.gradle.kts b/build.gradle.kts
index ee123d68c7..91cc97ea0a 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -766,6 +766,20 @@ tasks {
       // Create the directory 'data' for storage.
       val directory = File("distribution/package/data")
       directory.mkdirs()
+
+      // Copy the all directory distribution/package to 
distribution/package-all
+      copy {
+        from(projectDir.dir("distribution/package"))
+        into(projectDir.dir("distribution/package-all"))
+      }
+
+      // remove catalogs-contrib modules from distribution/package
+      project.file("catalogs-contrib").listFiles()?.forEach { file ->
+        if (file.isDirectory) {
+          val catalogName = file.name.replace("catalog-", "")
+          delete(projectDir.dir("distribution/package/catalogs/$catalogName"))
+        }
+      }
     }
   }
 
@@ -878,7 +892,7 @@ tasks {
   }
 
   val assembleDistribution by registering(Tar::class) {
-    dependsOn("assembleTrinoConnector", "assembleIcebergRESTServer", 
"assembleLanceRESTServer")
+    dependsOn("assembleTrinoConnector", "assembleIcebergRESTServer", 
"assembleLanceRESTServer", "assembleDistributionAll")
     group = "gravitino distribution"
     finalizedBy("checksumDistribution")
     into("${rootProject.name}-$version-bin")
@@ -888,6 +902,33 @@ tasks {
     destinationDirectory.set(projectDir.dir("distribution"))
   }
 
+  val assembleDistributionAll by registering(Tar::class) {
+    dependsOn(compileDistribution)
+    group = "gravitino distribution"
+    finalizedBy("checksumDistributionAll")
+    into("${rootProject.name}-$version-bin-all")
+    from(projectDir.dir("distribution/package-all"))
+    compression = Compression.GZIP
+    archiveFileName.set("${rootProject.name}-$version-bin-all.tar.gz")
+    destinationDirectory.set(projectDir.dir("distribution"))
+  }
+
+  register("checksumDistributionAll") {
+    group = "gravitino distribution"
+    dependsOn(assembleDistributionAll)
+    val archiveFile = assembleDistributionAll.flatMap { it.archiveFile }
+    val checksumFile = archiveFile.map { archive ->
+      archive.asFile.let { it.resolveSibling("${it.name}.sha256") }
+    }
+    inputs.file(archiveFile)
+    outputs.file(checksumFile)
+    doLast {
+      checksumFile.get().writeText(
+        
serviceOf<ChecksumService>().sha256(archiveFile.get().asFile).toString()
+      )
+    }
+  }
+
   val assembleTrinoConnector by registering(Tar::class) {
     dependsOn("compileTrinoConnector")
     group = "gravitino distribution"
@@ -1073,7 +1114,7 @@ tasks {
       ":catalogs:catalog-hive:copyLibAndConfig",
       ":catalogs:catalog-jdbc-doris:copyLibAndConfig",
       ":catalogs:catalog-jdbc-mysql:copyLibAndConfig",
-      ":catalogs:catalog-jdbc-oceanbase:copyLibAndConfig",
+      ":catalogs-contrib:catalog-jdbc-oceanbase:copyLibAndConfig",
       ":catalogs:catalog-jdbc-postgresql:copyLibAndConfig",
       ":catalogs:catalog-jdbc-starrocks:copyLibAndConfig",
       ":catalogs:catalog-kafka:copyLibAndConfig",
diff --git 
a/catalogs/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/operation/OceanBaseDatabaseOperations.java
 b/catalogs-contrib/build.gradle.kts
similarity index 59%
copy from 
catalogs/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/operation/OceanBaseDatabaseOperations.java
copy to catalogs-contrib/build.gradle.kts
index 8b455b3746..ac7ee38633 100644
--- 
a/catalogs/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/operation/OceanBaseDatabaseOperations.java
+++ b/catalogs-contrib/build.gradle.kts
@@ -16,22 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.gravitino.catalog.oceanbase.operation;
 
-import com.google.common.collect.ImmutableSet;
-import java.util.Set;
-import org.apache.gravitino.catalog.jdbc.operation.JdbcDatabaseOperations;
-
-/** Database operations for OceanBase. */
-public class OceanBaseDatabaseOperations extends JdbcDatabaseOperations {
-
-  @Override
-  protected boolean supportSchemaComment() {
-    return false;
-  }
-
-  @Override
-  protected Set<String> createSysDatabaseNameSet() {
-    return ImmutableSet.of("information_schema", "mysql", "sys", "oceanbase");
-  }
-}
+// Disable all tasks in this module by default so that contrib catalogs are
+// not built as part of the standard Gravitino build. If you need to build
+// or test a contrib catalog locally, temporarily remove or adjust this block
+// to re-enable the relevant tasks
+tasks.all {
+    enabled = false
+}
\ No newline at end of file
diff --git a/catalogs/catalog-jdbc-oceanbase/build.gradle.kts 
b/catalogs-contrib/catalog-jdbc-oceanbase/build.gradle.kts
similarity index 100%
rename from catalogs/catalog-jdbc-oceanbase/build.gradle.kts
rename to catalogs-contrib/catalog-jdbc-oceanbase/build.gradle.kts
diff --git 
a/catalogs/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/OceanBaseCatalog.java
 
b/catalogs-contrib/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/OceanBaseCatalog.java
similarity index 100%
rename from 
catalogs/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/OceanBaseCatalog.java
rename to 
catalogs-contrib/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/OceanBaseCatalog.java
diff --git 
a/catalogs/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/OceanBaseCatalogCapability.java
 
b/catalogs-contrib/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/OceanBaseCatalogCapability.java
similarity index 100%
rename from 
catalogs/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/OceanBaseCatalogCapability.java
rename to 
catalogs-contrib/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/OceanBaseCatalogCapability.java
diff --git 
a/catalogs/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/converter/OceanBaseColumnDefaultValueConverter.java
 
b/catalogs-contrib/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/converter/OceanBaseColumnDefaultValueConverter.java
similarity index 100%
rename from 
catalogs/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/converter/OceanBaseColumnDefaultValueConverter.java
rename to 
catalogs-contrib/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/converter/OceanBaseColumnDefaultValueConverter.java
diff --git 
a/catalogs/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/converter/OceanBaseTypeConverter.java
 
b/catalogs-contrib/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/converter/OceanBaseTypeConverter.java
similarity index 100%
rename from 
catalogs/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/converter/OceanBaseTypeConverter.java
rename to 
catalogs-contrib/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/converter/OceanBaseTypeConverter.java
diff --git 
a/catalogs/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/operation/OceanBaseDatabaseOperations.java
 
b/catalogs-contrib/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/operation/OceanBaseDatabaseOperations.java
similarity index 100%
rename from 
catalogs/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/operation/OceanBaseDatabaseOperations.java
rename to 
catalogs-contrib/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/operation/OceanBaseDatabaseOperations.java
diff --git 
a/catalogs/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/operation/OceanBaseTableOperations.java
 
b/catalogs-contrib/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/operation/OceanBaseTableOperations.java
similarity index 100%
rename from 
catalogs/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/operation/OceanBaseTableOperations.java
rename to 
catalogs-contrib/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/operation/OceanBaseTableOperations.java
diff --git 
a/catalogs/catalog-jdbc-oceanbase/src/main/resources/META-INF/services/org.apache.gravitino.CatalogProvider
 
b/catalogs-contrib/catalog-jdbc-oceanbase/src/main/resources/META-INF/services/org.apache.gravitino.CatalogProvider
similarity index 100%
rename from 
catalogs/catalog-jdbc-oceanbase/src/main/resources/META-INF/services/org.apache.gravitino.CatalogProvider
rename to 
catalogs-contrib/catalog-jdbc-oceanbase/src/main/resources/META-INF/services/org.apache.gravitino.CatalogProvider
diff --git 
a/catalogs/catalog-jdbc-oceanbase/src/main/resources/jdbc-oceanbase.conf 
b/catalogs-contrib/catalog-jdbc-oceanbase/src/main/resources/jdbc-oceanbase.conf
similarity index 100%
rename from 
catalogs/catalog-jdbc-oceanbase/src/main/resources/jdbc-oceanbase.conf
rename to 
catalogs-contrib/catalog-jdbc-oceanbase/src/main/resources/jdbc-oceanbase.conf
diff --git 
a/catalogs/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/converter/TestOceanBaseTypeConverter.java
 
b/catalogs-contrib/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/converter/TestOceanBaseTypeConverter.java
similarity index 100%
rename from 
catalogs/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/converter/TestOceanBaseTypeConverter.java
rename to 
catalogs-contrib/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/converter/TestOceanBaseTypeConverter.java
diff --git 
a/catalogs/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/integration/test/CatalogOceanBaseIT.java
 
b/catalogs-contrib/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/integration/test/CatalogOceanBaseIT.java
similarity index 100%
rename from 
catalogs/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/integration/test/CatalogOceanBaseIT.java
rename to 
catalogs-contrib/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/integration/test/CatalogOceanBaseIT.java
diff --git 
a/catalogs/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/integration/test/service/OceanBaseService.java
 
b/catalogs-contrib/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/integration/test/service/OceanBaseService.java
similarity index 100%
rename from 
catalogs/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/integration/test/service/OceanBaseService.java
rename to 
catalogs-contrib/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/integration/test/service/OceanBaseService.java
diff --git 
a/catalogs/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/operation/TestOceanBase.java
 
b/catalogs-contrib/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/operation/TestOceanBase.java
similarity index 100%
rename from 
catalogs/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/operation/TestOceanBase.java
rename to 
catalogs-contrib/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/operation/TestOceanBase.java
diff --git 
a/catalogs/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/operation/TestOceanBaseDatabaseOperations.java
 
b/catalogs-contrib/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/operation/TestOceanBaseDatabaseOperations.java
similarity index 100%
rename from 
catalogs/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/operation/TestOceanBaseDatabaseOperations.java
rename to 
catalogs-contrib/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/operation/TestOceanBaseDatabaseOperations.java
diff --git 
a/catalogs/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/operation/TestOceanBaseTableOperations.java
 
b/catalogs-contrib/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/operation/TestOceanBaseTableOperations.java
similarity index 100%
rename from 
catalogs/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/operation/TestOceanBaseTableOperations.java
rename to 
catalogs-contrib/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/operation/TestOceanBaseTableOperations.java
diff --git 
a/catalogs/catalog-jdbc-oceanbase/src/test/resources/log4j2.properties 
b/catalogs-contrib/catalog-jdbc-oceanbase/src/test/resources/log4j2.properties
similarity index 100%
rename from catalogs/catalog-jdbc-oceanbase/src/test/resources/log4j2.properties
rename to 
catalogs-contrib/catalog-jdbc-oceanbase/src/test/resources/log4j2.properties
diff --git a/docs/how-to-install.md b/docs/how-to-install.md
index 63010c7545..06cda65af4 100644
--- a/docs/how-to-install.md
+++ b/docs/how-to-install.md
@@ -19,9 +19,11 @@ The Gravitino package comprises both the Gravitino server 
and the Gravitino Iceb
 Before installing Gravitino, make sure you have the Gravitino binary 
distribution package. You can download the latest Gravitino binary distribution 
package from [GitHub](https://github.com/apache/gravitino/releases).
 You can also build it yourself by following the instructions in [How to Build 
Gravitino](./how-to-build.md).
 
-  - If you build Gravitino yourself using the `./gradlew compileDistribution` 
command, you can find the Gravitino binary distribution package in the 
`distribution/package` directory.
+- If you build Gravitino yourself using the `./gradlew compileDistribution` 
command, you can find the Gravitino binary distribution package in the 
`distribution/package` and `distribution/package-all` directory. The main 
difference between these two packages is that the `package-all` package 
contains all catalogs including catalog under folder `catalogs-contrib`, while 
the `package` package only contains the main catalogs under folder `catalogs`.
 
-  - If you build Gravitino yourself using the `./gradlew assembleDistribution` 
command, you can get the compressed Gravitino binary distribution package with 
the name `gravitino-<version>-bin.tar.gz` in the `distribution` directory with 
sha256 checksum file `gravitino-<version>-bin.tar.gz.sha256`.
+- If you build Gravitino yourself using the `./gradlew assembleDistribution` 
command, you can get the compressed Gravitino binary distribution package with 
the name `gravitino-<version>-bin.tar.gz` in the `distribution` directory with 
sha256 checksum file `gravitino-<version>-bin.tar.gz.sha256`. Also, you can get 
the complete compressed Gravitino binary distribution package with the name 
`gravitino-<version>-bin-all.tar.gz` in the `distribution` directory with 
sha256 checksum file `gravi [...]
+
+Note: **Apache Gravitino only releases `gravitino-<version>-bin.tar.gz` 
packages on GitHub releases and the `gravitino-<version>-bin-all.tar.gz` 
packages are only for users who build Gravitino from source code by themselves 
if interested.**
 
 The Gravitino binary distribution package contains the following files:
 
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 75dab2bc0c..bc6f7c3052 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -39,9 +39,10 @@ include(
   "catalogs:catalog-jdbc-doris",
   "catalogs:catalog-jdbc-mysql",
   "catalogs:catalog-jdbc-postgresql",
-  "catalogs:catalog-jdbc-oceanbase",
   "catalogs:catalog-jdbc-starrocks"
 )
+include("catalogs-contrib:catalog-jdbc-oceanbase")
+
 include("catalogs:catalog-fileset")
 include("catalogs:catalog-kafka")
 include("catalogs:catalog-model")

Reply via email to