diff --git a/404.html b/404.html index b42690bbf2..88703e4205 100644 --- a/404.html +++ b/404.html @@ -173,7 +173,7 @@
[tom@hal building]$ ls -l
total 5716
--rw-rw-r-- 1 tom tom 5837216 Jul 17 13:09 pmd-src-6.23.0.zip
-[tom@hal building]$ unzip -q pmd-src-6.23.0.zip
+-rw-rw-r-- 1 tom tom 5837216 Jul 17 13:09 pmd-src-6.23.0-SNAPSHOT.zip
+[tom@hal building]$ unzip -q pmd-src-6.23.0-SNAPSHOT.zip
[tom@hal building]$
Now cd down into the pmd
directory:
[tom@hal building]$ cd pmd-src-6.23.0
-[tom@hal pmd-src-6.23.0]$ ls -l | grep pom.xml
+[tom@hal building]$ cd pmd-src-6.23.0-SNAPSHOT
+[tom@hal pmd-src-6.23.0-SNAPSHOT]$ ls -l | grep pom.xml
-rw-rw-r-- 1 tom tom 36482 14\. Nov 17:36 pom.xml
-[tom@hal pmd-src-6.23.0]$
+[tom@hal pmd-src-6.23.0-SNAPSHOT]$
That’s the project configuration for maven… let’s compile!
-[tom@hal pmd-src-6.23.0]$ ./mvnw clean verify
+[tom@hal pmd-src-6.23.0-SNAPSHOT]$ ./mvnw clean verify
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
@@ -1473,7 +1473,7 @@ total 5716
[INFO] Finished at: 2015-11-14T17:46:06+01:00
[INFO] Final Memory: 63M/765M
[INFO] ------------------------------------------------------------------------
-[tom@hal pmd-src-6.23.0]$
+[tom@hal pmd-src-6.23.0-SNAPSHOT]$
Now the source and binary distribution zip files can be found in the folder pmd-dist/target
.
@@ -1512,7 +1512,7 @@ please post here an
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_devdocs_development.html b/pmd_devdocs_development.html
index 3b94d6f109..55abc46b5a 100644
--- a/pmd_devdocs_development.html
+++ b/pmd_devdocs_development.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1460,7 +1460,7 @@ every push. Each pull request is built as well.
©2020 PMD Open Source Project. All rights reserved.
-Page last updated: August 2017
Site last generated: Apr 20, 2020
+Page last updated: August 2017
Site last generated: Apr 23, 2020

diff --git a/pmd_devdocs_experimental_ast_dump.html b/pmd_devdocs_experimental_ast_dump.html
index 655c6fca9d..334a952c7a 100644
--- a/pmd_devdocs_experimental_ast_dump.html
+++ b/pmd_devdocs_experimental_ast_dump.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1530,7 +1530,7 @@ with the name “a”.
©2020 PMD Open Source Project. All rights reserved.
-Page last updated: January 17, 2020 (6.21.0)
Site last generated: Apr 20, 2020
+Page last updated: January 17, 2020 (6.21.0)
Site last generated: Apr 23, 2020

diff --git a/pmd_devdocs_how_pmd_works.html b/pmd_devdocs_how_pmd_works.html
index a5f9ef9ac2..2d4b9247fa 100644
--- a/pmd_devdocs_how_pmd_works.html
+++ b/pmd_devdocs_how_pmd_works.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1476,7 +1476,7 @@ type resolution information and DFA nodes.
©2020 PMD Open Source Project. All rights reserved.
-Page last updated: September 2017
Site last generated: Apr 20, 2020
+Page last updated: September 2017
Site last generated: Apr 23, 2020

diff --git a/pmd_devdocs_major_adding_new_cpd_language.html b/pmd_devdocs_major_adding_new_cpd_language.html
index ec0758013e..87bbed1837 100644
--- a/pmd_devdocs_major_adding_new_cpd_language.html
+++ b/pmd_devdocs_major_adding_new_cpd_language.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1506,7 +1506,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
-Page last updated: March 18, 2019 (6.13.0)
Site last generated: Apr 20, 2020
+Page last updated: March 18, 2019 (6.13.0)
Site last generated: Apr 23, 2020

diff --git a/pmd_devdocs_major_adding_new_language.html b/pmd_devdocs_major_adding_new_language.html
index 6d0dcd33b2..ed03036748 100644
--- a/pmd_devdocs_major_adding_new_language.html
+++ b/pmd_devdocs_major_adding_new_language.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1572,7 +1572,7 @@ This can be achieved with Rule Designer:
©2020 PMD Open Source Project. All rights reserved.
-Page last updated: October 5, 2019
Site last generated: Apr 20, 2020
+Page last updated: October 5, 2019
Site last generated: Apr 23, 2020

diff --git a/pmd_devdocs_major_adding_new_metrics_framework.html b/pmd_devdocs_major_adding_new_metrics_framework.html
index 1d32665197..13c6c308b1 100644
--- a/pmd_devdocs_major_adding_new_metrics_framework.html
+++ b/pmd_devdocs_major_adding_new_metrics_framework.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1408,7 +1408,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
Internal architecture of the metrics framework
The framework is pretty simple. On a high level, a Metric<N>
describes some numeric computation on a node of type N
.
-You should wrap it into a MetricKey<N>
, so that it can be cached on nodes (implemented by MetricsUtil
).
+You should wrap it into a MetricKey<N>
, so that it can be cached on nodes (implemented by MetricsUtil
).
At the very least, a metrics framework has those two components and is just a convenient way to compute and memoize
metrics on a single file. The expressive power of metrics can be improved by implementing signature matching capabilities,
@@ -1421,8 +1421,8 @@ harder than it looks, and has been rescheduled to another project.
- Implement metrics (typically in an internal package)
- Create some public enums/ utility classes to expose metric keys
- - Implement a
LanguageMetricsProvider
, to expose your metrics to the designer
- - Use your metric keys in rules with
MetricsUtil
+ - Implement a
LanguageMetricsProvider
, to expose your metrics to the designer
+ - Use your metric keys in rules with
MetricsUtil
Optional: Signature matching
@@ -1475,7 +1475,7 @@ build a Signature<N>
from a
©2020 PMD Open Source Project. All rights reserved.
-Page last updated: February 2020
Site last generated: Apr 20, 2020
+Page last updated: February 2020
Site last generated: Apr 23, 2020

diff --git a/pmd_devdocs_pmdtester.html b/pmd_devdocs_pmdtester.html
index 2a49e52176..9095aac788 100644
--- a/pmd_devdocs_pmdtester.html
+++ b/pmd_devdocs_pmdtester.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1444,7 +1444,7 @@ Regression difference reports are commented back to the PR for the reviewer’s
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_devdocs_roadmap.html b/pmd_devdocs_roadmap.html
index 61b861ca88..0f0db8858b 100644
--- a/pmd_devdocs_roadmap.html
+++ b/pmd_devdocs_roadmap.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1565,7 +1565,7 @@ This should be configurable on per Rule basis similar to TR and SymbolTable.
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_devdocs_rule_deprecation_policy.html b/pmd_devdocs_rule_deprecation_policy.html
index 96cde8b282..fa653fe7f7 100644
--- a/pmd_devdocs_rule_deprecation_policy.html
+++ b/pmd_devdocs_rule_deprecation_policy.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1534,7 +1534,7 @@ major release of PMD.
©2020 PMD Open Source Project. All rights reserved.
-Page last updated: November 15, 2019
Site last generated: Apr 20, 2020
+Page last updated: November 15, 2019
Site last generated: Apr 23, 2020

