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

zhangshenghang pushed a commit to branch 
revert-11127-fix/catalog-factory-option-validation
in repository https://gitbox.apache.org/repos/asf/seatunnel.git

commit f288025bb08f484ef5028f625a81e5c8de6cb20f
Author: Jast <[email protected]>
AuthorDate: Mon Jun 22 10:33:11 2026 +0800

    Revert "[Fix][API] Add missing OptionRule validation for CatalogFactory 
creat…"
    
    This reverts commit 0e2f4ef8d57000df40bfc2a3f32c635fe632b6c0.
---
 .../seatunnel/api/table/factory/FactoryUtil.java   |  8 +--
 .../api/table/catalog/CatalogTableUtilTest.java    | 66 ----------------------
 .../jdbc/catalog/duckdb/DuckDBCatalogFactory.java  | 12 +---
 .../lance/catalog/LanceCatalogFactory.java         |  2 +-
 4 files changed, 4 insertions(+), 84 deletions(-)

diff --git 
a/seatunnel-api/src/main/java/org/apache/seatunnel/api/table/factory/FactoryUtil.java
 
b/seatunnel-api/src/main/java/org/apache/seatunnel/api/table/factory/FactoryUtil.java
index a4f078db0c..8412bc60ce 100644
--- 
a/seatunnel-api/src/main/java/org/apache/seatunnel/api/table/factory/FactoryUtil.java
+++ 
b/seatunnel-api/src/main/java/org/apache/seatunnel/api/table/factory/FactoryUtil.java
@@ -286,17 +286,13 @@ public final class FactoryUtil {
 
     public static Optional<Catalog> createOptionalCatalog(
             String catalogName,
-            ReadonlyConfig readonlyConfig,
+            ReadonlyConfig options,
             ClassLoader classLoader,
             String factoryIdentifier) {
         Optional<CatalogFactory> optionalFactory =
                 discoverOptionalFactory(classLoader, CatalogFactory.class, 
factoryIdentifier);
-
         return optionalFactory.map(
-                catalogFactory -> {
-                    
ConfigValidator.of(readonlyConfig).validate(catalogFactory.optionRule());
-                    return catalogFactory.createCatalog(catalogName, 
readonlyConfig);
-                });
+                catalogFactory -> catalogFactory.createCatalog(catalogName, 
options));
     }
 
     public static <T extends Factory> URL getFactoryUrl(T factory) {
diff --git 
a/seatunnel-api/src/test/java/org/apache/seatunnel/api/table/catalog/CatalogTableUtilTest.java
 
b/seatunnel-api/src/test/java/org/apache/seatunnel/api/table/catalog/CatalogTableUtilTest.java
index e9cd815f27..73a6b3d47d 100644
--- 
a/seatunnel-api/src/test/java/org/apache/seatunnel/api/table/catalog/CatalogTableUtilTest.java
+++ 
b/seatunnel-api/src/test/java/org/apache/seatunnel/api/table/catalog/CatalogTableUtilTest.java
@@ -22,9 +22,7 @@ import 
org.apache.seatunnel.shade.com.typesafe.config.ConfigFactory;
 import org.apache.seatunnel.shade.com.typesafe.config.ConfigValueFactory;
 
 import org.apache.seatunnel.api.configuration.ReadonlyConfig;
-import org.apache.seatunnel.api.configuration.util.OptionValidationException;
 import org.apache.seatunnel.api.options.ConnectorCommonOptions;
-import org.apache.seatunnel.api.table.factory.FactoryUtil;
 import org.apache.seatunnel.api.table.type.ArrayType;
 import org.apache.seatunnel.api.table.type.BasicType;
 import org.apache.seatunnel.api.table.type.DecimalType;
@@ -45,10 +43,7 @@ import java.net.URL;
 import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.Optional;
 
 import static 
org.apache.seatunnel.common.constants.CollectionConstants.PLUGIN_NAME;
 
@@ -213,65 +208,4 @@ public class CatalogTableUtilTest {
         }
         return Paths.get(resource.toURI()).toString();
     }
