From a7ba0b47a6e35d4deaa62a2e9ecbdaeee3d6b469 Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Sat, 25 Feb 2017 20:46:30 +0100 Subject: [PATCH] Prepare next development version --- src/site/markdown/overview/changelog-old.md | 97 +++++++++++++++++++++ src/site/markdown/overview/changelog.md | 90 ++----------------- 2 files changed, 104 insertions(+), 83 deletions(-) diff --git a/src/site/markdown/overview/changelog-old.md b/src/site/markdown/overview/changelog-old.md index c7c41455ec..ffb49519b1 100644 --- a/src/site/markdown/overview/changelog-old.md +++ b/src/site/markdown/overview/changelog-old.md @@ -4,6 +4,103 @@ Previous versions of PMD can be downloaded here: http://sourceforge.net/projects/pmd/files/pmd/ +## 25-Februar-2017 - 5.5.4 + +The PMD team is pleased to announce PMD 5.5.4 + + +### Table Of Contents + +* [New and noteworthy](#New_and_noteworthy) + * [New Rules](#New_Rules) + * [Modified Rules](#Modified_Rules) +* [Fixed Issues](#Fixed_Issues) +* [External Contributions](#External_Contributions) + + +### New and noteworthy + +#### New Rules + +##### AccessorMethodGeneration (java-design) + +When accessing a private field / method from another class, the Java compiler will generate a accessor methods +with package-private visibility. This adds overhead, and to the dex method count on Android. This situation can +be avoided by changing the visibility of the field / method from private to package-private. + +For instance, it would report violations on code such as: + +``` +public class OuterClass { + private int counter; + /* package */ int id; + + public class InnerClass { + InnerClass() { + OuterClass.this.counter++; // wrong, accessor method will be generated + } + + public int getOuterClassId() { + return OuterClass.this.id; // id is package-private, no accessor method needed + } + } +} +``` + +This new rule is part of the `java-design` ruleset. + +#### Modified Rules + +* The Java rule `UnusedModifier` (ruleset java-unusedcode) has been expanded to consider more redundant modifiers. + * Annotations marked as `abstract`. + * Nested annotations marked as `static`. + * Nested annotations within another interface or annotation marked as `public`. + * Classes, interfaces or annotations nested within an annotation marked as `public` or `static`. + * Nested enums marked as `static`. + +* The Java rule `UnnecessaryLocalBeforeReturn` (ruleset java-design) no longer requires the variable declaration + and return statement to be on consecutive lines. Any variable that is used solely in a return statement will be + reported. + +### Fixed Issues + +* General + * [#234](https://github.com/pmd/pmd/issues/234): \[core] Zip file stream closes spuriously when loading rulesets + * [#256](https://github.com/pmd/pmd/issues/256): \[core] shortnames option is broken with relative paths +* apex-complexity + * [#251](https://github.com/pmd/pmd/issues/251): \[apex] NCSS Type length is incorrect when using method chaining +* apex-security + * [#264](https://github.com/pmd/pmd/issues/264): \[apex] ApexXSSFromURLParamRule shouldn't enforce ESAPI usage. String.escapeHtml4 is sufficient. +* java-basic + * [#232](https://github.com/pmd/pmd/issues/232): \[java] SimplifiedTernary: Incorrect ternary operation can be simplified. +* java-coupling + * [#270](https://github.com/pmd/pmd/issues/270): \[java] LoD false positive +* java-design + * [#933](https://sourceforge.net/p/pmd/bugs/933/): \[java] UnnecessaryLocalBeforeReturn false positive for SuppressWarnings annotation + * [#1496](https://sourceforge.net/p/pmd/bugs/1496/): \[java] New Rule: AccesorMethodGeneration - complements accessor class rule + * [#216](https://github.com/pmd/pmd/issues/216): \[java] \[doc] NonThreadSafeSingleton: Be more explicit as to why double checked locking is not recommended + * [#219](https://github.com/pmd/pmd/issues/219): \[java] UnnecessaryLocalBeforeReturn: ClassCastException in switch case with local variable returned + * [#240](https://github.com/pmd/pmd/issues/240): \[java] UnnecessaryLocalBeforeReturn: Enhance by checking usages +* java-optimizations + * [#215](https://github.com/pmd/pmd/issues/215): \[java] RedundantFieldInitializer report for annotation field not explicitly marked as final +* java-unusedcode + * [#246](https://github.com/pmd/pmd/issues/246): \[java] UnusedModifier doesn't check annotations + * [#247](https://github.com/pmd/pmd/issues/247): \[java] UnusedModifier doesn't check annotations inner classes + * [#248](https://github.com/pmd/pmd/issues/248): \[java] UnusedModifier doesn't check static keyword on nested enum declaration + * [#257](https://github.com/pmd/pmd/issues/257): \[java] UnusedLocalVariable false positive + + +### External Contributions + +* [#227](https://github.com/pmd/pmd/pull/227): \[apex] Improving detection of getters +* [#228](https://github.com/pmd/pmd/pull/228): \[apex] Excluding count from CRUD/FLS checks +* [#229](https://github.com/pmd/pmd/pull/229): \[apex] Dynamic SOQL is safe against Integer, Boolean, Double +* [#231](https://github.com/pmd/pmd/pull/231): \[apex] CRUD/FLS rule - add support for fields +* [#266](https://github.com/pmd/pmd/pull/266): \[java] corrected invalid reporting of LoD violation +* [#268](https://github.com/pmd/pmd/pull/268): \[apex] Support safe escaping via String method +* [#273](https://github.com/pmd/pmd/pull/273): \[apex] Shade jackson on apex + + ## 28-January-2017 - 5.5.3 The PMD team is pleased to announce PMD 5.5.3 diff --git a/src/site/markdown/overview/changelog.md b/src/site/markdown/overview/changelog.md index 796d4a0820..93d4cdd898 100644 --- a/src/site/markdown/overview/changelog.md +++ b/src/site/markdown/overview/changelog.md @@ -1,98 +1,22 @@ # PMD Release Notes -## 25-Februar-2017 - 5.5.4 +## ????? - 5.5.5-SNAPSHOT -The PMD team is pleased to announce PMD 5.5.4 +The PMD team is pleased to announce PMD 5.5.5. ### Table Of Contents -* [New and noteworthy](#New_and_noteworthy) - * [New Rules](#New_Rules) - * [Modified Rules](#Modified_Rules) -* [Fixed Issues](#Fixed_Issues) -* [External Contributions](#External_Contributions) - +* [New and noteworthy](#New_and_noteworthy) +* [Fixed Issues](#Fixed_Issues) +* [API Changes](#API_Changes) +* [External Contributions](#External_Contributions) ### New and noteworthy -#### New Rules - -##### AccessorMethodGeneration (java-design) - -When accessing a private field / method from another class, the Java compiler will generate a accessor methods -with package-private visibility. This adds overhead, and to the dex method count on Android. This situation can -be avoided by changing the visibility of the field / method from private to package-private. - -For instance, it would report violations on code such as: - -``` -public class OuterClass { - private int counter; - /* package */ int id; - - public class InnerClass { - InnerClass() { - OuterClass.this.counter++; // wrong, accessor method will be generated - } - - public int getOuterClassId() { - return OuterClass.this.id; // id is package-private, no accessor method needed - } - } -} -``` - -This new rule is part of the `java-design` ruleset. - -#### Modified Rules - -* The Java rule `UnusedModifier` (ruleset java-unusedcode) has been expanded to consider more redundant modifiers. - * Annotations marked as `abstract`. - * Nested annotations marked as `static`. - * Nested annotations within another interface or annotation marked as `public`. - * Classes, interfaces or annotations nested within an annotation marked as `public` or `static`. - * Nested enums marked as `static`. - -* The Java rule `UnnecessaryLocalBeforeReturn` (ruleset java-design) no longer requires the variable declaration - and return statement to be on consecutive lines. Any variable that is used solely in a return statement will be - reported. - ### Fixed Issues -* General - * [#234](https://github.com/pmd/pmd/issues/234): \[core] Zip file stream closes spuriously when loading rulesets - * [#256](https://github.com/pmd/pmd/issues/256): \[core] shortnames option is broken with relative paths -* apex-complexity - * [#251](https://github.com/pmd/pmd/issues/251): \[apex] NCSS Type length is incorrect when using method chaining -* apex-security - * [#264](https://github.com/pmd/pmd/issues/264): \[apex] ApexXSSFromURLParamRule shouldn't enforce ESAPI usage. String.escapeHtml4 is sufficient. -* java-basic - * [#232](https://github.com/pmd/pmd/issues/232): \[java] SimplifiedTernary: Incorrect ternary operation can be simplified. -* java-coupling - * [#270](https://github.com/pmd/pmd/issues/270): \[java] LoD false positive -* java-design - * [#933](https://sourceforge.net/p/pmd/bugs/933/): \[java] UnnecessaryLocalBeforeReturn false positive for SuppressWarnings annotation - * [#1496](https://sourceforge.net/p/pmd/bugs/1496/): \[java] New Rule: AccesorMethodGeneration - complements accessor class rule - * [#216](https://github.com/pmd/pmd/issues/216): \[java] \[doc] NonThreadSafeSingleton: Be more explicit as to why double checked locking is not recommended - * [#219](https://github.com/pmd/pmd/issues/219): \[java] UnnecessaryLocalBeforeReturn: ClassCastException in switch case with local variable returned - * [#240](https://github.com/pmd/pmd/issues/240): \[java] UnnecessaryLocalBeforeReturn: Enhance by checking usages -* java-optimizations - * [#215](https://github.com/pmd/pmd/issues/215): \[java] RedundantFieldInitializer report for annotation field not explicitly marked as final -* java-unusedcode - * [#246](https://github.com/pmd/pmd/issues/246): \[java] UnusedModifier doesn't check annotations - * [#247](https://github.com/pmd/pmd/issues/247): \[java] UnusedModifier doesn't check annotations inner classes - * [#248](https://github.com/pmd/pmd/issues/248): \[java] UnusedModifier doesn't check static keyword on nested enum declaration - * [#257](https://github.com/pmd/pmd/issues/257): \[java] UnusedLocalVariable false positive - +### API Changes ### External Contributions -* [#227](https://github.com/pmd/pmd/pull/227): \[apex] Improving detection of getters -* [#228](https://github.com/pmd/pmd/pull/228): \[apex] Excluding count from CRUD/FLS checks -* [#229](https://github.com/pmd/pmd/pull/229): \[apex] Dynamic SOQL is safe against Integer, Boolean, Double -* [#231](https://github.com/pmd/pmd/pull/231): \[apex] CRUD/FLS rule - add support for fields -* [#266](https://github.com/pmd/pmd/pull/266): \[java] corrected invalid reporting of LoD violation -* [#268](https://github.com/pmd/pmd/pull/268): \[apex] Support safe escaping via String method -* [#273](https://github.com/pmd/pmd/pull/273): \[apex] Shade jackson on apex -