You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
585 lines
26 KiB
XML
585 lines
26 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
Copyright 2022 Ververica Inc.
|
|
|
|
Licensed 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/xsd/maven-4.0.0.xsd">
|
|
|
|
<parent>
|
|
<groupId>org.apache</groupId>
|
|
<artifactId>apache</artifactId>
|
|
<version>20</version>
|
|
</parent>
|
|
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<groupId>com.ververica</groupId>
|
|
<artifactId>flink-cdc-connectors</artifactId>
|
|
<version>2.3-SNAPSHOT</version>
|
|
<packaging>pom</packaging>
|
|
|
|
<modules>
|
|
<module>flink-cdc-base</module>
|
|
<module>flink-connector-debezium</module>
|
|
<module>flink-connector-test-util</module>
|
|
<module>flink-connector-mysql-cdc</module>
|
|
<module>flink-connector-postgres-cdc</module>
|
|
<module>flink-connector-oracle-cdc</module>
|
|
<module>flink-connector-mongodb-cdc</module>
|
|
<module>flink-connector-oceanbase-cdc</module>
|
|
<module>flink-connector-sqlserver-cdc</module>
|
|
<module>flink-connector-tidb-cdc</module>
|
|
<module>flink-connector-db2-cdc</module>
|
|
<module>flink-sql-connector-mysql-cdc</module>
|
|
<module>flink-sql-connector-postgres-cdc</module>
|
|
<module>flink-sql-connector-mongodb-cdc</module>
|
|
<module>flink-sql-connector-oracle-cdc</module>
|
|
<module>flink-sql-connector-oceanbase-cdc</module>
|
|
<module>flink-sql-connector-sqlserver-cdc</module>
|
|
<module>flink-sql-connector-tidb-cdc</module>
|
|
<module>flink-sql-connector-db2-cdc</module>
|
|
<module>flink-cdc-e2e-tests</module>
|
|
</modules>
|
|
|
|
<licenses>
|
|
<license>
|
|
<name>The Apache Software License, Version 2.0</name>
|
|
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
|
<distribution>repo</distribution>
|
|
</license>
|
|
</licenses>
|
|
|
|
<distributionManagement>
|
|
<snapshotRepository>
|
|
<id>oss</id>
|
|
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
|
|
</snapshotRepository>
|
|
<repository>
|
|
<id>oss</id>
|
|
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
|
|
</repository>
|
|
</distributionManagement>
|
|
|
|
<properties>
|
|
<flink.version>1.16.0</flink.version>
|
|
<debezium.version>1.6.4.Final</debezium.version>
|
|
<tikv.version>3.2.0</tikv.version>
|
|
<geometry.version>2.2.0</geometry.version>
|
|
<!-- OracleE2eITCase will report "container cannot be accessed" error when running in Azure Pipeline with 1.16.1 testconainters.
|
|
This might be a conflicts with "wnameless/oracle-xe-11g-r2" and 1.16 testcontainers.
|
|
We may need to upgrade our Oracle base image to "gvenzl/oracle-xe" which is the default image of 1.16 testcontainers.
|
|
See more https://github.com/testcontainers/testcontainers-java/issues/4297. -->
|
|
<testcontainers.version>1.15.3</testcontainers.version>
|
|
<java.version>1.8</java.version>
|
|
<scala.binary.version>2.12</scala.binary.version>
|
|
<maven.compiler.source>${java.version}</maven.compiler.source>
|
|
<maven.compiler.target>${java.version}</maven.compiler.target>
|
|
<hamcrest.version>1.3</hamcrest.version>
|
|
<version.awaitility>4.0.1</version.awaitility>
|
|
<slf4j.version>1.7.15</slf4j.version>
|
|
<log4j.version>2.17.1</log4j.version>
|
|
<spotless.version>2.4.2</spotless.version>
|
|
<oblogclient.version>1.0.6</oblogclient.version>
|
|
<!-- Enforce single fork execution due to heavy mini cluster use in the tests -->
|
|
<flink.forkCount>1</flink.forkCount>
|
|
<flink.reuseForks>true</flink.reuseForks>
|
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
</properties>
|
|
|
|
<dependencies>
|
|
<!-- Apache Flink dependencies -->
|
|
<!-- These dependencies are provided, because they should not be packaged into the JAR file. -->
|
|
<dependency>
|
|
<groupId>org.apache.flink</groupId>
|
|
<artifactId>flink-table-common</artifactId>
|
|
<version>${flink.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.flink</groupId>
|
|
<artifactId>flink-connector-base</artifactId>
|
|
<version>${flink.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.flink</groupId>
|
|
<artifactId>flink-table-api-java-bridge</artifactId>
|
|
<version>${flink.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.flink</groupId>
|
|
<artifactId>flink-core</artifactId>
|
|
<version>${flink.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.flink</groupId>
|
|
<artifactId>flink-streaming-java</artifactId>
|
|
<version>${flink.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.slf4j</groupId>
|
|
<artifactId>slf4j-api</artifactId>
|
|
<version>${slf4j.version}</version>
|
|
</dependency>
|
|
|
|
<!-- Use fixed version 30.1.1-jre-16.0 of flink shaded guava -->
|
|
<dependency>
|
|
<groupId>org.apache.flink</groupId>
|
|
<artifactId>flink-shaded-guava</artifactId>
|
|
<version>30.1.1-jre-16.0</version>
|
|
</dependency>
|
|
|
|
<!-- test dependencies -->
|
|
<dependency>
|
|
<groupId>org.hamcrest</groupId>
|
|
<artifactId>hamcrest-all</artifactId>
|
|
<version>${hamcrest.version}</version>
|
|
<type>jar</type>
|
|
<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>
|
|
<version>${log4j.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
<artifactId>log4j-api</artifactId>
|
|
<version>${log4j.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
<artifactId>log4j-core</artifactId>
|
|
<version>${log4j.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<!-- API bridge between log4j 1 and 2 -->
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
<artifactId>log4j-1.2-api</artifactId>
|
|
<version>${log4j.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.awaitility</groupId>
|
|
<artifactId>awaitility</artifactId>
|
|
<type>jar</type>
|
|
<version>${version.awaitility}</version>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<!-- Inherited from Apache parent, but not actually used. Disable to reduce noise. -->
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-site-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>attach-descriptor</id>
|
|
<phase>none</phase>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.rat</groupId>
|
|
<artifactId>apache-rat-plugin</artifactId>
|
|
<version>0.12</version><!--$NO-MVN-MAN-VER$-->
|
|
<inherited>false</inherited>
|
|
<executions>
|
|
<execution>
|
|
<phase>verify</phase>
|
|
<goals>
|
|
<goal>check</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
<configuration>
|
|
<excludeSubProjects>false</excludeSubProjects>
|
|
<numUnapprovedLicenses>0</numUnapprovedLicenses>
|
|
<licenses>
|
|
<!-- Enforce this license:
|
|
Copyright 2022 Ververica Inc.
|
|
Licensed 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.
|
|
-->
|
|
<license
|
|
implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
|
|
<licenseFamilyCategory>AL2</licenseFamilyCategory>
|
|
<licenseFamilyName>Apache License 2.0</licenseFamilyName>
|
|
<notes/>
|
|
<patterns>
|
|
<pattern>Copyright 2022 Ververica Inc.
|
|
</pattern>
|
|
<pattern>Licensed under the Apache License, Version 2.0
|
|
</pattern>
|
|
</patterns>
|
|
</license>
|
|
</licenses>
|
|
<licenseFamilies>
|
|
<licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
|
|
<familyName>Apache License 2.0</familyName>
|
|
</licenseFamily>
|
|
</licenseFamilies>
|
|
<excludes>
|
|
<!-- Additional files like .gitignore etc.-->
|
|
<exclude>**/.*/**</exclude>
|
|
<!-- Generated content -->
|
|
<exclude>**/target/**</exclude>
|
|
<!-- Build files -->
|
|
<exclude>**/*.iml</exclude>
|
|
<!-- Docs -->
|
|
<exclude>**/*.md</exclude>
|
|
<exclude>docs/Makefile</exclude>
|
|
<exclude>docs/Dockerfile</exclude>
|
|
<exclude>docs/make.bat</exclude>
|
|
<exclude>docs/_templates/version.html</exclude>
|
|
<exclude>docs/_static/button.js</exclude>
|
|
<!-- Site -->
|
|
<exclude>docs/site/**</exclude>
|
|
<!-- Tests -->
|
|
<exclude>**/*.txt</exclude>
|
|
<exclude>flink-connector-mysql-cdc/src/test/resources/file/*.json</exclude>
|
|
<exclude>flink-connector-db2-cdc/src/test/resources/db2_server/Dockerfile</exclude>
|
|
</excludes>
|
|
</configuration>
|
|
</plugin>
|
|
|
|
<!-- Due to the Flink build setup, "mvn spotless:apply" and "mvn spotless:check"
|
|
don't work. You have to use the fully qualified name, i.e.
|
|
"mvn com.diffplug.spotless:spotless-maven-plugin:apply" -->
|
|
<plugin>
|
|
<groupId>com.diffplug.spotless</groupId>
|
|
<artifactId>spotless-maven-plugin</artifactId>
|
|
<version>${spotless.version}</version>
|
|
<configuration>
|
|
<java>
|
|
<googleJavaFormat>
|
|
<version>1.7</version>
|
|
<style>AOSP</style>
|
|
</googleJavaFormat>
|
|
|
|
<!-- \# refers to the static imports -->
|
|
<importOrder>
|
|
<order>org.apache.flink,org.apache.flink.shaded,,javax,java,scala,\#
|
|
</order>
|
|
</importOrder>
|
|
|
|
<removeUnusedImports/>
|
|
</java>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<id>spotless-check</id>
|
|
<phase>validate</phase>
|
|
<goals>
|
|
<goal>check</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-checkstyle-plugin</artifactId>
|
|
<version>2.17</version>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>com.puppycrawl.tools</groupId>
|
|
<artifactId>checkstyle</artifactId>
|
|
<version>8.14</version>
|
|
</dependency>
|
|
</dependencies>
|
|
<executions>
|
|
<execution>
|
|
<id>validate</id>
|
|
<phase>validate</phase>
|
|
<goals>
|
|
<goal>check</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
<configuration>
|
|
<suppressionsLocation>/tools/maven/suppressions.xml</suppressionsLocation>
|
|
<includeTestSourceDirectory>true</includeTestSourceDirectory>
|
|
<configLocation>/tools/maven/checkstyle.xml</configLocation>
|
|
<logViolationsToConsole>true</logViolationsToConsole>
|
|
<failOnViolation>true</failOnViolation>
|
|
</configuration>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<version>2.22.0</version>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.apache.maven.surefire</groupId>
|
|
<artifactId>surefire-junit47</artifactId>
|
|
<version>2.22.0</version>
|
|
</dependency>
|
|
</dependencies>
|
|
<executions>
|
|
<execution>
|
|
<id>default-test</id>
|
|
<phase>test</phase>
|
|
<goals>
|
|
<goal>test</goal>
|
|
</goals>
|
|
<configuration>
|
|
<includes>
|
|
<include>**/*Test.java</include>
|
|
<include>**/*Test.scala</include>
|
|
</includes>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>integration-tests</id>
|
|
<phase>integration-test</phase>
|
|
<goals>
|
|
<goal>test</goal>
|
|
</goals>
|
|
<configuration>
|
|
<includes>
|
|
<include>**/*ITCase.java</include>
|
|
<include>**/*ITCase.scala</include>
|
|
</includes>
|
|
<reuseForks>false</reuseForks>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
<configuration>
|
|
<forkCount>${flink.forkCount}</forkCount>
|
|
<reuseForks>${flink.reuseForks}</reuseForks>
|
|
<systemPropertyVariables>
|
|
<forkNumber>0${surefire.forkNumber}</forkNumber>
|
|
</systemPropertyVariables>
|
|
<!-- Prevent ORA-01882: timezone region not found errors due to the Oracle DB
|
|
does not understanding some time zone which used in Ubuntu OS -->
|
|
<argLine>-Xms256m -Xmx2048m -Dmvn.forkNumber=${surefire.forkNumber}
|
|
-XX:+UseG1GC -Doracle.jdbc.timezoneAsRegion=false
|
|
</argLine>
|
|
</configuration>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-shade-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>shade-flink</id>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>shade</goal>
|
|
</goals>
|
|
<configuration>
|
|
<!-- Shading test jar have bug in some previous version, so close this configuration here,
|
|
see https://issues.apache.org/jira/browse/MSHADE-284 -->
|
|
<shadeTestJar>false</shadeTestJar>
|
|
<shadedArtifactAttached>false</shadedArtifactAttached>
|
|
<createDependencyReducedPom>true</createDependencyReducedPom>
|
|
<dependencyReducedPomLocation>
|
|
${project.basedir}/target/dependency-reduced-pom.xml
|
|
</dependencyReducedPomLocation>
|
|
<filters combine.children="append">
|
|
<filter>
|
|
<artifact>*:*</artifact>
|
|
<excludes>
|
|
<exclude>module-info.class</exclude>
|
|
<exclude>META-INF/*.SF</exclude>
|
|
<exclude>META-INF/*.DSA</exclude>
|
|
<exclude>META-INF/*.RSA</exclude>
|
|
</excludes>
|
|
</filter>
|
|
</filters>
|
|
<artifactSet>
|
|
<includes>
|
|
<!-- include nothing -->
|
|
<include></include>
|
|
</includes>
|
|
</artifactSet>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-enforcer-plugin</artifactId>
|
|
<version>3.0.0-M1</version>
|
|
<executions>
|
|
<execution>
|
|
<id>dependency-convergence</id>
|
|
<!-- disabled by default as it interacts badly with shade-plugin -->
|
|
<phase>none</phase>
|
|
<goals>
|
|
<goal>enforce</goal>
|
|
</goals>
|
|
<configuration>
|
|
<rules>
|
|
<dependencyConvergence/>
|
|
</rules>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-jar-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>test-jar</id>
|
|
<goals>
|
|
<goal>test-jar</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-javadoc-plugin</artifactId>
|
|
<configuration>
|
|
<doclint>none</doclint>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
|
|
<profiles>
|
|
<profile>
|
|
<id>release</id>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-gpg-plugin</artifactId>
|
|
<version>1.6</version>
|
|
<executions>
|
|
<execution>
|
|
<id>sign-artifacts</id>
|
|
<phase>verify</phase>
|
|
<goals>
|
|
<goal>sign</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-enforcer-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>enforce-java</id>
|
|
<goals>
|
|
<goal>enforce</goal>
|
|
</goals>
|
|
<configuration>
|
|
<rules>
|
|
<requireJavaVersion>
|
|
<version>[1.8,)</version>
|
|
</requireJavaVersion>
|
|
</rules>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-source-plugin</artifactId>
|
|
<version>2.2.1</version><!--$NO-MVN-MAN-VER$-->
|
|
<executions>
|
|
<execution>
|
|
<id>attach-sources</id>
|
|
<goals>
|
|
<goal>jar</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>net.ju-n.maven.plugins</groupId>
|
|
<artifactId>checksum-maven-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<goals>
|
|
<goal>artifacts</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
<configuration>
|
|
<algorithms>
|
|
<algorithm>SHA-256</algorithm>
|
|
</algorithms>
|
|
<failOnError>false</failOnError>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-javadoc-plugin</artifactId>
|
|
<version>2.9.1</version><!--$NO-MVN-MAN-VER$-->
|
|
<configuration>
|
|
<quiet>true</quiet>
|
|
<detectOfflineLinks>false</detectOfflineLinks>
|
|
<additionalJOptions combine.children="append">
|
|
<additionalJOption>-Xdoclint:none</additionalJOption>
|
|
</additionalJOptions>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<id>attach-javadocs</id>
|
|
<goals>
|
|
<goal>jar</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
<pluginManagement>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-release-plugin</artifactId>
|
|
<version>2.1</version>
|
|
<configuration>
|
|
<mavenExecutorId>forked-path</mavenExecutorId>
|
|
<useReleaseProfile>false</useReleaseProfile>
|
|
<arguments>${arguments} -Psonatype-oss-release</arguments>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</pluginManagement>
|
|
</build>
|
|
</profile>
|
|
</profiles>
|
|
</project>
|