You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by fa...@apache.org on 2024/07/29 01:49:26 UTC

(flink-connector-jdbc) 02/14: [FLINK-35364] Create core module and move code

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

fanrui pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/flink-connector-jdbc.git

commit b5c030bb3910a356a219fa3c0f52ef9cb93d5041
Author: Joao Boto <bo...@boto.pro>
AuthorDate: Sat May 18 05:05:59 2024 +0200

    [FLINK-35364] Create core module and move code
---
 .../0c7b60d6-a12c-432d-8a72-747cabaeb7ed           |   0
 .../0f94f11b-9bc8-445a-8be8-e7dfd8a384b0           |   0
 .../2047daea-3713-4298-bdb3-e269f539363f           | 303 ++++++++++++++++++++
 .../4bca2274-65a9-4a61-81ef-767d58233ea0           |   0
 .../596bd7eb-1ed5-4963-a56a-941766d61233           |   0
 .../6b9ab1b0-c14d-4667-bab5-407b81fba98b           |   0
 .../b10c194a-0517-4744-830f-81abfb71ab18           |   0
 .../d45c3af5-52c6-45fd-9926-75e75e77473a           |   0
 .../f242ee43-a122-4d2f-a291-6439cdb9029f           |   0
 .../archunit-violations/stored.rules               |  11 +-
 flink-connector-jdbc-core/pom.xml                  | 313 +++++++++++++++++++++
 .../connector/jdbc/JdbcConnectionOptions.java      |   0
 .../connector/jdbc/JdbcExactlyOnceOptions.java     |   0
 .../flink/connector/jdbc/JdbcExecutionOptions.java |   0
 .../flink/connector/jdbc/JdbcInputFormat.java      |   0
 .../flink/connector/jdbc/JdbcRowOutputFormat.java  |   0
 .../org/apache/flink/connector/jdbc/JdbcSink.java  |   0
 .../flink/connector/jdbc/JdbcStatementBuilder.java |   0
 .../jdbc/catalog/AbstractJdbcCatalog.java          |   0
 .../flink/connector/jdbc/catalog/JdbcCatalog.java  |   0
 .../connector/jdbc/catalog/JdbcCatalogUtils.java   |   0
 .../jdbc/catalog/factory/JdbcCatalogFactory.java   |   0
 .../catalog/factory/JdbcCatalogFactoryOptions.java |   0
 .../jdbc/converter/AbstractJdbcRowConverter.java   |   0
 .../AbstractPostgresCompatibleRowConverter.java    |   0
 .../connector/jdbc/converter/JdbcRowConverter.java |   0
 .../databases/cratedb/catalog/CrateDBCatalog.java  |   0
 .../cratedb/catalog/CrateDBTablePath.java          |   0
 .../cratedb/catalog/CrateDBTypeMapper.java         |   0
 .../databases/cratedb/dialect/CrateDBDialect.java  |   0
 .../cratedb/dialect/CrateDBDialectFactory.java     |   0
 .../cratedb/dialect/CrateDBRowConverter.java       |   0
 .../jdbc/databases/db2/dialect/Db2Dialect.java     |   0
 .../databases/db2/dialect/Db2DialectFactory.java   |   0
 .../databases/db2/dialect/Db2RowConverter.java     |   0
 .../jdbc/databases/derby/dialect/DerbyDialect.java |   0
 .../derby/dialect/DerbyDialectFactory.java         |   0
 .../databases/derby/dialect/DerbyRowConverter.java |   0
 .../jdbc/databases/mysql/catalog/MySqlCatalog.java |   0
 .../databases/mysql/catalog/MySqlTypeMapper.java   |   0
 .../databases/mysql/dialect/MySQLRowConverter.java |   0
 .../jdbc/databases/mysql/dialect/MySqlDialect.java |   0
 .../mysql/dialect/MySqlDialectFactory.java         |   0
 .../oceanbase/dialect/OceanBaseDialect.java        |   0
 .../oceanbase/dialect/OceanBaseDialectFactory.java |   0
 .../oceanbase/dialect/OceanBaseRowConverter.java   |   0
 .../databases/oracle/dialect/OracleDialect.java    |   0
 .../oracle/dialect/OracleDialectFactory.java       |   0
 .../oracle/dialect/OracleRowConverter.java         |   0
 .../postgres/catalog/PostgresCatalog.java          |   0
 .../postgres/catalog/PostgresTablePath.java        |   0
 .../postgres/catalog/PostgresTypeMapper.java       |   0
 .../postgres/dialect/PostgresDialect.java          |   0
 .../postgres/dialect/PostgresDialectFactory.java   |   0
 .../postgres/dialect/PostgresRowConverter.java     |   0
 .../sqlserver/dialect/SqlServerDialect.java        |   0
 .../sqlserver/dialect/SqlServerDialectFactory.java |   0
 .../sqlserver/dialect/SqlServerRowConverter.java   |   0
 .../jdbc/databases/trino/dialect/TrinoDialect.java |   0
 .../trino/dialect/TrinoDialectFactory.java         |   0
 .../databases/trino/dialect/TrinoRowConverter.java |   0
 .../connections/JdbcConnectionProvider.java        |   0
 .../connections/SimpleJdbcConnectionProvider.java  |   0
 .../xa/PoolingXaConnectionProvider.java            |   0
 .../connections/xa/SimpleXaConnectionProvider.java |   0
 .../jdbc/datasource/connections/xa/XaCommand.java  |   0
 .../connections/xa/XaConnectionProvider.java       |   0
 .../datasource/statements/JdbcQueryStatement.java  |   0
 .../statements/SimpleJdbcQueryStatement.java       |   0
 .../datasource/transactions/xa/XaTransaction.java  |   0
 .../transactions/xa/XaTransactionResult.java       |   0
 .../transactions/xa/domain/TransactionId.java      |   0
 .../xa/exceptions/EmptyTransactionXaException.java |   0
 .../xa/exceptions/TransientXaException.java        |   0
 .../transactions/xa/exceptions/XaError.java        |   0
 .../connector/jdbc/dialect/AbstractDialect.java    |   0
 .../dialect/AbstractPostgresCompatibleDialect.java |   0
 .../flink/connector/jdbc/dialect/JdbcDialect.java  |   0
 .../connector/jdbc/dialect/JdbcDialectFactory.java |   0
 .../connector/jdbc/dialect/JdbcDialectLoader.java  |   0
 .../jdbc/dialect/JdbcDialectTypeMapper.java        |   0
 .../jdbc/internal/GenericJdbcSinkFunction.java     |   0
 .../connector/jdbc/internal/JdbcOutputFormat.java  |   0
 .../jdbc/internal/JdbcOutputSerializer.java        |   0
 .../jdbc/internal/RowJdbcOutputFormat.java         |   0
 .../jdbc/internal/TableJdbcUpsertOutputFormat.java |   0
 .../executor/InsertOrUpdateJdbcExecutor.java       |   0
 .../executor/JdbcBatchStatementExecutor.java       |   0
 .../executor/KeyedBatchStatementExecutor.java      |   0
 .../executor/SimpleBatchStatementExecutor.java     |   0
 .../TableBufferReducedStatementExecutor.java       |   0
 .../executor/TableBufferedStatementExecutor.java   |   0
 .../TableInsertOrUpdateStatementExecutor.java      |   0
 .../executor/TableSimpleStatementExecutor.java     |   0
 .../options/InternalJdbcConnectionOptions.java     |   0
 .../jdbc/internal/options/JdbcDmlOptions.java      |   0
 .../jdbc/internal/options/JdbcInsertOptions.java   |   0
 .../jdbc/internal/options/JdbcReadOptions.java     |   0
 .../internal/options/JdbcTypedQueryOptions.java    |   0
 .../apache/flink/connector/jdbc/sink/JdbcSink.java |   0
 .../flink/connector/jdbc/sink/JdbcSinkBuilder.java |   0
 .../jdbc/sink/committer/JdbcCommitable.java        |   0
 .../sink/committer/JdbcCommitableSerializer.java   |   0
 .../jdbc/sink/committer/JdbcCommitter.java         |   0
 .../connector/jdbc/sink/writer/JdbcWriter.java     |   0
 .../jdbc/sink/writer/JdbcWriterState.java          |   0
 .../sink/writer/JdbcWriterStateSerializer.java     |   0
 .../flink/connector/jdbc/source/JdbcSource.java    |   0
 .../connector/jdbc/source/JdbcSourceBuilder.java   |   0
 .../connector/jdbc/source/JdbcSourceOptions.java   |   0
 .../enumerator/JdbcSourceEnumStateSerializer.java  |   0
 .../source/enumerator/JdbcSourceEnumerator.java    |   0
 .../enumerator/JdbcSourceEnumeratorState.java      |   0
 .../enumerator/JdbcSqlSplitEnumeratorBase.java     |   0
 .../enumerator/SqlTemplateSplitEnumerator.java     |   0
 .../jdbc/source/reader/JdbcRecordEmitter.java      |   0
 .../jdbc/source/reader/JdbcSourceReader.java       |   0
 .../jdbc/source/reader/JdbcSourceSplitReader.java  |   0
 .../jdbc/source/reader/RecordAndOffset.java        |   0
 .../source/reader/extractor/ResultExtractor.java   |   0
 .../reader/extractor/RowResultExtractor.java       |   0
 .../jdbc/source/split/CheckpointedOffset.java      |   0
 .../jdbc/source/split/JdbcSourceSplit.java         |   0
 .../source/split/JdbcSourceSplitSerializer.java    |   0
 .../jdbc/source/split/JdbcSourceSplitState.java    |   0
 .../CompositeJdbcParameterValuesProvider.java      |   0
 .../split/JdbcGenericParameterValuesProvider.java  |   0
 .../JdbcNumericBetweenParametersProvider.java      |   0
 .../jdbc/split/JdbcParameterValuesProvider.java    |   0
 .../split/JdbcSlideTimingParameterProvider.java    |   0
 .../statement/FieldNamedPreparedStatement.java     |   0
 .../statement/FieldNamedPreparedStatementImpl.java |   0
 .../connector/jdbc/statement/StatementFactory.java |   0
 .../connector/jdbc/table/JdbcConnectorOptions.java |   0
 .../jdbc/table/JdbcDynamicTableFactory.java        |   0
 .../connector/jdbc/table/JdbcDynamicTableSink.java |   0
 .../jdbc/table/JdbcDynamicTableSource.java         |   0
 ...JdbcFilterPushdownPreparedStatementVisitor.java |   0
 .../jdbc/table/JdbcOutputFormatBuilder.java        |   0
 .../jdbc/table/JdbcRowDataInputFormat.java         |   0
 .../jdbc/table/JdbcRowDataLookupFunction.java      |   0
 .../jdbc/table/ParameterizedPredicate.java         |   0
 .../jdbc/table/RowDataResultExtractor.java         |  27 +-
 .../jdbc/utils/ContinuousUnBoundingSettings.java   |   0
 .../flink/connector/jdbc/utils/JdbcTypeUtil.java   |   0
 .../flink/connector/jdbc/utils/JdbcUtils.java      |   0
 .../flink/connector/jdbc/xa/CheckpointAndXid.java  |   0
 .../jdbc/xa/CheckpointAndXidSerializer.java        |   0
 .../connector/jdbc/xa/JdbcXaSinkFunction.java      |   0
 .../connector/jdbc/xa/JdbcXaSinkFunctionState.java |   0
 .../apache/flink/connector/jdbc/xa/JobSubtask.java |   0
 .../connector/jdbc/xa/SemanticXidGenerator.java    |   0
 .../apache/flink/connector/jdbc/xa/XaFacade.java   |   0
 .../flink/connector/jdbc/xa/XaFacadeImpl.java      |   0
 .../connector/jdbc/xa/XaFacadePoolingImpl.java     |   0
 .../apache/flink/connector/jdbc/xa/XaGroupOps.java |   0
 .../flink/connector/jdbc/xa/XaGroupOpsImpl.java    |   0
 .../connector/jdbc/xa/XaSinkStateHandler.java      |   0
 .../connector/jdbc/xa/XaSinkStateHandlerImpl.java  |   0
 .../connector/jdbc/xa/XaSinkStateSerializer.java   |   0
 .../flink/connector/jdbc/xa/XidGenerator.java      |   0
 .../apache/flink/connector/jdbc/xa/XidImpl.java    |   0
 .../flink/connector/jdbc/xa/XidSerializer.java     |   0
 .../flink/connector/jdbc/xa/package-info.java      |   0
 ...flink.connector.jdbc.dialect.JdbcDialectFactory |   0
 .../org.apache.flink.table.factories.Factory       |   0
 .../ProductionCodeArchitectureTest.java            |   0
 .../architecture/TestCodeArchitectureTest.java     |   0
 .../reader/splitreader/TestingSplitsChange.java    |   0
 .../connector/jdbc/JdbcConnectionOptionsTest.java  |   0
 .../flink/connector/jdbc/JdbcDataTestBase.java     |   0
 .../apache/flink/connector/jdbc/JdbcITCase.java    |   0
 .../flink/connector/jdbc/JdbcInputFormatTest.java  |   0
 .../connector/jdbc/JdbcRowOutputFormatTest.java    |   0
 .../apache/flink/connector/jdbc/JdbcTestBase.java  |   0
 .../flink/connector/jdbc/JdbcTestCheckpoint.java   |   0
 .../flink/connector/jdbc/JdbcTestFixture.java      |   0
 .../jdbc/catalog/JdbcCatalogUtilsTest.java         |   0
 .../converter/AbstractJdbcRowConverterTest.java    |   0
 .../cratedb/catalog/CrateDBCatalogITCase.java      |   0
 .../cratedb/catalog/CrateDBCatalogTest.java        |   0
 .../cratedb/catalog/CrateDBCatalogTestBase.java    |   0
 .../cratedb/catalog/CrateDBTablePathTest.java      |   0
 .../databases/cratedb/catalog/CrateDBTestBase.java |   0
 .../cratedb/dialect/CrateDBDialectTypeTest.java    |   0
 .../connector/jdbc/databases/db2/Db2TestBase.java  |   0
 .../databases/db2/dialect/Db2DialectTypeTest.java  |   0
 .../db2/dialect/Db2PreparedStatementTest.java      |   0
 .../db2/table/Db2DynamicTableSinkITCase.java       |   0
 .../db2/table/Db2DynamicTableSourceITCase.java     |   0
 .../db2/xa/Db2ExactlyOnceSinkE2eTest.java          |   0
 .../jdbc/databases/derby/DerbyTestBase.java        |   0
 .../derby/table/DerbyDynamicTableSinkITCase.java   |   0
 .../derby/table/DerbyDynamicTableSourceITCase.java |   0
 .../derby/xa/DerbyExactlyOnceSinkE2eTest.java      |   0
 .../connector/jdbc/databases/h2/H2XaTestBase.java  |   0
 .../jdbc/databases/mysql/MySqlTestBase.java        |   0
 .../mysql/catalog/MySql56CatalogITCase.java        |   0
 .../mysql/catalog/MySql57CatalogITCase.java        |   0
 .../mysql/catalog/MySqlCatalogITCase.java          |   0
 .../mysql/catalog/MySqlCatalogTestBase.java        |   0
 .../databases/mysql/dialect/MySqlDialectTest.java  |   0
 .../mysql/dialect/MySqlDialectTypeTest.java        |   0
 .../mysql/table/MySqlDynamicTableSinkITCase.java   |   0
 .../mysql/table/MySqlDynamicTableSourceITCase.java |   0
 .../mysql/table/UnsignedTypeConversionITCase.java  |   0
 .../mysql/xa/MySqlExactlyOnceSinkE2eTest.java      |   0
 .../oceanbase/OceanBaseMysqlTestBase.java          |   0
 .../oceanbase/OceanBaseOracleTestBase.java         |   0
 .../oceanbase/dialect/OceanBaseDialectTest.java    |   0
 .../dialect/OceanBaseMysqlDialectTypeTest.java     |   0
 .../dialect/OceanBaseOracleDialectTypeTest.java    |   0
 .../OceanBaseMySqlDynamicTableSinkITCase.java      |   0
 .../OceanBaseMySqlDynamicTableSourceITCase.java    |   0
 .../OceanBaseOracleDynamicTableSinkITCase.java     |   0
 .../OceanBaseOracleDynamicTableSourceITCase.java   |   0
 .../oceanbase/table/OceanBaseTableRow.java         |   0
 .../jdbc/databases/oracle/OracleTestBase.java      |   0
 .../oracle/dialect/OracleDialectTypeTest.java      |   0
 .../dialect/OraclePreparedStatementTest.java       |   0
 .../oracle/table/OracleDynamicTableSinkITCase.java |   0
 .../table/OracleDynamicTableSourceITCase.java      |   0
 .../oracle/table/OracleTableSourceITCase.java      |   0
 .../oracle/xa/OracleExactlyOnceSinkE2eTest.java    |   0
 .../jdbc/databases/postgres/PostgresTestBase.java  |   0
 .../postgres/catalog/PostgresCatalogITCase.java    |   0
 .../postgres/catalog/PostgresCatalogTest.java      |   0
 .../postgres/catalog/PostgresCatalogTestBase.java  |   0
 .../postgres/catalog/PostgresTablePathTest.java    |   0
 .../catalog/factory/JdbcCatalogFactoryTest.java    |   0
 .../postgres/dialect/PostgresDialectTypeTest.java  |   0
 .../table/PostgresDynamicTableSinkITCase.java      |   0
 .../table/PostgresDynamicTableSourceITCase.java    |   0
 .../xa/PostgresExactlyOnceSinkE2eTest.java         |   0
 .../databases/sqlserver/SqlServerTestBase.java     |   0
 .../dialect/SqlServerPreparedStatementTest.java    |   0
 .../table/SqlServerDynamicTableSinkITCase.java     |   0
 .../table/SqlServerDynamicTableSourceITCase.java   |   0
 .../table/SqlServerTableSourceITCase.java          |   0
 .../xa/SqlServerExactlyOnceSinkE2eTest.java        |   0
 .../jdbc/databases/trino/TrinoTestBase.java        |   0
 .../trino/dialect/TrinoDialectTypeTest.java        |   0
 .../trino/dialect/TrinoPreparedStatementTest.java  |   0
 .../trino/table/TrinoDynamicTableSinkITCase.java   |   0
 .../trino/table/TrinoDynamicTableSourceITCase.java |   0
 .../xa/SimpleXaConnectionProviderTest.java         |   0
 .../xa/TransactionIdConnectionTest.java            |   0
 .../transactions/xa/domain/TransactionIdTest.java  |   0
 .../jdbc/dialect/JdbcDialectTypeTest.java          |   0
 .../flink/connector/jdbc/fakedb/FakeDBUtils.java   |   0
 .../jdbc/fakedb/driver/FakeConnection.java         |   0
 .../jdbc/fakedb/driver/FakeConnection1.java        |   0
 .../jdbc/fakedb/driver/FakeConnection2.java        |   0
 .../jdbc/fakedb/driver/FakeConnection3.java        |   0
 .../connector/jdbc/fakedb/driver/FakeDriver1.java  |   0
 .../connector/jdbc/fakedb/driver/FakeDriver2.java  |   0
 .../connector/jdbc/fakedb/driver/FakeDriver3.java  |   0
 .../connector/jdbc/internal/JdbcFullTest.java      |   0
 .../jdbc/internal/JdbcOutputSerializerTest.java    |   0
 .../jdbc/internal/JdbcTableOutputFormatTest.java   |   0
 ...ProviderDriverClassConcurrentLoadingITCase.java |   0
 .../SimpleJdbcConnectionProviderTest.java          |   0
 .../jdbc/sink/AtLeastOnceJdbcSinkTest.java         |   0
 .../connector/jdbc/sink/BaseJdbcSinkTest.java      |   0
 .../jdbc/sink/ExactlyOnceJdbcSinkTest.java         |   0
 .../sink/writer/AlLeastOnceJdbcWriterTest.java     |   0
 .../jdbc/sink/writer/BaseJdbcWriterTest.java       |   0
 .../sink/writer/ExactlyOnceJdbcWriterTest.java     |   0
 .../sink/writer/JdbcWriterStateSerializerTest.java |   0
 .../jdbc/sink/writer/JdbcWriterStateTest.java      |   0
 .../jdbc/source/JdbcSourceBuilderTest.java         |   0
 .../connector/jdbc/source/JdbcSourceITCase.java    |   0
 .../jdbc/source/JdbcSourceStreamRelatedITCase.java |   0
 .../JdbcSourceEnumStateSerializerTest.java         |   0
 .../enumerator/JdbcSourceEnumeratorTest.java       |   0
 .../jdbc/source/reader/JdbcSourceReaderTest.java   |   0
 .../source/reader/JdbcSourceSplitReaderTest.java   |   0
 .../split/JdbcSourceSplitSerializerTest.java       |   0
 .../NumericBetweenParametersProviderTest.java      |   0
 .../FieldNamedPreparedStatementImplTest.java       |   0
 .../jdbc/table/JdbcAppendOnlyWriterTest.java       |   0
 .../jdbc/table/JdbcDynamicTableFactoryTest.java    |   0
 .../jdbc/table/JdbcDynamicTableSinkITCase.java     |   0
 .../jdbc/table/JdbcDynamicTableSourceITCase.java   |   0
 ...FilterPushdownPreparedStatementVisitorTest.java |   0
 .../connector/jdbc/table/JdbcLookupTestBase.java   |   0
 .../connector/jdbc/table/JdbcOutputFormatTest.java |   0
 .../jdbc/table/JdbcRowDataInputFormatTest.java     |   0
 .../jdbc/table/JdbcRowDataLookupFunctionTest.java  |   0
 .../connector/jdbc/table/JdbcTablePlanTest.java    |   0
 .../jdbc/testutils/DatabaseExtension.java          |   0
 .../connector/jdbc/testutils/DatabaseMetadata.java |   0
 .../connector/jdbc/testutils/DatabaseTest.java     |   0
 .../connector/jdbc/testutils/JdbcITCaseBase.java   |   0
 .../connector/jdbc/testutils/TableManaged.java     |   0
 .../databases/cratedb/CrateDBDatabase.java         |   0
 .../databases/cratedb/CrateDBMetadata.java         |   0
 .../jdbc/testutils/databases/db2/Db2Database.java  |   0
 .../jdbc/testutils/databases/db2/Db2Metadata.java  |   0
 .../testutils/databases/derby/DerbyDatabase.java   |   0
 .../testutils/databases/derby/DerbyMetadata.java   |   0
 .../jdbc/testutils/databases/h2/H2Metadata.java    |   0
 .../jdbc/testutils/databases/h2/H2XaDatabase.java  |   0
 .../databases/h2/xa/H2XaConnectionWrapper.java     |   0
 .../testutils/databases/h2/xa/H2XaDsWrapper.java   |   0
 .../databases/h2/xa/H2XaResourceWrapper.java       |   0
 .../testutils/databases/h2/xa/package-info.java    |   0
 .../testutils/databases/mysql/MySql56Database.java |   0
 .../testutils/databases/mysql/MySql57Database.java |   0
 .../testutils/databases/mysql/MySqlContainer.java  |   0
 .../testutils/databases/mysql/MySqlDatabase.java   |   0
 .../testutils/databases/mysql/MySqlImages.java     |   0
 .../testutils/databases/mysql/MySqlMetadata.java   |   0
 .../databases/oceanbase/OceanBaseContainer.java    |   0
 .../databases/oceanbase/OceanBaseDatabase.java     |   0
 .../databases/oceanbase/OceanBaseImages.java       |   0
 .../databases/oceanbase/OceanBaseMetadata.java     |   0
 .../databases/oceanbase/OceanBaseTestDatabase.java |   0
 .../testutils/databases/oracle/OracleDatabase.java |   0
 .../testutils/databases/oracle/OracleImages.java   |   0
 .../testutils/databases/oracle/OracleMetadata.java |   0
 .../databases/postgres/PostgresDatabase.java       |   0
 .../databases/postgres/PostgresImages.java         |   0
 .../databases/postgres/PostgresMetadata.java       |   0
 .../databases/sqlserver/SqlServerDatabase.java     |   0
 .../databases/sqlserver/SqlServerImages.java       |   0
 .../databases/sqlserver/SqlServerMetadata.java     |   0
 .../testutils/databases/trino/TrinoDatabase.java   |   0
 .../testutils/databases/trino/TrinoImages.java     |   0
 .../testutils/databases/trino/TrinoMetadata.java   |   0
 .../testutils/functions/JdbcResultSetBuilder.java  |   0
 .../connector/jdbc/testutils/tables/TableBase.java |   0
 .../jdbc/testutils/tables/TableBuilder.java        |   0
 .../jdbc/testutils/tables/TableBuilderTest.java    |   0
 .../jdbc/testutils/tables/TableField.java          |   0
 .../connector/jdbc/testutils/tables/TableRow.java  |   0
 .../testutils/tables/templates/BooksTable.java     |   0
 .../connector/jdbc/utils/JdbcTypeUtilTest.java     |   0
 .../jdbc/xa/CheckpointAndXidSerializersTest.java   |   0
 .../jdbc/xa/JdbcExactlyOnceSinkE2eTest.java        |   3 +-
 .../connector/jdbc/xa/JdbcXaFacadeImplTest.java    |   0
 .../connector/jdbc/xa/JdbcXaFacadeTestHelper.java  |   0
 .../connector/jdbc/xa/JdbcXaSinkDerbyTest.java     |   0
 .../flink/connector/jdbc/xa/JdbcXaSinkH2Test.java  |   0
 .../connector/jdbc/xa/JdbcXaSinkMigrationTest.java |   0
 .../jdbc/xa/JdbcXaSinkNoInsertionTest.java         |   0
 .../connector/jdbc/xa/JdbcXaSinkTestBase.java      |   0
 .../connector/jdbc/xa/JdbcXaSinkTestHelper.java    |   0
 .../jdbc/xa/SemanticXidGeneratorTest.java          |   0
 .../apache/flink/connector/jdbc/xa/XaXidTest.java  |   0
 .../connector/jdbc/xa/XidSerializersTest.java      |   0
 .../resources/META-INF/services/java.sql.Driver    |   0
 .../src/test/resources/archunit.properties         |   0
 .../src/test/resources/log4j2-test.properties      |   0
 .../connector/jdbc/table/JdbcTablePlanTest.xml     |   0
 flink-connector-jdbc/pom.xml                       | 288 +++----------------
 pom.xml                                            |   1 +
 357 files changed, 675 insertions(+), 271 deletions(-)