diff --git a/pmd_devdocs_writing_documentation.html b/pmd_devdocs_writing_documentation.html
index 0726419a49..f75efdd922 100644
--- a/pmd_devdocs_writing_documentation.html
+++ b/pmd_devdocs_writing_documentation.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1477,47 +1477,47 @@ all formatting inside the delimiters, and allow to write code samples without
{% jdoc core::Rule %}
- Rule
+ Rule
{% jdoc !q!core::Rule %}
- net.sourceforge.pmd.Rule
+ net.sourceforge.pmd.Rule
{% jdoc core::Rule#setName(java.lang.String) %}
- setName
+ setName
{% jdoc !c!core::Rule#setName(java.lang.String) %}
- Rule#setName
+ Rule#setName
{% jdoc !a!core::Rule#setName(java.lang.String) %}
- setName(String)
+ setName(String)
{% jdoc !ac!core::Rule#setName(java.lang.String) %}
- Rule#setName(String)
+ Rule#setName(String)
{% jdoc core::properties.PropertyDescriptor %}
- PropertyDescriptor
+ PropertyDescriptor
{% jdoc_nspace :jast java::lang.java.ast %}{% jdoc jast::ASTAnyTypeDeclaration %}
- ASTAnyTypeDeclaration
+ ASTAnyTypeDeclaration
{% jdoc_nspace :jast java::lang.java.ast %}{% jdoc_package :jast %}
- net.sourceforge.pmd.lang.java.ast
+ net.sourceforge.pmd.lang.java.ast
{% jdoc_nspace :PrD core::properties.PropertyDescriptor %}{% jdoc !ac!:PrD#uiOrder() %}
- PropertyDescriptor#uiOrder()
+ PropertyDescriptor#uiOrder()
{% jdoc_old core::Rule %}
- Rule
+ Rule
@@ -1681,7 +1681,7 @@ by specifying -Dpmd.doc.checkExternalLinks=true<
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_java_metrics_index.html b/pmd_java_metrics_index.html
index 2236125267..7746287cdb 100644
--- a/pmd_java_metrics_index.html
+++ b/pmd_java_metrics_index.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1775,7 +1775,7 @@ In Proceedings ACM Symposium on Software Reusability, 1995.
©2020 PMD Open Source Project. All rights reserved.
-Page last updated: July 20, 2017
Site last generated: Apr 20, 2020
+Page last updated: July 20, 2017
Site last generated: Apr 23, 2020

diff --git a/pmd_languages_jsp.html b/pmd_languages_jsp.html
index c4f6b0779a..1cee04f46a 100644
--- a/pmd_languages_jsp.html
+++ b/pmd_languages_jsp.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1475,7 +1475,7 @@ contains only “.java” files, JSP files obviously will not be checked.
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_next_major_development.html b/pmd_next_major_development.html
index 509de801da..a9487c8578 100644
--- a/pmd_next_major_development.html
+++ b/pmd_next_major_development.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1480,27 +1480,27 @@ we may decide to remove some APIs that were not tagged as deprecated, though we
You can identify them with the @InternalApi
annotation. You’ll also get a deprecation warning.
- JavaLanguageHandler
- JavaLanguageParser
- JavaDataFlowHandler
- - Implementations of
RuleViolationFactory
in each
-language module, eg JavaRuleViolationFactory
.
-See javadoc of RuleViolationFactory
.
+ JavaLanguageHandler
+ JavaLanguageParser
+ JavaDataFlowHandler
+ - Implementations of
RuleViolationFactory
in each
+language module, eg JavaRuleViolationFactory
.
+See javadoc of RuleViolationFactory
.
-
-
Implementations of RuleViolation
in each language module,
-eg JavaRuleViolation
. See javadoc of
-RuleViolation
.
+ Implementations of RuleViolation
in each language module,
+eg JavaRuleViolation
. See javadoc of
+RuleViolation
.
- RuleFactory
- RuleBuilder
- - Constructors of
RuleSetFactory
, use factory methods from RulesetsFactoryUtils
instead
+ RuleFactory
+ RuleBuilder
+ - Constructors of
RuleSetFactory
, use factory methods from RulesetsFactoryUtils
instead
-
-
+
- AbstractApexNode
- AbstractApexNodeBase
, and the related visit
-methods on ApexParserVisitor
and its implementations.
- Use ApexNode
instead, now considers comments too.
+ AbstractApexNode
+ AbstractApexNodeBase
, and the related visit
+methods on ApexParserVisitor
and its implementations.
+ Use ApexNode
instead, now considers comments too.
For removal
@@ -1508,61 +1508,61 @@ methods on DFAGraphRule
and its implementations
- DFAGraphMethod
- - Many methods on the
Node
interface
-and AbstractNode
base class. See their javadoc for details.
- Node#isFindBoundary
is deprecated for XPath queries.
- - Many APIs of
net.sourceforge.pmd.lang.metrics
, though most of them were internal and
-probably not used directly outside of PMD. Use MetricsUtil
as
+ DFAGraphRule
and its implementations
+ DFAGraphMethod
+ - Many methods on the
Node
interface
+and AbstractNode
base class. See their javadoc for details.
+ Node#isFindBoundary
is deprecated for XPath queries.
+ - Many APIs of
net.sourceforge.pmd.lang.metrics
, though most of them were internal and
+probably not used directly outside of PMD. Use MetricsUtil
as
a replacement for the language-specific façades too.
- QualifiableNode
, QualifiedName
+ QualifiableNode
, QualifiedName
- pmd-java
- AbstractJavaParser
- AbstractJavaHandler
+ AbstractJavaParser
+ AbstractJavaHandler
ASTAnyTypeDeclaration.TypeKind
- ASTAnyTypeDeclaration#getKind
- JavaQualifiedName
- ASTCatchStatement#getBlock
- ASTCompilationUnit#declarationsAreInDefaultPackage
- JavaQualifiableNode
+ ASTAnyTypeDeclaration#getKind
+ JavaQualifiedName
+ ASTCatchStatement#getBlock
+ ASTCompilationUnit#declarationsAreInDefaultPackage
+ JavaQualifiableNode
- net.sourceforge.pmd.lang.java.qname
and its contents
- MethodLikeNode
+ net.sourceforge.pmd.lang.java.qname
and its contents
+ MethodLikeNode
- Its methods will also be removed from its implementations,
-
ASTMethodOrConstructorDeclaration
,
-ASTLambdaExpression
.
+ASTMethodOrConstructorDeclaration
,
+ASTLambdaExpression
.
- ASTAnyTypeDeclaration#getImage
will be removed. Please use getSimpleName()
-instead. This affects ASTAnnotationTypeDeclaration#getImage
,
-ASTClassOrInterfaceDeclaration#getImage
, and
-ASTEnumDeclaration#getImage
.
- - Several methods of
ASTTryStatement
, replacements with other names
+ ASTAnyTypeDeclaration#getImage
will be removed. Please use getSimpleName()
+instead. This affects ASTAnnotationTypeDeclaration#getImage
,
+ASTClassOrInterfaceDeclaration#getImage
, and
+ASTEnumDeclaration#getImage
.
+ - Several methods of
ASTTryStatement
, replacements with other names
have been added. This includes the XPath attribute @Finally
, replace it with a test for child::FinallyStatement
.
- Several methods named
getGuardExpressionNode
are replaced with getCondition
. This affects the
following nodes: WhileStatement, DoStatement, ForStatement, IfStatement, AssertStatement, ConditionalExpression.
- ASTYieldStatement
will not implement TypeNode
+ ASTYieldStatement
will not implement TypeNode
anymore come 7.0.0. Test the type of the expression nested within it.
- JavaMetrics
, JavaMetricsComputer
- ASTArguments#getArgumentCount
.
-Use size
instead.
- ASTFormalParameters#getParameterCount
.
-Use size
instead.
+ JavaMetrics
, JavaMetricsComputer
+ ASTArguments#getArgumentCount
.
+Use size
instead.
+ ASTFormalParameters#getParameterCount
.
+Use size
instead.
- pmd-apex
@@ -1575,25 +1575,25 @@ The following usages are now deprecated in the JSP AST (with ot
- Manual instantiation of nodes. Constructors of node classes are deprecated and
-marked
InternalApi
. Nodes should only be obtained from the parser,
+marked InternalApi
. Nodes should only be obtained from the parser,
which for rules, means that they never need to instantiate node themselves.
Those constructors will be made package private with 7.0.0.
- Subclassing of abstract node classes, or usage of their type. The base classes are internal API
and will be hidden in version 7.0.0. You should not couple your code to them.
- - In the meantime you should use interfaces like
JspNode
or
-Node
, or the other published interfaces in this package,
+ - In the meantime you should use interfaces like
JspNode
or
+Node
, or the other published interfaces in this package,
to refer to nodes generically.
- Concrete node classes will be made final with 7.0.0.
- Setters found in any node class or interface. Rules should consider the AST immutable.
We will make those setters package private with 7.0.0.
- - The class
JspParser
is deprecated and should not be used directly.
-Use LanguageVersionHandler#getParser
instead.
+ - The class
JspParser
is deprecated and should not be used directly.
+Use LanguageVersionHandler#getParser
instead.
-Please look at net.sourceforge.pmd.lang.jsp.ast
to find out the full list of deprecations.
+Please look at net.sourceforge.pmd.lang.jsp.ast
to find out the full list of deprecations.
In ASTs (Velocity)
@@ -1603,28 +1603,28 @@ The following usages are now deprecated in the VM AST (with oth
- Manual instantiation of nodes. Constructors of node classes are deprecated and
-marked
InternalApi
. Nodes should only be obtained from the parser,
+marked InternalApi
. Nodes should only be obtained from the parser,
which for rules, means that they never need to instantiate node themselves.
Those constructors will be made package private with 7.0.0.
- Subclassing of abstract node classes, or usage of their type. The base classes are internal API
and will be hidden in version 7.0.0. You should not couple your code to them.
- - In the meantime you should use interfaces like
VmNode
or
-Node
, or the other published interfaces in this package,
+ - In the meantime you should use interfaces like
VmNode
or
+Node
, or the other published interfaces in this package,
to refer to nodes generically.
- Concrete node classes will be made final with 7.0.0.
- Setters found in any node class or interface. Rules should consider the AST immutable.
We will make those setters package private with 7.0.0.
- - The package
net.sourceforge.pmd.lang.vm.directive
as well as the classes
-DirectiveMapper
and LogUtil
are deprecated
+ - The package
net.sourceforge.pmd.lang.vm.directive
as well as the classes
+DirectiveMapper
and LogUtil
are deprecated
for removal. They were only used internally during parsing.
- - The class
VmParser
is deprecated and should not be used directly.
-Use LanguageVersionHandler#getParser
instead.
+ - The class
VmParser
is deprecated and should not be used directly.
+Use LanguageVersionHandler#getParser
instead.
-Please look at net.sourceforge.pmd.lang.vm.ast
to find out the full list of deprecations.
+Please look at net.sourceforge.pmd.lang.vm.ast
to find out the full list of deprecations.
PLSQL AST
@@ -1641,36 +1641,36 @@ parsed as ASTCursorSpecification
.
You can identify them with the @InternalApi
annotation. You’ll also get a deprecation warning.
- JavaLanguageHandler
- JavaLanguageParser
- JavaDataFlowHandler
- - Implementations of
RuleViolationFactory
in each
-language module, eg JavaRuleViolationFactory
.
-See javadoc of RuleViolationFactory
.
+ JavaLanguageHandler
+ JavaLanguageParser
+ JavaDataFlowHandler
+ - Implementations of
RuleViolationFactory
in each
+language module, eg JavaRuleViolationFactory
.
+See javadoc of RuleViolationFactory
.
-
-
Implementations of RuleViolation
in each language module,
-eg JavaRuleViolation
. See javadoc of
-RuleViolation
.
+ Implementations of RuleViolation
in each language module,
+eg JavaRuleViolation
. See javadoc of
+RuleViolation
.
- RuleFactory
- RuleBuilder
- - Constructors of
RuleSetFactory
, use factory methods from RulesetsFactoryUtils
instead
+ RuleFactory
+ RuleBuilder
+ - Constructors of
RuleSetFactory
, use factory methods from RulesetsFactoryUtils
instead
-
-
+
- AbstractApexNode
+ AbstractApexNode
-
-
AbstractApexNodeBase
, and the related visit
-methods on ApexParserVisitor
and its implementations.
- Use ApexNode
instead, now considers comments too.
+ AbstractApexNodeBase
, and the related visit
+methods on ApexParserVisitor
and its implementations.
+ Use ApexNode
instead, now considers comments too.
- CharStream
, JavaCharStream
,
-SimpleCharStream
: these are APIs used by our JavaCC
+ CharStream
, JavaCharStream
,
+SimpleCharStream
: these are APIs used by our JavaCC
implementations and that will be moved/refactored for PMD 7.0.0. They should not
be used, extended or implemented directly.
- - All classes generated by JavaCC, eg
JJTJavaParserState
.
+ - All classes generated by JavaCC, eg
JJTJavaParserState
.
This includes token classes, which will be replaced with a single implementation, and
-subclasses of ParseException
, whose usages will be replaced
+subclasses of ParseException
, whose usages will be replaced
by just that superclass.
@@ -1679,44 +1679,44 @@ by just that superclass.
- pmd-core
- - Many methods on the
Node
interface
-and AbstractNode
base class. See their javadoc for details.
- Node#isFindBoundary
is deprecated for XPath queries.
+ - Many methods on the
Node
interface
+and AbstractNode
base class. See their javadoc for details.
+ Node#isFindBoundary
is deprecated for XPath queries.
- pmd-java
- AbstractJavaParser
- AbstractJavaHandler
+ AbstractJavaParser
+ AbstractJavaHandler
ASTAnyTypeDeclaration.TypeKind
- ASTAnyTypeDeclaration#getKind
- JavaQualifiedName
- ASTCatchStatement#getBlock
- ASTCompilationUnit#declarationsAreInDefaultPackage
- JavaQualifiableNode
+ ASTAnyTypeDeclaration#getKind
+ JavaQualifiedName
+ ASTCatchStatement#getBlock
+ ASTCompilationUnit#declarationsAreInDefaultPackage
+ JavaQualifiableNode
- net.sourceforge.pmd.lang.java.qname
and its contents
- MethodLikeNode
+ net.sourceforge.pmd.lang.java.qname
and its contents
+ MethodLikeNode
- Its methods will also be removed from its implementations,
-
ASTMethodOrConstructorDeclaration
,
-ASTLambdaExpression
.
+ASTMethodOrConstructorDeclaration
,
+ASTLambdaExpression
.
- ASTAnyTypeDeclaration#getImage
will be removed. Please use getSimpleName()
-instead. This affects ASTAnnotationTypeDeclaration#getImage
,
-ASTClassOrInterfaceDeclaration#getImage
, and
-ASTEnumDeclaration#getImage
.
- - Several methods of
ASTTryStatement
, replacements with other names
+ ASTAnyTypeDeclaration#getImage
will be removed. Please use getSimpleName()
+instead. This affects ASTAnnotationTypeDeclaration#getImage
,
+ASTClassOrInterfaceDeclaration#getImage
, and
+ASTEnumDeclaration#getImage
.
+ - Several methods of
ASTTryStatement
, replacements with other names
have been added. This includes the XPath attribute @Finally
, replace it with a test for child::FinallyStatement
.
- Several methods named
getGuardExpressionNode
are replaced with getCondition
. This affects the
following nodes: WhileStatement, DoStatement, ForStatement, IfStatement, AssertStatement, ConditionalExpression.
- ASTYieldStatement
will not implement TypeNode
+ ASTYieldStatement
will not implement TypeNode
anymore come 7.0.0. Test the type of the expression nested within it.
@@ -1735,40 +1735,40 @@ anymore come 7.0.0. Test the type of the expression nested within it.
- pmd-core
- - All the package
net.sourceforge.pmd.dcd
and its subpackages. See DCD
.
- - In
LanguageRegistry
:
+ - All the package
net.sourceforge.pmd.dcd
and its subpackages. See DCD
.
+ - In
LanguageRegistry
:
- RuleSet#getExcludePatterns
. Use the new method getFileExclusions
instead.
- RuleSet#getIncludePatterns
. Use the new method getFileInclusions
instead.
- Parser#canParse
- Parser#getSuppressMap
- RuleBuilder#RuleBuilder
. Use the new constructor with the correct ResourceLoader instead.
- RuleFactory#RuleFactory
. Use the new constructor with the correct ResourceLoader instead.
+ RuleSet#getExcludePatterns
. Use the new method getFileExclusions
instead.
+ RuleSet#getIncludePatterns
. Use the new method getFileInclusions
instead.
+ Parser#canParse
+ Parser#getSuppressMap
+ RuleBuilder#RuleBuilder
. Use the new constructor with the correct ResourceLoader instead.
+ RuleFactory#RuleFactory
. Use the new constructor with the correct ResourceLoader instead.
- pmd-java
- CanSuppressWarnings
and its implementations
- isSuppressed
- getDeclaringType
.
- isSupressed
- ASTMethodDeclarator
- getMethodName
- getBlock
- getParameterCount
+ CanSuppressWarnings
and its implementations
+ isSuppressed
+ getDeclaringType
.
+ isSupressed
+ ASTMethodDeclarator
+ getMethodName
+ getBlock
+ getParameterCount
- pmd-apex
- CanSuppressWarnings
and its implementations
- isSupressed
+ CanSuppressWarnings
and its implementations
+ isSupressed
@@ -1778,10 +1778,10 @@ anymore come 7.0.0. Test the type of the expression nested within it.
- pmd-core
- - All the package
net.sourceforge.pmd.util
and its subpackages,
-except net.sourceforge.pmd.util.datasource
and net.sourceforge.pmd.util.database
.
- GridBagHelper
- ColumnDescriptor
+ - All the package
net.sourceforge.pmd.util
and its subpackages,
+except net.sourceforge.pmd.util.datasource
and net.sourceforge.pmd.util.database
.
+ GridBagHelper
+ ColumnDescriptor
@@ -1792,10 +1792,10 @@ except Renderer#setUseShortNames
which
+ Each renderer has now a new method Renderer#setUseShortNames
which
is used for implementing the “shortnames” CLI option. The method is automatically called by PMD, if this
CLI option is in use. When rendering filenames to the report, the new helper method
-AbstractRenderer#determineFileName
should be used. This will change
+AbstractRenderer#determineFileName
should be used. This will change
the filename to a short name, if the CLI option “shortnames” is used.
Not adjusting custom renderers will make them render always the full file names and not honoring the
@@ -1808,19 +1808,19 @@ CLI option “shortnames”.
For removal
- - The methods
getImportedNameNode
and
-getPackage
have been deprecated and
+ - The methods
getImportedNameNode
and
+getPackage
have been deprecated and
will be removed with PMD 7.0.0.
- - The method
RuleContext#setSourceCodeFilename
has been deprecated
-and will be removed. The already existing method RuleContext#setSourceCodeFile
-should be used instead. The method RuleContext#getSourceCodeFilename
still
+ - The method
RuleContext#setSourceCodeFilename
has been deprecated
+and will be removed. The already existing method RuleContext#setSourceCodeFile
+should be used instead. The method RuleContext#getSourceCodeFilename
still
exists and returns just the filename without the full path.
- - The method
AbstractPMDProcessor#filenameFrom
has been
+ - The method
AbstractPMDProcessor#filenameFrom
has been
deprecated. It was used to determine a “short name” of the file being analyzed, so that the report
can use short names. However, this logic has been moved to the renderers.
- - The method
Report#metrics
and Report
have
+ - The method
Report#metrics
and Report
have
been deprecated. They were leftovers from a previous deprecation round targeting
-StatisticalRule
.
+StatisticalRule
.
Internal APIs
@@ -1830,15 +1830,15 @@ been deprecated. They were leftovers from a previous deprecation round targeting
- pmd-core
- pmd-java
- net.sourceforge.pmd.lang.java.typeresolution
: Everything, including
-subpackages, except TypeHelper
and
-JavaTypeDefinition
.
- ASTCompilationUnit#getClassTypeResolver
+ net.sourceforge.pmd.lang.java.typeresolution
: Everything, including
+subpackages, except TypeHelper
and
+JavaTypeDefinition
.
+ ASTCompilationUnit#getClassTypeResolver
@@ -1852,7 +1852,7 @@ subpackages, except Deprecated APIs
- Reminder: Please don’t use members marked with the annotation InternalApi
, as they will likely be removed, hidden, or otherwise intentionally broken with 7.0.0.
+ Reminder: Please don’t use members marked with the annotation InternalApi
, as they will likely be removed, hidden, or otherwise intentionally broken with 7.0.0.
In ASTs
@@ -1862,17 +1862,17 @@ hide some methods and constructors that rule writers should not have access to.
The following usages are now deprecated in the Java AST (with other languages to come):
- - Manual instantiation of nodes. Constructors of node classes are deprecated and marked
InternalApi
. Nodes should only be obtained from the parser, which for rules, means that never need to instantiate node themselves. Those constructors will be made package private with 7.0.0.
+ - Manual instantiation of nodes. Constructors of node classes are deprecated and marked
InternalApi
. Nodes should only be obtained from the parser, which for rules, means that never need to instantiate node themselves. Those constructors will be made package private with 7.0.0.
- Subclassing of abstract node classes, or usage of their type. Version 7.0.0 will bring a new set of abstractions that will be public API, but the base classes are and will stay internal. You should not couple your code to them.
- - In the meantime you should use interfaces like
JavaNode
or Node
, or the other published interfaces in this package, to refer to nodes generically.
+ - In the meantime you should use interfaces like
JavaNode
or Node
, or the other published interfaces in this package, to refer to nodes generically.
- Concrete node classes will be made final with 7.0.0.
- Setters found in any node class or interface. Rules should consider the AST immutable. We will make those setters package private with 7.0.0.
-Please look at net.sourceforge.pmd.lang.java.ast
to find out the full list
+
Please look at net.sourceforge.pmd.lang.java.ast
to find out the full list
of deprecations.
6.15.0
@@ -1885,18 +1885,18 @@ of deprecations.
- The
DumpFacades
in all languages, that could be used to transform a AST into a textual representation,
will be removed with PMD 7. The rule designer is a better way to inspect nodes.
- net.sourceforge.pmd.lang.apex.ast.DumpFacade
- net.sourceforge.pmd.lang.java.ast.DumpFacade
- net.sourceforge.pmd.lang.ecmascript.ast.DumpFacade
- net.sourceforge.pmd.lang.jsp.ast.DumpFacade
- net.sourceforge.pmd.lang.plsql.ast.DumpFacade
- net.sourceforge.pmd.lang.vf.ast.DumpFacade
- net.sourceforge.pmd.lang.vm.ast.AbstractVmNode#dump
- net.sourceforge.pmd.lang.xml.ast.DumpFacade
+ net.sourceforge.pmd.lang.apex.ast.DumpFacade
+ net.sourceforge.pmd.lang.java.ast.DumpFacade
+ net.sourceforge.pmd.lang.ecmascript.ast.DumpFacade
+ net.sourceforge.pmd.lang.jsp.ast.DumpFacade
+ net.sourceforge.pmd.lang.plsql.ast.DumpFacade
+ net.sourceforge.pmd.lang.vf.ast.DumpFacade
+ net.sourceforge.pmd.lang.vm.ast.AbstractVmNode#dump
+ net.sourceforge.pmd.lang.xml.ast.DumpFacade
- - The method
LanguageVersionHandler#getDumpFacade
will be
-removed as well. It is deprecated, along with all its implementations in the subclasses of LanguageVersionHandler
.
+ - The method
LanguageVersionHandler#getDumpFacade
will be
+removed as well. It is deprecated, along with all its implementations in the subclasses of LanguageVersionHandler
.
6.14.0
@@ -1917,7 +1917,7 @@ or enable preview language features (e.g. PMD_JA
-
-
CodeClimateRule
is deprecated in 7.0.0 because it was unused for 2 years and
+
CodeClimateRule
is deprecated in 7.0.0 because it was unused for 2 years and
created an unwanted dependency.
Properties “cc_categories”, “cc_remediation_points_multiplier”, “cc_block_highlighting” will also be removed.
See #1702 for more.
@@ -1935,13 +1935,13 @@ quickstart ruleset rulesets/apex/quickstart.xml<
6.11.0
- StatisticalRule
and the related helper classes and base rule classes
-are deprecated for removal in 7.0.0. This includes all of net.sourceforge.pmd.stat
and net.sourceforge.pmd.lang.rule.stat
,
-and also AbstractStatisticalJavaRule
, AbstractStatisticalApexRule
and the like.
-The methods Report#addMetric
and metricAdded
+ StatisticalRule
and the related helper classes and base rule classes
+are deprecated for removal in 7.0.0. This includes all of net.sourceforge.pmd.stat
and net.sourceforge.pmd.lang.rule.stat
,
+and also AbstractStatisticalJavaRule
, AbstractStatisticalApexRule
and the like.
+The methods Report#addMetric
and metricAdded
will also be removed.
- setProperty
is deprecated,
-because MultiValuePropertyDescriptor
is deprecated as well
+ setProperty
is deprecated,
+because MultiValuePropertyDescriptor
is deprecated as well
6.10.0
@@ -1956,59 +1956,59 @@ to remove them in 7.0.0. The proposed changes to the API are described net.sourceforge.pmd.properties.builders
,
-is being replaced by the simpler PropertyBuilder
. Their APIs enjoy a high degree of source compatibility.
+construction through builders. The builder hierarchy, currently found in the package net.sourceforge.pmd.properties.builders
,
+is being replaced by the simpler PropertyBuilder
. Their APIs enjoy a high degree of source compatibility.
-
-
Concrete property classes like IntegerProperty
and StringMultiProperty
will gradually
-all be deprecated until 7.0.0. Their usages should be replaced by direct usage of the PropertyDescriptor
+
Concrete property classes like IntegerProperty
and StringMultiProperty
will gradually
+all be deprecated until 7.0.0. Their usages should be replaced by direct usage of the PropertyDescriptor
interface, e.g. PropertyDescriptor<Integer>
or PropertyDescriptor<List<String>>
.
-
-
Instead of spreading properties across countless classes, the utility class PropertyFactory
will become
+
Instead of spreading properties across countless classes, the utility class PropertyFactory
will become
from 7.0.0 on the only provider for property descriptor builders. Each current property type will be replaced
by a corresponding method on PropertyFactory
:
- IntegerProperty
is replaced by PropertyFactory#intProperty
+ IntegerProperty
is replaced by PropertyFactory#intProperty
- IntegerMultiProperty
is replaced by PropertyFactory#intListProperty
+ IntegerMultiProperty
is replaced by PropertyFactory#intListProperty
- FloatProperty
and DoubleProperty
are both replaced by PropertyFactory#doubleProperty
.
+ FloatProperty
and DoubleProperty
are both replaced by PropertyFactory#doubleProperty
.
Having a separate property for floats wasn’t that useful.
- - Similarly,
FloatMultiProperty
and DoubleMultiProperty
are replaced by PropertyFactory#doubleListProperty
.
+ - Similarly,
FloatMultiProperty
and DoubleMultiProperty
are replaced by PropertyFactory#doubleListProperty
.
- StringProperty
is replaced by PropertyFactory#stringProperty
+ StringProperty
is replaced by PropertyFactory#stringProperty
- StringMultiProperty
is replaced by PropertyFactory#stringListProperty
+ StringMultiProperty
is replaced by PropertyFactory#stringListProperty
-
-
RegexProperty
is replaced by PropertyFactory#regexProperty
+ RegexProperty
is replaced by PropertyFactory#regexProperty
- EnumeratedProperty
is replaced by PropertyFactory#enumProperty
+ EnumeratedProperty
is replaced by PropertyFactory#enumProperty
- EnumeratedProperty
is replaced by PropertyFactory#enumListProperty
+ EnumeratedProperty
is replaced by PropertyFactory#enumListProperty
- BooleanProperty
is replaced by PropertyFactory#booleanProperty
+ BooleanProperty
is replaced by PropertyFactory#booleanProperty
- - Its multi-valued counterpart,
BooleanMultiProperty
, is not replaced, because it doesn’t have a use case.
+ - Its multi-valued counterpart,
BooleanMultiProperty
, is not replaced, because it doesn’t have a use case.
- CharacterProperty
is replaced by PropertyFactory#charProperty
+ CharacterProperty
is replaced by PropertyFactory#charProperty
- CharacterMultiProperty
is replaced by PropertyFactory#charListProperty
+ CharacterMultiProperty
is replaced by PropertyFactory#charListProperty
- LongProperty
is replaced by PropertyFactory#longIntProperty
+ LongProperty
is replaced by PropertyFactory#longIntProperty
- LongMultiProperty
is replaced by PropertyFactory#longIntListProperty
+ LongMultiProperty
is replaced by PropertyFactory#longIntListProperty
- MethodProperty
, FileProperty
, TypeProperty
and their multi-valued counterparts
+ MethodProperty
, FileProperty
, TypeProperty
and their multi-valued counterparts
are discontinued for lack of a use-case, and have no planned replacement in 7.0.0 for now.
@@ -2030,19 +2030,19 @@ are discontinued for lack of a use-case, and have no planned replacement in 7.0.
-
-
EnumeratedPropertyDescriptor
, NumericPropertyDescriptor
, PackagedPropertyDescriptor
,
-and the related builders (in net.sourceforge.pmd.properties.builders
) will be removed.
+
EnumeratedPropertyDescriptor
, NumericPropertyDescriptor
, PackagedPropertyDescriptor
,
+and the related builders (in net.sourceforge.pmd.properties.builders
) will be removed.
These specialized interfaces allowed additional constraints to be enforced on the
value of a property, but made the property class hierarchy very large and impractical
-to maintain. Their functionality will be mapped uniformly to PropertyConstraint
s,
+to maintain. Their functionality will be mapped uniformly to PropertyConstraint
s,
which will allow virtually any constraint to be defined, and improve documentation and error reporting. The
-related methods PropertyTypeId#isPropertyNumeric
and
-PropertyTypeId#isPropertyPackaged
are also deprecated.
+related methods PropertyTypeId#isPropertyNumeric
and
+PropertyTypeId#isPropertyPackaged
are also deprecated.
-
-
MultiValuePropertyDescriptor
and SingleValuePropertyDescriptor
+
MultiValuePropertyDescriptor
and SingleValuePropertyDescriptor
are deprecated. 7.0.0 will introduce a new XML syntax which will remove the need for such a divide
-between single- and multi-valued properties. The method PropertyDescriptor#isMultiValue
will be removed
+between single- and multi-valued properties. The method PropertyDescriptor#isMultiValue
will be removed
accordingly.
@@ -2050,21 +2050,21 @@ accordingly.
Changes to the PropertyDescriptor interface
- preferredRowCount
is deprecated with no intended replacement. It was never implemented, and does not belong
-in this interface. The methods uiOrder
and compareTo(PropertyDescriptor)
are deprecated for the
+ preferredRowCount
is deprecated with no intended replacement. It was never implemented, and does not belong
+in this interface. The methods uiOrder
and compareTo(PropertyDescriptor)
are deprecated for the
same reason. These methods mix presentation logic with business logic and are not necessary for PropertyDescriptors to work.
PropertyDescriptor
will not extend Comparable<PropertyDescriptor>
anymore come 7.0.0.
- - The method
propertyErrorFor
is deprecated and will be removed with no intended
+ - The method
propertyErrorFor
is deprecated and will be removed with no intended
replacement. It’s really just a shortcut for prop.errorFor(rule.getProperty(prop))
.
- T
valueFrom(String)
and String
asDelimitedString
(T)
are deprecated and will be removed. These were
+ T
valueFrom(String)
and String
asDelimitedString
(T)
are deprecated and will be removed. These were
used to serialize and deserialize properties to/from a string, but 7.0.0 will introduce a more flexible
XML syntax which will make them obsolete.
- isMultiValue
and type
are deprecated and won’t be replaced. The new XML syntax will remove the need
+ isMultiValue
and type
are deprecated and won’t be replaced. The new XML syntax will remove the need
for a divide between multi- and single-value properties, and will allow arbitrary types to be represented.
Since arbitrary types may be represented, type
will become obsolete as it can’t represent generic types,
which will nevertheless be representable with the XML syntax. It was only used for documentation, but a
new way to document these properties exhaustively will be added with 7.0.0.
- errorFor
is deprecated as its return type will be changed to Optional<String>
with the shift to Java 8.
+ errorFor
is deprecated as its return type will be changed to Optional<String>
with the shift to Java 8.
Deprecated APIs
@@ -2073,27 +2073,27 @@ new way to document these properties exhaustively will be added with 7.0.0.
-
-
The implementation of the adapters for the XPath engines Saxon and Jaxen (package net.sourceforge.pmd.lang.ast.xpath
)
-are now deprecated. They’ll be moved to an internal package come 7.0.0. Only Attribute
remains public API.
+ The implementation of the adapters for the XPath engines Saxon and Jaxen (package net.sourceforge.pmd.lang.ast.xpath
)
+are now deprecated. They’ll be moved to an internal package come 7.0.0. Only Attribute
remains public API.
-
-
The classes PropertyDescriptorField
, PropertyDescriptorBuilderConversionWrapper
, and the methods
-PropertyDescriptor#attributeValuesById
, PropertyDescriptor#isDefinedExternally
and PropertyTypeId#getFactory
.
+
The classes PropertyDescriptorField
, PropertyDescriptorBuilderConversionWrapper
, and the methods
+PropertyDescriptor#attributeValuesById
, PropertyDescriptor#isDefinedExternally
and PropertyTypeId#getFactory
.
These were used to read and write properties to and from XML, but were not intended as public API.
-
-
The class ValueParserConstants
and the interface ValueParser
.
+ The class ValueParserConstants
and the interface ValueParser
.
-
-
All classes from net.sourceforge.pmd.lang.java.metrics.impl.visitors
are now considered internal API. They’re deprecated
+
All classes from net.sourceforge.pmd.lang.java.metrics.impl.visitors
are now considered internal API. They’re deprecated
and will be moved into an internal package with 7.0.0. To implement your own metrics visitors,
-JavaParserVisitorAdapter
should be directly subclassed.
+JavaParserVisitorAdapter
should be directly subclassed.
-
-
LanguageVersionHandler#getDataFlowHandler()
, LanguageVersionHandler#getDFAGraphRule()
+ LanguageVersionHandler#getDataFlowHandler()
, LanguageVersionHandler#getDFAGraphRule()
-
-
+
@@ -2101,21 +2101,21 @@ and will be moved into an internal package with 7.0.0. To implement your own met
-
-
All classes from net.sourceforge.pmd.properties.modules
will be removed.
+ All classes from net.sourceforge.pmd.properties.modules
will be removed.
-
-
The interface Dimensionable
has been deprecated.
+
The interface Dimensionable
has been deprecated.
It gets in the way of a grammar change for 7.0.0 and won’t be needed anymore (see #997).
-
-
Several methods from ASTLocalVariableDeclaration
and ASTFieldDeclaration
have
+
Several methods from ASTLocalVariableDeclaration
and ASTFieldDeclaration
have
also been deprecated:
-
-
ASTFieldDeclaration
won’t be a TypeNode
come 7.0.0, so
-getType
and
-getTypeDefinition
are deprecated.
+ ASTFieldDeclaration
won’t be a TypeNode
come 7.0.0, so
+getType
and
+getTypeDefinition
are deprecated.
-
The method getVariableName
on those two nodes will be removed, too.
@@ -2123,7 +2123,7 @@ also been deprecated:
All these are deprecated because those nodes may declare several variables at once, possibly
-with different types (and obviously with different names). They both implement Iterator<
ASTVariableDeclaratorId
>
+with different types (and obviously with different names). They both implement Iterator<
ASTVariableDeclaratorId
>
though, so you should iterate on each declared variable. See #910.
-
@@ -2131,8 +2131,8 @@ though, so you should iterate on each declared variable. See
net.sourceforge.pmd.lang.java.ast
: JavaParserDecoratedVisitor
, JavaParserControllessVisitor
,
-JavaParserControllessVisitorAdapter
, and JavaParserVisitorDecorator
are deprecated with no intended replacement.
+ - In
net.sourceforge.pmd.lang.java.ast
: JavaParserDecoratedVisitor
, JavaParserControllessVisitor
,
+JavaParserControllessVisitorAdapter
, and JavaParserVisitorDecorator
are deprecated with no intended replacement.
-
@@ -2141,25 +2141,25 @@ are not fully supported by PMD, so having a language module does not make sense.
not affected by this change. The following classes have been deprecated and will be removed with PMD 7.0.0:
- CppHandler
- CppLanguageModule
- CppParser
- CsLanguageModule
- FortranLanguageModule
- GroovyLanguageModule
- MatlabHandler
- MatlabLanguageModule
- MatlabParser
- ObjectiveCHandler
- ObjectiveCLanguageModule
- ObjectiveCParser
- PhpLanguageModule
- PythonHandler
- PythonLanguageModule
- PythonParser
- RubyLanguageModule
- ScalaLanguageModule
- SwiftLanguageModule
+ CppHandler
+ CppLanguageModule
+ CppParser
+ CsLanguageModule
+ FortranLanguageModule
+ GroovyLanguageModule
+ MatlabHandler
+ MatlabLanguageModule
+ MatlabParser
+ ObjectiveCHandler
+ ObjectiveCLanguageModule
+ ObjectiveCParser
+ PhpLanguageModule
+ PythonHandler
+ PythonLanguageModule
+ PythonParser
+ RubyLanguageModule
+ ScalaLanguageModule
+ SwiftLanguageModule
-
@@ -2168,12 +2168,12 @@ in 7.0.0 to factorise common logic and make them extensible. Further explanation
found on #1426. Consequently, the following APIs are deprecated for
removal:
- - In
Rule
: isDfa()
, isTypeResolution()
, isMultifile()
and their
+ - In
Rule
: isDfa()
, isTypeResolution()
, isMultifile()
and their
respective setters.
- - In
RuleSet
: usesDFA(Language)
, usesTypeResolution(Language)
, usesMultifile(Language)
- - In
RuleSets
: usesDFA(Language)
, usesTypeResolution(Language)
, usesMultifile(Language)
- - In
LanguageVersionHandler
: getDataFlowFacade()
, getSymbolFacade()
, getSymbolFacade(ClassLoader)
,
-getTypeResolutionFacade(ClassLoader)
, getQualifiedNameResolutionFacade(ClassLoader)
+ - In
RuleSet
: usesDFA(Language)
, usesTypeResolution(Language)
, usesMultifile(Language)
+ - In
RuleSets
: usesDFA(Language)
, usesTypeResolution(Language)
, usesMultifile(Language)
+ - In
LanguageVersionHandler
: getDataFlowFacade()
, getSymbolFacade()
, getSymbolFacade(ClassLoader)
,
+getTypeResolutionFacade(ClassLoader)
, getQualifiedNameResolutionFacade(ClassLoader)
@@ -2368,7 +2368,7 @@ will be removed with PMD 7.0.0. The rule is replaced by the more general
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_projectdocs_committers_main_landing_page.html b/pmd_projectdocs_committers_main_landing_page.html
index d7d4038b39..d338840f82 100644
--- a/pmd_projectdocs_committers_main_landing_page.html
+++ b/pmd_projectdocs_committers_main_landing_page.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1514,7 +1514,7 @@ the new post is recognized and added to the news section and also on the news su
©2020 PMD Open Source Project. All rights reserved.
-Page last updated: March 2020
Site last generated: Apr 20, 2020
+Page last updated: March 2020
Site last generated: Apr 23, 2020

diff --git a/pmd_projectdocs_committers_merging_pull_requests.html b/pmd_projectdocs_committers_merging_pull_requests.html
index 94bad21c64..3af4587a25 100644
--- a/pmd_projectdocs_committers_merging_pull_requests.html
+++ b/pmd_projectdocs_committers_merging_pull_requests.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1593,7 +1593,7 @@ integrated (e.g. gitk and github show the branches, from which the specific comm
©2020 PMD Open Source Project. All rights reserved.
-Page last updated: August 2017
Site last generated: Apr 20, 2020
+Page last updated: August 2017
Site last generated: Apr 23, 2020

diff --git a/pmd_projectdocs_committers_releasing.html b/pmd_projectdocs_committers_releasing.html
index 432faf10a0..829b6b2c96 100644
--- a/pmd_projectdocs_committers_releasing.html
+++ b/pmd_projectdocs_committers_releasing.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1424,12 +1424,13 @@ $ git status
You can find the release notes here: docs/pages/release_notes.md
.
-The date and the version must be updated in docs/_config.yml
, e.g.
+The date (date +%d-%B-%Y
) and the version (remove the SNAPSHOT) must be updated in docs/_config.yml
, e.g.
pmd:
- version: 6.0.0
- date: 2017-12-15
- release_type: major
+ version: 6.22.0
+ previous_version: 6.21.0
+ date: 12-March-2020
+ release_type: minor
The release type could be one of “bugfix”, “minor”, or “major”.
@@ -1482,13 +1483,13 @@ $ git push
The new version needs to be entered into _config.yml
, e.g.:
pmd:
- latestVersion: 6.0.0
- latestVersionDate: 15th December 2017
+ latestVersion: 6.22.0
+ latestVersionDate: 12-March-2020
Also move the previous version down into the “downloads” section.
-Then create a new page for the new release, e.g. _posts/2017-12-15-PMD-6.0.0.md
and copy
+
Then create a new page for the new release, e.g. _posts/2020-03-12-PMD-6.22.0.md
and copy
the release notes into this page. This will appear under the news section.
Check in all (version) changes to branch master:
@@ -1527,6 +1528,7 @@ the release notes.
selected as the new default downloads for PMD.
- Add the documentation of the new release to a subfolder on https://pmd.github.io, also make
this folder available as
latest
.
+ - Upload the documentation to https://docs.pmd-code.org.
After the release
@@ -1563,7 +1565,16 @@ And Copy-Paste the release notes
Prepare the new release notes
- - Update version in docs/_config.yml
+ -
+
Update version in docs/_config.yml. Note - the next version needs to have a SNAPSHOT in it.
+
+ pmd:
+ version: 6.23.0-SNAPSHOT
+ previous_version: 6.22.0
+ date: ??-??-2020
+ release_type: minor
+
+
- Move version/release info from docs/pages/release_notes.md to docs/pages/release_notes_old.md.
- Update version/release info in docs/pages/release_notes.md. Use the following template:
@@ -1649,7 +1660,7 @@ and mvn versions:set -DnewVersion=5.7.0-SNAPSHOT
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_projectdocs_credits.html b/pmd_projectdocs_credits.html
index 0e9205be3e..47b79139f1 100644
--- a/pmd_projectdocs_credits.html
+++ b/pmd_projectdocs_credits.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1936,7 +1936,7 @@ PMD scoreboard formulas, pmd-dcpd optimizations
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_projectdocs_faq.html b/pmd_projectdocs_faq.html
index 7a40a16b3f..766c90c4c5 100644
--- a/pmd_projectdocs_faq.html
+++ b/pmd_projectdocs_faq.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1469,7 +1469,7 @@ You must take this into account for certain rules.
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_projectdocs_trivia_meaning.html b/pmd_projectdocs_trivia_meaning.html
index 03510a6709..4eaa20db56 100644
--- a/pmd_projectdocs_trivia_meaning.html
+++ b/pmd_projectdocs_trivia_meaning.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1438,7 +1438,7 @@ really know. We just think the letters sound good together.
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_projectdocs_trivia_news.html b/pmd_projectdocs_trivia_news.html
index 46641e75ad..8ade9ba3ca 100644
--- a/pmd_projectdocs_trivia_news.html
+++ b/pmd_projectdocs_trivia_news.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1555,7 +1555,7 @@ interview with Ole-Martin and Tom
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_projectdocs_trivia_products.html b/pmd_projectdocs_trivia_products.html
index a2a1656426..4de7fb9eb5 100644
--- a/pmd_projectdocs_trivia_products.html
+++ b/pmd_projectdocs_trivia_products.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1486,7 +1486,7 @@ to catch web app security problems. Thanks to Joseph Hemler for the props!
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_projectdocs_trivia_similarprojects.html b/pmd_projectdocs_trivia_similarprojects.html
index 1e1f5cbf8b..c7c9903330 100644
--- a/pmd_projectdocs_trivia_similarprojects.html
+++ b/pmd_projectdocs_trivia_similarprojects.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1493,7 +1493,7 @@ only for maven project.
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_release_notes.html b/pmd_release_notes.html
index 2f205be290..16ad7753ba 100644
--- a/pmd_release_notes.html
+++ b/pmd_release_notes.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1403,9 +1403,9 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
- ??-??-2020 - 6.23.0
+ ??-??-2020 - 6.23.0-SNAPSHOT
-The PMD team is pleased to announce PMD 6.23.0.
+The PMD team is pleased to announce PMD 6.23.0-SNAPSHOT.
This is a minor release.
@@ -1446,6 +1446,11 @@ The default version has been set to ES6
,
supported. E.g. let
statements and for-of
loops are now parsed. However Rhino does
not support all features.
+New JSON renderer
+
+PMD now supports a JSON renderer (use it with -f json
on the CLI).
+See the documentation and example
+
New Rules
@@ -1475,14 +1480,17 @@ local variables.
- core
- doc
@@ -1540,10 +1548,10 @@ local variables.
You can identify them with the @InternalApi
annotation. You’ll also get a deprecation warning.
- AbstractXPathRuleQuery
- JaxenXPathRuleQuery
- SaxonXPathRuleQuery
- XPathRuleQuery
+ AbstractXPathRuleQuery
+ JaxenXPathRuleQuery
+ SaxonXPathRuleQuery
+ XPathRuleQuery
In ASTs
@@ -1554,81 +1562,81 @@ The following usages are now deprecated in the Apex, Ja
- Manual instantiation of nodes. Constructors of node classes are deprecated and
-marked
InternalApi
. Nodes should only be obtained from the parser,
+marked InternalApi
. Nodes should only be obtained from the parser,
which for rules, means that they never need to instantiate node themselves.
Those constructors will be made package private with 7.0.0.
- Subclassing of abstract node classes, or usage of their type. The base classes are internal API
and will be hidden in version 7.0.0. You should not couple your code to them.
- - In the meantime you should use interfaces like
VfNode
or
-Node
, or the other published interfaces in this package,
+ - In the meantime you should use interfaces like
VfNode
or
+Node
, or the other published interfaces in this package,
to refer to nodes generically.
- Concrete node classes will be made final with 7.0.0.
- Setters found in any node class or interface. Rules should consider the AST immutable.
We will make those setters package private with 7.0.0.
- - The implementation classes of
Parser
(eg VfParser
) are deprecated and should not be used directly.
-Use LanguageVersionHandler#getParser
instead.
- - The implementation classes of
TokenManager
(eg VfTokenManager
) are deprecated and should not be used outside of our implementation.
+ - The implementation classes of
Parser
(eg VfParser
) are deprecated and should not be used directly.
+Use LanguageVersionHandler#getParser
instead.
+ - The implementation classes of
TokenManager
(eg VfTokenManager
) are deprecated and should not be used outside of our implementation.
This also affects CPD-only modules.
These deprecations are added to the following language modules in this release.
Please look at the package documentation to find out the full list of deprecations.
- - Apex:
net.sourceforge.pmd.lang.apex.ast
- - Javascript:
net.sourceforge.pmd.lang.ecmascript.ast
- - PL/SQL:
net.sourceforge.pmd.lang.plsql.ast
- - Scala:
net.sourceforge.pmd.lang.scala.ast
- - Visualforce:
net.sourceforge.pmd.lang.vf.ast
+ - Apex:
net.sourceforge.pmd.lang.apex.ast
+ - Javascript:
net.sourceforge.pmd.lang.ecmascript.ast
+ - PL/SQL:
net.sourceforge.pmd.lang.plsql.ast
+ - Scala:
net.sourceforge.pmd.lang.scala.ast
+ - Visualforce:
net.sourceforge.pmd.lang.vf.ast
These deprecations have already been rolled out in a previous version for the
following languages:
- - Java:
net.sourceforge.pmd.lang.java.ast
- - Java Server Pages:
net.sourceforge.pmd.lang.jsp.ast
- - Velocity Template Language:
net.sourceforge.pmd.lang.vm.ast
+ - Java:
net.sourceforge.pmd.lang.java.ast
+ - Java Server Pages:
net.sourceforge.pmd.lang.jsp.ast
+ - Velocity Template Language:
net.sourceforge.pmd.lang.vm.ast
Outside of these packages, these changes also concern the following TokenManager
implementations, and their corresponding Parser if it exists (in the same package):
- CppTokenManager
- JavaTokenManager
- Ecmascript5TokenManager
- JspTokenManager
- MatlabTokenManager
- ModelicaTokenManager
- ObjectiveCTokenManager
- PLSQLTokenManager
- PythonTokenManager
- VfTokenManager
- VmTokenManager
+ CppTokenManager
+ JavaTokenManager
+ Ecmascript5TokenManager
+ JspTokenManager
+ MatlabTokenManager
+ ModelicaTokenManager
+ ObjectiveCTokenManager
+ PLSQLTokenManager
+ PythonTokenManager
+ VfTokenManager
+ VmTokenManager
In the Java AST the following attributes are deprecated and will issue a warning when used in XPath rules:
- ASTAdditiveExpression#getImage
- use getOperator()
instead
- ASTVariableDeclaratorId#getImage
- use getName()
instead
- ASTVariableDeclaratorId#getVariableName
- use getName()
instead
+ ASTAdditiveExpression#getImage
- use getOperator()
instead
+ ASTVariableDeclaratorId#getImage
- use getName()
instead
+ ASTVariableDeclaratorId#getVariableName
- use getName()
instead
For removal
- Parser#getTokenManager
- TokenManager#setFileName
- AbstractTokenManager#setFileName
- AbstractTokenManager#getFileName
- AntlrToken#getType
- use getKind()
instead.
- ImmutableLanguage
- MockRule
- ASTRecordDeclaration#getComponentList
- - Multiple fields, constructors and methods in
XPathRule
. See javadoc for details.
+ Parser#getTokenManager
+ TokenManager#setFileName
+ AbstractTokenManager#setFileName
+ AbstractTokenManager#getFileName
+ AntlrToken#getType
- use getKind()
instead.
+ ImmutableLanguage
+ MockRule
+ ASTRecordDeclaration#getComponentList
+ - Multiple fields, constructors and methods in
XPathRule
. See javadoc for details.
External Contributions
@@ -1664,7 +1672,7 @@ implementations, and their corresponding Parser if it exists (in the same packag
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_release_notes_old.html b/pmd_release_notes_old.html
index 5f23e4f443..be9d3f3bb5 100644
--- a/pmd_release_notes_old.html
+++ b/pmd_release_notes_old.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -11680,7 +11680,7 @@ Added new HTML report format
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_apex.html b/pmd_rules_apex.html
index 51f847bbdf..b3a4b30fb3 100644
--- a/pmd_rules_apex.html
+++ b/pmd_rules_apex.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1634,7 +1634,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_apex_bestpractices.html b/pmd_rules_apex_bestpractices.html
index 7452faedeb..72ded1690b 100644
--- a/pmd_rules_apex_bestpractices.html
+++ b/pmd_rules_apex_bestpractices.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1934,7 +1934,7 @@ Therefore delegate the triggers work to a regular class (often called Trigger ha
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_apex_codestyle.html b/pmd_rules_apex_codestyle.html
index f32f6d7425..1dd3c597cb 100644
--- a/pmd_rules_apex_codestyle.html
+++ b/pmd_rules_apex_codestyle.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -2507,7 +2507,7 @@ controlled from the rest.
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_apex_design.html b/pmd_rules_apex_design.html
index 5f730c214d..b11ab661b8 100644
--- a/pmd_rules_apex_design.html
+++ b/pmd_rules_apex_design.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -2464,7 +2464,7 @@ city/state/zip fields could park them within a single Address field.
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_apex_documentation.html b/pmd_rules_apex_documentation.html
index d04a1140f0..5c10cb87ae 100644
--- a/pmd_rules_apex_documentation.html
+++ b/pmd_rules_apex_documentation.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1495,7 +1495,7 @@ order as the method signature.
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_apex_errorprone.html b/pmd_rules_apex_errorprone.html
index 022543604d..7f021c06a6 100644
--- a/pmd_rules_apex_errorprone.html
+++ b/pmd_rules_apex_errorprone.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -2148,7 +2148,7 @@ dealing with legacy code.
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_apex_performance.html b/pmd_rules_apex_performance.html
index 23b0eedc46..493d3ce19b 100644
--- a/pmd_rules_apex_performance.html
+++ b/pmd_rules_apex_performance.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1598,7 +1598,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_apex_security.html b/pmd_rules_apex_security.html
index cc25dad7f6..586fde1072 100644
--- a/pmd_rules_apex_security.html
+++ b/pmd_rules_apex_security.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -2105,7 +2105,7 @@ to avoid XSS attacks.
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_ecmascript.html b/pmd_rules_ecmascript.html
index e8f4457c47..f993fc979f 100644
--- a/pmd_rules_ecmascript.html
+++ b/pmd_rules_ecmascript.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1511,7 +1511,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_ecmascript_bestpractices.html b/pmd_rules_ecmascript_bestpractices.html
index a493f22fb6..b9ad40cb3a 100644
--- a/pmd_rules_ecmascript_bestpractices.html
+++ b/pmd_rules_ecmascript_bestpractices.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1633,7 +1633,7 @@ It also improves readability, if the base is given.
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_ecmascript_codestyle.html b/pmd_rules_ecmascript_codestyle.html
index 629ac6ae3a..119de251f0 100644
--- a/pmd_rules_ecmascript_codestyle.html
+++ b/pmd_rules_ecmascript_codestyle.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1775,7 +1775,7 @@ will never execute. This is a bug, or extremely poor style.
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_ecmascript_errorprone.html b/pmd_rules_ecmascript_errorprone.html
index c347dced2b..d127dfb60a 100644
--- a/pmd_rules_ecmascript_errorprone.html
+++ b/pmd_rules_ecmascript_errorprone.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1556,7 +1556,7 @@ precision in a floating point number. This may result in numeric calculations b
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_java.html b/pmd_rules_java.html
index f031a43da1..16a24bf012 100644
--- a/pmd_rules_java.html
+++ b/pmd_rules_java.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -2067,7 +2067,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_java_bestpractices.html b/pmd_rules_java_bestpractices.html
index 6b711aaf60..5c52e08971 100644
--- a/pmd_rules_java_bestpractices.html
+++ b/pmd_rules_java_bestpractices.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -3438,7 +3438,7 @@ a block {}
is sufficient.
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_java_codestyle.html b/pmd_rules_java_codestyle.html
index 4984fb0f51..9c5f92584d 100644
--- a/pmd_rules_java_codestyle.html
+++ b/pmd_rules_java_codestyle.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -4556,7 +4556,7 @@ by the rule
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_java_design.html b/pmd_rules_java_design.html
index 4f68ab9a68..9a49c523bc 100644
--- a/pmd_rules_java_design.html
+++ b/pmd_rules_java_design.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -3965,7 +3965,7 @@ remember to add a private constructor to prevent instantiation.
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_java_documentation.html b/pmd_rules_java_documentation.html
index 3a0306c385..cf11336782 100644
--- a/pmd_rules_java_documentation.html
+++ b/pmd_rules_java_documentation.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1745,7 +1745,7 @@ empty methods.
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_java_errorprone.html b/pmd_rules_java_errorprone.html
index 611caadd23..7b73bb635d 100644
--- a/pmd_rules_java_errorprone.html
+++ b/pmd_rules_java_errorprone.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -5168,7 +5168,7 @@ Thread.currentThread().getContextClassLoader() instead.
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_java_multithreading.html b/pmd_rules_java_multithreading.html
index 056a66936a..d8bce5ab38 100644
--- a/pmd_rules_java_multithreading.html
+++ b/pmd_rules_java_multithreading.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1911,7 +1911,7 @@ one is chosen. The thread chosen is arbitrary; thus its usually safer to call n
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_java_performance.html b/pmd_rules_java_performance.html
index bb26c83401..90b24e808e 100644
--- a/pmd_rules_java_performance.html
+++ b/pmd_rules_java_performance.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -2437,7 +2437,7 @@ or StringBuffer.toString().length() == …
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_java_security.html b/pmd_rules_java_security.html
index 20bd1b2dca..71dcfbd077 100644
--- a/pmd_rules_java_security.html
+++ b/pmd_rules_java_security.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1482,7 +1482,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_jsp.html b/pmd_rules_jsp.html
index 93282e0e2b..2507b3a9ab 100644
--- a/pmd_rules_jsp.html
+++ b/pmd_rules_jsp.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1493,7 +1493,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_jsp_bestpractices.html b/pmd_rules_jsp_bestpractices.html
index ea350ebe20..96ae260f13 100644
--- a/pmd_rules_jsp_bestpractices.html
+++ b/pmd_rules_jsp_bestpractices.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1524,7 +1524,7 @@ little other purpose. Consider switching to JSP comments.
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_jsp_codestyle.html b/pmd_rules_jsp_codestyle.html
index 73d596f929..de31bfd760 100644
--- a/pmd_rules_jsp_codestyle.html
+++ b/pmd_rules_jsp_codestyle.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1441,7 +1441,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_jsp_design.html b/pmd_rules_jsp_design.html
index 035717e8ae..1835422eec 100644
--- a/pmd_rules_jsp_design.html
+++ b/pmd_rules_jsp_design.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1532,7 +1532,7 @@ onload=calcDays;
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_jsp_errorprone.html b/pmd_rules_jsp_errorprone.html
index 19756da7de..9f58b9bcf0 100644
--- a/pmd_rules_jsp_errorprone.html
+++ b/pmd_rules_jsp_errorprone.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1453,7 +1453,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_jsp_security.html b/pmd_rules_jsp_security.html
index ee6d5b568b..a3c826a414 100644
--- a/pmd_rules_jsp_security.html
+++ b/pmd_rules_jsp_security.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1474,7 +1474,7 @@ ${fn:escapeXml(expression)} <!-- instead, escape it --&g
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_modelica.html b/pmd_rules_modelica.html
index d1fbb2bc1a..ac647f42b5 100644
--- a/pmd_rules_modelica.html
+++ b/pmd_rules_modelica.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1442,7 +1442,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_modelica_bestpractices.html b/pmd_rules_modelica_bestpractices.html
index b70fd49989..4137e207cb 100644
--- a/pmd_rules_modelica_bestpractices.html
+++ b/pmd_rules_modelica_bestpractices.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1516,7 +1516,7 @@ end Example;
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_plsql.html b/pmd_rules_plsql.html
index 88d3135460..624cf32e04 100644
--- a/pmd_rules_plsql.html
+++ b/pmd_rules_plsql.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1522,7 +1522,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_plsql_bestpractices.html b/pmd_rules_plsql_bestpractices.html
index a15c29729d..f6f02579a0 100644
--- a/pmd_rules_plsql_bestpractices.html
+++ b/pmd_rules_plsql_bestpractices.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1482,7 +1482,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_plsql_codestyle.html b/pmd_rules_plsql_codestyle.html
index 540feb9be6..520e9b4c58 100644
--- a/pmd_rules_plsql_codestyle.html
+++ b/pmd_rules_plsql_codestyle.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1766,7 +1766,7 @@ https://docs.oracle.com/cd/B28359_01/appdev.111/b28370/static.htm#BABIIHBJ
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_plsql_design.html b/pmd_rules_plsql_design.html
index 2c928b0bab..e5bf954dc1 100644
--- a/pmd_rules_plsql_design.html
+++ b/pmd_rules_plsql_design.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -2406,7 +2406,7 @@ have more fine grained objects.
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_plsql_errorprone.html b/pmd_rules_plsql_errorprone.html
index 22449664c2..12ced4e817 100644
--- a/pmd_rules_plsql_errorprone.html
+++ b/pmd_rules_plsql_errorprone.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1551,7 +1551,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_pom.html b/pmd_rules_pom.html
index f2f8d357f1..76198313f3 100644
--- a/pmd_rules_pom.html
+++ b/pmd_rules_pom.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1455,7 +1455,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_pom_errorprone.html b/pmd_rules_pom_errorprone.html
index 2bc48d9c3e..b8e50a378d 100644
--- a/pmd_rules_pom_errorprone.html
+++ b/pmd_rules_pom_errorprone.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1522,7 +1522,7 @@ By far the most common problem is the use of ${project.version} in a BOM or pare
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_scala.html b/pmd_rules_scala.html
index be1b6b0a69..beeed12159 100644
--- a/pmd_rules_scala.html
+++ b/pmd_rules_scala.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1435,7 +1435,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_vf.html b/pmd_rules_vf.html
index 4e4598d7ac..ad589d1b4f 100644
--- a/pmd_rules_vf.html
+++ b/pmd_rules_vf.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1455,7 +1455,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_vf_security.html b/pmd_rules_vf_security.html
index 589bf7eed6..b5a5119d30 100644
--- a/pmd_rules_vf_security.html
+++ b/pmd_rules_vf_security.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1460,7 +1460,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_vm.html b/pmd_rules_vm.html
index c2ef312369..68837c7102 100644
--- a/pmd_rules_vm.html
+++ b/pmd_rules_vm.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1476,7 +1476,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_vm_bestpractices.html b/pmd_rules_vm_bestpractices.html
index 5f7f4d0e17..0ce59a8a15 100644
--- a/pmd_rules_vm_bestpractices.html
+++ b/pmd_rules_vm_bestpractices.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1450,7 +1450,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_vm_design.html b/pmd_rules_vm_design.html
index 0bae288c44..1a29026181 100644
--- a/pmd_rules_vm_design.html
+++ b/pmd_rules_vm_design.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1564,7 +1564,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_vm_errorprone.html b/pmd_rules_vm_errorprone.html
index dd3f1a0b80..70a7e83b55 100644
--- a/pmd_rules_vm_errorprone.html
+++ b/pmd_rules_vm_errorprone.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1450,7 +1450,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_xml.html b/pmd_rules_xml.html
index 56c4cf3106..597eaa607c 100644
--- a/pmd_rules_xml.html
+++ b/pmd_rules_xml.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1454,7 +1454,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_xml_errorprone.html b/pmd_rules_xml_errorprone.html
index ff5421b3ed..120799265a 100644
--- a/pmd_rules_xml_errorprone.html
+++ b/pmd_rules_xml_errorprone.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1454,7 +1454,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_xsl.html b/pmd_rules_xsl.html
index 37cac41b37..060c65466d 100644
--- a/pmd_rules_xsl.html
+++ b/pmd_rules_xsl.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1462,7 +1462,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_xsl_codestyle.html b/pmd_rules_xsl_codestyle.html
index 7f344da978..e13faaeb02 100644
--- a/pmd_rules_xsl_codestyle.html
+++ b/pmd_rules_xsl_codestyle.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1445,7 +1445,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_rules_xsl_performance.html b/pmd_rules_xsl_performance.html
index 40a1d6de9a..aa446b40ba 100644
--- a/pmd_rules_xsl_performance.html
+++ b/pmd_rules_xsl_performance.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1488,7 +1488,7 @@ cutting through 100% of the document.
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_userdocs_best_practices.html b/pmd_userdocs_best_practices.html
index dae5d3be8e..8d321b9cd0 100644
--- a/pmd_userdocs_best_practices.html
+++ b/pmd_userdocs_best_practices.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1457,7 +1457,7 @@ and soon you’ll be fixing problems much faster.
©2020 PMD Open Source Project. All rights reserved.
-Page last updated: November 2017
Site last generated: Apr 20, 2020
+Page last updated: November 2017
Site last generated: Apr 23, 2020

diff --git a/pmd_userdocs_cli_reference.html b/pmd_userdocs_cli_reference.html
index 68965b316c..e3f9a2c2c3 100644
--- a/pmd_userdocs_cli_reference.html
+++ b/pmd_userdocs_cli_reference.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -2074,7 +2074,7 @@ All formats are described at PMD Repo
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_userdocs_configuring_rules.html b/pmd_userdocs_configuring_rules.html
index 491c1d684d..ce19dac916 100644
--- a/pmd_userdocs_configuring_rules.html
+++ b/pmd_userdocs_configuring_rules.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1483,7 +1483,7 @@ will cause the rule to be ignored.
©2020 PMD Open Source Project. All rights reserved.
-Page last updated: May 2018 (6.4.0)
Site last generated: Apr 20, 2020
+Page last updated: May 2018 (6.4.0)
Site last generated: Apr 23, 2020

diff --git a/pmd_userdocs_cpd.html b/pmd_userdocs_cpd.html
index 4d3559b425..e5114e5d2b 100644
--- a/pmd_userdocs_cpd.html
+++ b/pmd_userdocs_cpd.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1936,7 +1936,7 @@ $ ./run.sh cpd --minimum-tokens 100 --files /usr/local/java/src/java
In order to change the heap size under Windows, you’ll need to edit the batch file cpd.bat
or
set the environment variable PMD_JAVA_OPTS
prior to starting CPD:
-C:\ > cd C:\pmd-bin-6.23.0\bin
+C:\ > cd C:\pmd-bin-6.23.0-SNAPSHOT\bin
C:\...\bin > set PMD_JAVA_OPTS=-Xmx512m
C:\...\bin > .\cpd.bat --minimum-tokens 100 --files c:\temp\src
@@ -2438,7 +2438,7 @@ the comment based approach will be extended to those of them that can support it
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_userdocs_cpd_report_formats.html b/pmd_userdocs_cpd_report_formats.html
index fae6edc795..a011523171 100644
--- a/pmd_userdocs_cpd_report_formats.html
+++ b/pmd_userdocs_cpd_report_formats.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1634,7 +1634,7 @@ is shown in the console. You can then click on the filenames to jump to the sour
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_userdocs_extending_defining_properties.html b/pmd_userdocs_extending_defining_properties.html
index 5007f0b1a3..2718ec8bff 100644
--- a/pmd_userdocs_extending_defining_properties.html
+++ b/pmd_userdocs_extending_defining_properties.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1431,16 +1431,16 @@ page can help you squeeze that sweet flexibility out of your rule.
The procedure to define a property is quite straightforward:
- Create a property descriptor of the type you want, by using a
-builder from
PropertyFactory
- - Call
definePropertyDescriptor(PropertyDescriptor)
` in the rule’s noarg constructor.
+builder from PropertyFactory
+ - Call
definePropertyDescriptor(PropertyDescriptor)
` in the rule’s noarg constructor.
-You can then retrieve the value of the property at any time using getProperty(PropertyDescriptor)
.
+You can then retrieve the value of the property at any time using getProperty(PropertyDescriptor)
.
Creating a descriptor
Properties can be built using type-specific builders, which can be obtained
-from the factory methods of PropertyFactory
. For example, to build a
+from the factory methods of PropertyFactory
. For example, to build a
string property, you’d call
PropertyFactory.stringProperty("myProperty")
.desc("This is my property")
@@ -1463,8 +1463,8 @@ information about how to migrate.
.build();
-The positive
method is part of
-the NumericConstraints
class, which provides some
+
The positive
method is part of
+the NumericConstraints
class, which provides some
other constraints. The constraint mechanism will be completely unlocked with 7.0.0,
since we’ll be migrating our API to Java 8.
@@ -1495,7 +1495,7 @@ There are several things to notice here:
- The property descriptors are declared
static final
, which should generally be
the case, as descriptors are immutable and can be shared between instances of the same rule;
- - The property is declared using
definePropertyDescriptor
` in the constructor,
+ - The property is declared using
definePropertyDescriptor
` in the constructor,
which ensures the property gets recognised by PMD at the time the properties
are overridden (which happens before rule execution);
- The value of the property is not retrieved in the constructor, but in one of
@@ -1633,7 +1633,7 @@ are supported.
©2020 PMD Open Source Project. All rights reserved.
-Page last updated: February 2020 (6.22.0)
Site last generated: Apr 20, 2020
+Page last updated: February 2020 (6.22.0)
Site last generated: Apr 23, 2020

diff --git a/pmd_userdocs_extending_designer_reference.html b/pmd_userdocs_extending_designer_reference.html
index cab46c361d..36204aac33 100644
--- a/pmd_userdocs_extending_designer_reference.html
+++ b/pmd_userdocs_extending_designer_reference.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1672,7 +1672,7 @@ The available language modules are those on the classpath of the app’s JVM. Th
©2020 PMD Open Source Project. All rights reserved.
-Page last updated: August 2019 (6.18.0)
Site last generated: Apr 20, 2020
+Page last updated: August 2019 (6.18.0)
Site last generated: Apr 23, 2020

diff --git a/pmd_userdocs_extending_metrics_howto.html b/pmd_userdocs_extending_metrics_howto.html
index 61a90975a3..7d8ef00f6a 100644
--- a/pmd_userdocs_extending_metrics_howto.html
+++ b/pmd_userdocs_extending_metrics_howto.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1416,8 +1416,8 @@ a numeric result. In the Java framework, metrics can be computed on operation de
method declaration), and type declaration nodes (class, interface, enum, and annotation declarations). A metric
object in the framework can only handle either types or operations, but not both.
-PMD ships with a library of already implemented metrics. These metrics are referenced by MetricKey
objects,
-which are listed in two public enums: JavaClassMetricKey
and JavaOperationMetricKey
.
+
PMD ships with a library of already implemented metrics. These metrics are referenced by MetricKey
objects,
+which are listed in two public enums: JavaClassMetricKey
and JavaOperationMetricKey
.
Metric keys wrap a metric, and know which type of node their metric can be computed on. That way, you cannot compute an operation metric on a class
declaration node. Metrics that can be computed on both operation and type declarations (e.g. NCSS) have one metric key in
each enum.
@@ -1430,9 +1430,9 @@ which is the name of the metric key as defined in ASTAnyTypeDeclaration
or MethodLikeNode
, that is,
-it’s not one of ASTClassOrInterfaceDeclaration
, ASTEnumDeclaration
, ASTMethodDeclaration
,
-ASTConstructorDeclaration
, or ASTLambdaExpression
.
+ - The context node is neither an instance of
ASTAnyTypeDeclaration
or MethodLikeNode
, that is,
+it’s not one of ASTClassOrInterfaceDeclaration
, ASTEnumDeclaration
, ASTMethodDeclaration
,
+ASTConstructorDeclaration
, or ASTLambdaExpression
.
- The metric key does not exist (the name is case insensitive) or is not defined for the type of the context node.
@@ -1450,7 +1450,7 @@ CYCLO’s only defined for methods and constructors.
For Java Rules
-The static façade class JavaMetrics
is the single entry point to compute metrics in the Java framework.
+The static façade class JavaMetrics
is the single entry point to compute metrics in the Java framework.
This class provides the method get
and its overloads. The following sections describes the interface of this class.
@@ -1478,7 +1478,7 @@ to JavaMetrics.get
.
Capability checking
Metrics are not necessarily computable on any node of the type they handle. For example, Cyclo cannot be computed on
-abstract methods. Metric keys provides a supports(Node)
boolean method
+abstract methods. Metric keys provides a supports(Node)
boolean method
to find out if the metric can be computed on
the specified node. If the metric cannot be computed on the given node, JavaMetrics.get
will return Double.NaN
.
If you’re concerned about that, you can condition your call on whether the node is supported or not:
@@ -1499,7 +1499,7 @@ If you’re concerned about that, you can condition your call on whether the nod
gathered inside an enum in the implementation class of the metric, for example CycloMetric.CycloOption
. They’re
also documented on the index of metrics.
-To use options with a metric, you must first bundle them into a MetricOptions
object. MetricOptions
provides the
+
To use options with a metric, you must first bundle them into a MetricOptions
object. MetricOptions
provides the
utility method ofOptions
to get a MetricOptions
bundle from a collection or with varargs parameters. You can then
pass this bundle as a parameter to JavaMetrics.get
:
public Object visit(ASTMethodDeclaration method, Object data) {
@@ -1758,7 +1758,7 @@ classes. Here’s the default behaviour by language and type of metric:
©2020 PMD Open Source Project. All rights reserved.
-Page last updated: December 18, 2017
Site last generated: Apr 20, 2020
+Page last updated: December 18, 2017
Site last generated: Apr 23, 2020

diff --git a/pmd_userdocs_extending_rule_guidelines.html b/pmd_userdocs_extending_rule_guidelines.html
index 4c95ce6c3a..f98fdcca0b 100644
--- a/pmd_userdocs_extending_rule_guidelines.html
+++ b/pmd_userdocs_extending_rule_guidelines.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1462,7 +1462,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
-Page last updated: February 2020 (6.22.0)
Site last generated: Apr 20, 2020
+Page last updated: February 2020 (6.22.0)
Site last generated: Apr 23, 2020

diff --git a/pmd_userdocs_extending_testing.html b/pmd_userdocs_extending_testing.html
index d20a6cfaef..20a826fbfa 100644
--- a/pmd_userdocs_extending_testing.html
+++ b/pmd_userdocs_extending_testing.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1642,7 +1642,7 @@ Therefore you just need to reference the dependency <dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-test</artifactId>
- <version>6.23.0</version>
+ <version>6.23.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
@@ -1729,7 +1729,7 @@ will be executed twice.
©2020 PMD Open Source Project. All rights reserved.
-Page last updated: November 2018
Site last generated: Apr 20, 2020
+Page last updated: November 2018
Site last generated: Apr 23, 2020

diff --git a/pmd_userdocs_extending_writing_java_rules.html b/pmd_userdocs_extending_writing_java_rules.html
index 40ed2dc1a8..fb2f59d5f5 100644
--- a/pmd_userdocs_extending_writing_java_rules.html
+++ b/pmd_userdocs_extending_writing_java_rules.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1425,9 +1425,9 @@ very similar for other languages.
To write a rule in Java you’ll have to:
- - write a Java class that implements the interface
Rule
. Each
+ - write a Java class that implements the interface
Rule
. Each
language implementation provides a base rule class to ease your pain,
-e.g. AbstractJavaRule
.
+e.g. AbstractJavaRule
.
- compile this class, linking it to PMD APIs (eg using PMD as a maven dependency)
- bundle this into a JAR and add it to the execution classpath of PMD
- declare the rule in your ruleset XML
@@ -1455,7 +1455,7 @@ by default just visits the children.
Generally, a rule wants to check for only some node types. In our XPath example
in Your First Rule,
we wanted to check for some VariableDeclaratorId
nodes. That’s the XPath name,
-but in Java, you’ll get access to the ASTVariableDeclaratorId
+but in Java, you’ll get access to the ASTVariableDeclaratorId
full API.
If you want to check for some specific node types, you can override the
@@ -1503,7 +1503,7 @@ speed-up your rule by using the rulechain.
That mechanism doesn’t recurse on all the tree, instead, your rule will only be
passed the nodes it is interested in. To use the rulechain correctly:
- - Your rule must register those node types by calling
addRuleChainVisit
+ - Your rule must register those node types by calling
addRuleChainVisit
in its constructor.
- Your visit methods must not recurse! In effect, you should call never
call
super.visit
in the methods.
@@ -1520,7 +1520,7 @@ by multiple threads.
However, for performance reasons, the rule instances are used for multiple files.
This means, that the constructor of the rule is only executed once (per thread)
and the rule instance is reused. If you rely on a proper initialization of instance
-properties, you can do the initialization e.g. in the visit-method of the ASTCompilationUnit
+properties, you can do the initialization e.g. in the visit-method of the ASTCompilationUnit
node - which is visited first and only once per file. However, this
solution would only work for rules written for the Java language. A language
independent way is to override the method start
of the rule.
@@ -1555,11 +1555,11 @@ a different set of files to analyse. Then, for each such file, for each
rule copy:
- start
is called once, before parsing
- apply
is called with the root
+ start
is called once, before parsing
+ apply
is called with the root
of the AST. That method performs the AST traversal that ultimately calls visit methods.
It’s not called for RuleChain rules.
- end
is called when the rule is done processing
+ end
is called when the rule is done processing
the file
@@ -1590,7 +1590,7 @@ the file
©2020 PMD Open Source Project. All rights reserved.
-Page last updated: February 2020 (6.22.0)
Site last generated: Apr 20, 2020
+Page last updated: February 2020 (6.22.0)
Site last generated: Apr 23, 2020

diff --git a/pmd_userdocs_extending_writing_pmd_rules.html b/pmd_userdocs_extending_writing_pmd_rules.html
index 46cfbaaecd..140c735b31 100644
--- a/pmd_userdocs_extending_writing_pmd_rules.html
+++ b/pmd_userdocs_extending_writing_pmd_rules.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1454,7 +1454,7 @@ your rule
©2020 PMD Open Source Project. All rights reserved.
-Page last updated: February 2020 (6.22.0)
Site last generated: Apr 20, 2020
+Page last updated: February 2020 (6.22.0)
Site last generated: Apr 23, 2020

diff --git a/pmd_userdocs_extending_writing_rules_intro.html b/pmd_userdocs_extending_writing_rules_intro.html
index d7b56954e0..2368a4a1ff 100644
--- a/pmd_userdocs_extending_writing_rules_intro.html
+++ b/pmd_userdocs_extending_writing_rules_intro.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1463,10 +1463,10 @@ of the specific thing the rule is trying to flag. Rules then report a violation
Discovering the AST
-ASTs are represented by Java classes deriving from Node
.
+
ASTs are represented by Java classes deriving from Node
.
Each PMD language has its own set of such classes, and its own rules about how
these classes relate to one another, based on the grammar of the language. For
-example, all Java AST nodes extend JavaNode
.
+example, all Java AST nodes extend JavaNode
.
The structure of the AST can be discovered through
@@ -1566,7 +1566,7 @@ your rule
©2020 PMD Open Source Project. All rights reserved.
-Page last updated: February 2020 (6.22.0)
Site last generated: Apr 20, 2020
+Page last updated: February 2020 (6.22.0)
Site last generated: Apr 23, 2020

diff --git a/pmd_userdocs_extending_writing_xpath_rules.html b/pmd_userdocs_extending_writing_xpath_rules.html
index f417d4ac73..28a67d7b98 100644
--- a/pmd_userdocs_extending_writing_xpath_rules.html
+++ b/pmd_userdocs_extending_writing_xpath_rules.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1437,7 +1437,7 @@ defined on. Concretely, this means:
- Every AST node is viewed as an XML element
- - The element has for local name the value of
getXPathNodeName
+ - The element has for local name the value of
getXPathNodeName
for the given node
@@ -1445,7 +1445,7 @@ for the given node
- This means, that documentation for attributes can be found in our Javadocs. For
example, the attribute
@SimpleName
of the Java node EnumDeclaration
is backed
-by the Java getter getSimpleName
.
+by the Java getter getSimpleName
.
@@ -1622,7 +1622,7 @@ information from the AST.
- Returns true if the context node's static Java type is a subtype of the given type. This tests for the resolved type of the Java construct, not the type of the AST node. For example, the AST node for a literal (e.g.
5d
) has type ASTLiteral, however this function will compare the type of the literal (eg here, double
) against the argument.
- Remarks
- - The context node must be a
TypeNode
+ - The context node must be a
TypeNode
@@ -1696,7 +1696,7 @@ information from the AST.
- Returns true if the context node's static type is exactly the given type. In particular, returns false if the context node's type is a subtype of the given type.
- Remarks
- - The context node must be a
TypeNode
+ - The context node must be a
TypeNode
@@ -1767,7 +1767,7 @@ information from the AST.
- Returns the value of the metric as evaluated on the context node
- Remarks
- - The context node must be a
ASTAnyTypeDeclaration
or a MethodLikeNode
+ - The context node must be a
ASTAnyTypeDeclaration
or a MethodLikeNode
@@ -1780,7 +1780,7 @@ information from the AST.
metricKey
as xs:string
- - The name of an enum constant in
JavaOperationMetricKey
or JavaClassMetricKey
+ - The name of an enum constant in
JavaOperationMetricKey
or JavaClassMetricKey
@@ -1834,7 +1834,7 @@ deprecated and whose usages should be replaced with uses of
©2020 PMD Open Source Project. All rights reserved.
-Page last updated: February 2020 (6.22.0)
Site last generated: Apr 20, 2020
+Page last updated: February 2020 (6.22.0)
Site last generated: Apr 23, 2020

diff --git a/pmd_userdocs_extending_your_first_rule.html b/pmd_userdocs_extending_your_first_rule.html
index 3966c31530..89dd5012ca 100644
--- a/pmd_userdocs_extending_your_first_rule.html
+++ b/pmd_userdocs_extending_your_first_rule.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1561,7 +1561,7 @@ of a rule of type XPathRule, which is how XPath rules are implemented.
©2020 PMD Open Source Project. All rights reserved.
-Page last updated: February 2020 (6.22.0)
Site last generated: Apr 20, 2020
+Page last updated: February 2020 (6.22.0)
Site last generated: Apr 23, 2020

diff --git a/pmd_userdocs_incremental_analysis.html b/pmd_userdocs_incremental_analysis.html
index 9adfc60774..b73b70a1a7 100644
--- a/pmd_userdocs_incremental_analysis.html
+++ b/pmd_userdocs_incremental_analysis.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1474,7 +1474,7 @@ is stored:
and the violations found in previous runs are the value.
The cache is in the end just a file with serialized data (binary). The implementation is
-FileAnalysisCache
.
+FileAnalysisCache
.
How does PMD detect whether a file has been changed?
@@ -1537,7 +1537,7 @@ same execution classpath).
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_userdocs_installation.html b/pmd_userdocs_installation.html
index 66a2513666..1151acaad9 100644
--- a/pmd_userdocs_installation.html
+++ b/pmd_userdocs_installation.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1478,7 +1478,7 @@ require it to function properly.
-~ $ cd ~/bin/pmd-bin-6.23.0/bin
+~ $ cd ~/bin/pmd-bin-6.23.0-SNAPSHOT/bin
~/.../bin $ ./run.sh pmd -d ../../../src/main/java/ -f text -R rulesets/java/quickstart.xml
.../src/main/java/com/me/RuleSet.java:123 These nested if statements could be combined
@@ -1488,7 +1488,7 @@ require it to function properly.
.../src/main/java/com/me/RuleSetWriter.java:66 Avoid empty catch blocks
-C:\ > cd C:\pmd-bin-6.23.0\bin
+C:\ > cd C:\pmd-bin-6.23.0-SNAPSHOT\bin
C:\...\bin > .\pmd.bat -d ..\..\src\main\java\ -f text -R rulesets/java/quickstart.xml
.../src/main/java/com/me/RuleSet.java:123 These nested if statements could be combined
@@ -1529,7 +1529,7 @@ directory or a jar or zip file containing the sources.
-~ $ cd ~/bin/pmd-bin-6.23.0/bin
+~ $ cd ~/bin/pmd-bin-6.23.0-SNAPSHOT/bin
~/.../bin $ ./run.sh cpd --minimum-tokens 100 --files /home/me/src
Found a 7 line (110 tokens) duplication in the following files:
@@ -1545,7 +1545,7 @@ directory or a jar or zip file containing the sources.
assertEquals(Boolean.TYPE, expressions.get(index++).getType());
-C:\ > cd C:\pmd-bin-6.23.0\bin
+C:\ > cd C:\pmd-bin-6.23.0-SNAPSHOT\bin
C:\...\bin > .\cpd.bat --minimum-tokens 100 --files c:\temp\src
Found a 7 line (110 tokens) duplication in the following files:
@@ -1590,7 +1590,7 @@ directory or a jar or zip file containing the sources.
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_userdocs_making_rulesets.html b/pmd_userdocs_making_rulesets.html
index b5721633dc..62d61d3819 100644
--- a/pmd_userdocs_making_rulesets.html
+++ b/pmd_userdocs_making_rulesets.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1540,7 +1540,7 @@ a single rule reference.
©2020 PMD Open Source Project. All rights reserved.
-Page last updated: May 2018 (6.4.0)
Site last generated: Apr 20, 2020
+Page last updated: May 2018 (6.4.0)
Site last generated: Apr 23, 2020

diff --git a/pmd_userdocs_report_formats.html b/pmd_userdocs_report_formats.html
index 5ba3566473..73d2bd5b80 100644
--- a/pmd_userdocs_report_formats.html
+++ b/pmd_userdocs_report_formats.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1432,8 +1432,8 @@ the full rule details for each reported rule violation.
Example:
-{"type":"issue","check_name":"GuardLogStatement","description":"Logger calls should be surrounded by log level guards.","content":{"body":"## GuardLogStatement\n\nSince: PMD 5.1.0\n\nPriority: Medium High\n\n[Categories](https://github.com/codeclimate/spec/blob/master/SPEC.md#categories): Style\n\n[Remediation Points](https://github.com/codeclimate/spec/blob/master/SPEC.md#remediation-points): 50000\n\nWhenever using a log level, one should check if the loglevel is actually enabled, or otherwise skip the associate String creation and manipulation.\n\n### Example:\n\n```java\n\n\n // Add this for performance\n if (log.isDebugEnabled() { ...\n log.debug('log something' + ' and ' + 'concat strings');\n\n \n``` \n\n### [PMD properties](https://pmd.github.io/pmd-6.22.0/pmd_devdocs_working_with_properties.html)\n\nName | Value | Description\n--- | --- | ---\nviolationSuppressRegex | | Suppress violations with messages matching a regular expression\nviolationSuppressXPath | | Suppress violations on nodes which match a given relative XPath expression.\nlogLevels | trace,debug,info,warn,error,log,finest,finer,fine,info,warning,severe | LogLevels to guard\nguardsMethods | isTraceEnabled,isDebugEnabled,isInfoEnabled,isWarnEnabled,isErrorEnabled,isLoggable | Method use to guard the log statement\n"},"categories":["Style"],"location":{"path":"/home/pmd/source/pmd-core/src/main/java/net/sourceforge/pmd/RuleContext.java","lines":{"begin":124,"end":125}},"severity":"normal","remediation_points":50000}
-{"type":"issue","check_name":"ForLoopCanBeForeach","description":"This for loop can be replaced by a foreach loop","content":{"body":"## ForLoopCanBeForeach\n\nSince: PMD 6.0.0\n\nPriority: Medium\n\n[Categories](https://github.com/codeclimate/spec/blob/master/SPEC.md#categories): Style\n\n[Remediation Points](https://github.com/codeclimate/spec/blob/master/SPEC.md#remediation-points): 50000\n\nReports loops that can be safely replaced with the foreach syntax. The rule considers loops over lists, arrays and iterators. A loop is safe to replace if it only uses the index variable to access an element of the list or array, only has one update statement, and loops through *every* element of the list or array left to right.\n\n### Example:\n\n```java\n\n\npublic class MyClass {\n void loop(List<String> l) {\n for (int i = 0; i < l.size(); i++) { // pre Java 1.5\n System.out.println(l.get(i));\n }\n\n for (String s : l) { // post Java 1.5\n System.out.println(s);\n }\n }\n}\n\n \n``` \n\n### [PMD properties](https://pmd.github.io/pmd-6.22.0/pmd_devdocs_working_with_properties.html)\n\nName | Value | Description\n--- | --- | ---\nviolationSuppressRegex | | Suppress violations with messages matching a regular expression\nviolationSuppressXPath | | Suppress violations on nodes which match a given relative XPath expression.\n"},"categories":["Style"],"location":{"path":"/home/pmd/source/pmd-core/src/main/java/net/sourceforge/pmd/benchmark/Benchmarker.java","lines":{"begin":58,"end":62}},"severity":"normal","remediation_points":50000}
+{"type":"issue","check_name":"GuardLogStatement","description":"Logger calls should be surrounded by log level guards.","content":{"body":"## GuardLogStatement\n\nSince: PMD 5.1.0\n\nPriority: Medium High\n\n[Categories](https://github.com/codeclimate/platform/blob/master/spec/analyzers/SPEC.md#categories): Style\n\n[Remediation Points](https://github.com/codeclimate/platform/blob/master/spec/analyzers/SPEC.md#remediation-points): 50000\n\nWhenever using a log level, one should check if the loglevel is actually enabled, or otherwise skip the associate String creation and manipulation.\n\n### Example:\n\n```java\n\n\n // Add this for performance\n if (log.isDebugEnabled() { ...\n log.debug('log something' + ' and ' + 'concat strings');\n\n \n``` \n\n### [PMD properties](https://pmd.github.io/pmd-6.22.0/pmd_userdocs_configuring_rules.html#rule-properties)\n\nName | Value | Description\n--- | --- | ---\nviolationSuppressRegex | | Suppress violations with messages matching a regular expression\nviolationSuppressXPath | | Suppress violations on nodes which match a given relative XPath expression.\nlogLevels | trace,debug,info,warn,error,log,finest,finer,fine,info,warning,severe | LogLevels to guard\nguardsMethods | isTraceEnabled,isDebugEnabled,isInfoEnabled,isWarnEnabled,isErrorEnabled,isLoggable | Method use to guard the log statement\n"},"categories":["Style"],"location":{"path":"/home/pmd/source/pmd-core/src/main/java/net/sourceforge/pmd/RuleContext.java","lines":{"begin":124,"end":125}},"severity":"normal","remediation_points":50000}
+{"type":"issue","check_name":"ForLoopCanBeForeach","description":"This for loop can be replaced by a foreach loop","content":{"body":"## ForLoopCanBeForeach\n\nSince: PMD 6.0.0\n\nPriority: Medium\n\n[Categories](https://github.com/codeclimate/platform/blob/master/spec/analyzers/SPEC.md#categories): Style\n\n[Remediation Points](https://github.com/codeclimate/platform/blob/master/spec/analyzers/SPEC.md#remediation-points): 50000\n\nReports loops that can be safely replaced with the foreach syntax. The rule considers loops over lists, arrays and iterators. A loop is safe to replace if it only uses the index variable to access an element of the list or array, only has one update statement, and loops through *every* element of the list or array left to right.\n\n### Example:\n\n```java\n\n\npublic class MyClass {\n void loop(List<String> l) {\n for (int i = 0; i < l.size(); i++) { // pre Java 1.5\n System.out.println(l.get(i));\n }\n\n for (String s : l) { // post Java 1.5\n System.out.println(s);\n }\n }\n}\n\n \n``` \n\n### [PMD properties](https://pmd.github.io/pmd-6.22.0/pmd_userdocs_configuring_rules.html#rule-properties)\n\nName | Value | Description\n--- | --- | ---\nviolationSuppressRegex | | Suppress violations with messages matching a regular expression\nviolationSuppressXPath | | Suppress violations on nodes which match a given relative XPath expression.\n"},"categories":["Style"],"location":{"path":"/home/pmd/source/pmd-core/src/main/java/net/sourceforge/pmd/benchmark/Benchmarker.java","lines":{"begin":58,"end":62}},"severity":"normal","remediation_points":50000}
csv
@@ -1479,8 +1479,11 @@ columns, use these CLI parameters additionally:
HTML format.
-This renderer provides two properties. If these are provided, then a link to the source where the violations
-have been found is rendered. The following example has been created with -property linkPrefix=https://github.com/pmd/pmd/blob/master/ -property linePrefix=L -shortnames -d pmd
.
+This renderer provides two properties to render a link to the source where the violations
+have been found. The following example has been created with -property linkPrefix=https://github.com/pmd/pmd/blob/master/ -property linePrefix=L -shortnames -d pmd
.
+If “linkPrefix” is not set, then “linePrefix” has no effect anyway: just the filename will
+be rendered, with no html link. Otherwise if “linePrefix” is not set, then the link will
+not contain a line number.
When using Maven JXR Plugin to generate a html view
of the project’s sources, then the property “htmlExtension” needs to be set to “true”. This will then replace the
@@ -1532,6 +1535,21 @@ This for loop can be replaced by a foreach loop
- fileName:
+json
+
+JSON format.
+
+This prints a single JSON object containing some header information,
+and then the violations grouped by file. The root object fields are
+
+ formatVersion
: an integer which will be incremented if we change the serialization format
+ pmdVersion
: the version of PMD that produced the report
+ timestamp
: explicit
+ files
: an array of objects (see the example)
+
+
+
+
summaryhtml
Summary HTML format.
@@ -1773,7 +1791,7 @@ The output directory must exist. If not specified, the html files are created in
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_userdocs_suppressing_warnings.html b/pmd_userdocs_suppressing_warnings.html
index 062d03871a..fcfb2e5f67 100644
--- a/pmd_userdocs_suppressing_warnings.html
+++ b/pmd_userdocs_suppressing_warnings.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1641,7 +1641,7 @@ violations you wish to suppress. XPath queries are explained in
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_userdocs_tools.html b/pmd_userdocs_tools.html
index 59fd9bd3e3..518a38645c 100644
--- a/pmd_userdocs_tools.html
+++ b/pmd_userdocs_tools.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1881,7 +1881,7 @@ the (blank Command Results) document, and then confirming that, “yes, I do rea
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_userdocs_tools_ant.html b/pmd_userdocs_tools_ant.html
index cc300f2f6c..339bf6c8aa 100644
--- a/pmd_userdocs_tools_ant.html
+++ b/pmd_userdocs_tools_ant.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1419,12 +1419,12 @@ Then you can either copy all “*.jar” files from PMD’s lib folder into one
(ANT_HOME/lib
, ${user.home}/.ant/lib
) or using the -lib
command line parameter.
However, the preferred way is to define a <classpath>
for pmd itself and use this classpath when
-adding the PMD Task. Assuming, you have extracted the PMD zip file to /home/joe/pmd-bin-6.23.0
,
+adding the PMD Task. Assuming, you have extracted the PMD zip file to /home/joe/pmd-bin-6.23.0-SNAPSHOT
,
then you can make use of the PMD Task like this:
<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask">
<classpath>
- <fileset dir="/home/joe/pmd-bin-6.23.0/lib">
+ <fileset dir="/home/joe/pmd-bin-6.23.0-SNAPSHOT/lib">
<include name="*.jar"/>
</fileset>
</classpath>
@@ -1434,7 +1434,7 @@ then you can make use of the PMD Task like this:
Alternatively, a path can be defined and used via classpathref
:
<path id="pmd.classpath">
- <fileset dir="/home/joe/pmd-bin-6.23.0/lib">
+ <fileset dir="/home/joe/pmd-bin-6.23.0-SNAPSHOT/lib">
<include name="*.jar"/>
</fileset>
</path>
@@ -1690,7 +1690,7 @@ make sure you use the XML formatter in the PMD task invocation, i.e.:
need to be configured when defining the task:
<path id="pmd.classpath">
- <fileset dir="/home/joe/pmd-bin-6.23.0/lib">
+ <fileset dir="/home/joe/pmd-bin-6.23.0-SNAPSHOT/lib">
<include name="*.jar"/>
</fileset>
<!-- the custom renderer is expected to be in /home/joe/pmd-addons/com/company/MyRenderer.class -->
@@ -1721,7 +1721,7 @@ Your project needs to be compiled first which happens in the target “compile
<pathelement location="lib/xyz.jar"/>
</path>
<path id="pmd.classpath">
- <fileset dir="/home/joe/pmd-bin-6.23.0/lib">
+ <fileset dir="/home/joe/pmd-bin-6.23.0-SNAPSHOT/lib">
<include name="*.jar"/>
</fileset>
</path>
@@ -1860,7 +1860,7 @@ To prevent this from happening, increase the maximum memory usable by ant using
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_userdocs_tools_ci.html b/pmd_userdocs_tools_ci.html
index 5735d54636..c13b5827bd 100644
--- a/pmd_userdocs_tools_ci.html
+++ b/pmd_userdocs_tools_ci.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1447,7 +1447,7 @@ result of the PMD maven plugin.
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_userdocs_tools_gradle.html b/pmd_userdocs_tools_gradle.html
index af3da6f87e..65657a770e 100644
--- a/pmd_userdocs_tools_gradle.html
+++ b/pmd_userdocs_tools_gradle.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1490,7 +1490,7 @@ with the property toolVersion
:
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_userdocs_tools_java_api.html b/pmd_userdocs_tools_java_api.html
index c141258d4a..24dee2e5e7 100644
--- a/pmd_userdocs_tools_java_api.html
+++ b/pmd_userdocs_tools_java_api.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1706,7 +1706,7 @@ Then you can check the rendered output.
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/pmd_userdocs_tools_maven.html b/pmd_userdocs_tools_maven.html
index be49a116b6..99115732d7 100644
--- a/pmd_userdocs_tools_maven.html
+++ b/pmd_userdocs_tools_maven.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1705,7 +1705,7 @@ the previous paragraph. Add the following property to your project now:
©2020 PMD Open Source Project. All rights reserved.
-Page last updated: March 2020
Site last generated: Apr 20, 2020
+Page last updated: March 2020
Site last generated: Apr 23, 2020

diff --git a/report-examples/pmd-report-json.json b/report-examples/pmd-report-json.json
new file mode 100644
index 0000000000..fe1f3ce473
--- /dev/null
+++ b/report-examples/pmd-report-json.json
@@ -0,0 +1,39 @@
+{
+ "formatVersion": 0,
+ "pmdVersion": "6.23.0-SNAPSHOT",
+ "timestamp": "2020-04-05T20:13:49.698+02:00",
+ "files": [
+ {
+ "filename": "/home/me/pmd/src/main/java/net/sourceforge/pmd/PMDVersion.java",
+ "violations": [
+ {
+ "beginline": 16,
+ "begincolumn": 14,
+ "endline": 79,
+ "endcolumn": 1,
+ "description": "The utility class name \u0027PMDVersion\u0027 doesn\u0027t match \u0027[A-Z][a-zA-Z0-9]+(Utils?|Helper)\u0027",
+ "rule": "ClassNamingConventions",
+ "ruleset": "Code Style",
+ "priority": 1,
+ "externalInfoUrl": "https://pmd.github.io/pmd/pmd_rules_java_codestyle.html#classnamingconventions"
+ }
+ ]
+ },
+ {
+ "filename": "/home/me/pmd/src/main/java/net/sourceforge/pmd/RuleContext.java",
+ "violations": [
+ {
+ "beginline": 124,
+ "begincolumn": 9,
+ "endline": 125,
+ "endcolumn": 111,
+ "description": "Logger calls should be surrounded by log level guards.",
+ "rule": "GuardLogStatement",
+ "ruleset": "Best Practices",
+ "priority": 2,
+ "externalInfoUrl": "https://pmd.github.io/pmd/pmd_rules_java_bestpractices.html#guardlogstatement"
+ }
+ ]
+ }
+ ]
+}
diff --git a/tag_devdocs.html b/tag_devdocs.html
index a072e0ed37..9a90d612e3 100644
--- a/tag_devdocs.html
+++ b/tag_devdocs.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1937,7 +1937,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/tag_extending.html b/tag_extending.html
index cd1b72794e..86a49b9484 100644
--- a/tag_extending.html
+++ b/tag_extending.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1961,7 +1961,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/tag_getting_started.html b/tag_getting_started.html
index 3d3f53528e..c5943f829f 100644
--- a/tag_getting_started.html
+++ b/tag_getting_started.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1895,7 +1895,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/tag_languages.html b/tag_languages.html
index 9fd5f97932..289493502c 100644
--- a/tag_languages.html
+++ b/tag_languages.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1871,7 +1871,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/tag_metrics.html b/tag_metrics.html
index acde6fb473..402c825401 100644
--- a/tag_metrics.html
+++ b/tag_metrics.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1895,7 +1895,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/tag_release_notes.html b/tag_release_notes.html
index d6454b0269..0f4d67a9df 100644
--- a/tag_release_notes.html
+++ b/tag_release_notes.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1871,7 +1871,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/tag_rule_references.html b/tag_rule_references.html
index 2a76e650a3..6c56f0b308 100644
--- a/tag_rule_references.html
+++ b/tag_rule_references.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1943,7 +1943,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/tag_tools.html b/tag_tools.html
index 982f50d225..68e5703d5e 100644
--- a/tag_tools.html
+++ b/tag_tools.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1907,7 +1907,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/tag_troubleshooting.html b/tag_troubleshooting.html
index 76b43e287b..49d696a354 100644
--- a/tag_troubleshooting.html
+++ b/tag_troubleshooting.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1871,7 +1871,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/tag_userdocs.html b/tag_userdocs.html
index 619449a05b..19c0b791db 100644
--- a/tag_userdocs.html
+++ b/tag_userdocs.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -2027,7 +2027,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/titlepage/index.html b/titlepage/index.html
index 7f994a4e71..605afaf9f7 100644
--- a/titlepage/index.html
+++ b/titlepage/index.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1406,7 +1406,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
- Last generated: April 20, 2020
+ Last generated: April 23, 2020
@@ -1436,7 +1436,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020

diff --git a/tocpage/index.html b/tocpage/index.html
index 835a3ca9b8..2a96941aab 100644
--- a/tocpage/index.html
+++ b/tocpage/index.html
@@ -173,7 +173,7 @@
- - PMD 6.23.0
+ - PMD 6.23.0-SNAPSHOT
@@ -1436,7 +1436,7 @@ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3
©2020 PMD Open Source Project. All rights reserved.
- Site last generated: Apr 20, 2020
+ Site last generated: Apr 23, 2020
