Bumped JUnit version to 5.11.3 Bumped PMD extension version to 1.1.7 Bumped JDK to version 23 (GitHub CI Workflow) Bumped Kotlin to version 2.0.21 Bumped Kotlin extension to version 1.0.2
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>
|