Skip to content

Commit

Permalink
TRUNK-5091 Add PMD rules
Browse files Browse the repository at this point in the history
* updated checkstyle.xml so its rules do not overlap with rules defined
in PMD
* extracted PMD rules from codacy and added them to ruleset.xml so
codacy uses the PMD rules from the repository
  • Loading branch information
teleivo committed Mar 6, 2017
1 parent bae2781 commit 71c165f
Show file tree
Hide file tree
Showing 2 changed files with 108 additions and 2 deletions.
9 changes: 7 additions & 2 deletions checkstyle.xml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@

<module name="FileLength">
<property name="fileExtensions" value="java"/>
<property name="max" value="2500"/>
<property name="max" value="1500"/>
<property name="severity" value="error"/>
</module>

Expand Down Expand Up @@ -189,6 +189,9 @@
<property name="tokens" value="COMMA"/>
<property name="option" value="EOL"/>
</module>
<module name="PackageDeclaration">
<property name="severity" value="error"/>
</module>
<module name="PackageName">
<property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
<message key="name.invalidPattern"
Expand All @@ -213,7 +216,7 @@
<property name="severity" value="error"/>
</module>
<module name="ParameterNumber">
<property name="max" value="10" />
<property name="max" value="5" />
<property name="severity" value="error"/>
</module>
<module name="LocalVariableName">
Expand Down Expand Up @@ -370,6 +373,8 @@
<property name="severity" value="error"/>
</module>
<module name="IllegalThrows">
<property name="illegalClassNames"
value="java.lang.Throwable, java.lang.Exception, java.lang.Error, java.lang.RuntimeException, java.lang.NullPointerException"/>
<property name="severity" value="error"/>
</module>
<module name="IllegalInstantiation">
Expand Down
101 changes: 101 additions & 0 deletions ruleset.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
<?xml version="1.0"?>
<!--
This Source Code Form is subject to the terms of the Mozilla Public License,
v. 2.0. If a copy of the MPL was not distributed with this file, You can
obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under
the terms of the Healthcare Disclaimer located at http://openmrs.org/license.
Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS
graphic logo is a trademark of OpenMRS Inc.
-->
<ruleset name="OpenMRS ruleset"
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
<description>
This PMD ruleset checks the code for violations of the configured rules.

Refer to the docs for details on the rules

http://pmd.sourceforge.net/pmd-5.2.3/pmd-java/rules/index.html
</description>
<rule ref="rulesets/java/android.xml/DoNotHardCodeSDCard"/>

<rule ref="rulesets/java/basic.xml/CheckResultSet"/>
<rule ref="rulesets/java/basic.xml/CheckSkipResult"/>
<rule ref="rulesets/java/basic.xml/AvoidBranchingStatementAsLastInLoop"/>
<rule ref="rulesets/java/basic.xml/ExtendsObject"/>
<rule ref="rulesets/java/basic.xml/BooleanInstantiation"/>
<rule ref="rulesets/java/basic.xml/JumbledIncrementer"/>
<rule ref="rulesets/java/basic.xml/AvoidDecimalLiteralsInBigDecimalConstructor"/>
<rule ref="rulesets/java/basic.xml/MisplacedNullCheck"/>
<rule ref="rulesets/java/basic.xml/CollapsibleIfStatements"/>
<rule ref="rulesets/java/basic.xml/ReturnFromFinallyBlock"/>
<rule ref="rulesets/java/basic.xml/DontCallThreadRun"/>
<rule ref="rulesets/java/basic.xml/AvoidThreadGroup"/>
<rule ref="rulesets/java/basic.xml/DontUseFloatTypeForLoopIndices"/>
<rule ref="rulesets/java/basic.xml/BrokenNullCheck"/>
<rule ref="rulesets/java/basic.xml/AvoidMultipleUnaryOperators"/>
<rule ref="rulesets/java/basic.xml/UnconditionalIfStatement"/>

<rule ref="rulesets/java/controversial.xml/UnnecessaryConstructor"/>

