Prepare next development version

This commit is contained in:
Andreas Dangel
2017-02-25 20:46:30 +01:00
parent 12fb1c2d7f
commit a7ba0b47a6
2 changed files with 104 additions and 83 deletions

View File

@ -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

View File

@ -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