Skip to content

Commit be6b50c

Browse files
committed
Update pmd config to make it pmd 7 compatible
1 parent a7c2a05 commit be6b50c

2 files changed

Lines changed: 74 additions & 44 deletions

File tree

.github/linters/codespell.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@ environmnet
188188
equivalant
189189
erro
190190
erronous
191+
errorprone
191192
everthing
192193
everytime
193194
excetion

tools/checkstyle/src/main/resources/cloud-pmd.xml

Lines changed: 73 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -23,59 +23,88 @@
2323
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0">
2424

2525
<description>
26-
Ruleset that brings all the rulesets we want from the pmd jar, because
27-
the maven-pmd-plugin doesn't find them otherwise. This is also the place
28-
to add our own future rulesets, if any.
26+
CloudStack PMD ruleset. Enables all PMD 7 categories with
27+
project-specific exclusions for rules that are too noisy
28+
or incompatible with CloudStack conventions.
2929
</description>
3030

31-
<rule ref="category/java/basic.xml"/>
32-
<rule ref="category/java/braces.xml"/>
33-
<rule ref="category/java/clone.xml"/>
34-
<rule ref="category/java/codesize.xml"/>
35-
<rule ref="category/java/comments.xml">
36-
<!-- We shouldn't limit the number of lines in the header of a class -->
37-
<exclude name="CommentSize"/>
38-
<exclude name="CommentRequired" />
31+
<rule ref="category/java/bestpractices.xml">
32+
<exclude name="AbstractClassWithoutAbstractMethod" />
33+
<exclude name="GuardLogStatement" />
34+
<exclude name="LiteralsFirstInComparisons" />
35+
<exclude name="PreserveStackTrace" />
36+
<exclude name="AvoidReassigningParameters" />
37+
<exclude name="LooseCoupling" />
38+
<exclude name="UseCollectionIsEmpty" />
39+
<exclude name="MissingOverride" />
40+
<exclude name="UnusedAssignment" />
3941
</rule>
40-
<rule ref="category/java/controversial.xml">
41-
<!-- The rule is good, but is not properly applied. It forces you to statically declare it as ConcurrentHashMap -->
42-
<exclude name="UseConcurrentHashMap"/>
43-
<exclude name="CallSuperInConstructor"/>
44-
<exclude name="AtLeastOneConstructor"/>
45-
<exclude name="AssignmentInOperand"/>
46-
<exclude name="NullAssignment"/>
47-
<exclude name="DataflowAnomalyAnalysis" />
48-
<exclude name="UseObjectForClearerAPI" />
42+
43+
<rule ref="category/java/codestyle.xml">
44+
<exclude name="ShortVariable" />
45+
<exclude name="AtLeastOneConstructor" />
46+
<exclude name="CallSuperInConstructor" />
47+
<exclude name="LocalVariableCouldBeFinal" />
48+
<exclude name="MethodArgumentCouldBeFinal" />
49+
<exclude name="OnlyOneReturn" />
50+
<exclude name="CommentDefaultAccessModifier" />
51+
<exclude name="FieldNamingConventions" />
52+
<exclude name="UseDiamondOperator" />
53+
<exclude name="UselessParentheses" />
54+
<exclude name="PrematureDeclaration" />
55+
<exclude name="UnnecessaryBoxing" />
56+
<exclude name="ControlStatementBraces" />
57+
<exclude name="FieldDeclarationsShouldBeAtStartOfClass" />
58+
<exclude name="ConfusingTernary" />
59+
<exclude name="UnnecessaryFullyQualifiedName" />
60+
<exclude name="LocalVariableNamingConventions" />
61+
<exclude name="UnnecessaryModifier" />
62+
<exclude name="LongVariable" />
4963
</rule>
50-
<rule ref="category/java/coupling.xml">
64+
65+
<rule ref="category/java/design.xml">
5166
<exclude name="ExcessiveImports" />
5267
<exclude name="LawOfDemeter"/>
68+
<exclude name="CyclomaticComplexity" />
69+
<exclude name="CognitiveComplexity" />
70+
<exclude name="NPathComplexity" />
71+
<exclude name="AvoidCatchingGenericException" />
72+
<exclude name="AvoidUncheckedExceptionsInSignatures" />
73+
<exclude name="ImmutableField" />
74+
<exclude name="NcssCount" />
75+
<exclude name="CollapsibleIfStatements" />
76+
<exclude name="MutableStaticState" />
77+
<exclude name="CouplingBetweenObjects" />
78+
<exclude name="TooManyMethods" />
79+
<exclude name="GodClass" />
5380
</rule>
54-
<rule ref="category/java/design.xml">
81+
82+
<rule ref="category/java/documentation.xml">
83+
<exclude name="CommentSize" />
84+
<exclude name="CommentRequired" />
85+
</rule>
86+
87+
<rule ref="category/java/errorprone.xml">
88+
<exclude name="AssignmentInOperand" />
89+
<exclude name="NullAssignment" />
5590
<exclude name="ConstructorCallsOverridableMethod"/>
56-
<exclude name="AbstractClassWithoutAbstractMethod"/>
57-
<exclude name="AvoidSynchronizedAtMethodLevel"/>
91+
<exclude name="AvoidDuplicateLiterals" />
92+
<exclude name="ReplaceJavaUtilDate" />
93+
<exclude name="AvoidLiteralsInIfCondition" />
94+
<exclude name="UseLocaleWithCaseConversions" />
95+
<exclude name="CompareObjectsWithEquals" />
5896
</rule>
59-
<rule ref="category/java/empty.xml"/>
60-
<rule ref="category/java/finalizers.xml"/>
61-
<rule ref="category/java/imports.xml"/>
62-
<rule ref="category/java/j2ee.xml"/>
63-
<rule ref="category/java/junit.xml"/>
64-
<rule ref="category/java/logging-java.xml"/>
65-
<rule ref="category/java/naming.xml">
66-
<exclude name="ShortVariable"/>
67-
<exclude name="AbstractNaming"/>
97+
98+
<rule ref="category/java/multithreading.xml">
99+
<exclude name="UseConcurrentHashMap" />
100+
<exclude name="AvoidSynchronizedAtMethodLevel"/>
101+
<exclude name="DoNotUseThreads" />
68102
</rule>
69-
<rule ref="category/java/naming.xml/LongVariable">
70-
<properties>
71-
<property name="minimum" value="32"/>
72-
</properties>
103+
104+
<rule ref="category/java/performance.xml">
105+
<exclude name="AvoidInstantiatingObjectsInLoops" />
106+
<exclude name="RedundantFieldInitializer" />
73107
</rule>
74-
<rule ref="category/java/optimizations.xml"/>
75-
<rule ref="category/java/strictexception.xml"/>
76-
<rule ref="category/java/strings.xml"/>
77-
<rule ref="category/java/sunsecure.xml"/>
78-
<rule ref="category/java/typeresolution.xml"/>
79-
<rule ref="category/java/unnecessary.xml"/>
80-
<rule ref="category/java/unusedcode.xml"/>
108+
<rule ref="category/java/security.xml" />
109+
81110
</ruleset>

0 commit comments

Comments
 (0)