<?xml version="1.0"?>
<ruleset name="PDX portal ruleset"
         xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
    <description>
        This is a custom rule set for PDX project.
    </description>

    <rule ref="category/java/codestyle.xml">
        <exclude name="MethodArgumentCouldBeFinal"/>
        <exclude name="LocalVariableCouldBeFinal"/>
        <exclude name="ClassNamingConventions"/>
        <exclude name="PrematureDeclaration"/>
        <exclude name="AtLeastOneConstructor"/>
        <exclude name="UnnecessaryLocalBeforeReturn"/>
        <exclude name="LongVariable"/>
        <exclude name="OnlyOneReturn"/>
        <exclude name="ShortVariable"/>
        <exclude name="ShortClassName"/>
        <exclude name="AbstractNaming"/>
        <exclude name="AvoidFinalLocalVariable"/>
        <exclude name="TooManyStaticImports"/>
        <exclude name="DefaultPackage"/>
    </rule>
    <rule ref="category/java/bestpractices.xml">
        <exclude name="JUnitTestContainsTooManyAsserts"/>
        <exclude name="JUnitTestShouldIncludeAssert"/>
        <exclude name="JUnitAssertionsShouldIncludeMessage"/>
        <exclude name="JUnit4SuitesShouldUseSuiteAnnotation"/>
        <exclude name="JUnit4TestShouldUseTestAnnotation"/>
        <exclude name="JUnit4TestShouldUseAfterAnnotation"/>
        <exclude name="JUnit4TestShouldUseBeforeAnnotation"/>
    </rule>
    <rule ref="category/java/codestyle.xml/DefaultPackage">
        <properties>
            <property name="violationSuppressXPath"
                      value="//ClassOrInterfaceDeclaration[ends-with(@Image, 'Test')]
/ClassOrInterfaceBody
/ClassOrInterfaceBodyDeclaration
[MethodDeclaration[@PackagePrivate='true']]"/>
        </properties>
    </rule>
    <rule ref="category/java/codestyle.xml/CommentDefaultAccessModifier">
        <properties>
            <property name="violationSuppressXPath"
                      value="//ClassOrInterfaceDeclaration[ends-with(@Image, 'Test')]
/ClassOrInterfaceBody
/ClassOrInterfaceBodyDeclaration
[MethodDeclaration[@PackagePrivate='true']]"/>
        </properties>
    </rule>
</ruleset>
