Updated dependencies Bumped JUnit version to 5.11.3 Bumped PMD extension version to 1.1.7 Bumped JDK to version 23 (GitHub CI Workflow)
109 lines
3.9 KiB
XML
109 lines
3.9 KiB
XML
<?xml version="1.0"?>
|
|
<ruleset name="erik"
|
|
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 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">
|
|
<description>Erik's Ruleset</description>
|
|
<!-- BEST PRACTICES -->
|
|
<rule ref="category/java/bestpractices.xml">
|
|
<exclude name="AvoidPrintStackTrace"/>
|
|
<exclude name="GuardLogStatement"/>
|
|
<exclude name="UnitTestContainsTooManyAsserts"/>
|
|
<exclude name="UnitTestShouldUseTestAnnotation"/>
|
|
</rule>
|
|
|
|
<rule ref="category/java/bestpractices.xml/MissingOverride">
|
|
<properties>
|
|
<property name="violationSuppressXPath"
|
|
value="//MethodDeclaration[@Name='hashCode' or @Name='equals' or @Name='toString']"/>
|
|
</properties>
|
|
</rule>
|
|
|
|
|
|
<!-- CODE STYLE -->
|
|
<rule ref="category/java/codestyle.xml">
|
|
<exclude name="AtLeastOneConstructor"/>
|
|
<exclude name="ClassNamingConventions"/>
|
|
<exclude name="CommentDefaultAccessModifier"/>
|
|
<exclude name="ConfusingTernary"/>
|
|
<exclude name="FieldNamingConventions"/>
|
|
<exclude name="LocalVariableCouldBeFinal"/>
|
|
<exclude name="LongVariable"/>
|
|
<exclude name="MethodArgumentCouldBeFinal"/>
|
|
<exclude name="OnlyOneReturn"/>
|
|
<exclude name="PackageCase"/>
|
|
<exclude name="ShortClassName"/>
|
|
<exclude name="ShortMethodName"/>
|
|
<exclude name="ShortVariable"/>
|
|
<exclude name="UseExplicitTypes"/>
|
|
<exclude name="UseUnderscoresInNumericLiterals"/>
|
|
<exclude name="UselessParentheses"/>
|
|
</rule>
|
|
|
|
<rule ref="category/java/codestyle.xml/UnnecessaryImport">
|
|
<properties>
|
|
<property name="violationSuppressRegex" value="Unused (static|.*\.\*).*"/>
|
|
</properties>
|
|
</rule>
|
|
|
|
<!-- DESIGN -->
|
|
<rule ref="category/java/design.xml">
|
|
<exclude name="AvoidCatchingGenericException"/>
|
|
<exclude name="AvoidDeeplyNestedIfStmts"/>
|
|
<exclude name="AvoidUncheckedExceptionsInSignatures"/>
|
|
<exclude name="CognitiveComplexity"/>
|
|
<exclude name="CyclomaticComplexity"/>
|
|
<exclude name="ExcessiveParameterList"/>
|
|
<exclude name="ExcessivePublicCount"/>
|
|
<exclude name="GodClass"/>
|
|
<exclude name="LawOfDemeter"/>
|
|
<exclude name="LoosePackageCoupling"/>
|
|
<exclude name="NPathComplexity"/>
|
|
<exclude name="NcssCount"/>
|
|
<exclude name="TooManyFields"/>
|
|
<exclude name="TooManyMethods"/>
|
|
<exclude name="UseObjectForClearerAPI"/>
|
|
</rule>
|
|
|
|
<!-- DOCUMENTATION -->
|
|
<rule ref="category/java/documentation.xml">
|
|
<exclude name="CommentRequired"/>
|
|
<exclude name="CommentSize"/>
|
|
</rule>
|
|
|
|
<!-- ERROR PRONE -->
|
|
<rule ref="category/java/errorprone.xml">
|
|
<exclude name="AssignmentInOperand"/>
|
|
<exclude name="AvoidCatchingNPE"/>
|
|
<exclude name="AvoidDuplicateLiterals"/>
|
|
<exclude name="AvoidFieldNameMatchingMethodName"/>
|
|
<exclude name="AvoidFieldNameMatchingTypeName"/>
|
|
<exclude name="AvoidLiteralsInIfCondition"/>
|
|
<exclude name="NullAssignment"/>
|
|
</rule>
|
|
|
|
<rule ref="category/java/errorprone.xml/AssignmentInOperand">
|
|
<properties>
|
|
<property name="allowWhile" value="true"/>
|
|
<property name="allowFor" value="true"/>
|
|
<property name="allowIf" value="true"/>
|
|
</properties>
|
|
</rule>
|
|
<rule ref="category/java/errorprone.xml/AvoidDuplicateLiterals">
|
|
<properties>
|
|
<property name="skipAnnotations" value="true"/>
|
|
</properties>
|
|
</rule>
|
|
|
|
<!-- MULTITHREADING -->
|
|
<rule ref="category/java/multithreading.xml">
|
|
</rule>
|
|
|
|
<!-- PERFORMANCE -->
|
|
<rule ref="category/java/performance.xml">
|
|
</rule>
|
|
|
|
<!-- SECURITY -->
|
|
<rule ref="category/java/security.xml">
|
|
</rule>
|
|
</ruleset>
|