forked from phoedos/pmd
Prepare next development version
This commit is contained in:
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
Reference in New Issue
Block a user