-
-    @Test
-    void createOptionalCatalogWithValidConfig() {
-        Map<String, Object> configMap = new HashMap<>();
-        configMap.put("username", "admin");
-        configMap.put("password", "secret");
-        ReadonlyConfig config = ReadonlyConfig.fromMap(configMap);
-
-        Optional<Catalog> catalog =
-                FactoryUtil.createOptionalCatalog(
-                        "test", config, 
Thread.currentThread().getContextClassLoader(), "InMemory");
-
-        Assertions.assertTrue(catalog.isPresent());
-    }
-
-    @Test
-    void createOptionalCatalogWithMissingRequiredOptionsThrows() {
-        Map<String, Object> configMap = new HashMap<>();
-        configMap.put("host", "localhost");
-        ReadonlyConfig config = ReadonlyConfig.fromMap(configMap);
-
-        Assertions.assertThrows(
-                OptionValidationException.class,
-                () ->
-                        FactoryUtil.createOptionalCatalog(
-                                "test",
-                                config,
-                                Thread.currentThread().getContextClassLoader(),
-                                "InMemory"));
-    }
-
-    @Test
-    void createOptionalCatalogWithPartialRequiredOptionsThrows() {
-        Map<String, Object> configMap = new HashMap<>();
-        configMap.put("username", "admin");
-        ReadonlyConfig config = ReadonlyConfig.fromMap(configMap);
-
-        Assertions.assertThrows(
-                OptionValidationException.class,
-                () ->
-                        FactoryUtil.createOptionalCatalog(
-                                "test",
-                                config,
-                                Thread.currentThread().getContextClassLoader(),
-                                "InMemory"));
-    }
-
-    @Test
-    void createOptionalCatalogWithUnknownFactoryReturnsEmpty() {
-        Map<String, Object> configMap = new HashMap<>();
-        ReadonlyConfig config = ReadonlyConfig.fromMap(configMap);
-
-        Optional<Catalog> catalog =
-                FactoryUtil.createOptionalCatalog(
-                        "test",
-                        config,
-                        Thread.currentThread().getContextClassLoader(),
-                        "NonExistentFactory");
-
-        Assertions.assertFalse(catalog.isPresent());
-    }
 }
diff --git 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/duckdb/DuckDBCatalogFactory.java
 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/duckdb/DuckDBCatalogFactory.java
index 53999ace8f..1e966111e7 100644
--- 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/duckdb/DuckDBCatalogFactory.java
+++ 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/catalog/duckdb/DuckDBCatalogFactory.java
@@ -28,13 +28,6 @@ import 
org.apache.seatunnel.connectors.seatunnel.jdbc.internal.dialect.DatabaseI
 
 import com.google.auto.service.AutoService;
 
-import static 
org.apache.seatunnel.connectors.seatunnel.jdbc.config.JdbcCommonOptions.DECIMAL_TYPE_NARROWING;
-import static 
org.apache.seatunnel.connectors.seatunnel.jdbc.config.JdbcCommonOptions.HANDLE_BLOB_AS_STRING;
-import static 
org.apache.seatunnel.connectors.seatunnel.jdbc.config.JdbcCommonOptions.PASSWORD;
-import static 
org.apache.seatunnel.connectors.seatunnel.jdbc.config.JdbcCommonOptions.SCHEMA;
-import static 
org.apache.seatunnel.connectors.seatunnel.jdbc.config.JdbcCommonOptions.URL;
-import static 
org.apache.seatunnel.connectors.seatunnel.jdbc.config.JdbcCommonOptions.USERNAME;
-
 /** Factory for {@link DuckDBCatalog} */
 @AutoService(Factory.class)
 public class DuckDBCatalogFactory implements CatalogFactory {
@@ -57,9 +50,6 @@ public class DuckDBCatalogFactory implements CatalogFactory {
 
     @Override
     public OptionRule optionRule() {
-        return OptionRule.builder()
-                .required(URL)
-                .optional(USERNAME, PASSWORD, SCHEMA, DECIMAL_TYPE_NARROWING, 
HANDLE_BLOB_AS_STRING)
-                .build();
+        return JdbcCommonOptions.BASE_CATALOG_RULE.build();
     }
 }
diff --git 
a/seatunnel-connectors-v2/connector-lance/src/main/java/org/apache/seatunnel/connectors/seatunnel/lance/catalog/LanceCatalogFactory.java
 
b/seatunnel-connectors-v2/connector-lance/src/main/java/org/apache/seatunnel/connectors/seatunnel/lance/catalog/LanceCatalogFactory.java
index 7d26b4e8ef..4235a141a4 100644
--- 
a/seatunnel-connectors-v2/connector-lance/src/main/java/org/apache/seatunnel/connectors/seatunnel/lance/catalog/LanceCatalogFactory.java
+++ 
b/seatunnel-connectors-v2/connector-lance/src/main/java/org/apache/seatunnel/connectors/seatunnel/lance/catalog/LanceCatalogFactory.java
@@ -35,6 +35,6 @@ public class LanceCatalogFactory implements CatalogFactory {
 
     @Override
     public OptionRule optionRule() {
-        return OptionRule.builder().build();
+        return null;
     }
 }

Reply via email to