<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You 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 name="pmd-eclipse">
    <description>PMD Plugin preferences rule set</description>


    <rule ref="rulesets/basic.xml/BooleanInstantiation"/>
    <rule ref="rulesets/basic.xml/CollapsibleIfStatements"/>
    <rule ref="rulesets/basic.xml/DoubleCheckedLocking"/>
    <!--<rule ref="rulesets/basic.xml/EmptyCatchBlock"/>-->
    <!--<rule ref="rulesets/basic.xml/EmptyFinallyBlock"/>-->
    <!--<rule ref="rulesets/basic.xml/EmptyIfStmt"/>-->
    <rule ref="rulesets/basic.xml/EmptyStatementNotInLoop"/>
    <!--<rule ref="rulesets/basic.xml/EmptyStaticInitializer"/>-->
    <!--<rule ref="rulesets/basic.xml/EmptySwitchStatements"/>-->
    <!--<rule ref="rulesets/basic.xml/EmptySynchronizedBlock"/>-->
    <!--<rule ref="rulesets/basic.xml/EmptyTryBlock"/>-->
    <!--<rule ref="rulesets/basic.xml/EmptyWhileStmt"/>-->
    <rule ref="rulesets/basic.xml/ForLoopShouldBeWhileLoop"/>
    <rule ref="rulesets/basic.xml/JumbledIncrementer"/>
    <!--<rule ref="rulesets/basic.xml/OverrideBothEqualsAndHashcode"/>-->
    <rule ref="rulesets/basic.xml/ReturnFromFinallyBlock"/>
    <rule ref="rulesets/basic.xml/UnconditionalIfStatement"/>
    <rule ref="rulesets/basic.xml/UnnecessaryConversionTemporary"/>
    <rule ref="rulesets/basic.xml/UnnecessaryFinalModifier"/>
    <rule ref="rulesets/basic.xml/UnnecessaryReturn"/>
    <!--<rule ref="rulesets/basic.xml/UselessOverridingMethod"/>-->

    <!--<rule ref="rulesets/braces.xml/ForLoopsMustUseBraces"/>-->
    <!--<rule ref="rulesets/braces.xml/IfElseStmtsMustUseBraces"/>-->
    <!--<rule ref="rulesets/braces.xml/IfStmtsMustUseBraces"/>-->
    <!--<rule ref="rulesets/braces.xml/WhileLoopsMustUseBraces"/>-->

    <!--<rule ref="rulesets/clone.xml/CloneMethodMustImplementCloneable"/>-->
    <!--<rule ref="rulesets/clone.xml/CloneThrowsCloneNotSupportedException"/>-->
    <!--<rule ref="rulesets/clone.xml/ProperCloneImplementation"/>-->

    <!--<rule ref="rulesets/codesize.xml/CyclomaticComplexity"/>-->
    <!--<rule ref="rulesets/codesize.xml/ExcessiveClassLength"/>-->
    <!--<rule ref="rulesets/codesize.xml/ExcessiveMethodLength"/>-->
    <!--<rule ref="rulesets/codesize.xml/ExcessiveParameterList"/>-->
    <!--<rule ref="rulesets/codesize.xml/ExcessivePublicCount"/>-->
    <!--<rule ref="rulesets/codesize.xml/TooManyFields"/>-->

    <!--<rule ref="rulesets/controversial.xml/AssignmentInOperand"/>-->
    <!--<rule ref="rulesets/controversial.xml/AtLeastOneConstructor"/>-->
    <!--<rule ref="rulesets/controversial.xml/CallSuperInConstructor"/>-->
    <!--<rule ref="rulesets/controversial.xml/DontImportSun"/>-->
    <!--<rule ref="rulesets/controversial.xml/NullAssignment"/>-->
    <!--<rule ref="rulesets/controversial.xml/OnlyOneReturn"/>-->
    <!--<rule ref="rulesets/controversial.xml/SingularField"/>-->
    <!--<rule ref="rulesets/controversial.xml/SuspiciousOctalEscape"/>-->
    <!--<rule ref="rulesets/controversial.xml/UnnecessaryConstructor"/>-->
    <!--<rule ref="rulesets/controversial.xml/UnnecessaryParentheses"/>-->
    <!--<rule ref="rulesets/controversial.xml/UnusedModifier"/>-->

    <!--<rule ref="rulesets/coupling.xml/CouplingBetweenObjects"/>-->
    <!--<rule ref="rulesets/coupling.xml/ExcessiveImports"/>-->
    <!--<rule ref="rulesets/coupling.xml/LooseCoupling"/>-->

    <!--<rule ref="rulesets/design.xml/AbstractClassWithoutAbstractMethod"/>-->
    <!--<rule ref="rulesets/design.xml/AccessorClassGeneration"/>-->
    <!--<rule ref="rulesets/design.xml/AssignmentToNonFinalStatic"/>-->
    <!--<rule ref="rulesets/design.xml/AvoidDeeplyNestedIfStmts"/>-->
    <!--<rule ref="rulesets/design.xml/AvoidInstanceofChecksInCatchClause"/>-->
    <rule ref="rulesets/design.xml/AvoidProtectedFieldInFinalClass"/>
    <!--<rule ref="rulesets/design.xml/AvoidReassigningParameters"/>-->
    <!--<rule ref="rulesets/design.xml/AvoidSynchronizedAtMethodLevel"/>-->
    <!--<rule ref="rulesets/design.xml/BadComparison"/>-->
    <!--<rule ref="rulesets/design.xml/CloseConnection"/>-->
    <!--<rule ref="rulesets/design.xml/CompareObjectsWithEquals"/>-->
    <!--<rule ref="rulesets/design.xml/ConfusingTernary"/>-->
    <rule ref="rulesets/design.xml/ConstructorCallsOverridableMethod"/>
    <!--<rule ref="rulesets/design.xml/DefaultLabelNotLastInSwitchStmt"/>-->
    <!--<rule ref="rulesets/design.xml/FinalFieldCouldBeStatic"/>-->
    <rule ref="rulesets/design.xml/IdempotentOperations"/>
    <!--<rule ref="rulesets/design.xml/ImmutableField"/>-->
    <!--<rule ref="rulesets/design.xml/InstantiationToGetClass"/>-->
    <!--<rule ref="rulesets/design.xml/MissingBreakInSwitch"/>-->
    <!--<rule ref="rulesets/design.xml/MissingStaticMethodInNonInstantiatableClass"/>-->
    <!--<rule ref="rulesets/design.xml/NonCaseLabelInSwitchStatement"/>-->
    <!--<rule ref="rulesets/design.xml/NonStaticInitializer"/>-->
    <rule ref="rulesets/design.xml/OptimizableToArrayCall"/>
    <rule ref="rulesets/design.xml/PositionLiteralsFirstInComparisons"/>
    <rule ref="rulesets/design.xml/SimplifyBooleanExpressions"/>
    <rule ref="rulesets/design.xml/SimplifyBooleanReturns"/>
    <rule ref="rulesets/design.xml/SimplifyConditional"/>
    <!--<rule ref="rulesets/design.xml/SwitchDensity"/>-->
    <!--<rule ref="rulesets/design.xml/SwitchStmtsShouldHaveDefault"/>-->
    <rule ref="rulesets/design.xml/UnnecessaryLocalBeforeReturn"/>
    <!--<rule ref="rulesets/design.xml/UseLocaleWithCaseConversions"/>-->
    <!--<rule ref="rulesets/design.xml/UseNotifyAllInsteadOfNotify"/>-->
    <!--<rule ref="rulesets/design.xml/UseSingleton"/>-->

    <!--<rule ref="rulesets/finalizers.xml/EmptyFinalizer"/>-->
    <!--<rule ref="rulesets/finalizers.xml/FinalizeOnlyCallsSuperFinalize"/>-->
    <!--<rule ref="rulesets/finalizers.xml/FinalizeOverloaded"/>-->
    <!--<rule ref="rulesets/finalizers.xml/FinalizeDoesNotCallSuperFinalize"/>-->
    <!--<rule ref="rulesets/finalizers.xml/FinalizeShouldBeProtected"/>-->
    <!--<rule ref="rulesets/finalizers.xml/AvoidCallingFinalize"/>-->

    <!--<rule ref="rulesets/imports.xml/DuplicateImports"/>-->
    <!--<rule ref="rulesets/imports.xml/DontImportJavaLang"/>-->
    <!--<rule ref="rulesets/imports.xml/UnusedImports"/>-->
    <!--<rule ref="rulesets/imports.xml/ImportFromSamePackage"/>-->

    <!--<rule ref="rulesets/javabeans.xml/BeanMembersShouldSerialize"/>-->
    <!--<rule ref="rulesets/javabeans.xml/MissingSerialVersionUID"/>-->

    <!--<rule ref="rulesets/junit.xml/JUnitStaticSuite"/>-->
    <!--<rule ref="rulesets/junit.xml/JUnitSpelling"/>-->
    <!--<rule ref="rulesets/junit.xml/JUnitAssertionsShouldIncludeMessage"/>-->
    <!--<rule ref="rulesets/junit.xml/JUnitTestsShouldIncludeAssert"/>-->
    <!--<rule ref="rulesets/junit.xml/TestClassWithoutTestCases"/>-->
    <!--<rule ref="rulesets/junit.xml/UnnecessaryBooleanAssertion"/>-->
    <!--<rule ref="rulesets/junit.xml/UseAssertEqualsInsteadOfAssertTrue"/>-->
    <!--<rule ref="rulesets/junit.xml/UseAssertSameInsteadOfAssertTrue"/>-->

    <!--<rule ref="rulesets/logging-java.xml/AvoidPrintStackTrace"/>-->
    <rule ref="rulesets/logging-java.xml/LoggerIsNotStaticFinal"/>
    <!--<rule ref="rulesets/logging-java.xml/MoreThanOneLogger"/>-->
    <!--<rule ref="rulesets/logging-java.xml/LoggerIsNotStaticFinal"/>-->
    <!--<rule ref="rulesets/logging-java.xml/LogBlockWithoutIf"/>-->
    <!--<rule ref="rulesets/logging-java.xml/SystemPrintln"/>-->
    <!--<rule ref="rulesets/logging-jakarta-commons.xml/UseCorrectExceptionLogging"/>-->
    <!--<rule ref="rulesets/logging-jakarta-commons.xml/ProperLogger"/>-->

    <!--<rule ref="rulesets/naming.xml/ShortVariable"/>-->
    <!--<rule ref="rulesets/naming.xml/LongVariable"/>-->
    <!--<rule ref="rulesets/naming.xml/ShortMethodName"/>-->
    <!--<rule ref="rulesets/naming.xml/VariableNamingConventions"/>-->
    <!--<rule ref="rulesets/naming.xml/MethodNamingConventions"/>-->
    <!--<rule ref="rulesets/naming.xml/ClassNamingConventions"/>-->
    <!--<rule ref="rulesets/naming.xml/AbstractNaming"/>-->
    <!--<rule ref="rulesets/naming.xml/AvoidDollarSigns"/>-->
    <!--<rule ref="rulesets/naming.xml/MethodWithSameNameAsEnclosingClass"/>-->
    <!--<rule ref="rulesets/naming.xml/SuspiciousHashcodeMethodName"/>-->
    <!--<rule ref="rulesets/naming.xml/SuspiciousConstantFieldName"/>-->
    <!--<rule ref="rulesets/naming.xml/AvoidFieldNameMatchingTypeName"/>-->
    <!--<rule ref="rulesets/naming.xml/AvoidFieldNameMatchingMethodName"/>-->
    <!--<rule ref="rulesets/naming.xml/AvoidNonConstructorMethodsWithClassName"/>-->
    <!--<rule ref="rulesets/naming.xml/NoPackage"/>-->
    <!--<rule ref="rulesets/naming.xml/PackageCase"/>-->

    <!--<rule ref="rulesets/optimizations.xml/LocalVariableCouldBeFinal"/>-->
    <!--<rule ref="rulesets/optimizations.xml/MethodArgumentCouldBeFinal"/>-->
    <!--<rule ref="rulesets/optimizations.xml/AvoidInstantiatingObjectsInLoops"/>-->
    <!--<rule ref="rulesets/optimizations.xml/UseArrayListInsteadOfVector"/>-->
    <!--<rule ref="rulesets/optimizations.xml/SimplifyStartsWith"/>-->
    <!--<rule ref="rulesets/optimizations.xml/UseStringBufferForStringAppends"/>-->

    <!--<rule ref="rulesets/strictexception.xml/AvoidCatchingThrowable"/>-->
    <!--<rule ref="rulesets/strictexception.xml/SignatureDeclareThrowsException"/>-->
    <!--<rule ref="rulesets/strictexception.xml/ExceptionAsFlowControl"/>-->
    <!--<rule ref="rulesets/strictexception.xml/AvoidCatchingNPE"/>-->
    <!--<rule ref="rulesets/strictexception.xml/AvoidThrowingRawExceptionTypes"/>-->
    <!--<rule ref="rulesets/strictexception.xml/AvoidThrowingNullPointerException"/>-->

    <!--<rule ref="rulesets/strings.xml/AvoidDuplicateLiterals"/>-->
    <!--<rule ref="rulesets/strings.xml/StringInstantiation"/>-->
    <!--<rule ref="rulesets/strings.xml/StringToString"/>-->
    <!--<rule ref="rulesets/strings.xml/AvoidConcatenatingNonLiteralsInStringBuffer"/>-->
    <!--<rule ref="rulesets/strings.xml/UnnecessaryCaseChange"/>-->

    <!--<rule ref="rulesets/sunsecure.xml/MethodReturnsInternalArray"/>-->
    <!--<rule ref="rulesets/sunsecure.xml/ArrayIsStoredDirectly"/>-->

    <rule ref="rulesets/unusedcode.xml/UnusedLocalVariable"/>
    <rule ref="rulesets/unusedcode.xml/UnusedPrivateField"/>
    <rule ref="rulesets/unusedcode.xml/UnusedPrivateMethod"/>
    <!--<rule ref="rulesets/unusedcode.xml/UnusedFormalParameter"/>-->

    <rule name="DontUseLoggerGetLogger"
          message="Don't use Logger.getLogger(...), use LogUtils.getL7dLogger(....) instead"
          class="net.sourceforge.pmd.rules.XPathRule">
        <priority>2</priority>
        <description>Don't use Logger.getLogger(...), use LogUtils.getL7dLogger(....) instead</description>
        <properties>
            <property name="xpath">
                <value>
<![CDATA[
//PrimaryPrefix/Name[ends-with(@Image, 'Logger.getLogger') and //PackageDeclaration/Name[starts-with(@Image, 'org.apache.cxf')]]
]]>
                </value>
            </property>
        </properties>
    </rule>

</ruleset>
