PHOENIX-1962 Apply check style to the build
Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/29ea5035 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/29ea5035 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/29ea5035 Branch: refs/heads/4.x-HBase-1.1 Commit: 29ea503546265a619ce501c477a109b69f940a00 Parents: f2be913 Author: Nick Dimiduk <ndimi...@apache.org> Authored: Sat May 9 11:10:54 2015 -0700 Committer: Nick Dimiduk <ndimi...@apache.org> Committed: Mon Jun 1 12:21:48 2015 -0700 ---------------------------------------------------------------------- phoenix-assembly/pom.xml | 4 + phoenix-core/pom.xml | 4 + phoenix-flume/pom.xml | 4 + phoenix-pherf/pom.xml | 1 + phoenix-pig/pom.xml | 4 + phoenix-server-client/pom.xml | 4 + phoenix-server/pom.xml | 4 + phoenix-spark/pom.xml | 1 + pom.xml | 23 ++ src/main/config/checkstyle/checker.xml | 281 +++++++++++++++++++++++ src/main/config/checkstyle/header.txt | 16 ++ src/main/config/checkstyle/suppressions.xml | 46 ++++ 12 files changed, 392 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/phoenix-assembly/pom.xml ---------------------------------------------------------------------- diff --git a/phoenix-assembly/pom.xml b/phoenix-assembly/pom.xml index 04d9335..d275d03 100644 --- a/phoenix-assembly/pom.xml +++ b/phoenix-assembly/pom.xml @@ -33,6 +33,10 @@ <description>Assemble Phoenix artifacts</description> <packaging>pom</packaging> + <properties> + <top.dir>${project.basedir}/..</top.dir> + </properties> + <build> <plugins> <plugin> http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/phoenix-core/pom.xml ---------------------------------------------------------------------- diff --git a/phoenix-core/pom.xml b/phoenix-core/pom.xml index 951e969..6302441 100644 --- a/phoenix-core/pom.xml +++ b/phoenix-core/pom.xml @@ -24,6 +24,10 @@ <url>http://www.apache.org</url> </organization> + <properties> + <top.dir>${project.basedir}/..</top.dir> + </properties> + <build> <resources> <resource> http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/phoenix-flume/pom.xml ---------------------------------------------------------------------- diff --git a/phoenix-flume/pom.xml b/phoenix-flume/pom.xml index ea87ab0..c7f0650 100644 --- a/phoenix-flume/pom.xml +++ b/phoenix-flume/pom.xml @@ -31,6 +31,10 @@ <artifactId>phoenix-flume</artifactId> <name>Phoenix - Flume</name> + <properties> + <top.dir>${project.basedir}/..</top.dir> + </properties> + <dependencies> <dependency> <groupId>org.apache.phoenix</groupId> http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/phoenix-pherf/pom.xml ---------------------------------------------------------------------- diff --git a/phoenix-pherf/pom.xml b/phoenix-pherf/pom.xml index e751d73..dd45075 100644 --- a/phoenix-pherf/pom.xml +++ b/phoenix-pherf/pom.xml @@ -30,6 +30,7 @@ <name>Phoenix - Pherf</name> <properties> + <top.dir>${project.basedir}/..</top.dir> </properties> <profiles> http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/phoenix-pig/pom.xml ---------------------------------------------------------------------- diff --git a/phoenix-pig/pom.xml b/phoenix-pig/pom.xml index 957c06f..55b34d3 100644 --- a/phoenix-pig/pom.xml +++ b/phoenix-pig/pom.xml @@ -31,6 +31,10 @@ <artifactId>phoenix-pig</artifactId> <name>Phoenix - Pig</name> + <properties> + <top.dir>${project.basedir}/..</top.dir> + </properties> + <dependencies> <dependency> <groupId>org.apache.phoenix</groupId> http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/phoenix-server-client/pom.xml ---------------------------------------------------------------------- diff --git a/phoenix-server-client/pom.xml b/phoenix-server-client/pom.xml index 748e57c..3e54a07 100644 --- a/phoenix-server-client/pom.xml +++ b/phoenix-server-client/pom.xml @@ -24,6 +24,10 @@ <url>http://www.apache.org</url> </organization> + <properties> + <top.dir>${project.basedir}/..</top.dir> + </properties> + <build> <plugins> <plugin> http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/phoenix-server/pom.xml ---------------------------------------------------------------------- diff --git a/phoenix-server/pom.xml b/phoenix-server/pom.xml index ab9a472..86b2525 100644 --- a/phoenix-server/pom.xml +++ b/phoenix-server/pom.xml @@ -24,6 +24,10 @@ <url>http://www.apache.org</url> </organization> + <properties> + <top.dir>${project.basedir}/..</top.dir> + </properties> + <build> <plugins> <plugin> http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/phoenix-spark/pom.xml ---------------------------------------------------------------------- diff --git a/phoenix-spark/pom.xml b/phoenix-spark/pom.xml index e42a7ec..1747573 100644 --- a/phoenix-spark/pom.xml +++ b/phoenix-spark/pom.xml @@ -37,6 +37,7 @@ <spark.version>1.3.0</spark.version> <scala.version>2.10.4</scala.version> <scala.binary.version>2.10</scala.binary.version> + <top.dir>${project.basedir}/..</top.dir> </properties> <dependencies> http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index f6708cc..be44399 100644 --- a/pom.xml +++ b/pom.xml @@ -76,6 +76,7 @@ <antlr-input.dir>src/main/antlr3</antlr-input.dir> <antlr-output.dir>target/generated-sources/antlr3</antlr-output.dir> <test.output.tofile>true</test.output.tofile> + <top.dir>${project.basedir}</top.dir> <!-- Hadoop Versions --> <hbase.version>1.1.0</hbase.version> @@ -332,6 +333,28 @@ <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-checkstyle-plugin</artifactId> + <version>2.13</version> + <executions> + <execution> + <id>validate</id> + <phase>validate</phase> + <configuration> + <configLocation>${top.dir}/src/main/config/checkstyle/checker.xml</configLocation> + <suppressionsLocation>${top.dir}/src/main/config/checkstyle/suppressions.xml</suppressionsLocation> + <consoleOutput>true</consoleOutput> + <headerLocation>${top.dir}/src/main/config/checkstyle/header.txt</headerLocation> + <failOnViolation><!--true-->false</failOnViolation> + <includeTestSourceDirectory><!--true-->false</includeTestSourceDirectory> + </configuration> + <goals> + <goal>check</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>2.2.1</version> <executions> http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/src/main/config/checkstyle/checker.xml ---------------------------------------------------------------------- diff --git a/src/main/config/checkstyle/checker.xml b/src/main/config/checkstyle/checker.xml new file mode 100644 index 0000000..ecf3946 --- /dev/null +++ b/src/main/config/checkstyle/checker.xml @@ -0,0 +1,281 @@ +<?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. +--> + +<!-- + This version of checkstyle is based on the Apache Calcite checkstyle + checkstyle configuration, which in turn is based on Giraph and Hadoop and + common-math configurations. + + The documentation for checkstyle is available at + + http://checkstyle.sourceforge.net +--> + +<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.1//EN" "http://www.puppycrawl.com/dtds/configuration_1_1.dtd"> + +<!-- Calcite customization of default Checkstyle behavior --> +<module name="Checker"> + <property name="localeLanguage" value="en"/> + + <!-- Checks for headers --> + <!-- See http://checkstyle.sf.net/config_header.html --> + <!-- Verify that EVERY source file has the appropriate license --> + <module name="Header"> + <property name="headerFile" value="${checkstyle.header.file}"/> + </module> + + <!-- Checks for Javadoc comments (checker). --> + <!-- See http://checkstyle.sf.net/config_javadoc.html --> + <!-- Require package javadoc --> + <module name="JavadocPackage"/> + + <!-- Miscellaneous other checks (checker). --> + <!-- See http://checkstyle.sf.net/config_misc.html --> + <!-- Require files to end with newline characters --> + <module name="NewlineAtEndOfFile"> + <property name="lineSeparator" value="lf"/> + </module> + + <!-- Checks for whitespace (tree walker) --> + <!-- See http://checkstyle.sf.net/config_whitespace.html --> + <!-- No tabs allowed! --> + <module name="FileTabCharacter"/> + + <module name="TreeWalker"> + <property name="cacheFile" value="target/checkstyle-cachefile"/> + + <!-- Checks for blocks. You know, those {}'s --> + <!-- See http://checkstyle.sf.net/config_blocks.html --> + <!-- No empty blocks (i.e. catch); must contain at least a comment --> + <module name="EmptyBlock"> + <property name="option" value="text"/> + </module> + <module name="AvoidNestedBlocks"> + <property name="allowInSwitchCase" value="true"/> + </module> + <module name="LeftCurly"/> + <!-- No if/else/do/for/while without braces --> + <module name="NeedBraces"/> + <module name="RightCurly"/> + + <!-- Checks for class design --> + <!-- See http://checkstyle.sf.net/config_design.html --> + <!-- Utility class should not be instantiated, they must have a + private constructor --> + <module name="HideUtilityClassConstructor"/> + + <!-- Checks for common coding problems --> + <!-- See http://checkstyle.sf.net/config_coding.html --> + <module name="EmptyStatement"/> + <!-- Require hash code override when equals is --> + <module name="EqualsHashCode"/> + <!-- Disallow unnecessary instantiation of Boolean, String --> + <module name="IllegalInstantiation"> + <property name="classes" value="java.lang.Boolean, java.lang.String"/> + </module> + <!-- Switch statements should be complete and with independent cases --> + <module name="FallThrough"/> + <!-- For hadoop_yarn profile, some YARN exceptions aren't loading in checkstyle --> + <module name="RedundantThrows"> + <property name="suppressLoadErrors" value="true" /> + </module> + <module name="SimplifyBooleanExpression"/> + <module name="SimplifyBooleanReturn"/> + <!-- Only one statement per line allowed --> + <module name="OneStatementPerLine"/> + <!-- Don't add up parentheses when they are not required --> + <module name="UnnecessaryParentheses" /> + <!-- Don't use = or != for string comparisons --> + <module name="StringLiteralEquality" /> + <!-- Don't declare multiple variables in the same statement --> + <module name="MultipleVariableDeclarations" /> + <!-- String literals more than one character long should not be + repeated several times --> + <!-- the "unchecked" string is also accepted to allow + @SuppressWarnings("unchecked") --> + <!-- Disabling for now until we have a better ignoreStringsRegexp --> + <!-- + <module name="MultipleStringLiterals" > + <property name="ignoreStringsRegexp" value='^(("")|(".")|("unchecked"))$'/> + </module> + --> + + <!-- Checks for imports --> + <!-- See http://checkstyle.sf.net/config_import.html --> + <module name="RedundantImport"/> + <!-- Import should be explicit, and only from pure java packages. + But we allow imports that are only used in javadoc. --> + <module name="UnusedImports"> + <property name="processJavadoc" value="true"/> + </module> + <module name="IllegalImport" /> + <module name="AvoidStarImport" /> + <module name="ImportOrder"> + <property name="groups" value="java,javax,lib,shared,common,platform,org,com,io,net,scala,clover"/> + <property name="ordered" value="true"/> + <property name="separated" value="true"/> + <property name="option" value="bottom"/> + </module> + + <!-- Checks for Javadoc comments (tree walker). --> + <!-- See http://checkstyle.sf.net/config_javadoc.html --> + <!-- Javadoc must be formatted correctly --> + <module name="JavadocStyle"> + <property name="checkFirstSentence" value="false"/> + </module> + <!-- Must have class / interface header comments --> + <module name="JavadocType"/> + + <!-- Miscellaneous other checks (tree walker). --> + <!-- See http://checkstyle.sf.net/config_misc.html --> + <!-- Java style arrays --> + <module name="ArrayTypeStyle"/> + <!-- Indentation --> + <module name="Indentation"> + <property name="caseIndent" value="0"/> + <property name="basicOffset" value="4"/> + <property name="braceAdjustment" value="0"/> + </module> + <!-- Turn this on to see what needs to be done + <module name="TodoComment"/> + --> + <module name="UpperEll"/> + + <module name="OperatorWrap"/> + + <!-- Modifier Checks --> + <!-- See http://checkstyle.sf.net/config_modifiers.html --> + <!-- Use a consistent way to put modifiers --> + <module name="ModifierOrder"/> + <module name="RedundantModifier"/> + + <!-- Checks for Naming Conventions. --> + <!-- See http://checkstyle.sf.net/config_naming.html --> + <!-- Constant names should obey the traditional all uppercase + naming convention --> + <module name="ConstantName"/> + <module name="LocalFinalVariableName"> + <!-- Allow '_' except first. --> + <property name="format" value="^[a-z][a-zA-Z0-9_]*$"/> + </module> + <module name="LocalVariableName"> + <!-- Allow '_' except first. --> + <property name="format" value="^[a-z][a-zA-Z0-9_]*$"/> + </module> + <module name="MemberName"/> + <module name="MethodName"> + <!-- Allow trailing '_', signifying private methods. + Also allow '_' prefix, indicating disabled method or junit test. --> + <property name="format" value="^_?[a-z][a-zA-Z0-9]*_?$"/> + </module> + <module name="PackageName"/> + <module name="ParameterName"> + <!-- Allow trailing '_'. --> + <property name="format" value="^[a-z][a-zA-Z0-9]*_?$"/> + </module> + <module name="StaticVariableName"/> + <module name="TypeName"/> + + <!-- Checks for regexp expressions. --> + <!-- See http://checkstyle.sf.net/config_regexp.html --> + + <!-- No trailing whitespace --> + <module name="Regexp"> + <property name="format" value="[ \t]+$"/> + <property name="illegalPattern" value="true"/> + <property name="message" value="Trailing whitespace"/> + </module> + + <!-- Authors should be in pom.xml file --> + <module name="Regexp"> + <property name="format" value="@author"/> + <property name="illegalPattern" value="true"/> + <property name="message" value="developers names should be in pom file"/> + </module> + + <!-- No multi-line C-style comments except at start of line. --> + <module name="Regexp"> + <property name="format" value="^ +/\*[^*][^/]$"/> + <property name="illegalPattern" value="true"/> + <property name="message" value="C-style comment"/> + </module> + + <module name="Regexp"> + <property name="format" value="^ +/\*$"/> + <property name="illegalPattern" value="true"/> + <property name="message" value="C-style comment"/> + </module> + + <!-- Checks for Size Violations. --> + <!-- See http://checkstyle.sf.net/config_sizes.html --> + <!-- Lines cannot exceed 100 chars, except if they are hyperlinks + or strings (possibly preceded by '+' and followed by say '),'. --> + <module name="LineLength"> + <property name="max" value="100"/> + <property name="ignorePattern" value="^import|@see|@link|@BaseMessage|href|^[ +]*".*"[);,]*$"/> + </module> + <!-- Over time, we will revise this down --> + <module name="MethodLength"> + <property name="max" value="390"/> + </module> + + <!-- Checks for whitespace (tree walker) --> + <!-- See http://checkstyle.sf.net/config_whitespace.html --> + <module name="EmptyForIteratorPad"/> + <!-- Spacing around methods --> + <module name="MethodParamPad"> + <property name="option" value="nospace"/> + <property name="allowLineBreaks" value="true"/> + </module> + <!-- No whitespace before a token --> + <module name="NoWhitespaceBefore"/> + <!-- Whitespace after tokens is required --> + <module name="WhitespaceAfter"/> + <!-- Whitespace around tokens is required --> + <module name="WhitespaceAround"> + <property name="allowEmptyConstructors" value="true"/> + <property name="allowEmptyMethods" value="true"/> + </module> + <module name="ParenPad"/> + <module name="TypecastParenPad"/> + <!-- No extra whitespace around types --> + <module name="GenericWhitespace"/> + + <!-- Required for SuppressionCommentFilter below --> + <module name="FileContentsHolder"/> + </module> + + <!-- Setup special comments to suppress specific checks from source files --> + <module name="SuppressionCommentFilter"> + <property name="offCommentFormat" value="CHECKSTYLE\: stop ([\w\|]+)"/> + <property name="onCommentFormat" value="CHECKSTYLE\: resume ([\w\|]+)"/> + <property name="checkFormat" value="$1"/> + </module> + + <!-- Turn off all checks between OFF and ON --> + <module name="SuppressionCommentFilter"> + <property name="offCommentFormat" value="CHECKSTYLE\: OFF"/> + <property name="onCommentFormat" value="CHECKSTYLE\: ON"/> + </module> + + <!-- Turn off checks for the next N lines. --> + <module name="SuppressWithNearbyCommentFilter"> + <property name="commentFormat" value="CHECKSTYLE: +IGNORE (\d+)"/> + <property name="influenceFormat" value="$1"/> + </module> +</module> http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/src/main/config/checkstyle/header.txt ---------------------------------------------------------------------- diff --git a/src/main/config/checkstyle/header.txt b/src/main/config/checkstyle/header.txt new file mode 100644 index 0000000..2a42971 --- /dev/null +++ b/src/main/config/checkstyle/header.txt @@ -0,0 +1,16 @@ +/* + * 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. + */ http://git-wip-us.apache.org/repos/asf/phoenix/blob/29ea5035/src/main/config/checkstyle/suppressions.xml ---------------------------------------------------------------------- diff --git a/src/main/config/checkstyle/suppressions.xml b/src/main/config/checkstyle/suppressions.xml new file mode 100644 index 0000000..6662eca --- /dev/null +++ b/src/main/config/checkstyle/suppressions.xml @@ -0,0 +1,46 @@ +<?xml version="1.0"?> +<!DOCTYPE suppressions PUBLIC + "-//Puppy Crawl//DTD Suppressions 1.1//EN" + "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd"> +<!-- +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. +--> +<suppressions> + <!-- Suppress checks on generated files. --> + <suppress checks="Header" files="CalciteResource.properties"/> + <suppress checks=".*" files="org-apache-calcite-jdbc.properties"/> + <suppress checks=".*" files="Foo.java"/> + <suppress checks=".*" files=".*/target/maven-archiver/pom.properties"/> + <suppress checks=".*" files="git.properties"/> + <suppress checks=".*" files="trace.properties"/> + <suppress checks=".*" files="release.properties"/> + + <!-- This file triggers https://github.com/checkstyle/checkstyle/issues/92, + through no fault of its own. --> + <suppress checks=".*" files="SqlSimpleParser.java"/> + + <!-- Don't complain about field names such as cust_id --> + <suppress checks=".*Name" files="JdbcExample.java"/> + + <!-- Suppress JavadocPackage in the test packages --> + <suppress checks="JavadocPackage" files="src[/\\]test[/\\]java[/\\]"/> + + <!-- And likewise in ubenchmark --> + <suppress checks="JavadocPackage" files="StatementTest.java"/> + + <!-- Method names in Resource can have underscores --> + <suppress checks="MethodName" files="CalciteResource.java"/> +</suppressions>