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(