[build] Initialize project
commit
cb7e0f47ff
@ -0,0 +1,23 @@
|
||||
.cache
|
||||
scalastyle-output.xml
|
||||
.classpath
|
||||
.idea
|
||||
.metadata
|
||||
.settings
|
||||
.project
|
||||
.version.properties
|
||||
filter.properties
|
||||
logs.zip
|
||||
target
|
||||
tmp
|
||||
*.class
|
||||
*.iml
|
||||
*.swp
|
||||
*.jar
|
||||
*.zip
|
||||
*.log
|
||||
*.pyc
|
||||
.DS_Store
|
||||
build-targetatlassian-ide-plugin.xml
|
||||
*.ipr
|
||||
*.iws
|
@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<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>
|
||||
<artifactId>flink-cdc-connectors</artifactId>
|
||||
<groupId>com.alibaba.ververica</groupId>
|
||||
<version>0.1-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>flink-mysql-cdc-connector</artifactId>
|
||||
<name>flink-mysql-cdc-connector</name>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<dependencies>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
@ -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.
|
||||
################################################################################
|
||||
|
||||
# Set root logger level to OFF to not flood build logs
|
||||
# set manually to INFO for debugging purposes
|
||||
rootLogger.level = OFF
|
||||
rootLogger.appenderRef.test.ref = TestLogger
|
||||
|
||||
appender.testlogger.name = TestLogger
|
||||
appender.testlogger.type = CONSOLE
|
||||
appender.testlogger.target = SYSTEM_ERR
|
||||
appender.testlogger.layout.type = PatternLayout
|
||||
appender.testlogger.layout.pattern = %-4r [%t] %-5p %c %x - %m%n
|
@ -0,0 +1,262 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<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">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>com.alibaba.ververica</groupId>
|
||||
<artifactId>flink-cdc-connectors</artifactId>
|
||||
<version>0.1-SNAPSHOT</version>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<modules>
|
||||
<module>flink-mysql-cdc-connector</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>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<flink.version>1.11-SNAPSHOT</flink.version>
|
||||
<java.version>1.8</java.version>
|
||||
<scala.binary.version>2.11</scala.binary.version>
|
||||
<maven.compiler.source>${java.version}</maven.compiler.source>
|
||||
<maven.compiler.target>${java.version}</maven.compiler.target>
|
||||
<log4j.version>2.12.1</log4j.version>
|
||||
<flink.forkCount>1C</flink.forkCount>
|
||||
<flink.reuseForks>true</flink.reuseForks>
|
||||
<log4j.configuration>log4j2-test.properties</log4j.configuration>
|
||||
</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-table-api-java-bridge_${scala.binary.version}</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_${scala.binary.version}</artifactId>
|
||||
<version>${flink.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<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:
|
||||
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.
|
||||
-->
|
||||
<license implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
|
||||
<licenseFamilyCategory>AL2 </licenseFamilyCategory>
|
||||
<licenseFamilyName>Apache License 2.0</licenseFamilyName>
|
||||
<notes />
|
||||
<patterns>
|
||||
<pattern>Licensed to the Apache Software Foundation (ASF) under one</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>
|
||||
</excludes>
|
||||
</configuration>
|
||||
</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>
|
||||
<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>
|
||||
<log4j.configuration>${log4j.configuration}</log4j.configuration>
|
||||
</systemPropertyVariables>
|
||||
<argLine>-Xms256m -Xmx2048m -Dmvn.forkNumber=${surefire.forkNumber}
|
||||
-XX:+UseG1GC
|
||||
</argLine>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-enforcer-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>dependency-convergence</id>
|
||||
<goals>
|
||||
<goal>enforce</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<skip>true</skip>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-shade-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>shade-flink</id>
|
||||
<configuration>
|
||||
<createDependencyReducedPom>false</createDependencyReducedPom>
|
||||
<shadedArtifactAttached>true</shadedArtifactAttached>
|
||||
<shadedClassifierName>jar-with-dependencies</shadedClassifierName>
|
||||
<filters>
|
||||
<filter>
|
||||
<artifact>*:*</artifact>
|
||||
<excludes>
|
||||
<exclude>META-INF/*.SF</exclude>
|
||||
<exclude>META-INF/*.DSA</exclude>
|
||||
<exclude>META-INF/*.RSA</exclude>
|
||||
</excludes>
|
||||
</filter>
|
||||
</filters>
|
||||
<artifactSet combine.self="override">
|
||||
<excludes>
|
||||
<!-- log4j -->
|
||||
<exclude>org.slf4j:slf4j-log4j12</exclude>
|
||||
<exclude>log4j:log4j</exclude>
|
||||
<!-- jars imported by parent -->
|
||||
<exclude>org.slf4j:slf4j-api</exclude>
|
||||
<exclude>com.google.code.findbugs:jsr305</exclude>
|
||||
<!-- flink shaded jars -->
|
||||
<exclude>org.apache.flink:flink-shaded-*</exclude>
|
||||
<exclude>com.alibaba.blink:flink-shaded-*</exclude>
|
||||
<exclude>com.google.guava:guava</exclude>
|
||||
<exclude>com.fasterxml.jackson.*:*</exclude>
|
||||
<exclude>tv.cntt:*</exclude>
|
||||
<exclude>io.netty:*</exclude>
|
||||
<exclude>org.ow2.asm:*</exclude>
|
||||
<!-- other third-party jars we must use -->
|
||||
<exclude>commons-logging:commons-logging</exclude>
|
||||
<exclude>commons-codec:commons-codec</exclude>
|
||||
<exclude>commons-collections:commons-collections</exclude>
|
||||
<exclude>org.apache.commons:commons-lang3</exclude>
|
||||
<!-- flink dependencies are provided -->
|
||||
<exclude>org.apache.flink:*</exclude>
|
||||
<exclude>com.alibaba.blink:force-shading</exclude>
|
||||
</excludes>
|
||||
</artifactSet>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
@ -0,0 +1,572 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<!DOCTYPE module PUBLIC
|
||||
"-//Puppy Crawl//DTD Check Configuration 1.3//EN"
|
||||
"http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
|
||||
|
||||
<!--
|
||||
This is a checkstyle configuration file. For descriptions of
|
||||
what the following rules do, please see the checkstyle configuration
|
||||
page at http://checkstyle.sourceforge.net/config.html.
|
||||
|
||||
This file is based on the checkstyle file of Apache Beam.
|
||||
-->
|
||||
|
||||
<module name="Checker">
|
||||
|
||||
<!--<module name="FileTabCharacter">-->
|
||||
<!--<!– Checks that there are no tab characters in the file. –>-->
|
||||
<!--</module>-->
|
||||
|
||||
<module name="NewlineAtEndOfFile">
|
||||
<!-- windows can use \r\n vs \n, so enforce the most used one ie UNIx style -->
|
||||
<property name="lineSeparator" value="lf" />
|
||||
</module>
|
||||
|
||||
<module name="RegexpSingleline">
|
||||
<!-- Checks that TODOs don't have stuff in parenthesis, e.g., username. -->
|
||||
<property name="format" value="((//.*)|(\*.*))TODO\(" />
|
||||
<property name="message" value="TODO comments must not include usernames." />
|
||||
<property name="severity" value="error" />
|
||||
</module>
|
||||
|
||||
<module name="RegexpSingleline">
|
||||
<property name="format" value="\s+$"/>
|
||||
<property name="message" value="Trailing whitespace"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="RegexpSingleline">
|
||||
<property name="format" value="Throwables.propagate\("/>
|
||||
<property name="message" value="Throwables.propagate is deprecated"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<!-- Prevent *Tests.java as tools may not pick them up -->
|
||||
<!--<module name="RegexpOnFilename">-->
|
||||
<!--<property name="fileNamePattern" value=".*Tests\.java$" />-->
|
||||
<!--</module>-->
|
||||
|
||||
<module name="SuppressionFilter">
|
||||
<property name="file" value="${checkstyle.suppressions.file}" default="suppressions.xml" />
|
||||
</module>
|
||||
|
||||
<!-- Check that every module has a package-info.java -->
|
||||
<!--<module name="JavadocPackage"/>-->
|
||||
|
||||
<!--
|
||||
|
||||
FLINK CUSTOM CHECKS
|
||||
|
||||
-->
|
||||
|
||||
<module name="FileLength">
|
||||
<property name="max" value="3000"/>
|
||||
</module>
|
||||
|
||||
<!-- All Java AST specific tests live under TreeWalker module. -->
|
||||
<module name="TreeWalker">
|
||||
|
||||
<!-- Allow use of comment to suppress javadocstyle -->
|
||||
<module name="SuppressionCommentFilter">
|
||||
<property name="offCommentFormat" value="CHECKSTYLE.OFF\: ([\w\|]+)"/>
|
||||
<property name="onCommentFormat" value="CHECKSTYLE.ON\: ([\w\|]+)"/>
|
||||
<property name="checkFormat" value="$1"/>
|
||||
</module>
|
||||
|
||||
<!--
|
||||
|
||||
FLINK CUSTOM CHECKS
|
||||
|
||||
-->
|
||||
|
||||
<module name="RegexpSinglelineJava">
|
||||
<property name="format" value="^\t* +\t*\S" />
|
||||
<property name="message"
|
||||
value="Line has leading space characters; indentation should be performed with tabs only." />
|
||||
<property name="ignoreComments" value="true" />
|
||||
</module>
|
||||
|
||||
<!-- Prohibit T.getT() methods for standard boxed types -->
|
||||
<module name="Regexp">
|
||||
<property name="format" value="Boolean\.getBoolean"/>
|
||||
<property name="illegalPattern" value="true"/>
|
||||
<property name="message" value="Use System.getProperties() to get system properties."/>
|
||||
</module>
|
||||
|
||||
<module name="Regexp">
|
||||
<property name="format" value="Integer\.getInteger"/>
|
||||
<property name="illegalPattern" value="true"/>
|
||||
<property name="message" value="Use System.getProperties() to get system properties."/>
|
||||
</module>
|
||||
|
||||
<module name="Regexp">
|
||||
<property name="format" value="Long\.getLong"/>
|
||||
<property name="illegalPattern" value="true"/>
|
||||
<property name="message" value="Use System.getProperties() to get system properties."/>
|
||||
</module>
|
||||
|
||||
<!--
|
||||
|
||||
IllegalImport cannot blacklist classes so we have to fall back to Regexp.
|
||||
|
||||
-->
|
||||
|
||||
<!-- forbid use of commons lang validate -->
|
||||
<module name="Regexp">
|
||||
<property name="format" value="org\.apache\.commons\.lang3\.Validate"/>
|
||||
<property name="illegalPattern" value="true"/>
|
||||
<property name="message" value="Use Guava Checks instead of Commons Validate. Please refer to the coding guidelines."/>
|
||||
</module>
|
||||
<!-- forbid the use of google.common.base.Preconditions -->
|
||||
<module name="Regexp">
|
||||
<property name="format" value="import com\.google\.common\.base\.Preconditions"/>
|
||||
<property name="illegalPattern" value="true"/>
|
||||
<property name="message" value="Use Flink's Preconditions instead of Guava's Preconditions"/>
|
||||
</module>
|
||||
<!-- forbid the use of com.google.common.annotations.VisibleForTesting -->
|
||||
<module name="Regexp">
|
||||
<property name="format" value="import com\.google\.common\.annotations\.VisibleForTesting"/>
|
||||
<property name="illegalPattern" value="true"/>
|
||||
<property name="message" value="Use Flink's VisibleForTesting instead of Guava's VisibleForTesting"/>
|
||||
</module>
|
||||
<module name="Regexp">
|
||||
<property name="format" value="import static com\.google\.common\.base\.Preconditions"/>
|
||||
<property name="illegalPattern" value="true"/>
|
||||
<property name="message" value="Use Flink's Preconditions instead of Guava's Preconditions"/>
|
||||
</module>
|
||||
<!-- forbid the use of org.apache.commons.lang.SerializationUtils -->
|
||||
<module name="Regexp">
|
||||
<property name="format" value="org\.apache\.commons\.lang\.SerializationUtils"/>
|
||||
<property name="illegalPattern" value="true"/>
|
||||
<property name="message" value="Use Flink's InstantiationUtil instead of common's SerializationUtils"/>
|
||||
</module>
|
||||
<module name="Regexp">
|
||||
<property name="format" value="org\.apache\.commons\.lang3\.SerializationUtils"/>
|
||||
<property name="illegalPattern" value="true"/>
|
||||
<property name="message" value="Use Flink's InstantiationUtil instead of common's SerializationUtils"/>
|
||||
</module>
|
||||
<module name="Regexp">
|
||||
<property name="format" value="org\.apache\.commons\.lang\."/>
|
||||
<property name="illegalPattern" value="true"/>
|
||||
<property name="message" value="Use commons-lang3 instead of commons-lang."/>
|
||||
</module>
|
||||
<module name="Regexp">
|
||||
<property name="format" value="org\.codehaus\.jettison"/>
|
||||
<property name="illegalPattern" value="true"/>
|
||||
<property name="message" value="Use com.fasterxml.jackson instead of jettison."/>
|
||||
</module>
|
||||
|
||||
<!-- Enforce Java-style array declarations -->
|
||||
<module name="ArrayTypeStyle" />
|
||||
|
||||
<module name="TodoComment">
|
||||
<!-- Checks that disallowed strings are not used in comments. -->
|
||||
<property name="format" value="(FIXME)|(XXX)|(@author)" />
|
||||
</module>
|
||||
|
||||
<!--
|
||||
|
||||
IMPORT CHECKS
|
||||
|
||||
-->
|
||||
|
||||
<module name="RedundantImport">
|
||||
<!-- Checks for redundant import statements. -->
|
||||
<property name="severity" value="error"/>
|
||||
<message key="import.redundancy"
|
||||
value="Redundant import {0}."/>
|
||||
</module>
|
||||
|
||||
<module name="ImportOrder">
|
||||
<!-- Checks for out of order import statements. -->
|
||||
<property name="severity" value="error"/>
|
||||
<property name="groups" value="org.apache.flink,org.apache.flink.shaded,*,javax,java,scala"/>
|
||||
<property name="separated" value="true"/>
|
||||
<property name="sortStaticImportsAlphabetically" value="true"/>
|
||||
<property name="option" value="bottom"/>
|
||||
<property name="tokens" value="STATIC_IMPORT, IMPORT"/>
|
||||
<message key="import.ordering"
|
||||
value="Import {0} appears after other imports that it should precede"/>
|
||||
</module>
|
||||
|
||||
<module name="AvoidStarImport">
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="IllegalImport">
|
||||
<property name="illegalPkgs" value="autovalue.shaded, avro.shaded, com.google.api.client.repackaged, com.google.appengine.repackaged, org.codehaus.jackson, io.netty, org.objectweb.asm, com.google.common"/>
|
||||
</module>
|
||||
|
||||
<module name="RedundantModifier">
|
||||
<!-- Checks for redundant modifiers on various symbol definitions.
|
||||
See: http://checkstyle.sourceforge.net/config_modifier.html#RedundantModifier
|
||||
|
||||
We exclude METHOD_DEF to allow final methods in final classes to make them more future-proof.
|
||||
-->
|
||||
<property name="tokens" value="VARIABLE_DEF, ANNOTATION_FIELD_DEF, INTERFACE_DEF, CLASS_DEF, ENUM_DEF"/>
|
||||
</module>
|
||||
|
||||
<!--
|
||||
IllegalImport cannot blacklist classes, and c.g.api.client.util is used for some shaded
|
||||
code and some useful code. So we need to fall back to Regexp.
|
||||
-->
|
||||
<!--<module name="RegexpSinglelineJava">-->
|
||||
<!--<property name="format" value="com\.google\.api\.client\.util\.(ByteStreams|Charsets|Collections2|Joiner|Lists|Maps|Objects|Preconditions|Sets|Strings|Throwables)"/>-->
|
||||
<!--</module>-->
|
||||
|
||||
<!--
|
||||
Require static importing from Preconditions.
|
||||
-->
|
||||
<module name="RegexpSinglelineJava">
|
||||
<property name="format" value="^import com.google.common.base.Preconditions;$"/>
|
||||
<property name="message" value="Static import functions from Guava Preconditions"/>
|
||||
</module>
|
||||
|
||||
<module name="UnusedImports">
|
||||
<property name="severity" value="error"/>
|
||||
<property name="processJavadoc" value="true"/>
|
||||
<message key="import.unused"
|
||||
value="Unused import: {0}."/>
|
||||
</module>
|
||||
|
||||
<!--
|
||||
|
||||
JAVADOC CHECKS
|
||||
|
||||
-->
|
||||
|
||||
<!-- Checks for Javadoc comments. -->
|
||||
<!-- See http://checkstyle.sf.net/config_javadoc.html -->
|
||||
<module name="JavadocMethod">
|
||||
<property name="scope" value="protected"/>
|
||||
<property name="severity" value="error"/>
|
||||
<property name="allowMissingJavadoc" value="true"/>
|
||||
<property name="allowMissingParamTags" value="true"/>
|
||||
<property name="allowMissingReturnTag" value="true"/>
|
||||
<property name="allowMissingThrowsTags" value="true"/>
|
||||
<property name="allowThrowsTagsForSubclasses" value="true"/>
|
||||
<property name="allowUndeclaredRTE" value="true"/>
|
||||
<!-- This check sometimes failed for with "Unable to get class information for @throws tag" for custom exceptions -->
|
||||
<property name="suppressLoadErrors" value="true"/>
|
||||
</module>
|
||||
|
||||
<!-- Check that paragraph tags are used correctly in Javadoc. -->
|
||||
<module name="JavadocParagraph"/>
|
||||
|
||||
<module name="JavadocType">
|
||||
<property name="scope" value="protected"/>
|
||||
<property name="severity" value="error"/>
|
||||
<property name="allowMissingParamTags" value="true"/>
|
||||
</module>
|
||||
|
||||
<module name="JavadocStyle">
|
||||
<property name="severity" value="error"/>
|
||||
<property name="checkHtml" value="true"/>
|
||||
</module>
|
||||
|
||||
<!--
|
||||
|
||||
NAMING CHECKS
|
||||
|
||||
-->
|
||||
|
||||
<!-- Item 38 - Adhere to generally accepted naming conventions -->
|
||||
|
||||
<module name="PackageName">
|
||||
<!-- Validates identifiers for package names against the
|
||||
supplied expression. -->
|
||||
<!-- Here the default checkstyle rule restricts package name parts to
|
||||
seven characters, this is not in line with common practice at Google.
|
||||
-->
|
||||
<property name="format" value="^[a-z]+(\.[a-z][a-z0-9]{1,})*$"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="TypeNameCheck">
|
||||
<!-- Validates static, final fields against the
|
||||
expression "^[A-Z][a-zA-Z0-9]*$". -->
|
||||
<metadata name="altname" value="TypeName"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="ConstantNameCheck">
|
||||
<!-- Validates non-private, static, final fields against the supplied
|
||||
public/package final fields "^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$". -->
|
||||
<metadata name="altname" value="ConstantName"/>
|
||||
<property name="applyToPublic" value="true"/>
|
||||
<property name="applyToProtected" value="true"/>
|
||||
<property name="applyToPackage" value="true"/>
|
||||
<property name="applyToPrivate" value="false"/>
|
||||
<property name="format" value="^([A-Z][A-Z0-9]*(_[A-Z0-9]+)*|FLAG_.*)$"/>
|
||||
<message key="name.invalidPattern"
|
||||
value="Variable ''{0}'' should be in ALL_CAPS (if it is a constant) or be private (otherwise)."/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="StaticVariableNameCheck">
|
||||
<!-- Validates static, non-final fields against the supplied
|
||||
expression "^[a-z][a-zA-Z0-9]*_?$". -->
|
||||
<metadata name="altname" value="StaticVariableName"/>
|
||||
<property name="applyToPublic" value="true"/>
|
||||
<property name="applyToProtected" value="true"/>
|
||||
<property name="applyToPackage" value="true"/>
|
||||
<property name="applyToPrivate" value="true"/>
|
||||
<property name="format" value="^[a-z][a-zA-Z0-9]*_?$"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="MemberNameCheck">
|
||||
<!-- Validates non-static members against the supplied expression. -->
|
||||
<metadata name="altname" value="MemberName"/>
|
||||
<property name="applyToPublic" value="true"/>
|
||||
<property name="applyToProtected" value="true"/>
|
||||
<property name="applyToPackage" value="true"/>
|
||||
<property name="applyToPrivate" value="true"/>
|
||||
<property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="MethodNameCheck">
|
||||
<!-- Validates identifiers for method names. -->
|
||||
<metadata name="altname" value="MethodName"/>
|
||||
<property name="format" value="^[a-z][a-zA-Z0-9]*(_[a-zA-Z0-9]+)*$"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="ParameterName">
|
||||
<!-- Validates identifiers for method parameters against the
|
||||
expression "^[a-z][a-zA-Z0-9]*$". -->
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="LocalFinalVariableName">
|
||||
<!-- Validates identifiers for local final variables against the
|
||||
expression "^[a-z][a-zA-Z0-9]*$". -->
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="LocalVariableName">
|
||||
<!-- Validates identifiers for local variables against the
|
||||
expression "^[a-z][a-zA-Z0-9]*$". -->
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<!-- Type parameters must be either one of the four blessed letters
|
||||
T, K, V, W, X or else be capital-case terminated with a T,
|
||||
such as MyGenericParameterT -->
|
||||
<!--<module name="ClassTypeParameterName">-->
|
||||
<!--<property name="format" value="^(((T|K|V|W|X)[0-9]*)|([A-Z][a-z][a-zA-Z]*T))$"/>-->
|
||||
<!--<property name="severity" value="error"/>-->
|
||||
<!--</module>-->
|
||||
|
||||
<!--<module name="MethodTypeParameterName">-->
|
||||
<!--<property name="format" value="^(((T|K|V|W|X)[0-9]*)|([A-Z][a-z][a-zA-Z]*T))$"/>-->
|
||||
<!--<property name="severity" value="error"/>-->
|
||||
<!--</module>-->
|
||||
|
||||
<!--<module name="InterfaceTypeParameterName">-->
|
||||
<!--<property name="format" value="^(((T|K|V|W|X)[0-9]*)|([A-Z][a-z][a-zA-Z]*T))$"/>-->
|
||||
<!--<property name="severity" value="error"/>-->
|
||||
<!--</module>-->
|
||||
|
||||
<!--
|
||||
|
||||
LENGTH and CODING CHECKS
|
||||
|
||||
-->
|
||||
|
||||
<!--<module name="LineLength">-->
|
||||
<!--<!– Checks if a line is too long. –>-->
|
||||
<!--<property name="max" value="100"/>-->
|
||||
<!--<property name="severity" value="error"/>-->
|
||||
|
||||
<!--<!–-->
|
||||
<!--The default ignore pattern exempts the following elements:-->
|
||||
<!-- - import statements-->
|
||||
<!-- - long URLs inside comments-->
|
||||
<!--–>-->
|
||||
|
||||
<!--<property name="ignorePattern"-->
|
||||
<!--value="^(package .*;\s*)|(import .*;\s*)|( *\* .*https?://.*)$"/>-->
|
||||
<!--</module>-->
|
||||
|
||||
<module name="LeftCurly">
|
||||
<!-- Checks for placement of the left curly brace ('{'). -->
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<!--<module name="RightCurly">-->
|
||||
<!--<!– Checks right curlies on CATCH, ELSE, and TRY blocks are on-->
|
||||
<!--the same line. e.g., the following example is fine:-->
|
||||
<!--<pre>-->
|
||||
<!--if {-->
|
||||
<!--...-->
|
||||
<!--} else-->
|
||||
<!--</pre>-->
|
||||
<!--–>-->
|
||||
<!--<!– This next example is not fine:-->
|
||||
<!--<pre>-->
|
||||
<!--if {-->
|
||||
<!--...-->
|
||||
<!--}-->
|
||||
<!--else-->
|
||||
<!--</pre>-->
|
||||
<!--–>-->
|
||||
<!--<property name="option" value="same"/>-->
|
||||
<!--<property name="severity" value="error"/>-->
|
||||
<!--</module>-->
|
||||
|
||||
<!-- Checks for braces around if and else blocks -->
|
||||
<module name="NeedBraces">
|
||||
<property name="severity" value="error"/>
|
||||
<property name="tokens" value="LITERAL_IF, LITERAL_ELSE, LITERAL_FOR, LITERAL_WHILE, LITERAL_DO"/>
|
||||
</module>
|
||||
|
||||
<module name="UpperEll">
|
||||
<!-- Checks that long constants are defined with an upper ell.-->
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="FallThrough">
|
||||
<!-- Warn about falling through to the next case statement. Similar to
|
||||
javac -Xlint:fallthrough, but the check is suppressed if a single-line comment
|
||||
on the last non-blank line preceding the fallen-into case contains 'fall through' (or
|
||||
some other variants that we don't publicized to promote consistency).
|
||||
-->
|
||||
<property name="reliefPattern"
|
||||
value="fall through|Fall through|fallthru|Fallthru|falls through|Falls through|fallthrough|Fallthrough|No break|NO break|no break|continue on"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<!-- Checks for over-complicated boolean expressions. -->
|
||||
<module name="SimplifyBooleanExpression"/>
|
||||
|
||||
<!-- Detects empty statements (standalone ";" semicolon). -->
|
||||
<module name="EmptyStatement"/>
|
||||
|
||||
<!-- Detect multiple consecutive semicolons (e.g. ";;"). -->
|
||||
<module name="RegexpSinglelineJava">
|
||||
<property name="format" value=";{2,}"/>
|
||||
<property name="message" value="Use one semicolon"/>
|
||||
<property name="ignoreComments" value="true"/>
|
||||
</module>
|
||||
|
||||
<!--
|
||||
|
||||
MODIFIERS CHECKS
|
||||
|
||||
-->
|
||||
|
||||
<module name="ModifierOrder">
|
||||
<!-- Warn if modifier order is inconsistent with JLS3 8.1.1, 8.3.1, and
|
||||
8.4.3. The prescribed order is:
|
||||
public, protected, private, abstract, static, final, transient, volatile,
|
||||
synchronized, native, strictfp
|
||||
-->
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
|
||||
<!--
|
||||
|
||||
WHITESPACE CHECKS
|
||||
|
||||
-->
|
||||
|
||||
<module name="EmptyLineSeparator">
|
||||
<!-- Checks for empty line separator between tokens. The only
|
||||
excluded token is VARIABLE_DEF, allowing class fields to
|
||||
be declared on consecutive lines.
|
||||
-->
|
||||
<property name="allowMultipleEmptyLines" value="false"/>
|
||||
<property name="allowMultipleEmptyLinesInsideClassMembers" value="false"/>
|
||||
<property name="tokens" value="PACKAGE_DEF, IMPORT, STATIC_IMPORT, CLASS_DEF,
|
||||
INTERFACE_DEF, ENUM_DEF, STATIC_INIT, INSTANCE_INIT, METHOD_DEF,
|
||||
CTOR_DEF"/>
|
||||
</module>
|
||||
|
||||
<module name="WhitespaceAround">
|
||||
<!-- Checks that various tokens are surrounded by whitespace.
|
||||
This includes most binary operators and keywords followed
|
||||
by regular or curly braces.
|
||||
-->
|
||||
<property name="tokens" value="ASSIGN, BAND, BAND_ASSIGN, BOR,
|
||||
BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN,
|
||||
EQUAL, GE, GT, LAMBDA, LAND, LE, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE,
|
||||
LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_RETURN,
|
||||
LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, LOR, LT, MINUS,
|
||||
MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION,
|
||||
SL, SL_ASSIGN, SR_ASSIGN, STAR, STAR_ASSIGN, TYPE_EXTENSION_AND"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="WhitespaceAfter">
|
||||
<!-- Checks that commas, semicolons and typecasts are followed by
|
||||
whitespace.
|
||||
-->
|
||||
<property name="tokens" value="COMMA, SEMI, TYPECAST"/>
|
||||
</module>
|
||||
|
||||
<module name="NoWhitespaceAfter">
|
||||
<!-- Checks that there is no whitespace after various unary operators.
|
||||
Linebreaks are allowed.
|
||||
-->
|
||||
<property name="tokens" value="BNOT, DEC, DOT, INC, LNOT, UNARY_MINUS,
|
||||
UNARY_PLUS"/>
|
||||
<property name="allowLineBreaks" value="true"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<module name="NoWhitespaceBefore">
|
||||
<!-- Checks that there is no whitespace before various unary operators.
|
||||
Linebreaks are allowed.
|
||||
-->
|
||||
<property name="tokens" value="SEMI, DOT, POST_DEC, POST_INC"/>
|
||||
<property name="allowLineBreaks" value="true"/>
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
<!--<module name="OperatorWrap">-->
|
||||
<!--<!– Checks that operators like + and ? appear at newlines rather than-->
|
||||
<!--at the end of the previous line.-->
|
||||
<!--–>-->
|
||||
<!--<property name="option" value="NL"/>-->
|
||||
<!--<property name="tokens" value="BAND, BOR, BSR, BXOR, DIV, EQUAL,-->
|
||||
<!--GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR, LT, MINUS, MOD,-->
|
||||
<!--NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR "/>-->
|
||||
<!--</module>-->
|
||||
|
||||
<module name="OperatorWrap">
|
||||
<!-- Checks that assignment operators are at the end of the line. -->
|
||||
<property name="option" value="eol"/>
|
||||
<property name="tokens" value="ASSIGN"/>
|
||||
</module>
|
||||
|
||||
<module name="ParenPad">
|
||||
<!-- Checks that there is no whitespace before close parens or after
|
||||
open parens.
|
||||
-->
|
||||
<property name="severity" value="error"/>
|
||||
</module>
|
||||
|
||||
</module>
|
||||
</module>
|
||||
|
@ -0,0 +1,64 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
|
||||
<!DOCTYPE suppressions PUBLIC
|
||||
"-//Puppy Crawl//DTD Suppressions 1.1//EN"
|
||||
"http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
|
||||
|
||||
<suppressions>
|
||||
<suppress files="org[\\/]apache[\\/]flink[\\/]formats[\\/]avro[\\/]generated[\\/].*.java" checks="[a-zA-Z0-9]*"/>
|
||||
<suppress files="org[\\/]apache[\\/]flink[\\/]formats[\\/]parquet[\\/]generated[\\/].*.java" checks="[a-zA-Z0-9]*"/>
|
||||
<!-- Sometimes we have to temporarily fix very long, different formatted Calcite files. -->
|
||||
<suppress files="org[\\/]apache[\\/]calcite.*" checks="[a-zA-Z0-9]*"/>
|
||||
|
||||
<!-- Temporarily fix TM Metaspace memory leak caused by Apache Beam sdk harness. -->
|
||||
<suppress files="org[\\/]apache[\\/]beam.*.java" checks="[a-zA-Z0-9]*"/>
|
||||
|
||||
<!-- Have to use guava directly -->
|
||||
<suppress
|
||||
files="OverConvertRule.java|CustomizedConvertRule.java"
|
||||
checks="IllegalImport"/>
|
||||
<!-- Cassandra connectors have to use guava directly -->
|
||||
<suppress
|
||||
files="AbstractCassandraTupleSink.java|CassandraInputFormat.java|CassandraOutputFormatBase.java|CassandraSinkBase.java|CassandraSinkBaseTest.java|CassandraPojoSink.java|CassandraRowSink.java|CassandraTupleWriteAheadSink.java|CassandraRowWriteAheadSink.java|CassandraPojoOutputFormat.java"
|
||||
checks="IllegalImport"/>
|
||||
<!-- Kinesis producer has to use guava directly -->
|
||||
<suppress
|
||||
files="FlinkKinesisProducer.java|FlinkKinesisProducerTest.java"
|
||||
checks="IllegalImport"/>
|
||||
<!-- Classes copied from Hadoop -->
|
||||
<suppress
|
||||
files="org[\\/]apache[\\/]hadoop[\\/]conf[\\/]Configuration.java"
|
||||
checks=".*"/>
|
||||
<suppress
|
||||
files="org[\\/]apache[\\/]hadoop[\\/]util[\\/]NativeCodeLoader.java"
|
||||
checks=".*"/>
|
||||
<suppress
|
||||
files="org[\\/]apache[\\/]hadoop[\\/]util[\\/]VersionInfo.java"
|
||||
checks=".*"/>
|
||||
<!-- Classes copied from AWS -->
|
||||
<suppress
|
||||
files="com[\\/]amazonaws[\\/]services[\\/]s3[\\/]model[\\/]transform[\\/]XmlResponsesSaxParser.java"
|
||||
checks=".*"/>
|
||||
<!-- target directory is not relevant for checkstyle -->
|
||||
<suppress
|
||||
files="[\\/]target[\\/]"
|
||||
checks=".*"/>
|
||||
</suppressions>
|
Loading…
Reference in New Issue