This is an automated email from the ASF dual-hosted git repository.
dannycranmer pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/flink-connector-dynamodb.git
The following commit(s) were added to refs/heads/main by this push:
new 92090cb [FLINK-29246] Adding skeleton project files, checkstyle and
CI configuration
92090cb is described below
commit 92090cb2e2c15d884db8e14ccabb5d8c8e0cd58a
Author: Danny Cranmer <[email protected]>
AuthorDate: Fri Sep 9 14:15:53 2022 +0100
[FLINK-29246] Adding skeleton project files, checkstyle and CI configuration
---
.github/boring-cyborg.yml | 86 +++++
.github/workflows/ci.yml | 48 +++
.idea/vcs.xml | 6 +
flink-connector-aws-dynamodb/pom.xml | 47 +++
flink-sql-connector-aws-dynamodb/pom.xml | 125 +++++++
pom.xml | 108 ++++++
tools/maven/checkstyle.xml | 567 +++++++++++++++++++++++++++++++
tools/maven/suppressions.xml | 25 ++
8 files changed, 1012 insertions(+)
diff --git a/.github/boring-cyborg.yml b/.github/boring-cyborg.yml
new file mode 100644
index 0000000..de966f2
--- /dev/null
+++ b/.github/boring-cyborg.yml
@@ -0,0 +1,86 @@
+################################################################################
+# 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.
+################################################################################
+
+labelPRBasedOnFilePath:
+ component=BuildSystem:
+ - .github/**/*
+ - tools/maven/*
+
+ component=Documentation:
+ - docs/**/*
+
+ component=Connectors/DynamoDB:
+ - flink-connector-aws-dynamodb*/**/*
+ - flink-sql-connector-aws-dynamodb*/**/*
+
+###### IssueLink Adder
#################################################################################################
+# Insert Issue (Jira/Github etc) link in PR description based on the Issue ID
in PR title.
+insertIssueLinkInPrDescription:
+ # specify the placeholder for the issue link that should be present in the
description
+ descriptionIssuePlaceholderRegexp: "^Issue link: (.*)$"
+ matchers:
+ # you can have several matches - for different types of issues
+ # only the first matching entry is replaced
+ jiraIssueMatch:
+ # specify the regexp of issue id that you can find in the title of the PR
+ # the match groups can be used to build the issue id (${1}, ${2}, etc.).
+ titleIssueIdRegexp: \[(FLINK-[0-9]+)\]
+ # the issue link to be added. ${1}, ${2} ... are replaced with the match
groups from the
+ # title match (remember to use quotes)
+ descriptionIssueLink:
"[${1}](https://issues.apache.org/jira/browse/${1}/)"
+ docOnlyIssueMatch:
+ titleIssueIdRegexp: \[hotfix\]
+ descriptionIssueLink: "`Documentation only change, no JIRA issue`"
+
+###### Title Validator
#################################################################################################
+# Verifies if commit/PR titles match the regexp specified
+verifyTitles:
+ # Regular expression that should be matched by titles of commits or PR
+ titleRegexp: ^\[FLINK-[0-9]+\].*$|^\[FLINK-XXXXX\].*$|^\[hotfix].*$
+ # If set to true, it will always check the PR title (as opposed to the
individual commits).
+ alwaysUsePrTitle: false
+ # If set to true, it will only check the commit in case there is a single
commit.
+ # In case of multiple commits it will check PR title.
+ # This reflects the standard behaviour of Github that for `Squash & Merge`
GitHub
+ # uses the PR title rather than commit messages for the squashed commit
¯\_(ツ)_/¯
+ # For single-commit PRs it takes the squashed commit message from the commit
as expected.
+ #
+ # If set to false it will check all commit messages. This is useful when you
do not squash commits at merge.
+ validateEitherPrOrSingleCommitTitle: true
+ # The title the GitHub status should appear from.
+ statusTitle: "Title Validator"
+ # A custom message to be displayed when the title passes validation.
+ successMessage: "Validation successful!"
+ # A custom message to be displayed when the title fails validation.
+ # Allows insertion of ${type} (commit/PR), ${title} (the title validated)
and ${regex} (the titleRegexp above).
+ failureMessage: "Wrong ${type} title: ${title}"
+
+# Various Flags to control behaviour of the "Labeler"
+labelerFlags:
+ # If this flag is changed to 'false', labels would only be added when the PR
is first created
+ # and not when existing PR is updated.
+ # The default is 'true' which means the labels would be added when PR is
updated even if they
+ # were removed by the user
+ labelOnPRUpdates: true
+
+# Comment to be posted to welcome users when they open their first PR
+firstPRWelcomeComment: >
+ Thanks for opening this pull request! Please check out our contributing
guidelines. (https://flink.apache.org/contributing/how-to-contribute.html)
+# Comment to be posted to congratulate user on their first merged PR
+firstPRMergeComment: >
+ Awesome work, congrats on your first merged pull request!
\ No newline at end of file
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..e0dc2b9
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,48 @@
+################################################################################
+# 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.
+################################################################################
+
+name: Build flink-connector-dynamodb
+on: [push, pull_request]
+jobs:
+ compile_and_test:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ jdk: [8, 11]
+ env:
+ MVN_CONNECTION_OPTIONS: -Dhttp.keepAlive=false
-Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
+ steps:
+ - run: echo "Running CI pipeline for JDK version ${{ matrix.jdk }}"
+
+ - name: Check out repository code
+ uses: actions/checkout@v2
+
+ - name: Set JDK
+ uses: actions/setup-java@v2
+ with:
+ java-version: ${{ matrix.jdk }}
+ distribution: 'temurin'
+ cache: 'maven'
+
+ - name: Set Maven 3.8.5
+ uses: stCarolas/[email protected]
+ with:
+ maven-version: 3.8.5
+
+ - name: Compile and test flink-connector-dynamodb
+ run: mvn clean install -Dflink.convergence.phase=install
-Pcheck-convergence -U -B ${{ env.MVN_CONNECTION_OPTIONS }}
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="VcsDirectoryMappings">
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
+ </component>
+</project>
\ No newline at end of file
diff --git a/flink-connector-aws-dynamodb/pom.xml
b/flink-connector-aws-dynamodb/pom.xml
new file mode 100644
index 0000000..80401ad
--- /dev/null
+++ b/flink-connector-aws-dynamodb/pom.xml
@@ -0,0 +1,47 @@
+<?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-aws-dynamodb-parent</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>flink-connector-aws-dynamodb</artifactId>
+ <name>Flink : Connectors : Amazon DynamoDB</name>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.flink</groupId>
+ <artifactId>flink-test-utils-junit</artifactId>
+ <version>${flink.version}</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+</project>
diff --git a/flink-sql-connector-aws-dynamodb/pom.xml
b/flink-sql-connector-aws-dynamodb/pom.xml
new file mode 100644
index 0000000..672898b
--- /dev/null
+++ b/flink-sql-connector-aws-dynamodb/pom.xml
@@ -0,0 +1,125 @@
+<?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-aws-dynamodb-parent</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>flink-sql-connector-aws-dynamodb</artifactId>
+ <name>Flink : Connectors : SQL : Amazon DynamoDB</name>
+ <packaging>jar</packaging>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.flink</groupId>
+ <artifactId>flink-test-utils-junit</artifactId>
+ <version>${flink.version}</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.flink</groupId>
+ <artifactId>flink-connector-aws-dynamodb</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <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>
+ <artifactSet>
+ <includes>
+
<include>org.apache.flink:flink-connector-base</include>
+
<include>org.apache.flink:flink-connector-aws-base</include>
+
<include>org.apache.flink:flink-connector-aws-dynamodb</include>
+
<include>software.amazon.awssdk:*</include>
+
<include>org.reactivestreams:*</include>
+
<include>com.typesafe.netty:*</include>
+
<include>org.apache.httpcomponents:*</include>
+
<include>io.netty:*</include>
+
<include>commons-logging:commons-logging</include>
+ </includes>
+ </artifactSet>
+ <relocations>
+ <relocation>
+
<pattern>software.amazon</pattern>
+
<shadedPattern>org.apache.flink.connector.dynamodb.shaded.software.amazon</shadedPattern>
+ </relocation>
+ <relocation>
+
<pattern>org.reactivestreams</pattern>
+
<shadedPattern>org.apache.flink.connector.dynamodb.shaded.org.reactivestreams</shadedPattern>
+ </relocation>
+ <relocation>
+
<pattern>com.typesafe.netty</pattern>
+
<shadedPattern>org.apache.flink.connector.dynamodb.shaded.com.typesafe.netty</shadedPattern>
+ </relocation>
+ <relocation>
+
<pattern>org.apache.http</pattern>
+
<shadedPattern>org.apache.flink.connector.dynamodb.shaded.org.apache.http</shadedPattern>
+ </relocation>
+ <relocation>
+
<pattern>io.netty</pattern>
+
<shadedPattern>org.apache.flink.connector.dynamodb.shaded.io.netty</shadedPattern>
+ </relocation>
+ </relocations>
+ <filters>
+ <filter>
+
<artifact>org.apache.flink:flink-connector-aws-dynamodb:*</artifact>
+
<excludes>
+
<exclude>profile</exclude>
+
</excludes>
+ </filter>
+ <filter>
+
<artifact>org.apache.flink:flink-connector-aws-base:*</artifact>
+
<excludes>
+
<exclude>profile</exclude>
+
</excludes>
+ </filter>
+ </filters>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..b673295
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,108 @@
+<?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-connectors</artifactId>
+ <version>1.15.2</version>
+ <relativePath/>
+ </parent>
+
+ <artifactId>flink-connector-aws-dynamodb-parent</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+
+ <name>Flink : Connectors : Amazon DynamoDB Parent</name>
+ <packaging>pom</packaging>
+ <url>https://flink.apache.org</url>
+ <inceptionYear>2022</inceptionYear>
+
+ <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>
+
+ <scm>
+ <url>https://github.com/apache/flink-connector-dynamodb</url>
+
<connection>[email protected]:apache/flink-connector-dynamodb.git</connection>
+
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/flink-connector-dynamodb.git</developerConnection>
+ </scm>
+
+ <properties>
+ <aws.sdk.version>2.17.247</aws.sdk.version>
+ <flink.version>1.15.2</flink.version>
+ </properties>
+
+ <modules>
+ <module>flink-connector-aws-dynamodb</module>
+ <module>flink-sql-connector-aws-dynamodb</module>
+ </modules>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>software.amazon.awssdk</groupId>
+ <artifactId>bom</artifactId>
+ <version>${aws.sdk.version}</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.flink</groupId>
+ <artifactId>flink-test-utils-junit</artifactId>
+ <version>${project.parent.version}</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+ <build>
+ <plugins>
+ <plugin>
+ <!-- Override directory for parent project -->
+ <groupId>org.commonjava.maven.plugins</groupId>
+ <artifactId>directory-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>directories</id>
+ <goals>
+
<goal>directory-of</goal>
+ </goals>
+ <configuration>
+
<property>rootDir</property>
+ <project>
+
<groupId>org.apache.flink</groupId>
+
<artifactId>flink-connector-aws-dynamodb-parent</artifactId>
+ </project>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/tools/maven/checkstyle.xml b/tools/maven/checkstyle.xml
new file mode 100644
index 0000000..a46c948
--- /dev/null
+++ b/tools/maven/checkstyle.xml
@@ -0,0 +1,567 @@
+<?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="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
+
+ -->
+
+ <!-- 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>
+ <module name="Regexp">
+ <property name="format"
value="org\.testcontainers\.shaded"/>
+ <property name="illegalPattern" value="true"/>
+ <property name="message" value="Use utilities from
appropriate library instead of org.testcontainers."/>
+ </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"/>
+ </module>
+ <module name="IllegalImport">
+ <property name="illegalPkgs"
value="org.codehaus.jackson"/>
+ <message key="import.illegal" value="{0}; Use
flink-shaded-jackson instead."/>
+ </module>
+ <module name="IllegalImport">
+ <property name="illegalPkgs" value="org.objectweb.asm"/>
+ <message key="import.illegal" value="{0}; Use
flink-shaded-asm instead."/>
+ </module>
+ <module name="IllegalImport">
+ <property name="illegalPkgs" value="io.netty"/>
+ <message key="import.illegal" value="{0}; Use
flink-shaded-netty instead."/>
+ </module>
+ <module name="IllegalImport">
+ <property name="illegalPkgs" value="com.google.common"/>
+ <message key="import.illegal" value="{0}; Use
flink-shaded-guava instead."/>
+ </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>-->
+
+ <!-- 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>
+
diff --git a/tools/maven/suppressions.xml b/tools/maven/suppressions.xml
new file mode 100644
index 0000000..58cbd13
--- /dev/null
+++ b/tools/maven/suppressions.xml
@@ -0,0 +1,25 @@
+<?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>
+
+</suppressions>
\ No newline at end of file