diff --git a/flink-connector-jdbc/archunit-violations/0c7b60d6-a12c-432d-8a72-747cabaeb7ed b/flink-connector-jdbc-core/archunit-violations/0c7b60d6-a12c-432d-8a72-747cabaeb7ed
similarity index 100%
rename from flink-connector-jdbc/archunit-violations/0c7b60d6-a12c-432d-8a72-747cabaeb7ed
rename to flink-connector-jdbc-core/archunit-violations/0c7b60d6-a12c-432d-8a72-747cabaeb7ed
diff --git a/flink-connector-jdbc/archunit-violations/0f94f11b-9bc8-445a-8be8-e7dfd8a384b0 b/flink-connector-jdbc-core/archunit-violations/0f94f11b-9bc8-445a-8be8-e7dfd8a384b0
similarity index 100%
rename from flink-connector-jdbc/archunit-violations/0f94f11b-9bc8-445a-8be8-e7dfd8a384b0
rename to flink-connector-jdbc-core/archunit-violations/0f94f11b-9bc8-445a-8be8-e7dfd8a384b0
diff --git a/flink-connector-jdbc-core/archunit-violations/2047daea-3713-4298-bdb3-e269f539363f b/flink-connector-jdbc-core/archunit-violations/2047daea-3713-4298-bdb3-e269f539363f
new file mode 100644
index 00000000..662348fa
--- /dev/null
+++ b/flink-connector-jdbc-core/archunit-violations/2047daea-3713-4298-bdb3-e269f539363f
@@ -0,0 +1,303 @@
+Class <org.apache.flink.connector.jdbc.catalog.AbstractJdbcCatalog> extends class <org.apache.flink.table.catalog.AbstractCatalog> in (AbstractJdbcCatalog.java:0)
+Class <org.apache.flink.connector.jdbc.table.JdbcFilterPushdownPreparedStatementVisitor> extends class <org.apache.flink.table.expressions.ExpressionDefaultVisitor> in (JdbcFilterPushdownPreparedStatementVisitor.java:0)
+Constructor <org.apache.flink.connector.jdbc.JdbcConnectionOptions.<init>(java.lang.String, java.lang.String, int, java.util.Properties)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.Object)> in (JdbcConnectionOptions.java:50)
+Constructor <org.apache.flink.connector.jdbc.JdbcConnectionOptions.<init>(java.lang.String, java.lang.String, int, java.util.Properties)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcConnectionOptions.java:53)
+Constructor <org.apache.flink.connector.jdbc.JdbcConnectionOptions.<init>(java.lang.String, java.lang.String, int, java.util.Properties)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcConnectionOptions.java:57)
+Constructor <org.apache.flink.connector.jdbc.JdbcExactlyOnceOptions.<init>(boolean, int, boolean, java.util.Optional, boolean)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.Object)> in (JdbcExactlyOnceOptions.java:75)
+Constructor <org.apache.flink.connector.jdbc.JdbcExecutionOptions.<init>(long, int, int)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean)> in (JdbcExecutionOptions.java:38)
+Constructor <org.apache.flink.connector.jdbc.catalog.AbstractJdbcCatalog.<init>(java.lang.ClassLoader, java.lang.String, java.lang.String, java.lang.String, java.util.Properties)> calls constructor <org.apache.flink.table.catalog.AbstractCatalog.<init>(java.lang.String, java.lang.String)> in (AbstractJdbcCatalog.java:121)
+Constructor <org.apache.flink.connector.jdbc.catalog.AbstractJdbcCatalog.<init>(java.lang.ClassLoader, java.lang.String, java.lang.String, java.lang.String, java.util.Properties)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean)> in (AbstractJdbcCatalog.java:124)
+Constructor <org.apache.flink.connector.jdbc.catalog.AbstractJdbcCatalog.<init>(java.lang.ClassLoader, java.lang.String, java.lang.String, java.lang.String, java.util.Properties)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean)> in (AbstractJdbcCatalog.java:132)
+Constructor <org.apache.flink.connector.jdbc.catalog.AbstractJdbcCatalog.<init>(java.lang.ClassLoader, java.lang.String, java.lang.String, java.lang.String, java.util.Properties)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean)> in (AbstractJdbcCatalog.java:134)
+Constructor <org.apache.flink.connector.jdbc.catalog.AbstractJdbcCatalog.<init>(java.lang.ClassLoader, java.lang.String, java.lang.String, java.lang.String, java.util.Properties)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (AbstractJdbcCatalog.java:123)
+Constructor <org.apache.flink.connector.jdbc.catalog.AbstractJdbcCatalog.<init>(java.lang.ClassLoader, java.lang.String, java.lang.String, java.lang.String, java.util.Properties)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (AbstractJdbcCatalog.java:131)
+Constructor <org.apache.flink.connector.jdbc.catalog.JdbcCatalog.<init>(java.lang.ClassLoader, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)> is annotated with <org.apache.flink.annotation.VisibleForTesting> in (JdbcCatalog.java:0)
+Constructor <org.apache.flink.connector.jdbc.converter.AbstractJdbcRowConverter.<init>(org.apache.flink.table.types.logical.RowType)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (AbstractJdbcRowConverter.java:60)
+Constructor <org.apache.flink.connector.jdbc.databases.cratedb.catalog.CrateDBCatalog.<init>(java.lang.ClassLoader, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)> is annotated with <org.apache.flink.annotation.VisibleForTesting> in (CrateDBCatalog.java:0)
+Constructor <org.apache.flink.connector.jdbc.databases.mysql.catalog.MySqlCatalog.<init>(java.lang.ClassLoader, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)> is annotated with <org.apache.flink.annotation.VisibleForTesting> in (MySqlCatalog.java:0)
+Constructor <org.apache.flink.connector.jdbc.databases.mysql.catalog.MySqlCatalog.<init>(java.lang.ClassLoader, java.lang.String, java.lang.String, java.lang.String, java.util.Properties)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (MySqlCatalog.java:92)
+Constructor <org.apache.flink.connector.jdbc.databases.mysql.catalog.MySqlCatalog.<init>(java.lang.ClassLoader, java.lang.String, java.lang.String, java.lang.String, java.util.Properties)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (MySqlCatalog.java:94)
+Constructor <org.apache.flink.connector.jdbc.databases.postgres.catalog.PostgresCatalog.<init>(java.lang.ClassLoader, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)> is annotated with <org.apache.flink.annotation.VisibleForTesting> in (PostgresCatalog.java:0)
+Constructor <org.apache.flink.connector.jdbc.databases.postgres.catalog.PostgresTablePath.<init>(java.lang.String, java.lang.String)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.Object)> in (PostgresTablePath.java:41)
+Constructor <org.apache.flink.connector.jdbc.databases.postgres.catalog.PostgresTablePath.<init>(java.lang.String, java.lang.String)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.Object)> in (PostgresTablePath.java:44)
+Constructor <org.apache.flink.connector.jdbc.datasource.connections.xa.SimpleXaConnectionProvider.<init>(java.util.function.Supplier, java.lang.Integer)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (SimpleXaConnectionProvider.java:81)
+Constructor <org.apache.flink.connector.jdbc.internal.GenericJdbcSinkFunction.<init>(org.apache.flink.connector.jdbc.internal.JdbcOutputFormat)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (GenericJdbcSinkFunction.java:44)
+Constructor <org.apache.flink.connector.jdbc.internal.JdbcOutputFormat.<init>(org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider, org.apache.flink.connector.jdbc.JdbcExecutionOptions, org.apache.flink.connector.jdbc.internal.JdbcOutputFormat$StatementExecutorFactory)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (JdbcOutputFormat.java:87)
+Constructor <org.apache.flink.connector.jdbc.internal.JdbcOutputFormat.<init>(org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider, org.apache.flink.connector.jdbc.JdbcExecutionOptions, org.apache.flink.connector.jdbc.internal.JdbcOutputFormat$StatementExecutorFactory)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (JdbcOutputFormat.java:88)
+Constructor <org.apache.flink.connector.jdbc.internal.JdbcOutputFormat.<init>(org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider, org.apache.flink.connector.jdbc.JdbcExecutionOptions, org.apache.flink.connector.jdbc.internal.JdbcOutputFormat$StatementExecutorFactory)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (JdbcOutputFormat.java:89)
+Constructor <org.apache.flink.connector.jdbc.internal.TableJdbcUpsertOutputFormat.<init>(org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider, org.apache.flink.connector.jdbc.JdbcExecutionOptions, org.apache.flink.connector.jdbc.internal.JdbcOutputFormat$StatementExecutorFactory, org.apache.flink.connector.jdbc.internal.JdbcOutputFormat$StatementExecutorFactory)> is annotated with <org.apache.flink.annotation.VisibleForTesting> in (TableJdbcUpsertOutputFormat.java:0)
+Constructor <org.apache.flink.connector.jdbc.internal.executor.InsertOrUpdateJdbcExecutor.<init>(java.lang.String, java.lang.String, java.lang.String, org.apache.flink.connector.jdbc.JdbcStatementBuilder, org.apache.flink.connector.jdbc.JdbcStatementBuilder, org.apache.flink.connector.jdbc.JdbcStatementBuilder, java.util.function.Function, java.util.function.Function)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (InsertOrUpdateJdbcExecutor.java:76)
+Constructor <org.apache.flink.connector.jdbc.internal.executor.InsertOrUpdateJdbcExecutor.<init>(java.lang.String, java.lang.String, java.lang.String, org.apache.flink.connector.jdbc.JdbcStatementBuilder, org.apache.flink.connector.jdbc.JdbcStatementBuilder, org.apache.flink.connector.jdbc.JdbcStatementBuilder, java.util.function.Function, java.util.function.Function)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (InsertOrUpdateJdbcExecutor.java:77)
+Constructor <org.apache.flink.connector.jdbc.internal.executor.InsertOrUpdateJdbcExecutor.<init>(java.lang.String, java.lang.String, java.lang.String, org.apache.flink.connector.jdbc.JdbcStatementBuilder, org.apache.flink.connector.jdbc.JdbcStatementBuilder, org.apache.flink.connector.jdbc.JdbcStatementBuilder, java.util.function.Function, java.util.function.Function)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (InsertOrUpdateJdbcExecutor.java:78)
+Constructor <org.apache.flink.connector.jdbc.internal.executor.InsertOrUpdateJdbcExecutor.<init>(java.lang.String, java.lang.String, java.lang.String, org.apache.flink.connector.jdbc.JdbcStatementBuilder, org.apache.flink.connector.jdbc.JdbcStatementBuilder, org.apache.flink.connector.jdbc.JdbcStatementBuilder, java.util.function.Function, java.util.function.Function)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (InsertOrUpdateJdbcExecutor.java:79)
+Constructor <org.apache.flink.connector.jdbc.internal.executor.InsertOrUpdateJdbcExecutor.<init>(java.lang.String, java.lang.String, java.lang.String, org.apache.flink.connector.jdbc.JdbcStatementBuilder, org.apache.flink.connector.jdbc.JdbcStatementBuilder, org.apache.flink.connector.jdbc.JdbcStatementBuilder, java.util.function.Function, java.util.function.Function)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (InsertOrUpdateJdbcExecutor.java:80)
+Constructor <org.apache.flink.connector.jdbc.internal.executor.InsertOrUpdateJdbcExecutor.<init>(java.lang.String, java.lang.String, java.lang.String, org.apache.flink.connector.jdbc.JdbcStatementBuilder, org.apache.flink.connector.jdbc.JdbcStatementBuilder, org.apache.flink.connector.jdbc.JdbcStatementBuilder, java.util.function.Function, java.util.function.Function)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (InsertOrUpdateJdbcExecutor.java:81)
+Constructor <org.apache.flink.connector.jdbc.internal.executor.InsertOrUpdateJdbcExecutor.<init>(java.lang.String, java.lang.String, java.lang.String, org.apache.flink.connector.jdbc.JdbcStatementBuilder, org.apache.flink.connector.jdbc.JdbcStatementBuilder, org.apache.flink.connector.jdbc.JdbcStatementBuilder, java.util.function.Function, java.util.function.Function)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (InsertOrUpdateJdbcExecutor.java:82)
+Constructor <org.apache.flink.connector.jdbc.internal.executor.InsertOrUpdateJdbcExecutor.<init>(java.lang.String, java.lang.String, java.lang.String, org.apache.flink.connector.jdbc.JdbcStatementBuilder, org.apache.flink.connector.jdbc.JdbcStatementBuilder, org.apache.flink.connector.jdbc.JdbcStatementBuilder, java.util.function.Function, java.util.function.Function)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (InsertOrUpdateJdbcExecutor.java:83)
+Constructor <org.apache.flink.connector.jdbc.internal.executor.TableInsertOrUpdateStatementExecutor.<init>(org.apache.flink.connector.jdbc.statement.StatementFactory, org.apache.flink.connector.jdbc.statement.StatementFactory, org.apache.flink.connector.jdbc.statement.StatementFactory, org.apache.flink.connector.jdbc.converter.JdbcRowConverter, org.apache.flink.connector.jdbc.converter.JdbcRowConverter, org.apache.flink.connector.jdbc.converter.JdbcRowConverter, java.util.function.Functi [...]
+Constructor <org.apache.flink.connector.jdbc.internal.executor.TableInsertOrUpdateStatementExecutor.<init>(org.apache.flink.connector.jdbc.statement.StatementFactory, org.apache.flink.connector.jdbc.statement.StatementFactory, org.apache.flink.connector.jdbc.statement.StatementFactory, org.apache.flink.connector.jdbc.converter.JdbcRowConverter, org.apache.flink.connector.jdbc.converter.JdbcRowConverter, org.apache.flink.connector.jdbc.converter.JdbcRowConverter, java.util.function.Functi [...]
+Constructor <org.apache.flink.connector.jdbc.internal.executor.TableInsertOrUpdateStatementExecutor.<init>(org.apache.flink.connector.jdbc.statement.StatementFactory, org.apache.flink.connector.jdbc.statement.StatementFactory, org.apache.flink.connector.jdbc.statement.StatementFactory, org.apache.flink.connector.jdbc.converter.JdbcRowConverter, org.apache.flink.connector.jdbc.converter.JdbcRowConverter, org.apache.flink.connector.jdbc.converter.JdbcRowConverter, java.util.function.Functi [...]
+Constructor <org.apache.flink.connector.jdbc.internal.executor.TableInsertOrUpdateStatementExecutor.<init>(org.apache.flink.connector.jdbc.statement.StatementFactory, org.apache.flink.connector.jdbc.statement.StatementFactory, org.apache.flink.connector.jdbc.statement.StatementFactory, org.apache.flink.connector.jdbc.converter.JdbcRowConverter, org.apache.flink.connector.jdbc.converter.JdbcRowConverter, org.apache.flink.connector.jdbc.converter.JdbcRowConverter, java.util.function.Functi [...]
+Constructor <org.apache.flink.connector.jdbc.internal.executor.TableInsertOrUpdateStatementExecutor.<init>(org.apache.flink.connector.jdbc.statement.StatementFactory, org.apache.flink.connector.jdbc.statement.StatementFactory, org.apache.flink.connector.jdbc.statement.StatementFactory, org.apache.flink.connector.jdbc.converter.JdbcRowConverter, org.apache.flink.connector.jdbc.converter.JdbcRowConverter, org.apache.flink.connector.jdbc.converter.JdbcRowConverter, java.util.function.Functi [...]
+Constructor <org.apache.flink.connector.jdbc.internal.executor.TableInsertOrUpdateStatementExecutor.<init>(org.apache.flink.connector.jdbc.statement.StatementFactory, org.apache.flink.connector.jdbc.statement.StatementFactory, org.apache.flink.connector.jdbc.statement.StatementFactory, org.apache.flink.connector.jdbc.converter.JdbcRowConverter, org.apache.flink.connector.jdbc.converter.JdbcRowConverter, org.apache.flink.connector.jdbc.converter.JdbcRowConverter, java.util.function.Functi [...]
+Constructor <org.apache.flink.connector.jdbc.internal.executor.TableSimpleStatementExecutor.<init>(org.apache.flink.connector.jdbc.statement.StatementFactory, org.apache.flink.connector.jdbc.converter.JdbcRowConverter)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (TableSimpleStatementExecutor.java:47)
+Constructor <org.apache.flink.connector.jdbc.internal.executor.TableSimpleStatementExecutor.<init>(org.apache.flink.connector.jdbc.statement.StatementFactory, org.apache.flink.connector.jdbc.converter.JdbcRowConverter)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (TableSimpleStatementExecutor.java:48)
+Constructor <org.apache.flink.connector.jdbc.internal.options.JdbcDmlOptions.<init>(java.lang.String, org.apache.flink.connector.jdbc.dialect.JdbcDialect, [Ljava.lang.String;, [I, [Ljava.lang.String;)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcDmlOptions.java:51)
+Constructor <org.apache.flink.connector.jdbc.internal.options.JdbcDmlOptions.<init>(java.lang.String, org.apache.flink.connector.jdbc.dialect.JdbcDialect, [Ljava.lang.String;, [I, [Ljava.lang.String;)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcDmlOptions.java:52)
+Constructor <org.apache.flink.connector.jdbc.internal.options.JdbcDmlOptions.<init>(java.lang.String, org.apache.flink.connector.jdbc.dialect.JdbcDialect, [Ljava.lang.String;, [I, [Ljava.lang.String;)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcDmlOptions.java:53)
+Constructor <org.apache.flink.connector.jdbc.internal.options.JdbcInsertOptions.<init>(java.lang.String, [I)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcInsertOptions.java:33)
+Constructor <org.apache.flink.connector.jdbc.sink.writer.JdbcWriter.<init>(org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider, org.apache.flink.connector.jdbc.JdbcExecutionOptions, org.apache.flink.connector.jdbc.JdbcExactlyOnceOptions, org.apache.flink.connector.jdbc.datasource.statements.JdbcQueryStatement, org.apache.flink.connector.jdbc.internal.JdbcOutputSerializer, org.apache.flink.connector.base.DeliveryGuarantee, java.util.Collection, org.apache.flink.a [...]
+Constructor <org.apache.flink.connector.jdbc.sink.writer.JdbcWriter.<init>(org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider, org.apache.flink.connector.jdbc.JdbcExecutionOptions, org.apache.flink.connector.jdbc.JdbcExactlyOnceOptions, org.apache.flink.connector.jdbc.datasource.statements.JdbcQueryStatement, org.apache.flink.connector.jdbc.internal.JdbcOutputSerializer, org.apache.flink.connector.base.DeliveryGuarantee, java.util.Collection, org.apache.flink.a [...]
+Constructor <org.apache.flink.connector.jdbc.sink.writer.JdbcWriter.<init>(org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider, org.apache.flink.connector.jdbc.JdbcExecutionOptions, org.apache.flink.connector.jdbc.JdbcExactlyOnceOptions, org.apache.flink.connector.jdbc.datasource.statements.JdbcQueryStatement, org.apache.flink.connector.jdbc.internal.JdbcOutputSerializer, org.apache.flink.connector.base.DeliveryGuarantee, java.util.Collection, org.apache.flink.a [...]
+Constructor <org.apache.flink.connector.jdbc.sink.writer.JdbcWriter.<init>(org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider, org.apache.flink.connector.jdbc.JdbcExecutionOptions, org.apache.flink.connector.jdbc.JdbcExactlyOnceOptions, org.apache.flink.connector.jdbc.datasource.statements.JdbcQueryStatement, org.apache.flink.connector.jdbc.internal.JdbcOutputSerializer, org.apache.flink.connector.base.DeliveryGuarantee, java.util.Collection, org.apache.flink.a [...]
+Constructor <org.apache.flink.connector.jdbc.sink.writer.JdbcWriter.<init>(org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider, org.apache.flink.connector.jdbc.JdbcExecutionOptions, org.apache.flink.connector.jdbc.JdbcExactlyOnceOptions, org.apache.flink.connector.jdbc.datasource.statements.JdbcQueryStatement, org.apache.flink.connector.jdbc.internal.JdbcOutputSerializer, org.apache.flink.connector.base.DeliveryGuarantee, java.util.Collection, org.apache.flink.a [...]
+Constructor <org.apache.flink.connector.jdbc.sink.writer.JdbcWriter.<init>(org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider, org.apache.flink.connector.jdbc.JdbcExecutionOptions, org.apache.flink.connector.jdbc.JdbcExactlyOnceOptions, org.apache.flink.connector.jdbc.datasource.statements.JdbcQueryStatement, org.apache.flink.connector.jdbc.internal.JdbcOutputSerializer, org.apache.flink.connector.base.DeliveryGuarantee, java.util.Collection, org.apache.flink.a [...]
+Constructor <org.apache.flink.connector.jdbc.sink.writer.JdbcWriter.<init>(org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider, org.apache.flink.connector.jdbc.JdbcExecutionOptions, org.apache.flink.connector.jdbc.JdbcExactlyOnceOptions, org.apache.flink.connector.jdbc.datasource.statements.JdbcQueryStatement, org.apache.flink.connector.jdbc.internal.JdbcOutputSerializer, org.apache.flink.connector.base.DeliveryGuarantee, java.util.Collection, org.apache.flink.a [...]
+Constructor <org.apache.flink.connector.jdbc.sink.writer.JdbcWriter.<init>(org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider, org.apache.flink.connector.jdbc.JdbcExecutionOptions, org.apache.flink.connector.jdbc.JdbcExactlyOnceOptions, org.apache.flink.connector.jdbc.datasource.statements.JdbcQueryStatement, org.apache.flink.connector.jdbc.internal.JdbcOutputSerializer, org.apache.flink.connector.base.DeliveryGuarantee, java.util.Collection, org.apache.flink.a [...]
+Constructor <org.apache.flink.connector.jdbc.sink.writer.JdbcWriter.<init>(org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider, org.apache.flink.connector.jdbc.JdbcExecutionOptions, org.apache.flink.connector.jdbc.JdbcExactlyOnceOptions, org.apache.flink.connector.jdbc.datasource.statements.JdbcQueryStatement, org.apache.flink.connector.jdbc.internal.JdbcOutputSerializer, org.apache.flink.connector.base.DeliveryGuarantee, java.util.Collection, org.apache.flink.a [...]
+Constructor <org.apache.flink.connector.jdbc.source.JdbcSource.<init>(org.apache.flink.configuration.Configuration, org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider, org.apache.flink.connector.jdbc.source.enumerator.JdbcSqlSplitEnumeratorBase$Provider, org.apache.flink.connector.jdbc.source.reader.extractor.ResultExtractor, org.apache.flink.api.common.typeinfo.TypeInformation, org.apache.flink.connector.base.DeliveryGuarantee)> calls method <org.apache.flink. [...]
+Constructor <org.apache.flink.connector.jdbc.source.JdbcSource.<init>(org.apache.flink.configuration.Configuration, org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider, org.apache.flink.connector.jdbc.source.enumerator.JdbcSqlSplitEnumeratorBase$Provider, org.apache.flink.connector.jdbc.source.reader.extractor.ResultExtractor, org.apache.flink.api.common.typeinfo.TypeInformation, org.apache.flink.connector.base.DeliveryGuarantee)> calls method <org.apache.flink. [...]
+Constructor <org.apache.flink.connector.jdbc.source.JdbcSource.<init>(org.apache.flink.configuration.Configuration, org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider, org.apache.flink.connector.jdbc.source.enumerator.JdbcSqlSplitEnumeratorBase$Provider, org.apache.flink.connector.jdbc.source.reader.extractor.ResultExtractor, org.apache.flink.api.common.typeinfo.TypeInformation, org.apache.flink.connector.base.DeliveryGuarantee)> calls method <org.apache.flink. [...]
+Constructor <org.apache.flink.connector.jdbc.source.JdbcSource.<init>(org.apache.flink.configuration.Configuration, org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider, org.apache.flink.connector.jdbc.source.enumerator.JdbcSqlSplitEnumeratorBase$Provider, org.apache.flink.connector.jdbc.source.reader.extractor.ResultExtractor, org.apache.flink.api.common.typeinfo.TypeInformation, org.apache.flink.connector.base.DeliveryGuarantee)> calls method <org.apache.flink. [...]
+Constructor <org.apache.flink.connector.jdbc.source.JdbcSource.<init>(org.apache.flink.configuration.Configuration, org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider, org.apache.flink.connector.jdbc.source.enumerator.JdbcSqlSplitEnumeratorBase$Provider, org.apache.flink.connector.jdbc.source.reader.extractor.ResultExtractor, org.apache.flink.api.common.typeinfo.TypeInformation, org.apache.flink.connector.base.DeliveryGuarantee)> calls method <org.apache.flink. [...]
+Constructor <org.apache.flink.connector.jdbc.source.JdbcSource.<init>(org.apache.flink.configuration.Configuration, org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider, org.apache.flink.connector.jdbc.source.enumerator.JdbcSqlSplitEnumeratorBase$Provider, org.apache.flink.connector.jdbc.source.reader.extractor.ResultExtractor, org.apache.flink.api.common.typeinfo.TypeInformation, org.apache.flink.connector.base.DeliveryGuarantee)> calls method <org.apache.flink. [...]
+Constructor <org.apache.flink.connector.jdbc.source.enumerator.JdbcSourceEnumStateSerializer.<init>(org.apache.flink.connector.jdbc.source.split.JdbcSourceSplitSerializer)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (JdbcSourceEnumStateSerializer.java:47)
+Constructor <org.apache.flink.connector.jdbc.source.enumerator.JdbcSourceEnumerator.<init>(org.apache.flink.api.connector.source.SplitEnumeratorContext, org.apache.flink.connector.jdbc.source.enumerator.JdbcSqlSplitEnumeratorBase, java.util.List)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (JdbcSourceEnumerator.java:54)
+Constructor <org.apache.flink.connector.jdbc.source.enumerator.JdbcSourceEnumerator.<init>(org.apache.flink.api.connector.source.SplitEnumeratorContext, org.apache.flink.connector.jdbc.source.enumerator.JdbcSqlSplitEnumeratorBase, java.util.List)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (JdbcSourceEnumerator.java:55)
+Constructor <org.apache.flink.connector.jdbc.source.enumerator.JdbcSourceEnumerator.<init>(org.apache.flink.api.connector.source.SplitEnumeratorContext, org.apache.flink.connector.jdbc.source.enumerator.JdbcSqlSplitEnumeratorBase, java.util.List)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (JdbcSourceEnumerator.java:57)
+Constructor <org.apache.flink.connector.jdbc.source.enumerator.JdbcSourceEnumeratorState.<init>(java.util.List, java.util.List, java.util.List, java.io.Serializable)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (JdbcSourceEnumeratorState.java:47)
+Constructor <org.apache.flink.connector.jdbc.source.enumerator.JdbcSourceEnumeratorState.<init>(java.util.List, java.util.List, java.util.List, java.io.Serializable)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (JdbcSourceEnumeratorState.java:48)
+Constructor <org.apache.flink.connector.jdbc.source.enumerator.JdbcSourceEnumeratorState.<init>(java.util.List, java.util.List, java.util.List, java.io.Serializable)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (JdbcSourceEnumeratorState.java:49)
+Constructor <org.apache.flink.connector.jdbc.source.enumerator.SqlTemplateSplitEnumerator.<init>(java.io.Serializable, java.lang.String, org.apache.flink.connector.jdbc.split.JdbcParameterValuesProvider)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (SqlTemplateSplitEnumerator.java:47)
+Constructor <org.apache.flink.connector.jdbc.source.reader.JdbcSourceSplitReader.<init>(org.apache.flink.api.connector.source.SourceReaderContext, org.apache.flink.configuration.Configuration, org.apache.flink.api.common.typeinfo.TypeInformation, org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider, org.apache.flink.connector.base.DeliveryGuarantee, org.apache.flink.connector.jdbc.source.reader.extractor.ResultExtractor)> calls method <org.apache.flink.util.Preco [...]
+Constructor <org.apache.flink.connector.jdbc.source.reader.JdbcSourceSplitReader.<init>(org.apache.flink.api.connector.source.SourceReaderContext, org.apache.flink.configuration.Configuration, org.apache.flink.api.common.typeinfo.TypeInformation, org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider, org.apache.flink.connector.base.DeliveryGuarantee, org.apache.flink.connector.jdbc.source.reader.extractor.ResultExtractor)> calls method <org.apache.flink.util.Preco [...]
+Constructor <org.apache.flink.connector.jdbc.source.reader.JdbcSourceSplitReader.<init>(org.apache.flink.api.connector.source.SourceReaderContext, org.apache.flink.configuration.Configuration, org.apache.flink.api.common.typeinfo.TypeInformation, org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider, org.apache.flink.connector.base.DeliveryGuarantee, org.apache.flink.connector.jdbc.source.reader.extractor.ResultExtractor)> calls method <org.apache.flink.util.Preco [...]
+Constructor <org.apache.flink.connector.jdbc.source.reader.JdbcSourceSplitReader.<init>(org.apache.flink.api.connector.source.SourceReaderContext, org.apache.flink.configuration.Configuration, org.apache.flink.api.common.typeinfo.TypeInformation, org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider, org.apache.flink.connector.base.DeliveryGuarantee, org.apache.flink.connector.jdbc.source.reader.extractor.ResultExtractor)> calls method <org.apache.flink.util.Preco [...]
+Constructor <org.apache.flink.connector.jdbc.source.reader.JdbcSourceSplitReader.<init>(org.apache.flink.api.connector.source.SourceReaderContext, org.apache.flink.configuration.Configuration, org.apache.flink.api.common.typeinfo.TypeInformation, org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider, org.apache.flink.connector.base.DeliveryGuarantee, org.apache.flink.connector.jdbc.source.reader.extractor.ResultExtractor)> calls method <org.apache.flink.util.Preco [...]
+Constructor <org.apache.flink.connector.jdbc.source.reader.JdbcSourceSplitReader.<init>(org.apache.flink.api.connector.source.SourceReaderContext, org.apache.flink.configuration.Configuration, org.apache.flink.api.common.typeinfo.TypeInformation, org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider, org.apache.flink.connector.base.DeliveryGuarantee, org.apache.flink.connector.jdbc.source.reader.extractor.ResultExtractor)> calls method <org.apache.flink.util.Preco [...]
+Constructor <org.apache.flink.connector.jdbc.source.reader.JdbcSourceSplitReader.<init>(org.apache.flink.api.connector.source.SourceReaderContext, org.apache.flink.configuration.Configuration, org.apache.flink.api.common.typeinfo.TypeInformation, org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider, org.apache.flink.connector.base.DeliveryGuarantee, org.apache.flink.connector.jdbc.source.reader.extractor.ResultExtractor)> calls method <org.apache.flink.util.Preco [...]
+Constructor <org.apache.flink.connector.jdbc.source.split.JdbcSourceSplitState.<init>(org.apache.flink.connector.jdbc.source.split.JdbcSourceSplit)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (JdbcSourceSplitState.java:38)
+Constructor <org.apache.flink.connector.jdbc.split.CompositeJdbcParameterValuesProvider.<init>(org.apache.flink.connector.jdbc.split.JdbcParameterValuesProvider, org.apache.flink.connector.jdbc.split.JdbcParameterValuesProvider)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.Object)> in (CompositeJdbcParameterValuesProvider.java:34)
+Constructor <org.apache.flink.connector.jdbc.split.JdbcNumericBetweenParametersProvider.<init>(long, long)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.Object)> in (JdbcNumericBetweenParametersProvider.java:55)
+Constructor <org.apache.flink.connector.jdbc.split.JdbcNumericBetweenParametersProvider.<init>(long, long, long)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.Object)> in (JdbcNumericBetweenParametersProvider.java:68)
+Constructor <org.apache.flink.connector.jdbc.table.JdbcDynamicTableSource$JdbcDataStreamScanProvider.<init>(org.apache.flink.connector.jdbc.source.JdbcSource)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (JdbcDynamicTableSource.java:319)
+Constructor <org.apache.flink.connector.jdbc.table.JdbcFilterPushdownPreparedStatementVisitor.<init>(java.util.function.Function)> calls constructor <org.apache.flink.table.expressions.ExpressionDefaultVisitor.<init>()> in (JdbcFilterPushdownPreparedStatementVisitor.java:52)
+Constructor <org.apache.flink.connector.jdbc.table.JdbcRowDataLookupFunction.<init>(org.apache.flink.connector.jdbc.internal.options.InternalJdbcConnectionOptions, int, [Ljava.lang.String;, [Lorg.apache.flink.table.types.DataType;, [Ljava.lang.String;, org.apache.flink.table.types.logical.RowType, java.util.List, [Ljava.io.Serializable;)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.String, [Ljava.lang.Object;)> in (JdbcRowDataLookupFunction.java:95)
+Constructor <org.apache.flink.connector.jdbc.table.JdbcRowDataLookupFunction.<init>(org.apache.flink.connector.jdbc.internal.options.InternalJdbcConnectionOptions, int, [Ljava.lang.String;, [Lorg.apache.flink.table.types.DataType;, [Ljava.lang.String;, org.apache.flink.table.types.logical.RowType, java.util.List, [Ljava.io.Serializable;)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcRowDataLookupFunction.java:82)
+Constructor <org.apache.flink.connector.jdbc.table.JdbcRowDataLookupFunction.<init>(org.apache.flink.connector.jdbc.internal.options.InternalJdbcConnectionOptions, int, [Ljava.lang.String;, [Lorg.apache.flink.table.types.DataType;, [Ljava.lang.String;, org.apache.flink.table.types.logical.RowType, java.util.List, [Ljava.io.Serializable;)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcRowDataLookupFunction.java:83)
+Constructor <org.apache.flink.connector.jdbc.table.JdbcRowDataLookupFunction.<init>(org.apache.flink.connector.jdbc.internal.options.InternalJdbcConnectionOptions, int, [Ljava.lang.String;, [Lorg.apache.flink.table.types.DataType;, [Ljava.lang.String;, org.apache.flink.table.types.logical.RowType, java.util.List, [Ljava.io.Serializable;)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcRowDataLookupFunction.java:84)
+Constructor <org.apache.flink.connector.jdbc.table.JdbcRowDataLookupFunction.<init>(org.apache.flink.connector.jdbc.internal.options.InternalJdbcConnectionOptions, int, [Ljava.lang.String;, [Lorg.apache.flink.table.types.DataType;, [Ljava.lang.String;, org.apache.flink.table.types.logical.RowType, java.util.List, [Ljava.io.Serializable;)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcRowDataLookupFunction.java:85)
+Constructor <org.apache.flink.connector.jdbc.table.JdbcRowDataLookupFunction.<init>(org.apache.flink.connector.jdbc.internal.options.InternalJdbcConnectionOptions, int, [Ljava.lang.String;, [Lorg.apache.flink.table.types.DataType;, [Ljava.lang.String;, org.apache.flink.table.types.logical.RowType, java.util.List, [Ljava.io.Serializable;)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcRowDataLookupFunction.java:86)
+Constructor <org.apache.flink.connector.jdbc.table.JdbcRowDataLookupFunction.<init>(org.apache.flink.connector.jdbc.internal.options.InternalJdbcConnectionOptions, int, [Ljava.lang.String;, [Lorg.apache.flink.table.types.DataType;, [Ljava.lang.String;, org.apache.flink.table.types.logical.RowType, java.util.List, [Ljava.io.Serializable;)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcRowDataLookupFunction.java:87)
+Constructor <org.apache.flink.connector.jdbc.table.JdbcRowDataLookupFunction.<init>(org.apache.flink.connector.jdbc.internal.options.InternalJdbcConnectionOptions, int, [Ljava.lang.String;, [Lorg.apache.flink.table.types.DataType;, [Ljava.lang.String;, org.apache.flink.table.types.logical.RowType, java.util.List, [Ljava.io.Serializable;)> has parameter of type <[Lorg.apache.flink.table.types.DataType;> in (JdbcRowDataLookupFunction.java:0)
+Constructor <org.apache.flink.connector.jdbc.table.RowDataResultExtractor.<init>(org.apache.flink.connector.jdbc.converter.JdbcRowConverter)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (RowDataResultExtractor.java:35)
+Constructor <org.apache.flink.connector.jdbc.xa.CheckpointAndXid.<init>(long, javax.transaction.xa.Xid, int, boolean)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (CheckpointAndXid.java:46)
+Constructor <org.apache.flink.connector.jdbc.xa.JdbcXaSinkFunction.<init>(org.apache.flink.connector.jdbc.internal.JdbcOutputFormat, org.apache.flink.connector.jdbc.xa.XaFacade, org.apache.flink.connector.jdbc.xa.XidGenerator, org.apache.flink.connector.jdbc.xa.XaSinkStateHandler, org.apache.flink.connector.jdbc.JdbcExactlyOnceOptions, org.apache.flink.connector.jdbc.xa.XaGroupOps)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.Object)> in (JdbcXaSink [...]
+Constructor <org.apache.flink.connector.jdbc.xa.JdbcXaSinkFunction.<init>(org.apache.flink.connector.jdbc.internal.JdbcOutputFormat, org.apache.flink.connector.jdbc.xa.XaFacade, org.apache.flink.connector.jdbc.xa.XidGenerator, org.apache.flink.connector.jdbc.xa.XaSinkStateHandler, org.apache.flink.connector.jdbc.JdbcExactlyOnceOptions, org.apache.flink.connector.jdbc.xa.XaGroupOps)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (JdbcXaSinkFunction.j [...]
+Constructor <org.apache.flink.connector.jdbc.xa.JdbcXaSinkFunction.<init>(org.apache.flink.connector.jdbc.internal.JdbcOutputFormat, org.apache.flink.connector.jdbc.xa.XaFacade, org.apache.flink.connector.jdbc.xa.XidGenerator, org.apache.flink.connector.jdbc.xa.XaSinkStateHandler, org.apache.flink.connector.jdbc.JdbcExactlyOnceOptions, org.apache.flink.connector.jdbc.xa.XaGroupOps)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (JdbcXaSinkFunction.j [...]
+Constructor <org.apache.flink.connector.jdbc.xa.JdbcXaSinkFunction.<init>(org.apache.flink.connector.jdbc.internal.JdbcOutputFormat, org.apache.flink.connector.jdbc.xa.XaFacade, org.apache.flink.connector.jdbc.xa.XidGenerator, org.apache.flink.connector.jdbc.xa.XaSinkStateHandler, org.apache.flink.connector.jdbc.JdbcExactlyOnceOptions, org.apache.flink.connector.jdbc.xa.XaGroupOps)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (JdbcXaSinkFunction.j [...]
+Constructor <org.apache.flink.connector.jdbc.xa.JdbcXaSinkFunction.<init>(org.apache.flink.connector.jdbc.internal.JdbcOutputFormat, org.apache.flink.connector.jdbc.xa.XaFacade, org.apache.flink.connector.jdbc.xa.XidGenerator, org.apache.flink.connector.jdbc.xa.XaSinkStateHandler, org.apache.flink.connector.jdbc.JdbcExactlyOnceOptions, org.apache.flink.connector.jdbc.xa.XaGroupOps)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (JdbcXaSinkFunction.j [...]
+Constructor <org.apache.flink.connector.jdbc.xa.JdbcXaSinkFunction.<init>(org.apache.flink.connector.jdbc.internal.JdbcOutputFormat, org.apache.flink.connector.jdbc.xa.XaFacade, org.apache.flink.connector.jdbc.xa.XidGenerator, org.apache.flink.connector.jdbc.xa.XaSinkStateHandler, org.apache.flink.connector.jdbc.JdbcExactlyOnceOptions, org.apache.flink.connector.jdbc.xa.XaGroupOps)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (JdbcXaSinkFunction.j [...]
+Constructor <org.apache.flink.connector.jdbc.xa.XaFacadeImpl.<init>(java.util.function.Supplier, java.lang.Integer)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (XaFacadeImpl.java:90)
+Constructor <org.apache.flink.connector.jdbc.xa.XidImpl.<init>(int, [B, [B)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean)> in (XidImpl.java:46)
+Constructor <org.apache.flink.connector.jdbc.xa.XidImpl.<init>(int, [B, [B)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean)> in (XidImpl.java:47)
+Field <org.apache.flink.connector.jdbc.converter.AbstractJdbcRowConverter.fieldTypes> has type <[Lorg.apache.flink.table.types.logical.LogicalType;> in (AbstractJdbcRowConverter.java:0)
+Field <org.apache.flink.connector.jdbc.table.JdbcOutputFormatBuilder.fieldDataTypes> has type <[Lorg.apache.flink.table.types.DataType;> in (JdbcOutputFormatBuilder.java:0)
+Interface <org.apache.flink.connector.jdbc.JdbcStatementBuilder> extends interface <org.apache.flink.util.function.BiConsumerWithException> in (JdbcStatementBuilder.java:0)
+Method <org.apache.flink.connector.jdbc.JdbcConnectionOptions$JdbcConnectionOptionsBuilder.withProperty(java.lang.String, java.lang.String)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcConnectionOptions.java:116)
+Method <org.apache.flink.connector.jdbc.JdbcConnectionOptions$JdbcConnectionOptionsBuilder.withProperty(java.lang.String, java.lang.String)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcConnectionOptions.java:117)
+Method <org.apache.flink.connector.jdbc.JdbcInputFormat$JdbcInputFormatBuilder.setFetchSize(int)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.String, [Ljava.lang.Object;)> in (JdbcInputFormat.java:406)
+Method <org.apache.flink.connector.jdbc.catalog.AbstractJdbcCatalog.databaseExists(java.lang.String)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean)> in (AbstractJdbcCatalog.java:221)
+Method <org.apache.flink.connector.jdbc.catalog.AbstractJdbcCatalog.getDatabase(java.lang.String)> calls constructor <org.apache.flink.table.catalog.CatalogDatabaseImpl.<init>(java.util.Map, java.lang.String)> in (AbstractJdbcCatalog.java:252)
+Method <org.apache.flink.connector.jdbc.catalog.AbstractJdbcCatalog.getDatabase(java.lang.String)> calls method <org.apache.flink.util.Preconditions.checkState(boolean, java.lang.Object)> in (AbstractJdbcCatalog.java:248)
+Method <org.apache.flink.connector.jdbc.catalog.AbstractJdbcCatalog.getPrimaryKey(java.sql.DatabaseMetaData, java.lang.String, java.lang.String, java.lang.String)> calls method <org.apache.flink.util.Preconditions.checkState(boolean, java.lang.Object)> in (AbstractJdbcCatalog.java:194)
+Method <org.apache.flink.connector.jdbc.catalog.JdbcCatalog.getInternal()> is annotated with <org.apache.flink.annotation.VisibleForTesting> in (JdbcCatalog.java:0)
+Method <org.apache.flink.connector.jdbc.catalog.JdbcCatalogUtils.validateJdbcUrl(java.lang.String)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean)> in (JdbcCatalogUtils.java:44)
+Method <org.apache.flink.connector.jdbc.converter.AbstractPostgresCompatibleRowConverter.createPostgresArrayConverter(org.apache.flink.table.types.logical.ArrayType)> calls method <org.apache.flink.table.types.logical.utils.LogicalTypeUtils.toInternalConversionClass(org.apache.flink.table.types.logical.LogicalType)> in (AbstractPostgresCompatibleRowConverter.java:75)
+Method <org.apache.flink.connector.jdbc.databases.cratedb.catalog.CrateDBTablePath.fromFlinkTableName(java.lang.String)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.Object)> in (CrateDBTablePath.java:41)
+Method <org.apache.flink.connector.jdbc.databases.mysql.catalog.MySqlCatalog.listTables(java.lang.String)> calls method <org.apache.flink.util.Preconditions.checkState(boolean, java.lang.Object)> in (MySqlCatalog.java:114)
+Method <org.apache.flink.connector.jdbc.databases.postgres.catalog.PostgresCatalog.listTables(java.lang.String)> calls method <org.apache.flink.util.Preconditions.checkState(boolean, java.lang.Object)> in (PostgresCatalog.java:184)
+Method <org.apache.flink.connector.jdbc.databases.postgres.catalog.PostgresTablePath.fromFlinkTableName(java.lang.String)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.Object)> in (PostgresTablePath.java:56)
+Method <org.apache.flink.connector.jdbc.datasource.connections.SimpleJdbcConnectionProvider.loadDriver(java.lang.String)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (SimpleJdbcConnectionProvider.java:86)
+Method <org.apache.flink.connector.jdbc.datasource.connections.xa.PoolingXaConnectionProvider.endAndPrepare(javax.transaction.xa.Xid)> calls method <org.apache.flink.util.Preconditions.checkState(boolean)> in (PoolingXaConnectionProvider.java:109)
+Method <org.apache.flink.connector.jdbc.datasource.connections.xa.PoolingXaConnectionProvider.open()> calls method <org.apache.flink.util.Preconditions.checkState(boolean)> in (PoolingXaConnectionProvider.java:79)
+Method <org.apache.flink.connector.jdbc.datasource.connections.xa.PoolingXaConnectionProvider.peekPooled()> calls method <org.apache.flink.util.ExceptionUtils.rethrow(java.lang.Throwable)> in (PoolingXaConnectionProvider.java:202)
+Method <org.apache.flink.connector.jdbc.datasource.connections.xa.PoolingXaConnectionProvider.start(javax.transaction.xa.Xid)> calls method <org.apache.flink.util.Preconditions.checkState(boolean)> in (PoolingXaConnectionProvider.java:91)
+Method <org.apache.flink.connector.jdbc.datasource.connections.xa.SimpleXaConnectionProvider.execute(org.apache.flink.connector.jdbc.datasource.connections.xa.XaCommand)> calls method <org.apache.flink.util.Preconditions.checkState(boolean, java.lang.Object)> in (SimpleXaConnectionProvider.java:261)
+Method <org.apache.flink.connector.jdbc.datasource.connections.xa.SimpleXaConnectionProvider.from(javax.sql.XADataSource)> is annotated with <org.apache.flink.annotation.VisibleForTesting> in (SimpleXaConnectionProvider.java:0)
+Method <org.apache.flink.connector.jdbc.datasource.connections.xa.SimpleXaConnectionProvider.getConnection()> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (SimpleXaConnectionProvider.java:128)
+Method <org.apache.flink.connector.jdbc.datasource.connections.xa.SimpleXaConnectionProvider.open()> calls method <org.apache.flink.util.Preconditions.checkState(boolean)> in (SimpleXaConnectionProvider.java:101)
+Method <org.apache.flink.connector.jdbc.datasource.connections.xa.SimpleXaConnectionProvider.open()> calls method <org.apache.flink.util.Preconditions.checkState(boolean, java.lang.Object)> in (SimpleXaConnectionProvider.java:87)
+Method <org.apache.flink.connector.jdbc.datasource.connections.xa.SimpleXaConnectionProvider.recover()> calls method <org.apache.flink.util.Preconditions.checkState(boolean, java.lang.Object)> in (SimpleXaConnectionProvider.java:246)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.XaTransaction.checkState()> calls method <org.apache.flink.util.Preconditions.checkState(boolean, java.lang.Object)> in (XaTransaction.java:121)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.XaTransaction.checkState()> calls method <org.apache.flink.util.Preconditions.checkState(boolean, java.lang.Object)> in (XaTransaction.java:122)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.XaTransaction.createTx(long)> calls method <org.apache.flink.util.ExceptionUtils.rethrowIOException(java.lang.Throwable)> in (XaTransaction.java:135)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.XaTransaction.createTx(long)> calls method <org.apache.flink.util.Preconditions.checkState(boolean, java.lang.Object)> in (XaTransaction.java:130)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.XaTransaction.open(org.apache.flink.connector.jdbc.sink.writer.JdbcWriterState)> calls method <org.apache.flink.util.ExceptionUtils.rethrowIOException(java.lang.Throwable)> in (XaTransaction.java:86)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.XaTransaction.prepareTx()> calls method <org.apache.flink.util.ExceptionUtils.rethrowIOException(java.lang.Throwable)> in (XaTransaction.java:151)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.deserialize([B)> calls constructor <org.apache.flink.core.memory.DataInputDeserializer.<init>([B)> in (TransactionId.java:96)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.deserialize([B)> calls method <org.apache.flink.core.memory.DataInputDeserializer.readInt()> in (TransactionId.java:101)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.deserialize([B)> calls method <org.apache.flink.core.memory.DataInputDeserializer.readInt()> in (TransactionId.java:98)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.deserialize([B)> calls method <org.apache.flink.core.memory.DataInputDeserializer.readInt()> in (TransactionId.java:99)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.deserialize([B)> calls method <org.apache.flink.core.memory.DataInputDeserializer.readLong()> in (TransactionId.java:100)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.fromXid(int, [B, [B, boolean)> calls constructor <org.apache.flink.core.memory.DataInputDeserializer.<init>([B)> in (TransactionId.java:83)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.fromXid(int, [B, [B, boolean)> calls constructor <org.apache.flink.core.memory.DataInputDeserializer.<init>([B)> in (TransactionId.java:87)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.fromXid(int, [B, [B, boolean)> calls method <org.apache.flink.core.memory.DataInputDeserializer.readInt()> in (TransactionId.java:85)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.fromXid(int, [B, [B, boolean)> calls method <org.apache.flink.core.memory.DataInputDeserializer.readInt()> in (TransactionId.java:88)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.fromXid(int, [B, [B, boolean)> calls method <org.apache.flink.core.memory.DataInputDeserializer.readLong()> in (TransactionId.java:89)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.getBranchQualifier()> calls constructor <org.apache.flink.core.memory.DataOutputSerializer.<init>(int)> in (TransactionId.java:172)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.getBranchQualifier()> calls method <org.apache.flink.core.memory.DataOutputSerializer.getSharedBuffer()> in (TransactionId.java:175)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.getBranchQualifier()> calls method <org.apache.flink.core.memory.DataOutputSerializer.writeInt(int)> in (TransactionId.java:173)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.getBranchQualifier()> calls method <org.apache.flink.core.memory.DataOutputSerializer.writeLong(long)> in (TransactionId.java:174)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.getBranchQualifier()> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.Object)> in (TransactionId.java:169)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.getGlobalTransactionId()> calls constructor <org.apache.flink.core.memory.DataOutputSerializer.<init>(int)> in (TransactionId.java:158)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.getGlobalTransactionId()> calls method <org.apache.flink.core.memory.DataOutputSerializer.getSharedBuffer()> in (TransactionId.java:161)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.getGlobalTransactionId()> calls method <org.apache.flink.core.memory.DataOutputSerializer.write([B, int, int)> in (TransactionId.java:159)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.getGlobalTransactionId()> calls method <org.apache.flink.core.memory.DataOutputSerializer.writeInt(int)> in (TransactionId.java:160)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.readJobId(org.apache.flink.core.memory.DataInputDeserializer)> calls method <org.apache.flink.core.memory.DataInputDeserializer.read([B)> in (TransactionId.java:110)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.readJobId(org.apache.flink.core.memory.DataInputDeserializer)> has parameter of type <org.apache.flink.core.memory.DataInputDeserializer> in (TransactionId.java:0)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.serialize()> calls constructor <org.apache.flink.core.memory.DataOutputSerializer.<init>(int)> in (TransactionId.java:183)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.serialize()> calls method <org.apache.flink.core.memory.DataOutputSerializer.getSharedBuffer()> in (TransactionId.java:189)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.serialize()> calls method <org.apache.flink.core.memory.DataOutputSerializer.write([B, int, int)> in (TransactionId.java:184)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.serialize()> calls method <org.apache.flink.core.memory.DataOutputSerializer.writeInt(int)> in (TransactionId.java:185)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.serialize()> calls method <org.apache.flink.core.memory.DataOutputSerializer.writeInt(int)> in (TransactionId.java:186)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.serialize()> calls method <org.apache.flink.core.memory.DataOutputSerializer.writeInt(int)> in (TransactionId.java:188)
+Method <org.apache.flink.connector.jdbc.datasource.transactions.xa.domain.TransactionId.serialize()> calls method <org.apache.flink.core.memory.DataOutputSerializer.writeLong(long)> in (TransactionId.java:187)
+Method <org.apache.flink.connector.jdbc.dialect.AbstractDialect$Range.of(int, int)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.Object)> in (AbstractDialect.java:256)
+Method <org.apache.flink.connector.jdbc.internal.JdbcOutputFormat.getConnection()> is annotated with <org.apache.flink.annotation.VisibleForTesting> in (JdbcOutputFormat.java:0)
+Method <org.apache.flink.connector.jdbc.internal.JdbcOutputFormat.open(org.apache.flink.connector.jdbc.internal.JdbcOutputSerializer)> calls constructor <org.apache.flink.util.concurrent.ExecutorThreadFactory.<init>(java.lang.String)> in (JdbcOutputFormat.java:103)
+Method <org.apache.flink.connector.jdbc.internal.JdbcOutputFormat.open(org.apache.flink.connector.jdbc.internal.JdbcOutputSerializer)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcOutputFormat.java:94)
+Method <org.apache.flink.connector.jdbc.internal.RowJdbcOutputFormat$Builder.build()> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (RowJdbcOutputFormat.java:132)
+Method <org.apache.flink.connector.jdbc.internal.TableJdbcUpsertOutputFormat.createUpsertRowExecutor(org.apache.flink.connector.jdbc.internal.options.JdbcDmlOptions)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean)> in (TableJdbcUpsertOutputFormat.java:152)
+Method <org.apache.flink.connector.jdbc.internal.options.InternalJdbcConnectionOptions$Builder.build()> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (InternalJdbcConnectionOptions.java:202)
+Method <org.apache.flink.connector.jdbc.internal.options.InternalJdbcConnectionOptions$Builder.build()> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (InternalJdbcConnectionOptions.java:203)
+Method <org.apache.flink.connector.jdbc.internal.options.InternalJdbcConnectionOptions$Builder.setProperty(java.lang.String, java.lang.String)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (InternalJdbcConnectionOptions.java:195)
+Method <org.apache.flink.connector.jdbc.internal.options.InternalJdbcConnectionOptions$Builder.setProperty(java.lang.String, java.lang.String)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (InternalJdbcConnectionOptions.java:196)
+Method <org.apache.flink.connector.jdbc.sink.JdbcSinkBuilder.build(org.apache.flink.connector.base.DeliveryGuarantee, org.apache.flink.connector.jdbc.JdbcExactlyOnceOptions, org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcSinkBuilder.java:111)
+Method <org.apache.flink.connector.jdbc.sink.JdbcSinkBuilder.build(org.apache.flink.connector.base.DeliveryGuarantee, org.apache.flink.connector.jdbc.JdbcExactlyOnceOptions, org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcSinkBuilder.java:112)
+Method <org.apache.flink.connector.jdbc.sink.JdbcSinkBuilder.build(org.apache.flink.connector.base.DeliveryGuarantee, org.apache.flink.connector.jdbc.JdbcExactlyOnceOptions, org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcSinkBuilder.java:113)
+Method <org.apache.flink.connector.jdbc.sink.JdbcSinkBuilder.build(org.apache.flink.connector.base.DeliveryGuarantee, org.apache.flink.connector.jdbc.JdbcExactlyOnceOptions, org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcSinkBuilder.java:114)
+Method <org.apache.flink.connector.jdbc.sink.JdbcSinkBuilder.build(org.apache.flink.connector.base.DeliveryGuarantee, org.apache.flink.connector.jdbc.JdbcExactlyOnceOptions, org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcSinkBuilder.java:115)
+Method <org.apache.flink.connector.jdbc.sink.JdbcSinkBuilder.buildAtLeastOnce(org.apache.flink.connector.jdbc.JdbcConnectionOptions)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcSinkBuilder.java:67)
+Method <org.apache.flink.connector.jdbc.sink.JdbcSinkBuilder.buildAtLeastOnce(org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcSinkBuilder.java:73)
+Method <org.apache.flink.connector.jdbc.sink.JdbcSinkBuilder.buildAtLeastOnce(org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcSinkBuilder.java:78)
+Method <org.apache.flink.connector.jdbc.sink.JdbcSinkBuilder.buildExactlyOnce(org.apache.flink.connector.jdbc.JdbcExactlyOnceOptions, org.apache.flink.connector.jdbc.datasource.connections.xa.XaConnectionProvider)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcSinkBuilder.java:101)
+Method <org.apache.flink.connector.jdbc.sink.JdbcSinkBuilder.buildExactlyOnce(org.apache.flink.connector.jdbc.JdbcExactlyOnceOptions, org.apache.flink.connector.jdbc.datasource.connections.xa.XaConnectionProvider)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcSinkBuilder.java:102)
+Method <org.apache.flink.connector.jdbc.sink.JdbcSinkBuilder.buildExactlyOnce(org.apache.flink.connector.jdbc.JdbcExactlyOnceOptions, org.apache.flink.util.function.SerializableSupplier)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcSinkBuilder.java:85)
+Method <org.apache.flink.connector.jdbc.sink.JdbcSinkBuilder.buildExactlyOnce(org.apache.flink.connector.jdbc.JdbcExactlyOnceOptions, org.apache.flink.util.function.SerializableSupplier)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcSinkBuilder.java:86)
+Method <org.apache.flink.connector.jdbc.sink.JdbcSinkBuilder.withExecutionOptions(org.apache.flink.connector.jdbc.JdbcExecutionOptions)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcSinkBuilder.java:51)
+Method <org.apache.flink.connector.jdbc.sink.committer.JdbcCommitableSerializer.deserialize(int, [B)> calls constructor <org.apache.flink.core.memory.DataInputDeserializer.<init>([B)> in (JdbcCommitableSerializer.java:34)
+Method <org.apache.flink.connector.jdbc.sink.committer.JdbcCommitableSerializer.serialize(org.apache.flink.connector.jdbc.sink.committer.JdbcCommitable)> calls constructor <org.apache.flink.core.memory.DataOutputSerializer.<init>(int)> in (JdbcCommitableSerializer.java:27)
+Method <org.apache.flink.connector.jdbc.sink.committer.JdbcCommitableSerializer.serialize(org.apache.flink.connector.jdbc.sink.committer.JdbcCommitable)> calls method <org.apache.flink.core.memory.DataOutputSerializer.getSharedBuffer()> in (JdbcCommitableSerializer.java:29)
+Method <org.apache.flink.connector.jdbc.sink.writer.JdbcWriter.snapshotState(long)> calls method <org.apache.flink.util.Preconditions.checkState(boolean, java.lang.String, [Ljava.lang.Object;)> in (JdbcWriter.java:192)
+Method <org.apache.flink.connector.jdbc.sink.writer.JdbcWriterStateSerializer.deserialize(int, [B)> calls constructor <org.apache.flink.core.memory.DataInputDeserializer.<init>([B)> in (JdbcWriterStateSerializer.java:48)
+Method <org.apache.flink.connector.jdbc.sink.writer.JdbcWriterStateSerializer.deserializeV2(org.apache.flink.core.memory.DataInputDeserializer)> calls method <org.apache.flink.core.memory.DataInputDeserializer.read([B, int, int)> in (JdbcWriterStateSerializer.java:62)
+Method <org.apache.flink.connector.jdbc.sink.writer.JdbcWriterStateSerializer.deserializeV2(org.apache.flink.core.memory.DataInputDeserializer)> calls method <org.apache.flink.core.memory.DataInputDeserializer.read([B, int, int)> in (JdbcWriterStateSerializer.java:70)
+Method <org.apache.flink.connector.jdbc.sink.writer.JdbcWriterStateSerializer.deserializeV2(org.apache.flink.core.memory.DataInputDeserializer)> calls method <org.apache.flink.core.memory.DataInputDeserializer.readByte()> in (JdbcWriterStateSerializer.java:60)
+Method <org.apache.flink.connector.jdbc.sink.writer.JdbcWriterStateSerializer.deserializeV2(org.apache.flink.core.memory.DataInputDeserializer)> calls method <org.apache.flink.core.memory.DataInputDeserializer.readByte()> in (JdbcWriterStateSerializer.java:68)
+Method <org.apache.flink.connector.jdbc.sink.writer.JdbcWriterStateSerializer.deserializeV2(org.apache.flink.core.memory.DataInputDeserializer)> calls method <org.apache.flink.core.memory.DataInputDeserializer.readInt()> in (JdbcWriterStateSerializer.java:57)
+Method <org.apache.flink.connector.jdbc.sink.writer.JdbcWriterStateSerializer.deserializeV2(org.apache.flink.core.memory.DataInputDeserializer)> calls method <org.apache.flink.core.memory.DataInputDeserializer.readInt()> in (JdbcWriterStateSerializer.java:65)
+Method <org.apache.flink.connector.jdbc.sink.writer.JdbcWriterStateSerializer.deserializeV2(org.apache.flink.core.memory.DataInputDeserializer)> has parameter of type <org.apache.flink.core.memory.DataInputDeserializer> in (JdbcWriterStateSerializer.java:0)
+Method <org.apache.flink.connector.jdbc.sink.writer.JdbcWriterStateSerializer.serialize(org.apache.flink.connector.jdbc.sink.writer.JdbcWriterState)> calls constructor <org.apache.flink.core.memory.DataOutputSerializer.<init>(int)> in (JdbcWriterStateSerializer.java:29)
+Method <org.apache.flink.connector.jdbc.sink.writer.JdbcWriterStateSerializer.serialize(org.apache.flink.connector.jdbc.sink.writer.JdbcWriterState)> calls method <org.apache.flink.core.memory.DataOutputSerializer.getSharedBuffer()> in (JdbcWriterStateSerializer.java:42)
+Method <org.apache.flink.connector.jdbc.sink.writer.JdbcWriterStateSerializer.serialize(org.apache.flink.connector.jdbc.sink.writer.JdbcWriterState)> calls method <org.apache.flink.core.memory.DataOutputSerializer.write([B, int, int)> in (JdbcWriterStateSerializer.java:34)
+Method <org.apache.flink.connector.jdbc.sink.writer.JdbcWriterStateSerializer.serialize(org.apache.flink.connector.jdbc.sink.writer.JdbcWriterState)> calls method <org.apache.flink.core.memory.DataOutputSerializer.write([B, int, int)> in (JdbcWriterStateSerializer.java:40)
+Method <org.apache.flink.connector.jdbc.sink.writer.JdbcWriterStateSerializer.serialize(org.apache.flink.connector.jdbc.sink.writer.JdbcWriterState)> calls method <org.apache.flink.core.memory.DataOutputSerializer.writeByte(int)> in (JdbcWriterStateSerializer.java:33)
+Method <org.apache.flink.connector.jdbc.sink.writer.JdbcWriterStateSerializer.serialize(org.apache.flink.connector.jdbc.sink.writer.JdbcWriterState)> calls method <org.apache.flink.core.memory.DataOutputSerializer.writeByte(int)> in (JdbcWriterStateSerializer.java:39)
+Method <org.apache.flink.connector.jdbc.sink.writer.JdbcWriterStateSerializer.serialize(org.apache.flink.connector.jdbc.sink.writer.JdbcWriterState)> calls method <org.apache.flink.core.memory.DataOutputSerializer.writeInt(int)> in (JdbcWriterStateSerializer.java:30)
+Method <org.apache.flink.connector.jdbc.sink.writer.JdbcWriterStateSerializer.serialize(org.apache.flink.connector.jdbc.sink.writer.JdbcWriterState)> calls method <org.apache.flink.core.memory.DataOutputSerializer.writeInt(int)> in (JdbcWriterStateSerializer.java:36)
+Method <org.apache.flink.connector.jdbc.source.JdbcSource.equals(java.lang.Object)> is annotated with <org.apache.flink.annotation.VisibleForTesting> in (JdbcSource.java:0)
+Method <org.apache.flink.connector.jdbc.source.JdbcSource.getConfiguration()> is annotated with <org.apache.flink.annotation.VisibleForTesting> in (JdbcSource.java:0)
+Method <org.apache.flink.connector.jdbc.source.JdbcSource.getResultExtractor()> is annotated with <org.apache.flink.annotation.VisibleForTesting> in (JdbcSource.java:0)
+Method <org.apache.flink.connector.jdbc.source.JdbcSource.getSqlSplitEnumeratorProvider()> is annotated with <org.apache.flink.annotation.VisibleForTesting> in (JdbcSource.java:0)
+Method <org.apache.flink.connector.jdbc.source.JdbcSource.getTypeInformation()> is annotated with <org.apache.flink.annotation.VisibleForTesting> in (JdbcSource.java:0)
+Method <org.apache.flink.connector.jdbc.source.JdbcSourceBuilder.build()> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcSourceBuilder.java:250)
+Method <org.apache.flink.connector.jdbc.source.JdbcSourceBuilder.build()> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcSourceBuilder.java:251)
+Method <org.apache.flink.connector.jdbc.source.JdbcSourceBuilder.build()> calls method <org.apache.flink.util.Preconditions.checkState(boolean, java.lang.Object)> in (JdbcSourceBuilder.java:248)
+Method <org.apache.flink.connector.jdbc.source.JdbcSourceBuilder.setConnectionProperty(java.lang.String, java.lang.String)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcSourceBuilder.java:187)
+Method <org.apache.flink.connector.jdbc.source.JdbcSourceBuilder.setConnectionProperty(java.lang.String, java.lang.String)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcSourceBuilder.java:188)
+Method <org.apache.flink.connector.jdbc.source.JdbcSourceBuilder.setConnectionProvider(org.apache.flink.connector.jdbc.datasource.connections.JdbcConnectionProvider)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (JdbcSourceBuilder.java:234)
+Method <org.apache.flink.connector.jdbc.source.JdbcSourceBuilder.setDBUrl(java.lang.String)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.Object)> in (JdbcSourceBuilder.java:164)
+Method <org.apache.flink.connector.jdbc.source.JdbcSourceBuilder.setDriverName(java.lang.String)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.Object)> in (JdbcSourceBuilder.java:156)
+Method <org.apache.flink.connector.jdbc.source.JdbcSourceBuilder.setJdbcParameterValuesProvider(org.apache.flink.connector.jdbc.split.JdbcParameterValuesProvider)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (JdbcSourceBuilder.java:195)
+Method <org.apache.flink.connector.jdbc.source.JdbcSourceBuilder.setResultExtractor(org.apache.flink.connector.jdbc.source.reader.extractor.ResultExtractor)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcSourceBuilder.java:140)
+Method <org.apache.flink.connector.jdbc.source.JdbcSourceBuilder.setResultSetFetchSize(int)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.String, [Ljava.lang.Object;)> in (JdbcSourceBuilder.java:224)
+Method <org.apache.flink.connector.jdbc.source.JdbcSourceBuilder.setSplitReaderFetchBatchSize(int)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.String, [Ljava.lang.Object;)> in (JdbcSourceBuilder.java:200)
+Method <org.apache.flink.connector.jdbc.source.JdbcSourceBuilder.setSql(java.lang.String)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.Object)> in (JdbcSourceBuilder.java:131)
+Method <org.apache.flink.connector.jdbc.source.JdbcSourceBuilder.setTypeInformation(org.apache.flink.api.common.typeinfo.TypeInformation)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcSourceBuilder.java:173)
+Method <org.apache.flink.connector.jdbc.source.enumerator.JdbcSourceEnumStateSerializer.deserialize(int, [B)> calls method <org.apache.flink.util.InstantiationUtil.deserializeObject([B, java.lang.ClassLoader)> in (JdbcSourceEnumStateSerializer.java:110)
+Method <org.apache.flink.connector.jdbc.source.enumerator.JdbcSourceEnumStateSerializer.serialize(org.apache.flink.connector.jdbc.source.enumerator.JdbcSourceEnumeratorState)> calls method <org.apache.flink.util.InstantiationUtil.serializeObject(java.lang.Object)> in (JdbcSourceEnumStateSerializer.java:70)
+Method <org.apache.flink.connector.jdbc.source.enumerator.JdbcSourceEnumStateSerializer.serialize(org.apache.flink.connector.jdbc.source.enumerator.JdbcSourceEnumeratorState)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.String, [Ljava.lang.Object;)> in (JdbcSourceEnumStateSerializer.java:58)
+Method <org.apache.flink.connector.jdbc.source.enumerator.JdbcSourceEnumStateSerializer.serializeJdbcSourceSplits(java.io.DataOutputStream, java.util.List)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (JdbcSourceEnumStateSerializer.java:86)
+Method <org.apache.flink.connector.jdbc.source.enumerator.SqlTemplateSplitEnumerator$TemplateSqlSplitEnumeratorProvider.setSqlTemplate(java.lang.String)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.Object)> in (SqlTemplateSplitEnumerator.java:92)
+Method <org.apache.flink.connector.jdbc.source.enumerator.SqlTemplateSplitEnumerator.getParameterValuesProvider()> is annotated with <org.apache.flink.annotation.VisibleForTesting> in (SqlTemplateSplitEnumerator.java:0)
+Method <org.apache.flink.connector.jdbc.source.enumerator.SqlTemplateSplitEnumerator.getSqlTemplate()> is annotated with <org.apache.flink.annotation.VisibleForTesting> in (SqlTemplateSplitEnumerator.java:0)
+Method <org.apache.flink.connector.jdbc.source.reader.JdbcSourceSplitReader.fetch()> calls method <org.apache.flink.util.Preconditions.checkState(boolean, java.lang.Object)> in (JdbcSourceSplitReader.java:131)
+Method <org.apache.flink.connector.jdbc.source.reader.JdbcSourceSplitReader.finishSplit()> calls method <org.apache.flink.util.Preconditions.checkState(boolean, java.lang.Object)> in (JdbcSourceSplitReader.java:157)
+Method <org.apache.flink.connector.jdbc.source.reader.JdbcSourceSplitReader.getConnection()> is annotated with <org.apache.flink.annotation.VisibleForTesting> in (JdbcSourceSplitReader.java:0)
+Method <org.apache.flink.connector.jdbc.source.reader.JdbcSourceSplitReader.getResultSet()> is annotated with <org.apache.flink.annotation.VisibleForTesting> in (JdbcSourceSplitReader.java:0)
+Method <org.apache.flink.connector.jdbc.source.reader.JdbcSourceSplitReader.getSplits()> is annotated with <org.apache.flink.annotation.VisibleForTesting> in (JdbcSourceSplitReader.java:0)
+Method <org.apache.flink.connector.jdbc.source.reader.JdbcSourceSplitReader.getStatement()> is annotated with <org.apache.flink.annotation.VisibleForTesting> in (JdbcSourceSplitReader.java:0)
+Method <org.apache.flink.connector.jdbc.source.reader.extractor.RowResultExtractor.extract(java.sql.ResultSet)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean)> in (RowResultExtractor.java:33)
+Method <org.apache.flink.connector.jdbc.source.split.JdbcSourceSplitSerializer.deserializeJdbcSourceSplit(java.io.DataInputStream)> calls method <org.apache.flink.util.InstantiationUtil.deserializeObject([B, java.lang.ClassLoader)> in (JdbcSourceSplitSerializer.java:100)
+Method <org.apache.flink.connector.jdbc.source.split.JdbcSourceSplitSerializer.deserializeJdbcSourceSplit(java.io.DataInputStream)> calls method <org.apache.flink.util.InstantiationUtil.deserializeObject([B, java.lang.ClassLoader)> in (JdbcSourceSplitSerializer.java:109)
+Method <org.apache.flink.connector.jdbc.source.split.JdbcSourceSplitSerializer.serialize(org.apache.flink.connector.jdbc.source.split.JdbcSourceSplit)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.Object)> in (JdbcSourceSplitSerializer.java:46)
+Method <org.apache.flink.connector.jdbc.source.split.JdbcSourceSplitSerializer.serializeJdbcSourceSplit(java.io.DataOutputStream, org.apache.flink.connector.jdbc.source.split.JdbcSourceSplit)> calls method <org.apache.flink.util.InstantiationUtil.serializeObject(java.lang.Object)> in (JdbcSourceSplitSerializer.java:80)
+Method <org.apache.flink.connector.jdbc.source.split.JdbcSourceSplitSerializer.serializeJdbcSourceSplit(java.io.DataOutputStream, org.apache.flink.connector.jdbc.source.split.JdbcSourceSplit)> calls method <org.apache.flink.util.InstantiationUtil.serializeObject(java.lang.Object)> in (JdbcSourceSplitSerializer.java:87)
+Method <org.apache.flink.connector.jdbc.split.JdbcNumericBetweenParametersProvider.getParameterValues()> calls method <org.apache.flink.util.Preconditions.checkState(boolean, java.lang.Object)> in (JdbcNumericBetweenParametersProvider.java:100)
+Method <org.apache.flink.connector.jdbc.split.JdbcNumericBetweenParametersProvider.ofBatchNum(int)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.Object)> in (JdbcNumericBetweenParametersProvider.java:87)
+Method <org.apache.flink.connector.jdbc.split.JdbcNumericBetweenParametersProvider.ofBatchSize(long)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.Object)> in (JdbcNumericBetweenParametersProvider.java:75)
+Method <org.apache.flink.connector.jdbc.statement.FieldNamedPreparedStatementImpl.parseNamedStatement(java.lang.String, java.util.Map)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.Object)> in (FieldNamedPreparedStatementImpl.java:247)
+Method <org.apache.flink.connector.jdbc.statement.FieldNamedPreparedStatementImpl.prepareStatement(java.sql.Connection, java.lang.String, [Ljava.lang.String;, java.lang.String, int)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.Object)> in (FieldNamedPreparedStatementImpl.java:202)
+Method <org.apache.flink.connector.jdbc.statement.FieldNamedPreparedStatementImpl.prepareStatement(java.sql.Connection, java.lang.String, [Ljava.lang.String;, java.lang.String, int)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.Object)> in (FieldNamedPreparedStatementImpl.java:212)
+Method <org.apache.flink.connector.jdbc.statement.FieldNamedPreparedStatementImpl.prepareStatement(java.sql.Connection, java.lang.String, [Ljava.lang.String;, java.lang.String, int)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (FieldNamedPreparedStatementImpl.java:187)
+Method <org.apache.flink.connector.jdbc.statement.FieldNamedPreparedStatementImpl.prepareStatement(java.sql.Connection, java.lang.String, [Ljava.lang.String;, java.lang.String, int)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (FieldNamedPreparedStatementImpl.java:188)
+Method <org.apache.flink.connector.jdbc.statement.FieldNamedPreparedStatementImpl.prepareStatement(java.sql.Connection, java.lang.String, [Ljava.lang.String;, java.lang.String, int)> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (FieldNamedPreparedStatementImpl.java:189)
+Method <org.apache.flink.connector.jdbc.table.JdbcDynamicTableFactory.checkAllOrNone(org.apache.flink.configuration.ReadableConfig, [Lorg.apache.flink.configuration.ConfigOption;)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.Object)> in (JdbcDynamicTableFactory.java:351)
+Method <org.apache.flink.connector.jdbc.table.JdbcDynamicTableFactory.checkAllOrNone(org.apache.flink.configuration.ReadableConfig, [Lorg.apache.flink.configuration.ConfigOption;)> has parameter of type <[Lorg.apache.flink.configuration.ConfigOption;> in (JdbcDynamicTableFactory.java:0)
+Method <org.apache.flink.connector.jdbc.table.JdbcDynamicTableFactory.createDynamicTableSource(org.apache.flink.table.factories.DynamicTableFactory$Context)> gets field <org.apache.flink.table.connector.source.lookup.LookupOptions.MAX_RETRIES> in (JdbcDynamicTableFactory.java:127)
+Method <org.apache.flink.connector.jdbc.table.JdbcDynamicTableFactory.getLookupCache(org.apache.flink.configuration.ReadableConfig)> calls method <org.apache.flink.table.connector.source.lookup.LookupOptions$LookupCacheType.equals(java.lang.Object)> in (JdbcDynamicTableFactory.java:216)
+Method <org.apache.flink.connector.jdbc.table.JdbcDynamicTableFactory.getLookupCache(org.apache.flink.configuration.ReadableConfig)> gets field <org.apache.flink.table.connector.source.lookup.LookupOptions$LookupCacheType.PARTIAL> in (JdbcDynamicTableFactory.java:215)
+Method <org.apache.flink.connector.jdbc.table.JdbcDynamicTableFactory.getLookupCache(org.apache.flink.configuration.ReadableConfig)> gets field <org.apache.flink.table.connector.source.lookup.LookupOptions.CACHE_TYPE> in (JdbcDynamicTableFactory.java:214)
+Method <org.apache.flink.connector.jdbc.table.JdbcDynamicTableFactory.optionalOptions()> gets field <org.apache.flink.table.connector.source.lookup.LookupOptions.CACHE_TYPE> in (JdbcDynamicTableFactory.java:257)
+Method <org.apache.flink.connector.jdbc.table.JdbcDynamicTableFactory.optionalOptions()> gets field <org.apache.flink.table.connector.source.lookup.LookupOptions.MAX_RETRIES> in (JdbcDynamicTableFactory.java:262)
+Method <org.apache.flink.connector.jdbc.table.JdbcDynamicTableFactory.optionalOptions()> gets field <org.apache.flink.table.connector.source.lookup.LookupOptions.PARTIAL_CACHE_CACHE_MISSING_KEY> in (JdbcDynamicTableFactory.java:261)
+Method <org.apache.flink.connector.jdbc.table.JdbcDynamicTableFactory.optionalOptions()> gets field <org.apache.flink.table.connector.source.lookup.LookupOptions.PARTIAL_CACHE_EXPIRE_AFTER_ACCESS> in (JdbcDynamicTableFactory.java:258)
+Method <org.apache.flink.connector.jdbc.table.JdbcDynamicTableFactory.optionalOptions()> gets field <org.apache.flink.table.connector.source.lookup.LookupOptions.PARTIAL_CACHE_EXPIRE_AFTER_WRITE> in (JdbcDynamicTableFactory.java:259)
+Method <org.apache.flink.connector.jdbc.table.JdbcDynamicTableFactory.optionalOptions()> gets field <org.apache.flink.table.connector.source.lookup.LookupOptions.PARTIAL_CACHE_MAX_ROWS> in (JdbcDynamicTableFactory.java:260)
+Method <org.apache.flink.connector.jdbc.table.JdbcDynamicTableSink.validatePrimaryKey(org.apache.flink.table.connector.ChangelogMode)> calls method <org.apache.flink.util.Preconditions.checkState(boolean, java.lang.Object)> in (JdbcDynamicTableSink.java:69)
+Method <org.apache.flink.connector.jdbc.table.JdbcDynamicTableSource.getLookupRuntimeProvider(org.apache.flink.table.connector.source.LookupTableSource$LookupContext)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.Object)> in (JdbcDynamicTableSource.java:112)
+Method <org.apache.flink.connector.jdbc.table.JdbcOutputFormatBuilder.build()> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcOutputFormatBuilder.java:81)
+Method <org.apache.flink.connector.jdbc.table.JdbcOutputFormatBuilder.build()> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcOutputFormatBuilder.java:82)
+Method <org.apache.flink.connector.jdbc.table.JdbcOutputFormatBuilder.build()> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object, java.lang.String)> in (JdbcOutputFormatBuilder.java:83)
+Method <org.apache.flink.connector.jdbc.table.JdbcOutputFormatBuilder.createBufferReduceExecutor(org.apache.flink.connector.jdbc.internal.options.JdbcDmlOptions, [Lorg.apache.flink.table.types.logical.LogicalType;)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean)> in (JdbcOutputFormatBuilder.java:116)
+Method <org.apache.flink.connector.jdbc.table.JdbcOutputFormatBuilder.createBufferReduceExecutor(org.apache.flink.connector.jdbc.internal.options.JdbcDmlOptions, [Lorg.apache.flink.table.types.logical.LogicalType;)> has parameter of type <[Lorg.apache.flink.table.types.logical.LogicalType;> in (JdbcOutputFormatBuilder.java:0)
+Method <org.apache.flink.connector.jdbc.table.JdbcOutputFormatBuilder.createDeleteExecutor(org.apache.flink.connector.jdbc.dialect.JdbcDialect, java.lang.String, [Ljava.lang.String;, [Lorg.apache.flink.table.types.logical.LogicalType;)> has parameter of type <[Lorg.apache.flink.table.types.logical.LogicalType;> in (JdbcOutputFormatBuilder.java:0)
+Method <org.apache.flink.connector.jdbc.table.JdbcOutputFormatBuilder.createInsertOrUpdateExecutor(org.apache.flink.connector.jdbc.dialect.JdbcDialect, java.lang.String, [Ljava.lang.String;, [Lorg.apache.flink.table.types.logical.LogicalType;, [I, [Ljava.lang.String;, [Lorg.apache.flink.table.types.logical.LogicalType;)> has parameter of type <[Lorg.apache.flink.table.types.logical.LogicalType;> in (JdbcOutputFormatBuilder.java:0)
+Method <org.apache.flink.connector.jdbc.table.JdbcOutputFormatBuilder.createRowKeyExtractor([Lorg.apache.flink.table.types.logical.LogicalType;, [I)> has parameter of type <[Lorg.apache.flink.table.types.logical.LogicalType;> in (JdbcOutputFormatBuilder.java:0)
+Method <org.apache.flink.connector.jdbc.table.JdbcOutputFormatBuilder.createSimpleBufferedExecutor(org.apache.flink.connector.jdbc.dialect.JdbcDialect, [Ljava.lang.String;, [Lorg.apache.flink.table.types.logical.LogicalType;, java.lang.String)> has parameter of type <[Lorg.apache.flink.table.types.logical.LogicalType;> in (JdbcOutputFormatBuilder.java:0)
+Method <org.apache.flink.connector.jdbc.table.JdbcOutputFormatBuilder.createSimpleRowExecutor(org.apache.flink.connector.jdbc.dialect.JdbcDialect, [Ljava.lang.String;, [Lorg.apache.flink.table.types.logical.LogicalType;, java.lang.String)> has parameter of type <[Lorg.apache.flink.table.types.logical.LogicalType;> in (JdbcOutputFormatBuilder.java:0)
+Method <org.apache.flink.connector.jdbc.table.JdbcOutputFormatBuilder.createUpsertRowExecutor(org.apache.flink.connector.jdbc.dialect.JdbcDialect, java.lang.String, [Ljava.lang.String;, [Lorg.apache.flink.table.types.logical.LogicalType;, [I, [Ljava.lang.String;, [Lorg.apache.flink.table.types.logical.LogicalType;)> has parameter of type <[Lorg.apache.flink.table.types.logical.LogicalType;> in (JdbcOutputFormatBuilder.java:0)
+Method <org.apache.flink.connector.jdbc.table.JdbcOutputFormatBuilder.getPrimaryKey(org.apache.flink.table.data.RowData, [Lorg.apache.flink.table.data.RowData$FieldGetter;)> has parameter of type <[Lorg.apache.flink.table.data.RowData$FieldGetter;> in (JdbcOutputFormatBuilder.java:0)
+Method <org.apache.flink.connector.jdbc.table.JdbcOutputFormatBuilder.setFieldDataTypes([Lorg.apache.flink.table.types.DataType;)> has parameter of type <[Lorg.apache.flink.table.types.DataType;> in (JdbcOutputFormatBuilder.java:0)
+Method <org.apache.flink.connector.jdbc.table.JdbcRowDataInputFormat$Builder.setFetchSize(int)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean, java.lang.String, [Ljava.lang.Object;)> in (JdbcRowDataInputFormat.java:356)
+Method <org.apache.flink.connector.jdbc.table.JdbcRowDataInputFormat.createInputSplits(int)> has return type <[Lorg.apache.flink.core.io.InputSplit;> in (JdbcRowDataInputFormat.java:0)
+Method <org.apache.flink.connector.jdbc.table.JdbcRowDataInputFormat.getInputSplitAssigner([Lorg.apache.flink.core.io.InputSplit;)> calls constructor <org.apache.flink.api.common.io.DefaultInputSplitAssigner.<init>([Lorg.apache.flink.core.io.InputSplit;)> in (JdbcRowDataInputFormat.java:287)
+Method <org.apache.flink.connector.jdbc.table.JdbcRowDataInputFormat.getInputSplitAssigner([Lorg.apache.flink.core.io.InputSplit;)> has parameter of type <[Lorg.apache.flink.core.io.InputSplit;> in (JdbcRowDataInputFormat.java:0)
+Method <org.apache.flink.connector.jdbc.table.JdbcRowDataLookupFunction.getDbConnection()> is annotated with <org.apache.flink.annotation.VisibleForTesting> in (JdbcRowDataLookupFunction.java:0)
+Method <org.apache.flink.connector.jdbc.utils.JdbcUtils.getConnectionProperties(org.apache.flink.configuration.ReadableConfig)> calls method <org.apache.flink.util.Preconditions.checkArgument(boolean)> in (JdbcUtils.java:49)
+Method <org.apache.flink.connector.jdbc.xa.JdbcXaSinkFunction.beginTx(long)> calls method <org.apache.flink.util.Preconditions.checkState(boolean, java.lang.Object)> in (JdbcXaSinkFunction.java:312)
+Method <org.apache.flink.connector.jdbc.xa.JdbcXaSinkFunction.invoke(java.lang.Object, org.apache.flink.streaming.api.functions.sink.SinkFunction$Context)> calls method <org.apache.flink.util.Preconditions.checkState(boolean, java.lang.Object)> in (JdbcXaSinkFunction.java:263)
+Method <org.apache.flink.connector.jdbc.xa.JdbcXaSinkFunction.prepareCurrentTx(long)> calls method <org.apache.flink.util.ExceptionUtils.rethrowIOException(java.lang.Throwable)> in (JdbcXaSinkFunction.java:305)
+Method <org.apache.flink.connector.jdbc.xa.JdbcXaSinkFunction.prepareCurrentTx(long)> calls method <org.apache.flink.util.Preconditions.checkState(boolean, java.lang.Object)> in (JdbcXaSinkFunction.java:290)
+Method <org.apache.flink.connector.jdbc.xa.JdbcXaSinkFunction.prepareCurrentTx(long)> calls method <org.apache.flink.util.Preconditions.checkState(boolean, java.lang.Object)> in (JdbcXaSinkFunction.java:291)
+Method <org.apache.flink.connector.jdbc.xa.XaFacadeImpl.execute(org.apache.flink.connector.jdbc.xa.XaFacadeImpl$Command)> calls method <org.apache.flink.util.Preconditions.checkState(boolean, java.lang.Object)> in (XaFacadeImpl.java:270)
+Method <org.apache.flink.connector.jdbc.xa.XaFacadeImpl.fromXaDataSource(javax.sql.XADataSource)> is annotated with <org.apache.flink.annotation.VisibleForTesting> in (XaFacadeImpl.java:0)
+Method <org.apache.flink.connector.jdbc.xa.XaFacadeImpl.getConnection()> calls method <org.apache.flink.util.Preconditions.checkNotNull(java.lang.Object)> in (XaFacadeImpl.java:137)
+Method <org.apache.flink.connector.jdbc.xa.XaFacadeImpl.open()> calls method <org.apache.flink.util.Preconditions.checkState(boolean)> in (XaFacadeImpl.java:110)
+Method <org.apache.flink.connector.jdbc.xa.XaFacadeImpl.open()> calls method <org.apache.flink.util.Preconditions.checkState(boolean, java.lang.Object)> in (XaFacadeImpl.java:96)
+Method <org.apache.flink.connector.jdbc.xa.XaFacadeImpl.recover()> calls method <org.apache.flink.util.Preconditions.checkState(boolean, java.lang.Object)> in (XaFacadeImpl.java:250)
+Method <org.apache.flink.connector.jdbc.xa.XaFacadePoolingImpl.endAndPrepare(javax.transaction.xa.Xid)> calls method <org.apache.flink.util.Preconditions.checkState(boolean)> in (XaFacadePoolingImpl.java:95)
+Method <org.apache.flink.connector.jdbc.xa.XaFacadePoolingImpl.open()> calls method <org.apache.flink.util.Preconditions.checkState(boolean)> in (XaFacadePoolingImpl.java:65)
+Method <org.apache.flink.connector.jdbc.xa.XaFacadePoolingImpl.peekPooled()> calls method <org.apache.flink.util.ExceptionUtils.rethrow(java.lang.Throwable)> in (XaFacadePoolingImpl.java:187)
+Method <org.apache.flink.connector.jdbc.xa.XaFacadePoolingImpl.start(javax.transaction.xa.Xid)> calls method <org.apache.flink.util.Preconditions.checkState(boolean)> in (XaFacadePoolingImpl.java:77)
\ No newline at end of file
diff --git a/flink-connector-jdbc/archunit-violations/4bca2274-65a9-4a61-81ef-767d58233ea0 b/flink-connector-jdbc-core/archunit-violations/4bca2274-65a9-4a61-81ef-767d58233ea0
similarity index 100%
rename from flink-connector-jdbc/archunit-violations/4bca2274-65a9-4a61-81ef-767d58233ea0
rename to flink-connector-jdbc-core/archunit-violations/4bca2274-65a9-4a61-81ef-767d58233ea0
diff --git a/flink-connector-jdbc/archunit-violations/596bd7eb-1ed5-4963-a56a-941766d61233 b/flink-connector-jdbc-core/archunit-violations/596bd7eb-1ed5-4963-a56a-941766d61233
similarity index 100%
rename from flink-connector-jdbc/archunit-violations/596bd7eb-1ed5-4963-a56a-941766d61233
rename to flink-connector-jdbc-core/archunit-violations/596bd7eb-1ed5-4963-a56a-941766d61233
diff --git a/flink-connector-jdbc/archunit-violations/6b9ab1b0-c14d-4667-bab5-407b81fba98b b/flink-connector-jdbc-core/archunit-violations/6b9ab1b0-c14d-4667-bab5-407b81fba98b
similarity index 100%
rename from flink-connector-jdbc/archunit-violations/6b9ab1b0-c14d-4667-bab5-407b81fba98b
rename to flink-connector-jdbc-core/archunit-violations/6b9ab1b0-c14d-4667-bab5-407b81fba98b
diff --git a/flink-connector-jdbc/archunit-violations/b10c194a-0517-4744-830f-81abfb71ab18 b/flink-connector-jdbc-core/archunit-violations/b10c194a-0517-4744-830f-81abfb71ab18
similarity index 100%
rename from flink-connector-jdbc/archunit-violations/b10c194a-0517-4744-830f-81abfb71ab18
rename to flink-connector-jdbc-core/archunit-violations/b10c194a-0517-4744-830f-81abfb71ab18
diff --git a/flink-connector-jdbc/archunit-violations/d45c3af5-52c6-45fd-9926-75e75e77473a b/flink-connector-jdbc-core/archunit-violations/d45c3af5-52c6-45fd-9926-75e75e77473a
similarity index 100%
rename from flink-connector-jdbc/archunit-violations/d45c3af5-52c6-45fd-9926-75e75e77473a
rename to flink-connector-jdbc-core/archunit-violations/d45c3af5-52c6-45fd-9926-75e75e77473a
diff --git a/flink-connector-jdbc/archunit-violations/f242ee43-a122-4d2f-a291-6439cdb9029f b/flink-connector-jdbc-core/archunit-violations/f242ee43-a122-4d2f-a291-6439cdb9029f
similarity index 100%
rename from flink-connector-jdbc/archunit-violations/f242ee43-a122-4d2f-a291-6439cdb9029f
rename to flink-connector-jdbc-core/archunit-violations/f242ee43-a122-4d2f-a291-6439cdb9029f
diff --git a/flink-connector-jdbc/archunit-violations/stored.rules b/flink-connector-jdbc-core/archunit-violations/stored.rules
similarity index 85%
rename from flink-connector-jdbc/archunit-violations/stored.rules
rename to flink-connector-jdbc-core/archunit-violations/stored.rules
index b471f5b0..1b7a0e39 100644
--- a/flink-connector-jdbc/archunit-violations/stored.rules
+++ b/flink-connector-jdbc-core/archunit-violations/stored.rules
@@ -1,10 +1,11 @@
 #
-#Wed Dec 14 13:38:22 CET 2022
-Return\ and\ argument\ types\ of\ methods\ annotated\ with\ @Public\ must\ be\ annotated\ with\ @Public.=596bd7eb-1ed5-4963-a56a-941766d61233
+#Sat May 18 04:39:49 CEST 2024
+Classes\ in\ API\ packages\ should\ have\ at\ least\ one\ API\ visibility\ annotation.=0c7b60d6-a12c-432d-8a72-747cabaeb7ed
+Connector\ production\ code\ must\ depend\ only\ on\ public\ API\ when\ outside\ of\ connector\ packages=2047daea-3713-4298-bdb3-e269f539363f
 Connector\ production\ code\ must\ not\ depend\ on\ non-public\ API\ outside\ of\ connector\ packages=f242ee43-a122-4d2f-a291-6439cdb9029f
 ITCASE\ tests\ should\ use\ a\ MiniCluster\ resource\ or\ extension=6b9ab1b0-c14d-4667-bab5-407b81fba98b
-Production\ code\ must\ not\ call\ methods\ annotated\ with\ @VisibleForTesting=4bca2274-65a9-4a61-81ef-767d58233ea0
-Tests\ inheriting\ from\ AbstractTestBase\ should\ have\ name\ ending\ with\ ITCase=0f94f11b-9bc8-445a-8be8-e7dfd8a384b0
 Options\ for\ connectors\ and\ formats\ should\ reside\ in\ a\ consistent\ package\ and\ be\ public\ API.=b10c194a-0517-4744-830f-81abfb71ab18
+Production\ code\ must\ not\ call\ methods\ annotated\ with\ @VisibleForTesting=4bca2274-65a9-4a61-81ef-767d58233ea0
+Return\ and\ argument\ types\ of\ methods\ annotated\ with\ @Public\ must\ be\ annotated\ with\ @Public.=596bd7eb-1ed5-4963-a56a-941766d61233
 Return\ and\ argument\ types\ of\ methods\ annotated\ with\ @PublicEvolving\ must\ be\ annotated\ with\ @Public(Evolving).=d45c3af5-52c6-45fd-9926-75e75e77473a
-Classes\ in\ API\ packages\ should\ have\ at\ least\ one\ API\ visibility\ annotation.=0c7b60d6-a12c-432d-8a72-747cabaeb7ed
+Tests\ inheriting\ from\ AbstractTestBase\ should\ have\ name\ ending\ with\ ITCase=0f94f11b-9bc8-445a-8be8-e7dfd8a384b0
diff --git a/flink-connector-jdbc-core/pom.xml b/flink-connector-jdbc-core/pom.xml
new file mode 100644
index 00000000..990582d8
--- /dev/null
+++ b/flink-connector-jdbc-core/pom.xml
@@ -0,0 +1,313 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.flink</groupId>
+        <artifactId>flink-connector-jdbc-parent</artifactId>
+        <version>3.2-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>flink-connector-jdbc-core</artifactId>
+    <name>Flink : Connectors : JDBC : Core</name>
+
+    <packaging>jar</packaging>
+
+    <properties>
+        <scala.binary.version>2.12</scala.binary.version>
+        <scala-library.version>2.12.7</scala-library.version>
+        <assertj.version>3.23.1</assertj.version>
+        <postgres.version>42.7.3</postgres.version>
+        <oracle.version>21.8.0.0</oracle.version>
+        <trino.version>418</trino.version>
+        <byte-buddy.version>1.12.10</byte-buddy.version>
+        <surefire.module.config> <!-- required by
+		Db2ExactlyOnceSinkE2eTest --> --add-opens=java.base/java.util=ALL-UNNAMED <!--
+		SimpleJdbcConnectionProviderDriverClassConcurrentLoadingITCase--> --add-opens=java.base/java.lang=ALL-UNNAMED
+        </surefire.module.config>
+    </properties>
+
+    <dependencies>
+
+        <!-- Connectors -->
+
+        <dependency>
+            <groupId>org.apache.flink</groupId>
+            <artifactId>flink-connector-base</artifactId>
+            <version>${flink.version}</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Table ecosystem -->
+
+        <!-- Projects depending on this project won't depend on flink-table-*. -->
+        <dependency>
+            <groupId>org.apache.flink</groupId>
+            <artifactId>flink-table-api-java-bridge</artifactId>
+            <version>${flink.version}</version>
+            <scope>provided</scope>
+            <optional>true</optional>
+        </dependency>
+
+        <!-- Postgres -->
+        <dependency>
+            <groupId>org.postgresql</groupId>
+            <artifactId>postgresql</artifactId>
+            <version>${postgres.version}</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Oracle -->
+        <dependency>
+            <groupId>com.oracle.database.jdbc</groupId>
+            <artifactId>ojdbc8</artifactId>
+            <version>${oracle.version}</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Trino -->
+        <dependency>
+            <groupId>io.trino</groupId>
+            <artifactId>trino-jdbc</artifactId>
+            <version>${trino.version}</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- SQL Server -->
+        <dependency>
+            <groupId>com.microsoft.sqlserver</groupId>
+            <artifactId>mssql-jdbc</artifactId>
+            <version>10.2.1.jre8</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- CrateDB -->
+        <dependency>
+            <groupId>io.crate</groupId>
+            <artifactId>crate-jdbc</artifactId>
+            <version>2.7.0</version>
+            <scope>provided</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>net.java.dev.jna</groupId>
+                    <artifactId>jna</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <!-- Db2 -->
+        <dependency>
+            <groupId>com.ibm.db2.jcc</groupId>
+            <artifactId>db2jcc</artifactId>
+            <version>db2jcc4</version>
+            <scope>provided</scope>
+        </dependency>
+
+        <!-- Tests -->
+
+        <dependency>
+            <groupId>org.apache.flink</groupId>
+            <artifactId>flink-test-utils</artifactId>
+            <version>${flink.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.flink</groupId>
+            <artifactId>flink-table-common</artifactId>
+            <version>${flink.version}</version>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.flink</groupId>
+            <artifactId>flink-streaming-java</artifactId>
+            <version>${flink.version}</version>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.flink</groupId>
+            <artifactId>flink-core</artifactId>
+            <version>${flink.version}</version>
+            <scope>test</scope>
+            <type>test-jar</type>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.flink</groupId>
+            <artifactId>flink-table-planner_${scala.binary.version}</artifactId>
+            <version>${flink.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.flink</groupId>
+            <artifactId>flink-table-planner_${scala.binary.version}</artifactId>
+            <version>${flink.version}</version>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.flink</groupId>
+            <artifactId>flink-table-api-scala-bridge_${scala.binary.version}</artifactId>
+            <version>${flink.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.flink</groupId>
+            <artifactId>flink-connector-base</artifactId>
+            <version>${flink.version}</version>
+            <scope>test</scope>
+            <type>test-jar</type>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.flink</groupId>
+            <artifactId>flink-connector-test-utils</artifactId>
+            <version>${flink.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- Assertions test dependencies -->
+
+        <dependency>
+            <groupId>org.assertj</groupId>
+            <artifactId>assertj-core</artifactId>
+            <version>${assertj.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- Postgres tests -->
+        <dependency>
+            <groupId>org.testcontainers</groupId>
+            <artifactId>postgresql</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- MySQL tests -->
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <version>8.0.29</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.testcontainers</groupId>
+            <artifactId>mysql</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- Derby tests -->
+        <dependency>
+            <groupId>org.apache.derby</groupId>
+            <artifactId>derby</artifactId>
+            <version>10.14.2.0</version>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- Oracle tests -->
+        <dependency>
+            <groupId>org.testcontainers</groupId>
+            <artifactId>oracle-xe</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- MS SQL test -->
+        <dependency>
+            <groupId>org.testcontainers</groupId>
+            <artifactId>mssqlserver</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- H2 tests -->
+        <dependency>
+            <groupId>com.h2database</groupId>
+            <artifactId>h2</artifactId>
+            <version>2.2.224</version>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- Db2 test -->
+        <dependency>
+            <groupId>org.testcontainers</groupId>
+            <artifactId>db2</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- Trino test -->
+        <dependency>
+            <groupId>org.testcontainers</groupId>
+            <artifactId>trino</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- OceanBase tests -->
+        <dependency>
+            <groupId>com.oceanbase</groupId>
+            <artifactId>oceanbase-client</artifactId>
+            <version>2.4.8</version>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- ArchUit test dependencies -->
+        <dependency>
+            <groupId>org.apache.flink</groupId>
+            <artifactId>flink-architecture-tests-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+    </dependencies>
+
+    <dependencyManagement>
+        <dependencies>
+            <!-- For dependency convergence -->
+            <dependency>
+                <groupId>org.scala-lang</groupId>
+                <artifactId>scala-library</artifactId>
+                <version>${scala-library.version}</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>test-jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/JdbcConnectionOptions.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/JdbcConnectionOptions.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/JdbcConnectionOptions.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/JdbcConnectionOptions.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/JdbcExactlyOnceOptions.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/JdbcExactlyOnceOptions.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/JdbcExactlyOnceOptions.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/JdbcExactlyOnceOptions.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/JdbcExecutionOptions.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/JdbcExecutionOptions.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/JdbcExecutionOptions.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/JdbcExecutionOptions.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/JdbcInputFormat.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/JdbcInputFormat.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/JdbcInputFormat.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/JdbcInputFormat.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/JdbcRowOutputFormat.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/JdbcRowOutputFormat.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/JdbcRowOutputFormat.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/JdbcRowOutputFormat.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/JdbcSink.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/JdbcSink.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/JdbcSink.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/JdbcSink.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/JdbcStatementBuilder.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/JdbcStatementBuilder.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/JdbcStatementBuilder.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/JdbcStatementBuilder.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/catalog/AbstractJdbcCatalog.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/catalog/AbstractJdbcCatalog.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/catalog/AbstractJdbcCatalog.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/catalog/AbstractJdbcCatalog.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/catalog/JdbcCatalog.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/catalog/JdbcCatalog.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/catalog/JdbcCatalog.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/catalog/JdbcCatalog.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/catalog/JdbcCatalogUtils.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/catalog/JdbcCatalogUtils.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/catalog/JdbcCatalogUtils.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/catalog/JdbcCatalogUtils.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/catalog/factory/JdbcCatalogFactory.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/catalog/factory/JdbcCatalogFactory.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/catalog/factory/JdbcCatalogFactory.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/catalog/factory/JdbcCatalogFactory.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/catalog/factory/JdbcCatalogFactoryOptions.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/catalog/factory/JdbcCatalogFactoryOptions.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/catalog/factory/JdbcCatalogFactoryOptions.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/catalog/factory/JdbcCatalogFactoryOptions.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/converter/AbstractJdbcRowConverter.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/converter/AbstractJdbcRowConverter.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/converter/AbstractJdbcRowConverter.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/converter/AbstractJdbcRowConverter.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/converter/AbstractPostgresCompatibleRowConverter.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/converter/AbstractPostgresCompatibleRowConverter.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/converter/AbstractPostgresCompatibleRowConverter.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/converter/AbstractPostgresCompatibleRowConverter.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/converter/JdbcRowConverter.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/converter/JdbcRowConverter.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/converter/JdbcRowConverter.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/converter/JdbcRowConverter.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBCatalog.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBCatalog.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBCatalog.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBCatalog.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBTablePath.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBTablePath.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBTablePath.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBTablePath.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBTypeMapper.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBTypeMapper.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBTypeMapper.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBTypeMapper.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/cratedb/dialect/CrateDBDialect.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/cratedb/dialect/CrateDBDialect.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/cratedb/dialect/CrateDBDialect.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/cratedb/dialect/CrateDBDialect.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/cratedb/dialect/CrateDBDialectFactory.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/cratedb/dialect/CrateDBDialectFactory.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/cratedb/dialect/CrateDBDialectFactory.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/cratedb/dialect/CrateDBDialectFactory.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/cratedb/dialect/CrateDBRowConverter.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/cratedb/dialect/CrateDBRowConverter.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/cratedb/dialect/CrateDBRowConverter.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/cratedb/dialect/CrateDBRowConverter.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/db2/dialect/Db2Dialect.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/db2/dialect/Db2Dialect.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/db2/dialect/Db2Dialect.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/db2/dialect/Db2Dialect.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/db2/dialect/Db2DialectFactory.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/db2/dialect/Db2DialectFactory.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/db2/dialect/Db2DialectFactory.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/db2/dialect/Db2DialectFactory.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/db2/dialect/Db2RowConverter.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/db2/dialect/Db2RowConverter.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/db2/dialect/Db2RowConverter.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/db2/dialect/Db2RowConverter.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/derby/dialect/DerbyDialect.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/derby/dialect/DerbyDialect.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/derby/dialect/DerbyDialect.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/derby/dialect/DerbyDialect.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/derby/dialect/DerbyDialectFactory.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/derby/dialect/DerbyDialectFactory.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/derby/dialect/DerbyDialectFactory.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/derby/dialect/DerbyDialectFactory.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/derby/dialect/DerbyRowConverter.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/derby/dialect/DerbyRowConverter.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/derby/dialect/DerbyRowConverter.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/derby/dialect/DerbyRowConverter.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/mysql/catalog/MySqlCatalog.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/mysql/catalog/MySqlCatalog.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/mysql/catalog/MySqlCatalog.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/mysql/catalog/MySqlCatalog.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/mysql/catalog/MySqlTypeMapper.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/mysql/catalog/MySqlTypeMapper.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/mysql/catalog/MySqlTypeMapper.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/mysql/catalog/MySqlTypeMapper.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/mysql/dialect/MySQLRowConverter.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/mysql/dialect/MySQLRowConverter.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/mysql/dialect/MySQLRowConverter.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/mysql/dialect/MySQLRowConverter.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/mysql/dialect/MySqlDialect.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/mysql/dialect/MySqlDialect.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/mysql/dialect/MySqlDialect.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/mysql/dialect/MySqlDialect.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/mysql/dialect/MySqlDialectFactory.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/mysql/dialect/MySqlDialectFactory.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/mysql/dialect/MySqlDialectFactory.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/mysql/dialect/MySqlDialectFactory.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/oceanbase/dialect/OceanBaseDialect.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/oceanbase/dialect/OceanBaseDialect.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/oceanbase/dialect/OceanBaseDialect.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/oceanbase/dialect/OceanBaseDialect.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/oceanbase/dialect/OceanBaseDialectFactory.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/oceanbase/dialect/OceanBaseDialectFactory.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/oceanbase/dialect/OceanBaseDialectFactory.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/oceanbase/dialect/OceanBaseDialectFactory.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/oceanbase/dialect/OceanBaseRowConverter.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/oceanbase/dialect/OceanBaseRowConverter.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/oceanbase/dialect/OceanBaseRowConverter.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/oceanbase/dialect/OceanBaseRowConverter.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/oracle/dialect/OracleDialect.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/oracle/dialect/OracleDialect.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/oracle/dialect/OracleDialect.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/oracle/dialect/OracleDialect.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/oracle/dialect/OracleDialectFactory.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/oracle/dialect/OracleDialectFactory.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/oracle/dialect/OracleDialectFactory.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/oracle/dialect/OracleDialectFactory.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/oracle/dialect/OracleRowConverter.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/oracle/dialect/OracleRowConverter.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/oracle/dialect/OracleRowConverter.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/oracle/dialect/OracleRowConverter.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresCatalog.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresCatalog.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresCatalog.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresCatalog.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresTablePath.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresTablePath.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresTablePath.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresTablePath.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresTypeMapper.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresTypeMapper.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresTypeMapper.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresTypeMapper.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/postgres/dialect/PostgresDialect.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/postgres/dialect/PostgresDialect.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/postgres/dialect/PostgresDialect.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/postgres/dialect/PostgresDialect.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/postgres/dialect/PostgresDialectFactory.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/postgres/dialect/PostgresDialectFactory.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/postgres/dialect/PostgresDialectFactory.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/postgres/dialect/PostgresDialectFactory.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/postgres/dialect/PostgresRowConverter.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/postgres/dialect/PostgresRowConverter.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/postgres/dialect/PostgresRowConverter.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/postgres/dialect/PostgresRowConverter.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/sqlserver/dialect/SqlServerDialect.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/sqlserver/dialect/SqlServerDialect.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/sqlserver/dialect/SqlServerDialect.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/sqlserver/dialect/SqlServerDialect.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/sqlserver/dialect/SqlServerDialectFactory.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/sqlserver/dialect/SqlServerDialectFactory.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/sqlserver/dialect/SqlServerDialectFactory.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/sqlserver/dialect/SqlServerDialectFactory.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/sqlserver/dialect/SqlServerRowConverter.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/sqlserver/dialect/SqlServerRowConverter.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/sqlserver/dialect/SqlServerRowConverter.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/sqlserver/dialect/SqlServerRowConverter.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/trino/dialect/TrinoDialect.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/trino/dialect/TrinoDialect.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/trino/dialect/TrinoDialect.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/trino/dialect/TrinoDialect.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/trino/dialect/TrinoDialectFactory.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/trino/dialect/TrinoDialectFactory.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/trino/dialect/TrinoDialectFactory.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/trino/dialect/TrinoDialectFactory.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/trino/dialect/TrinoRowConverter.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/trino/dialect/TrinoRowConverter.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/databases/trino/dialect/TrinoRowConverter.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/databases/trino/dialect/TrinoRowConverter.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/connections/JdbcConnectionProvider.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/connections/JdbcConnectionProvider.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/connections/JdbcConnectionProvider.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/connections/JdbcConnectionProvider.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/connections/SimpleJdbcConnectionProvider.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/connections/SimpleJdbcConnectionProvider.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/connections/SimpleJdbcConnectionProvider.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/connections/SimpleJdbcConnectionProvider.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/connections/xa/PoolingXaConnectionProvider.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/connections/xa/PoolingXaConnectionProvider.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/connections/xa/PoolingXaConnectionProvider.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/connections/xa/PoolingXaConnectionProvider.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/connections/xa/SimpleXaConnectionProvider.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/connections/xa/SimpleXaConnectionProvider.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/connections/xa/SimpleXaConnectionProvider.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/connections/xa/SimpleXaConnectionProvider.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/connections/xa/XaCommand.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/connections/xa/XaCommand.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/connections/xa/XaCommand.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/connections/xa/XaCommand.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/connections/xa/XaConnectionProvider.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/connections/xa/XaConnectionProvider.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/connections/xa/XaConnectionProvider.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/connections/xa/XaConnectionProvider.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/statements/JdbcQueryStatement.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/statements/JdbcQueryStatement.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/statements/JdbcQueryStatement.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/statements/JdbcQueryStatement.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/statements/SimpleJdbcQueryStatement.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/statements/SimpleJdbcQueryStatement.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/statements/SimpleJdbcQueryStatement.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/statements/SimpleJdbcQueryStatement.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/XaTransaction.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/XaTransaction.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/XaTransaction.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/XaTransaction.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/XaTransactionResult.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/XaTransactionResult.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/XaTransactionResult.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/XaTransactionResult.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/domain/TransactionId.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/domain/TransactionId.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/domain/TransactionId.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/domain/TransactionId.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/exceptions/EmptyTransactionXaException.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/exceptions/EmptyTransactionXaException.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/exceptions/EmptyTransactionXaException.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/exceptions/EmptyTransactionXaException.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/exceptions/TransientXaException.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/exceptions/TransientXaException.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/exceptions/TransientXaException.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/exceptions/TransientXaException.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/exceptions/XaError.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/exceptions/XaError.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/exceptions/XaError.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/exceptions/XaError.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/AbstractDialect.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/dialect/AbstractDialect.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/AbstractDialect.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/dialect/AbstractDialect.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/AbstractPostgresCompatibleDialect.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/dialect/AbstractPostgresCompatibleDialect.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/AbstractPostgresCompatibleDialect.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/dialect/AbstractPostgresCompatibleDialect.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/JdbcDialect.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/dialect/JdbcDialect.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/JdbcDialect.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/dialect/JdbcDialect.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/JdbcDialectFactory.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/dialect/JdbcDialectFactory.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/JdbcDialectFactory.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/dialect/JdbcDialectFactory.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/JdbcDialectLoader.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/dialect/JdbcDialectLoader.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/JdbcDialectLoader.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/dialect/JdbcDialectLoader.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/JdbcDialectTypeMapper.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/dialect/JdbcDialectTypeMapper.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/dialect/JdbcDialectTypeMapper.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/dialect/JdbcDialectTypeMapper.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/GenericJdbcSinkFunction.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/GenericJdbcSinkFunction.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/GenericJdbcSinkFunction.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/GenericJdbcSinkFunction.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/JdbcOutputFormat.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/JdbcOutputFormat.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/JdbcOutputFormat.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/JdbcOutputFormat.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/JdbcOutputSerializer.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/JdbcOutputSerializer.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/JdbcOutputSerializer.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/JdbcOutputSerializer.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/RowJdbcOutputFormat.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/RowJdbcOutputFormat.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/RowJdbcOutputFormat.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/RowJdbcOutputFormat.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/TableJdbcUpsertOutputFormat.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/TableJdbcUpsertOutputFormat.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/TableJdbcUpsertOutputFormat.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/TableJdbcUpsertOutputFormat.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/executor/InsertOrUpdateJdbcExecutor.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/executor/InsertOrUpdateJdbcExecutor.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/executor/InsertOrUpdateJdbcExecutor.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/executor/InsertOrUpdateJdbcExecutor.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/executor/JdbcBatchStatementExecutor.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/executor/JdbcBatchStatementExecutor.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/executor/JdbcBatchStatementExecutor.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/executor/JdbcBatchStatementExecutor.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/executor/KeyedBatchStatementExecutor.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/executor/KeyedBatchStatementExecutor.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/executor/KeyedBatchStatementExecutor.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/executor/KeyedBatchStatementExecutor.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/executor/SimpleBatchStatementExecutor.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/executor/SimpleBatchStatementExecutor.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/executor/SimpleBatchStatementExecutor.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/executor/SimpleBatchStatementExecutor.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/executor/TableBufferReducedStatementExecutor.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/executor/TableBufferReducedStatementExecutor.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/executor/TableBufferReducedStatementExecutor.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/executor/TableBufferReducedStatementExecutor.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/executor/TableBufferedStatementExecutor.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/executor/TableBufferedStatementExecutor.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/executor/TableBufferedStatementExecutor.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/executor/TableBufferedStatementExecutor.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/executor/TableInsertOrUpdateStatementExecutor.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/executor/TableInsertOrUpdateStatementExecutor.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/executor/TableInsertOrUpdateStatementExecutor.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/executor/TableInsertOrUpdateStatementExecutor.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/executor/TableSimpleStatementExecutor.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/executor/TableSimpleStatementExecutor.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/executor/TableSimpleStatementExecutor.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/executor/TableSimpleStatementExecutor.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/options/InternalJdbcConnectionOptions.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/options/InternalJdbcConnectionOptions.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/options/InternalJdbcConnectionOptions.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/options/InternalJdbcConnectionOptions.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/options/JdbcDmlOptions.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/options/JdbcDmlOptions.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/options/JdbcDmlOptions.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/options/JdbcDmlOptions.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/options/JdbcInsertOptions.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/options/JdbcInsertOptions.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/options/JdbcInsertOptions.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/options/JdbcInsertOptions.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/options/JdbcReadOptions.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/options/JdbcReadOptions.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/options/JdbcReadOptions.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/options/JdbcReadOptions.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/options/JdbcTypedQueryOptions.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/options/JdbcTypedQueryOptions.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/options/JdbcTypedQueryOptions.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/internal/options/JdbcTypedQueryOptions.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/sink/JdbcSink.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/sink/JdbcSink.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/sink/JdbcSink.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/sink/JdbcSink.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/sink/JdbcSinkBuilder.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/sink/JdbcSinkBuilder.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/sink/JdbcSinkBuilder.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/sink/JdbcSinkBuilder.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/sink/committer/JdbcCommitable.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/sink/committer/JdbcCommitable.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/sink/committer/JdbcCommitable.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/sink/committer/JdbcCommitable.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/sink/committer/JdbcCommitableSerializer.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/sink/committer/JdbcCommitableSerializer.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/sink/committer/JdbcCommitableSerializer.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/sink/committer/JdbcCommitableSerializer.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/sink/committer/JdbcCommitter.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/sink/committer/JdbcCommitter.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/sink/committer/JdbcCommitter.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/sink/committer/JdbcCommitter.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/sink/writer/JdbcWriter.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/sink/writer/JdbcWriter.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/sink/writer/JdbcWriter.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/sink/writer/JdbcWriter.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/sink/writer/JdbcWriterState.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/sink/writer/JdbcWriterState.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/sink/writer/JdbcWriterState.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/sink/writer/JdbcWriterState.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/sink/writer/JdbcWriterStateSerializer.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/sink/writer/JdbcWriterStateSerializer.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/sink/writer/JdbcWriterStateSerializer.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/sink/writer/JdbcWriterStateSerializer.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/JdbcSource.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/JdbcSource.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/JdbcSource.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/JdbcSource.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/JdbcSourceBuilder.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/JdbcSourceBuilder.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/JdbcSourceBuilder.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/JdbcSourceBuilder.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/JdbcSourceOptions.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/JdbcSourceOptions.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/JdbcSourceOptions.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/JdbcSourceOptions.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/enumerator/JdbcSourceEnumStateSerializer.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/enumerator/JdbcSourceEnumStateSerializer.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/enumerator/JdbcSourceEnumStateSerializer.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/enumerator/JdbcSourceEnumStateSerializer.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/enumerator/JdbcSourceEnumerator.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/enumerator/JdbcSourceEnumerator.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/enumerator/JdbcSourceEnumerator.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/enumerator/JdbcSourceEnumerator.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/enumerator/JdbcSourceEnumeratorState.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/enumerator/JdbcSourceEnumeratorState.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/enumerator/JdbcSourceEnumeratorState.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/enumerator/JdbcSourceEnumeratorState.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/enumerator/JdbcSqlSplitEnumeratorBase.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/enumerator/JdbcSqlSplitEnumeratorBase.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/enumerator/JdbcSqlSplitEnumeratorBase.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/enumerator/JdbcSqlSplitEnumeratorBase.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/enumerator/SqlTemplateSplitEnumerator.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/enumerator/SqlTemplateSplitEnumerator.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/enumerator/SqlTemplateSplitEnumerator.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/enumerator/SqlTemplateSplitEnumerator.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/reader/JdbcRecordEmitter.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/reader/JdbcRecordEmitter.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/reader/JdbcRecordEmitter.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/reader/JdbcRecordEmitter.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/reader/JdbcSourceReader.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/reader/JdbcSourceReader.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/reader/JdbcSourceReader.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/reader/JdbcSourceReader.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/reader/JdbcSourceSplitReader.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/reader/JdbcSourceSplitReader.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/reader/JdbcSourceSplitReader.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/reader/JdbcSourceSplitReader.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/reader/RecordAndOffset.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/reader/RecordAndOffset.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/reader/RecordAndOffset.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/reader/RecordAndOffset.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/reader/extractor/ResultExtractor.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/reader/extractor/ResultExtractor.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/reader/extractor/ResultExtractor.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/reader/extractor/ResultExtractor.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/reader/extractor/RowResultExtractor.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/reader/extractor/RowResultExtractor.java
similarity index 100%
copy from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/reader/extractor/RowResultExtractor.java
copy to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/reader/extractor/RowResultExtractor.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/split/CheckpointedOffset.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/split/CheckpointedOffset.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/split/CheckpointedOffset.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/split/CheckpointedOffset.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/split/JdbcSourceSplit.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/split/JdbcSourceSplit.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/split/JdbcSourceSplit.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/split/JdbcSourceSplit.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/split/JdbcSourceSplitSerializer.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/split/JdbcSourceSplitSerializer.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/split/JdbcSourceSplitSerializer.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/split/JdbcSourceSplitSerializer.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/split/JdbcSourceSplitState.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/split/JdbcSourceSplitState.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/split/JdbcSourceSplitState.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/source/split/JdbcSourceSplitState.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/split/CompositeJdbcParameterValuesProvider.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/split/CompositeJdbcParameterValuesProvider.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/split/CompositeJdbcParameterValuesProvider.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/split/CompositeJdbcParameterValuesProvider.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/split/JdbcGenericParameterValuesProvider.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/split/JdbcGenericParameterValuesProvider.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/split/JdbcGenericParameterValuesProvider.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/split/JdbcGenericParameterValuesProvider.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/split/JdbcNumericBetweenParametersProvider.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/split/JdbcNumericBetweenParametersProvider.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/split/JdbcNumericBetweenParametersProvider.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/split/JdbcNumericBetweenParametersProvider.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/split/JdbcParameterValuesProvider.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/split/JdbcParameterValuesProvider.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/split/JdbcParameterValuesProvider.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/split/JdbcParameterValuesProvider.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/split/JdbcSlideTimingParameterProvider.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/split/JdbcSlideTimingParameterProvider.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/split/JdbcSlideTimingParameterProvider.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/split/JdbcSlideTimingParameterProvider.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/statement/FieldNamedPreparedStatement.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/statement/FieldNamedPreparedStatement.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/statement/FieldNamedPreparedStatement.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/statement/FieldNamedPreparedStatement.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/statement/FieldNamedPreparedStatementImpl.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/statement/FieldNamedPreparedStatementImpl.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/statement/FieldNamedPreparedStatementImpl.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/statement/FieldNamedPreparedStatementImpl.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/statement/StatementFactory.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/statement/StatementFactory.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/statement/StatementFactory.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/statement/StatementFactory.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/JdbcConnectorOptions.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/table/JdbcConnectorOptions.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/JdbcConnectorOptions.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/table/JdbcConnectorOptions.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableFactory.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableFactory.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableFactory.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableFactory.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableSink.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableSink.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableSink.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableSink.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableSource.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableSource.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableSource.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableSource.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/JdbcFilterPushdownPreparedStatementVisitor.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/table/JdbcFilterPushdownPreparedStatementVisitor.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/JdbcFilterPushdownPreparedStatementVisitor.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/table/JdbcFilterPushdownPreparedStatementVisitor.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/JdbcOutputFormatBuilder.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/table/JdbcOutputFormatBuilder.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/JdbcOutputFormatBuilder.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/table/JdbcOutputFormatBuilder.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/JdbcRowDataInputFormat.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/table/JdbcRowDataInputFormat.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/JdbcRowDataInputFormat.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/table/JdbcRowDataInputFormat.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/JdbcRowDataLookupFunction.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/table/JdbcRowDataLookupFunction.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/JdbcRowDataLookupFunction.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/table/JdbcRowDataLookupFunction.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/ParameterizedPredicate.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/table/ParameterizedPredicate.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/table/ParameterizedPredicate.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/table/ParameterizedPredicate.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/reader/extractor/RowResultExtractor.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/table/RowDataResultExtractor.java
similarity index 57%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/reader/extractor/RowResultExtractor.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/table/RowDataResultExtractor.java
index 6b0d414e..6a191f5a 100644
--- a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/source/reader/extractor/RowResultExtractor.java
+++ b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/table/RowDataResultExtractor.java
@@ -16,24 +16,27 @@
  * limitations under the License.
  */
 
-package org.apache.flink.connector.jdbc.source.reader.extractor;
+package org.apache.flink.connector.jdbc.table;
 
-import org.apache.flink.types.Row;
+import org.apache.flink.connector.jdbc.converter.JdbcRowConverter;
+import org.apache.flink.connector.jdbc.source.reader.extractor.ResultExtractor;
+import org.apache.flink.table.data.RowData;
 import org.apache.flink.util.Preconditions;
 
 import java.sql.ResultSet;
 import java.sql.SQLException;
 
-/** The extractor is used to extract the data from {@link ResultSet} into a {@link Row} object. */
-public class RowResultExtractor implements ResultExtractor<Row> {
+/** The result extractor for {@link RowData}. */
+public class RowDataResultExtractor implements ResultExtractor<RowData> {
+
+    private final JdbcRowConverter jdbcRowConverter;
+
+    public RowDataResultExtractor(JdbcRowConverter jdbcRowConverter) {
+        this.jdbcRowConverter = Preconditions.checkNotNull(jdbcRowConverter);
+    }
+
     @Override
-    public Row extract(ResultSet resultSet) throws SQLException {
-        int arity = resultSet.getMetaData().getColumnCount();
-        Row row = new Row(arity);
-        Preconditions.checkArgument(!resultSet.isClosed());
-        for (int index = 0; index < row.getArity(); index++) {
-            row.setField(index, resultSet.getObject(index + 1));
-        }
-        return row;
+    public RowData extract(ResultSet resultSet) throws SQLException {
+        return jdbcRowConverter.toInternal(resultSet);
     }
 }
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/utils/ContinuousUnBoundingSettings.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/utils/ContinuousUnBoundingSettings.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/utils/ContinuousUnBoundingSettings.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/utils/ContinuousUnBoundingSettings.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/utils/JdbcTypeUtil.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/utils/JdbcTypeUtil.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/utils/JdbcTypeUtil.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/utils/JdbcTypeUtil.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/utils/JdbcUtils.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/utils/JdbcUtils.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/utils/JdbcUtils.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/utils/JdbcUtils.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/CheckpointAndXid.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/CheckpointAndXid.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/CheckpointAndXid.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/CheckpointAndXid.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/CheckpointAndXidSerializer.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/CheckpointAndXidSerializer.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/CheckpointAndXidSerializer.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/CheckpointAndXidSerializer.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkFunction.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkFunction.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkFunction.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkFunction.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkFunctionState.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkFunctionState.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkFunctionState.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkFunctionState.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/JobSubtask.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/JobSubtask.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/JobSubtask.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/JobSubtask.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/SemanticXidGenerator.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/SemanticXidGenerator.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/SemanticXidGenerator.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/SemanticXidGenerator.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XaFacade.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/XaFacade.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XaFacade.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/XaFacade.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XaFacadeImpl.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/XaFacadeImpl.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XaFacadeImpl.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/XaFacadeImpl.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XaFacadePoolingImpl.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/XaFacadePoolingImpl.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XaFacadePoolingImpl.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/XaFacadePoolingImpl.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XaGroupOps.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/XaGroupOps.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XaGroupOps.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/XaGroupOps.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XaGroupOpsImpl.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/XaGroupOpsImpl.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XaGroupOpsImpl.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/XaGroupOpsImpl.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XaSinkStateHandler.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/XaSinkStateHandler.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XaSinkStateHandler.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/XaSinkStateHandler.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XaSinkStateHandlerImpl.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/XaSinkStateHandlerImpl.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XaSinkStateHandlerImpl.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/XaSinkStateHandlerImpl.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XaSinkStateSerializer.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/XaSinkStateSerializer.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XaSinkStateSerializer.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/XaSinkStateSerializer.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XidGenerator.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/XidGenerator.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XidGenerator.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/XidGenerator.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XidImpl.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/XidImpl.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XidImpl.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/XidImpl.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XidSerializer.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/XidSerializer.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/XidSerializer.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/XidSerializer.java
diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/package-info.java b/flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/package-info.java
similarity index 100%
rename from flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/xa/package-info.java
rename to flink-connector-jdbc-core/src/main/java/org/apache/flink/connector/jdbc/xa/package-info.java
diff --git a/flink-connector-jdbc/src/main/resources/META-INF/services/org.apache.flink.connector.jdbc.dialect.JdbcDialectFactory b/flink-connector-jdbc-core/src/main/resources/META-INF/services/org.apache.flink.connector.jdbc.dialect.JdbcDialectFactory
similarity index 100%
rename from flink-connector-jdbc/src/main/resources/META-INF/services/org.apache.flink.connector.jdbc.dialect.JdbcDialectFactory
rename to flink-connector-jdbc-core/src/main/resources/META-INF/services/org.apache.flink.connector.jdbc.dialect.JdbcDialectFactory
diff --git a/flink-connector-jdbc/src/main/resources/META-INF/services/org.apache.flink.table.factories.Factory b/flink-connector-jdbc-core/src/main/resources/META-INF/services/org.apache.flink.table.factories.Factory
similarity index 100%
rename from flink-connector-jdbc/src/main/resources/META-INF/services/org.apache.flink.table.factories.Factory
rename to flink-connector-jdbc-core/src/main/resources/META-INF/services/org.apache.flink.table.factories.Factory
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/architecture/ProductionCodeArchitectureTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/architecture/ProductionCodeArchitectureTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/architecture/ProductionCodeArchitectureTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/architecture/ProductionCodeArchitectureTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/architecture/TestCodeArchitectureTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/architecture/TestCodeArchitectureTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/architecture/TestCodeArchitectureTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/architecture/TestCodeArchitectureTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/base/source/reader/splitreader/TestingSplitsChange.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/base/source/reader/splitreader/TestingSplitsChange.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/base/source/reader/splitreader/TestingSplitsChange.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/base/source/reader/splitreader/TestingSplitsChange.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/JdbcConnectionOptionsTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/JdbcConnectionOptionsTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/JdbcConnectionOptionsTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/JdbcConnectionOptionsTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/JdbcDataTestBase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/JdbcDataTestBase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/JdbcDataTestBase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/JdbcDataTestBase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/JdbcITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/JdbcITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/JdbcITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/JdbcITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/JdbcInputFormatTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/JdbcInputFormatTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/JdbcInputFormatTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/JdbcInputFormatTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/JdbcRowOutputFormatTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/JdbcRowOutputFormatTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/JdbcRowOutputFormatTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/JdbcRowOutputFormatTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/JdbcTestBase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/JdbcTestBase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/JdbcTestBase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/JdbcTestBase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/JdbcTestCheckpoint.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/JdbcTestCheckpoint.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/JdbcTestCheckpoint.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/JdbcTestCheckpoint.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/JdbcTestFixture.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/JdbcTestFixture.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/JdbcTestFixture.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/JdbcTestFixture.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/catalog/JdbcCatalogUtilsTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/catalog/JdbcCatalogUtilsTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/catalog/JdbcCatalogUtilsTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/catalog/JdbcCatalogUtilsTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/converter/AbstractJdbcRowConverterTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/converter/AbstractJdbcRowConverterTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/converter/AbstractJdbcRowConverterTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/converter/AbstractJdbcRowConverterTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBCatalogITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBCatalogITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBCatalogITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBCatalogITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBCatalogTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBCatalogTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBCatalogTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBCatalogTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBCatalogTestBase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBCatalogTestBase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBCatalogTestBase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBCatalogTestBase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBTablePathTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBTablePathTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBTablePathTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBTablePathTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBTestBase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBTestBase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBTestBase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/cratedb/catalog/CrateDBTestBase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/cratedb/dialect/CrateDBDialectTypeTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/cratedb/dialect/CrateDBDialectTypeTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/cratedb/dialect/CrateDBDialectTypeTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/cratedb/dialect/CrateDBDialectTypeTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/db2/Db2TestBase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/db2/Db2TestBase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/db2/Db2TestBase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/db2/Db2TestBase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/db2/dialect/Db2DialectTypeTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/db2/dialect/Db2DialectTypeTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/db2/dialect/Db2DialectTypeTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/db2/dialect/Db2DialectTypeTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/db2/dialect/Db2PreparedStatementTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/db2/dialect/Db2PreparedStatementTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/db2/dialect/Db2PreparedStatementTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/db2/dialect/Db2PreparedStatementTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/db2/table/Db2DynamicTableSinkITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/db2/table/Db2DynamicTableSinkITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/db2/table/Db2DynamicTableSinkITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/db2/table/Db2DynamicTableSinkITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/db2/table/Db2DynamicTableSourceITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/db2/table/Db2DynamicTableSourceITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/db2/table/Db2DynamicTableSourceITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/db2/table/Db2DynamicTableSourceITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/db2/xa/Db2ExactlyOnceSinkE2eTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/db2/xa/Db2ExactlyOnceSinkE2eTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/db2/xa/Db2ExactlyOnceSinkE2eTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/db2/xa/Db2ExactlyOnceSinkE2eTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/derby/DerbyTestBase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/derby/DerbyTestBase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/derby/DerbyTestBase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/derby/DerbyTestBase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/derby/table/DerbyDynamicTableSinkITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/derby/table/DerbyDynamicTableSinkITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/derby/table/DerbyDynamicTableSinkITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/derby/table/DerbyDynamicTableSinkITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/derby/table/DerbyDynamicTableSourceITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/derby/table/DerbyDynamicTableSourceITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/derby/table/DerbyDynamicTableSourceITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/derby/table/DerbyDynamicTableSourceITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/derby/xa/DerbyExactlyOnceSinkE2eTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/derby/xa/DerbyExactlyOnceSinkE2eTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/derby/xa/DerbyExactlyOnceSinkE2eTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/derby/xa/DerbyExactlyOnceSinkE2eTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/h2/H2XaTestBase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/h2/H2XaTestBase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/h2/H2XaTestBase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/h2/H2XaTestBase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/MySqlTestBase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/MySqlTestBase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/MySqlTestBase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/MySqlTestBase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/catalog/MySql56CatalogITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/catalog/MySql56CatalogITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/catalog/MySql56CatalogITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/catalog/MySql56CatalogITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/catalog/MySql57CatalogITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/catalog/MySql57CatalogITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/catalog/MySql57CatalogITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/catalog/MySql57CatalogITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/catalog/MySqlCatalogITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/catalog/MySqlCatalogITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/catalog/MySqlCatalogITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/catalog/MySqlCatalogITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/catalog/MySqlCatalogTestBase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/catalog/MySqlCatalogTestBase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/catalog/MySqlCatalogTestBase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/catalog/MySqlCatalogTestBase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/dialect/MySqlDialectTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/dialect/MySqlDialectTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/dialect/MySqlDialectTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/dialect/MySqlDialectTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/dialect/MySqlDialectTypeTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/dialect/MySqlDialectTypeTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/dialect/MySqlDialectTypeTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/dialect/MySqlDialectTypeTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/table/MySqlDynamicTableSinkITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/table/MySqlDynamicTableSinkITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/table/MySqlDynamicTableSinkITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/table/MySqlDynamicTableSinkITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/table/MySqlDynamicTableSourceITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/table/MySqlDynamicTableSourceITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/table/MySqlDynamicTableSourceITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/table/MySqlDynamicTableSourceITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/table/UnsignedTypeConversionITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/table/UnsignedTypeConversionITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/table/UnsignedTypeConversionITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/table/UnsignedTypeConversionITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/xa/MySqlExactlyOnceSinkE2eTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/xa/MySqlExactlyOnceSinkE2eTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/xa/MySqlExactlyOnceSinkE2eTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/mysql/xa/MySqlExactlyOnceSinkE2eTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/OceanBaseMysqlTestBase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/OceanBaseMysqlTestBase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/OceanBaseMysqlTestBase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/OceanBaseMysqlTestBase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/OceanBaseOracleTestBase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/OceanBaseOracleTestBase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/OceanBaseOracleTestBase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/OceanBaseOracleTestBase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/dialect/OceanBaseDialectTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/dialect/OceanBaseDialectTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/dialect/OceanBaseDialectTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/dialect/OceanBaseDialectTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/dialect/OceanBaseMysqlDialectTypeTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/dialect/OceanBaseMysqlDialectTypeTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/dialect/OceanBaseMysqlDialectTypeTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/dialect/OceanBaseMysqlDialectTypeTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/dialect/OceanBaseOracleDialectTypeTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/dialect/OceanBaseOracleDialectTypeTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/dialect/OceanBaseOracleDialectTypeTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/dialect/OceanBaseOracleDialectTypeTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/table/OceanBaseMySqlDynamicTableSinkITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/table/OceanBaseMySqlDynamicTableSinkITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/table/OceanBaseMySqlDynamicTableSinkITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/table/OceanBaseMySqlDynamicTableSinkITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/table/OceanBaseMySqlDynamicTableSourceITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/table/OceanBaseMySqlDynamicTableSourceITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/table/OceanBaseMySqlDynamicTableSourceITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/table/OceanBaseMySqlDynamicTableSourceITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/table/OceanBaseOracleDynamicTableSinkITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/table/OceanBaseOracleDynamicTableSinkITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/table/OceanBaseOracleDynamicTableSinkITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/table/OceanBaseOracleDynamicTableSinkITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/table/OceanBaseOracleDynamicTableSourceITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/table/OceanBaseOracleDynamicTableSourceITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/table/OceanBaseOracleDynamicTableSourceITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/table/OceanBaseOracleDynamicTableSourceITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/table/OceanBaseTableRow.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/table/OceanBaseTableRow.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/table/OceanBaseTableRow.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oceanbase/table/OceanBaseTableRow.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/OracleTestBase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/OracleTestBase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/OracleTestBase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/OracleTestBase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/dialect/OracleDialectTypeTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/dialect/OracleDialectTypeTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/dialect/OracleDialectTypeTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/dialect/OracleDialectTypeTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/dialect/OraclePreparedStatementTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/dialect/OraclePreparedStatementTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/dialect/OraclePreparedStatementTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/dialect/OraclePreparedStatementTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/table/OracleDynamicTableSinkITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/table/OracleDynamicTableSinkITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/table/OracleDynamicTableSinkITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/table/OracleDynamicTableSinkITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/table/OracleDynamicTableSourceITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/table/OracleDynamicTableSourceITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/table/OracleDynamicTableSourceITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/table/OracleDynamicTableSourceITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/table/OracleTableSourceITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/table/OracleTableSourceITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/table/OracleTableSourceITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/table/OracleTableSourceITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/xa/OracleExactlyOnceSinkE2eTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/xa/OracleExactlyOnceSinkE2eTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/xa/OracleExactlyOnceSinkE2eTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/oracle/xa/OracleExactlyOnceSinkE2eTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/PostgresTestBase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/PostgresTestBase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/PostgresTestBase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/PostgresTestBase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresCatalogITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresCatalogITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresCatalogITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresCatalogITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresCatalogTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresCatalogTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresCatalogTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresCatalogTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresCatalogTestBase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresCatalogTestBase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresCatalogTestBase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresCatalogTestBase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresTablePathTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresTablePathTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresTablePathTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/PostgresTablePathTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/factory/JdbcCatalogFactoryTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/factory/JdbcCatalogFactoryTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/factory/JdbcCatalogFactoryTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/catalog/factory/JdbcCatalogFactoryTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/dialect/PostgresDialectTypeTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/dialect/PostgresDialectTypeTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/dialect/PostgresDialectTypeTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/dialect/PostgresDialectTypeTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/table/PostgresDynamicTableSinkITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/table/PostgresDynamicTableSinkITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/table/PostgresDynamicTableSinkITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/table/PostgresDynamicTableSinkITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/table/PostgresDynamicTableSourceITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/table/PostgresDynamicTableSourceITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/table/PostgresDynamicTableSourceITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/table/PostgresDynamicTableSourceITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/xa/PostgresExactlyOnceSinkE2eTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/xa/PostgresExactlyOnceSinkE2eTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/xa/PostgresExactlyOnceSinkE2eTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/postgres/xa/PostgresExactlyOnceSinkE2eTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/sqlserver/SqlServerTestBase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/sqlserver/SqlServerTestBase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/sqlserver/SqlServerTestBase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/sqlserver/SqlServerTestBase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/sqlserver/dialect/SqlServerPreparedStatementTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/sqlserver/dialect/SqlServerPreparedStatementTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/sqlserver/dialect/SqlServerPreparedStatementTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/sqlserver/dialect/SqlServerPreparedStatementTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/sqlserver/table/SqlServerDynamicTableSinkITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/sqlserver/table/SqlServerDynamicTableSinkITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/sqlserver/table/SqlServerDynamicTableSinkITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/sqlserver/table/SqlServerDynamicTableSinkITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/sqlserver/table/SqlServerDynamicTableSourceITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/sqlserver/table/SqlServerDynamicTableSourceITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/sqlserver/table/SqlServerDynamicTableSourceITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/sqlserver/table/SqlServerDynamicTableSourceITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/sqlserver/table/SqlServerTableSourceITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/sqlserver/table/SqlServerTableSourceITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/sqlserver/table/SqlServerTableSourceITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/sqlserver/table/SqlServerTableSourceITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/sqlserver/xa/SqlServerExactlyOnceSinkE2eTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/sqlserver/xa/SqlServerExactlyOnceSinkE2eTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/sqlserver/xa/SqlServerExactlyOnceSinkE2eTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/sqlserver/xa/SqlServerExactlyOnceSinkE2eTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/trino/TrinoTestBase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/trino/TrinoTestBase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/trino/TrinoTestBase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/trino/TrinoTestBase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/trino/dialect/TrinoDialectTypeTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/trino/dialect/TrinoDialectTypeTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/trino/dialect/TrinoDialectTypeTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/trino/dialect/TrinoDialectTypeTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/trino/dialect/TrinoPreparedStatementTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/trino/dialect/TrinoPreparedStatementTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/trino/dialect/TrinoPreparedStatementTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/trino/dialect/TrinoPreparedStatementTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/trino/table/TrinoDynamicTableSinkITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/trino/table/TrinoDynamicTableSinkITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/trino/table/TrinoDynamicTableSinkITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/trino/table/TrinoDynamicTableSinkITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/trino/table/TrinoDynamicTableSourceITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/trino/table/TrinoDynamicTableSourceITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/databases/trino/table/TrinoDynamicTableSourceITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/databases/trino/table/TrinoDynamicTableSourceITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/datasource/connections/xa/SimpleXaConnectionProviderTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/datasource/connections/xa/SimpleXaConnectionProviderTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/datasource/connections/xa/SimpleXaConnectionProviderTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/datasource/connections/xa/SimpleXaConnectionProviderTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/datasource/connections/xa/TransactionIdConnectionTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/datasource/connections/xa/TransactionIdConnectionTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/datasource/connections/xa/TransactionIdConnectionTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/datasource/connections/xa/TransactionIdConnectionTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/domain/TransactionIdTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/domain/TransactionIdTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/domain/TransactionIdTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/datasource/transactions/xa/domain/TransactionIdTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/dialect/JdbcDialectTypeTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/dialect/JdbcDialectTypeTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/dialect/JdbcDialectTypeTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/dialect/JdbcDialectTypeTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/fakedb/FakeDBUtils.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/fakedb/FakeDBUtils.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/fakedb/FakeDBUtils.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/fakedb/FakeDBUtils.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeConnection.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeConnection.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeConnection.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeConnection.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeConnection1.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeConnection1.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeConnection1.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeConnection1.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeConnection2.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeConnection2.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeConnection2.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeConnection2.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeConnection3.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeConnection3.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeConnection3.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeConnection3.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeDriver1.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeDriver1.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeDriver1.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeDriver1.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeDriver2.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeDriver2.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeDriver2.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeDriver2.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeDriver3.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeDriver3.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeDriver3.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/fakedb/driver/FakeDriver3.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/internal/JdbcFullTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/internal/JdbcFullTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/internal/JdbcFullTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/internal/JdbcFullTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/internal/JdbcOutputSerializerTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/internal/JdbcOutputSerializerTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/internal/JdbcOutputSerializerTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/internal/JdbcOutputSerializerTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/internal/JdbcTableOutputFormatTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/internal/JdbcTableOutputFormatTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/internal/JdbcTableOutputFormatTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/internal/JdbcTableOutputFormatTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/internal/connection/SimpleJdbcConnectionProviderDriverClassConcurrentLoadingITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/internal/connection/SimpleJdbcConnectionProviderDriverClassConcurrentLoadingITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/internal/connection/SimpleJdbcConnectionProviderDriverClassConcurrentLoadingITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/internal/connection/SimpleJdbcConnectionProviderDriverClassConcurrentLoadingITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/internal/connection/SimpleJdbcConnectionProviderTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/internal/connection/SimpleJdbcConnectionProviderTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/internal/connection/SimpleJdbcConnectionProviderTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/internal/connection/SimpleJdbcConnectionProviderTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/sink/AtLeastOnceJdbcSinkTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/sink/AtLeastOnceJdbcSinkTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/sink/AtLeastOnceJdbcSinkTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/sink/AtLeastOnceJdbcSinkTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/sink/BaseJdbcSinkTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/sink/BaseJdbcSinkTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/sink/BaseJdbcSinkTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/sink/BaseJdbcSinkTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/sink/ExactlyOnceJdbcSinkTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/sink/ExactlyOnceJdbcSinkTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/sink/ExactlyOnceJdbcSinkTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/sink/ExactlyOnceJdbcSinkTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/sink/writer/AlLeastOnceJdbcWriterTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/sink/writer/AlLeastOnceJdbcWriterTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/sink/writer/AlLeastOnceJdbcWriterTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/sink/writer/AlLeastOnceJdbcWriterTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/sink/writer/BaseJdbcWriterTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/sink/writer/BaseJdbcWriterTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/sink/writer/BaseJdbcWriterTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/sink/writer/BaseJdbcWriterTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/sink/writer/ExactlyOnceJdbcWriterTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/sink/writer/ExactlyOnceJdbcWriterTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/sink/writer/ExactlyOnceJdbcWriterTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/sink/writer/ExactlyOnceJdbcWriterTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/sink/writer/JdbcWriterStateSerializerTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/sink/writer/JdbcWriterStateSerializerTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/sink/writer/JdbcWriterStateSerializerTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/sink/writer/JdbcWriterStateSerializerTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/sink/writer/JdbcWriterStateTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/sink/writer/JdbcWriterStateTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/sink/writer/JdbcWriterStateTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/sink/writer/JdbcWriterStateTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/source/JdbcSourceBuilderTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/source/JdbcSourceBuilderTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/source/JdbcSourceBuilderTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/source/JdbcSourceBuilderTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/source/JdbcSourceITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/source/JdbcSourceITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/source/JdbcSourceITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/source/JdbcSourceITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/source/JdbcSourceStreamRelatedITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/source/JdbcSourceStreamRelatedITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/source/JdbcSourceStreamRelatedITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/source/JdbcSourceStreamRelatedITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/source/enumerator/JdbcSourceEnumStateSerializerTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/source/enumerator/JdbcSourceEnumStateSerializerTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/source/enumerator/JdbcSourceEnumStateSerializerTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/source/enumerator/JdbcSourceEnumStateSerializerTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/source/enumerator/JdbcSourceEnumeratorTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/source/enumerator/JdbcSourceEnumeratorTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/source/enumerator/JdbcSourceEnumeratorTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/source/enumerator/JdbcSourceEnumeratorTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/source/reader/JdbcSourceReaderTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/source/reader/JdbcSourceReaderTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/source/reader/JdbcSourceReaderTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/source/reader/JdbcSourceReaderTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/source/reader/JdbcSourceSplitReaderTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/source/reader/JdbcSourceSplitReaderTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/source/reader/JdbcSourceSplitReaderTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/source/reader/JdbcSourceSplitReaderTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/source/split/JdbcSourceSplitSerializerTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/source/split/JdbcSourceSplitSerializerTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/source/split/JdbcSourceSplitSerializerTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/source/split/JdbcSourceSplitSerializerTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/split/NumericBetweenParametersProviderTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/split/NumericBetweenParametersProviderTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/split/NumericBetweenParametersProviderTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/split/NumericBetweenParametersProviderTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/statement/FieldNamedPreparedStatementImplTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/statement/FieldNamedPreparedStatementImplTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/statement/FieldNamedPreparedStatementImplTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/statement/FieldNamedPreparedStatementImplTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcAppendOnlyWriterTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/table/JdbcAppendOnlyWriterTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcAppendOnlyWriterTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/table/JdbcAppendOnlyWriterTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableFactoryTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableFactoryTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableFactoryTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableFactoryTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableSinkITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableSinkITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableSinkITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableSinkITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableSourceITCase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableSourceITCase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableSourceITCase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/table/JdbcDynamicTableSourceITCase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcFilterPushdownPreparedStatementVisitorTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/table/JdbcFilterPushdownPreparedStatementVisitorTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcFilterPushdownPreparedStatementVisitorTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/table/JdbcFilterPushdownPreparedStatementVisitorTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcLookupTestBase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/table/JdbcLookupTestBase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcLookupTestBase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/table/JdbcLookupTestBase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcOutputFormatTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/table/JdbcOutputFormatTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcOutputFormatTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/table/JdbcOutputFormatTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcRowDataInputFormatTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/table/JdbcRowDataInputFormatTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcRowDataInputFormatTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/table/JdbcRowDataInputFormatTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcRowDataLookupFunctionTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/table/JdbcRowDataLookupFunctionTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcRowDataLookupFunctionTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/table/JdbcRowDataLookupFunctionTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcTablePlanTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/table/JdbcTablePlanTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/table/JdbcTablePlanTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/table/JdbcTablePlanTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/DatabaseExtension.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/DatabaseExtension.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/DatabaseExtension.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/DatabaseExtension.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/DatabaseMetadata.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/DatabaseMetadata.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/DatabaseMetadata.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/DatabaseMetadata.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/DatabaseTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/DatabaseTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/DatabaseTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/DatabaseTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/JdbcITCaseBase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/JdbcITCaseBase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/JdbcITCaseBase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/JdbcITCaseBase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/TableManaged.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/TableManaged.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/TableManaged.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/TableManaged.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/cratedb/CrateDBDatabase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/cratedb/CrateDBDatabase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/cratedb/CrateDBDatabase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/cratedb/CrateDBDatabase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/cratedb/CrateDBMetadata.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/cratedb/CrateDBMetadata.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/cratedb/CrateDBMetadata.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/cratedb/CrateDBMetadata.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/db2/Db2Database.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/db2/Db2Database.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/db2/Db2Database.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/db2/Db2Database.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/db2/Db2Metadata.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/db2/Db2Metadata.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/db2/Db2Metadata.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/db2/Db2Metadata.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/derby/DerbyDatabase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/derby/DerbyDatabase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/derby/DerbyDatabase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/derby/DerbyDatabase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/derby/DerbyMetadata.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/derby/DerbyMetadata.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/derby/DerbyMetadata.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/derby/DerbyMetadata.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/h2/H2Metadata.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/h2/H2Metadata.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/h2/H2Metadata.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/h2/H2Metadata.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/h2/H2XaDatabase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/h2/H2XaDatabase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/h2/H2XaDatabase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/h2/H2XaDatabase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/h2/xa/H2XaConnectionWrapper.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/h2/xa/H2XaConnectionWrapper.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/h2/xa/H2XaConnectionWrapper.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/h2/xa/H2XaConnectionWrapper.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/h2/xa/H2XaDsWrapper.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/h2/xa/H2XaDsWrapper.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/h2/xa/H2XaDsWrapper.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/h2/xa/H2XaDsWrapper.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/h2/xa/H2XaResourceWrapper.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/h2/xa/H2XaResourceWrapper.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/h2/xa/H2XaResourceWrapper.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/h2/xa/H2XaResourceWrapper.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/h2/xa/package-info.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/h2/xa/package-info.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/h2/xa/package-info.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/h2/xa/package-info.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/mysql/MySql56Database.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/mysql/MySql56Database.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/mysql/MySql56Database.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/mysql/MySql56Database.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/mysql/MySql57Database.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/mysql/MySql57Database.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/mysql/MySql57Database.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/mysql/MySql57Database.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/mysql/MySqlContainer.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/mysql/MySqlContainer.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/mysql/MySqlContainer.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/mysql/MySqlContainer.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/mysql/MySqlDatabase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/mysql/MySqlDatabase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/mysql/MySqlDatabase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/mysql/MySqlDatabase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/mysql/MySqlImages.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/mysql/MySqlImages.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/mysql/MySqlImages.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/mysql/MySqlImages.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/mysql/MySqlMetadata.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/mysql/MySqlMetadata.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/mysql/MySqlMetadata.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/mysql/MySqlMetadata.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oceanbase/OceanBaseContainer.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oceanbase/OceanBaseContainer.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oceanbase/OceanBaseContainer.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oceanbase/OceanBaseContainer.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oceanbase/OceanBaseDatabase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oceanbase/OceanBaseDatabase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oceanbase/OceanBaseDatabase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oceanbase/OceanBaseDatabase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oceanbase/OceanBaseImages.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oceanbase/OceanBaseImages.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oceanbase/OceanBaseImages.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oceanbase/OceanBaseImages.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oceanbase/OceanBaseMetadata.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oceanbase/OceanBaseMetadata.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oceanbase/OceanBaseMetadata.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oceanbase/OceanBaseMetadata.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oceanbase/OceanBaseTestDatabase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oceanbase/OceanBaseTestDatabase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oceanbase/OceanBaseTestDatabase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oceanbase/OceanBaseTestDatabase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oracle/OracleDatabase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oracle/OracleDatabase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oracle/OracleDatabase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oracle/OracleDatabase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oracle/OracleImages.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oracle/OracleImages.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oracle/OracleImages.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oracle/OracleImages.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oracle/OracleMetadata.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oracle/OracleMetadata.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oracle/OracleMetadata.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/oracle/OracleMetadata.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/postgres/PostgresDatabase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/postgres/PostgresDatabase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/postgres/PostgresDatabase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/postgres/PostgresDatabase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/postgres/PostgresImages.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/postgres/PostgresImages.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/postgres/PostgresImages.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/postgres/PostgresImages.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/postgres/PostgresMetadata.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/postgres/PostgresMetadata.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/postgres/PostgresMetadata.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/postgres/PostgresMetadata.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/sqlserver/SqlServerDatabase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/sqlserver/SqlServerDatabase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/sqlserver/SqlServerDatabase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/sqlserver/SqlServerDatabase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/sqlserver/SqlServerImages.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/sqlserver/SqlServerImages.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/sqlserver/SqlServerImages.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/sqlserver/SqlServerImages.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/sqlserver/SqlServerMetadata.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/sqlserver/SqlServerMetadata.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/sqlserver/SqlServerMetadata.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/sqlserver/SqlServerMetadata.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/trino/TrinoDatabase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/trino/TrinoDatabase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/trino/TrinoDatabase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/trino/TrinoDatabase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/trino/TrinoImages.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/trino/TrinoImages.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/trino/TrinoImages.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/trino/TrinoImages.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/trino/TrinoMetadata.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/trino/TrinoMetadata.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/trino/TrinoMetadata.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/databases/trino/TrinoMetadata.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/functions/JdbcResultSetBuilder.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/functions/JdbcResultSetBuilder.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/functions/JdbcResultSetBuilder.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/functions/JdbcResultSetBuilder.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/tables/TableBase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/tables/TableBase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/tables/TableBase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/tables/TableBase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/tables/TableBuilder.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/tables/TableBuilder.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/tables/TableBuilder.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/tables/TableBuilder.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/tables/TableBuilderTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/tables/TableBuilderTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/tables/TableBuilderTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/tables/TableBuilderTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/tables/TableField.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/tables/TableField.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/tables/TableField.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/tables/TableField.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/tables/TableRow.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/tables/TableRow.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/tables/TableRow.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/tables/TableRow.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/tables/templates/BooksTable.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/tables/templates/BooksTable.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/testutils/tables/templates/BooksTable.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/testutils/tables/templates/BooksTable.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/utils/JdbcTypeUtilTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/utils/JdbcTypeUtilTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/utils/JdbcTypeUtilTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/utils/JdbcTypeUtilTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/CheckpointAndXidSerializersTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/CheckpointAndXidSerializersTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/CheckpointAndXidSerializersTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/CheckpointAndXidSerializersTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcExactlyOnceSinkE2eTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcExactlyOnceSinkE2eTest.java
similarity index 99%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcExactlyOnceSinkE2eTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcExactlyOnceSinkE2eTest.java
index e4065369..85db5e37 100644
--- a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcExactlyOnceSinkE2eTest.java
+++ b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcExactlyOnceSinkE2eTest.java
@@ -75,6 +75,7 @@ public abstract class JdbcExactlyOnceSinkE2eTest implements DatabaseTest {
     private static final BooksTable OUTPUT_TABLE = new BooksTable("XaTable");
     protected static final int PARALLELISM = 4;
     protected static final long CHECKPOINT_TIMEOUT_MS = 5_000L;
+    protected static final String TASK_CANCELLATION_TIMEOUT_MS = "10000";
 
     @RegisterExtension static final MiniClusterExtension MINI_CLUSTER = createCluster();
 
@@ -89,7 +90,7 @@ public abstract class JdbcExactlyOnceSinkE2eTest implements DatabaseTest {
         // item correctly.
         //  API calling lines will be adapted after the appropriate series versions
         //  that the oldest flink version in the CI can process the config options.
-        configuration.setString(TASK_CANCELLATION_TIMEOUT.key(), "10000");
+        configuration.setString(TASK_CANCELLATION_TIMEOUT.key(), TASK_CANCELLATION_TIMEOUT_MS);
         configuration.set(CHECKPOINTING_TIMEOUT, Duration.ofMillis(CHECKPOINT_TIMEOUT_MS));
 
         return new MiniClusterExtension(
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaFacadeImplTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaFacadeImplTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaFacadeImplTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaFacadeImplTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaFacadeTestHelper.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaFacadeTestHelper.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaFacadeTestHelper.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaFacadeTestHelper.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkDerbyTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkDerbyTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkDerbyTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkDerbyTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkH2Test.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkH2Test.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkH2Test.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkH2Test.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkMigrationTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkMigrationTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkMigrationTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkMigrationTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkNoInsertionTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkNoInsertionTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkNoInsertionTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkNoInsertionTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkTestBase.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkTestBase.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkTestBase.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkTestBase.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkTestHelper.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkTestHelper.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkTestHelper.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcXaSinkTestHelper.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/SemanticXidGeneratorTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/SemanticXidGeneratorTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/SemanticXidGeneratorTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/SemanticXidGeneratorTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/XaXidTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/XaXidTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/XaXidTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/XaXidTest.java
diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/XidSerializersTest.java b/flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/XidSerializersTest.java
similarity index 100%
rename from flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/XidSerializersTest.java
rename to flink-connector-jdbc-core/src/test/java/org/apache/flink/connector/jdbc/xa/XidSerializersTest.java
diff --git a/flink-connector-jdbc/src/test/resources/META-INF/services/java.sql.Driver b/flink-connector-jdbc-core/src/test/resources/META-INF/services/java.sql.Driver
similarity index 100%
rename from flink-connector-jdbc/src/test/resources/META-INF/services/java.sql.Driver
rename to flink-connector-jdbc-core/src/test/resources/META-INF/services/java.sql.Driver
diff --git a/flink-connector-jdbc/src/test/resources/archunit.properties b/flink-connector-jdbc-core/src/test/resources/archunit.properties
similarity index 100%
rename from flink-connector-jdbc/src/test/resources/archunit.properties
rename to flink-connector-jdbc-core/src/test/resources/archunit.properties
diff --git a/flink-connector-jdbc/src/test/resources/log4j2-test.properties b/flink-connector-jdbc-core/src/test/resources/log4j2-test.properties
similarity index 100%
rename from flink-connector-jdbc/src/test/resources/log4j2-test.properties
rename to flink-connector-jdbc-core/src/test/resources/log4j2-test.properties
diff --git a/flink-connector-jdbc/src/test/resources/org/apache/flink/connector/jdbc/table/JdbcTablePlanTest.xml b/flink-connector-jdbc-core/src/test/resources/org/apache/flink/connector/jdbc/table/JdbcTablePlanTest.xml
similarity index 100%
rename from flink-connector-jdbc/src/test/resources/org/apache/flink/connector/jdbc/table/JdbcTablePlanTest.xml
rename to flink-connector-jdbc-core/src/test/resources/org/apache/flink/connector/jdbc/table/JdbcTablePlanTest.xml
diff --git a/flink-connector-jdbc/pom.xml b/flink-connector-jdbc/pom.xml
index 0a42dbe6..68d05f08 100644
--- a/flink-connector-jdbc/pom.xml
+++ b/flink-connector-jdbc/pom.xml
@@ -34,269 +34,51 @@ under the License.
 
 	<packaging>jar</packaging>
 
-	<properties>
-		<scala.binary.version>2.12</scala.binary.version>
-		<scala-library.version>2.12.7</scala-library.version>
-		<assertj.version>3.23.1</assertj.version>
-		<postgres.version>42.7.3</postgres.version>
-		<oracle.version>21.8.0.0</oracle.version>
-		<trino.version>418</trino.version>
-		<byte-buddy.version>1.12.10</byte-buddy.version>
-		<surefire.module.config> <!-- required by
-		Db2ExactlyOnceSinkE2eTest --> --add-opens=java.base/java.util=ALL-UNNAMED <!--
-		SimpleJdbcConnectionProviderDriverClassConcurrentLoadingITCase--> --add-opens=java.base/java.lang=ALL-UNNAMED
-		</surefire.module.config>
-	</properties>
-
 	<dependencies>
 
-		<!-- Connectors -->
-
-		<dependency>
-			<groupId>org.apache.flink</groupId>
-			<artifactId>flink-connector-base</artifactId>
-			<version>${flink.version}</version>
-			<scope>provided</scope>
-		</dependency>
-
-		<!-- Table ecosystem -->
-
-		<!-- Projects depending on this project won't depend on flink-table-*. -->
 		<dependency>
 			<groupId>org.apache.flink</groupId>
-			<artifactId>flink-table-api-java-bridge</artifactId>
-			<version>${flink.version}</version>
-			<scope>provided</scope>
-			<optional>true</optional>
-		</dependency>
-
-		<!-- Postgres -->
-		<dependency>
-			<groupId>org.postgresql</groupId>
-			<artifactId>postgresql</artifactId>
-			<version>${postgres.version}</version>
-			<scope>provided</scope>
-		</dependency>
-
-		<!-- Oracle -->
-		<dependency>
-			<groupId>com.oracle.database.jdbc</groupId>
-			<artifactId>ojdbc8</artifactId>
-			<version>${oracle.version}</version>
-			<scope>provided</scope>
-		</dependency>
-
-		<!-- Trino -->
-		<dependency>
-			<groupId>io.trino</groupId>
-			<artifactId>trino-jdbc</artifactId>
-			<version>${trino.version}</version>
-			<scope>provided</scope>
-		</dependency>
-
-		<!-- SQL Server -->
-		<dependency>
-			<groupId>com.microsoft.sqlserver</groupId>
-			<artifactId>mssql-jdbc</artifactId>
-			<version>10.2.1.jre8</version>
-			<scope>provided</scope>
-		</dependency>
-
-		<!-- CrateDB -->
-		<dependency>
-			<groupId>io.crate</groupId>
-			<artifactId>crate-jdbc</artifactId>
-			<version>2.7.0</version>
-			<scope>provided</scope>
-			<exclusions>
-				<exclusion>
-					<groupId>net.java.dev.jna</groupId>
-					<artifactId>jna</artifactId>
-				</exclusion>
-			</exclusions>
-		</dependency>
-
-		<!-- Db2 -->
-		<dependency>
-			<groupId>com.ibm.db2.jcc</groupId>
-			<artifactId>db2jcc</artifactId>
-			<version>db2jcc4</version>
-			<scope>provided</scope>
-		</dependency>
-
-		<!-- Tests -->
-
-		<dependency>
-			<groupId>org.apache.flink</groupId>
-			<artifactId>flink-test-utils</artifactId>
-			<version>${flink.version}</version>
-			<scope>test</scope>
-		</dependency>
-
-		<dependency>
-			<groupId>org.apache.flink</groupId>
-			<artifactId>flink-table-common</artifactId>
-			<version>${flink.version}</version>
-			<type>test-jar</type>
-			<scope>test</scope>
-		</dependency>
-
-		<dependency>
-			<groupId>org.apache.flink</groupId>
-			<artifactId>flink-streaming-java</artifactId>
-			<version>${flink.version}</version>
-			<type>test-jar</type>
-			<scope>test</scope>
-		</dependency>
-
-		<dependency>
-			<groupId>org.apache.flink</groupId>
-			<artifactId>flink-core</artifactId>
-			<version>${flink.version}</version>
-			<scope>test</scope>
-			<type>test-jar</type>
-		</dependency>
-
-		<dependency>
-			<groupId>org.apache.flink</groupId>
-			<artifactId>flink-table-planner_${scala.binary.version}</artifactId>
-			<version>${flink.version}</version>
-			<scope>test</scope>
-		</dependency>
-
-		<dependency>
-			<groupId>org.apache.flink</groupId>
-			<artifactId>flink-table-planner_${scala.binary.version}</artifactId>
-			<version>${flink.version}</version>
-			<type>test-jar</type>
-			<scope>test</scope>
-		</dependency>
-
-		<dependency>
-			<groupId>org.apache.flink</groupId>
-			<artifactId>flink-table-api-scala-bridge_${scala.binary.version}</artifactId>
-			<version>${flink.version}</version>
-			<scope>test</scope>
-		</dependency>
-
-		<dependency>
-			<groupId>org.apache.flink</groupId>
-			<artifactId>flink-connector-base</artifactId>
-			<version>${flink.version}</version>
-			<scope>test</scope>
-			<type>test-jar</type>
-		</dependency>
-
-		<dependency>
-			<groupId>org.apache.flink</groupId>
-			<artifactId>flink-connector-test-utils</artifactId>
-			<version>${flink.version}</version>
-			<scope>test</scope>
-		</dependency>
-
-		<!-- Assertions test dependencies -->
-
-		<dependency>
-			<groupId>org.assertj</groupId>
-			<artifactId>assertj-core</artifactId>
-			<version>${assertj.version}</version>
-			<scope>test</scope>
-		</dependency>
-
-		<!-- Postgres tests -->
-		<dependency>
-			<groupId>org.testcontainers</groupId>
-			<artifactId>postgresql</artifactId>
-			<scope>test</scope>
-		</dependency>
-
-		<!-- MySQL tests -->
-		<dependency>
-			<groupId>mysql</groupId>
-			<artifactId>mysql-connector-java</artifactId>
-			<version>8.0.29</version>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.testcontainers</groupId>
-			<artifactId>mysql</artifactId>
-			<scope>test</scope>
-		</dependency>
-
-		<!-- Derby tests -->
-		<dependency>
-			<groupId>org.apache.derby</groupId>
-			<artifactId>derby</artifactId>
-			<version>10.14.2.0</version>
-			<scope>test</scope>
-		</dependency>
-
-		<!-- Oracle tests -->
-		<dependency>
-			<groupId>org.testcontainers</groupId>
-			<artifactId>oracle-xe</artifactId>
-			<scope>test</scope>
-		</dependency>
-
-		<!-- MS SQL test -->
-		<dependency>
-			<groupId>org.testcontainers</groupId>
-			<artifactId>mssqlserver</artifactId>
-			<scope>test</scope>
-		</dependency>
-
-		<!-- H2 tests -->
-		<dependency>
-			<groupId>com.h2database</groupId>
-			<artifactId>h2</artifactId>
-			<version>2.2.224</version>
-			<scope>test</scope>
-		</dependency>
-
-		<!-- Db2 test -->
-		<dependency>
-			<groupId>org.testcontainers</groupId>
-			<artifactId>db2</artifactId>
-			<scope>test</scope>
-		</dependency>
-
-		<!-- Trino test -->
-		<dependency>
-			<groupId>org.testcontainers</groupId>
-			<artifactId>trino</artifactId>
-			<scope>test</scope>
-		</dependency>
-
-		<!-- OceanBase tests -->
-		<dependency>
-			<groupId>com.oceanbase</groupId>
-			<artifactId>oceanbase-client</artifactId>
-			<version>2.4.8</version>
-			<scope>test</scope>
-		</dependency>
-
-		<!-- ArchUit test dependencies -->
-		<dependency>
-			<groupId>org.apache.flink</groupId>
-			<artifactId>flink-architecture-tests-test</artifactId>
-			<scope>test</scope>
+			<artifactId>flink-connector-jdbc-core</artifactId>
+			<version>${project.version}</version>
 		</dependency>
 
 	</dependencies>
 
-	<dependencyManagement>
-		<dependencies>
-			<!-- For dependency convergence -->
-			<dependency>
-				<groupId>org.scala-lang</groupId>
-				<artifactId>scala-library</artifactId>
-				<version>${scala-library.version}</version>
-			</dependency>
-		</dependencies>
-	</dependencyManagement>
-
 	<build>
 		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-shade-plugin</artifactId>
+				<executions>
+					<execution>
+						<phase>package</phase>
+						<goals>
+							<goal>shade</goal>
+						</goals>
+						<configuration>
+							<createDependencyReducedPom>false</createDependencyReducedPom>
+							<shadeTestJar>true</shadeTestJar>
+							<artifactSet>
+								<excludes>
+									<exclude>org.apache.flink:flink-connector-base</exclude>
+								</excludes>
+							</artifactSet>
+							<filters combine.children="append">
+								<filter combine.children="append">
+									<!-- Do not copy the signatures in the META-INF folder. -->
+									<!-- Otherwise, this might cause SecurityExceptions when using the JAR. -->
+									<artifact>*:*</artifact>
+									<excludes combine.children="append">
+										<exclude>META-INF/*.SF</exclude>
+										<exclude>META-INF/*.DSA</exclude>
+										<exclude>META-INF/*.RSA</exclude>
+									</excludes>
+								</filter>
+							</filters>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
 			<plugin>
 				<groupId>org.apache.maven.plugins</groupId>
 				<artifactId>maven-jar-plugin</artifactId>
diff --git a/pom.xml b/pom.xml
index ae0c47d2..2f41ad2e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -44,6 +44,7 @@ under the License.
 
     <modules>
         <module>flink-connector-jdbc</module>
+        <module>flink-connector-jdbc-core</module>
     </modules>
 
     <properties>