diff --git a/src/site/markdown/overview/changelog.md b/src/site/markdown/overview/changelog.md index 7075b297f7..071752e5ab 100644 --- a/src/site/markdown/overview/changelog.md +++ b/src/site/markdown/overview/changelog.md @@ -4,11 +4,7 @@
- -**Note**: - -PMD 5.4.0 requires JDK 1.7 or above. - +Note: PMD 5.4.0 requires JDK 1.7 or above.
**Summary:** @@ -32,50 +28,42 @@ PMD 5.4.0 requires JDK 1.7 or above. * Java: - * Basic: **SimplifiedTernary** (rulesets/java/basic.xml/SimplifiedTernary) - - Ternary operator with a boolean literal can be simplified with a boolean expression. - - * Clone: **CloneMethodMustBePublic** (rulesets/java/clone.xml/CloneMethodMustBePublic) + * Basic: **SimplifiedTernary** (rulesets/java/basic.xml/SimplifiedTernary)
+ Ternary operator with a boolean literal can be simplified with a boolean + expression. + * Clone: **CloneMethodMustBePublic** (rulesets/java/clone.xml/CloneMethodMustBePublic)
The java manual says "By convention, classes that implement the `Cloneable` interface should override `Object.clone` (which is protected) with a public method." - * Clone: **CloneMethodReturnTypeMustMatchClassName** (rulesets/java/clone.xml/CloneMethodReturnTypeMustMatchClassName) - + * Clone: **CloneMethodReturnTypeMustMatchClassName** (rulesets/java/clone.xml/CloneMethodReturnTypeMustMatchClassName)
If a class implements `Cloneable` the return type of the method `clone()` must be the class name. - * Comments: **CommentDefaultAccessModifier** (rulesets/java/comments.xml/CommentDefaultAccessModifier) - + * Comments: **CommentDefaultAccessModifier** (rulesets/java/comments.xml/CommentDefaultAccessModifier)
In order to avoid mistakes with forgotten access modifiers for methods, this rule ensures, that you explicitly mark the usage of the default access modifier by placing a comment. - * Design: **SingletonClassReturningNewInstance** (rulesets/java/design.xml/SingletonClassReturningNewInstance) - + * Design: **SingletonClassReturningNewInstance** (rulesets/java/design.xml/SingletonClassReturningNewInstance)
Verifies that the method called `getInstance` returns a cached instance and not always a fresh, new instance. - * Design: **SingleMethodRule** (rulesets/java/design.xml/SingleMethodSingletonRule) - + * Design: **SingleMethodRule** (rulesets/java/design.xml/SingleMethodSingletonRule)
Verifies that there is only one method called `getInstance`. If there are more methods that return the singleton, then it can easily happen, that these are not the same instances - and thus no singleton. - * Unnecessary: **UselessQualifiedThis** (rulesets/java/unnecessary.xml/UselessQualifiedThis) - + * Unnecessary: **UselessQualifiedThis** (rulesets/java/unnecessary.xml/UselessQualifiedThis)
Flags unnecessary qualified usages of this, when `this` alone would be unique. E.g. use just `this` instead of `Foo.this`. * Maven POM: (The rules can be found in the *pmd-xml* module) - * Basic: **ProjectVersionAsDependencyVersion** (rulesets/pom/basic.xml/ProjectVersionAsDependencyVersion) - + * Basic: **ProjectVersionAsDependencyVersion** (rulesets/pom/basic.xml/ProjectVersionAsDependencyVersion)
Checks the usage of `${project.version}` in Maven POM files. - * Basic: **InvalidDependencyTypes** (rulesets/pom/basic.xml/InvalidDependencyTypes) - + * Basic: **InvalidDependencyTypes** (rulesets/pom/basic.xml/InvalidDependencyTypes)
Verifies that only the default types (jar, war, ...) for dependencies are used. Ruleset snippet to activate the new rules: @@ -96,50 +84,43 @@ Ruleset snippet to activate the new rules: * Java - * Basic: **CheckResultSet** (rulesets/java/basic.xml/CheckResultSet) - + * Basic: **CheckResultSet** (rulesets/java/basic.xml/CheckResultSet)
Do not require to check the result of a navigation method, if it is returned. - * JUnit: **UseAssertTrueInsteadOfAssertEquals** (rulesets/java/junit.xml/UseAssertTrueInsteadOfAssertEquals) - + * JUnit: **UseAssertTrueInsteadOfAssertEquals** (rulesets/java/junit.xml/UseAssertTrueInsteadOfAssertEquals)
This rule also flags assertEquals, that use Boolean.TRUE/FALSE constants. - * Naming: **AbstractNaming** (rulesets/java/naming.xml/AbstractNaming) - + * Naming: **AbstractNaming** (rulesets/java/naming.xml/AbstractNaming)
By default, this rule flags now classes, that are named "Abstract" but are not abstract. This behavior can be disabled by setting the new property `strict` to false. - * Naming: **ShortMethodName** (rulesets/java/naming.xml/ShortMethodName) - + * Naming: **ShortMethodName** (rulesets/java/naming.xml/ShortMethodName)
Additional property `minimum` to configure the minimum required length of a method name. - * Naming: **ShortVariable** (rulesets/java/naming.xml/ShortVariable) - + * Naming: **ShortVariable** (rulesets/java/naming.xml/ShortVariable)
Additional property `minimum` to configure the minimum required length of a variable name. - * UnusedCode: **UnusedPrivateField** (rulesets/java/unusedcode.xml/UnusedPrivateField) - + * UnusedCode: **UnusedPrivateField** (rulesets/java/unusedcode.xml/UnusedPrivateField)
This rule won't trigger anymore if [Lombok](https://projectlombok.org) is in use. See [#1420](https://sourceforge.net/p/pmd/bugs/1420/). **Renamed Rules:** * Java - * Design: **UseSingleton** - **UseUtilityClass** (rulesets/java/design.xml/UseUtilityClass) - + * Design: **UseSingleton** - **UseUtilityClass** (rulesets/java/design.xml/UseUtilityClass)
The rule "UseSingleton" *has been renamed* to "UseUtilityClass". See also bugs [#1059](https://sourceforge.net/p/pmd/bugs/1059) and [#1339](https://sourceforge.net/p/pmd/bugs/1339/). **Removed Rules:** * Java - * Basic: The following rules of ruleset "Basic" were marked as deprecated and are removed with this release now: - + * Basic: The following rules of ruleset "Basic" were marked as deprecated and are removed with this release now:
+
EmptyCatchBlock, EmptyIfStatement, EmptyWhileStmt, EmptyTryBlock, EmptyFinallyBlock, EmptySwitchStatements, EmptySynchronizedBlock, EmptyStatementNotInLoop, EmptyInitializer, EmptyStatementBlock, EmptyStaticInitializer - +

UnnecessaryConversionTemporary, UnnecessaryReturn, UnnecessaryFinalModifier, UselessOverridingMethod, UselessOperationOnImmutable, UnusedNullCheckInEquals, UselessParentheses - +

These rules are still available in the rulesets "Empty" (rulesets/java/empty.xml) and "Unnecessary" (rulesets/java/unnecessary.xml) respectively.