This is an automated email from the ASF dual-hosted git repository. martijnvisser pushed a commit to branch v3.0 in repository https://gitbox.apache.org/repos/asf/flink-connector-jdbc.git
commit e17e461112ba1de814af27ce72c635dcb2753ad0 Author: Martijn Visser <martijnvis...@apache.org> AuthorDate: Mon Nov 28 16:03:10 2022 +0100 [FLINK-30060][Connector/JDBC] Move existing JDBC connector code from Flink repo to dedicated JDBC repo --- .gitmodules | 4 + .idea/vcs.xml | 24 ++ flink-connector-jdbc/pom.xml | 50 ++- .../jdbc/catalog/PostgresCatalogTestBase.java | 2 +- .../catalog/factory/JdbcCatalogFactoryTest.java | 2 +- .../connector/jdbc/test/DockerImageVersions.java | 28 ++ .../jdbc/xa/JdbcExactlyOnceSinkE2eTest.java | 2 +- pom.xml | 394 +++++++++++++++++++++ tools/releasing/shared | 1 + 9 files changed, 494 insertions(+), 13 deletions(-) diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..d5b0f75 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,4 @@ +[submodule "tools/releasing/shared"] + path = tools/releasing/shared + url = https://github.com/apache/flink-connector-shared-utils + branch = release_utils \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..0dd9dbf --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="IssueNavigationConfiguration"> + <option name="links"> + <list> + <IssueNavigationLink> + <option name="issueRegexp" value="FLINK\-\d+" /> + <option name="linkRegexp" value="https://issues.apache.org/jira/browse/$0" /> + </IssueNavigationLink> + <IssueNavigationLink> + <option name="issueRegexp" value="FLIP\-\d+" /> + <option name="linkRegexp" value="https://cwiki.apache.org/confluence/display/FLINK/$0" /> + </IssueNavigationLink> + <IssueNavigationLink> + <option name="issueRegexp" value="#(\d+)" /> + <option name="linkRegexp" value="https://github.com/apache/flink-connector-jdbc/pull/$1" /> + </IssueNavigationLink> + </list> + </option> + </component> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$" vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/flink-connector-jdbc/pom.xml b/flink-connector-jdbc/pom.xml index e7d7db4..f12d2f8 100644 --- a/flink-connector-jdbc/pom.xml +++ b/flink-connector-jdbc/pom.xml @@ -25,8 +25,8 @@ under the License. <parent> <groupId>org.apache.flink</groupId> - <artifactId>flink-connectors</artifactId> - <version>1.16-SNAPSHOT</version> + <artifactId>flink-connector-jdbc-parent</artifactId> + <version>3.0-SNAPSHOT</version> </parent> <artifactId>flink-connector-jdbc</artifactId> @@ -35,8 +35,12 @@ 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.4.1</postgres.version> <oracle.version>19.3.0.0</oracle.version> + <byte-buddy.version>1.12.10</byte-buddy.version> </properties> <dependencies> @@ -46,7 +50,7 @@ under the License. <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-table-api-java-bridge</artifactId> - <version>${project.version}</version> + <version>${flink.version}</version> <scope>provided</scope> <optional>true</optional> </dependency> @@ -73,14 +77,14 @@ under the License. <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-test-utils</artifactId> - <version>${project.version}</version> + <version>${flink.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-table-common</artifactId> - <version>${project.version}</version> + <version>${flink.version}</version> <type>test-jar</type> <scope>test</scope> </dependency> @@ -88,7 +92,7 @@ under the License. <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java</artifactId> - <version>${project.version}</version> + <version>${flink.version}</version> <type>test-jar</type> <scope>test</scope> </dependency> @@ -96,7 +100,7 @@ under the License. <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-core</artifactId> - <version>${project.version}</version> + <version>${flink.version}</version> <scope>test</scope> <type>test-jar</type> </dependency> @@ -104,14 +108,14 @@ under the License. <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-table-planner_${scala.binary.version}</artifactId> - <version>${project.version}</version> + <version>${flink.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-table-planner_${scala.binary.version}</artifactId> - <version>${project.version}</version> + <version>${flink.version}</version> <type>test-jar</type> <scope>test</scope> </dependency> @@ -119,7 +123,16 @@ under the License. <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-table-api-scala-bridge_${scala.binary.version}</artifactId> - <version>${project.version}</version> + <version>${flink.version}</version> + <scope>test</scope> + </dependency> + + <!-- Test dependencies --> + + <dependency> + <groupId>org.assertj</groupId> + <artifactId>assertj-core</artifactId> + <version>${assertj.version}</version> <scope>test</scope> </dependency> @@ -175,6 +188,23 @@ under the License. </dependency> </dependencies> + <dependencyManagement> + <dependencies> + <!-- For dependency convergence --> + <dependency> + <groupId>net.bytebuddy</groupId> + <artifactId>byte-buddy</artifactId> + <version>${byte-buddy.version}</version> + </dependency> + <!-- For dependency convergence --> + <dependency> + <groupId>org.scala-lang</groupId> + <artifactId>scala-library</artifactId> + <version>${scala-library.version}</version> + </dependency> + </dependencies> + </dependencyManagement> + <build> <plugins> <plugin> diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/catalog/PostgresCatalogTestBase.java b/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/catalog/PostgresCatalogTestBase.java index 73b56a3..38a423d 100644 --- a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/catalog/PostgresCatalogTestBase.java +++ b/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/catalog/PostgresCatalogTestBase.java @@ -18,10 +18,10 @@ package org.apache.flink.connector.jdbc.catalog; +import org.apache.flink.connector.jdbc.test.DockerImageVersions; import org.apache.flink.table.api.DataTypes; import org.apache.flink.table.api.Schema; import org.apache.flink.table.types.logical.DecimalType; -import org.apache.flink.util.DockerImageVersions; import org.junit.BeforeClass; import org.junit.ClassRule; diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/catalog/factory/JdbcCatalogFactoryTest.java b/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/catalog/factory/JdbcCatalogFactoryTest.java index 1527a07..55dda31 100644 --- a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/catalog/factory/JdbcCatalogFactoryTest.java +++ b/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/catalog/factory/JdbcCatalogFactoryTest.java @@ -20,10 +20,10 @@ package org.apache.flink.connector.jdbc.catalog.factory; import org.apache.flink.connector.jdbc.catalog.JdbcCatalog; import org.apache.flink.connector.jdbc.catalog.PostgresCatalog; +import org.apache.flink.connector.jdbc.test.DockerImageVersions; import org.apache.flink.table.catalog.Catalog; import org.apache.flink.table.catalog.CommonCatalogOptions; import org.apache.flink.table.factories.FactoryUtil; -import org.apache.flink.util.DockerImageVersions; import org.junit.BeforeClass; import org.junit.ClassRule; diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/test/DockerImageVersions.java b/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/test/DockerImageVersions.java new file mode 100644 index 0000000..4551219 --- /dev/null +++ b/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/test/DockerImageVersions.java @@ -0,0 +1,28 @@ +/* + * 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. + */ + +package org.apache.flink.connector.jdbc.test; + +/** + * Utility class for defining the image names and versions of Docker containers used during the Java + * tests. The names/versions are centralised here in order to make testing version updates easier, + * as well as to provide a central file to use as a key when caching testing Docker files. + */ +public class DockerImageVersions { + + public static final String POSTGRES = "postgres:9.6.12"; +} diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcExactlyOnceSinkE2eTest.java b/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcExactlyOnceSinkE2eTest.java index 3b24f82..6da62e4 100644 --- a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcExactlyOnceSinkE2eTest.java +++ b/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/xa/JdbcExactlyOnceSinkE2eTest.java @@ -30,6 +30,7 @@ import org.apache.flink.connector.jdbc.JdbcSink; import org.apache.flink.connector.jdbc.JdbcTestBase; import org.apache.flink.connector.jdbc.JdbcTestFixture.TestEntry; import org.apache.flink.connector.jdbc.dialect.oracle.OracleContainer; +import org.apache.flink.connector.jdbc.test.DockerImageVersions; import org.apache.flink.runtime.state.CheckpointListener; import org.apache.flink.runtime.state.FunctionInitializationContext; import org.apache.flink.runtime.state.FunctionSnapshotContext; @@ -41,7 +42,6 @@ import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.streaming.api.functions.source.RichParallelSourceFunction; import org.apache.flink.streaming.api.functions.source.SourceFunction; import org.apache.flink.test.util.MiniClusterWithClientResource; -import org.apache.flink.util.DockerImageVersions; import org.apache.flink.util.ExceptionUtils; import org.apache.flink.util.LogLevelRule; import org.apache.flink.util.function.SerializableSupplier; diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..96cebdb --- /dev/null +++ b/pom.xml @@ -0,0 +1,394 @@ +<?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 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" + xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + + <parent> + <groupId>io.github.zentol.flink</groupId> + <artifactId>flink-connector-parent</artifactId> + <version>1.0</version> + </parent> + + <modelVersion>4.0.0</modelVersion> + + <groupId>org.apache.flink</groupId> + <artifactId>flink-connector-jdbc-parent</artifactId> + <version>3.0-SNAPSHOT</version> + <name>Flink : Connectors : JDBC : Parent</name> + <packaging>pom</packaging> + <inceptionYear>2022</inceptionYear> + + <scm> + <url>https://github.com/apache/flink-connector-jdbc</url> + <connection>g...@github.com:apache/flink-connector-jdbc.git</connection> + <developerConnection> + scm:git:https://gitbox.apache.org/repos/asf/flink-connector-jdbc.git + </developerConnection> + </scm> + + <modules> + <module>flink-connector-jdbc</module> + </modules> + + <properties> + <flink.version>1.16.0</flink.version> + <flink.shaded.version>15.0</flink.shaded.version> + + <jackson-bom.version>2.13.4.20221013</jackson-bom.version> + <junit4.version>4.13.2</junit4.version> + <junit5.version>5.8.1</junit5.version> + <assertj.version>3.21.0</assertj.version> + <archunit.version>0.22.0</archunit.version> + <testcontainers.version>1.17.2</testcontainers.version> + <mockito.version>2.21.0</mockito.version> + + <japicmp.referenceVersion>1.16.0</japicmp.referenceVersion> + + <slf4j.version>1.7.36</slf4j.version> + <log4j.version>2.17.2</log4j.version> + + <flink.parent.artifactId>flink-connector-jdbc-parent</flink.parent.artifactId> + </properties> + + <dependencies> + <dependency> + <groupId>org.apache.flink</groupId> + <artifactId>flink-shaded-force-shading</artifactId> + <version>${flink.shaded.version}</version> + </dependency> + + <!-- Root dependencies for all projects --> + + <!-- Logging API --> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + <scope>provided</scope> + </dependency> + + <!-- 'javax.annotation' classes like '@Nullable' --> + <dependency> + <groupId>com.google.code.findbugs</groupId> + <artifactId>jsr305</artifactId> + <scope>provided</scope> + </dependency> + + <!-- Test dependencies --> + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter</artifactId> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.junit.vintage</groupId> + <artifactId>junit-vintage-engine</artifactId> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.assertj</groupId> + <artifactId>assertj-core</artifactId> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-core</artifactId> + <version>${mockito.version}</version> + <type>jar</type> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.testcontainers</groupId> + <artifactId>junit-jupiter</artifactId> + <scope>test</scope> + </dependency> + + <!-- Tests will have log4j as the default logging framework available --> + + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-slf4j-impl</artifactId> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-api</artifactId> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-core</artifactId> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.apache.flink</groupId> + <artifactId>flink-test-utils-junit</artifactId> + <scope>test</scope> + </dependency> + + <!-- ArchUit test dependencies --> + <dependency> + <groupId>org.apache.flink</groupId> + <artifactId>flink-architecture-tests-test</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.flink</groupId> + <artifactId>flink-architecture-tests-production</artifactId> + <scope>test</scope> + </dependency> + + </dependencies> + + <!-- This section defines the module versions that are used if nothing else is specified. --> + + <dependencyManagement> + + <dependencies> + <!-- Flink dependencies --> + + <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-test-utils-junit</artifactId> + <version>${flink.version}</version> + <scope>test</scope> + </dependency> + + <!-- Flink ArchUnit --> + + <dependency> + <groupId>org.apache.flink</groupId> + <artifactId>flink-architecture-tests-base</artifactId> + <version>${flink.version}</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.apache.flink</groupId> + <artifactId>flink-architecture-tests-test</artifactId> + <version>${flink.version}</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.apache.flink</groupId> + <artifactId>flink-architecture-tests-production</artifactId> + <version>${flink.version}</version> + <scope>test</scope> + </dependency> + + <!-- This manages the 'javax.annotation' annotations (JSR305) --> + <dependency> + <groupId>com.google.code.findbugs</groupId> + <artifactId>jsr305</artifactId> + <version>1.3.9</version> + </dependency> + + <dependency> + <groupId>commons-codec</groupId> + <artifactId>commons-codec</artifactId> + <version>1.15</version> + </dependency> + + <dependency> + <groupId>org.apache.httpcomponents</groupId> + <artifactId>httpcore</artifactId> + <version>4.4.14</version> + </dependency> + + <dependency> + <groupId>org.apache.httpcomponents</groupId> + <artifactId>httpclient</artifactId> + <version>4.5.13</version> + </dependency> + + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + <version>${slf4j.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-slf4j-impl</artifactId> + <version>${log4j.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-api</artifactId> + <version>${log4j.version}</version> + </dependency> + + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-core</artifactId> + <version>${log4j.version}</version> + </dependency> + + <!-- For dependency convergence --> + <dependency> + <groupId>com.fasterxml.jackson</groupId> + <artifactId>jackson-bom</artifactId> + <type>pom</type> + <scope>import</scope> + <version>${jackson-bom.version}</version> + </dependency> + + <!-- For dependency convergence --> + <dependency> + <groupId>org.junit</groupId> + <artifactId>junit-bom</artifactId> + <version>${junit5.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>${junit4.version}</version> + </dependency> + + <dependency> + <groupId>org.assertj</groupId> + <artifactId>assertj-core</artifactId> + <version>${assertj.version}</version> + <scope>test</scope> + </dependency> + + <!-- For dependency convergence --> + <dependency> + <groupId>com.esotericsoftware.kryo</groupId> + <artifactId>kryo</artifactId> + <version>2.24.0</version> + </dependency> + + <!-- For dependency convergence --> + <dependency> + <groupId>org.objenesis</groupId> + <artifactId>objenesis</artifactId> + <version>2.1</version> + </dependency> + + <dependency> + <groupId>org.testcontainers</groupId> + <artifactId>testcontainers-bom</artifactId> + <version>${testcontainers.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + + <dependency> + <groupId>com.tngtech.archunit</groupId> + <artifactId>archunit</artifactId> + <version>${archunit.version}</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>com.tngtech.archunit</groupId> + <artifactId>archunit-junit5</artifactId> + <version>${archunit.version}</version> + <scope>test</scope> + </dependency> + + </dependencies> + </dependencyManagement> + + <build> + <plugins> + + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>exec-maven-plugin</artifactId> + <inherited>false</inherited> + <dependencies> + <dependency> + <groupId>org.apache.flink</groupId> + <artifactId>flink-ci-tools</artifactId> + <version>${flink.version}</version> + </dependency> + </dependencies> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + </plugin> + + <plugin> + <!-- activate API compatibility checks --> + <groupId>io.github.zentol.japicmp</groupId> + <artifactId>japicmp-maven-plugin</artifactId> + </plugin> + + <plugin> + <groupId>org.apache.rat</groupId> + <artifactId>apache-rat-plugin</artifactId> + <inherited>false</inherited> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-checkstyle-plugin</artifactId> + </plugin> + <plugin> + <groupId>com.diffplug.spotless</groupId> + <artifactId>spotless-maven-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-enforcer-plugin</artifactId> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + </plugin> + + <plugin> + <groupId>org.commonjava.maven.plugins</groupId> + <artifactId>directory-maven-plugin</artifactId> + </plugin> + </plugins> + </build> +</project> \ No newline at end of file diff --git a/tools/releasing/shared b/tools/releasing/shared new file mode 160000 index 0000000..45bb68f --- /dev/null +++ b/tools/releasing/shared @@ -0,0 +1 @@ +Subproject commit 45bb68f550874ec398b1da344dd4d82e703b4be1