| <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
| <ruleset name="Custom PMD Ruleset" |
| xmlns="http://pmd.sf.net/ruleset/1.0.0" |
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd" |
| xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"> |
| <description>PMD Rule Set for Jetty</description> |
| |
| <rule ref="rulesets/basic.xml"> |
| <exclude name="EmptyCatchBlock" /> |
| <exclude name="CollapsibleIfStatements" /> |
| </rule> |
| |
| <rule ref="rulesets/braces.xml" /> |
| |
| <rule ref="rulesets/clone.xml" /> |
| |
| <rule ref="rulesets/codesize.xml"> |
| <exclude name="CyclomaticComplexity" /> |
| <exclude name="NPathComplexity" /> |
| <exclude name="TooManyMethods" /> |
| <exclude name="ExcessiveClassLength" /> |
| <exclude name="ExcessivePublicCount" /> |
| </rule> |
| |
| <rule ref="rulesets/controversial.xml"> |
| <exclude name="DataflowAnomalyAnalysis" /> |
| <exclude name="OnlyOneReturn" /> |
| <exclude name="UnusedModifier" /> |
| <exclude name="AtLeastOneConstructor" /> |
| <exclude name="AssignmentInOperand" /> |
| <exclude name="AvoidUsingShortType" /> |
| </rule> |
| |
| <rule ref="rulesets/coupling.xml" /> |
| |
| <rule ref="rulesets/design.xml"> |
| <exclude name="UseLocaleWithCaseConversions" /> |
| <exclude name="ConstructorCallsOverridableMethod" /> |
| <exclude name="MissingBreakInSwitch" /> |
| <exclude name="SwitchStmtsShouldHaveDefault" /> |
| <exclude name="ImmutableField" /> |
| </rule> |
| |
| <rule ref="rulesets/finalizers.xml" /> |
| |
| <rule ref="rulesets/imports.xml" /> |
| |
| <rule ref="rulesets/javabeans.xml"> |
| <exclude name="BeanMembersShouldSerialize" /> |
| </rule> |
| |
| <rule ref="rulesets/migrating.xml" /> |
| |
| <rule ref="rulesets/naming.xml"> |
| <exclude name="ShortVariable" /> |
| <exclude name="LongVariable" /> |
| </rule> |
| |
| <rule ref="rulesets/optimizations.xml"> |
| <exclude name="LocalVariableCouldBeFinal" /> |
| <exclude name="MethodArgumentCouldBeFinal" /> |
| </rule> |
| |
| <rule ref="rulesets/strictexception.xml"> |
| <exclude name="AvoidRethrowingException" /> |
| </rule> |
| |
| <rule ref="rulesets/strings.xml"> |
| <exclude name="AvoidDuplicateLiterals" /> |
| </rule> |
| |
| <rule ref="rulesets/sunsecure.xml" /> |
| |
| <rule ref="rulesets/typeresolution.xml" /> |
| |
| <rule ref="rulesets/unusedcode.xml" /> |
| |
| <!-- CUSTOM RULES --> |
| <rule name="ExplicitIgnoredCatchBlock" |
| since="1.0" |
| message="Set catch variable to 'ignore' to indicate it being ignored" |
| class="net.sourceforge.pmd.lang.rule.XPathRule"> |
| <description> |
| ExplicitIgnoredCatchBlock finds instances where an exception is caught, |
| but nothing is done. In most circumstances, this swallows an exception |
| which should either be acted on or reported. However if you want to |
| ignore this exception quietly, then state so by changing the catch |
| variable to 'ignore' |
| </description> |
| <priority>3</priority> |
| <properties> |
| <property name="xpath"> |
| <value> |
| <![CDATA[ |
| //CatchStatement |
| [count(Block/BlockStatement) = 0 and (Block/@containsComment = 'false')] |
| [FormalParameter/VariableDeclaratorId[@Image != 'ignore'] |
| ] |
| ]]> |
| </value> |
| </property> |
| </properties> |
| <example> |
| <![CDATA[ |
| public void doSomething() { |
| try { |
| FileInputStream fis = new FileInputStream("/tmp/bugger"); |
| } catch (IOException ioe) { |
| // not good |
| } |
| } |
| ]]> |
| </example> |
| </rule> |
| |
| </ruleset> |