What's Changed
- All Java rules have been migrated to PMD 7, the pmd7 branch is now the default branch;
- Five new Java rules are added;
- Many Java rules have been improved.
New rules
- AvoidUnclearHttpRouteSecurity
- AvoidMutableCollectionInParallelStreamForEach
- AvoidSideEffectsInStreams
- AvoidInfiniteRecursion
- UnresolvedType
PR's in this release
- AvoidXPathAPIUsage Kotlin rule by @jborgers in #311
- Pmd7 upgrade 7.2.0 by @jborgers in #317
- Migrate java rules to pmd 7.x.x #309: by @jborgers in #327
- Migrate java rules to pmd 7.x.x #309: common_std rule number 1: Avoid… by @stokpop in #329
- Migrate java rules to pmd 7.x.x #309: common_std rule number 4: Avoid… by @stokpop in #332
- Migrate java rules to pmd 7.x.x #309: common_std rule number 5: Limit… by @stokpop in #333
- Migrate java rules to pmd 7.x.x #309: common, AvoidExposingMutableRec… by @jborgers in #339
- Migrate java rules to pmd 7.x.x #309: common_std rule number 3: AvoidConcatInAppend by @stokpop in #331
- Migrate java rules to pmd 7.x.x #309: common_std rule number 6: LetFieldsMeetSerializable by @stokpop in #334
- Migrate java rules to pmd 7.x.x #309: common_std rule number 7: LimitStatementsInLambdas by @stokpop in #335
- Migrate java rules to pmd 7.x.x #309: common_std rule number 8: LimitNestingInLambdas by @stokpop in #336
- Migrate java rules to pmd 7.x.x #309: common_std rule number 9: AvoidForEachInStreams by @stokpop in #337
- Migrate java rules to pmd 7.x.x #309: common, ImproperVariableName. A… by @jborgers in #338
- Pmd7 upgrade 7.2.0 avoid calendar date creation by @stokpop in #342
- Pmd7 upgrade 7.2.0 common from 34 by @jborgers in #343
- Pmd7 upgrade 7.2.0 concurrent rules set 01 by @stokpop in #344
- Pmd7 upgrade 7.2.0 common set2 by @jborgers in #345
- Migrate java rules to pmd 7.x.x #309: DefineConcurrencyForJavaEESingl… by @jborgers in #346
- Pmd7 upgrade 7.2.0 remoting set1 by @jborgers in #347
- Pmd7 upgrade 7.2.0 concurrent rules set 02 by @stokpop in #350
- Pmd7 upgrade 7.2.0 remoting set2 by @jborgers in #351
- Migrate java rules to pmd 7.x.x #309: remoting - fixed issues from PR… by @jborgers in #354
- Pmd7 upgrade 7.2.0 concurrent rules set 03 by @stokpop in #355
- Pmd7 upgrade 7.2.0 concurrent rules set 03 by @stokpop in #359
- Pmd7 upgrade 7.2.0 remoting set2 by @jborgers in #358
- Pmd7 upgrade 7.2.0 concurrent rules set 04 by @stokpop in #360
- Pmd7 upgrade 7.2.0 concurrent rules set 05 by @stokpop in #361
- Pmd7 upgrade 7.2.0 remoting set3 by @jborgers in #365
- Migrate java rules to pmd 7.x.x #309: remoting - AvoidHttpHostOneArgu… by @jborgers in #368
- Pmd7 upgrade 7.2.0 spring set 01 by @stokpop in #371
- Pmd7 upgrade 7.2.0 spring set 02 by @stokpop in #374
- Pmd7 upgrade 7.2.0 sql set 1 by @jborgers in #376
- Pmd7 upgrade 7.2.0 sql set 2 by @jborgers in #379
- Pmd7 upgrade 7.2.0 by @jborgers in #380
- merged all tags from main (pmd6) to pmd7 by @stokpop in #382
- Pmd7 changes from master set 1 by @jborgers in #381
- Fix for pmd7 AvoidConcatInLoop false positive #383 by @jborgers in #384
- pmd7 fix request #385 AvoidUnguardedAssignmentToNonFinalFieldsInObjectsUsingSynchronized by @stokpop in #386
- Fix for pmd7 OptimizeMapOrSetForEnum false positive and missed case #387 by @jborgers in #388
- Fix for pmd7 AvoidUnguardedMutableInheritedFieldsInSharedObjects fals… by @jborgers in #394
- pmd7 fix request #389 fix + added unit test to check combination of @ConfigurationProperties and Lombok @Setter by @stokpop in #390
- Fix for pmd7 AvoidHardcodedConnectionConfig false positive #398 by @jborgers in #399
- Fix request for pmd7 AvoidUserDataInSharedObjects false positive #396 by @jborgers in #397
- Fix for pmd7 AvoidModifyingObjectMapper false positive #400 by @jborgers in #401
- Fix: pmd7 HttpClientBuilderWithoutTimeouts false positive #402 by @jborgers in #403
- Fix: pmd7 AvoidMutableStaticFields false positive #405 by @jborgers in #406
- Pmd7 fix request for issue #395 *LogArgument(s) rules do not work with @slf4j tag by @stokpop in #404
- Fix: pmd7 AvoidForEachInStreams false positives #407, and #341 and #410 by @jborgers in #409
- pmd7 fix request #411 LetFieldsMeetSerializable double hits by @stokpop in #412
- Fix Request for UnconditionalOperationOnLogArgument: Spurious violations on chained operations #415 by @jborgers in #416
- Fix variable matching in constructor assignment expressions by @jborgers in #418
- Fix for MissingEqualsAndHashCodeWithGetterSetter: spurious violations #419 by @jborgers in #420
- Fix for NonComparableMapKeys: false positives for boxed primitives #421 by @jborgers in #422
- Change in the description of the ruleset from 'performance' to 'responsible' by @jborgers in #423
- Fix for AvoidDiscardingHttpClientConfig - false positive #425 by @jborgers in #426
- Fix for AvoidUnnecessaryStringBuilderCreation: false positive for no… by @jborgers in #428
- Update AvoidParallelStreamWithCommonPool description and tags sustainability-low to medium by @jborgers in #429
- Fix: false positive in AvoidUnconditionalBuiltLogStrings #430 by @jborgers in #431
- Fix: AvoidUnnecessaryStringBuilderCreation spurious violations #433 by @jborgers in #435
- Fix: AvoidMultipleConcatStatements spurious violations and missing cases #434 by @jborgers in #436
- Fix: overlap between ImplementEqualsHashCodeOnValueObjects and MissingEqualsHashCodeWithGetterSetter #432 by @jborgers in #437
- Fix: ImplementEqualsHashCodeOnValueObjects has false positives #438 by @jborgers in #443
- New Rule: AvoidMutableCollectionInParallelStreamForEach #408 by @jborgers in #439
- Fix : false positive in HashCodeOnlyCallsSuper #440 by @jborgers in #441
- Fix Request: false positive in UseClearKeyGeneratorName #446 by @jborgers in #448
- Fix: false positive in NotProperlySynchronizedOnFieldWhileUsingGuardedBy #442 by @jborgers in #449
- Fix: false positive in BufferFilesNewStream #456 by @jborgers in #457
- readme update by @jborgers in #453
- Fix: correction of false positive in BufferFilesNewStream #456 by @jborgers in #458
- False positive in AvoidObjectMapperAsField #370 by @jborgers in #459
- pmd7 fix request #450 - avoid abundant hits AvoidXMLGregorianCalendar by @stokpop in #460
- New rule: AvoidUnclearHttpRouteSecurity #364 by @jborgers in #464
- Fix: UnconditionalOperationOnLogArgument (and 2 other log rules) false positive #455 - exclude private logXX method which are only called conditionally by @jborgers in #465
- New Rule: AvoidSideEffectsInStreams #461 by @jborgers in #466
- Fix Request: Documentation links point to master, should be pmd7 branch #471 by @jborgers in #472
- pmd7 fix request #470 - TreeSet or TreeMap with Comparator constructor are fine by @stokpop in #477
- Fix Request: false positive in MDCPutWithoutRemove - doFinally #326 - put in a called method #473 by @jborgers in #479
- New Rule: AvoidInfiniteRecursion #478 by @jborgers in #481
- Pmd7 Fix request: false postive UnconditionalOperationOnLogArgument #468 by @stokpop in #482
- Fix : false positive for HashCodeOnlyCallsSuper -- not when equals also calls only super #483 by @jborgers in #486
- pmd7: fix example formatting (spacing) by @stokpop in #487
- Fix : false positives for AvoidInfiniteRecursion #484 by @jborgers in #485
- Additional false positive fixed : false positives for AvoidInfiniteRecursion #484 #485 by @jborgers in #488
- issue #484 additional false positive on this.attribute by @jborgers in #489
- Fix: AvoidInfiniteRecursion false positives, call with same number of parameters #490 by @jborgers in #491
- pmd7 fix request #413 added tests, is already fixed by checking for append in code block by @stokpop in #495
- Fix: AvoidUnguardedAssignmentToNonFinalFieldsInSharedObjects - static inner class of @component #492 by @jborgers in #494
- Fix: AvoidUnguardedMutableInheritedFieldsInSharedObjects false positive for lambda #496 by @jborgers in #497
- Fix: AvoidInfiniteRecursion false positive for same number of params, other types #498 by @jborgers in #504
- Fix: AvoidInfiniteRecursion - this.field false positive #506 by @jborgers in #508
- Fix: AvoidUnguardedMutableInheretedFieldsInSharedObjects for for-each-loop variable #509 by @jborgers in #510
- Fix: FieldOfHashCodeMissingInEquals false positive cached hash code #503 by @jborgers in #511
- Fix request: AvoidInfiniteRecursion false positive other types in method call #507 by @jborgers in #512
- Fix: AvoidUnguardedMutableInheritedFieldsInSharedObjects false positive in for/switch/... blocks #502 by @jborgers in #513
- Fix: AvoidIncrementOrDecrementForVolatileField false positive on "not" #500 by @jborgers in #514
- Fix: AvoidParallelFlux missed case #516 by @jborgers in #517
- Fix: MDCPutWithoutRemove false positive #518 by @jborgers in #519
- Bump org.springframework:spring-webmvc from 6.1.13 to 6.1.14 by @dependabot in #499
- Fix: AvoidInfiniteRecursion false positive and undetected List.of #521 by @jborgers in #524
- Fix: false positive of UnconditionalOperationOnLogArgument #522 by @jborgers in #523
- Fix: false positives with MissingEqualsAndHashCodeWithGetterSetter #528 by @jborgers in #529
- Fix: False positive in AvoidForEachInStream #530 by @jborgers in #531
- pmd7-Issue532 false positives with LimitStatementsInLambda by @jborgers in #533
- Fix: Missed cases for AvoidMutableLists and no dealing with Lombok #525 by @jborgers in #526
- Fix: AvoidUnguardedAssignmentToNonFinalFieldsInSharedObjects false positive with static class #520 by @jborgers in #536
- Fix: AvoidSpringMVCMemoryLeaks false positive on non MVC code #501 by @jborgers in #535
- Fix : BufferFilesNewStream rule support for BufferedReader and BufferedWriter, and false positives with methods using buffers #539 by @jborgers in #541
- Rule request: UnresolvedDependencies by @jborgers in #543
- pmd7-Issue544 by @jborgers in #545
- Fix 8th step: false pos: @slf4j on enum and record. False positives and missed cases in UnresolvedType #544 by @jborgers in #546
Full Changelog: v1.9.0...v2.0.0