From 8fdc606384aa361397b2b3651f85e5610866ef71 Mon Sep 17 00:00:00 2001 From: Yurii Dubinka Date: Thu, 10 Feb 2022 23:31:18 +0200 Subject: [PATCH 1/2] #91: Add details about category/java/design.xml --- readme.md | 396 ++++++++++-------- ...arch4u-recommended-third-party-ruleset.xml | 4 +- 2 files changed, 224 insertions(+), 176 deletions(-) diff --git a/readme.md b/readme.md index 07b20dc..7cabe2a 100644 --- a/readme.md +++ b/readme.md @@ -40,180 +40,228 @@ We are using the latest stable pmd-java version which is `6.42.0` as a start poi 🌵 - reconfigured in `arch4u-ruleset.xml`, ❌ - disabled/not planned in `arch4u-ruleset.xml` -| PMD rule | Provider | Since | Status | Spring | Quarkus | -|:--------------------------------------------------------------------------------------------------------------------------------------------|:----------:|:------:|:------:|:------:|:-------:| -| [UseExistingMediaTypeConstant](https://github.com/dgroup/arch4u-pmd/discussions/43) | arch4u-pmd | 0.1.0 | ✅ | ⌛ | ⌛ | -| [UseOpenApiInRestEndpoints](https://github.com/dgroup/arch4u-pmd/discussions/73) | arch4u-pmd | 0.1.0 | ✅ | ⌛ | ⌛ | -| [RestEndpointsWithoutExposedMetrics](https://github.com/dgroup/arch4u-pmd/discussions/74) | arch4u-pmd | 0.1.0 | ✅ | ⌛ | ⌛ | -| [UseConstantAsMetricName](https://github.com/dgroup/arch4u-pmd/discussions/75) | arch4u-pmd | 0.1.0 | ✅ | ⌛ | ⌛ | -| [NoMandatoryConstructorInExceptionClass](https://github.com/dgroup/arch4u-pmd/discussions/31) | arch4u-pmd | 0.1.0 | ✅ | ⌛ | ⌛ | -| [AvoidUsingObjectMapperAsALocalVariable](https://github.com/dgroup/arch4u-pmd/discussions/30) | arch4u-pmd | 0.1.0 | ✅ | ⌛ | ⌛ | -| [AvoidMdcOutsideTryStatement](https://github.com/dgroup/arch4u-pmd/discussions/86) | arch4u-pmd | 0.1.0 | ✅ | ⌛ | ⌛ | -| [PotentiallyThreadLocalPollutionByMdc](https://github.com/dgroup/arch4u-pmd/discussions/88) | arch4u-pmd | 0.1.0 | ✅ | ⌛ | ⌛ | -| AbstractClassWithoutAbstractMethod | pmd-java | 3.0 | ✅ | ⌛ | ⌛ | -| AccessorClassGeneration | pmd-java | 1.04 | ✅ | ⌛ | ⌛ | -| AccessorMethodGeneration | pmd-java | 5.5.4 | ✅ | ⌛ | ⌛ | -| ArrayIsStoredDirectly | pmd-java | 2.2 | ✅ | ⌛ | ⌛ | -| AvoidMessageDigestField | pmd-java | 6.18.0 | ✅ | ⌛ | ⌛ | -| AvoidPrintStackTrace | pmd-java | 3.2 | ✅ | ⌛ | ⌛ | -| AvoidReassigningCatchVariables | pmd-java | 6.27.0 | ✅ | ⌛ | ⌛ | -| AvoidReassigningLoopVariables | pmd-java | 6.11.0 | ✅ | ⌛ | ⌛ | -| AvoidReassigningParameters | pmd-java | 1.0 | ✅ | ⌛ | ⌛ | -| AvoidStringBufferField | pmd-java | 4.2 | ✅ | ⌛ | ⌛ | -| AvoidUsingHardCodedIP | pmd-java | 4.1 | ✅ | ⌛ | ⌛ | -| CheckResultSet | pmd-java | 4.1 | ✅ | ⌛ | ⌛ | -| ConstantsInInterface | pmd-java | 5.5 | ✅ | ⌛ | ⌛ | -| DefaultLabelNotLastInSwitchStmt | pmd-java | 1.5 | ✅ | ⌛ | ⌛ | -| DoubleBraceInitialization | pmd-java | 6.16.0 | ✅ | ⌛ | ⌛ | -| ForLoopCanBeForeach | pmd-java | 6.0.0 | ✅ | ⌛ | ⌛ | -| ForLoopVariableCount | pmd-java | 6.11.0 | ✅ | ⌛ | ⌛ | -| GuardLogStatement | pmd-java | 5.1.0 | ❌ | ⌛ | ⌛ | -| JUnit4SuitesShouldUseSuiteAnnotation | pmd-java | 4.0 | ✅ | ⌛ | ⌛ | -| JUnit4TestShouldUseAfterAnnotation | pmd-java | 4.0 | ✅ | ⌛ | ⌛ | -| JUnit4TestShouldUseBeforeAnnotation | pmd-java | 4.0 | ✅ | ⌛ | ⌛ | -| JUnit4TestShouldUseTestAnnotation | pmd-java | 4.0 | ✅ | ⌛ | ⌛ | -| JUnit5TestShouldBePackagePrivate | pmd-java | 6.35.0 | ✅ | ⌛ | ⌛ | -| JUnitAssertionsShouldIncludeMessage | pmd-java | 1.04 | 🌵 | ⌛ | ⌛ | -| JUnitTestContainsTooManyAsserts | pmd-java | 5.0 | ✅ | ⌛ | ⌛ | -| JUnitTestsShouldIncludeAssert | pmd-java | 2.0 | ✅ | ⌛ | ⌛ | -| JUnitUseExpected | pmd-java | 4.0 | ✅ | ⌛ | ⌛ | -| LiteralsFirstInComparisons | pmd-java | 6.24.0 | ✅ | ⌛ | ⌛ | -| LooseCoupling | pmd-java | 0.7 | ✅ | ⌛ | ⌛ | -| MethodReturnsInternalArray | pmd-java | 2.2 | ✅ | ⌛ | ⌛ | -| MissingOverride | pmd-java | 6.2.0 | ✅ | ⌛ | ⌛ | -| OneDeclarationPerLine | pmd-java | 5.0 | ✅ | ⌛ | ⌛ | -| PositionLiteralsFirstInCaseInsensitiveComparisons | pmd-java | 5.1 | ✅ | ⌛ | ⌛ | -| PositionLiteralsFirstInComparisons | pmd-java | 3.3 | ✅ | ⌛ | ⌛ | -| PreserveStackTrace | pmd-java | 3.7 | ✅ | ⌛ | ⌛ | -| PrimitiveWrapperInstantiation | pmd-java | 6.37.0 | ✅ | ⌛ | ⌛ | -| ReplaceEnumerationWithIterator | pmd-java | 3.4 | ✅ | ⌛ | ⌛ | -| ReplaceHashtableWithMap | pmd-java | 3.4 | ✅ | ⌛ | ⌛ | -| ReplaceVectorWithList | pmd-java | 3.4 | ✅ | ⌛ | ⌛ | -| SimplifiableTestAssertion | pmd-java | 6.37.0 | ✅ | ⌛ | ⌛ | -| SwitchStmtsShouldHaveDefault | pmd-java | 1.0 | ✅ | ⌛ | ⌛ | -| SystemPrintln | pmd-java | 2.1 | ✅ | ⌛ | ⌛ | -| UnusedAssignment | pmd-java | 6.26.0 | ✅ | ⌛ | ⌛ | -| UnusedFormalParameter | pmd-java | 0.8 | ✅ | ⌛ | ⌛ | -| UnusedImports | pmd-java | 1.0 | ✅ | ⌛ | ⌛ | -| UnusedLocalVariable | pmd-java | 0.1 | ✅ | ⌛ | ⌛ | -| UnusedPrivateField | pmd-java | 0.1 | ✅ | ⌛ | ⌛ | -| UnusedPrivateMethod | pmd-java | 0.7 | 🌵 | ⌛ | ⌛ | -| UseAssertEqualsInsteadOfAssertTrue | pmd-java | 3.1 | ✅ | ⌛ | ⌛ | -| UseAssertNullInsteadOfAssertTrue | pmd-java | 3.5 | ✅ | ⌛ | ⌛ | -| UseAssertSameInsteadOfAssertTrue | pmd-java | 3.1 | ✅ | ⌛ | ⌛ | -| UseAssertTrueInsteadOfAssertEquals | pmd-java | 5.0 | ✅ | ⌛ | ⌛ | -| UseCollectionIsEmpty | pmd-java | 3.9 | ✅ | ⌛ | ⌛ | -| UseVarargs | pmd-java | 5.0 | ✅ | ⌛ | ⌛ | -| AbstractNaming | pmd-java | 1.4 | ✅ | ⌛ | ⌛ | -| AtLeastOneConstructor | pmd-java | 1.04 | 🌵 | ✅ | ⌛ | -| AvoidDollarSigns | pmd-java | 1.4 | ✅ | ⌛ | ⌛ | -| AvoidFinalLocalVariable | pmd-java | 4.1 | ✅ | ⌛ | ⌛ | -| AvoidPrefixingMethodParameters | pmd-java | 5.0 | ✅ | ⌛ | ⌛ | -| AvoidProtectedFieldInFinalClass | pmd-java | 2.1 | ✅ | ⌛ | ⌛ | -| AvoidProtectedMethodInFinalClassNotExtending | pmd-java | 5.1 | ✅ | ⌛ | ⌛ | -| AvoidUsingNativeCode | pmd-java | 4.1 | ✅ | ⌛ | ⌛ | -| BooleanGetMethodName | pmd-java | 4.0 | ✅ | ⌛ | ⌛ | -| CallSuperInConstructor | pmd-java | 3.0 | ✅ | ⌛ | ⌛ | -| ClassNamingConventions | pmd-java | 1.2 | ✅ | ⌛ | ⌛ | -| CommentDefaultAccessModifier | pmd-java | 5.4.0 | ✅ | ⌛ | ⌛ | -| ConfusingTernary | pmd-java | 1.9 | ✅ | ⌛ | ⌛ | -| ControlStatementBraces | pmd-java | 6.2.0 | ✅ | ⌛ | ⌛ | -| DefaultPackage | pmd-java | 3.4 | ✅ | ⌛ | ⌛ | -| DontImportJavaLang | pmd-java | 0.5 | ✅ | ⌛ | ⌛ | -| DuplicateImports | pmd-java | 0.5 | ✅ | ⌛ | ⌛ | -| EmptyMethodInAbstractClassShouldBeAbstract | pmd-java | 4.1 | ✅ | ⌛ | ⌛ | -| ExtendsObject | pmd-java | 5.0 | ✅ | ⌛ | ⌛ | -| FieldDeclarationsShouldBeAtStartOfClass | pmd-java | 5.0 | ✅ | ⌛ | ⌛ | -| ForLoopShouldBeWhileLoop | pmd-java | 1.02 | ✅ | ⌛ | ⌛ | -| ForLoopsMustUseBraces | pmd-java | 0.7 | ✅ | ⌛ | ⌛ | -| GenericsNaming | pmd-java | 4.2.6 | ✅ | ⌛ | ⌛ | -| FormalParameterNamingConventions | pmd-java | 6.4.0 | ✅ | ⌛ | ⌛ | -| IfElseStmtsMustUseBraces | pmd-java | 0.2 | ✅ | ⌛ | ⌛ | -| IfStmtsMustUseBraces | pmd-java | 1.0 | ✅ | ⌛ | ⌛ | -| LocalHomeNamingConvention | pmd-java | 4.0 | ✅ | ⌛ | ⌛ | -| IdenticalCatchBranches | pmd-java | 6.4.0 | ✅ | ⌛ | ⌛ | -| LinguisticNaming | pmd-java | 6.7.0 | ✅ | ⌛ | ⌛ | -| LocalInterfaceSessionNamingConvention | pmd-java | 4.0 | ✅ | ⌛ | ⌛ | -| LocalVariableCouldBeFinal | pmd-java | 2.2 | ✅ | ⌛ | ⌛ | -| LocalVariableNamingConventions | pmd-java | 6.6.0 | ✅ | ⌛ | ⌛ | -| LongVariable | pmd-java | 0.3 | ✅ | ⌛ | ⌛ | -| MDBAndSessionBeanNamingConvention | pmd-java | 4.0 | ✅ | ⌛ | ⌛ | -| MethodArgumentCouldBeFinal | pmd-java | 2.2 | ✅ | ⌛ | ⌛ | -| MethodNamingConventions | pmd-java | 1.2 | ✅ | ⌛ | ⌛ | -| MIsLeadingVariableName | pmd-java | 3.4 | ✅ | ⌛ | ⌛ | -| NoPackage | pmd-java | 3.3 | ✅ | ⌛ | ⌛ | -| UseUnderscoresInNumericLiterals | pmd-java | 6.10.0 | ✅ | ⌛ | ⌛ | -| OnlyOneReturn | pmd-java | 6.10.0 | 🌵 | ⌛ | ⌛ | -| PackageCase | pmd-java | 3.3 | ✅ | ⌛ | ⌛ | -| PrematureDeclaration | pmd-java | 5.0 | ✅ | ⌛ | ⌛ | -| RemoteInterfaceNamingConvention | pmd-java | 4.0 | ✅ | ⌛ | ⌛ | -| RemoteSessionInterfaceNamingConvention | pmd-java | 4.0 | ✅ | ⌛ | ⌛ | -| ShortClassName | pmd-java | 5.0 | ✅ | ⌛ | ⌛ | -| ShortMethodName | pmd-java | 0.3 | ✅ | ⌛ | ⌛ | -| ShortVariable | pmd-java | 0.3 | ✅ | ⌛ | ⌛ | -| SuspiciousConstantFieldName | pmd-java | 2.0 | ✅ | ⌛ | ⌛ | -| TooManyStaticImports | pmd-java | 4.1 | ✅ | ⌛ | ⌛ | -| UnnecessaryAnnotationValueElement | pmd-java | 6.2.0 | ✅ | ⌛ | ⌛ | -| UnnecessaryCast | pmd-java | 6.24.0 | ✅ | ⌛ | ⌛ | -| UnnecessaryConstructor | pmd-java | 1.0 | ✅ | ⌛ | ⌛ | -| UnnecessaryFullyQualifiedName | pmd-java | 5.0 | ✅ | ⌛ | ⌛ | -| UnnecessaryImport | pmd-java | 6.34.0 | ✅ | ⌛ | ⌛ | -| UnnecessaryLocalBeforeReturn | pmd-java | 3.3 | ✅ | ⌛ | ⌛ | -| UnnecessaryModifier | pmd-java | 1.02 | ✅ | ⌛ | ⌛ | -| UnnecessaryReturn | pmd-java | 1.3 | ✅ | ⌛ | ⌛ | -| UseDiamondOperator | pmd-java | 6.11.0 | ✅ | ⌛ | ⌛ | -| UselessParentheses | pmd-java | 5.0 | ✅ | ⌛ | ⌛ | -| UselessQualifiedThis | pmd-java | 5.4.0 | ✅ | ⌛ | ⌛ | -| UseShortArrayInitializer | pmd-java | 6.15.0 | ✅ | ⌛ | ⌛ | -| VariableNamingConventions | pmd-java | 1.2 | ✅ | ⌛ | ⌛ | -| WhileLoopsMustUseBraces | pmd-java | 0.7 | ✅ | ⌛ | ⌛ | -| [AddEmptyString](https://pmd.github.io/latest/pmd_rules_java_performance.html#addemptystring) | pmd-java | 4.0 | ✅ | ⌛ | ⌛ | -| [AppendCharacterWithChar](https://pmd.github.io/latest/pmd_rules_java_performance.html#appendcharacterwithchar) | pmd-java | 3.5 | ✅ | ⌛ | ⌛ | -| [AvoidArrayLoops](https://pmd.github.io/latest/pmd_rules_java_performance.html#avoidarrayloops) | pmd-java | 3.5 | ✅ | ⌛ | ⌛ | -| [AvoidCalendarDateCreation](https://pmd.github.io/latest/pmd_rules_java_performance.html#avoidcalendardatecreation) | pmd-java | 6.25.0 | ✅ | ⌛ | ⌛ | -| [AvoidFileStream](https://pmd.github.io/latest/pmd_rules_java_performance.html#avoidfilestream) | pmd-java | 6.0.0 | ✅ | ⌛ | ⌛ | -| [AvoidInstantiatingObjectsInLoops](https://pmd.github.io/latest/pmd_rules_java_performance.html#avoidinstantiatingobjectsinloops) | pmd-java | 2.2 | ✅ | ⌛ | ⌛ | -| [AvoidUsingShortType](https://pmd.github.io/latest/pmd_rules_java_performance.html#avoidusingshorttype) | pmd-java | 4.1 | ❌ | ⌛ | ⌛ | -| [BigIntegerInstantiation](https://pmd.github.io/latest/pmd_rules_java_performance.html#bigintegerinstantiation) | pmd-java | 3.9 | ✅ | ⌛ | ⌛ | -| [BooleanInstantiation](https://pmd.github.io/latest/pmd_rules_java_performance.html#booleaninstantiation) | pmd-java | 1.2 | ❌ | ⌛ | ⌛ | -| [ByteInstantiation](https://pmd.github.io/latest/pmd_rules_java_performance.html#byteinstantiation) | pmd-java | 4.0 | ❌ | ⌛ | ⌛ | -| [ConsecutiveAppendsShouldReuse](https://pmd.github.io/latest/pmd_rules_java_performance.html#consecutiveappendsshouldreuse) | pmd-java | 5.1 | ✅ | ⌛ | ⌛ | -| [ConsecutiveLiteralAppends](https://pmd.github.io/latest/pmd_rules_java_performance.html#consecutiveliteralappends) | pmd-java | 3.5 | ✅ | ⌛ | ⌛ | -| [InefficientEmptyStringCheck](https://pmd.github.io/latest/pmd_rules_java_performance.html#inefficientemptystringcheck) | pmd-java | 3.6 | ✅ | ⌛ | ⌛ | -| [InefficientStringBuffering](https://pmd.github.io/latest/pmd_rules_java_performance.html#inefficientstringbuffering) | pmd-java | 3.4 | ✅ | ⌛ | ⌛ | -| [InsufficientStringBufferDeclaration](https://pmd.github.io/latest/pmd_rules_java_performance.html#insufficientstringbufferdeclaration) | pmd-java | 3.6 | ✅ | ⌛ | ⌛ | -| [IntegerInstantiation](https://pmd.github.io/latest/pmd_rules_java_performance.html#integerinstantiation) | pmd-java | 3.5 | ❌ | ⌛ | ⌛ | -| [LongInstantiation](https://pmd.github.io/latest/pmd_rules_java_performance.html#longinstantiation) | pmd-java | 4.0 | ❌ | ⌛ | ⌛ | -| [OptimizableToArrayCall](https://pmd.github.io/latest/pmd_rules_java_performance.html#optimizabletoarraycall) | pmd-java | 1.8 | ✅ | ⌛ | ⌛ | -| [RedundantFieldInitializer](https://pmd.github.io/latest/pmd_rules_java_performance.html#redundantfieldinitializer) | pmd-java | 5.0 | ✅ | ⌛ | ⌛ | -| [ShortInstantiation](https://pmd.github.io/latest/pmd_rules_java_performance.html#shortinstantiation) | pmd-java | 4.0 | ❌ | ⌛ | ⌛ | -| [SimplifyStartsWith](https://pmd.github.io/latest/pmd_rules_java_performance.html#simplifystartswith) | pmd-java | 3.1 | ✅ | ⌛ | ⌛ | -| [StringInstantiation](https://pmd.github.io/latest/pmd_rules_java_performance.html#stringinstantiation) | pmd-java | 1.0 | ✅ | ⌛ | ⌛ | -| [StringToString](https://pmd.github.io/latest/pmd_rules_java_performance.html#stringtostring) | pmd-java | 1.0 | ✅ | ⌛ | ⌛ | -| [TooFewBranchesForASwitchStatement](https://pmd.github.io/latest/pmd_rules_java_performance.html#toofewbranchesforaswitchstatement) | pmd-java | 4.2 | ✅ | ⌛ | ⌛ | -| [UnnecessaryWrapperObjectCreation](https://pmd.github.io/latest/pmd_rules_java_performance.html#unnecessarywrapperobjectcreation) | pmd-java | 3.8 | ✅ | ⌛ | ⌛ | -| [UseArrayListInsteadOfVector](https://pmd.github.io/latest/pmd_rules_java_performance.html#usearraylistinsteadofvector) | pmd-java | 3.0 | ✅ | ⌛ | ⌛ | -| [UseArraysAsList](https://pmd.github.io/latest/pmd_rules_java_performance.html#usearraysaslist) | pmd-java | 3.5 | ✅ | ⌛ | ⌛ | -| [UseIndexOfChar](https://pmd.github.io/latest/pmd_rules_java_performance.html#useindexofchar) | pmd-java | 3.5 | ✅ | ⌛ | ⌛ | -| [UseIOStreamsWithApacheCommonsFileItem](https://pmd.github.io/latest/pmd_rules_java_performance.html#useiostreamswithapachecommonsfileitem) | pmd-java | 6.25.0 | ✅ | ⌛ | ⌛ | -| [UselessStringValueOf](https://pmd.github.io/latest/pmd_rules_java_performance.html#uselessstringvalueof) | pmd-java | 3.8 | ✅ | ⌛ | ⌛ | -| [UseStringBufferForStringAppends](https://pmd.github.io/latest/pmd_rules_java_performance.html#usestringbufferforstringappends) | pmd-java | 3.1 | ✅ | ⌛ | ⌛ | -| [UseStringBufferLength](https://pmd.github.io/latest/pmd_rules_java_performance.html#usestringbufferlength) | pmd-java | 3.4 | ✅ | ⌛ | ⌛ | -| [AvoidSynchronizedAtMethodLevel](https://pmd.github.io/latest/pmd_rules_java_multithreading.html#avoidsynchronizedatmethodlevel) | pmd-java | 3.0 | ✅ | ⌛ | ⌛ | -| [AvoidThreadGroup](https://pmd.github.io/latest/pmd_rules_java_multithreading.html#avoidthreadgroup) | pmd-java | 3.6 | ✅ | ⌛ | ⌛ | -| [AvoidUsingVolatile](https://pmd.github.io/latest/pmd_rules_java_multithreading.html#avoidusingvolatile) | pmd-java | 3.0 | ✅ | ⌛ | ⌛ | -| [DoNotUseThreads](https://pmd.github.io/latest/pmd_rules_java_multithreading.html#donotusethreads) | pmd-java | 4.1 | ✅ | ⌛ | ⌛ | -| [DontCallThreadRun](https://pmd.github.io/latest/pmd_rules_java_multithreading.html#dontcallthreadrun) | pmd-java | 3.0 | ✅ | ⌛ | ⌛ | -| [DoubleCheckedLocking](https://pmd.github.io/latest/pmd_rules_java_multithreading.html#doublecheckedlocking) | pmd-java | 1.04 | ✅ | ⌛ | ⌛ | -| [NonThreadSafeSingleton](https://pmd.github.io/latest/pmd_rules_java_multithreading.html#nonthreadsafesingleton) | pmd-java | 3.4 | ✅ | ⌛ | ⌛ | -| [UnsynchronizedStaticDateFormatter](https://pmd.github.io/latest/pmd_rules_java_multithreading.html#unsynchronizedstaticdateformatter) | pmd-java | 3.6 | ❌ | ⌛ | ⌛ | -| [UnsynchronizedStaticFormatter](https://pmd.github.io/latest/pmd_rules_java_multithreading.html#unsynchronizedstaticformatter) | pmd-java | 3.0 | ✅ | ⌛ | ⌛ | -| [UseConcurrentHashMap](https://pmd.github.io/latest/pmd_rules_java_multithreading.html#unsynchronizedstaticformatter) | pmd-java | 4.2.6 | ❌ | ⌛ | ⌛ | -| [UseNotifyAllInsteadOfNotify](https://pmd.github.io/latest/pmd_rules_java_multithreading.html#usenotifyallinsteadofnotify) | pmd-java | 3.0 | ✅ | ⌛ | ⌛ | -| [CommentContent](https://pmd.github.io/latest/pmd_rules_java_documentation.html#ntcontent) | pmd-java | 5.0 | ❌ | ⌛ | ⌛ | -| [CommentRequired](https://pmd.github.io/latest/pmd_rules_java_documentation.html#commentrequired) | pmd-java | 5.1 | 🌵 | ⌛ | ⌛ | -| [UncommentedEmptyConstructor](https://pmd.github.io/latest/pmd_rules_java_documentation.html#uncommentedemptyconstructor) | pmd-java | 3.4 | ✅ | ⌛ | ⌛ | -| [UncommentedEmptyMethodBody](https://pmd.github.io/latest/pmd_rules_java_documentation.html#uncommentedemptymethodbody) | pmd-java | 3.4 | ✅ | ⌛ | ⌛ | +| PMD rule | Provider | Since | Status | Spring | Quarkus | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------|:----------:|:------:|:------:|:------:|:-------:| +| [UseExistingMediaTypeConstant](https://github.com/dgroup/arch4u-pmd/discussions/43) | arch4u-pmd | 0.1.0 | ✅ | ⌛ | ⌛ | +| [UseOpenApiInRestEndpoints](https://github.com/dgroup/arch4u-pmd/discussions/73) | arch4u-pmd | 0.1.0 | ✅ | ⌛ | ⌛ | +| [RestEndpointsWithoutExposedMetrics](https://github.com/dgroup/arch4u-pmd/discussions/74) | arch4u-pmd | 0.1.0 | ✅ | ⌛ | ⌛ | +| [UseConstantAsMetricName](https://github.com/dgroup/arch4u-pmd/discussions/75) | arch4u-pmd | 0.1.0 | ✅ | ⌛ | ⌛ | +| [NoMandatoryConstructorInExceptionClass](https://github.com/dgroup/arch4u-pmd/discussions/31) | arch4u-pmd | 0.1.0 | ✅ | ⌛ | ⌛ | +| [AvoidUsingObjectMapperAsALocalVariable](https://github.com/dgroup/arch4u-pmd/discussions/30) | arch4u-pmd | 0.1.0 | ✅ | ⌛ | ⌛ | +| [AvoidMdcOutsideTryStatement](https://github.com/dgroup/arch4u-pmd/discussions/86) | arch4u-pmd | 0.1.0 | ✅ | ⌛ | ⌛ | +| [PotentiallyThreadLocalPollutionByMdc](https://github.com/dgroup/arch4u-pmd/discussions/88) | arch4u-pmd | 0.1.0 | ✅ | ⌛ | ⌛ | +| AbstractClassWithoutAbstractMethod | pmd-java | 3.0 | ✅ | ⌛ | ⌛ | +| AccessorClassGeneration | pmd-java | 1.04 | ✅ | ⌛ | ⌛ | +| AccessorMethodGeneration | pmd-java | 5.5.4 | ✅ | ⌛ | ⌛ | +| ArrayIsStoredDirectly | pmd-java | 2.2 | ✅ | ⌛ | ⌛ | +| AvoidMessageDigestField | pmd-java | 6.18.0 | ✅ | ⌛ | ⌛ | +| AvoidPrintStackTrace | pmd-java | 3.2 | ✅ | ⌛ | ⌛ | +| AvoidReassigningCatchVariables | pmd-java | 6.27.0 | ✅ | ⌛ | ⌛ | +| AvoidReassigningLoopVariables | pmd-java | 6.11.0 | ✅ | ⌛ | ⌛ | +| AvoidReassigningParameters | pmd-java | 1.0 | ✅ | ⌛ | ⌛ | +| AvoidStringBufferField | pmd-java | 4.2 | ✅ | ⌛ | ⌛ | +| AvoidUsingHardCodedIP | pmd-java | 4.1 | ✅ | ⌛ | ⌛ | +| CheckResultSet | pmd-java | 4.1 | ✅ | ⌛ | ⌛ | +| ConstantsInInterface | pmd-java | 5.5 | ✅ | ⌛ | ⌛ | +| DefaultLabelNotLastInSwitchStmt | pmd-java | 1.5 | ✅ | ⌛ | ⌛ | +| DoubleBraceInitialization | pmd-java | 6.16.0 | ✅ | ⌛ | ⌛ | +| ForLoopCanBeForeach | pmd-java | 6.0.0 | ✅ | ⌛ | ⌛ | +| ForLoopVariableCount | pmd-java | 6.11.0 | ✅ | ⌛ | ⌛ | +| GuardLogStatement | pmd-java | 5.1.0 | ❌ | ⌛ | ⌛ | +| JUnit4SuitesShouldUseSuiteAnnotation | pmd-java | 4.0 | ✅ | ⌛ | ⌛ | +| JUnit4TestShouldUseAfterAnnotation | pmd-java | 4.0 | ✅ | ⌛ | ⌛ | +| JUnit4TestShouldUseBeforeAnnotation | pmd-java | 4.0 | ✅ | ⌛ | ⌛ | +| JUnit4TestShouldUseTestAnnotation | pmd-java | 4.0 | ✅ | ⌛ | ⌛ | +| JUnit5TestShouldBePackagePrivate | pmd-java | 6.35.0 | ✅ | ⌛ | ⌛ | +| JUnitAssertionsShouldIncludeMessage | pmd-java | 1.04 | 🌵 | ⌛ | ⌛ | +| JUnitTestContainsTooManyAsserts | pmd-java | 5.0 | ✅ | ⌛ | ⌛ | +| JUnitTestsShouldIncludeAssert | pmd-java | 2.0 | ✅ | ⌛ | ⌛ | +| JUnitUseExpected | pmd-java | 4.0 | ✅ | ⌛ | ⌛ | +| LiteralsFirstInComparisons | pmd-java | 6.24.0 | ✅ | ⌛ | ⌛ | +| LooseCoupling | pmd-java | 0.7 | ✅ | ⌛ | ⌛ | +| MethodReturnsInternalArray | pmd-java | 2.2 | ✅ | ⌛ | ⌛ | +| MissingOverride | pmd-java | 6.2.0 | ✅ | ⌛ | ⌛ | +| OneDeclarationPerLine | pmd-java | 5.0 | ✅ | ⌛ | ⌛ | +| PositionLiteralsFirstInCaseInsensitiveComparisons | pmd-java | 5.1 | ✅ | ⌛ | ⌛ | +| PositionLiteralsFirstInComparisons | pmd-java | 3.3 | ✅ | ⌛ | ⌛ | +| PreserveStackTrace | pmd-java | 3.7 | ✅ | ⌛ | ⌛ | +| PrimitiveWrapperInstantiation | pmd-java | 6.37.0 | ✅ | ⌛ | ⌛ | +| ReplaceEnumerationWithIterator | pmd-java | 3.4 | ✅ | ⌛ | ⌛ | +| ReplaceHashtableWithMap | pmd-java | 3.4 | ✅ | ⌛ | ⌛ | +| ReplaceVectorWithList | pmd-java | 3.4 | ✅ | ⌛ | ⌛ | +| SimplifiableTestAssertion | pmd-java | 6.37.0 | ✅ | ⌛ | ⌛ | +| SwitchStmtsShouldHaveDefault | pmd-java | 1.0 | ✅ | ⌛ | ⌛ | +| SystemPrintln | pmd-java | 2.1 | ✅ | ⌛ | ⌛ | +| UnusedAssignment | pmd-java | 6.26.0 | ✅ | ⌛ | ⌛ | +| UnusedFormalParameter | pmd-java | 0.8 | ✅ | ⌛ | ⌛ | +| UnusedImports | pmd-java | 1.0 | ✅ | ⌛ | ⌛ | +| UnusedLocalVariable | pmd-java | 0.1 | ✅ | ⌛ | ⌛ | +| UnusedPrivateField | pmd-java | 0.1 | ✅ | ⌛ | ⌛ | +| UnusedPrivateMethod | pmd-java | 0.7 | 🌵 | ⌛ | ⌛ | +| UseAssertEqualsInsteadOfAssertTrue | pmd-java | 3.1 | ✅ | ⌛ | ⌛ | +| UseAssertNullInsteadOfAssertTrue | pmd-java | 3.5 | ✅ | ⌛ | ⌛ | +| UseAssertSameInsteadOfAssertTrue | pmd-java | 3.1 | ✅ | ⌛ | ⌛ | +| UseAssertTrueInsteadOfAssertEquals | pmd-java | 5.0 | ✅ | ⌛ | ⌛ | +| UseCollectionIsEmpty | pmd-java | 3.9 | ✅ | ⌛ | ⌛ | +| UseVarargs | pmd-java | 5.0 | ✅ | ⌛ | ⌛ | +| AbstractNaming | pmd-java | 1.4 | ✅ | ⌛ | ⌛ | +| AtLeastOneConstructor | pmd-java | 1.04 | 🌵 | ✅ | ⌛ | +| AvoidDollarSigns | pmd-java | 1.4 | ✅ | ⌛ | ⌛ | +| AvoidFinalLocalVariable | pmd-java | 4.1 | ✅ | ⌛ | ⌛ | +| AvoidPrefixingMethodParameters | pmd-java | 5.0 | ✅ | ⌛ | ⌛ | +| AvoidProtectedFieldInFinalClass | pmd-java | 2.1 | ✅ | ⌛ | ⌛ | +| AvoidProtectedMethodInFinalClassNotExtending | pmd-java | 5.1 | ✅ | ⌛ | ⌛ | +| AvoidUsingNativeCode | pmd-java | 4.1 | ✅ | ⌛ | ⌛ | +| BooleanGetMethodName | pmd-java | 4.0 | ✅ | ⌛ | ⌛ | +| CallSuperInConstructor | pmd-java | 3.0 | ✅ | ⌛ | ⌛ | +| ClassNamingConventions | pmd-java | 1.2 | ✅ | ⌛ | ⌛ | +| CommentDefaultAccessModifier | pmd-java | 5.4.0 | ✅ | ⌛ | ⌛ | +| ConfusingTernary | pmd-java | 1.9 | ✅ | ⌛ | ⌛ | +| ControlStatementBraces | pmd-java | 6.2.0 | ✅ | ⌛ | ⌛ | +| DefaultPackage | pmd-java | 3.4 | ✅ | ⌛ | ⌛ | +| DontImportJavaLang | pmd-java | 0.5 | ✅ | ⌛ | ⌛ | +| DuplicateImports | pmd-java | 0.5 | ✅ | ⌛ | ⌛ | +| EmptyMethodInAbstractClassShouldBeAbstract | pmd-java | 4.1 | ✅ | ⌛ | ⌛ | +| ExtendsObject | pmd-java | 5.0 | ✅ | ⌛ | ⌛ | +| FieldDeclarationsShouldBeAtStartOfClass | pmd-java | 5.0 | ✅ | ⌛ | ⌛ | +| ForLoopShouldBeWhileLoop | pmd-java | 1.02 | ✅ | ⌛ | ⌛ | +| ForLoopsMustUseBraces | pmd-java | 0.7 | ✅ | ⌛ | ⌛ | +| GenericsNaming | pmd-java | 4.2.6 | ✅ | ⌛ | ⌛ | +| FormalParameterNamingConventions | pmd-java | 6.4.0 | ✅ | ⌛ | ⌛ | +| IfElseStmtsMustUseBraces | pmd-java | 0.2 | ✅ | ⌛ | ⌛ | +| IfStmtsMustUseBraces | pmd-java | 1.0 | ✅ | ⌛ | ⌛ | +| LocalHomeNamingConvention | pmd-java | 4.0 | ✅ | ⌛ | ⌛ | +| IdenticalCatchBranches | pmd-java | 6.4.0 | ✅ | ⌛ | ⌛ | +| LinguisticNaming | pmd-java | 6.7.0 | ✅ | ⌛ | ⌛ | +| LocalInterfaceSessionNamingConvention | pmd-java | 4.0 | ✅ | ⌛ | ⌛ | +| LocalVariableCouldBeFinal | pmd-java | 2.2 | ✅ | ⌛ | ⌛ | +| LocalVariableNamingConventions | pmd-java | 6.6.0 | ✅ | ⌛ | ⌛ | +| LongVariable | pmd-java | 0.3 | ✅ | ⌛ | ⌛ | +| MDBAndSessionBeanNamingConvention | pmd-java | 4.0 | ✅ | ⌛ | ⌛ | +| MethodArgumentCouldBeFinal | pmd-java | 2.2 | ✅ | ⌛ | ⌛ | +| MethodNamingConventions | pmd-java | 1.2 | ✅ | ⌛ | ⌛ | +| MIsLeadingVariableName | pmd-java | 3.4 | ✅ | ⌛ | ⌛ | +| NoPackage | pmd-java | 3.3 | ✅ | ⌛ | ⌛ | +| UseUnderscoresInNumericLiterals | pmd-java | 6.10.0 | ✅ | ⌛ | ⌛ | +| OnlyOneReturn | pmd-java | 6.10.0 | 🌵 | ⌛ | ⌛ | +| PackageCase | pmd-java | 3.3 | ✅ | ⌛ | ⌛ | +| PrematureDeclaration | pmd-java | 5.0 | ✅ | ⌛ | ⌛ | +| RemoteInterfaceNamingConvention | pmd-java | 4.0 | ✅ | ⌛ | ⌛ | +| RemoteSessionInterfaceNamingConvention | pmd-java | 4.0 | ✅ | ⌛ | ⌛ | +| ShortClassName | pmd-java | 5.0 | ✅ | ⌛ | ⌛ | +| ShortMethodName | pmd-java | 0.3 | ✅ | ⌛ | ⌛ | +| ShortVariable | pmd-java | 0.3 | ✅ | ⌛ | ⌛ | +| SuspiciousConstantFieldName | pmd-java | 2.0 | ✅ | ⌛ | ⌛ | +| TooManyStaticImports | pmd-java | 4.1 | ✅ | ⌛ | ⌛ | +| UnnecessaryAnnotationValueElement | pmd-java | 6.2.0 | ✅ | ⌛ | ⌛ | +| UnnecessaryCast | pmd-java | 6.24.0 | ✅ | ⌛ | ⌛ | +| UnnecessaryConstructor | pmd-java | 1.0 | ✅ | ⌛ | ⌛ | +| UnnecessaryFullyQualifiedName | pmd-java | 5.0 | ✅ | ⌛ | ⌛ | +| UnnecessaryImport | pmd-java | 6.34.0 | ✅ | ⌛ | ⌛ | +| UnnecessaryLocalBeforeReturn | pmd-java | 3.3 | ✅ | ⌛ | ⌛ | +| UnnecessaryModifier | pmd-java | 1.02 | ✅ | ⌛ | ⌛ | +| UnnecessaryReturn | pmd-java | 1.3 | ✅ | ⌛ | ⌛ | +| UseDiamondOperator | pmd-java | 6.11.0 | ✅ | ⌛ | ⌛ | +| UselessParentheses | pmd-java | 5.0 | ✅ | ⌛ | ⌛ | +| UselessQualifiedThis | pmd-java | 5.4.0 | ✅ | ⌛ | ⌛ | +| UseShortArrayInitializer | pmd-java | 6.15.0 | ✅ | ⌛ | ⌛ | +| VariableNamingConventions | pmd-java | 1.2 | ✅ | ⌛ | ⌛ | +| WhileLoopsMustUseBraces | pmd-java | 0.7 | ✅ | ⌛ | ⌛ | +| [AddEmptyString](https://pmd.github.io/latest/pmd_rules_java_performance.html#addemptystring) | pmd-java | 4.0 | ✅ | ⌛ | ⌛ | +| [AppendCharacterWithChar](https://pmd.github.io/latest/pmd_rules_java_performance.html#appendcharacterwithchar) | pmd-java | 3.5 | ✅ | ⌛ | ⌛ | +| [AvoidArrayLoops](https://pmd.github.io/latest/pmd_rules_java_performance.html#avoidarrayloops) | pmd-java | 3.5 | ✅ | ⌛ | ⌛ | +| [AvoidCalendarDateCreation](https://pmd.github.io/latest/pmd_rules_java_performance.html#avoidcalendardatecreation) | pmd-java | 6.25.0 | ✅ | ⌛ | ⌛ | +| [AvoidFileStream](https://pmd.github.io/latest/pmd_rules_java_performance.html#avoidfilestream) | pmd-java | 6.0.0 | ✅ | ⌛ | ⌛ | +| [AvoidInstantiatingObjectsInLoops](https://pmd.github.io/latest/pmd_rules_java_performance.html#avoidinstantiatingobjectsinloops) | pmd-java | 2.2 | ✅ | ⌛ | ⌛ | +| [AvoidUsingShortType](https://pmd.github.io/latest/pmd_rules_java_performance.html#avoidusingshorttype) | pmd-java | 4.1 | ❌ | ⌛ | ⌛ | +| [BigIntegerInstantiation](https://pmd.github.io/latest/pmd_rules_java_performance.html#bigintegerinstantiation) | pmd-java | 3.9 | ✅ | ⌛ | ⌛ | +| [BooleanInstantiation](https://pmd.github.io/latest/pmd_rules_java_performance.html#booleaninstantiation) | pmd-java | 1.2 | ❌ | ⌛ | ⌛ | +| [ByteInstantiation](https://pmd.github.io/latest/pmd_rules_java_performance.html#byteinstantiation) | pmd-java | 4.0 | ❌ | ⌛ | ⌛ | +| [ConsecutiveAppendsShouldReuse](https://pmd.github.io/latest/pmd_rules_java_performance.html#consecutiveappendsshouldreuse) | pmd-java | 5.1 | ✅ | ⌛ | ⌛ | +| [ConsecutiveLiteralAppends](https://pmd.github.io/latest/pmd_rules_java_performance.html#consecutiveliteralappends) | pmd-java | 3.5 | ✅ | ⌛ | ⌛ | +| [InefficientEmptyStringCheck](https://pmd.github.io/latest/pmd_rules_java_performance.html#inefficientemptystringcheck) | pmd-java | 3.6 | ✅ | ⌛ | ⌛ | +| [InefficientStringBuffering](https://pmd.github.io/latest/pmd_rules_java_performance.html#inefficientstringbuffering) | pmd-java | 3.4 | ✅ | ⌛ | ⌛ | +| [InsufficientStringBufferDeclaration](https://pmd.github.io/latest/pmd_rules_java_performance.html#insufficientstringbufferdeclaration) | pmd-java | 3.6 | ✅ | ⌛ | ⌛ | +| [IntegerInstantiation](https://pmd.github.io/latest/pmd_rules_java_performance.html#integerinstantiation) | pmd-java | 3.5 | ❌ | ⌛ | ⌛ | +| [LongInstantiation](https://pmd.github.io/latest/pmd_rules_java_performance.html#longinstantiation) | pmd-java | 4.0 | ❌ | ⌛ | ⌛ | +| [OptimizableToArrayCall](https://pmd.github.io/latest/pmd_rules_java_performance.html#optimizabletoarraycall) | pmd-java | 1.8 | ✅ | ⌛ | ⌛ | +| [RedundantFieldInitializer](https://pmd.github.io/latest/pmd_rules_java_performance.html#redundantfieldinitializer) | pmd-java | 5.0 | ✅ | ⌛ | ⌛ | +| [ShortInstantiation](https://pmd.github.io/latest/pmd_rules_java_performance.html#shortinstantiation) | pmd-java | 4.0 | ❌ | ⌛ | ⌛ | +| [SimplifyStartsWith](https://pmd.github.io/latest/pmd_rules_java_performance.html#simplifystartswith) | pmd-java | 3.1 | ✅ | ⌛ | ⌛ | +| [StringInstantiation](https://pmd.github.io/latest/pmd_rules_java_performance.html#stringinstantiation) | pmd-java | 1.0 | ✅ | ⌛ | ⌛ | +| [StringToString](https://pmd.github.io/latest/pmd_rules_java_performance.html#stringtostring) | pmd-java | 1.0 | ✅ | ⌛ | ⌛ | +| [TooFewBranchesForASwitchStatement](https://pmd.github.io/latest/pmd_rules_java_performance.html#toofewbranchesforaswitchstatement) | pmd-java | 4.2 | ✅ | ⌛ | ⌛ | +| [UnnecessaryWrapperObjectCreation](https://pmd.github.io/latest/pmd_rules_java_performance.html#unnecessarywrapperobjectcreation) | pmd-java | 3.8 | ✅ | ⌛ | ⌛ | +| [UseArrayListInsteadOfVector](https://pmd.github.io/latest/pmd_rules_java_performance.html#usearraylistinsteadofvector) | pmd-java | 3.0 | ✅ | ⌛ | ⌛ | +| [UseArraysAsList](https://pmd.github.io/latest/pmd_rules_java_performance.html#usearraysaslist) | pmd-java | 3.5 | ✅ | ⌛ | ⌛ | +| [UseIndexOfChar](https://pmd.github.io/latest/pmd_rules_java_performance.html#useindexofchar) | pmd-java | 3.5 | ✅ | ⌛ | ⌛ | +| [UseIOStreamsWithApacheCommonsFileItem](https://pmd.github.io/latest/pmd_rules_java_performance.html#useiostreamswithapachecommonsfileitem) | pmd-java | 6.25.0 | ✅ | ⌛ | ⌛ | +| [UselessStringValueOf](https://pmd.github.io/latest/pmd_rules_java_performance.html#uselessstringvalueof) | pmd-java | 3.8 | ✅ | ⌛ | ⌛ | +| [UseStringBufferForStringAppends](https://pmd.github.io/latest/pmd_rules_java_performance.html#usestringbufferforstringappends) | pmd-java | 3.1 | ✅ | ⌛ | ⌛ | +| [UseStringBufferLength](https://pmd.github.io/latest/pmd_rules_java_performance.html#usestringbufferlength) | pmd-java | 3.4 | ✅ | ⌛ | ⌛ | +| [AvoidSynchronizedAtMethodLevel](https://pmd.github.io/latest/pmd_rules_java_multithreading.html#avoidsynchronizedatmethodlevel) | pmd-java | 3.0 | ✅ | ⌛ | ⌛ | +| [AvoidThreadGroup](https://pmd.github.io/latest/pmd_rules_java_multithreading.html#avoidthreadgroup) | pmd-java | 3.6 | ✅ | ⌛ | ⌛ | +| [AvoidUsingVolatile](https://pmd.github.io/latest/pmd_rules_java_multithreading.html#avoidusingvolatile) | pmd-java | 3.0 | ✅ | ⌛ | ⌛ | +| [DoNotUseThreads](https://pmd.github.io/latest/pmd_rules_java_multithreading.html#donotusethreads) | pmd-java | 4.1 | ✅ | ⌛ | ⌛ | +| [DontCallThreadRun](https://pmd.github.io/latest/pmd_rules_java_multithreading.html#dontcallthreadrun) | pmd-java | 3.0 | ✅ | ⌛ | ⌛ | +| [DoubleCheckedLocking](https://pmd.github.io/latest/pmd_rules_java_multithreading.html#doublecheckedlocking) | pmd-java | 1.04 | ✅ | ⌛ | ⌛ | +| [NonThreadSafeSingleton](https://pmd.github.io/latest/pmd_rules_java_multithreading.html#nonthreadsafesingleton) | pmd-java | 3.4 | ✅ | ⌛ | ⌛ | +| [UnsynchronizedStaticDateFormatter](https://pmd.github.io/latest/pmd_rules_java_multithreading.html#unsynchronizedstaticdateformatter) | pmd-java | 3.6 | ❌ | ⌛ | ⌛ | +| [UnsynchronizedStaticFormatter](https://pmd.github.io/latest/pmd_rules_java_multithreading.html#unsynchronizedstaticformatter) | pmd-java | 3.0 | ✅ | ⌛ | ⌛ | +| [UseConcurrentHashMap](https://pmd.github.io/latest/pmd_rules_java_multithreading.html#unsynchronizedstaticformatter) | pmd-java | 4.2.6 | ❌ | ⌛ | ⌛ | +| [UseNotifyAllInsteadOfNotify](https://pmd.github.io/latest/pmd_rules_java_multithreading.html#usenotifyallinsteadofnotify) | pmd-java | 3.0 | ✅ | ⌛ | ⌛ | +| [CommentContent](https://pmd.github.io/latest/pmd_rules_java_documentation.html#ntcontent) | pmd-java | 5.0 | ❌ | ⌛ | ⌛ | +| [CommentRequired](https://pmd.github.io/latest/pmd_rules_java_documentation.html#commentrequired) | pmd-java | 5.1 | 🌵 | ⌛ | ⌛ | +| [UncommentedEmptyConstructor](https://pmd.github.io/latest/pmd_rules_java_documentation.html#uncommentedemptyconstructor) | pmd-java | 3.4 | ✅ | ⌛ | ⌛ | +| [UncommentedEmptyMethodBody](https://pmd.github.io/latest/pmd_rules_java_documentation.html#uncommentedemptymethodbody) | pmd-java | 3.4 | ✅ | ⌛ | ⌛ | +| [AbstractClassWithoutAnyMethod](https://pmd.github.io/latest/pmd_rules_java_design.html#abstractclasswithoutanymethod) | pmd-java | 4.2 | ✅ | ⌛ | ⌛ | +| [AvoidCatchingGenericException](https://pmd.github.io/latest/pmd_rules_java_design.html#avoidcatchinggenericexception) | pmd-java | 4.2.6 | ❌ | ⌛ | ⌛ | +| [AvoidDeeplyNestedIfStmts](https://pmd.github.io/latest/pmd_rules_java_design.html#avoiddeeplynestedifstmts) | pmd-java | 1.0 | ✅ | ⌛ | ⌛ | +| [AvoidRethrowingException](https://pmd.github.io/latest/pmd_rules_java_design.html#avoidrethrowingexception) | pmd-java | 3.8 | ✅ | ⌛ | ⌛ | +| [AvoidThrowingNewInstanceOfSameException](https://pmd.github.io/latest/pmd_rules_java_design.html#avoidthrowingnewinstanceofsameexception) | pmd-java | 4.2.5 | ✅ | ⌛ | ⌛ | +| [AvoidThrowingNullPointerException](https://pmd.github.io/latest/pmd_rules_java_design.html#avoidthrowingnullpointerexception) | pmd-java | 1.8 | ✅ | ⌛ | ⌛ | +| [AvoidThrowingRawExceptionTypes](https://pmd.github.io/latest/pmd_rules_java_design.html#avoidthrowingrawexceptiontypes) | pmd-java | 1.8 | ✅ | ⌛ | ⌛ | +| [AvoidUncheckedExceptionsInSignatures](https://pmd.github.io/latest/pmd_rules_java_design.html#avoiduncheckedexceptionsinsignatures) | pmd-java | 6.13.0 | ✅ | ⌛ | ⌛ | +| [ClassWithOnlyPrivateConstructorsShouldBeFinal](https://pmd.github.io/latest/pmd_rules_java_design.html#classwithonlyprivateconstructorsshouldbefinal) | pmd-java | 4.1 | ✅ | ⌛ | ⌛ | +| [CollapsibleIfStatements](https://pmd.github.io/latest/pmd_rules_java_design.html#collapsibleifstatements) | pmd-java | 3.1 | ✅ | ⌛ | ⌛ | +| [CouplingBetweenObjects](https://pmd.github.io/latest/pmd_rules_java_design.html#couplingbetweenobjects) | pmd-java | 1.0.4 | 🌵 | ⌛ | ⌛ | +| [CognitiveComplexity](https://pmd.github.io/latest/pmd_rules_java_design.html#cognitivecomplexity) | pmd-java | 6.35.0 | ✅ | ⌛ | ⌛ | +| [CyclomaticComplexity](https://pmd.github.io/latest/pmd_rules_java_design.html#cyclomaticcomplexity) | pmd-java | 1.03 | ✅ | ⌛ | ⌛ | +| [DataClass](https://pmd.github.io/latest/pmd_rules_java_design.html#dataclass) | pmd-java | 6.0.0 | ✅ | ⌛ | ⌛ | +| [DoNotExtendJavaLangError](https://pmd.github.io/latest/pmd_rules_java_design.html#donotextendjavalangerror) | pmd-java | 4.0 | ✅ | ⌛ | ⌛ | +| [ExceptionAsFlowControl](https://pmd.github.io/latest/pmd_rules_java_design.html#exceptionasflowcontrol) | pmd-java | 1.8 | ✅ | ⌛ | ⌛ | +| [ExcessiveClassLength](https://pmd.github.io/latest/pmd_rules_java_design.html#excessiveclasslength) | pmd-java | 0.6 | ✅ | ⌛ | ⌛ | +| [ExcessiveImports](https://pmd.github.io/latest/pmd_rules_java_design.html#excessiveimports) | pmd-java | 1.04 | ✅ | ⌛ | ⌛ | +| [ExcessiveMethodLength](https://pmd.github.io/latest/pmd_rules_java_design.html#excessivemethodlength) | pmd-java | 0.6 | ✅ | ⌛ | ⌛ | +| [ExcessiveParameterList](https://pmd.github.io/latest/pmd_rules_java_design.html#excessiveparameterlist) | pmd-java | 0.9 | ✅ | ⌛ | ⌛ | +| [ExcessivePublicCount](https://pmd.github.io/latest/pmd_rules_java_design.html#excessivepubliccount) | pmd-java | 1.04 | ✅ | ⌛ | ⌛ | +| [FinalFieldCouldBeStatic](https://pmd.github.io/latest/pmd_rules_java_design.html#finalfieldcouldbestatic) | pmd-java | 1.1 | ✅ | ⌛ | ⌛ | +| [GodClass](https://pmd.github.io/latest/pmd_rules_java_design.html#godclass) | pmd-java | 5.0 | ✅ | ⌛ | ⌛ | +| [ImmutableField](https://pmd.github.io/latest/pmd_rules_java_design.html#immutablefield) | pmd-java | 2.0 | ✅ | ⌛ | ⌛ | +| [LawOfDemeter](https://pmd.github.io/latest/pmd_rules_java_design.html#lawofdemeter) | pmd-java | 5.0 | ❌ | ⌛ | ⌛ | +| [LogicInversion](https://pmd.github.io/latest/pmd_rules_java_design.html#logicinversion) | pmd-java | 5.0 | ✅ | ⌛ | ⌛ | +| [LoosePackageCoupling](https://pmd.github.io/latest/pmd_rules_java_design.html#loosepackagecoupling) | pmd-java | 5.0 | ❌ | ⌛ | ⌛ | +| [ModifiedCyclomaticComplexity](https://pmd.github.io/latest/pmd_rules_java_design.html#modifiedcyclomaticcomplexity) | pmd-java | 5.1.2 | ✅ | ⌛ | ⌛ | +| [NcssConstructorCount](https://pmd.github.io/latest/pmd_rules_java_design.html#ncssconstructorcount) | pmd-java | 3.9 | ✅ | ⌛ | ⌛ | +| [NcssCount](https://pmd.github.io/latest/pmd_rules_java_design.html#ncsscount) | pmd-java | 6.0.0 | ✅ | ⌛ | ⌛ | +| [NcssMethodCount](https://pmd.github.io/latest/pmd_rules_java_design.html#ncssmethodcount) | pmd-java | 3.9 | ✅ | ⌛ | ⌛ | +| [NcssTypeCount](https://pmd.github.io/latest/pmd_rules_java_design.html#ncsstypecount) | pmd-java | 3.9 | ✅ | ⌛ | ⌛ | +| [NPathComplexity](https://pmd.github.io/latest/pmd_rules_java_design.html#npathcomplexity) | pmd-java | 3.9 | ✅ | ⌛ | ⌛ | +| [SignatureDeclareThrowsException](https://pmd.github.io/latest/pmd_rules_java_design.html#signaturedeclarethrowsexception) | pmd-java | 1.2 | ❌ | ⌛ | ⌛ | +| [SimplifiedTernary](https://pmd.github.io/latest/pmd_rules_java_design.html#simplifiedternary) | pmd-java | 5.4.0 | ✅ | ⌛ | ⌛ | +| [SimplifyBooleanAssertion](https://pmd.github.io/latest/pmd_rules_java_design.html#simplifybooleanassertion) | pmd-java | 3.6 | ✅ | ⌛ | ⌛ | +| [SimplifyBooleanExpressions](https://pmd.github.io/latest/pmd_rules_java_design.html#simplifybooleanexpressions) | pmd-java | 1.05 | ✅ | ⌛ | ⌛ | +| [SimplifyBooleanReturns](https://pmd.github.io/latest/pmd_rules_java_design.html#simplifybooleanreturns) | pmd-java | 0.9 | ✅ | ⌛ | ⌛ | +| [SimplifyConditional](https://pmd.github.io/latest/pmd_rules_java_design.html#simplifyconditional) | pmd-java | 3.1 | ✅ | ⌛ | ⌛ | +| [SingularField](https://pmd.github.io/latest/pmd_rules_java_design.html#singularfield) | pmd-java | 3.1 | ✅ | ⌛ | ⌛ | +| [StdCyclomaticComplexity](https://pmd.github.io/latest/pmd_rules_java_design.html#singularfield) | pmd-java | 5.1.2 | ❌ | ⌛ | ⌛ | +| [SwitchDensity](https://pmd.github.io/latest/pmd_rules_java_design.html#switchdensity) | pmd-java | 1.02 | ✅ | ⌛ | ⌛ | +| [TooManyFields](https://pmd.github.io/latest/pmd_rules_java_design.html#toomanyfields) | pmd-java | 3.0 | 🌵 | ⌛ | ⌛ | +| [TooManyMethods](https://pmd.github.io/latest/pmd_rules_java_design.html#toomanymethods) | pmd-java | 4.2 | 🌵 | ⌛ | ⌛ | +| [UselessOverridingMethod](https://pmd.github.io/latest/pmd_rules_java_design.html#uselessoverridingmethod) | pmd-java | 3.3 | ✅ | ⌛ | ⌛ | +| [UseObjectForClearerAPI](https://pmd.github.io/latest/pmd_rules_java_design.html#useobjectforclearerapi) | pmd-java | 4.2.6 | ❌ | ⌛ | ⌛ | +| [UseUtilityClass](https://pmd.github.io/latest/pmd_rules_java_design.html#useutilityclass) | pmd-java | 0.3 | ✅ | ⌛ | ⌛ | +| [MutableStaticState](https://pmd.github.io/latest/pmd_rules_java_design.html#mutablestaticstate) | pmd-java | 6.35.0 | ✅ | ⌛ | ⌛ | ### How to use? #### Maven (pom.xml) diff --git a/src/main/resources/io/github/dgroup/arch4u/pmd/thirdparty/arch4u-recommended-third-party-ruleset.xml b/src/main/resources/io/github/dgroup/arch4u/pmd/thirdparty/arch4u-recommended-third-party-ruleset.xml index 69ee3d1..1a57062 100644 --- a/src/main/resources/io/github/dgroup/arch4u/pmd/thirdparty/arch4u-recommended-third-party-ruleset.xml +++ b/src/main/resources/io/github/dgroup/arch4u/pmd/thirdparty/arch4u-recommended-third-party-ruleset.xml @@ -55,7 +55,6 @@ - @@ -63,6 +62,7 @@ + @@ -102,7 +102,7 @@ - + ˚ From 2b47126d07c2efecc8dfe651f81d2911b02a2251 Mon Sep 17 00:00:00 2001 From: Yurii Dubinka Date: Fri, 11 Feb 2022 02:11:34 +0200 Subject: [PATCH 2/2] #89: Align formatting in all GitHub discussion items --- pom.xml | 1 - .../github/dgroup/arch4u/pmd/api/arch4u-rest-ruleset.xml | 3 +-- .../github/dgroup/arch4u/pmd/arch4u-template-ruleset.xml | 9 ++++----- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml index a986569..292a72e 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,6 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - 4.0.0 io.github.dgroup arch4u-pmd diff --git a/src/main/resources/io/github/dgroup/arch4u/pmd/api/arch4u-rest-ruleset.xml b/src/main/resources/io/github/dgroup/arch4u/pmd/api/arch4u-rest-ruleset.xml index 2793a2e..436be6d 100644 --- a/src/main/resources/io/github/dgroup/arch4u/pmd/api/arch4u-rest-ruleset.xml +++ b/src/main/resources/io/github/dgroup/arch4u/pmd/api/arch4u-rest-ruleset.xml @@ -80,9 +80,8 @@ import org.springframework.web.bind.annotation.GetMapping; @RestController - public class MyTypicalRestController extends ParentClass { + public class MyTypicalRestController implements TypicalRestApiGeneratedByOpenApi { @Override - @GetMapping("/get") public String get() { return null; } diff --git a/src/main/resources/io/github/dgroup/arch4u/pmd/arch4u-template-ruleset.xml b/src/main/resources/io/github/dgroup/arch4u/pmd/arch4u-template-ruleset.xml index 8ba3107..7132b33 100644 --- a/src/main/resources/io/github/dgroup/arch4u/pmd/arch4u-template-ruleset.xml +++ b/src/main/resources/io/github/dgroup/arch4u/pmd/arch4u-template-ruleset.xml @@ -16,7 +16,8 @@ Avoid to use prohibited classes. See discussion about tips/tricks implementation on Github: - https://github.com/pmd/pmd/discussions/3705 + - https://github.com/pmd/pmd/discussions/3705 + - https://github.com/dgroup/arch4u-pmd/discussions/101 3 @@ -110,11 +111,9 @@ - - TBD - 3