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

gaojun2048 pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/seatunnel.git


The following commit(s) were added to refs/heads/dev by this push:
     new 5f3c9c36a5 [Fix][Connector-V2] Fix connector support SPI but without 
no args constructor (#6551)
5f3c9c36a5 is described below

commit 5f3c9c36a51d8db7aee45583bc186ba549576e36
Author: Jia Fan <fanjiaemi...@qq.com>
AuthorDate: Thu Mar 21 13:58:10 2024 +0800

    [Fix][Connector-V2] Fix connector support SPI but without no args 
constructor (#6551)
---
 .../cdc/mongodb/MongodbIncrementalSource.java      |  6 ----
 .../cdc/mysql/source/MySqlIncrementalSource.java   |  6 ----
 .../postgres/source/PostgresIncrementalSource.java |  5 ----
 .../source/source/SqlServerIncrementalSource.java  |  6 ----
 .../connectors/doris/source/DorisSource.java       |  2 --
 .../elasticsearch/sink/ElasticsearchSink.java      |  3 --
 .../file/oss/{ => jindo}/config/OssConf.java       |  2 +-
 .../oss/{ => jindo}/config/OssConfigOptions.java   |  2 +-
 .../exception/OssJindoConnectorException.java      |  2 +-
 .../file/oss/{ => jindo}/sink/OssFileSink.java     |  8 +++---
 .../oss/{ => jindo}/sink/OssFileSinkFactory.java   |  4 +--
 .../file/oss/{ => jindo}/source/OssFileSource.java |  8 +++---
 .../{ => jindo}/source/OssFileSourceFactory.java   |  4 +--
 .../connectors/test/OssJindoFactoryTest.java       |  4 +--
 .../seatunnel/file/oss/sink/OssFileSink.java       |  4 ---
 .../seatunnel/file/s3/sink/S3FileSink.java         |  4 ---
 .../seatunnel/hudi/source/HudiSourceFactory.java   |  3 +-
 .../seatunnel/iceberg/sink/IcebergSink.java        |  3 --
 .../seatunnel/iceberg/source/IcebergSource.java    |  2 --
 .../starrocks/source/StarRocksSource.java          |  3 --
 .../connector/ConnectorSpecificationCheckTest.java | 32 ++++++++++++++++++++++
 21 files changed, 51 insertions(+), 62 deletions(-)

diff --git 
a/seatunnel-connectors-v2/connector-cdc/connector-cdc-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/mongodb/MongodbIncrementalSource.java
 
b/seatunnel-connectors-v2/connector-cdc/connector-cdc-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/mongodb/MongodbIncrementalSource.java
index 0045b03c48..e85b4b57a7 100644
--- 
a/seatunnel-connectors-v2/connector-cdc/connector-cdc-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/mongodb/MongodbIncrementalSource.java
+++ 
b/seatunnel-connectors-v2/connector-cdc/connector-cdc-mongodb/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/mongodb/MongodbIncrementalSource.java
@@ -19,7 +19,6 @@ package org.apache.seatunnel.connectors.seatunnel.cdc.mongodb;
 
 import org.apache.seatunnel.api.configuration.Option;
 import org.apache.seatunnel.api.configuration.ReadonlyConfig;
-import org.apache.seatunnel.api.source.SeaTunnelSource;
 import org.apache.seatunnel.api.source.SupportParallelism;
 import org.apache.seatunnel.api.table.catalog.CatalogTable;
 import org.apache.seatunnel.api.table.type.SeaTunnelDataType;
@@ -41,16 +40,11 @@ import 
org.apache.seatunnel.connectors.seatunnel.cdc.mongodb.sender.MongoDBConne
 import 
org.apache.seatunnel.connectors.seatunnel.cdc.mongodb.source.dialect.MongodbDialect;
 import 
org.apache.seatunnel.connectors.seatunnel.cdc.mongodb.source.offset.ChangeStreamOffsetFactory;
 
-import com.google.auto.service.AutoService;
-import lombok.NoArgsConstructor;
-
 import javax.annotation.Nonnull;
 
 import java.util.List;
 import java.util.Optional;
 
-@NoArgsConstructor
-@AutoService(SeaTunnelSource.class)
 public class MongodbIncrementalSource<T> extends IncrementalSource<T, 
MongodbSourceConfig>
         implements SupportParallelism {
 
diff --git 
a/seatunnel-connectors-v2/connector-cdc/connector-cdc-mysql/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/mysql/source/MySqlIncrementalSource.java
 
b/seatunnel-connectors-v2/connector-cdc/connector-cdc-mysql/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/mysql/source/MySqlIncrementalSource.java
index 67ff9ff607..da11ede246 100644
--- 
a/seatunnel-connectors-v2/connector-cdc/connector-cdc-mysql/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/mysql/source/MySqlIncrementalSource.java
+++ 
b/seatunnel-connectors-v2/connector-cdc/connector-cdc-mysql/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/mysql/source/MySqlIncrementalSource.java
@@ -19,7 +19,6 @@ package 
org.apache.seatunnel.connectors.seatunnel.cdc.mysql.source;
 
 import org.apache.seatunnel.api.configuration.Option;
 import org.apache.seatunnel.api.configuration.ReadonlyConfig;
-import org.apache.seatunnel.api.source.SeaTunnelSource;
 import org.apache.seatunnel.api.source.SupportParallelism;
 import org.apache.seatunnel.api.table.catalog.CatalogTable;
 import org.apache.seatunnel.api.table.type.SeaTunnelDataType;
@@ -42,14 +41,9 @@ import 
org.apache.seatunnel.connectors.seatunnel.cdc.mysql.config.MySqlSourceCon
 import 
org.apache.seatunnel.connectors.seatunnel.cdc.mysql.source.offset.BinlogOffsetFactory;
 import 
org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.JdbcCatalogOptions;
 
-import com.google.auto.service.AutoService;
-import lombok.NoArgsConstructor;
-
 import java.time.ZoneId;
 import java.util.List;
 
-@NoArgsConstructor
-@AutoService(SeaTunnelSource.class)
 public class MySqlIncrementalSource<T> extends IncrementalSource<T, 
JdbcSourceConfig>
         implements SupportParallelism {
     static final String IDENTIFIER = "MySQL-CDC";
diff --git 
a/seatunnel-connectors-v2/connector-cdc/connector-cdc-postgres/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/postgres/source/PostgresIncrementalSource.java
 
b/seatunnel-connectors-v2/connector-cdc/connector-cdc-postgres/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/postgres/source/PostgresIncrementalSource.java
index 0ed65a873c..053e38440c 100644
--- 
a/seatunnel-connectors-v2/connector-cdc/connector-cdc-postgres/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/postgres/source/PostgresIncrementalSource.java
+++ 
b/seatunnel-connectors-v2/connector-cdc/connector-cdc-postgres/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/postgres/source/PostgresIncrementalSource.java
@@ -19,7 +19,6 @@ package 
org.apache.seatunnel.connectors.seatunnel.cdc.postgres.source;
 
 import org.apache.seatunnel.api.configuration.Option;
 import org.apache.seatunnel.api.configuration.ReadonlyConfig;
-import org.apache.seatunnel.api.source.SeaTunnelSource;
 import org.apache.seatunnel.api.source.SupportParallelism;
 import org.apache.seatunnel.api.table.catalog.CatalogTable;
 import org.apache.seatunnel.api.table.type.SeaTunnelDataType;
@@ -42,12 +41,10 @@ import 
org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.JdbcCatalogOptions
 
 import org.apache.kafka.connect.data.Struct;
 
-import com.google.auto.service.AutoService;
 import io.debezium.jdbc.JdbcConnection;
 import io.debezium.relational.TableId;
 import io.debezium.relational.history.ConnectTableChangeSerializer;
 import io.debezium.relational.history.TableChanges;
-import lombok.NoArgsConstructor;
 
 import java.time.ZoneId;
 import java.util.List;
@@ -55,8 +52,6 @@ import java.util.Map;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
-@NoArgsConstructor
-@AutoService(SeaTunnelSource.class)
 public class PostgresIncrementalSource<T> extends IncrementalSource<T, 
JdbcSourceConfig>
         implements SupportParallelism {
 
diff --git 
a/seatunnel-connectors-v2/connector-cdc/connector-cdc-sqlserver/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/sqlserver/source/source/SqlServerIncrementalSource.java
 
b/seatunnel-connectors-v2/connector-cdc/connector-cdc-sqlserver/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/sqlserver/source/source/SqlServerIncrementalSource.java
index 4ab64ff692..ce9df11514 100644
--- 
a/seatunnel-connectors-v2/connector-cdc/connector-cdc-sqlserver/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/sqlserver/source/source/SqlServerIncrementalSource.java
+++ 
b/seatunnel-connectors-v2/connector-cdc/connector-cdc-sqlserver/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/sqlserver/source/source/SqlServerIncrementalSource.java
@@ -19,7 +19,6 @@ package 
org.apache.seatunnel.connectors.seatunnel.cdc.sqlserver.source.source;
 
 import org.apache.seatunnel.api.configuration.Option;
 import org.apache.seatunnel.api.configuration.ReadonlyConfig;
-import org.apache.seatunnel.api.source.SeaTunnelSource;
 import org.apache.seatunnel.api.source.SupportParallelism;
 import org.apache.seatunnel.api.table.catalog.CatalogTable;
 import org.apache.seatunnel.api.table.type.SeaTunnelDataType;
@@ -42,14 +41,9 @@ import 
org.apache.seatunnel.connectors.seatunnel.cdc.sqlserver.source.source.off
 import 
org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.JdbcCatalogOptions;
 import 
org.apache.seatunnel.connectors.seatunnel.jdbc.catalog.sqlserver.SqlServerURLParser;
 
-import com.google.auto.service.AutoService;
-import lombok.NoArgsConstructor;
-
 import java.time.ZoneId;
 import java.util.List;
 
-@NoArgsConstructor
-@AutoService(SeaTunnelSource.class)
 public class SqlServerIncrementalSource<T> extends IncrementalSource<T, 
JdbcSourceConfig>
         implements SupportParallelism {
 
diff --git 
a/seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/source/DorisSource.java
 
b/seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/source/DorisSource.java
index c18a9444f2..c04f074021 100644
--- 
a/seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/source/DorisSource.java
+++ 
b/seatunnel-connectors-v2/connector-doris/src/main/java/org/apache/seatunnel/connectors/doris/source/DorisSource.java
@@ -29,14 +29,12 @@ import 
org.apache.seatunnel.connectors.doris.source.reader.DorisSourceReader;
 import org.apache.seatunnel.connectors.doris.source.split.DorisSourceSplit;
 import 
org.apache.seatunnel.connectors.doris.source.split.DorisSourceSplitEnumerator;
 
-import com.google.auto.service.AutoService;
 import lombok.extern.slf4j.Slf4j;
 
 import java.util.Collections;
 import java.util.List;
 
 @Slf4j
-@AutoService(SeaTunnelSource.class)
 public class DorisSource
         implements SeaTunnelSource<SeaTunnelRow, DorisSourceSplit, 
DorisSourceState> {
 
diff --git 
a/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/sink/ElasticsearchSink.java
 
b/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/sink/ElasticsearchSink.java
index 79862879f9..3d160adc07 100644
--- 
a/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/sink/ElasticsearchSink.java
+++ 
b/seatunnel-connectors-v2/connector-elasticsearch/src/main/java/org/apache/seatunnel/connectors/seatunnel/elasticsearch/sink/ElasticsearchSink.java
@@ -35,15 +35,12 @@ import 
org.apache.seatunnel.connectors.seatunnel.elasticsearch.state.Elasticsear
 import 
org.apache.seatunnel.connectors.seatunnel.elasticsearch.state.ElasticsearchCommitInfo;
 import 
org.apache.seatunnel.connectors.seatunnel.elasticsearch.state.ElasticsearchSinkState;
 
-import com.google.auto.service.AutoService;
-
 import java.util.Optional;
 
 import static 
org.apache.seatunnel.api.table.factory.FactoryUtil.discoverFactory;
 import static 
org.apache.seatunnel.connectors.seatunnel.elasticsearch.config.SinkConfig.MAX_BATCH_SIZE;
 import static 
org.apache.seatunnel.connectors.seatunnel.elasticsearch.config.SinkConfig.MAX_RETRY_COUNT;
 
-@AutoService(SeaTunnelSink.class)
 public class ElasticsearchSink
         implements SeaTunnelSink<
                         SeaTunnelRow,
diff --git 
a/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/config/OssConf.java
 
b/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/jindo/config/OssConf.java
similarity index 96%
rename from 
seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/config/OssConf.java
rename to 
seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/jindo/config/OssConf.java
index 79f74e9010..718be0bc8a 100644
--- 
a/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/config/OssConf.java
+++ 
b/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/jindo/config/OssConf.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.seatunnel.connectors.seatunnel.file.oss.config;
+package org.apache.seatunnel.connectors.seatunnel.file.oss.jindo.config;
 
 import org.apache.seatunnel.shade.com.typesafe.config.Config;
 
diff --git 
a/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/config/OssConfigOptions.java
 
b/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/jindo/config/OssConfigOptions.java
similarity index 96%
rename from 
seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/config/OssConfigOptions.java
rename to 
seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/jindo/config/OssConfigOptions.java
index 2a2e272534..8876cbc564 100644
--- 
a/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/config/OssConfigOptions.java
+++ 
b/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/jindo/config/OssConfigOptions.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.seatunnel.connectors.seatunnel.file.oss.config;
+package org.apache.seatunnel.connectors.seatunnel.file.oss.jindo.config;
 
 import org.apache.seatunnel.api.configuration.Option;
 import org.apache.seatunnel.api.configuration.Options;
diff --git 
a/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/exception/OssJindoConnectorException.java
 
b/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/jindo/exception/OssJindoConnectorException.java
similarity index 95%
rename from 
seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/exception/OssJindoConnectorException.java
rename to 
seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/jindo/exception/OssJindoConnectorException.java
index 9e27e1dc92..93327dc233 100644
--- 
a/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/exception/OssJindoConnectorException.java
+++ 
b/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/jindo/exception/OssJindoConnectorException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.seatunnel.connectors.seatunnel.file.oss.exception;
+package org.apache.seatunnel.connectors.seatunnel.file.oss.jindo.exception;
 
 import org.apache.seatunnel.common.exception.SeaTunnelErrorCode;
 import org.apache.seatunnel.common.exception.SeaTunnelRuntimeException;
diff --git 
a/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/sink/OssFileSink.java
 
b/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/jindo/sink/OssFileSink.java
similarity index 88%
rename from 
seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/sink/OssFileSink.java
rename to 
seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/jindo/sink/OssFileSink.java
index f5be2c7862..ac6ee94992 100644
--- 
a/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/sink/OssFileSink.java
+++ 
b/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/jindo/sink/OssFileSink.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.seatunnel.connectors.seatunnel.file.oss.sink;
+package org.apache.seatunnel.connectors.seatunnel.file.oss.jindo.sink;
 
 import org.apache.seatunnel.shade.com.typesafe.config.Config;
 
@@ -26,9 +26,9 @@ import org.apache.seatunnel.common.config.CheckConfigUtil;
 import org.apache.seatunnel.common.config.CheckResult;
 import org.apache.seatunnel.common.constants.PluginType;
 import org.apache.seatunnel.connectors.seatunnel.file.config.FileSystemType;
-import org.apache.seatunnel.connectors.seatunnel.file.oss.config.OssConf;
-import 
org.apache.seatunnel.connectors.seatunnel.file.oss.config.OssConfigOptions;
-import 
org.apache.seatunnel.connectors.seatunnel.file.oss.exception.OssJindoConnectorException;
+import org.apache.seatunnel.connectors.seatunnel.file.oss.jindo.config.OssConf;
+import 
org.apache.seatunnel.connectors.seatunnel.file.oss.jindo.config.OssConfigOptions;
+import 
org.apache.seatunnel.connectors.seatunnel.file.oss.jindo.exception.OssJindoConnectorException;
 import org.apache.seatunnel.connectors.seatunnel.file.sink.BaseFileSink;
 
 import com.google.auto.service.AutoService;
diff --git 
a/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/sink/OssFileSinkFactory.java
 
b/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/jindo/sink/OssFileSinkFactory.java
similarity index 96%
rename from 
seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/sink/OssFileSinkFactory.java
rename to 
seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/jindo/sink/OssFileSinkFactory.java
index 60a426ccb9..b1bfb439e0 100644
--- 
a/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/sink/OssFileSinkFactory.java
+++ 
b/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/jindo/sink/OssFileSinkFactory.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.seatunnel.connectors.seatunnel.file.oss.sink;
+package org.apache.seatunnel.connectors.seatunnel.file.oss.jindo.sink;
 
 import org.apache.seatunnel.api.configuration.util.OptionRule;
 import org.apache.seatunnel.api.table.factory.Factory;
@@ -23,7 +23,7 @@ import 
org.apache.seatunnel.api.table.factory.TableSinkFactory;
 import org.apache.seatunnel.connectors.seatunnel.file.config.BaseSinkConfig;
 import org.apache.seatunnel.connectors.seatunnel.file.config.FileFormat;
 import org.apache.seatunnel.connectors.seatunnel.file.config.FileSystemType;
-import 
org.apache.seatunnel.connectors.seatunnel.file.oss.config.OssConfigOptions;
+import 
org.apache.seatunnel.connectors.seatunnel.file.oss.jindo.config.OssConfigOptions;
 
 import com.google.auto.service.AutoService;
 
diff --git 
a/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/source/OssFileSource.java
 
b/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/jindo/source/OssFileSource.java
similarity index 94%
rename from 
seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/source/OssFileSource.java
rename to 
seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/jindo/source/OssFileSource.java
index 7d73f16e7b..6eea28eda3 100644
--- 
a/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/source/OssFileSource.java
+++ 
b/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/jindo/source/OssFileSource.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.seatunnel.connectors.seatunnel.file.oss.source;
+package org.apache.seatunnel.connectors.seatunnel.file.oss.jindo.source;
 
 import org.apache.seatunnel.shade.com.typesafe.config.Config;
 
@@ -33,9 +33,9 @@ import 
org.apache.seatunnel.connectors.seatunnel.file.config.FileFormat;
 import org.apache.seatunnel.connectors.seatunnel.file.config.FileSystemType;
 import 
org.apache.seatunnel.connectors.seatunnel.file.exception.FileConnectorErrorCode;
 import 
org.apache.seatunnel.connectors.seatunnel.file.exception.FileConnectorException;
-import org.apache.seatunnel.connectors.seatunnel.file.oss.config.OssConf;
-import 
org.apache.seatunnel.connectors.seatunnel.file.oss.config.OssConfigOptions;
-import 
org.apache.seatunnel.connectors.seatunnel.file.oss.exception.OssJindoConnectorException;
+import org.apache.seatunnel.connectors.seatunnel.file.oss.jindo.config.OssConf;
+import 
org.apache.seatunnel.connectors.seatunnel.file.oss.jindo.config.OssConfigOptions;
+import 
org.apache.seatunnel.connectors.seatunnel.file.oss.jindo.exception.OssJindoConnectorException;
 import org.apache.seatunnel.connectors.seatunnel.file.source.BaseFileSource;
 import 
org.apache.seatunnel.connectors.seatunnel.file.source.reader.ReadStrategyFactory;
 
diff --git 
a/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/source/OssFileSourceFactory.java
 
b/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/jindo/source/OssFileSourceFactory.java
similarity index 95%
rename from 
seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/source/OssFileSourceFactory.java
rename to 
seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/jindo/source/OssFileSourceFactory.java
index 5a31832b33..a6c9276c76 100644
--- 
a/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/source/OssFileSourceFactory.java
+++ 
b/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/jindo/source/OssFileSourceFactory.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.seatunnel.connectors.seatunnel.file.oss.source;
+package org.apache.seatunnel.connectors.seatunnel.file.oss.jindo.source;
 
 import org.apache.seatunnel.api.configuration.util.OptionRule;
 import org.apache.seatunnel.api.source.SeaTunnelSource;
@@ -25,7 +25,7 @@ import 
org.apache.seatunnel.api.table.factory.TableSourceFactory;
 import 
org.apache.seatunnel.connectors.seatunnel.file.config.BaseSourceConfigOptions;
 import org.apache.seatunnel.connectors.seatunnel.file.config.FileFormat;
 import org.apache.seatunnel.connectors.seatunnel.file.config.FileSystemType;
-import 
org.apache.seatunnel.connectors.seatunnel.file.oss.config.OssConfigOptions;
+import 
org.apache.seatunnel.connectors.seatunnel.file.oss.jindo.config.OssConfigOptions;
 
 import com.google.auto.service.AutoService;
 
diff --git 
a/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/test/java/org/apache/seatunnel/connectors/test/OssJindoFactoryTest.java
 
b/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/test/java/org/apache/seatunnel/connectors/test/OssJindoFactoryTest.java
index 85955f086f..c014f1d492 100644
--- 
a/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/test/java/org/apache/seatunnel/connectors/test/OssJindoFactoryTest.java
+++ 
b/seatunnel-connectors-v2/connector-file/connector-file-jindo-oss/src/test/java/org/apache/seatunnel/connectors/test/OssJindoFactoryTest.java
@@ -17,8 +17,8 @@
 
 package org.apache.seatunnel.connectors.test;
 
-import 
org.apache.seatunnel.connectors.seatunnel.file.oss.sink.OssFileSinkFactory;
-import 
org.apache.seatunnel.connectors.seatunnel.file.oss.source.OssFileSourceFactory;
+import 
org.apache.seatunnel.connectors.seatunnel.file.oss.jindo.sink.OssFileSinkFactory;
+import 
org.apache.seatunnel.connectors.seatunnel.file.oss.jindo.source.OssFileSourceFactory;
 
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
diff --git 
a/seatunnel-connectors-v2/connector-file/connector-file-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/sink/OssFileSink.java
 
b/seatunnel-connectors-v2/connector-file/connector-file-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/sink/OssFileSink.java
index 5cab55f8ed..de4726fd5c 100644
--- 
a/seatunnel-connectors-v2/connector-file/connector-file-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/sink/OssFileSink.java
+++ 
b/seatunnel-connectors-v2/connector-file/connector-file-oss/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/oss/sink/OssFileSink.java
@@ -18,15 +18,11 @@
 package org.apache.seatunnel.connectors.seatunnel.file.oss.sink;
 
 import org.apache.seatunnel.api.configuration.ReadonlyConfig;
-import org.apache.seatunnel.api.sink.SeaTunnelSink;
 import org.apache.seatunnel.api.table.catalog.CatalogTable;
 import org.apache.seatunnel.connectors.seatunnel.file.config.FileSystemType;
 import org.apache.seatunnel.connectors.seatunnel.file.oss.config.OssHadoopConf;
 import 
org.apache.seatunnel.connectors.seatunnel.file.sink.BaseMultipleTableFileSink;
 
-import com.google.auto.service.AutoService;
-
-@AutoService(SeaTunnelSink.class)
 public class OssFileSink extends BaseMultipleTableFileSink {
     public OssFileSink(ReadonlyConfig readonlyConfig, CatalogTable 
catalogTable) {
         super(OssHadoopConf.buildWithConfig(readonlyConfig), readonlyConfig, 
catalogTable);
diff --git 
a/seatunnel-connectors-v2/connector-file/connector-file-s3/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/s3/sink/S3FileSink.java
 
b/seatunnel-connectors-v2/connector-file/connector-file-s3/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/s3/sink/S3FileSink.java
index 137d199193..b758356952 100644
--- 
a/seatunnel-connectors-v2/connector-file/connector-file-s3/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/s3/sink/S3FileSink.java
+++ 
b/seatunnel-connectors-v2/connector-file/connector-file-s3/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/s3/sink/S3FileSink.java
@@ -25,7 +25,6 @@ import org.apache.seatunnel.api.sink.DataSaveMode;
 import org.apache.seatunnel.api.sink.DefaultSaveModeHandler;
 import org.apache.seatunnel.api.sink.SaveModeHandler;
 import org.apache.seatunnel.api.sink.SchemaSaveMode;
-import org.apache.seatunnel.api.sink.SeaTunnelSink;
 import org.apache.seatunnel.api.sink.SupportSaveMode;
 import org.apache.seatunnel.api.table.catalog.Catalog;
 import org.apache.seatunnel.api.table.catalog.CatalogTable;
@@ -39,13 +38,10 @@ import 
org.apache.seatunnel.connectors.seatunnel.file.s3.config.S3Conf;
 import 
org.apache.seatunnel.connectors.seatunnel.file.s3.config.S3ConfigOptions;
 import 
org.apache.seatunnel.connectors.seatunnel.file.sink.BaseMultipleTableFileSink;
 
-import com.google.auto.service.AutoService;
-
 import java.util.Optional;
 
 import static 
org.apache.seatunnel.api.table.factory.FactoryUtil.discoverFactory;
 
-@AutoService(SeaTunnelSink.class)
 public class S3FileSink extends BaseMultipleTableFileSink implements 
SupportSaveMode {
 
     private CatalogTable catalogTable;
diff --git 
a/seatunnel-connectors-v2/connector-hudi/src/main/java/org/apache/seatunnel/connectors/seatunnel/hudi/source/HudiSourceFactory.java
 
b/seatunnel-connectors-v2/connector-hudi/src/main/java/org/apache/seatunnel/connectors/seatunnel/hudi/source/HudiSourceFactory.java
index 796645297b..778efc62a3 100644
--- 
a/seatunnel-connectors-v2/connector-hudi/src/main/java/org/apache/seatunnel/connectors/seatunnel/hudi/source/HudiSourceFactory.java
+++ 
b/seatunnel-connectors-v2/connector-hudi/src/main/java/org/apache/seatunnel/connectors/seatunnel/hudi/source/HudiSourceFactory.java
@@ -19,12 +19,13 @@ package 
org.apache.seatunnel.connectors.seatunnel.hudi.source;
 
 import org.apache.seatunnel.api.configuration.util.OptionRule;
 import org.apache.seatunnel.api.source.SeaTunnelSource;
+import org.apache.seatunnel.api.table.factory.Factory;
 import org.apache.seatunnel.api.table.factory.TableSourceFactory;
 import org.apache.seatunnel.connectors.seatunnel.hudi.config.HudiSourceConfig;
 
 import com.google.auto.service.AutoService;
 
-@AutoService(SeaTunnelSource.class)
+@AutoService(Factory.class)
 public class HudiSourceFactory implements TableSourceFactory {
 
     @Override
diff --git 
a/seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/IcebergSink.java
 
b/seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/IcebergSink.java
index 06131bc9f7..ad92aa1d75 100644
--- 
a/seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/IcebergSink.java
+++ 
b/seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/sink/IcebergSink.java
@@ -44,8 +44,6 @@ import 
org.apache.seatunnel.connectors.seatunnel.iceberg.sink.commit.IcebergAggr
 import 
org.apache.seatunnel.connectors.seatunnel.iceberg.sink.commit.IcebergCommitInfo;
 import 
org.apache.seatunnel.connectors.seatunnel.iceberg.sink.state.IcebergSinkState;
 
-import com.google.auto.service.AutoService;
-
 import java.io.IOException;
 import java.util.List;
 import java.util.Objects;
@@ -54,7 +52,6 @@ import java.util.stream.Collectors;
 
 import static 
org.apache.seatunnel.api.table.factory.FactoryUtil.discoverFactory;
 
-@AutoService(SeaTunnelSink.class)
 public class IcebergSink
         implements SeaTunnelSink<
                         SeaTunnelRow,
diff --git 
a/seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/source/IcebergSource.java
 
b/seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/source/IcebergSource.java
index 3d1cde13a9..7a2fdf9d4f 100644
--- 
a/seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/source/IcebergSource.java
+++ 
b/seatunnel-connectors-v2/connector-iceberg/src/main/java/org/apache/seatunnel/connectors/seatunnel/iceberg/source/IcebergSource.java
@@ -49,7 +49,6 @@ import 
org.apache.seatunnel.connectors.seatunnel.iceberg.utils.SchemaUtils;
 import org.apache.iceberg.Schema;
 import org.apache.iceberg.types.Types;
 
-import com.google.auto.service.AutoService;
 import lombok.SneakyThrows;
 
 import java.util.ArrayList;
@@ -58,7 +57,6 @@ import java.util.List;
 
 import static 
org.apache.seatunnel.shade.com.google.common.base.Preconditions.checkArgument;
 
-@AutoService(SeaTunnelSource.class)
 public class IcebergSource
         implements SeaTunnelSource<
                         SeaTunnelRow, IcebergFileScanTaskSplit, 
IcebergSplitEnumeratorState>,
diff --git 
a/seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/source/StarRocksSource.java
 
b/seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/source/StarRocksSource.java
index 9bde1b22a3..211a8b96fc 100644
--- 
a/seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/source/StarRocksSource.java
+++ 
b/seatunnel-connectors-v2/connector-starrocks/src/main/java/org/apache/seatunnel/connectors/seatunnel/starrocks/source/StarRocksSource.java
@@ -26,12 +26,9 @@ import org.apache.seatunnel.api.table.type.SeaTunnelRow;
 import org.apache.seatunnel.connectors.seatunnel.starrocks.config.CommonConfig;
 import org.apache.seatunnel.connectors.seatunnel.starrocks.config.SourceConfig;
 
-import com.google.auto.service.AutoService;
-
 import java.util.Collections;
 import java.util.List;
 
-@AutoService(SeaTunnelSource.class)
 public class StarRocksSource
         implements SeaTunnelSource<SeaTunnelRow, StarRocksSourceSplit, 
StarRocksSourceState> {
 
diff --git 
a/seatunnel-dist/src/test/java/org/apache/seatunnel/api/connector/ConnectorSpecificationCheckTest.java
 
b/seatunnel-dist/src/test/java/org/apache/seatunnel/api/connector/ConnectorSpecificationCheckTest.java
index 243d2fc5a8..5b46d81201 100644
--- 
a/seatunnel-dist/src/test/java/org/apache/seatunnel/api/connector/ConnectorSpecificationCheckTest.java
+++ 
b/seatunnel-dist/src/test/java/org/apache/seatunnel/api/connector/ConnectorSpecificationCheckTest.java
@@ -17,6 +17,7 @@
 
 package org.apache.seatunnel.api.connector;
 
+import org.apache.seatunnel.api.sink.SeaTunnelSink;
 import org.apache.seatunnel.api.source.SeaTunnelSource;
 import org.apache.seatunnel.api.table.factory.FactoryUtil;
 import org.apache.seatunnel.api.table.factory.TableSinkFactory;
@@ -33,14 +34,28 @@ import lombok.extern.slf4j.Slf4j;
 
 import java.lang.reflect.Method;
 import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import java.util.Optional;
+import java.util.ServiceLoader;
 
 @Slf4j
 public class ConnectorSpecificationCheckTest {
 
     @Test
     public void testAllConnectorImplementFactoryWithUpToDateMethod() throws 
ClassNotFoundException {
+
+        ServiceLoader<SeaTunnelSource> sources =
+                ServiceLoader.load(
+                        SeaTunnelSource.class, 
Thread.currentThread().getContextClassLoader());
+        Map<String, String> sourceWithSPI = new HashMap<>();
+        Iterator<SeaTunnelSource> sourceIterator = sources.iterator();
+        while (sourceIterator.hasNext()) {
+            SeaTunnelSource source = sourceIterator.next();
+            sourceWithSPI.put(source.getPluginName(), 
source.getClass().getName());
+        }
         List<TableSourceFactory> sourceFactories =
                 FactoryUtil.discoverFactories(
                         Thread.currentThread().getContextClassLoader(), 
TableSourceFactory.class);
@@ -57,6 +72,10 @@ public class ConnectorSpecificationCheckTest {
                                     TableSourceFactoryContext.class)
                             .isPresent()
                     && 
!blockList.contains(factory.getClass().getSimpleName())) {
+                Assertions.assertFalse(
+                        sourceWithSPI.containsKey(factory.factoryIdentifier()),
+                        "Please remove `@AutoService(SeaTunnelSource.class)` 
annotation in "
+                                + 
sourceWithSPI.get(factory.factoryIdentifier()));
                 Class<? extends SeaTunnelSource> sourceClass = 
factory.getSourceClass();
                 Optional<Method> prepare =
                         ReflectionUtils.getDeclaredMethod(sourceClass, 
"prepare");
@@ -84,12 +103,25 @@ public class ConnectorSpecificationCheckTest {
         List<TableSinkFactory> sinkFactories =
                 FactoryUtil.discoverFactories(
                         Thread.currentThread().getContextClassLoader(), 
TableSinkFactory.class);
+        ServiceLoader<SeaTunnelSink> sinks =
+                ServiceLoader.load(
+                        SeaTunnelSink.class, 
Thread.currentThread().getContextClassLoader());
+        Map<String, String> sinkWithSPI = new HashMap<>();
+        Iterator<SeaTunnelSink> sinkIterator = sinks.iterator();
+        while (sinkIterator.hasNext()) {
+            SeaTunnelSink sink = sinkIterator.next();
+            sinkWithSPI.put(sink.getPluginName(), sink.getClass().getName());
+        }
         for (TableSinkFactory factory : sinkFactories) {
             String factoryName = factory.getClass().getSimpleName();
             if (ReflectionUtils.getDeclaredMethod(
                                     factory.getClass(), "createSink", 
TableSinkFactoryContext.class)
                             .isPresent()
                     && !blockList.contains(factoryName)) {
+                Assertions.assertFalse(
+                        sinkWithSPI.containsKey(factory.factoryIdentifier()),
+                        "Please remove `@AutoService(SeaTunnelSink.class)` 
annotation in "
+                                + 
sinkWithSPI.get(factory.factoryIdentifier()));
                 Class<? extends SeaTunnelSource> sinkClass =
                         (Class<? extends SeaTunnelSource>)
                                 Class.forName(


Reply via email to