OSDN Git Service

update checkstyle plugin.
authorOlyutorskii <olyutorskii@users.osdn.me>
Thu, 6 Jun 2019 03:46:16 +0000 (12:46 +0900)
committerOlyutorskii <olyutorskii@users.osdn.me>
Thu, 6 Jun 2019 03:46:16 +0000 (12:46 +0900)
config/checkstyle/checkstyle-suppressions.xml
config/checkstyle/checkstyle.xml
pom.xml

index 728df15..9b0570a 100644 (file)
@@ -1,35 +1,49 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 
 <!DOCTYPE suppressions PUBLIC
-    "-//Puppy Crawl//DTD Suppressions 1.1//EN"
-    "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
+    "-//Checkstyle//DTD SuppressionFilter Configuration 1.2//EN"
+    "https://checkstyle.org/dtds/suppressions_1_2.dtd">
 
 <!--
-    Checkstyle用警告抑止設定
-    ※ SuppressionFilter モジュール用
+    Checkstyle suppressions
+    for Checkstyle 8.20 or later
 
-    [ http://checkstyle.sourceforge.net/ ]
+    [ https://checkstyle.org/ ]
 
-    Copyright(c) 2010 olyutorskii
+    Copyright(c) 2019 olyutorskii
 -->
 
 
 <suppressions>
 
-<!--
-    <suppress files="" checks="ExecutableStatementCount" />
+    <!-- Annotations -->
+    <suppress files="" checks="AnnotationOnSameLine" />
 
-    <suppress files="" checks="ClassDataAbstractionCoupling" />
-    <suppress files="" checks="ClassFanOutComplexity" />
-    <suppress files="" checks="CyclomaticComplexity" />
-    <suppress files="" checks="NPathComplexity" />
-    <suppress files="" checks="JavaNCSS" />
--->
+    <!-- Class Design -->
+    <suppress files="" checks="DesignForExtension" />
 
-<!--
+    <!-- Coding -->
+    <suppress files="" checks="ExplicitInitialization" />
+    <suppress files="" checks="FinalLocalVariable" />
     <suppress files="" checks="MagicNumber" />
-    <suppress files="" checks="MultipleStringLiterals" />
--->
+
+    <!-- Imports -->
+    <suppress files="" checks="ImportControl" />
+
+    <!-- Javadoc Comments -->
+    <suppress files="" checks="JavadocParagraph" />
+    <suppress files="" checks="JavadocTagContinuationIndentation" />
+    <suppress files="" checks="SummaryJavadocCheck" />
+
+    <!-- Miscellaneous -->
+    <suppress files="" checks="FinalParameters" />
+    <suppress files="" checks="TrailingComment" />
+
+    <!-- Modifier -->
+    <suppress files="" checks="InterfaceMemberImpliedModifier" />
+
+    <!-- Whitespace -->
+    <suppress files="" checks="SingleSpaceSeparator" />
 
 </suppressions>
 
index 115efd5..7d19930 100644 (file)
@@ -1,17 +1,16 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 
 <!DOCTYPE module PUBLIC
-    "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
-    "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
+    "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
+    "https://checkstyle.org/dtds/configuration_1_3.dtd">
 
 <!--
-    Checkstyle用チェック項目定義。
+    Checkstyle modules
+    for Checkstyle 8.21 or later
 
-    Checkstyle 5.5 以降向けに記述。
+    [ https://checkstyle.org/ ]
 
-    [ http://checkstyle.sourceforge.net/ ]
-
-    Copyright(c) 2010 olyutorskii
+    Copyright(c) 2019 olyutorskii
 -->
 
 
 
     <property name="charset" value="UTF-8" />
     <property name="localeCountry" value="JP" />
-    <property name="localeLanguage" value="ja" />
+    <property name="localeLanguage" value="en" />
+    <!--property name="localeLanguage" value="ja" /-->
+    <property name="fileExtensions" value="java, properties, xml, xsd, md, txt" />
     <property name="severity" value="error" />
 
 
     <!-- Filters -->
-    <module name="SeverityMatchFilter" />
-    <!--module name="SuppressionFilter">
-        <property name="file" value="src/main/config/suppressions.xml" />
-    </module-->
-    <module name="SuppressionCommentFilter" />
-    <module name="SuppressWithNearbyCommentFilter" />
-
 
-    <!-- Duplicate Code -->
-    <module name="StrictDuplicateCode">
-        <property name="min" value="20" />
-    </module>
+    <module name="SeverityMatchFilter" />
+    <!--module name="SuppressionFilter" /-->
+    <module name="SuppressWarningsFilter" />
+    <module name="SuppressWithPlainTextCommentFilter" />
 
 
     <!-- Headers -->
+
+    <module name="Header">
+        <property name="header" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;" />
+        <property name="fileExtensions" value="xml" />
+    </module>
     <module name="RegexpHeader">
         <property name="header" value="^/\*$\n^ \*( .*)?$\n^ \*/$\n" />
         <property name="multiLines" value="2" />
 
 
     <!-- Javadoc Comments -->
+
     <module name="JavadocPackage" />
 
 
     <!-- Miscellaneous -->
+
     <module name="NewlineAtEndOfFile">
-        <property name="fileExtensions" value="java" />
+        <property name="fileExtensions" value="java, properties, xml, xsd, md, txt" />
     </module>
     <module name="Translation" />
+    <module name="UniqueProperties" />
 
 
     <!-- Regexp -->
+
+    <module name="RegexpMultiline">
+        <property name="format" value="[\u000b\f\u001a]" />
+    </module>
+    <module name="RegexpOnFilename" />
     <module name="RegexpSingleline">
         <property name="format" value="\s+$" />
-        <property name="minimum" value="0" />
-        <property name="maximum" value="0" />
+    </module>
+    <module name="RegexpSingleline">
+        <!-- scm conflict -->
+        <property name="format" value="&lt;&lt;&lt;&lt;&lt;" />
     </module>
 
 
     <!-- Size Violations -->
+
     <module name="FileLength" />
 
 
     <!-- Whitespace -->
+
     <module name="FileTabCharacter" />
 
 
+    <module name="BeforeExecutionExclusionFileFilter">
+        <property name="fileNamePattern" value="module\-info\.java$" />
+    </module>
+
+
     <module name="TreeWalker">
 
-        <module name="FileContentsHolder" />
+        <property name="tabWidth" value="8" />
+        <property name="fileExtensions" value="java" />
+
+        <module name="SuppressWarningsHolder" />
+
+
+    <!-- Filters -->
+
+        <module name="SuppressionCommentFilter" />
+        <module name="SuppressWithNearbyCommentFilter" />
+        <!--module name="SuppressionXpathFilter" /-->
+        <!--module name="SuppressionXpathSingleFilter" /-->
 
 
     <!-- Annotations -->
 
+        <module name="AnnotationLocation" />
+        <module name="AnnotationOnSameLine" />
         <module name="AnnotationUseStyle" />
         <module name="MissingDeprecated" />
         <module name="MissingOverride" />
         <module name="PackageAnnotation" />
         <module name="SuppressWarnings" />
+        <module name="SuppressWarningsHolder" />
 
 
     <!-- Block Checks -->
 
+        <module name="AvoidNestedBlocks" />
         <module name="EmptyBlock" />
+        <module name="EmptyCatchBlock" />
         <module name="LeftCurly" />
         <module name="NeedBraces">
-            <property name="tokens" value="LITERAL_DO" />
+            <property name="allowSingleLineStatement" value="true" />
         </module>
         <module name="RightCurly" />
-        <module name="AvoidNestedBlocks" />
 
 
     <!-- Class Design -->
 
-        <module name="VisibilityModifier" />
+        <module name="DesignForExtension" />
         <module name="FinalClass" />
-        <module name="InterfaceIsType" />
         <module name="HideUtilityClassConstructor" />
-<!--    <module name="DesignForExtension" />  -->
-        <module name="MutableException" />
-        <module name="ThrowsCount">
-            <property name="max" value="4" />
-        </module>
         <module name="InnerTypeLast" />
+        <module name="InterfaceIsType" />
+        <module name="MutableException" />
+        <module name="OneTopLevelClass" />
+        <module name="ThrowsCount" />
+        <module name="VisibilityModifier" />
 
 
     <!-- Coding -->
         <module name="ArrayTrailingComma" />
         <module name="AvoidInlineConditionals" />
         <module name="CovariantEquals" />
-<!--    <module name="DoubleCheckedLocking" />  5.6 obsolete -->
+        <module name="DeclarationOrder" />
+        <module name="DefaultComesLast" />
         <module name="EmptyStatement" />
         <module name="EqualsAvoidNull" />
         <module name="EqualsHashCode" />
-<!--    <module name="FinalLocalVariable" />  -->
+        <module name="ExplicitInitialization" />
+        <module name="FallThrough" />
+        <module name="FinalLocalVariable" />
         <module name="HiddenField">
             <property name="ignoreConstructorParameter" value="true" />
             <property name="ignoreSetter" value="true" />
+            <property name="setterCanReturnItsClass" value="true" />
             <property name="ignoreAbstractMethods" value="true" />
         </module>
+        <module name="IllegalCatch" />
         <module name="IllegalInstantiation" />
+        <module name="IllegalThrows" />
         <module name="IllegalToken">
-            <property name="tokens" value="LITERAL_NATIVE, STATIC_IMPORT" />
-        </module>
-        <module name="IllegalTokenText">
-            <property name="tokens" value="NUM_INT, NUM_LONG" />
-            <property name="format" value="^0[^lx]" />
-            <property name="ignoreCase" value="true" />
+            <property name="tokens" value="LITERAL_NATIVE" />
         </module>
+        <module name="IllegalTokenText" />
+        <module name="IllegalType" />
         <module name="InnerAssignment" />
         <module name="MagicNumber" />
+        <module name="MissingCtor" />
         <module name="MissingSwitchDefault" />
         <module name="ModifiedControlVariable" />
-        <module name="RedundantThrows">
-            <property name="allowUnchecked" value="true" />
-            <property name="allowSubclasses" value="true" />
-        </module>
-        <module name="SimplifyBooleanExpression" />
-        <module name="SimplifyBooleanReturn" />
-        <module name="StringLiteralEquality" />
+        <module name="MultipleStringLiterals" />
+        <module name="MultipleVariableDeclarations" />
         <module name="NestedForDepth" />
         <module name="NestedIfDepth" />
         <module name="NestedTryDepth" />
         <module name="NoClone" />
         <module name="NoFinalizer" />
-        <module name="SuperClone" />
-        <module name="SuperFinalize" />
-        <module name="IllegalCatch" />
-        <module name="IllegalThrows" />
+        <module name="OneStatementPerLine" />
+        <module name="OverloadMethodsDeclarationOrder" />
         <module name="PackageDeclaration" />
-        <module name="JUnitTestCase" />
-        <module name="ReturnCount">
-            <property name="max" value="5" />
-        </module>
-        <module name="IllegalType" />
-        <module name="DeclarationOrder" />
         <module name="ParameterAssignment" />
-<!--    <module name="ExplicitInitialization" />  -->
-        <module name="DefaultComesLast" />
-        <module name="MissingCtor" />
-        <module name="FallThrough" />
-        <module name="MultipleStringLiterals" />
-        <module name="MultipleVariableDeclarations" />
         <module name="RequireThis">
             <property name="checkMethods" value="false" />
         </module>
+        <module name="ReturnCount" />
+        <module name="SimplifyBooleanExpression" />
+        <module name="SimplifyBooleanReturn" />
+        <module name="StringLiteralEquality" />
+        <module name="SuperClone" />
+        <module name="SuperFinalize" />
         <module name="UnnecessaryParentheses" />
-        <module name="OneStatementPerLine" />
+        <module name="VariableDeclarationUsageDistance">
+            <property name="allowedDistance" value="5"/>
+        </module>
 
 
     <!-- Imports -->
 
         <module name="AvoidStarImport" />
         <module name="AvoidStaticImport" />
+        <module name="CustomImportOrder" />
         <module name="IllegalImport" />
+        <!--module name="ImportControl" /-->
+        <module name="ImportOrder" />
         <module name="RedundantImport" />
         <module name="UnusedImports" />
-        <module name="ImportOrder" />
-<!--    <module name="ImportControl" />  -->
 
 
     <!-- Javadoc Comments -->
 
-        <module name="JavadocType" />
+        <module name="AtclauseOrder" />
         <module name="JavadocMethod" />
-        <module name="JavadocVariable">
-            <property name="scope" value="protected" />
-        </module>
+        <module name="JavadocParagraph" />
         <module name="JavadocStyle">
             <property
                 name="endOfSentenceFormat"
             <property name="checkEmptyJavadoc" value="true" />
             <property name="checkHtml" value="true" />
         </module>
-<!--    <module name="WriteTag" />  -->
+        <module name="JavadocTagContinuationIndentation" />
+        <module name="JavadocType" />
+        <module name="JavadocVariable">
+            <property name="scope" value="protected" />
+        </module>
+        <module name="MissingJavadocMethod" />
+        <module name="MissingJavadocType" />
+        <module name="NonEmptyAtclauseDescription" />
+        <module name="SingleLineJavadoc" />
+        <module name="SummaryJavadocCheck" />
+        <module name="WriteTag" />
 
 
     <!-- Metrics -->
         <module name="ClassDataAbstractionCoupling" />
         <module name="ClassFanOutComplexity" />
         <module name="CyclomaticComplexity" />
-        <module name="NPathComplexity" />
         <module name="JavaNCSS" />
+        <module name="NPathComplexity" />
 
 
     <!-- Miscellaneous -->
 
-        <module name="TodoComment">
-            <property name="format" value="TODO" />
-        </module>
-        <module name="UncommentedMain" />
-        <module name="UpperEll" />
         <module name="ArrayTypeStyle" />
-<!--    <module name="FinalParameters" />  -->
-<!--    <module name="DescendantToken" />  -->
-<!--
+        <module name="AvoidEscapedUnicodeCharacters">
+            <property name="allowEscapesForControlCharacters" value="true" />
+            <property name="allowByTailComment" value="true" />
+            <property name="allowIfAllCharactersEscaped" value="true" />
+            <property name="allowNonPrintableEscapes" value="true" />
+        </module>
+        <module name="CommentsIndentation" />
+        <module name="DescendantToken" />
+        <module name="FinalParameters" />
         <module name="Indentation">
             <property name="caseIndent" value="0" />
         </module>
--->
-<!--    <module name="TrailingComment" />  -->
-        <module name="Regexp">
-            <property name="format" value="@author" />
-            <property name="illegalPattern" value="true" />
-        </module>
-        <module name="Regexp">
-            <property name="format" value="^ \* Copyright\(c\)" />
-        </module>
-        <module name="Regexp">
-            <property name="format" value="^ \* License : The MIT License" />
-            <property name="duplicateLimit" value="1" />
-        </module>
         <module name="OuterTypeFilename" />
+        <module name="TodoComment">
+            <property name="format" value="TODO" />
+        </module>
+        <module name="TrailingComment" />
+        <module name="UncommentedMain" />
+        <module name="UpperEll" />
 
 
     <!-- Modifiers -->
 
+        <module name="ClassMemberImpliedModifier" />
+        <module name="InterfaceMemberImpliedModifier" />
         <module name="ModifierOrder" />
         <module name="RedundantModifier" />
 
 
     <!-- Naming Conventions -->
 
-        <module name="AbstractClassName">
-            <property
-                name="format"
-                value="^Abstract.*$|^.*Factory$|^.*Builder$|^.*Adapter$"
-            />
-        </module>
+        <module name="AbbreviationAsWordInName" />
+        <module name="AbstractClassName" />
+        <module name="CatchParameterName" />
         <module name="ClassTypeParameterName" />
         <module name="ConstantName" />
-        <module name="LocalFinalVariableName">
-            <property name="format" value="^[a-z][_a-zA-Z0-9]*$" />
-        </module>
-        <module name="LocalVariableName">
-            <property name="format" value="^[a-z][_a-zA-Z0-9]*$" />
-        </module>
-        <module name="MemberName">
-            <property name="format" value="^[a-z][_a-zA-Z0-9]*$" />
-        </module>
+        <module name="InterfaceTypeParameterName" />
+        <module name="LambdaParameterName" />
+        <module name="LocalFinalVariableName" />
+        <module name="LocalVariableName" />
+        <module name="MemberName" />
         <module name="MethodName" />
         <module name="MethodTypeParameterName" />
         <module name="PackageName" />
-        <module name="ParameterName">
-            <property name="format" value="^[a-z][_a-zA-Z0-9]*$" />
+        <module name="ParameterName" />
+        <module name="StaticVariableName" />
+        <module name="TypeName" />
+
+
+    <!-- Regex -->
+
+        <module name="Regexp">
+            <property name="format" value="@author" />
+            <property name="illegalPattern" value="true" />
         </module>
-        <module name="StaticVariableName">
-            <property name="format" value="^[a-z][_a-zA-Z0-9]*$" />
+        <module name="Regexp">
+            <property name="format" value="^ \* Copyright\(c\)" />
+        </module>
+        <module name="Regexp">
+            <property name="format" value="^ \* License : The MIT License" />
+            <property name="duplicateLimit" value="1" />
+        </module>
+        <module name="RegexpSinglelineJava">
+            <property name="format" value="\u0000" />
         </module>
-        <module name="TypeName" />
 
 
     <!-- Size Violations -->
 
+        <module name="AnonInnerLength" />
         <module name="ExecutableStatementCount" />
         <module name="LineLength">
             <property name="max" value="78" />
         </module>
+        <module name="MethodCount" />
         <module name="MethodLength" />
-        <module name="AnonInnerLength" />
-        <module name="ParameterNumber" />
         <module name="OuterTypeNumber" />
-        <module name="MethodCount" />
+        <module name="ParameterNumber" />
 
 
     <!-- Whitespace -->
 
-        <module name="GenericWhitespace" />
         <module name="EmptyForInitializerPad" />
         <module name="EmptyForIteratorPad" />
-        <module name="MethodParamPad">
-            <property
-                name="tokens"
-                value="CTOR_DEF, LITERAL_NEW, METHOD_DEF, SUPER_CTOR_CALL"
-            />
-        </module>
-        <module name="NoWhitespaceAfter">
-            <property name="allowLineBreaks" value="false" />
-            <property name="tokens" value="DEC, DOT, INC" />
-        </module>
-        <module name="NoWhitespaceBefore">
-            <property name="allowLineBreaks" value="false" />
-            <property name="tokens" value="POST_DEC, POST_INC" />
-        </module>
-        <module name="NoWhitespaceBefore">
-            <property name="allowLineBreaks" value="true" />
-            <property name="tokens" value="SEMI" />
-        </module>
-        <module name="OperatorWrap">
-            <property name="option" value="eol" />
-            <property
-                name="tokens"
-                value="ASSIGN,
-                       BAND_ASSIGN, BOR_ASSIGN, BXOR_ASSIGN,
-                       PLUS_ASSIGN, MINUS_ASSIGN,
-                       STAR_ASSIGN, DIV_ASSIGN, MOD_ASSIGN,
-                       SL_ASSIGN, SR_ASSIGN"
-            />
-        </module>
-        <module name="OperatorWrap">
-            <property name="option" value="nl" />
+        <module name="EmptyLineSeparator">
             <property
                 name="tokens"
-                value="BAND, BOR, BXOR,
-                       MINUS, STAR, DIV, MOD,
-                       LAND, LOR,
-                       EQUAL"
+                value="PACKAGE_DEF,
+                       IMPORT,
+                       CLASS_DEF,
+                       INTERFACE_DEF,
+                       ENUM_DEF,
+                       STATIC_INIT,
+                       INSTANCE_INIT,
+                       METHOD_DEF,
+                       CTOR_DEF,
+                       "
             />
         </module>
+        <module name="GenericWhitespace" />
+        <module name="MethodParamPad" />
+        <module name="NoLineWrap" />
+        <module name="NoWhitespaceAfter" />
+        <module name="NoWhitespaceBefore" />
+        <module name="OperatorWrap" />
         <module name="ParenPad">
             <property name="option" value="nospace" />
             <property
                 value="CTOR_CALL, METHOD_CALL, SUPER_CTOR_CALL"
             />
         </module>
+        <module name="SeparatorWrap">
+            <property name="tokens" value="DOT"/>
+            <property name="option" value="nl"/>
+        </module>
+        <module name="SingleSpaceSeparator" />
         <module name="TypecastParenPad" />
-        <module name="WhitespaceAfter">
-            <property name="tokens" value="COMMA, SEMI" />
+        <module name="WhitespaceAfter" >
+            <property name="tokens" value="COMMA, SEMI," />
         </module>
         <module name="WhitespaceAround">
             <property
         </module>
 
 
-<!-- 代用品で解決
-        <module name="Header" />
-        <module name="RegexpSingleline" />
-        <module name="RegexpMultiline" />
-        <module name="RegexpSinglelineJava" />
--->
+    </module>
 
-<!-- Obsolated
-        <module name="TabCharacter" />
--->
 
     </module>
 
-</module>
-
 <!-- EOF -->
diff --git a/pom.xml b/pom.xml
index 14e4cac..daca47d 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -97,6 +97,8 @@
         <surefire-plugin.version>3.0.0-M3</surefire-plugin.version>
         <jacoco-plugin.version>0.8.4</jacoco-plugin.version>
 
+        <checkstyle-plugin.version>3.1.0</checkstyle-plugin.version>
+        <checkstyleruntime.version>8.21</checkstyleruntime.version>
         <checkstyle.config.location>${project.basedir}/config/checkstyle/checkstyle.xml</checkstyle.config.location>
         <checkstyle.suppressions.location>${project.basedir}/config/checkstyle/checkstyle-suppressions.xml</checkstyle.suppressions.location>
         <checkstyle.enable.rss>false</checkstyle.enable.rss>
         <pluginManagement>
 
             <plugins>
+
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-checkstyle-plugin</artifactId>
+                    <version>${checkstyle-plugin.version}</version>
+                    <dependencies>
+                        <dependency>
+                            <groupId>com.puppycrawl.tools</groupId>
+                            <artifactId>checkstyle</artifactId>
+                            <version>${checkstyleruntime.version}</version>
+                        </dependency>
+                    </dependencies>
+                </plugin>
+
             </plugins>
 
         </pluginManagement>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-checkstyle-plugin</artifactId>
-                <version>2.11</version>
-                <!-- config from property value -->
+                <version>${checkstyle-plugin.version}</version>
             </plugin>
 
             <plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-checkstyle-plugin</artifactId>
-                <version>2.11</version>
-                <configuration>
-                    <skip>false</skip>
-                    <!-- config from property value -->
-                </configuration>
+                <version>${checkstyle-plugin.version}</version>
                 <reportSets>
                     <reportSet>
                         <reports>