pmd.xml 2.23 KB
<?xml version="1.0" encoding="UTF-8"?>
<ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    name="ONOS Rules"
    xmlns="http://pmd.sf.net/ruleset/1.0.0"
    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>ONOS PMD rules</description>

    <rule ref="rulesets/java/unnecessary.xml" >
        <exclude name="UselessParentheses" />
    </rule>
    <rule ref="rulesets/java/basic.xml">
      <exclude name="EmptyCatchBlock"/>
    </rule>
    <rule ref="rulesets/java/basic.xml/EmptyCatchBlock">
      <properties>
	<property name="allowCommentedBlocks" value="true"/>
      </properties>
    </rule>
    <rule ref="rulesets/java/unusedcode.xml">
      <!-- Explicit public keyword in interface methods is acceptable -->
      <exclude name="UnusedModifier" />
    </rule>
    <rule ref="rulesets/java/imports.xml"/>
    <rule ref="rulesets/java/optimizations.xml">
      <exclude name="LocalVariableCouldBeFinal" />
      <exclude name="MethodArgumentCouldBeFinal" />
      <exclude name="AvoidInstantiatingObjectsInLoops" />
    </rule>

    <rule ref="rulesets/java/strings.xml">
      <exclude name="AvoidDuplicateLiterals" />
    </rule>
    <rule ref="rulesets/java/braces.xml"/>
    <rule ref="rulesets/java/naming.xml">
      <exclude name="AvoidInstantiatingObjectsInLoops" />
      <exclude name="ShortClassName" />
      <exclude name="ShortMethodName" />
      <exclude name="ShortVariable" />
      <exclude name="LongVariable" />
    </rule>
    <rule ref="rulesets/java/naming.xml/VariableNamingConventions">
      <properties>
	<!--  ONOS allows the name "log" for static final Loggers -->
	<property name="violationSuppressRegex" value=".*'log'.*"/>
      </properties>
    </rule>

    <rule ref="rulesets/java/clone.xml"/>
    <rule ref="rulesets/java/strictexception.xml"/>
    <rule ref="rulesets/java/design.xml">
      <exclude name="GodClass" />
    </rule>
    <rule ref="rulesets/java/coupling.xml">
      <exclude name="LawOfDemeter" />
      <exclude name="ExcessiveImports" />
      <!-- Suppress Removed misconfigured rule warning -->
      <exclude name="LoosePackageCoupling" />
    </rule>
</ruleset>