mirror of https://github.com/apache/druid.git
198 lines
8.8 KiB
XML
198 lines
8.8 KiB
XML
<?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.2//EN"
|
|
"http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
|
|
|
|
<module name="Checker">
|
|
<module name="Header">
|
|
<property name="headerFile" value="${checkstyle.header.file}"/>
|
|
<property name="fileExtensions" value="java"/>
|
|
</module>
|
|
|
|
<module name="SuppressionCommentFilter">
|
|
<property name="offCommentFormat" value="CHECKSTYLE.OFF\: ([\w\|]+)"/>
|
|
<property name="onCommentFormat" value="CHECKSTYLE.ON\: ([\w\|]+)"/>
|
|
<property name="checkFormat" value="$1"/>
|
|
</module>
|
|
|
|
<module name="NewlineAtEndOfFile"/>
|
|
<module name="FileTabCharacter"/>
|
|
|
|
<module name="TreeWalker">
|
|
<module name="FileContentsHolder"/>
|
|
|
|
<module name="RedundantModifier">
|
|
<property name="tokens" value="INTERFACE_DEF,ENUM_DEF,METHOD_DEF"/>
|
|
</module>
|
|
|
|
<!-- See http://checkstyle.sourceforge.net/checks.html for examples -->
|
|
|
|
<!--<module name="LineLength">-->
|
|
<!--<property name="max" value="120"/>-->
|
|
<!--</module>-->
|
|
<module name="AvoidStarImport"/>
|
|
<module name="AvoidStaticImport"/>
|
|
<module name="RedundantImport"/>
|
|
<module name="UnusedImports" />
|
|
<module name="NeedBraces"/>
|
|
<module name="LeftCurly">
|
|
<property name="option" value="nl"/>
|
|
<property name="tokens" value="INTERFACE_DEF,CLASS_DEF,ANNOTATION_DEF,ENUM_DEF,CTOR_DEF,METHOD_DEF"/>
|
|
</module>
|
|
<module name="LeftCurly">
|
|
<property name="option" value="eol"/>
|
|
<property name="tokens" value="LITERAL_WHILE,LITERAL_TRY,LITERAL_CATCH,LITERAL_FINALLY,LITERAL_SYNCHRONIZED,LITERAL_SWITCH,LITERAL_DO,LITERAL_IF,LITERAL_ELSE,LITERAL_FOR,STATIC_INIT,LAMBDA,ENUM_CONSTANT_DEF"/>
|
|
</module>
|
|
<module name="RightCurly">
|
|
<property name="option" value="same"/>
|
|
<property name="tokens" value="LITERAL_IF,LITERAL_ELSE,LITERAL_DO"/>
|
|
</module>
|
|
<module name="RightCurly">
|
|
<property name="option" value="alone"/>
|
|
<property name="tokens" value="LITERAL_TRY,LITERAL_CATCH,LITERAL_FINALLY,CLASS_DEF,METHOD_DEF,CTOR_DEF,LITERAL_FOR,LITERAL_WHILE,STATIC_INIT,INSTANCE_INIT"/>
|
|
</module>
|
|
|
|
<module name="WhitespaceAfter"/>
|
|
<module name="WhitespaceAround">
|
|
<property name="allowEmptyConstructors" value="true"/>
|
|
<property name="allowEmptyMethods" value="true"/>
|
|
<property name="allowEmptyLambdas" value="true"/>
|
|
<property name="allowEmptyTypes" value="true"/>
|
|
<property name="ignoreEnhancedForColon" value="false"/>
|
|
</module>
|
|
<module name="ParenPad"/>
|
|
<module name="SingleSpaceSeparator"/>
|
|
<module name="NoWhitespaceBefore">
|
|
<property name="tokens" value="COMMA,SEMI,POST_INC,POST_DEC,ELLIPSIS,METHOD_REF"/>
|
|
</module>
|
|
<module name="NoWhitespaceBefore">
|
|
<property name="tokens" value="DOT"/>
|
|
<property name="allowLineBreaks" value="true"/>
|
|
</module>
|
|
<module name="NoWhitespaceAfter"/>
|
|
<module name="NoWhitespaceAfter">
|
|
<property name="tokens" value="DOT"/>
|
|
<property name="allowLineBreaks" value="false"/>
|
|
</module>
|
|
<module name="GenericWhitespace"/>
|
|
|
|
<module name="Indentation">
|
|
<property name="basicOffset" value="2"/>
|
|
<property name="caseIndent" value="2"/>
|
|
</module>
|
|
|
|
<module name="MethodParamPad">
|
|
<property name="allowLineBreaks" value="true"/>
|
|
</module>
|
|
<module name="OneStatementPerLine"/>
|
|
<module name="EmptyStatement"/>
|
|
|
|
<module name="ModifierOrder" />
|
|
|
|
<module name="Regexp">
|
|
<property name="format" value="com\.google\.common\.io\.Closer"/>
|
|
<property name="illegalPattern" value="true"/>
|
|
<property name="message" value="Use io.druid.java.util.common.io.Closer instead of Guava's Closer"/>
|
|
</module>
|
|
<module name="Regexp">
|
|
<property name="format" value="^// {2}"/>
|
|
<property name="illegalPattern" value="true"/>
|
|
<property name="message" value="Don't commit IntelliJ-style commented code lines"/>
|
|
</module>
|
|
<module name="Regexp">
|
|
<property name="format" value="/\*[^\*].*?\n(\s*\*.*?\n)*\s+\*/[\s\n]*(transient|volatile|strictfp|synchronized|native|abstract|class|interface|enum|static|private|public|protected|default|void|byte|char|short|int|float|long|double|[A-Z])"/>
|
|
<property name="illegalPattern" value="true"/>
|
|
<property name="message" value="Comments to classes and methods must be Javadoc comments"/>
|
|
</module>
|
|
<module name="Regexp">
|
|
<property name="format" value="natural\(\)[\s\n]*\.[\s\n]*nullsFirst\(\)"/>
|
|
<property name="illegalPattern" value="true"/>
|
|
<property name="message" value="Use Comparators.naturalNullsFirst() instead of Ordering.natural().nullsFirst()"/>
|
|
</module>
|
|
<module name="Regexp">
|
|
<property name="format" value="Enums\.getIfPresent\("/>
|
|
<property name="illegalPattern" value="true"/>
|
|
<property name="message" value="Use GuavaUtils.getEnumIfPresent() instead of Enums.getIfPresent()"/>
|
|
</module>
|
|
<module name="Regexp">
|
|
<property name="format" value="(Byte|Character|Short|Integer|Long|Float|Double)\.TYPE"/>
|
|
<property name="illegalPattern" value="true"/>
|
|
<property name="message" value="Use primitive.class instead. But check twice that you don't actually need BoxedPrimitive.class instead of BoxedPrimitive.TYPE"/>
|
|
</module>
|
|
<module name="Regexp">
|
|
<property name="format" value="Float\.MAX_VALUE"/>
|
|
<property name="illegalPattern" value="true"/>
|
|
<property name="message" value="Use Float.POSITIVE_INFINITY"/>
|
|
</module>
|
|
<module name="Regexp">
|
|
<property name="format" value="Float\.MIN_VALUE"/>
|
|
<property name="illegalPattern" value="true"/>
|
|
<property name="message" value="Use Float.NEGATIVE_INFINITY"/>
|
|
</module>
|
|
<module name="Regexp">
|
|
<property name="format" value="Double\.MAX_VALUE"/>
|
|
<property name="illegalPattern" value="true"/>
|
|
<property name="message" value="Use Double.POSITIVE_INFINITY"/>
|
|
</module>
|
|
<module name="Regexp">
|
|
<property name="format" value="Double\.MIN_VALUE"/>
|
|
<property name="illegalPattern" value="true"/>
|
|
<property name="message" value="Use Double.NEGATIVE_INFINITY"/>
|
|
</module>
|
|
<module name="Regexp">
|
|
<property name="format" value="com\.metamx\.common\.logger"/>
|
|
<property name="illegalPattern" value="true"/>
|
|
<property name="message" value="Use io.druid.java.util.common.logger.Logger instead"/>
|
|
</module>
|
|
|
|
<module name="Regexp">
|
|
<!-- Couldn't check this in forbidden-apis, because javac replaces compile-time constants without refs. -->
|
|
<property name="format" value="(Shorts|Chars|Ints|Longs|Floats|Doubles)\.BYTES"/>
|
|
<property name="illegalPattern" value="true"/>
|
|
<property name="message" value="Use java.lang.Primitive.BYTES instead."/>
|
|
</module>
|
|
<!-- This regex should be replaced with an IntelliJ inspection when teamcity.jetbrains.com updates to at least IntelliJ 2018.1 (currently it uses 2017.2) -->
|
|
<module name="Regexp">
|
|
<property name="format" value='[a-z][a-zA-Z0-9_]*\.equals\((\"|[A-Z_]+\))'/>
|
|
<property name="illegalPattern" value="true"/>
|
|
<property name="message" value='Use "string".equals(javaVar) and STRING_CONSTANT.equals(javaVar) instead of javaVar.equals("string") and javaVar.equals(STRING_CONSTANT)'/>
|
|
</module>
|
|
|
|
<module name="Regexp">
|
|
<property name="format" value="toArray\([\s\n]*new [a-zA-Z0-9_]+\[[^0]"/>
|
|
<property name="illegalPattern" value="true"/>
|
|
<property name="message" value='Use toArray(new Object[0]) instead'/>
|
|
</module>
|
|
<module name="Regexp">
|
|
<property name="format" value="Strings.emptyToNull"/>
|
|
<property name="illegalPattern" value="true"/>
|
|
<property name="message" value="Use io.druid.common.config.NullHandling.emptyToNullIfNeeded instead"/>
|
|
</module>
|
|
<module name="Regexp">
|
|
<property name="format" value="Strings.nullToEmpty"/>
|
|
<property name="illegalPattern" value="true"/>
|
|
<property name="message" value="Use io.druid.common.config.NullHandling.nullToEmptyIfNeeded instead"/>
|
|
</module>
|
|
</module>
|
|
</module>
|