1
0
forked from phoedos/pmd

Merge branch 'pr-556'

This commit is contained in:
Juan Martín Sotuyo Dodero
2017-08-16 15:18:00 -03:00
3 changed files with 39 additions and 2 deletions
pmd-java/src
main/resources/rulesets/java
test/resources/net/sourceforge/pmd/lang/java/rule/design/xml
src/site/markdown/overview

@ -1413,6 +1413,7 @@ public void doSomething() {
since="3.4"
message="Document empty constructor"
class="net.sourceforge.pmd.lang.rule.XPathRule"
typeResolution="true"
externalInfoUrl="${pmd.website.baseurl}/rules/java/design.html#UncommentedEmptyConstructor">
<description>
Uncommented Empty Constructor finds instances where a constructor does not
@ -1425,8 +1426,10 @@ and unintentional empty constructors.
<property name="xpath">
<value>
<![CDATA[
//ConstructorDeclaration[@Private='false'][count(BlockStatement) = 0 and ($ignoreExplicitConstructorInvocation = 'true' or not(ExplicitConstructorInvocation)) and @containsComment = 'false']
]]>
//ConstructorDeclaration[@Private='false']
[count(BlockStatement) = 0 and ($ignoreExplicitConstructorInvocation = 'true' or not(ExplicitConstructorInvocation)) and @containsComment = 'false']
[not(../Annotation/MarkerAnnotation/Name[typeof(@Image, 'javax.inject.Inject', 'Inject')])]
]]>
</value>
</property>
<property name="ignoreExplicitConstructorInvocation" type="Boolean" description="Ignore explicit constructor invocation when deciding whether constructor is empty or not" value="false"/>

@ -170,4 +170,32 @@ public class WebAgent {
}
]]></code>
</test-code>
<test-code>
<description>#357 UncommentedEmptyConstructor consider annotations on Constructor</description>
<expected-problems>0</expected-problems>
<code><![CDATA[
import javax.inject.Inject;
public class MyClass {
@Inject MyClass() {
}
}
]]>
</code>
</test-code>
<test-code>
<description>#357 UncommentedEmptyConstructor consider fully qualified annotations on Constructor</description>
<expected-problems>0</expected-problems>
<code><![CDATA[
public class MyClass {
@javax.inject.Inject MyClass() {
}
}
]]>
</code>
</test-code>
</test-data>

@ -82,6 +82,9 @@ and include them to such reports.
* The rule `UnnecessaryParentheses` (ruleset `java-controversial`) has been merged into `UselessParentheses`
(ruleset `java-unnecessary`). The rule covers all scenarios previously covered by either rule.
* The rule `UncommentedEmptyConstructor` (ruleset `java-design`) will now ignore empty constructors annotated with
`javax.inject.Inject`.
#### Removed Rules
* The deprecated rule `UseSingleton` has been removed from the ruleset `java-design`. The rule has been renamed
@ -126,6 +129,8 @@ All existing rules have been updated to reflect these changes. If you have custo
* java-controversial
* [#408](https://github.com/pmd/pmd/issues/408): \[java] DFA not analyzing asserts
* [#537](https://github.com/pmd/pmd/issues/537): \[java] UnnecessaryParentheses fails to detect obvious scenario
* java-design
* [#357](https://github.com/pmd/pmd/issues/357): \[java] UncommentedEmptyConstructor consider annotations on Constructor
* java-sunsecure
* [#468](https://github.com/pmd/pmd/issues/468): \[java] ArrayIsStoredDirectly false positive
* java-unusedcode
@ -173,5 +178,6 @@ All existing rules have been updated to reflect these changes. If you have custo
* [#550](https://github.com/pmd/pmd/pull/550): \[java] Add basic resolution to type inference - [Bendegúz Nagy](https://github.com/WinterGrascph)
* [#554](https://github.com/pmd/pmd/pull/554): \[java] Fix #537: UnnecessaryParentheses fails to detect obvious scenario - [Clément Fournier](https://github.com/oowekyala)
* [#555](https://github.com/pmd/pmd/pull/555): \[java] Changed metrics/CyclomaticComplexityRule to use WMC when reporting classes - [Clément Fournier](https://github.com/oowekyala)
* [#556](https://github.com/pmd/pmd/pull/556): \[java] Fix #357: UncommentedEmptyConstructor consider annotations on Constructor - [Clément Fournier](https://github.com/oowekyala)
* [#557](https://github.com/pmd/pmd/pull/557): \[java] Fix NPath metric not counting ternaries correctly - [Clément Fournier](https://github.com/oowekyala)