<rule ref="rulesets/java/design.xml/CompareObjectsWithEquals"/>
<rule ref="rulesets/java/design.xml/FieldDeclarationsShouldBeAtStartOfClass"/>
<rule ref="rulesets/java/design.xml/LogicInversion"/>
<rule ref="rulesets/java/design.xml/SingularField"/>
<rule ref="rulesets/java/design.xml/SimplifyBooleanReturns"/>
<rule ref="rulesets/java/design.xml/AvoidInstanceofChecksInCatchClause"/>
<rule ref="rulesets/java/design.xml/NonCaseLabelInSwitchStatement"/>
<rule ref="rulesets/java/design.xml/NonStaticInitializer"/>
<rule ref="rulesets/java/design.xml/AvoidReassigningParameters"/>
<rule ref="rulesets/java/design.xml/SwitchStmtsShouldHaveDefault"/>
<rule ref="rulesets/java/design.xml/MissingBreakInSwitch"/>
<rule ref="rulesets/java/design.xml/EqualsNull"/>
<rule ref="rulesets/java/design.xml/UncommentedEmptyMethodBody"/>
<rule ref="rulesets/java/design.xml/SimplifyBooleanExpressions"/>
<rule ref="rulesets/java/design.xml/AssignmentToNonFinalStatic"/>
<rule ref="rulesets/java/design.xml/MissingStaticMethodInNonInstantiatableClass"/>

<rule ref="rulesets/java/empty.xml/EmptyIfStmt"/>
<rule ref="rulesets/java/empty.xml/EmptyTryBlock"/>
<rule ref="rulesets/java/empty.xml/EmptyFinallyBlock"/>
<rule ref="rulesets/java/empty.xml/EmptyStatementNotInLoop"/>
<rule ref="rulesets/java/empty.xml/EmptyStatementBlock"/>
<rule ref="rulesets/java/empty.xml/EmptyStaticInitializer"/>
<rule ref="rulesets/java/empty.xml/EmptyInitializer"/>
<rule ref="rulesets/java/empty.xml/EmptySwitchStatements"/>
<rule ref="rulesets/java/empty.xml/EmptySynchronizedBlock"/>

<rule ref="rulesets/java/finalizers.xml/AvoidCallingFinalize"/>
<rule ref="rulesets/java/finalizers.xml/EmptyFinalizer"/>

<rule ref="rulesets/java/imports.xml/UnnecessaryFullyQualifiedName"/>

<rule ref="rulesets/java/junit.xml/SimplifyBooleanAssertion"/>
<rule ref="rulesets/java/junit.xml/JUnitTestsShouldIncludeAssert"/>
<rule ref="rulesets/java/junit.xml/JUnitSpelling"/>
<rule ref="rulesets/java/junit.xml/JUnitStaticSuite"/>
<rule ref="rulesets/java/junit.xml/UnnecessaryBooleanAssertion"/>

<rule ref="rulesets/java/j2ee.xml/DoNotCallSystemExit"/>

<rule ref="rulesets/java/naming.xml/GenericsNaming"/>
<rule ref="rulesets/java/naming.xml/PackageCase"/>
<rule ref="rulesets/java/naming.xml/MethodWithSameNameAsEnclosingClass"/>

<rule ref="rulesets/java/strings.xml/StringInstantiation"/>
<rule ref="rulesets/java/strings.xml/StringToString"/>
<rule ref="rulesets/java/strings.xml/UseStringBufferLength"/>
<rule ref="rulesets/java/strings.xml/UnnecessaryCaseChange"/>

<rule ref="rulesets/java/unnecessary.xml/UselessOperationOnImmutable"/>
<rule ref="rulesets/java/unnecessary.xml/UnnecessaryReturn"/>

<rule ref="rulesets/java/unusedcode.xml/UnusedLocalVariable"/>
<rule ref="rulesets/java/unusedcode.xml/UnusedFormalParameter"/>
<rule ref="rulesets/java/unusedcode.xml/UnusedPrivateField"/>
<rule ref="rulesets/java/unusedcode.xml/UnusedPrivateMethod"/>
</ruleset>

0 comments on commit 71c165f

Please sign in to comment.