-
Notifications
You must be signed in to change notification settings - Fork 0
/
pmd-main-pmd-6.xml
160 lines (131 loc) · 5.5 KB
/
pmd-main-pmd-6.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ruleset xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
name="AW Java ruleset"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
<description>
Custom ruleset for Java projects
</description>
<rule ref="category/java/bestpractices.xml">
<exclude name="JUnitTestContainsTooManyAsserts"/>
<exclude name="LooseCoupling" />
<exclude name="OneDeclarationPerLine" />
<exclude name="GuardLogStatement" />
<!-- Duplicate of Checkstyle's UnusedImports, which understands javadoc -->
<exclude name="UnusedImports"/>
<exclude name="UseVarargs"/>
<!-- The new PMD checks for concatenations, it's ok then! -->
<!-- <exclude name="GuardLogStatement"/> -->
<!-- Assume we have few meaningful asserts, making this desired but not required -->
<exclude name="JUnitAssertionsShouldIncludeMessage" />
</rule>
<rule ref="category/java/codestyle.xml">
<exclude name="CommentDefaultAccessModifier"/>
<!-- Confusing ternary needs special configuration -->
<exclude name="ConfusingTernary"/>
<!-- Checkstyle's FinalParametersCheck forces final vars instead of detecting those that could be final -->
<exclude name="MethodArgumentCouldBeFinal"/>
<exclude name="LocalVariableCouldBeFinal"/>
<!-- old controversial rules -->
<exclude name="AtLeastOneConstructor"/>
<exclude name="AvoidFinalLocalVariable"/>
<exclude name="AvoidPrefixingMethodParameters"/>
<exclude name="AvoidUsingNativeCode"/>
<exclude name="CallSuperInConstructor"/>
<exclude name="DefaultPackage"/>
<exclude name="OnlyOneReturn"/>
<!-- j2ee rules -->
<exclude name="LocalHomeNamingConvention" />
<exclude name="LocalInterfaceSessionNamingConvention" />
<exclude name="MDBAndSessionBeanNamingConvention" />
<exclude name="RemoteInterfaceNamingConvention" />
<exclude name="RemoteSessionInterfaceNamingConvention" />
<!-- Naming rules are disabled - TODO we need to revise them and configure them -->
<exclude name="AbstractNaming"/>
<exclude name="ClassNamingConventions"/>
<exclude name="LongVariable"/>
<exclude name="MethodNamingConventions"/>
<exclude name="MIsLeadingVariableName"/>
<exclude name="ShortClassName"/>
<exclude name="ShortMethodName"/>
<exclude name="ShortVariable"/>
<exclude name="SuspiciousConstantFieldName"/>
<exclude name="VariableNamingConventions"/>
<exclude name="TooManyStaticImports"/>
<!-- braces rules are covered by Checkstyle -->
<exclude name="ForLoopsMustUseBraces"/>
<exclude name="IfElseStmtsMustUseBraces"/>
<exclude name="IfStmtsMustUseBraces"/>
<exclude name="WhileLoopsMustUseBraces"/>
</rule>
<!-- ConfusingTernaryRule should ignore elseif since it creates lots of FPs -->
<rule ref="category/java/codestyle.xml/ConfusingTernary">
<properties>
<property name="ignoreElseIf" value="true"/>
</properties>
</rule>
<rule ref="category/java/design.xml">
<exclude name="CouplingBetweenObjects" />
<exclude name="ExcessiveImports" />
<exclude name="LawOfDemeter" />
<exclude name="LoosePackageCoupling" />
<!-- TODO : review these -->
<exclude name="CyclomaticComplexity" />
<exclude name="ExcessiveClassLength" />
<exclude name="ExcessiveMethodLength" />
<exclude name="ExcessiveParameterList" />
<exclude name="ExcessivePublicCount" />
<exclude name="ModifiedCyclomaticComplexity" />
<exclude name="NcssConstructorCount" />
<exclude name="NcssCount" />
<exclude name="NcssMethodCount" />
<exclude name="NcssTypeCount" />
<exclude name="NPathComplexity" />
<exclude name="StdCyclomaticComplexity" />
<exclude name="TooManyFields" />
<exclude name="TooManyMethods" />
<exclude name="UseObjectForClearerAPI" />
<exclude name="DataClass" />
</rule>
<rule ref="category/java/documentation.xml">
<exclude name="CommentContent"/>
<exclude name="CommentRequired"/>
<exclude name="CommentSize"/>
</rule>
<rule ref="category/java/errorprone.xml">
<exclude name="AvoidDuplicateLiterals"/>
<exclude name="CloneThrowsCloneNotSupportedException"/>
<!-- old controversial rules -->
<exclude name="AssignmentInOperand" />
<exclude name="AvoidAccessibilityAlteration" />
<exclude name="AvoidLiteralsInIfCondition" />
<exclude name="DataflowAnomalyAnalysis" />
<exclude name="DoNotCallGarbageCollectionExplicitly" />
<exclude name="NullAssignment" />
<exclude name="SuspiciousOctalEscape" />
<!-- beans rules -->
<exclude name="BeanMembersShouldSerialize" />
<!-- j2ee rules -->
<exclude name="UseProperClassLoader" />
<exclude name="DoNotCallSystemExit" />
<exclude name="StaticEJBFieldShouldBeFinal" />
<!-- Customized below. -->
<exclude name="EmptyCatchBlock"/>
<!-- We prefer checkstyle's FallThrough -->
<exclude name="MissingBreakInSwitch"/>
</rule>
<rule ref="category/java/errorprone.xml/EmptyCatchBlock">
<properties>
<property name="allowCommentedBlocks" value="true"/>
</properties>
</rule>
<rule ref="category/java/multithreading.xml">
<exclude name="AvoidUsingVolatile"/>
<exclude name="UseConcurrentHashMap"/>
<!-- J2EE rules -->
<exclude name="DoNotUseThreads"/>
</rule>
<rule ref="category/java/performance.xml">
<exclude name="AvoidInstantiatingObjectsInLoops"/>
</rule>
</ruleset>