blob: 156e6f9cfe3f92afd8b568556b8ddd4d14e7b1d8 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright 2014-present Open Networking Foundation
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<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>