diff --git a/404.html b/404.html index 9d871579a7..8cf3abdda0 100644 --- a/404.html +++ b/404.html @@ -174,8 +174,8 @@
[tom@hal building]$ ls -l
total 5716
--rw-rw-r-- 1 tom tom 5837216 Jul 17 13:09 pmd-src-6.54.0.zip
-[tom@hal building]$ unzip -q pmd-src-6.54.0.zip
+-rw-rw-r-- 1 tom tom 5837216 Jul 17 13:09 pmd-src-6.55.0-SNAPSHOT.zip
+[tom@hal building]$ unzip -q pmd-src-6.55.0-SNAPSHOT.zip
[tom@hal building]$
Now cd down into the pmd
directory:
[tom@hal building]$ cd pmd-src-6.54.0
-[tom@hal pmd-src-6.54.0]$ ls -l | grep pom.xml
+[tom@hal building]$ cd pmd-src-6.55.0-SNAPSHOT
+[tom@hal pmd-src-6.55.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.54.0]$
+[tom@hal pmd-src-6.55.0-SNAPSHOT]$
That’s the project configuration for maven… let’s compile!
-[tom@hal pmd-src-6.54.0]$ ./mvnw clean verify
+[tom@hal pmd-src-6.55.0-SNAPSHOT]$ ./mvnw clean verify
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
@@ -1669,7 +1669,7 @@ total 5716
[INFO] Finished at: 2015-11-14T17:46:06+01:00
[INFO] Final Memory: 63M/765M
[INFO] ------------------------------------------------------------------------
-[tom@hal pmd-src-6.54.0]$
+[tom@hal pmd-src-6.55.0-SNAPSHOT]$
Now the source and binary distribution zip files can be found in the folder pmd-dist/target
.
diff --git a/pmd_devdocs_development.html b/pmd_devdocs_development.html
index b4f627cc97..868fdb4173 100644
--- a/pmd_devdocs_development.html
+++ b/pmd_devdocs_development.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_devdocs_experimental_ast_dump.html b/pmd_devdocs_experimental_ast_dump.html
index 89729127b6..cdbac0b965 100644
--- a/pmd_devdocs_experimental_ast_dump.html
+++ b/pmd_devdocs_experimental_ast_dump.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_devdocs_how_pmd_works.html b/pmd_devdocs_how_pmd_works.html
index 8c96472832..3f78ff1e41 100644
--- a/pmd_devdocs_how_pmd_works.html
+++ b/pmd_devdocs_how_pmd_works.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_devdocs_major_adding_new_cpd_language.html b/pmd_devdocs_major_adding_new_cpd_language.html
index 7348074f74..5b20246e0a 100644
--- a/pmd_devdocs_major_adding_new_cpd_language.html
+++ b/pmd_devdocs_major_adding_new_cpd_language.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_devdocs_major_adding_new_language.html b/pmd_devdocs_major_adding_new_language.html
index 2c69a429ad..7a5ad23aa0 100644
--- a/pmd_devdocs_major_adding_new_language.html
+++ b/pmd_devdocs_major_adding_new_language.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_devdocs_major_adding_new_metrics_framework.html b/pmd_devdocs_major_adding_new_metrics_framework.html
index 8ace129c8a..d9205cbeca 100644
--- a/pmd_devdocs_major_adding_new_metrics_framework.html
+++ b/pmd_devdocs_major_adding_new_metrics_framework.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
@@ -1603,7 +1603,7 @@
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,
@@ -1616,8 +1616,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
diff --git a/pmd_devdocs_major_rule_guidelines.html b/pmd_devdocs_major_rule_guidelines.html
index 9746c7b954..d024c02b98 100644
--- a/pmd_devdocs_major_rule_guidelines.html
+++ b/pmd_devdocs_major_rule_guidelines.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_devdocs_pmdtester.html b/pmd_devdocs_pmdtester.html
index 9b8199f79a..800e023ecb 100644
--- a/pmd_devdocs_pmdtester.html
+++ b/pmd_devdocs_pmdtester.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_devdocs_roadmap.html b/pmd_devdocs_roadmap.html
index 78a11917d4..3e7ed2f9f8 100644
--- a/pmd_devdocs_roadmap.html
+++ b/pmd_devdocs_roadmap.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_devdocs_rule_deprecation_policy.html b/pmd_devdocs_rule_deprecation_policy.html
index 9505b97a39..80ff103d5a 100644
--- a/pmd_devdocs_rule_deprecation_policy.html
+++ b/pmd_devdocs_rule_deprecation_policy.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_devdocs_writing_documentation.html b/pmd_devdocs_writing_documentation.html
index 6cef8ddc06..99bc3cd2a1 100644
--- a/pmd_devdocs_writing_documentation.html
+++ b/pmd_devdocs_writing_documentation.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
@@ -1672,47 +1672,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
diff --git a/pmd_java_metrics_index.html b/pmd_java_metrics_index.html
index 0251df584e..d726fa43f6 100644
--- a/pmd_java_metrics_index.html
+++ b/pmd_java_metrics_index.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_languages_gherkin.html b/pmd_languages_gherkin.html
index 7fc6eda01f..d0365ccf63 100644
--- a/pmd_languages_gherkin.html
+++ b/pmd_languages_gherkin.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_languages_html.html b/pmd_languages_html.html
index aa607f9182..4e9a70718a 100644
--- a/pmd_languages_html.html
+++ b/pmd_languages_html.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_languages_java.html b/pmd_languages_java.html
index e1c89d6f13..d51f375b5b 100644
--- a/pmd_languages_java.html
+++ b/pmd_languages_java.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_languages_jsp.html b/pmd_languages_jsp.html
index 2006e0830e..1c9389debd 100644
--- a/pmd_languages_jsp.html
+++ b/pmd_languages_jsp.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_languages_plsql.html b/pmd_languages_plsql.html
index 144b302d67..54429fe04e 100644
--- a/pmd_languages_plsql.html
+++ b/pmd_languages_plsql.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_languages_visualforce.html b/pmd_languages_visualforce.html
index 25a04c642e..e4b8b44711 100644
--- a/pmd_languages_visualforce.html
+++ b/pmd_languages_visualforce.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_languages_xml.html b/pmd_languages_xml.html
index b9d78cad4d..dc88b9256d 100644
--- a/pmd_languages_xml.html
+++ b/pmd_languages_xml.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
@@ -1651,9 +1651,9 @@ for more examples.
XPath rules in XML
-While other languages use XPathRule
to create XPath rules,
+
While other languages use XPathRule
to create XPath rules,
the use of this class is not recommended for XML languages. Instead, since 6.44.0, you
-are advised to use DomXPathRule
. This rule class interprets
+are advised to use DomXPathRule
. This rule class interprets
XPath queries exactly as regular XPath, while XPathRule
works on a wrapper for the
DOM which is inconsistent with the XPath spec. Since DomXPathRule
conforms to the
XPath spec, you can
@@ -1683,7 +1683,7 @@ to help you write XPath queries.
</rule>
The most important change is the class
attribute, which doesn’t point to XPathRule
-but to DomXPathRule
. Please see the Javadoc for DomXPathRule
+but to DomXPathRule
. Please see the Javadoc for DomXPathRule
for more info about the differences with XPathRule
.
diff --git a/pmd_next_major_development.html b/pmd_next_major_development.html
index 8f8c8b74cd..8616e5bdc5 100644
--- a/pmd_next_major_development.html
+++ b/pmd_next_major_development.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
@@ -1734,37 +1734,37 @@ The old flag --short-namesFor removal
- ApexRootNode#getApexVersion
has been deprecated for removal. The version returned is
+ ApexRootNode#getApexVersion
has been deprecated for removal. The version returned is
always Version.CURRENT
, as the apex compiler integration doesn’t use additional information which Apex version
actually is used. Therefore, this method can’t be used to determine the Apex version of the project
that is being analyzed.
- CPDConfiguration#setEncoding
and
-CPDConfiguration#getEncoding
. Use the methods
-getSourceEncoding
and
-setSourceEncoding
instead. Both are available
+ CPDConfiguration#setEncoding
and
+CPDConfiguration#getEncoding
. Use the methods
+getSourceEncoding
and
+setSourceEncoding
instead. Both are available
for CPDConfiguration
which extends AbstractConfiguration
.
- BaseCLITest
and BaseCPDCLITest
have been deprecated for removal without
+ BaseCLITest
and BaseCPDCLITest
have been deprecated for removal without
replacement. CLI tests should be done in pmd-core only (and in PMD7 in pmd-cli). Individual language modules
shouldn’t need to test the CLI integration logic again. Instead, the individual language modules should test their
functionality as unit tests.
-
-
+
-
-
FileCollector#addZipFile
has been deprecated. It is replaced
-by FileCollector#addZipFileWithContent
which directly adds the
+
FileCollector#addZipFile
has been deprecated. It is replaced
+by FileCollector#addZipFileWithContent
which directly adds the
content of the zip file for analysis.
- PMDConfiguration#setReportShortNames
and
-PMDConfiguration#isReportShortNames
have been deprecated for removal.
-Use PMDConfiguration#addRelativizeRoot
instead.
+ PMDConfiguration#setReportShortNames
and
+PMDConfiguration#isReportShortNames
have been deprecated for removal.
+Use PMDConfiguration#addRelativizeRoot
instead.
Internal APIs
- CSVWriter
- - Some fields in
AbstractAntTestHelper
+ CSVWriter
+ - Some fields in
AbstractAntTestHelper
Experimental APIs
@@ -1772,7 +1772,7 @@ Use filterMatches
creates a new CPD report
+ filterMatches
creates a new CPD report
with some matches removed with a given predicate based filter.
@@ -1787,7 +1787,7 @@ with some matches removed with a given predicate based filter.
These classes / APIs have been deprecated and will be removed with PMD 7.0.0.
- ExcessiveLengthRule
(Java)
+ ExcessiveLengthRule
(Java)
6.52.0
@@ -1835,25 +1835,25 @@ PMD 7 will remove support for
- The following core APIs have been marked as deprecated for removal in PMD 7:
- PMD
and PMD.StatusCode
- PMD 7 will ship with a revamped CLI split from pmd-core. To programmatically launch analysis you can use PmdAnalysis
.
- PMDConfiguration#getAllInputPaths
- It is now superseded by PMDConfiguration#getInputPathList
- PMDConfiguration#setInputPaths
- It is now superseded by PMDConfiguration#setInputPathList
- PMDConfiguration#addInputPath
- It is now superseded by PMDConfiguration#addInputPath
- PMDConfiguration#getInputFilePath
- It is now superseded by PMDConfiguration#getInputFile
- PMDConfiguration#getIgnoreFilePath
- It is now superseded by PMDConfiguration#getIgnoreFile
- PMDConfiguration#setInputFilePath
- It is now superseded by PMDConfiguration#setInputFilePath
- PMDConfiguration#setIgnoreFilePath
- It is now superseded by PMDConfiguration#setIgnoreFilePath
- PMDConfiguration#getInputUri
- It is now superseded by PMDConfiguration#getUri
- PMDConfiguration#setInputUri
- It is now superseded by PMDConfiguration#setInputUri
- PMDConfiguration#getReportFile
- It is now superseded by PMDConfiguration#getReportFilePath
- PMDConfiguration#setReportFile
- It is now superseded by PMDConfiguration#setReportFile
- PMDConfiguration#isStressTest
and PMDConfiguration#setStressTest
- Will be removed with no replacement.
- PMDConfiguration#isBenchmark
and PMDConfiguration#setBenchmark
- Will be removed with no replacement, the CLI will still support it.
- CPD
and CPD.StatusCode
- PMD 7 will ship with a revamped CLI split from pmd-core. An alterative to programatically launch CPD analysis will be added in due time.
+ PMD
and PMD.StatusCode
- PMD 7 will ship with a revamped CLI split from pmd-core. To programmatically launch analysis you can use PmdAnalysis
.
+ PMDConfiguration#getAllInputPaths
- It is now superseded by PMDConfiguration#getInputPathList
+ PMDConfiguration#setInputPaths
- It is now superseded by PMDConfiguration#setInputPathList
+ PMDConfiguration#addInputPath
- It is now superseded by PMDConfiguration#addInputPath
+ PMDConfiguration#getInputFilePath
- It is now superseded by PMDConfiguration#getInputFile
+ PMDConfiguration#getIgnoreFilePath
- It is now superseded by PMDConfiguration#getIgnoreFile
+ PMDConfiguration#setInputFilePath
- It is now superseded by PMDConfiguration#setInputFilePath
+ PMDConfiguration#setIgnoreFilePath
- It is now superseded by PMDConfiguration#setIgnoreFilePath
+ PMDConfiguration#getInputUri
- It is now superseded by PMDConfiguration#getUri
+ PMDConfiguration#setInputUri
- It is now superseded by PMDConfiguration#setInputUri
+ PMDConfiguration#getReportFile
- It is now superseded by PMDConfiguration#getReportFilePath
+ PMDConfiguration#setReportFile
- It is now superseded by PMDConfiguration#setReportFile
+ PMDConfiguration#isStressTest
and PMDConfiguration#setStressTest
- Will be removed with no replacement.
+ PMDConfiguration#isBenchmark
and PMDConfiguration#setBenchmark
- Will be removed with no replacement, the CLI will still support it.
+ CPD
and CPD.StatusCode
- PMD 7 will ship with a revamped CLI split from pmd-core. An alterative to programatically launch CPD analysis will be added in due time.
- - In order to reduce the dependency on Apex Jorje classes, the method
DataType#fromBasicType
-has been deprecated. The equivalent method fromTypeName
should be used instead.
+ - In order to reduce the dependency on Apex Jorje classes, the method
DataType#fromBasicType
+has been deprecated. The equivalent method fromTypeName
should be used instead.
6.51.0
@@ -1877,15 +1877,15 @@ has been deprecated. The equivalent method ASTAssignmentExpression#getOperator
- ASTBinaryExpression#getOperator
- ASTBooleanExpression#getOperator
- ASTPostfixExpression#getOperator
- ASTPrefixExpression#getOperator
+ ASTAssignmentExpression#getOperator
+ ASTBinaryExpression#getOperator
+ ASTBooleanExpression#getOperator
+ ASTPostfixExpression#getOperator
+ ASTPrefixExpression#getOperator
All these classes have now a new getOp()
method. Existing code should be refactored to use this method instead.
-It returns the new enums, like AssignmentOperator
, and avoids
+It returns the new enums, like AssignmentOperator
, and avoids
the dependency to Jorje.
@@ -1922,13 +1922,13 @@ They will not be replaced.
Deprecated API
- - The experimental Java AST class
ASTGuardedPattern
has been deprecated and
+ - The experimental Java AST class
ASTGuardedPattern
has been deprecated and
will be removed. It was introduced for Java 17 and Java 18 Preview as part of pattern matching for switch,
but it is no longer supported with Java 19 Preview.
- - The interface
CPDRenderer
is deprecated. For custom CPD renderers
-the new interface CPDReportRenderer
should be used.
- - The class
TestDescriptor
is deprecated, replaced with RuleTestDescriptor
.
- - Many methods of
RuleTst
have been deprecated as internal API.
+ - The interface
CPDRenderer
is deprecated. For custom CPD renderers
+the new interface CPDReportRenderer
should be used.
+ - The class
TestDescriptor
is deprecated, replaced with RuleTestDescriptor
.
+ - Many methods of
RuleTst
have been deprecated as internal API.
Experimental APIs
@@ -1937,9 +1937,9 @@ the new interface ASTSwitchGuard
- ASTRecordPattern
- ASTComponentPatternList
+ ASTSwitchGuard
+ ASTRecordPattern
+ ASTComponentPatternList
@@ -1950,13 +1950,13 @@ AST nodes have been introduced as experimental:
You can identify them with the @InternalApi
annotation. You’ll also get a deprecation warning.
- CPDConfiguration#setRenderer
- CPDConfiguration#setCPDRenderer
- CPDConfiguration#getRenderer
- CPDConfiguration#getCPDRenderer
- CPDConfiguration#getRendererFromString
- CPDConfiguration#getCPDRendererFromString
- CPDRendererAdapter
+ CPDConfiguration#setRenderer
+ CPDConfiguration#setCPDRenderer
+ CPDConfiguration#getRenderer
+ CPDConfiguration#getCPDRenderer
+ CPDConfiguration#getRendererFromString
+ CPDConfiguration#getCPDRendererFromString
+ CPDRendererAdapter
6.47.0
@@ -1979,11 +1979,11 @@ when used on the CLI or in a ruleset XML file:
Deprecated API
- toString
is now deprecated. The format of this
+ toString
is now deprecated. The format of this
method will remain the same until PMD 7. The deprecation is intended to steer users
away from relying on this format, as it may be changed in PMD 7.
- getInputPaths
and
-setInputPaths
are now deprecated.
+ getInputPaths
and
+setInputPaths
are now deprecated.
A new set of methods have been added, which use lists and do not rely on comma splitting.
@@ -1993,13 +1993,13 @@ A new set of methods have been added, which use lists and do not rely on comma s
You can identify them with the @InternalApi
annotation. You’ll also get a deprecation warning.
- CPDCommandLineInterface
has been internalized. In order to execute CPD either
-CPD#run
or CPD#main
+ CPDCommandLineInterface
has been internalized. In order to execute CPD either
+CPD#run
or CPD#main
should be used.
- - Several members of
BaseCPDCLITest
have been deprecated with replacements.
- - The methods
Formatter#start
,
-Formatter#end
, Formatter#getRenderer
,
-and Formatter#isNoOutputSupplied
have been internalized.
+ - Several members of
BaseCPDCLITest
have been deprecated with replacements.
+ - The methods
Formatter#start
,
+Formatter#end
, Formatter#getRenderer
,
+and Formatter#isNoOutputSupplied
have been internalized.
6.45.0
@@ -2009,12 +2009,12 @@ and Report#filterViolations
creates a new report with
+ Report#filterViolations
creates a new report with
some violations removed with a given predicate based filter.
- Report#union
can combine two reports into a single new Report.
+ Report#union
can combine two reports into a single new Report.
- net.sourceforge.pmd.util.Predicate
will be replaced in PMD7 with the standard Predicate interface from java8.
+ net.sourceforge.pmd.util.Predicate
will be replaced in PMD7 with the standard Predicate interface from java8.
- The module
pmd-html
is entirely experimental right now. Anything in the package
net.sourceforge.pmd.lang.html
should be used cautiously.
@@ -2024,29 +2024,29 @@ some violations removed with a given predicate based filter.
Deprecated API
- - Several members of
PMD
have been newly deprecated, including:
+ - Several members of
PMD
have been newly deprecated, including:
PMD#EOL
: use System#lineSeparator()
- PMD#SUPPRESS_MARKER
: use DEFAULT_SUPPRESS_MARKER
+ PMD#SUPPRESS_MARKER
: use DEFAULT_SUPPRESS_MARKER
PMD#processFiles
: use the new programmatic API
PMD#getApplicableFiles
: is internal
- PMDConfiguration#prependClasspath
is deprecated
-in favour of prependAuxClasspath
.
- PMDConfiguration#setRuleSets
and
-getRuleSets
are deprecated. Use instead
-setRuleSets
,
-addRuleSet
,
-and getRuleSetPaths
.
- - Several members of
BaseCLITest
have been deprecated with replacements.
+ PMDConfiguration#prependClasspath
is deprecated
+in favour of prependAuxClasspath
.
+ PMDConfiguration#setRuleSets
and
+getRuleSets
are deprecated. Use instead
+setRuleSets
,
+addRuleSet
,
+and getRuleSetPaths
.
+ - Several members of
BaseCLITest
have been deprecated with replacements.
-
-
Several members of PMDCommandLineInterface
have been explicitly deprecated.
+
Several members of PMDCommandLineInterface
have been explicitly deprecated.
The whole class however was deprecated long ago already with 6.30.0. It is internal API and should
not be used.
- - In modelica, the rule classes
AmbiguousResolutionRule
-and ConnectUsingNonConnector
have been deprecated,
+ - In modelica, the rule classes
AmbiguousResolutionRule
+and ConnectUsingNonConnector
have been deprecated,
since they didn’t comply to the usual rule class naming conventions yet.
The replacements are in the subpackage bestpractices
.
@@ -2056,12 +2056,12 @@ The replacements are in the subpackage TextFile
has been added as experimental. It intends
-to replace DataSource
and SourceCode
in the long term.
+TextFile
has been added as experimental. It intends
+to replace DataSource
and SourceCode
in the long term.
This interface will change in PMD 7 to support read/write operations
-and other things. You don’t need to use it in PMD 6, as FileCollector
-decouples you from this. A file collector is available through PmdAnalysis#files
.
+and other things. You don’t need to use it in PMD 6, as FileCollector
+decouples you from this. A file collector is available through PmdAnalysis#files
.
@@ -2071,12 +2071,12 @@ decouples you from this. A file collector is available through Report
: the constructor and other construction methods like addViolation or createReport
- RuleContext
: all constructors, getters and setters. A new set
+ Report
: the constructor and other construction methods like addViolation or createReport
+ RuleContext
: all constructors, getters and setters. A new set
of stable methods, matching those in PMD 7, was added to replace the addViolation
-overloads of AbstractRule
. In PMD 7, RuleContext
will
+overloads of AbstractRule
. In PMD 7, RuleContext
will
be the API to report violations, and it can already be used as such in PMD 6.
- - The field
configuration
is unused and will be removed.
+ - The field
configuration
is unused and will be removed.
Internal API
@@ -2085,8 +2085,8 @@ be the API to report violations, and it can already be used as such in PMD 6.@InternalApi
annotation. You’ll also get a deprecation warning.
- RuleSet
: methods that serve to apply rules, including apply
, start
, end
, removeDysfunctionalRules
- AbstractAccumulatingRenderer#renderFileReport
is internal API
+ RuleSet
: methods that serve to apply rules, including apply
, start
, end
, removeDysfunctionalRules
+ AbstractAccumulatingRenderer#renderFileReport
is internal API
and should not be overridden in own renderers.
@@ -2102,8 +2102,8 @@ and should not be overridden in own renderers.
Note that the message is set from the XML rule declaration, so this is only relevant
if you instantiate rules manually.
-RuleContext
now requires setting the current rule before calling
-apply
. This is
+
RuleContext
now requires setting the current rule before calling
+apply
. This is
done automatically by RuleSet#apply
and such. Creating and configuring a
RuleContext
manually is strongly advised against, as the lifecycle of RuleContext
will change drastically in PMD 7.
@@ -2271,9 +2271,9 @@ compared to other cli tools.
Experimental APIs
- - The interface
ASTCommentContainer
has been added to the Apex AST.
+ - The interface
ASTCommentContainer
has been added to the Apex AST.
It provides a way to check whether a node contains at least one comment. Currently this is only implemented for
-ASTCatchBlockStatement
and used by the rule
+ASTCatchBlockStatement
and used by the rule
EmptyCatchBlock
.
This information is also available via XPath attribute @ContainsComment
.
@@ -2307,10 +2307,10 @@ See also the examples on ASTClassOrInterfaceDeclaration#isSealed
,
-ASTClassOrInterfaceDeclaration#isNonSealed
,
-ASTClassOrInterfaceDeclaration#getPermittedSubclasses
- ASTPermitsList
+ ASTClassOrInterfaceDeclaration#isSealed
,
+ASTClassOrInterfaceDeclaration#isNonSealed
,
+ASTClassOrInterfaceDeclaration#getPermittedSubclasses
+ ASTPermitsList
@@ -2321,7 +2321,7 @@ See also the examples on @InternalApi
annotation. You’ll also get a deprecation warning.
- - The inner class
net.sourceforge.pmd.cpd.TokenEntry.State
is considered to be internal API.
+ - The inner class
net.sourceforge.pmd.cpd.TokenEntry.State
is considered to be internal API.
It will probably be moved away with PMD 7.
@@ -2334,13 +2334,13 @@ It will probably be moved away with PMD 7.
Deprecated API
- PMD#doPMD
is deprecated.
-Use PMD#runPMD
instead.
- PMD#run
is deprecated.
-Use PMD#runPMD
instead.
- ThreadSafeReportListener
and the methods to use them in Report
-(addListener
,
-getListeners
, addListeners
)
+ PMD#doPMD
is deprecated.
+Use PMD#runPMD
instead.
+ PMD#run
is deprecated.
+Use PMD#runPMD
instead.
+ ThreadSafeReportListener
and the methods to use them in Report
+(addListener
,
+getListeners
, addListeners
)
are deprecated. This functionality will be replaced by another TBD mechanism in PMD 7.
@@ -2357,20 +2357,20 @@ are deprecated. This functionality will be replaced by another TBD mechanism in
Experimental APIs
- - The experimental class
ASTTypeTestPattern
has been renamed to ASTTypePattern
+ - The experimental class
ASTTypeTestPattern
has been renamed to ASTTypePattern
in order to align the naming to the JLS.
- - The experimental class
ASTRecordConstructorDeclaration
has been renamed to ASTCompactConstructorDeclaration
+ - The experimental class
ASTRecordConstructorDeclaration
has been renamed to ASTCompactConstructorDeclaration
in order to align the naming to the JLS.
- The AST types and APIs around Pattern Matching and Records are not experimental anymore:
- ASTVariableDeclaratorId#isPatternBinding
- ASTPattern
- ASTTypePattern
- ASTRecordDeclaration
- ASTRecordComponentList
- ASTRecordComponent
- ASTRecordBody
- ASTCompactConstructorDeclaration
+ ASTVariableDeclaratorId#isPatternBinding
+ ASTPattern
+ ASTTypePattern
+ ASTRecordDeclaration
+ ASTRecordComponentList
+ ASTRecordComponent
+ ASTRecordBody
+ ASTCompactConstructorDeclaration
@@ -2381,7 +2381,7 @@ in order to align the naming to the JLS.
You can identify them with the @InternalApi
annotation. You’ll also get a deprecation warning.
- - The protected or public member of the Java rule
AvoidUsingHardCodedIPRule
+ - The protected or public member of the Java rule
AvoidUsingHardCodedIPRule
are deprecated and considered to be internal API. They will be removed with PMD 7.
@@ -2390,17 +2390,17 @@ are deprecated and considered to be internal API. They will be removed with PMD
Deprecated API
- AbstractDomXmlRule
- AbstractWsdlRule
- - A few methods of
AbstractXmlRule
+ AbstractDomXmlRule
+ AbstractWsdlRule
+ - A few methods of
AbstractXmlRule
Experimental APIs
- - The method
GenericToken#getKind
has been added as experimental. This
+ - The method
GenericToken#getKind
has been added as experimental. This
unifies the token interface for both JavaCC and Antlr. The already existing method
-AntlrToken#getKind
is therefore experimental as well. The
+AntlrToken#getKind
is therefore experimental as well. The
returned constant depends on the actual language and might change whenever the grammar
of the language is changed.
@@ -2412,30 +2412,30 @@ of the language is changed.
Around RuleSet parsing
- RuleSetFactory
and RulesetsFactoryUtils
have been deprecated in favor of RuleSetLoader
. This is easier to configure, and more maintainable than the multiple overloads of RulesetsFactoryUtils
.
- - Some static creation methods have been added to
RuleSet
for simple cases, eg forSingleRule
. These replace some counterparts in RuleSetFactory
- - Since
RuleSets
is also deprecated, many APIs that require a RuleSets instance now are deprecated, and have a counterpart that expects a List<RuleSet>
.
- RuleSetReferenceId
, RuleSetReference
, RuleSetFactoryCompatibility
are deprecated. They are most likely not relevant outside of the implementation of pmd-core.
+ RuleSetFactory
and RulesetsFactoryUtils
have been deprecated in favor of RuleSetLoader
. This is easier to configure, and more maintainable than the multiple overloads of RulesetsFactoryUtils
.
+ - Some static creation methods have been added to
RuleSet
for simple cases, eg forSingleRule
. These replace some counterparts in RuleSetFactory
+ - Since
RuleSets
is also deprecated, many APIs that require a RuleSets instance now are deprecated, and have a counterpart that expects a List<RuleSet>
.
+ RuleSetReferenceId
, RuleSetReference
, RuleSetFactoryCompatibility
are deprecated. They are most likely not relevant outside of the implementation of pmd-core.
Around the PMD
class
-Many classes around PMD’s entry point (PMD
) have been deprecated as internal, including:
+Many classes around PMD’s entry point (PMD
) have been deprecated as internal, including:
- - The contents of the packages
net.sourceforge.pmd.cli
, net.sourceforge.pmd.processor
- SourceCodeProcessor
- - The constructors of
PMD
(the class will be made a utility class)
+ - The contents of the packages
net.sourceforge.pmd.cli
, net.sourceforge.pmd.processor
+ SourceCodeProcessor
+ - The constructors of
PMD
(the class will be made a utility class)
Miscellaneous
- ASTPackageDeclaration#getPackageNameImage
,
-ASTTypeParameter#getParameterName
+ ASTPackageDeclaration#getPackageNameImage
,
+ASTTypeParameter#getParameterName
and the corresponding XPath attributes. In both cases they’re replaced with a new method getName
,
the attribute is @Name
.
- ASTClassOrInterfaceBody#isAnonymousInnerClass
,
-and ASTClassOrInterfaceBody#isEnumChild
,
+ ASTClassOrInterfaceBody#isAnonymousInnerClass
,
+and ASTClassOrInterfaceBody#isEnumChild
,
refs #905
@@ -2445,13 +2445,13 @@ refs #905
You can identify them with the @InternalApi
annotation. You’ll also get a deprecation warning.
- net.sourceforge.pmd.lang.ecmascript.Ecmascript3Handler
- net.sourceforge.pmd.lang.ecmascript.Ecmascript3Parser
- EcmascriptParser#parserOptions
- EcmascriptParser#getSuppressMap
- net.sourceforge.pmd.lang.rule.ParametricRuleViolation
- ParserOptions#suppressMarker
- net.sourceforge.pmd.lang.modelica.rule.ModelicaRuleViolationFactory
+ net.sourceforge.pmd.lang.ecmascript.Ecmascript3Handler
+ net.sourceforge.pmd.lang.ecmascript.Ecmascript3Parser
+ EcmascriptParser#parserOptions
+ EcmascriptParser#getSuppressMap
+ net.sourceforge.pmd.lang.rule.ParametricRuleViolation
+ ParserOptions#suppressMarker
+ net.sourceforge.pmd.lang.modelica.rule.ModelicaRuleViolationFactory
6.29.0
@@ -2465,23 +2465,23 @@ You can identify them with the For removal
- net.sourceforge.pmd.RuleViolationComparator
. Use RuleViolation#DEFAULT_COMPARATOR
instead.
- net.sourceforge.pmd.cpd.AbstractTokenizer
. Use net.sourceforge.pmd.cpd.AnyTokenizer
instead.
- net.sourceforge.pmd.cpd.FortranTokenizer
. Was replaced by an AnyTokenizer
. Use FortranLanguage#getTokenizer
anyway.
- net.sourceforge.pmd.cpd.PerlTokenizer
. Was replaced by an AnyTokenizer
. Use PerlLanguage#getTokenizer
anyway.
- net.sourceforge.pmd.cpd.RubyTokenizer
. Was replaced by an AnyTokenizer
. Use RubyLanguage#getTokenizer
anyway.
- RuleReference#getOverriddenLanguage
and
-RuleReference#setLanguage
+ net.sourceforge.pmd.RuleViolationComparator
. Use RuleViolation#DEFAULT_COMPARATOR
instead.
+ net.sourceforge.pmd.cpd.AbstractTokenizer
. Use net.sourceforge.pmd.cpd.AnyTokenizer
instead.
+ net.sourceforge.pmd.cpd.FortranTokenizer
. Was replaced by an AnyTokenizer
. Use FortranLanguage#getTokenizer
anyway.
+ net.sourceforge.pmd.cpd.PerlTokenizer
. Was replaced by an AnyTokenizer
. Use PerlLanguage#getTokenizer
anyway.
+ net.sourceforge.pmd.cpd.RubyTokenizer
. Was replaced by an AnyTokenizer
. Use RubyLanguage#getTokenizer
anyway.
+ RuleReference#getOverriddenLanguage
and
+RuleReference#setLanguage
- Antlr4 generated lexers:
- net.sourceforge.pmd.lang.cs.antlr4.CSharpLexer
will be moved to package net.sourceforge.pmd.lang.cs.ast
with PMD 7.
- net.sourceforge.pmd.lang.dart.antlr4.Dart2Lexer
will be renamed to DartLexer
and moved to package
+ net.sourceforge.pmd.lang.cs.antlr4.CSharpLexer
will be moved to package net.sourceforge.pmd.lang.cs.ast
with PMD 7.
+ net.sourceforge.pmd.lang.dart.antlr4.Dart2Lexer
will be renamed to DartLexer
and moved to package
net.sourceforge.pmd.lang.dart.ast
with PMD 7. All other classes in the old package will be removed.
- net.sourceforge.pmd.lang.go.antlr4.GolangLexer
will be moved to package
+ net.sourceforge.pmd.lang.go.antlr4.GolangLexer
will be moved to package
net.sourceforge.pmd.lang.go.ast
with PMD 7. All other classes in the old package will be removed.
- net.sourceforge.pmd.lang.kotlin.antlr4.Kotlin
will be renamed to KotlinLexer
and moved to package
+ net.sourceforge.pmd.lang.kotlin.antlr4.Kotlin
will be renamed to KotlinLexer
and moved to package
net.sourceforge.pmd.lang.kotlin.ast
with PMD 7.
- net.sourceforge.pmd.lang.lua.antlr4.LuaLexer
will be moved to package
+ net.sourceforge.pmd.lang.lua.antlr4.LuaLexer
will be moved to package
net.sourceforge.pmd.lang.lua.ast
with PMD 7. All other classes in the old package will be removed.
@@ -2502,52 +2502,52 @@ reported as a forward compatibility warning.
For removal
- Rule#getParserOptions
- Parser#getParserOptions
- AbstractParser
- RuleContext#removeAttribute
- RuleContext#getAttribute
- RuleContext#setAttribute
- ApexParserOptions
- ASTThrowStatement#getFirstClassOrInterfaceTypeImage
- EcmascriptParserOptions
- EcmascriptXPathRule
- XmlParserOptions
- XmlXPathRule
+ Rule#getParserOptions
+ Parser#getParserOptions
+ AbstractParser
+ RuleContext#removeAttribute
+ RuleContext#getAttribute
+ RuleContext#setAttribute
+ ApexParserOptions
+ ASTThrowStatement#getFirstClassOrInterfaceTypeImage
+ EcmascriptParserOptions
+ EcmascriptXPathRule
+ XmlParserOptions
+ XmlXPathRule
-
-
Properties of AbstractXmlRule
+ Properties of AbstractXmlRule
- net.sourceforge.pmd.Report.ReadableDuration
+ net.sourceforge.pmd.Report.ReadableDuration
-
-
Many methods of net.sourceforge.pmd.Report
. They are replaced by accessors
- that produce a List. For example, iterator()
- (and implementing Iterable) and isEmpty()
are both
- replaced by getViolations()
.
+ Many methods of net.sourceforge.pmd.Report
. They are replaced by accessors
+ that produce a List. For example, iterator()
+ (and implementing Iterable) and isEmpty()
are both
+ replaced by getViolations()
.
- The dataflow codebase is deprecated for removal in PMD 7. This
includes all code in the following packages, and their subpackages:
-
-
+
- ASTJspDeclarations
- ASTJspDocument
- ScalaParserVisitorAdapter#zero
- ScalaParserVisitorAdapter#combine
- ApexParserVisitorReducedAdapter
+ ASTJspDeclarations
+ ASTJspDocument
+ ScalaParserVisitorAdapter#zero
+ ScalaParserVisitorAdapter#combine
+ ApexParserVisitorReducedAdapter
-
-
+
- TypeHelper
is deprecated in
- favor of TypeTestUtil
, which has the
+ TypeHelper
is deprecated in
+ favor of TypeTestUtil
, which has the
same functionality, but a slightly changed API.
- - Many of the classes in
net.sourceforge.pmd.lang.java.symboltable
+ - Many of the classes in
net.sourceforge.pmd.lang.java.symboltable
are deprecated as internal API.
@@ -2558,11 +2558,11 @@ are deprecated as internal API.
For removal
- RuleChainVisitor
and all implementations in language modules
- AbstractRuleChainVisitor
- Language#getRuleChainVisitorClass
- BaseLanguageModule#<init>
- ImportWrapper
+ RuleChainVisitor
and all implementations in language modules
+ AbstractRuleChainVisitor
+ Language#getRuleChainVisitorClass
+ BaseLanguageModule#<init>
+ ImportWrapper
6.25.0
@@ -2590,39 +2590,39 @@ in PMD 7.0.0 and onwards.
You can identify them with the @InternalApi
annotation. You’ll also get a deprecation warning.
- AbstractIgnoredAnnotationRule
(Java)
- AbstractInefficientZeroCheck
(Java)
- AbstractJUnitRule
(Java)
- AbstractJavaMetricsRule
(Java)
- AbstractLombokAwareRule
(Java)
- AbstractPoorMethodCall
(Java)
- AbstractSunSecureRule
(Java)
- AbstractNcssCountRule
(Java)
- AbstractCommentRule
(Java)
- AbstractOptimizationRule
(Java)
- RegexHelper
(Java)
- AbstractApexUnitTestRule
(Apex)
- AbstractNcssCountRule
(Apex)
- AbstractNcssCountRule
(PLSQL)
- ApexParser
- ApexHandler
- RuleChain
- RuleSets
- RulesetsFactoryUtils#getRuleSets
+ AbstractIgnoredAnnotationRule
(Java)
+ AbstractInefficientZeroCheck
(Java)
+ AbstractJUnitRule
(Java)
+ AbstractJavaMetricsRule
(Java)
+ AbstractLombokAwareRule
(Java)
+ AbstractPoorMethodCall
(Java)
+ AbstractSunSecureRule
(Java)
+ AbstractNcssCountRule
(Java)
+ AbstractCommentRule
(Java)
+ AbstractOptimizationRule
(Java)
+ RegexHelper
(Java)
+ AbstractApexUnitTestRule
(Apex)
+ AbstractNcssCountRule
(Apex)
+ AbstractNcssCountRule
(PLSQL)
+ ApexParser
+ ApexHandler
+ RuleChain
+ RuleSets
+ RulesetsFactoryUtils#getRuleSets
For removal
- TokenEntry#TokenEntry
- AbstractTokenizerTest
. Use CpdTextComparisonTest in module pmd-lang-test instead.
+ TokenEntry#TokenEntry
+ AbstractTokenizerTest
. Use CpdTextComparisonTest in module pmd-lang-test instead.
For details see
Testing your implementation
in the developer documentation.
- ASTAnnotation#suppresses
(Apex)
- ApexXPathRule
(Apex)
- SymbolTableTestRule
(Java)
- InefficientStringBufferingRule#isInStringBufferOperation
+ ASTAnnotation#suppresses
(Apex)
+ ApexXPathRule
(Apex)
+ SymbolTableTestRule
(Java)
+ InefficientStringBufferingRule#isInStringBufferOperation
6.24.0
@@ -2630,19 +2630,19 @@ in the developer documentation.
Deprecated APIs
- BaseLanguageModule#addVersion(String, LanguageVersionHandler, boolean)
- - Some members of
TokenMgrError
, in particular, a new constructor is available
+ BaseLanguageModule#addVersion(String, LanguageVersionHandler, boolean)
+ - Some members of
TokenMgrError
, in particular, a new constructor is available
that should be preferred to the old ones
- AntlrTokenManager.ANTLRSyntaxError
+ AntlrTokenManager.ANTLRSyntaxError
Experimental APIs
-Note: Experimental APIs are identified with the annotation Experimental
,
+
Note: Experimental APIs are identified with the annotation Experimental
,
see its javadoc for details
- - The experimental methods in
BaseLanguageModule
have been replaced by a
+ - The experimental methods in
BaseLanguageModule
have been replaced by a
definitive API.
@@ -2656,10 +2656,10 @@ definitive API.
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
@@ -2670,84 +2670,84 @@ 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
- Node#getFirstParentOfAnyType
- Node#getAsDocument
- AbstractNode#hasDescendantOfAnyType
- 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
+ Node#getFirstParentOfAnyType
+ Node#getAsDocument
+ AbstractNode#hasDescendantOfAnyType
+ ASTRecordDeclaration#getComponentList
+ - Multiple fields, constructors and methods in
XPathRule
. See javadoc for details.
6.22.0
@@ -2760,27 +2760,27 @@ implementations, and their corresponding Parser if it exists (in the same packag
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
@@ -2788,61 +2788,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
@@ -2855,25 +2855,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)
@@ -2883,28 +2883,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
@@ -2921,36 +2921,36 @@ parsed as ASTCursorSpecificat
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.
@@ -2959,44 +2959,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.
@@ -3015,40 +3015,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
@@ -3058,10 +3058,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
@@ -3072,10 +3072,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
@@ -3088,19 +3088,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
@@ -3110,15 +3110,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
@@ -3132,7 +3132,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
@@ -3142,17 +3142,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
@@ -3165,18 +3165,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
@@ -3197,7 +3197,7 @@ or enable preview language features (e.g. 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.
@@ -3215,13 +3215,13 @@ quickstart ruleset rulesets/a
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
@@ -3236,59 +3236,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.
@@ -3310,19 +3310,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.
@@ -3330,21 +3330,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
@@ -3353,27 +3353,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()
-
-
+
@@ -3381,21 +3381,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.
@@ -3403,7 +3403,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.
-
@@ -3411,8 +3411,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.
-
@@ -3421,25 +3421,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
-
@@ -3448,12 +3448,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)
diff --git a/pmd_projectdocs_committers_infrastructure.html b/pmd_projectdocs_committers_infrastructure.html
index 10289b53ff..ac905f84d0 100644
--- a/pmd_projectdocs_committers_infrastructure.html
+++ b/pmd_projectdocs_committers_infrastructure.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_projectdocs_committers_main_landing_page.html b/pmd_projectdocs_committers_main_landing_page.html
index e2b447ba02..88e5fa9a4d 100644
--- a/pmd_projectdocs_committers_main_landing_page.html
+++ b/pmd_projectdocs_committers_main_landing_page.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_projectdocs_committers_merging_pull_requests.html b/pmd_projectdocs_committers_merging_pull_requests.html
index 05a2007a77..1f7e47a6e9 100644
--- a/pmd_projectdocs_committers_merging_pull_requests.html
+++ b/pmd_projectdocs_committers_merging_pull_requests.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_projectdocs_committers_releasing.html b/pmd_projectdocs_committers_releasing.html
index c66ff22e11..deeaf26b0d 100644
--- a/pmd_projectdocs_committers_releasing.html
+++ b/pmd_projectdocs_committers_releasing.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_projectdocs_credits.html b/pmd_projectdocs_credits.html
index 78a363a6fa..d0bfd29edb 100644
--- a/pmd_projectdocs_credits.html
+++ b/pmd_projectdocs_credits.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_projectdocs_decisions.html b/pmd_projectdocs_decisions.html
index fac60e5fbf..74ce6c2a58 100644
--- a/pmd_projectdocs_decisions.html
+++ b/pmd_projectdocs_decisions.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_projectdocs_decisions_adr_1.html b/pmd_projectdocs_decisions_adr_1.html
index 094569d015..da59077e1d 100644
--- a/pmd_projectdocs_decisions_adr_1.html
+++ b/pmd_projectdocs_decisions_adr_1.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_projectdocs_decisions_adr_2.html b/pmd_projectdocs_decisions_adr_2.html
index 8621d2db71..8313221cb8 100644
--- a/pmd_projectdocs_decisions_adr_2.html
+++ b/pmd_projectdocs_decisions_adr_2.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_projectdocs_decisions_adr_NNN.html b/pmd_projectdocs_decisions_adr_NNN.html
index a8dc4455db..fbd558b45c 100644
--- a/pmd_projectdocs_decisions_adr_NNN.html
+++ b/pmd_projectdocs_decisions_adr_NNN.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_projectdocs_faq.html b/pmd_projectdocs_faq.html
index c501de25d4..4d1c5e69a5 100644
--- a/pmd_projectdocs_faq.html
+++ b/pmd_projectdocs_faq.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_projectdocs_trivia_meaning.html b/pmd_projectdocs_trivia_meaning.html
index ca9ac774a2..8e4f835aac 100644
--- a/pmd_projectdocs_trivia_meaning.html
+++ b/pmd_projectdocs_trivia_meaning.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_projectdocs_trivia_news.html b/pmd_projectdocs_trivia_news.html
index e2b39ded64..33769d221b 100644
--- a/pmd_projectdocs_trivia_news.html
+++ b/pmd_projectdocs_trivia_news.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_projectdocs_trivia_products.html b/pmd_projectdocs_trivia_products.html
index 8c37887c98..f41a17c7a3 100644
--- a/pmd_projectdocs_trivia_products.html
+++ b/pmd_projectdocs_trivia_products.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_projectdocs_trivia_similarprojects.html b/pmd_projectdocs_trivia_similarprojects.html
index 102eae4785..3ca15aa36c 100644
--- a/pmd_projectdocs_trivia_similarprojects.html
+++ b/pmd_projectdocs_trivia_similarprojects.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_release_notes.html b/pmd_release_notes.html
index 0e8b5aeaf8..d823ef4245 100644
--- a/pmd_release_notes.html
+++ b/pmd_release_notes.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
@@ -1598,122 +1598,19 @@
- 28-January-2023 - 6.54.0
+ 25-February-2023 - 6.55.0-SNAPSHOT
-The PMD team is pleased to announce PMD 6.54.0.
+The PMD team is pleased to announce PMD 6.55.0-SNAPSHOT.
This is a minor release.
New and noteworthy
-New report format html-report-v2.xslt
-
-Thanks to @mohan-chinnappan-n a new PMD report format has been added which features a data table
-with charting functions. It uses an XSLT stylesheet to convert PMD’s XML format into HTML.
-
-See the example report.
-
Fixed Issues
-
- - apex-bestpractices
-
- - #2669: [apex] UnusedLocalVariable false positive in dynamic SOQL
-
-
- - core
-
-
- - java
-
- - #4364: [java] Parsing error with textblock containing quote followed by two backslashes
-
-
- - testing
-
- - #4236: [test] kotest logs look broken
-
-
-
API Changes
-PMD CLI
-
-
- - PMD now supports a new
--relativize-paths-with
flag (or short -z
), which replaces --short-names
.
-It serves the same purpose: Shortening the pathnames in the reports. However, with the new flag it’s possible
-to explicitly define one or more pathnames that should be used as the base when creating relative paths.
-The old flag --short-names
is deprecated.
-
-
-Deprecated APIs
-
-For removal
-
-
- ApexRootNode#getApexVersion
has been deprecated for removal. The version returned is
-always Version.CURRENT
, as the apex compiler integration doesn’t use additional information which Apex version
-actually is used. Therefore, this method can’t be used to determine the Apex version of the project
-that is being analyzed.
- CPDConfiguration#setEncoding
and
-CPDConfiguration#getEncoding
. Use the methods
-getSourceEncoding
and
-setSourceEncoding
instead. Both are available
-for CPDConfiguration
which extends AbstractConfiguration
.
- BaseCLITest
and BaseCPDCLITest
have been deprecated for removal without
-replacement. CLI tests should be done in pmd-core only (and in PMD7 in pmd-cli). Individual language modules
-shouldn’t need to test the CLI integration logic again. Instead, the individual language modules should test their
-functionality as unit tests.
- -
-
-
- -
-
FileCollector#addZipFile
has been deprecated. It is replaced
-by FileCollector#addZipFileWithContent
which directly adds the
-content of the zip file for analysis.
-
- PMDConfiguration#setReportShortNames
and
-PMDConfiguration#isReportShortNames
have been deprecated for removal.
-Use PMDConfiguration#addRelativizeRoot
instead.
-
-
-Internal APIs
-
-
- CSVWriter
- - Some fields in
AbstractAntTestHelper
-
-
-Experimental APIs
-
-
- - CPDReport has a new method which limited mutation of a given report:
-
- filterMatches
creates a new CPD report
-with some matches removed with a given predicate based filter.
-
-
-
-
External Contributions
-
- - #4110: [apex] Feature/unused variable bind false positive with dynamic SOQL - Thomas Prouvot (@tprouvot)
- - #4125: [core] New report format html-report-v2.xslt to provide html with datatable and chart features - Mohan Chinnappan - (@mohan-chinnappan-n)
- - #4280: [apex] Deprecate ApexRootNode.getApexVersion - Aaron Hurst (@aaronhurst-google)
- - #4285: [java] CommentDefaultAccessModifier - add co.elastic.clients.util.VisibleForTesting as default suppressed annotation - Matthew Luckam (@mluckam)
-
-
-Stats
-
- - 107 commits
- - 19 closed tickets & PRs
- - Days since last release: 27
-
diff --git a/pmd_release_notes_old.html b/pmd_release_notes_old.html
index 4fb998ca8f..7fbd9c0ca0 100644
--- a/pmd_release_notes_old.html
+++ b/pmd_release_notes_old.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
@@ -1600,13 +1600,155 @@
Previous versions of PMD can be downloaded here: https://github.com/pmd/pmd/releases
+28-January-2023 - 6.54.0
+
+The PMD team is pleased to announce PMD 6.54.0.
+
+This is a minor release.
+
+Table Of Contents
+
+
+ - New and noteworthy
+
+
+ - Fixed Issues
+ - API Changes
+
+ - PMD CLI
+ - Deprecated APIs
+
+
+
+
+ - External Contributions
+ - Stats
+
+
+New and noteworthy
+
+New report format html-report-v2.xslt
+
+Thanks to @mohan-chinnappan-n a new PMD report format has been added which features a data table
+with charting functions. It uses an XSLT stylesheet to convert PMD’s XML format into HTML.
+
+See the example report.
+
+Fixed Issues
+
+ - apex-bestpractices
+
+ - #2669: [apex] UnusedLocalVariable false positive in dynamic SOQL
+
+
+ - core
+
+
+ - java
+
+ - #4364: [java] Parsing error with textblock containing quote followed by two backslashes
+
+
+ - testing
+
+ - #4236: [test] kotest logs look broken
+
+
+
+
+API Changes
+
+PMD CLI
+
+
+ - PMD now supports a new
--relativize-paths-with
flag (or short -z
), which replaces --short-names
.
+It serves the same purpose: Shortening the pathnames in the reports. However, with the new flag it’s possible
+to explicitly define one or more pathnames that should be used as the base when creating relative paths.
+The old flag --short-names
is deprecated.
+
+
+Deprecated APIs
+
+For removal
+
+
+ ApexRootNode#getApexVersion
has been deprecated for removal. The version returned is
+always Version.CURRENT
, as the apex compiler integration doesn’t use additional information which Apex version
+actually is used. Therefore, this method can’t be used to determine the Apex version of the project
+that is being analyzed.
+ CPDConfiguration#setEncoding
and
+CPDConfiguration#getEncoding
. Use the methods
+getSourceEncoding
and
+setSourceEncoding
instead. Both are available
+for CPDConfiguration
which extends AbstractConfiguration
.
+ BaseCLITest
and BaseCPDCLITest
have been deprecated for removal without
+replacement. CLI tests should be done in pmd-core only (and in PMD7 in pmd-cli). Individual language modules
+shouldn’t need to test the CLI integration logic again. Instead, the individual language modules should test their
+functionality as unit tests.
+ -
+
+
+ -
+
FileCollector#addZipFile
has been deprecated. It is replaced
+by FileCollector#addZipFileWithContent
which directly adds the
+content of the zip file for analysis.
+
+ PMDConfiguration#setReportShortNames
and
+PMDConfiguration#isReportShortNames
have been deprecated for removal.
+Use PMDConfiguration#addRelativizeRoot
instead.
+
+
+Internal APIs
+
+
+ CSVWriter
+ - Some fields in
AbstractAntTestHelper
+
+
+Experimental APIs
+
+
+ - CPDReport has a new method which limited mutation of a given report:
+
+ filterMatches
creates a new CPD report
+with some matches removed with a given predicate based filter.
+
+
+
+
+External Contributions
+
+ - #4110: [apex] Feature/unused variable bind false positive with dynamic SOQL - Thomas Prouvot (@tprouvot)
+ - #4125: [core] New report format html-report-v2.xslt to provide html with datatable and chart features - Mohan Chinnappan - (@mohan-chinnappan-n)
+ - #4280: [apex] Deprecate ApexRootNode.getApexVersion - Aaron Hurst (@aaronhurst-google)
+ - #4285: [java] CommentDefaultAccessModifier - add co.elastic.clients.util.VisibleForTesting as default suppressed annotation - Matthew Luckam (@mluckam)
+
+
+Stats
+
+ - 107 commits
+ - 19 closed tickets & PRs
+ - Days since last release: 27
+
+
31-December-2022 - 6.53.0
The PMD team is pleased to announce PMD 6.53.0.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -1629,7 +1771,7 @@
- Stats
-New and noteworthy
+New and noteworthy
Modified rules
@@ -1656,7 +1798,7 @@ This has been done now.
-Fixed Issues
+Fixed Issues
- core
@@ -1696,11 +1838,11 @@ This has been done now.
-API Changes
+API Changes
-Deprecated APIs
+Deprecated APIs
-For removal
+For removal
These classes / APIs have been deprecated and will be removed with PMD 7.0.0.
@@ -1708,13 +1850,13 @@ This has been done now.
ExcessiveLengthRule
(Java)
-External Contributions
+External Contributions
- #4244: [apex] ApexCRUDViolation: user mode and system mode with test cases added - Tarush Singh (@Tarush-Singh35)
- #4274: [java] Fix finding lambda scope in record compact constructor - kdebski85 (@kdebski85)
-Stats
+Stats
- 43 commits
- 17 closed tickets & PRs
@@ -1727,7 +1869,7 @@ This has been done now.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -1750,7 +1892,7 @@ This has been done now.
- Stats
-New and noteworthy
+New and noteworthy
New rules
@@ -1794,7 +1936,7 @@ this rule misidentifies fields as immutable, then the rule should be suppressed
-Fixed Issues
+Fixed Issues
- cli
@@ -1845,9 +1987,9 @@ this rule misidentifies fields as immutable, then the rule should be suppressed
-API Changes
+API Changes
-PMD CLI
+PMD CLI
-
@@ -1911,7 +2053,7 @@ PMD 7 will remove support for
fromTypeName
should be used instead.
-External Contributions
+External Contributions
- #4184: [java][doc] TestClassWithoutTestCases - fix small typo in description - Valery Yatsynovich (@valfirst)
- #4198: [doc] Add supported CPD languages - Jeroen van Wilgenburg (@jvwilge)
@@ -1923,7 +2065,7 @@ has been deprecated. The equivalent method #4232: [doc] Fixing typos - Andreas Deininger (@deining)
-Stats
+Stats
- 96 commits
- 40 closed tickets & PRs
@@ -1936,7 +2078,7 @@ has been deprecated. The equivalent method Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -1951,7 +2093,7 @@ has been deprecated. The equivalent method Stats
-New and noteworthy
+New and noteworthy
New Rules
@@ -1974,7 +2116,7 @@ properly. To switch back to the old behavior, this property can be set to an emp
test class detection by pattern.
-Fixed Issues
+Fixed Issues
- apex
@@ -2028,18 +2170,18 @@ test class detection by pattern.
-API Changes
+API Changes
No changes.
-External Contributions
+External Contributions
- #4142: [java] fix #4141 Update UncommentedEmptyConstructor - ignore @Autowired annotations - Lynn (@LynnBroe)
- #4147: [java] Added support for Do-While for AvoidArrayLoops - Yasar Shaikh (@yasarshaikh)
- #4150: [apex] New rule ApexUnitTestClassShouldHaveRunAs #4149 - Thomas Prouvot (@tprouvot)
-Stats
+Stats
- 63 commits
- 28 closed tickets & PRs
@@ -2052,7 +2194,7 @@ test class detection by pattern.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -2072,7 +2214,7 @@ test class detection by pattern.
- Stats
-New and noteworthy
+New and noteworthy
Lua now supports additionally Luau
@@ -2093,7 +2235,7 @@ deprecated for this rule.
methods. This behavior can be customized using the property ignoredAnnotations
.
-Fixed Issues
+Fixed Issues
- cli
@@ -2149,7 +2291,7 @@ methods. This behavior can be customized using the property API Changes
+API Changes
CPD CLI
@@ -2165,7 +2307,7 @@ methods. This behavior can be customized using the property Oliver Siegmar
(@osiegmar)
-External Contributions
+External Contributions
- #4066: [lua] Add support for Luau syntax and skipping literal sequences in CPD - Matt Hargett (@matthargett)
- #4100: [java] Update UnusedPrivateFieldRule - ignore any annotations - Lynn (@LynnBroe)
@@ -2177,7 +2319,7 @@ methods. This behavior can be customized using the property #4137: [java] Fixes 3859: Exclude junit5 test methods from the commentDefaultAccessModifierRule - Luis Alcantar (@lfalcantar)
-Stats
+Stats
- 100 commits
- 26 closed tickets & PRs
@@ -2190,7 +2332,7 @@ methods. This behavior can be customized using the property Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -2208,14 +2350,14 @@ methods. This behavior can be customized using the property
Stats
-New and noteworthy
+New and noteworthy
Updated PMD Designer
This PMD release ships a new version of the pmd-designer.
For the changes, see PMD Designer Changelog.
-Fixed Issues
+Fixed Issues
- apex
@@ -2235,7 +2377,7 @@ For the changes, see API Changes
+
API Changes
Deprecated API
@@ -2257,7 +2399,7 @@ the dependency to Jorje.
-External Contributions
+External Contributions
- #4081: [apex] Remove Jorje leaks outside
ast
package - @eklimo
@@ -2268,7 +2410,7 @@ the dependency to Jorje.
- #4104: [doc] Add MegaLinter in the list of integrations - @nvuillam
-Stats
+Stats
- 49 commits
- 10 closed tickets & PRs
@@ -2281,7 +2423,7 @@ the dependency to Jorje.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -2305,7 +2447,7 @@ the dependency to Jorje.
- Stats
-New and noteworthy
+New and noteworthy
Java 19 Support
@@ -2336,7 +2478,7 @@ for the Gherkin language. It is
- honor comment-based suppressions
-Fixed Issues
+Fixed Issues
- apex
@@ -2387,7 +2529,7 @@ for the Gherkin language. It is
-API Changes
+API Changes
CPD CLI
@@ -2428,7 +2570,7 @@ the new interface RuleTst
have been deprecated as internal API.
-Experimental APIs
+Experimental APIs
- To support the Java preview language features “Pattern Matching for Switch” and “Record Patterns”, the following
@@ -2464,7 +2606,7 @@ You can identify them with the
Matt Hargett (@matthargett)
-External Contributions
+External Contributions
- #3984: [java] Fix AddEmptyString false-negative issue - @LiGaOg
- #3988: [java] Modify WhileLoopWithLiteralBoolean to meet the missing case #3455 - @VoidxHoshi
@@ -2476,7 +2618,7 @@ You can identify them with the #4061: [lua] Fix several related Lua parsing issues found when using CPD - @matthargett
-Stats
+Stats
- 102 commits
- 26 closed tickets & PRs
@@ -2489,7 +2631,7 @@ You can identify them with the Table Of Contents
+Table Of Contents
- Fixed Issues
@@ -2498,7 +2640,7 @@ You can identify them with the Stats
-Fixed Issues
+Fixed Issues
- core
@@ -2531,11 +2673,11 @@ You can identify them with the API Changes
+API Changes
No changes.
-External Contributions
+External Contributions
- #3985: [java] Fix false negative problem about Enum in AvoidFieldNameMatchingMethodName #3936 - @Scrsloota
- #3993: [java] AvoidDuplicateLiterals - Add the method “buz” definition to test cases - @dalizi007
@@ -2545,7 +2687,7 @@ You can identify them with the #4010: [core] Bump kotlin to version 1.7.0 - @maikelsteneker
-Stats
+Stats
- 45 commits
- 23 closed tickets & PRs
@@ -2558,7 +2700,7 @@ You can identify them with the Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -2581,7 +2723,7 @@ You can identify them with the
Stats
-New and noteworthy
+New and noteworthy
CLI improvements
@@ -2657,7 +2799,7 @@ and “empty declarations”).
ruleset. Use the new rule UnnecessarySemicolon
instead.
-Fixed Issues
+Fixed Issues
- cli
@@ -2728,7 +2870,7 @@ ruleset. Use the new rule API Changes
+
API Changes
Deprecated ruleset references
@@ -2767,7 +2909,7 @@ should be used.
and Formatter#isNoOutputSupplied
have been internalized.
-External Contributions
+External Contributions
- #3961: [java] Fix #3954 - NPE in UseCollectionIsEmptyRule with record - @flyhard
@@ -2775,7 +2917,7 @@ and #3974: [cs] Add option to ignore C# attributes (annotations) - @maikelsteneker
-Stats
+Stats
- 92 commits
- 30 closed tickets & PRs
@@ -2788,7 +2930,7 @@ and Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -2809,7 +2951,7 @@ and Stats
-New and noteworthy
+New and noteworthy
PMD User Survey
@@ -2870,7 +3012,7 @@ The property can be used to ignore more fields based on their name.
Note that the rule used to ignore fields named IDENT
, but doesn’t anymore (add this value to the property to restore the old behaviour).
-Fixed Issues
+Fixed Issues
- core
@@ -2919,9 +3061,9 @@ Note that the rule used to ignore fields named API Changes
+API Changes
-Experimental APIs
+Experimental APIs
- Report has two new methods which allow limited mutations of a given report:
@@ -2936,7 +3078,7 @@ some violations removed with a given predicate based filter.
net.sourceforge.pmd.lang.html
should be used cautiously.
-External Contributions
+External Contributions
- #3883: [doc] Improve side bar by Adding Release Date - @jasonqiu98
- #3910: [java] UnusedPrivateField - Allow the ignored fieldnames to be configurable - @laoseth
@@ -2946,7 +3088,7 @@ some violations removed with a given predicate based filter.
- #3943: chore: Set permissions for GitHub actions - @naveensrinivasan
-Stats
+Stats
- 97 commits
- 31 closed tickets & PRs
@@ -2959,7 +3101,7 @@ some violations removed with a given predicate based filter.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -2982,7 +3124,7 @@ some violations removed with a given predicate based filter.
- Stats
-New and noteworthy
+New and noteworthy
PMD User Survey
@@ -3085,7 +3227,7 @@ and a Fixed Issues
+Fixed Issues
- apex
@@ -3129,7 +3271,7 @@ The CLI itself remains compatible, if you run PMD via command-line, no action is
-API Changes
+API Changes
Deprecated API
@@ -3161,7 +3303,7 @@ since they didn’t comply to the usual rule class naming conventions yet.
The replacements are in the subpackage bestpractices
.
-Experimental APIs
+Experimental APIs
-
@@ -3175,7 +3317,7 @@ decouples you from this. A file collector is available through External Contributions
+
External Contributions
- #3773: [apex] EagerlyLoadedDescribeSObjectResult false positives with SObjectField.getDescribe() - @filiprafalowicz
@@ -3183,7 +3325,7 @@ decouples you from this. A file collector is available through #3836: [doc] Make TOC scrollable when too many subheadings - @JerritEic
-Stats
+Stats
- 124 commits
- 23 closed tickets & PRs
@@ -3196,7 +3338,7 @@ decouples you from this. A file collector is available through Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -3212,9 +3354,9 @@ decouples you from this. A file collector is available through Stats
-New and noteworthy
+New and noteworthy
-Fixed Issues
+Fixed Issues
- core
@@ -3261,7 +3403,7 @@ decouples you from this. A file collector is available through API Changes
+
API Changes
Deprecated API
@@ -3304,14 +3446,14 @@ done automatically by RuleSet
RuleContext
manually is strongly advised against, as the lifecycle of RuleContext
will change drastically in PMD 7.
-External Contributions
+External Contributions
- #3767: [core] Update GUI.java - Vyom Yadav
- #3804: [doc] Add floating table of contents (issue #2502) - JerritEic
-Stats
+Stats
- 49 commits
- 22 closed tickets & PRs
@@ -3324,7 +3466,7 @@ will change drastically in PMD 7.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -3340,7 +3482,7 @@ will change drastically in PMD 7.
- Stats
-New and noteworthy
+New and noteworthy
Javascript: Rhino updated to latest version 1.7.14
@@ -3370,7 +3512,7 @@ If set to false
(defau
It allows you to enforce ApexDoc comments for classes and methods without requiring them for properties.
-Fixed Issues
+Fixed Issues
- core
@@ -3416,11 +3558,11 @@ It allows you to enforce ApexDoc comments for classes and methods without requir
-API Changes
+API Changes
No changes.
-External Contributions
+External Contributions
- #3631: [java] Fixed False positive for UselessStringValueOf when there is no initial String to append to - John Armgardt
@@ -3439,7 +3581,7 @@ It allows you to enforce ApexDoc comments for classes and methods without requir
- #3747: [visualforce] Updated DataType.java - Vyom Yadav
-Stats
+Stats
- 88 commits
- 35 closed tickets & PRs
@@ -3452,7 +3594,7 @@ It allows you to enforce ApexDoc comments for classes and methods without requir
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -3471,7 +3613,7 @@ It allows you to enforce ApexDoc comments for classes and methods without requir
- Stats
-New and noteworthy
+New and noteworthy
GitHub Action for PMD
@@ -3485,7 +3627,7 @@ report which is uploaded as a build artifact. Furthermore the build can be faile
This minor release will be the last one in 2021. The next release is scheduled to be end of January 2022.
-Fixed Issues
+Fixed Issues
- core
@@ -3523,7 +3665,7 @@ report which is uploaded as a build artifact. Furthermore the build can be faile
-API Changes
+API Changes
Command Line Interface
@@ -3677,7 +3819,7 @@ compared to other cli tools.
-External Contributions
+External Contributions
- #3600: [core] Implement GNU-style long options and ‘–version’ - Yang
@@ -3685,7 +3827,7 @@ compared to other cli tools.
- #3648: [doc] Rename Code Inspector to Codiga - Julien Delange
-Stats
+Stats
- 80 commits
- 23 closed tickets & PRs
@@ -3698,7 +3840,7 @@ compared to other cli tools.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -3718,7 +3860,7 @@ compared to other cli tools.
- Stats
-New and noteworthy
+New and noteworthy
Updated Apex Support
@@ -3849,7 +3991,7 @@ feature and can be enabled on demand.
-Fixed Issues
+Fixed Issues
- apex
@@ -3893,9 +4035,9 @@ feature and can be enabled on demand.
-API Changes
+API Changes
-Experimental APIs
+Experimental APIs
- The interface
ASTCommentContainer
has been added to the Apex AST.
@@ -3905,7 +4047,7 @@ It provides a way to check whether a node contains at least one comment. Current
This information is also available via XPath attribute @ContainsComment
.
-External Contributions
+External Contributions
- #3538: [apex] New rule EagerlyLoadedDescribeSObjectResult - Jonathan Wiesel
@@ -3923,7 +4065,7 @@ This information is also available via XPath attribute #3581
: [apex] #3569 - Requested changes for code review feedback - Scott Wells
-Stats
+Stats
- 72 commits
- 37 closed tickets & PRs
@@ -3936,7 +4078,7 @@ This information is also available via XPath attribute Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -3950,7 +4092,7 @@ This information is also available via XPath attribute
Stats
-New and noteworthy
+New and noteworthy
All Contributors
@@ -3959,7 +4101,7 @@ Contributions of any kind welcome!
See credits for our complete contributors list.
-Fixed Issues
+Fixed Issues
- core
@@ -3985,17 +4127,17 @@ Contributions of any kind welcome!
-API Changes
+API Changes
No changes.
-External Contributions
+External Contributions
- #3516: [javascript] NPE while creating rule violation when specifying explicit line numbers - Kevin Guerra
-Stats
+Stats
- 37 commits
- 10 closed tickets & PRs
@@ -4008,7 +4150,7 @@ Contributions of any kind welcome!
This is a minor release.
-Table Of Contents
+Table Of Contents
- Fixed Issues
@@ -4016,7 +4158,7 @@ Contributions of any kind welcome!
- Stats
-Fixed Issues
+Fixed Issues
- apex
@@ -4037,14 +4179,14 @@ Contributions of any kind welcome!
-External Contributions
+External Contributions
- #3445: [java] Fix #3403 about MethodNamingConventions and JUnit5 parameterized tests - Cyril Sicard
- #3470: [apex] Fix ApexCRUDViolationRule - add super call - Josh Feingold
-Stats
+Stats
- 32 commits
- 8 closed tickets & PRs
@@ -4057,7 +4199,7 @@ Contributions of any kind welcome!
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -4081,7 +4223,7 @@ Contributions of any kind welcome!
- Stats
-New and noteworthy
+New and noteworthy
Java 17 Support
@@ -4185,7 +4327,7 @@ in the same expression. In PMD 7 this and more cases will be covered by a
new rule UnnecessaryBoxing
.
-Fixed Issues
+Fixed Issues
- apex
@@ -4221,9 +4363,9 @@ new rule
UnnecessaryBoxing
-API Changes
+API Changes
-PMD CLI
+PMD CLI
-
@@ -4237,7 +4379,7 @@ See also the examples on Experimental APIs
+
Experimental APIs
- The AST types and APIs around Sealed Classes are not experimental anymore:
@@ -4260,7 +4402,7 @@ You can identify them with the
External Contributions
+External Contributions
- #3367: [apex] Check SOQL CRUD on for loops - Jonathan Wiesel
@@ -4270,7 +4412,7 @@ It will probably be moved away with PMD 7.
- #3417: [core] Support forcing a specific language from the command-line - Aidan Harding
-Stats
+Stats
- 82 commits
- 29 closed tickets & PRs
@@ -4283,7 +4425,7 @@ It will probably be moved away with PMD 7.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -4299,7 +4441,7 @@ It will probably be moved away with PMD 7.
- Stats
-New and noteworthy
+New and noteworthy
Improved Incremental Analysis
@@ -4347,7 +4489,7 @@ You can try out this rule like so:
It now considers usages of Double.NaN
or Float.NaN
in more cases and fixes false negatives.
-Fixed Issues
+Fixed Issues
- apex
@@ -4395,11 +4537,11 @@ It now considers usages of
Do
-API Changes
+API Changes
No changes.
-External Contributions
+External Contributions
- #3276: [apex] Update ApexCRUDViolation and OperationWithLimitsInLoop docs - Jonathan Wiesel
@@ -4412,7 +4554,7 @@ It now considers usages of Do
- #3339: [java] JUnitTestsShouldIncludeAssert Tweak assertion definition to avoid false positive with modern JUnit5 - Arnaud Jeansen
-Stats
+Stats
- 81 commits
- 36 closed tickets & PRs
@@ -4425,7 +4567,7 @@ It now considers usages of Do
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -4446,7 +4588,7 @@ It now considers usages of
Do
- Stats
-New and noteworthy
+New and noteworthy
Javascript module now requires at least Java 8
@@ -4522,7 +4664,7 @@ However, Object.clone()
-Fixed Issues
+Fixed Issues
- apex
@@ -4603,7 +4745,7 @@ However,
Object.clone()
-API Changes
+API Changes
Deprecated API
@@ -4618,7 +4760,7 @@ Use External Contributions
+External Contributions
- #3272: [apex] correction for ApexUnitTestMethodShouldHaveIsTestAnnotation false positives - William Brockhus
- #3246: [java] New Rule: MutableStaticState - Vsevolod Zholobov
@@ -4627,7 +4769,7 @@ are deprecated. This functionality will be replaced by another TBD mechanism in
- pmd.github.io#12: Update quickstart.html - Igor Lyadov
-Stats
+Stats
- 143 commits
- 53 closed tickets & PRs
@@ -4640,7 +4782,7 @@ are deprecated. This functionality will be replaced by another TBD mechanism in
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -4656,7 +4798,7 @@ are deprecated. This functionality will be replaced by another TBD mechanism in
- Stats
-New and noteworthy
+New and noteworthy
New rules
@@ -4706,7 +4848,7 @@ the violation should be suppres
-Fixed Issues
+Fixed Issues
- apex-performance
@@ -4739,11 +4881,11 @@ the violation should be suppres
-API Changes
+API Changes
No changes.
-External Contributions
+External Contributions
- #3193: [java] New rule: UseStandardCharsets - Andrea Aime
@@ -4752,7 +4894,7 @@ the violation should be suppres
- #3234: [apex] ApexCRUDViolation: COUNT is indeed CRUD checkable since it exposes data (false-negative) - Jonathan Wiesel
-Stats
+Stats
- 74 commits
- 18 closed tickets & PRs
@@ -4765,7 +4907,7 @@ the violation should be suppres
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -4778,7 +4920,7 @@ the violation should be suppres
- Stats
-New and noteworthy
+New and noteworthy
PLSQL parsing exclusions
@@ -4786,7 +4928,7 @@ the violation should be suppres
In order to still use PMD on such files, you can now mark certain lines for exclusion from
the parser. More information can be found in the language specific documentation for PLSQL.
-Fixed Issues
+Fixed Issues
- apex-design
@@ -4829,14 +4971,14 @@ the parser. More information can be found in the External Contributions
+
External Contributions
- #3161: [plsql] Add support for lexical parameters in SQL*Plus scripts, allow excluding lines which the parser does not understand - Henning von Bargen
- #3167: [java] Minor typo in quickstart ruleset - Austin Tice
-Stats
+Stats
- 49 commits
- 27 closed tickets & PRs
@@ -4849,7 +4991,7 @@ the parser. More information can be found in the Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -4869,7 +5011,7 @@ the parser. More information can be found in the Stats
-New and noteworthy
+New and noteworthy
Java 16 Support
@@ -4896,7 +5038,7 @@ and protected methods as well. By default, these properties are disabled to pres
compatible behavior.
-Fixed Issues
+Fixed Issues
- apex-documentation
@@ -4928,9 +5070,9 @@ compatible behavior.
-API Changes
+API Changes
-Experimental APIs
+Experimental APIs
- The experimental class
ASTTypeTestPattern
has been renamed to ASTTypePattern
@@ -4961,7 +5103,7 @@ You can identify them with the External Contributions
+External Contributions
- #3098: [apex] ApexDoc optionally report private and protected - Jonathan Wiesel
@@ -4969,7 +5111,7 @@ are deprecated and considered to be internal API. They will be removed with PMD
- #3125: [doc] Fix sample code indentation in documentation - Artur Dryomov
-Stats
+Stats
- 43 commits
- 21 closed tickets & PRs
@@ -4982,7 +5124,7 @@ are deprecated and considered to be internal API. They will be removed with PMD
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -5004,7 +5146,7 @@ are deprecated and considered to be internal API. They will be removed with PMD
- Stats
-New and noteworthy
+New and noteworthy
SARIF Format
@@ -5049,7 +5191,7 @@ insignificant performance impact, and decreases readability.
-Fixed Issues
+Fixed Issues
- core
@@ -5101,7 +5243,7 @@ insignificant performance impact, and decreases readability.
-API Changes
+API Changes
Deprecated API
@@ -5111,7 +5253,7 @@ insignificant performance impact, and decreases readability.
- A few methods of
AbstractXmlRule
-Experimental APIs
+Experimental APIs
- The method
GenericToken#getKind
has been added as experimental. This
@@ -5121,7 +5263,7 @@ returned constant depends on the actual language and might change whenever the g
of the language is changed.
-External Contributions
+External Contributions
- #2666: [swift] Manage swift5 string literals - kenji21
@@ -5137,7 +5279,7 @@ of the language is changed.
- #3084: [vf] VfUnescapeEl false-positive with builtin functions - Josh Feingold
-Stats
+Stats
- 116 commits
- 40 closed tickets & PRs
@@ -5150,7 +5292,7 @@ of the language is changed.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -5173,7 +5315,7 @@ of the language is changed.
- Stats
-New and noteworthy
+New and noteworthy
CPD
@@ -5200,7 +5342,7 @@ of the language is changed.
Thanks to Jeff Bartolotta and Roopa Mohan for contributing this!
-Fixed Issues
+Fixed Issues
- core
@@ -5229,7 +5371,7 @@ of the language is changed.
-API Changes
+API Changes
Deprecated API
@@ -5278,7 +5420,7 @@ You can identify them with the net.sourceforge.pmd.lang.modelica.rule.ModelicaRuleViolationFactory
-External Contributions
+External Contributions
- #2864: [vf] Provide expression type information to Visualforce rules to avoid false positives - Jeff Bartolotta
@@ -5291,7 +5433,7 @@ You can identify them with the #2962: [cpp] Add support for C++ 14 binary literals - Maikel Steneker
-Stats
+Stats
- 190 commits
- 25 closed tickets & PRs
@@ -5304,7 +5446,7 @@ You can identify them with the Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -5320,7 +5462,7 @@ You can identify them with the
Stats
-New and noteworthy
+New and noteworthy
Updated Apex Support
@@ -5358,7 +5500,7 @@ the Java VM, which is bad, if the VM runs an application server which many indep
with PMD 7.0.0.
-Fixed Issues
+Fixed Issues
- apex
@@ -5394,7 +5536,7 @@ with PMD 7.0.0.
-External Contributions
+External Contributions
- #2803: [java] Improve DoNotCallSystemExit (Fixes #2157) - Vitaly Polonetsky
@@ -5410,7 +5552,7 @@ with PMD 7.0.0.
- #2866: [java] (doc) Fix example for CouplingBetweenObjects - Gustavo Krieger
-Stats
+Stats
- 50 commits
- 23 closed tickets & PRs
@@ -5423,7 +5565,7 @@ with PMD 7.0.0.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -5445,7 +5587,7 @@ with PMD 7.0.0.
- Stats
-New and noteworthy
+New and noteworthy
CPD’s AnyTokenizer has been improved
@@ -5456,7 +5598,7 @@ See #2758 for details.
AbstractTokenizer and the custom tokenizers of Fortran, Perl and Ruby are deprecated now.
-Fixed Issues
+Fixed Issues
- cpd
@@ -5491,11 +5633,11 @@ See #2758 for details.
-API Changes
+API Changes
Deprecated API
-For removal
+For removal
net.sourceforge.pmd.RuleViolationComparator
. Use RuleViolation#DEFAULT_COMPARATOR
instead.
@@ -5520,7 +5662,7 @@ See #2758 for details.
-External Contributions
+External Contributions
- #2735: [ci] Add github actions for a fast view of pr succeed/not - XenoAmess
@@ -5530,7 +5672,7 @@ See #2758 for details.
- #2791: [apex] Analyze inner classes for sharing violations - Jeff Bartolotta
-Stats
+Stats
- 58 commits
- 24 closed tickets & PRs
@@ -5543,7 +5685,7 @@ See #2758 for details.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -5570,7 +5712,7 @@ See #2758 for details.
- Stats
-New and noteworthy
+New and noteworthy
Java 15 Support
@@ -5642,7 +5784,7 @@ is deprecated in favour of Fixed Issues
+Fixed Issues
- core
@@ -5700,7 +5842,7 @@ which was introduced in PMD 6.26.0.
-API Changes
+API Changes
- XML rule definition in rulesets: In PMD 7, the
language
attribute will be required on all rule
@@ -5712,7 +5854,7 @@ reported as a forward compatibility warning.
Deprecated API
-For removal
+For removal
Rule#getParserOptions
@@ -5764,7 +5906,7 @@ same functionality, but a slightly changed API.
are deprecated as internal API.
-External Contributions
+External Contributions
- #2656: [all] Ensure PMD/CPD uses tab width of 1 for tabs consistently - Maikel Steneker
@@ -5798,7 +5940,7 @@ are deprecated as internal API.
- #2750: [dart] [cpd] Cpd Dart escaped dollar - Maikel Steneker
-Stats
+Stats
- 189 commits
- 68 closed tickets & PRs
@@ -5811,7 +5953,7 @@ are deprecated as internal API.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -5834,7 +5976,7 @@ are deprecated as internal API.
- Stats
-New and noteworthy
+New and noteworthy
New Rules
@@ -5852,7 +5994,7 @@ by default private methods and constructors. You can restore the old behavior by
allowPrivate
to “false”.
-Fixed Issues
+Fixed Issues
- apex
@@ -5917,11 +6059,11 @@ by default private methods and constructors. You can restore the old behavior by
-API Changes
+API Changes
Deprecated API
-For removal
+For removal
RuleChainVisitor
and all implementations in language modules
@@ -5931,7 +6073,7 @@ by default private methods and constructors. You can restore the old behavior by
ImportWrapper
-External Contributions
+External Contributions
- #2558: [java] Fix issue #1736 and issue #2207 - Young Chan
- #2560: [java] Fix false positives of LawOfDemeter: this and cast expressions - xioayuge
@@ -5945,7 +6087,7 @@ by default private methods and constructors. You can restore the old behavior by
- #2652: [java] UseCollectionIsEmpty can not detect the case this.foo.size() - Mykhailo Palahuta
-Stats
+Stats
- 156 commits
- 43 closed tickets & PRs
@@ -5958,7 +6100,7 @@ by default private methods and constructors. You can restore the old behavior by
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -5983,7 +6125,7 @@ by default private methods and constructors. You can restore the old behavior by
- Stats
-New and noteworthy
+New and noteworthy
Scala cross compilation
@@ -6047,7 +6189,7 @@ the old rule behaviour.
-Fixed Issues
+Fixed Issues
- apex-bestpractices
@@ -6111,7 +6253,7 @@ in the developer documentation.
-API Changes
+API Changes
-
@@ -6128,7 +6270,7 @@ in PMD 7.0.0 and onwards.
-Deprecated APIs
+Deprecated APIs
Internal API
@@ -6157,7 +6299,7 @@ You can identify them with the RulesetsFactoryUtils#getRuleSets
-For removal
+For removal
TokenEntry#TokenEntry
@@ -6171,7 +6313,7 @@ in the developer documentation.
InefficientStringBufferingRule#isInStringBufferOperation
-External Contributions
+External Contributions
- #1932: [java] Added 4 performance rules originating from PMD-jPinpoint-rules - Jeroen Borgers
@@ -6182,7 +6324,7 @@ in the developer documentation.
- #2593: [java] NPathComplexity should mention the expected NPath complexity - Artem Krosheninnikov
-Stats
+Stats
- 135 commits
- 31 closed tickets & PRs
@@ -6195,7 +6337,7 @@ in the developer documentation.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -6217,7 +6359,7 @@ in the developer documentation.
- Stats
-New and noteworthy
+New and noteworthy
CPD now supports XML as well
@@ -6254,7 +6396,7 @@ and LiteralsFirstInComparisons
.
-Fixed Issues
+Fixed Issues
- apex-bestpractices
@@ -6302,9 +6444,9 @@ in favor of the new rule API Changes
+
API Changes
-Deprecated APIs
+Deprecated APIs
BaseLanguageModule#addVersion(String, LanguageVersionHandler, boolean)
@@ -6313,7 +6455,7 @@ that should be preferred to the old ones
AntlrTokenManager.ANTLRSyntaxError
-Experimental APIs
+Experimental APIs
Note: Experimental APIs are identified with the annotation Experimental
,
see its javadoc for details
@@ -6323,7 +6465,7 @@ see its javadoc for details
definitive API.
-External Contributions
+External Contributions
- #2446: [core] Update maven-compiler-plugin to 3.8.1 - Artem Krosheninnikov
@@ -6342,7 +6484,7 @@ definitive API.
- #2495: [c#] Support for interpolated verbatim strings - Maikel Steneker
-Stats
+Stats
- 114 commits
- 29 closed tickets & PRs
@@ -6355,7 +6497,7 @@ definitive API.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -6383,7 +6525,7 @@ definitive API.
- Stats
-New and noteworthy
+New and noteworthy
PMD adopts Contributor Code of Conduct
@@ -6438,7 +6580,7 @@ local variables.
-Fixed Issues
+Fixed Issues
- apex-design
@@ -6513,9 +6655,9 @@ local variables.
-API Changes
+API Changes
-Deprecated APIs
+Deprecated APIs
Internal API
@@ -6600,7 +6742,7 @@ implementations, and their corresponding Parser if it exists (in the same packag
ASTVariableDeclaratorId#getVariableName
- use getName()
instead
-For removal
+For removal
Parser#getTokenManager
@@ -6617,7 +6759,7 @@ implementations, and their corresponding Parser if it exists (in the same packag
- Multiple fields, constructors and methods in
XPathRule
. See javadoc for details.
-External Contributions
+External Contributions
- #2312: [apex] Update ApexCRUDViolation Rule - Joshua S Arquilevich
@@ -6635,7 +6777,7 @@ implementations, and their corresponding Parser if it exists (in the same packag
- #2432: [core] Close ZIP data sources even if a runtime exception or error is thrown - Gonzalo Exequiel Ibars Ingman
-Stats
+Stats
- 237 commits
- 64 closed tickets & PRs
@@ -6648,7 +6790,7 @@ implementations, and their corresponding Parser if it exists (in the same packag
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -6678,7 +6820,7 @@ implementations, and their corresponding Parser if it exists (in the same packag
- External Contributions
-New and noteworthy
+New and noteworthy
Java 14 Support
@@ -6745,7 +6887,7 @@ that violate this rule fail compile-time. This rule is however useful when deali
-Fixed Issues
+Fixed Issues
- apex
@@ -6814,9 +6956,9 @@ that violate this rule fail compile-time. This rule is however useful when deali
-API Changes
+API Changes
-Deprecated APIs
+Deprecated APIs
Internal API
@@ -6847,7 +6989,7 @@ methods on ApexNode
instead, now considers comments too.
-For removal
+For removal
- pmd-core
@@ -6975,7 +7117,7 @@ Use ASTCursorBody
was unnecessary, not used and has been removed. Cursors have been already
parsed as ASTCursorSpecification
.
-External Contributions
+External Contributions
- #2251: [java] FP for InvalidLogMessageFormat when using slf4j-Markers - Kris Scheibe
@@ -7006,7 +7148,7 @@ parsed as ASTCursorSpecificat
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -7032,7 +7174,7 @@ parsed as
ASTCursorSpecificat
- External Contributions
-New and noteworthy
+New and noteworthy
Modelica support
@@ -7101,7 +7243,7 @@ the name was misleading. (File) header comments are not checked, but class comme
-Fixed Issues
+Fixed Issues
- apex
@@ -7161,9 +7303,9 @@ the name was misleading. (File) header comments are not checked, but class comme
-API Changes
+API Changes
-Deprecated APIs
+Deprecated APIs
Internal API
@@ -7204,7 +7346,7 @@ subclasses of For removal
+For removal
- pmd-core
@@ -7252,7 +7394,7 @@ anymore come 7.0.0. Test the type of the expression nested within it.
-External Contributions
+External Contributions
- #2041: [modelica] Initial implementation for PMD - Anatoly Trosinenko
@@ -7272,14 +7414,14 @@ anymore come 7.0.0. Test the type of the expression nested within it.
This is a minor release.
-Table Of Contents
+Table Of Contents
-Fixed Issues
+Fixed Issues
- apex
@@ -7327,7 +7469,7 @@ anymore come 7.0.0. Test the type of the expression nested within it.
-External Contributions
+External Contributions
- #2088: [java] Add more version shortcuts for older java - Henning Schmiedehausen
@@ -7343,7 +7485,7 @@ anymore come 7.0.0. Test the type of the expression nested within it.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -7368,7 +7510,7 @@ anymore come 7.0.0. Test the type of the expression nested within it.
- External Contributions
-New and noteworthy
+New and noteworthy
Updated PMD Designer
@@ -7419,7 +7561,7 @@ server.
message formats.
-Fixed Issues
+Fixed Issues
- core
@@ -7475,11 +7617,11 @@ message formats.
-API Changes
+API Changes
-Deprecated APIs
+Deprecated APIs
-For removal
+For removal
- pmd-core
@@ -7522,7 +7664,7 @@ message formats.
-Internal APIs
+Internal APIs
- pmd-core
@@ -7535,7 +7677,7 @@ except External Contributions
+
External Contributions
- #2010: [java] LawOfDemeter to support inner builder pattern - Gregor Riegler
@@ -7556,7 +7698,7 @@ except Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -7583,7 +7725,7 @@ except External Contributions
-New and noteworthy
+New and noteworthy
Java 13 Support
@@ -7645,7 +7787,7 @@ The stream returned by Files:
won’t be found by default by the rule anymore.
-Fixed Issues
+Fixed Issues
- all
@@ -7700,7 +7842,7 @@ won’t be found by default by the rule anymore.
-API Changes
+API Changes
Changes to Renderer
@@ -7717,9 +7859,9 @@ CLI option “shortnames”.
-Deprecated APIs
+Deprecated APIs
-For removal
+For removal
- The methods
getImportedNameNode
and
@@ -7737,7 +7879,7 @@ been deprecated. They were leftovers from a previous deprecation round targeting
StatisticalRule
.
-Internal APIs
+Internal APIs
Those APIs are not intended to be used by clients, and will be hidden or removed with PMD 7.0.0. You can identify them with the @InternalApi
annotation. You’ll also get a deprecation warning.
@@ -7757,7 +7899,7 @@ subpackages, except External Contributions
+External Contributions
- #1943: [apex] Adds “debug should use logging level” best practice rule for Apex - Renato Oliveira
@@ -7780,7 +7922,7 @@ subpackages, except Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -7794,7 +7936,7 @@ subpackages, except External Contributions
-New and noteworthy
+New and noteworthy
Updated PMD Designer
@@ -7829,7 +7971,7 @@ Java EE’s @Inject
an
-Fixed Issues
+Fixed Issues
- core
@@ -7874,7 +8016,7 @@ Java EE’s
@Inject
an
-External Contributions
+External Contributions
- #1869: [xml] fix #1666 wrong cdata rule description and examples - Artem
@@ -7891,7 +8033,7 @@ Java EE’s @Inject
an
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -7916,7 +8058,7 @@ Java EE’s
@Inject
an
- External Contributions
-New and noteworthy
+New and noteworthy
Updated PMD Designer
@@ -8010,7 +8152,7 @@ constants in a scope smaller than the class, then the rule Fixed Issues
+Fixed Issues
- apex
@@ -8064,9 +8206,9 @@ should be used instead.
-API Changes
+API Changes
-Deprecated APIs
+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.
@@ -8092,7 +8234,7 @@ The following usages are now deprecated in the Java AST (with o
Please look at net.sourceforge.pmd.lang.java.ast
to find out the full list
of deprecations.
-External Contributions
+External Contributions
- #1482: [java] Explain the existence of AvoidFinalLocalVariable in it’s description - Karl-Philipp Richter
@@ -8117,7 +8259,7 @@ of deprecations.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -8142,7 +8284,7 @@ of deprecations.
- External Contributions
-New and noteworthy
+New and noteworthy
Enhanced Matlab support
@@ -8253,7 +8395,7 @@ and will be removed with PMD 7.0.0. The rule is replaced by Fixed Issues
+Fixed Issues
- apex
@@ -8302,11 +8444,11 @@ and will be removed with PMD 7.0.0. The rule is replaced by API Changes
+
API Changes
-Deprecated APIs
+Deprecated APIs
-For removal
+For removal
- The
DumpFacades
in all languages, that could be used to transform a AST into a textual representation,
@@ -8326,7 +8468,7 @@ will be removed with PMD 7. The rule designer is a better way to inspect nodes.
removed as well. It is deprecated, along with all its implementations in the subclasses of LanguageVersionHandler
.
-External Contributions
+External Contributions
- #1647: [java] Rule to detect overly verbose array initialization - Victor
@@ -8354,7 +8496,7 @@ removed as well. It is deprecated, along with all its implementations in the sub
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -8369,7 +8511,7 @@ removed as well. It is deprecated, along with all its implementations in the sub
- External Contributions
-New and noteworthy
+New and noteworthy
Dart support
@@ -8402,7 +8544,7 @@ and annotations that do not have a package declaration.
-Fixed Issues
+Fixed Issues
- all
@@ -8443,11 +8585,11 @@ and annotations that do not have a package declaration.
-API Changes
+API Changes
No changes.
-External Contributions
+External Contributions
- #1745: [doc] Fixed some errors in docs - 0xflotus
@@ -8466,7 +8608,7 @@ and annotations that do not have a package declaration.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -8489,7 +8631,7 @@ and annotations that do not have a package declaration.
- External Contributions
-New and noteworthy
+New and noteworthy
Call For Logo
@@ -8594,7 +8736,7 @@ line length.
-Fixed Issues
+Fixed Issues
- doc
@@ -8635,7 +8777,7 @@ line length.
-API Changes
+API Changes
Command Line Interface
@@ -8660,7 +8802,7 @@ quickstart ruleset rulesets/a
-External Contributions
+External Contributions
- #1694: [apex] New rules for test method and assert statements - triandicAnt
@@ -8679,7 +8821,7 @@ quickstart ruleset rulesets/a
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -8696,7 +8838,7 @@ quickstart ruleset
rulesets/a
- External Contributions
-New and noteworthy
+New and noteworthy
Call For Logo
@@ -8750,7 +8892,7 @@ property skipTestMethodUnders
all test methods, either using the testMethod
modifier or simply annotating them @isTest
.
-Fixed Issues
+Fixed Issues
- all
@@ -8810,11 +8952,11 @@ all test methods, either using the
API Changes
+API Changes
No changes.
-External Contributions
+External Contributions
- #1623: [java] Fix lombok.AllArgsConstructor support - Bobby Wertman
@@ -8838,7 +8980,7 @@ all test methods, either using the Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -8855,7 +8997,7 @@ all test methods, either using the
External Contributions
-New and noteworthy
+New and noteworthy
Updated Apex Support
@@ -8917,7 +9059,7 @@ will be removed with PMD 7.0.0. The rule is replaced by the more general
UnsynchronizedStaticFormatter
.
-Fixed Issues
+Fixed Issues
- core
@@ -8987,7 +9129,7 @@ will be removed with PMD 7.0.0. The rule is replaced by the more general
-API Changes
+API Changes
StatisticalRule
and the related helper classes and base rule classes
@@ -8999,7 +9141,7 @@ will also be removed.
because MultiValuePropertyDescriptor
is deprecated as well
-External Contributions
+External Contributions
- #1503: [java] Fix for ReturnFromFinallyBlock false-positives - RishabhDeep Singh
@@ -9023,7 +9165,7 @@ because Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -9054,7 +9196,7 @@ because External Contributions
-New and noteworthy
+New and noteworthy
Kotlin support for CPD
@@ -9082,7 +9224,7 @@ has been deprecated and will be removed with 7.0.0. Please use Fixed Issues
+Fixed Issues
- all
@@ -9131,7 +9273,7 @@ has been deprecated and will be removed with 7.0.0. Please use API Changes
+API Changes
Properties framework
@@ -9254,7 +9396,7 @@ 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.
-Deprecated APIs
+Deprecated APIs
For internalization
@@ -9284,7 +9426,7 @@ and will be moved into an internal package with 7.0.0. To implement your own met
-For removal
+For removal
-
@@ -9365,7 +9507,7 @@ respective setters.
-External Contributions
+External Contributions
- #1384: [java] New Rule - UseUnderscoresInNumericLiterals - RajeshR
@@ -9390,7 +9532,7 @@ respective setters.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -9404,7 +9546,7 @@ respective setters.
- External Contributions
-New and noteworthy
+New and noteworthy
Improved Golang CPD Support
@@ -9421,7 +9563,7 @@ PLSQL code is properly formatted. It checks e.g. for correct indentation in sele
that each parameter is defined on a separate line.
-Fixed Issues
+Fixed Issues
- all
@@ -9475,7 +9617,7 @@ that each parameter is defined on a separate line.
-API Changes
+API Changes
- PMD has a new CLI option
-ignorelist
. With that, you can provide a file containing a comma-delimit list of files,
@@ -9485,7 +9627,7 @@ Note: there is no corresponding option for the Ant task, since the feature is al
Ant’s FileSet include/exclude filters.
-External Contributions
+External Contributions
- #1338: [core] [cpd] Generalize ANTLR tokens preparing support for ANTLR token filter - Matías Fraga and Tomi De Lucca
@@ -9513,7 +9655,7 @@ Ant’s FileSet include/exclude filters.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -9535,7 +9677,7 @@ Ant’s FileSet include/exclude filters.
- External Contributions
-New and noteworthy
+New and noteworthy
Drawing a line between private and public API
@@ -9620,7 +9762,7 @@ statements. Previously such statements have been simply skipped ahead, now PMD i
to the individual parts of a SELECT-statement, such as the Where-Clause. This might produce new parsing errors
where PMD previously could successfully parse PLSQL code. If this happens, please report a new issue to get this problem fixed.
-Fixed Issues
+Fixed Issues
- apex-bestpractices
@@ -9652,7 +9794,7 @@ where PMD previously could successfully parse PLSQL code. If this happens, pleas
-API Changes
+API Changes
-
@@ -9678,7 +9820,7 @@ a RuleSetReference. Furthermore the following methods are deprecated:
-External Contributions
+External Contributions
- #1309: [core] [CPD] Decouple Antlr Tokenizer implementation from any CPD language supported with Antlr - Matías Fraga
@@ -9694,7 +9836,7 @@ a RuleSetReference. Furthermore the following methods are deprecated: This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -9709,7 +9851,7 @@ a RuleSetReference. Furthermore the following methods are deprecated:
External Contributions
-New and noteworthy
+New and noteworthy
Modified Rules
@@ -9754,7 +9896,7 @@ now deprecated, and will be removed with version 7.0.0. They are replaced by the
LocalVariableNamingConventions
.
-Fixed Issues
+Fixed Issues
- core
@@ -9804,7 +9946,7 @@ now deprecated, and will be removed with version 7.0.0. They are replaced by the
-API Changes
+API Changes
-
@@ -9821,7 +9963,7 @@ ShiftExpression#getOperator.
-External Contributions
+External Contributions
- #109: [java] Add two linguistics rules under naming - Arda Aslan
@@ -9843,7 +9985,7 @@ ShiftExpression#getOperator.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -9858,7 +10000,7 @@ ShiftExpression#getOperator.
- External Contributions
-New and noteworthy
+New and noteworthy
Java 11 Support
@@ -9893,7 +10035,7 @@ parameters and lambda parameters (considering whether they are explicitly typed
accessor classes / methods altogether.
-Fixed Issues
+Fixed Issues
- core
@@ -9933,7 +10075,7 @@ accessor classes / methods altogether.
-API Changes
+API Changes
- The
findDescendantsOfType
methods in net.sourceforge.pmd.lang.ast.AbstractNode
no longer search for
@@ -9941,7 +10083,7 @@ exact type matches, but will match subclasses, too. That means, it’s now possi
types such as AbstractJavaTypeNode
and not only for it’s concrete subtypes.
-External Contributions
+External Contributions
- #1182: [ui] XPath AutoComplete - Akshat Bahety
@@ -9955,7 +10097,7 @@ types such as AbstractJavaTyp
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -9969,7 +10111,7 @@ types such as
AbstractJavaTyp
- External Contributions
-New and noteworthy
+New and noteworthy
New Rules
@@ -9988,7 +10130,7 @@ now detects enum constrcutors with explicit Fixed Issues
+Fixed Issues
- all
@@ -10035,7 +10177,7 @@ letting you know exactly which modifiers are redundant at each declaration.
-API Changes
+API Changes
-
@@ -10055,7 +10197,7 @@ data they might be accompanied.
-External Contributions
+External Contributions
- #836: [apex] Add a rule to prevent use of non-existent annotations - anand13s
@@ -10071,7 +10213,7 @@ data they might be accompanied.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -10087,7 +10229,7 @@ data they might be accompanied.
- External Contributions
-New and noteworthy
+New and noteworthy
Java 10 Support
@@ -10166,7 +10308,7 @@ still be adjusted by setting the property Fixed Issues
+Fixed Issues
- all
@@ -10228,7 +10370,7 @@ still be adjusted by setting the property
API Changes
+API Changes
- The following classes in package
net.sourceforge.pmd.benchmark
have been deprecated: Benchmark
, Benchmarker
,
@@ -10242,7 +10384,7 @@ Use the newer typeIs
m
Use the new isExactlyAny
and isExactlyNone
methods in the same class instead.
-External Contributions
+External Contributions
- #966: [java] Issue #955: add new rule to detect identical catch statement - Clément Fournier and BBG
@@ -10260,7 +10402,7 @@ Use the new isExactlyAnyThis is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -10278,7 +10420,7 @@ Use the new
isExactlyAnyExternal Contributions
-New and noteworthy
+New and noteworthy
Tree Traversal Revision
@@ -10404,7 +10546,7 @@ in favour of Clas
See Naming rules enhancements.
-Fixed Issues
+Fixed Issues
- all
@@ -10472,7 +10614,7 @@ See Naming rules enhancements.
-External Contributions
+External Contributions
- #778: [swift] Support Swift 4 grammar - kenji21
@@ -10494,7 +10636,7 @@ See Naming rules enhancements.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -10510,7 +10652,7 @@ See Naming rules enhancements.
- External Contributions
-New and noteworthy
+New and noteworthy
Ecmascript (JavaScript)
@@ -10597,7 +10739,7 @@ annotations are ignored
are deprecated. They will be replaced by the new rule ControlStatementBraces
, in the category codestyle
.
-Fixed Issues
+Fixed Issues
- all
@@ -10633,7 +10775,7 @@ are deprecated. They will be replaced by the new rule
API Changes
+API Changes
-
@@ -10651,7 +10793,7 @@ for removal in 7.0.0. The new instance method
External Contributions
+External Contributions
- #941: [java] Use char notation to represent a character to improve performance - reudismam
@@ -10675,7 +10817,7 @@ for removal in 7.0.0. The new instance method Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -10690,7 +10832,7 @@ for removal in 7.0.0. The new instance method
External Contributions
-New and noteworthy
+New and noteworthy
Designer UI
@@ -10699,7 +10841,7 @@ The Designer is still under development and any feedback is welcome.
You can start the designer via run.sh designer
or designer.bat
.
-Fixed Issues
+Fixed Issues
- all
@@ -10763,7 +10905,7 @@ The Designer is still under development and any feedback is welcome.
-API Changes
+API Changes
Changes to the Node interface
@@ -10785,7 +10927,7 @@ it was causing OutOfMemoryErr
net.sourceforge.pmd.cpd.FileReporter
has also been deprecated as part of this change, as it’s no longer needed.
-External Contributions
+External Contributions
- #790: [java] Added some comments for JDK 9 - Tobias Weimer
@@ -10808,7 +10950,7 @@ it was causing OutOfMemoryErr
This is a bug fixing release.
-Table Of Contents
+Table Of Contents
- Additional information about the new introduced rule categories
@@ -10844,7 +10986,7 @@ be logged as a warning. See PR #86
rule names will keep working throughout PMD 6. You can upgrade to PMD 6 without the immediate need
to migrate your current ruleset. That backwards compatibility will be maintained until PMD 7.0.0 is released.
-Fixed Issues
+Fixed Issues
- all
@@ -10905,14 +11047,14 @@ to migrate your current ruleset. That backwards compatibility will be maintained
-API Changes
+API Changes
- The constant
net.sourceforge.pmd.PMD.VERSION
has been deprecated and will be removed with PMD 7.0.0.
Please use net.sourceforge.pmd.PMDVersion.VERSION
instead.
-External Contributions
+External Contributions
- #796: [apex] AvoidDirectAccessTriggerMap incorrectly detects array access in classes - Robert Sösemann
@@ -10925,7 +11067,7 @@ Please use net.sourceforge.pm
This is a major release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -10953,7 +11095,7 @@ Please use
net.sourceforge.pm
- External Contributions
-New and noteworthy
+New and noteworthy
New Rule Designer
@@ -11328,7 +11470,7 @@ This is now very well documented in Fixed Issues
+Fixed Issues
- all
@@ -11425,7 +11567,7 @@ This is now very well documented in API Changes
+
API Changes
-
@@ -11548,7 +11690,7 @@ All methods are replaced by their bean-like counterparts
-External Contributions
+External Contributions
- #287: [apex] Make Rule suppression work - Robert Sösemann
@@ -11640,7 +11782,7 @@ All methods are replaced by their bean-like counterparts
This is a bug fixing release.
-Fixed Issues
+Fixed Issues
- java
@@ -11652,14 +11794,14 @@ All methods are replaced by their bean-like counterparts
-API Changes
+API Changes
- The
getGenericArgs()
method introduced to TypeNode
in 5.8.0 was removed. You can access to generics’ info through the JavaTypeDefinition
object.
- The
JavaTypeDefinitionBuilder
class introduced in 5.8.0 is not more. You can use factory methods available on JavaTypeDefinition
-External Contributions
+External Contributions
- #472: [java] fix error with raw types, bug #471
@@ -11671,7 +11813,7 @@ All methods are replaced by their bean-like counterparts
This is a minor release.
-New and noteworthy
+New and noteworthy
Java Type Resolution
@@ -11733,7 +11875,7 @@ either ignored
or issue #445
.
-Fixed Issues
+Fixed Issues
- General
@@ -11811,7 +11953,7 @@ by a new CyclomaticComplexity rule based on the metrics framework. See also
-External Contributions
+External Contributions
- #406: [java] False positive with lambda in java-design/ConstructorCallsOverridableMethod
@@ -11834,7 +11976,7 @@ by a new CyclomaticComplexity rule based on the metrics framework. See also This is a minor release.
-New and noteworthy
+New and noteworthy
Modified Rules
@@ -11859,7 +12001,7 @@ Example usage:
will still indicate whether violations were found.
-Fixed Issues
+Fixed Issues
- General
@@ -11901,14 +12043,14 @@ will still indicate whether violations were found.
-API Changes
+API Changes
- The method
net.sourceforge.pmd.util.StringUtil#htmlEncode(String)
is deprecated.
org.apache.commons.lang3.StringEscapeUtils#escapeHtml4(String)
should be used instead.
-External Contributions
+External Contributions
- #368: [vf] Adding proper AST support for negation expressions
@@ -11929,7 +12071,7 @@ will still indicate whether violations were found.
This is a bug fixing release.
-Fixed Issues
+Fixed Issues
- General
@@ -11967,7 +12109,7 @@ than PMD 5.5.1, when we first started working on it.
Java developers will also appreciate the revamp of CloneMethodMustImplementCloneable
,
making it over 500X faster, and PreserveStackTrace
which is now 7X faster.
-New and noteworthy
+New and noteworthy
Incremental Analysis
@@ -12335,7 +12477,7 @@ See PR #250.
contains the names and paths of the files, that should be analyzed. This is similar to PMD’s filelist option.
You need to use this, if you have a large project with many files, and you hit the command line length limit.
-Fixed Issues
+Fixed Issues
- General
@@ -12471,7 +12613,7 @@ You need to use this, if you have a large project with many files, and you hit t
-API Changes
+API Changes
net.sourceforge.pmd.RuleSetFactory
is now immutable and its behavior cannot be changed anymore.
@@ -12486,7 +12628,7 @@ Therefore, the methods getSyn
replaced by getListeners()
and addListeners(...)
. See PR #193.
-External Contributions
+External Contributions
- #123: [apex] Changing method names to lowercase so casing doesn’t matter
@@ -12558,7 +12700,7 @@ replaced by getListeners()This is a bug fixing release.
-Fixed Issues
+Fixed Issues
- General
@@ -12574,7 +12716,7 @@ replaced by
getListeners()This is a bug fixing release.
-Fixed Issues
+Fixed Issues
- General
@@ -12589,7 +12731,7 @@ replaced by
getListeners()The PMD team is pleased to announce PMD 5.5.5.
-Fixed Issues
+Fixed Issues
- general:
@@ -12627,7 +12769,7 @@ replaced by
getListeners()
-External Contributions
+External Contributions
- #280: [apex] Support for Aggregate Result in CRUD rules
@@ -12642,7 +12784,7 @@ replaced by getListeners()The PMD team is pleased to announce PMD 5.5.4
-New and noteworthy
+New and noteworthy
New Rules
@@ -12689,7 +12831,7 @@ and return statement to be on consecutive lines. Any variable that is used solel
reported.
-Fixed Issues
+Fixed Issues
- General
@@ -12742,7 +12884,7 @@ reported.
-External Contributions
+External Contributions
- #227: [apex] Improving detection of getters
@@ -12774,7 +12916,7 @@ than PMD 5.5.1, when we first started working on it.
Java developers will also appreciate the revamp of CloneMethodMustImplementCloneable
,
making it over 500X faster, and PreserveStackTrace
which is now 7X faster.
-New and noteworthy
+New and noteworthy
Apex Security Rule Set
@@ -12926,7 +13068,7 @@ to toLowerCase
and to
and potentially new false positives.
See also bugfix #1556.
-Fixed Issues
+Fixed Issues
- General
@@ -13004,7 +13146,7 @@ See also bugfix #1556.
-API Changes
+API Changes
net.sourceforge.pmd.RuleSetFactory
is now immutable and its behavior cannot be changed anymore.
@@ -13012,7 +13154,7 @@ It provides constructors to create new adjusted instances. This allows to avoid
See PR #131.
-External Contributions
+External Contributions
- #123: [apex] Changing method names to lowercase so casing doesn’t matter
@@ -13439,14 +13581,14 @@ hides member variable
This is a bug fixing release.
-Table Of Contents
+Table Of Contents
-Fixed Issues
+Fixed Issues
- general:
@@ -13481,7 +13623,7 @@ hides member variable
-External Contributions
+External Contributions
- #303: [java] InefficientEmptyStringCheckRule now reports String.trim().isEmpty()
@@ -13495,7 +13637,7 @@ hides member variable
This is a bug fixing release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -13507,7 +13649,7 @@ hides member variable
- External Contributions
-New and noteworthy
+New and noteworthy
Modified Rules
@@ -13523,7 +13665,7 @@ hides member variable
-Fixed Issues
+Fixed Issues
- general
@@ -13563,7 +13705,7 @@ hides member variable
-External Contributions
+External Contributions
- #266: [java] corrected invalid reporting of LoD violation
@@ -13589,7 +13731,7 @@ than PMD 5.4.2, when we first started working on it.
Java developers will also appreciate the revamp of CloneMethodMustImplementCloneable
,
making it over 500X faster, and PreserveStackTrace
which is now 7X faster.
-New and noteworthy
+New and noteworthy
This is a bug fixing release, no major changes were introduced.
@@ -13600,7 +13742,7 @@ to toLowerCase
and to
and potentially new false positives.
See also bugfix #1556.
-Fixed Issues
+Fixed Issues
- java
@@ -13659,7 +13801,7 @@ See also bugfix #1556.
-External Contributions
+External Contributions
- #129: [plsql] Added correct parse of IS [NOT] NULL and multiline DML
diff --git a/pmd_rules_apex.html b/pmd_rules_apex.html
index 58e5711442..25d5d44ecf 100644
--- a/pmd_rules_apex.html
+++ b/pmd_rules_apex.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_apex_bestpractices.html b/pmd_rules_apex_bestpractices.html
index 7a8376a183..c14ac5b6ac 100644
--- a/pmd_rules_apex_bestpractices.html
+++ b/pmd_rules_apex_bestpractices.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_apex_codestyle.html b/pmd_rules_apex_codestyle.html
index 0d6139e356..3a7795e28b 100644
--- a/pmd_rules_apex_codestyle.html
+++ b/pmd_rules_apex_codestyle.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_apex_design.html b/pmd_rules_apex_design.html
index d65932cde5..be69621ef6 100644
--- a/pmd_rules_apex_design.html
+++ b/pmd_rules_apex_design.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_apex_documentation.html b/pmd_rules_apex_documentation.html
index 9711c3346a..c227add14e 100644
--- a/pmd_rules_apex_documentation.html
+++ b/pmd_rules_apex_documentation.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_apex_errorprone.html b/pmd_rules_apex_errorprone.html
index 6995ae6f6c..b004c324fc 100644
--- a/pmd_rules_apex_errorprone.html
+++ b/pmd_rules_apex_errorprone.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_apex_performance.html b/pmd_rules_apex_performance.html
index 201d6ad910..f6e22336db 100644
--- a/pmd_rules_apex_performance.html
+++ b/pmd_rules_apex_performance.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_apex_security.html b/pmd_rules_apex_security.html
index 89f0df665f..236f747019 100644
--- a/pmd_rules_apex_security.html
+++ b/pmd_rules_apex_security.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_ecmascript.html b/pmd_rules_ecmascript.html
index 66ff49f5ff..411d80a68d 100644
--- a/pmd_rules_ecmascript.html
+++ b/pmd_rules_ecmascript.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_ecmascript_bestpractices.html b/pmd_rules_ecmascript_bestpractices.html
index a89e9fb3ee..c13a201458 100644
--- a/pmd_rules_ecmascript_bestpractices.html
+++ b/pmd_rules_ecmascript_bestpractices.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_ecmascript_codestyle.html b/pmd_rules_ecmascript_codestyle.html
index 29fcffc246..c7a54ee191 100644
--- a/pmd_rules_ecmascript_codestyle.html
+++ b/pmd_rules_ecmascript_codestyle.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_ecmascript_errorprone.html b/pmd_rules_ecmascript_errorprone.html
index ebccfd97c9..e771054945 100644
--- a/pmd_rules_ecmascript_errorprone.html
+++ b/pmd_rules_ecmascript_errorprone.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_html.html b/pmd_rules_html.html
index e858b9e0b0..274e348f56 100644
--- a/pmd_rules_html.html
+++ b/pmd_rules_html.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_html_bestpractices.html b/pmd_rules_html_bestpractices.html
index 68f8a71237..a79eda0f59 100644
--- a/pmd_rules_html_bestpractices.html
+++ b/pmd_rules_html_bestpractices.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_java.html b/pmd_rules_java.html
index 31325d78e0..19e497c93d 100644
--- a/pmd_rules_java.html
+++ b/pmd_rules_java.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_java_bestpractices.html b/pmd_rules_java_bestpractices.html
index 82672ae07a..f6e78b5a97 100644
--- a/pmd_rules_java_bestpractices.html
+++ b/pmd_rules_java_bestpractices.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_java_codestyle.html b/pmd_rules_java_codestyle.html
index 037d1f264f..40baeb89f9 100644
--- a/pmd_rules_java_codestyle.html
+++ b/pmd_rules_java_codestyle.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_java_design.html b/pmd_rules_java_design.html
index 27f50006ed..80998c08c0 100644
--- a/pmd_rules_java_design.html
+++ b/pmd_rules_java_design.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_java_documentation.html b/pmd_rules_java_documentation.html
index 0e638a473a..59202d76da 100644
--- a/pmd_rules_java_documentation.html
+++ b/pmd_rules_java_documentation.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_java_errorprone.html b/pmd_rules_java_errorprone.html
index 9ffaea7fc0..ed82903f43 100644
--- a/pmd_rules_java_errorprone.html
+++ b/pmd_rules_java_errorprone.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_java_multithreading.html b/pmd_rules_java_multithreading.html
index 8cb28d585c..d79a235c3e 100644
--- a/pmd_rules_java_multithreading.html
+++ b/pmd_rules_java_multithreading.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_java_performance.html b/pmd_rules_java_performance.html
index 136dee51dc..3d4003a2b1 100644
--- a/pmd_rules_java_performance.html
+++ b/pmd_rules_java_performance.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_java_security.html b/pmd_rules_java_security.html
index 5e5cc3094a..492b59e466 100644
--- a/pmd_rules_java_security.html
+++ b/pmd_rules_java_security.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_jsp.html b/pmd_rules_jsp.html
index dd937cb229..07a1018543 100644
--- a/pmd_rules_jsp.html
+++ b/pmd_rules_jsp.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_jsp_bestpractices.html b/pmd_rules_jsp_bestpractices.html
index d0c513d087..8ab6c5642e 100644
--- a/pmd_rules_jsp_bestpractices.html
+++ b/pmd_rules_jsp_bestpractices.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_jsp_codestyle.html b/pmd_rules_jsp_codestyle.html
index a26abe93a4..30e8cc39a1 100644
--- a/pmd_rules_jsp_codestyle.html
+++ b/pmd_rules_jsp_codestyle.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_jsp_design.html b/pmd_rules_jsp_design.html
index af74bab8a2..a0252770fb 100644
--- a/pmd_rules_jsp_design.html
+++ b/pmd_rules_jsp_design.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_jsp_errorprone.html b/pmd_rules_jsp_errorprone.html
index a33707a1ed..84026eec55 100644
--- a/pmd_rules_jsp_errorprone.html
+++ b/pmd_rules_jsp_errorprone.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_jsp_security.html b/pmd_rules_jsp_security.html
index 8ba3a462f2..9f48277754 100644
--- a/pmd_rules_jsp_security.html
+++ b/pmd_rules_jsp_security.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_modelica.html b/pmd_rules_modelica.html
index f70fd8796a..ecfb85949a 100644
--- a/pmd_rules_modelica.html
+++ b/pmd_rules_modelica.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_modelica_bestpractices.html b/pmd_rules_modelica_bestpractices.html
index d1ff1af336..9639fe1307 100644
--- a/pmd_rules_modelica_bestpractices.html
+++ b/pmd_rules_modelica_bestpractices.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_plsql.html b/pmd_rules_plsql.html
index f60b455519..6ff2ef241c 100644
--- a/pmd_rules_plsql.html
+++ b/pmd_rules_plsql.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_plsql_bestpractices.html b/pmd_rules_plsql_bestpractices.html
index defcd827fb..966eff12ce 100644
--- a/pmd_rules_plsql_bestpractices.html
+++ b/pmd_rules_plsql_bestpractices.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_plsql_codestyle.html b/pmd_rules_plsql_codestyle.html
index c2d3dc3fd3..8b31eaf222 100644
--- a/pmd_rules_plsql_codestyle.html
+++ b/pmd_rules_plsql_codestyle.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_plsql_design.html b/pmd_rules_plsql_design.html
index ebc8af8a93..c1dc164633 100644
--- a/pmd_rules_plsql_design.html
+++ b/pmd_rules_plsql_design.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_plsql_errorprone.html b/pmd_rules_plsql_errorprone.html
index 6f561671c2..aca1de91ee 100644
--- a/pmd_rules_plsql_errorprone.html
+++ b/pmd_rules_plsql_errorprone.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_pom.html b/pmd_rules_pom.html
index ec57ff7928..2524baefac 100644
--- a/pmd_rules_pom.html
+++ b/pmd_rules_pom.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_pom_errorprone.html b/pmd_rules_pom_errorprone.html
index 32939a0882..1d75d39703 100644
--- a/pmd_rules_pom_errorprone.html
+++ b/pmd_rules_pom_errorprone.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_scala.html b/pmd_rules_scala.html
index 5c4edb7074..4dbc700858 100644
--- a/pmd_rules_scala.html
+++ b/pmd_rules_scala.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_vf.html b/pmd_rules_vf.html
index 92fb6e4d66..94d02310f1 100644
--- a/pmd_rules_vf.html
+++ b/pmd_rules_vf.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_vf_security.html b/pmd_rules_vf_security.html
index 28cb3cb202..4c52cb3ace 100644
--- a/pmd_rules_vf_security.html
+++ b/pmd_rules_vf_security.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_vm.html b/pmd_rules_vm.html
index dd83cff7d1..b2df09d4ab 100644
--- a/pmd_rules_vm.html
+++ b/pmd_rules_vm.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_vm_bestpractices.html b/pmd_rules_vm_bestpractices.html
index edb4c65614..4af6eed5cc 100644
--- a/pmd_rules_vm_bestpractices.html
+++ b/pmd_rules_vm_bestpractices.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_vm_design.html b/pmd_rules_vm_design.html
index 07b01a33b4..1f2bec54a6 100644
--- a/pmd_rules_vm_design.html
+++ b/pmd_rules_vm_design.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_vm_errorprone.html b/pmd_rules_vm_errorprone.html
index d9e7f574c3..edf1498abc 100644
--- a/pmd_rules_vm_errorprone.html
+++ b/pmd_rules_vm_errorprone.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_xml.html b/pmd_rules_xml.html
index 7d05a24eac..7da98f98ad 100644
--- a/pmd_rules_xml.html
+++ b/pmd_rules_xml.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_xml_errorprone.html b/pmd_rules_xml_errorprone.html
index 3ded7d3c01..c66c522101 100644
--- a/pmd_rules_xml_errorprone.html
+++ b/pmd_rules_xml_errorprone.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_xsl.html b/pmd_rules_xsl.html
index b435c0f88d..1d6d01cb73 100644
--- a/pmd_rules_xsl.html
+++ b/pmd_rules_xsl.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_xsl_codestyle.html b/pmd_rules_xsl_codestyle.html
index d12cc67f98..d1470283d4 100644
--- a/pmd_rules_xsl_codestyle.html
+++ b/pmd_rules_xsl_codestyle.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_rules_xsl_performance.html b/pmd_rules_xsl_performance.html
index dcc600553d..0abd8900a7 100644
--- a/pmd_rules_xsl_performance.html
+++ b/pmd_rules_xsl_performance.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_userdocs_3rdpartyrulesets.html b/pmd_userdocs_3rdpartyrulesets.html
index aaa8dcc208..d0f8e87f70 100644
--- a/pmd_userdocs_3rdpartyrulesets.html
+++ b/pmd_userdocs_3rdpartyrulesets.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_userdocs_best_practices.html b/pmd_userdocs_best_practices.html
index 8a9b5d04ef..1b063c8d40 100644
--- a/pmd_userdocs_best_practices.html
+++ b/pmd_userdocs_best_practices.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_userdocs_cli_reference.html b/pmd_userdocs_cli_reference.html
index 2c3039ebc4..027ffe8573 100644
--- a/pmd_userdocs_cli_reference.html
+++ b/pmd_userdocs_cli_reference.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_userdocs_configuring_rules.html b/pmd_userdocs_configuring_rules.html
index 0804e6f236..5bead47939 100644
--- a/pmd_userdocs_configuring_rules.html
+++ b/pmd_userdocs_configuring_rules.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_userdocs_cpd.html b/pmd_userdocs_cpd.html
index 27c8b4011b..876f240c7a 100644
--- a/pmd_userdocs_cpd.html
+++ b/pmd_userdocs_cpd.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
@@ -2175,7 +2175,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.54.0\bin
+C:\ > cd C:\pmd-bin-6.55.0-SNAPSHOT\bin
C:\...\bin > set PMD_JAVA_OPTS=-Xmx512m
C:\...\bin > .\cpd.bat --minimum-tokens 100 --files c:\temp\src
diff --git a/pmd_userdocs_cpd_report_formats.html b/pmd_userdocs_cpd_report_formats.html
index d9d23301c5..29e2b2f09a 100644
--- a/pmd_userdocs_cpd_report_formats.html
+++ b/pmd_userdocs_cpd_report_formats.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_userdocs_extending_defining_properties.html b/pmd_userdocs_extending_defining_properties.html
index 275d5eca36..72771d4ea6 100644
--- a/pmd_userdocs_extending_defining_properties.html
+++ b/pmd_userdocs_extending_defining_properties.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
@@ -1626,16 +1626,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")
@@ -1658,8 +1658,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.
@@ -1690,7 +1690,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
diff --git a/pmd_userdocs_extending_designer_reference.html b/pmd_userdocs_extending_designer_reference.html
index 0e63ceab8d..4f5d5f6c3d 100644
--- a/pmd_userdocs_extending_designer_reference.html
+++ b/pmd_userdocs_extending_designer_reference.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_userdocs_extending_metrics_howto.html b/pmd_userdocs_extending_metrics_howto.html
index 92be57d23d..cb5320ed98 100644
--- a/pmd_userdocs_extending_metrics_howto.html
+++ b/pmd_userdocs_extending_metrics_howto.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
@@ -1611,8 +1611,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.
@@ -1625,9 +1625,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.
@@ -1645,7 +1645,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.
@@ -1673,7 +1673,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:
@@ -1694,7 +1694,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) {
diff --git a/pmd_userdocs_extending_rule_guidelines.html b/pmd_userdocs_extending_rule_guidelines.html
index d2a5ba7ac2..3ff2763d56 100644
--- a/pmd_userdocs_extending_rule_guidelines.html
+++ b/pmd_userdocs_extending_rule_guidelines.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_userdocs_extending_testing.html b/pmd_userdocs_extending_testing.html
index 4eb050a93e..7f403227ef 100644
--- a/pmd_userdocs_extending_testing.html
+++ b/pmd_userdocs_extending_testing.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
@@ -1856,7 +1856,7 @@ Therefore you just need to reference the dependency <dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-test</artifactId>
- <version>6.54.0</version>
+ <version>6.55.0-SNAPSHOT</version>
<scope>test</scope>
</dependency>
diff --git a/pmd_userdocs_extending_writing_java_rules.html b/pmd_userdocs_extending_writing_java_rules.html
index 383434880e..a588712142 100644
--- a/pmd_userdocs_extending_writing_java_rules.html
+++ b/pmd_userdocs_extending_writing_java_rules.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
@@ -1620,9 +1620,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
@@ -1650,7 +1650,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
@@ -1698,7 +1698,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.
@@ -1715,7 +1715,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.
@@ -1750,11 +1750,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
diff --git a/pmd_userdocs_extending_writing_pmd_rules.html b/pmd_userdocs_extending_writing_pmd_rules.html
index a075bf87d9..2f3c9748e6 100644
--- a/pmd_userdocs_extending_writing_pmd_rules.html
+++ b/pmd_userdocs_extending_writing_pmd_rules.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_userdocs_extending_writing_rules_intro.html b/pmd_userdocs_extending_writing_rules_intro.html
index 59f13e9abd..5b1aa9a7a5 100644
--- a/pmd_userdocs_extending_writing_rules_intro.html
+++ b/pmd_userdocs_extending_writing_rules_intro.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
@@ -1658,10 +1658,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
diff --git a/pmd_userdocs_extending_writing_xpath_rules.html b/pmd_userdocs_extending_writing_xpath_rules.html
index 67df820df7..6dbf8c84b2 100644
--- a/pmd_userdocs_extending_writing_xpath_rules.html
+++ b/pmd_userdocs_extending_writing_xpath_rules.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
@@ -1632,7 +1632,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
@@ -1640,7 +1640,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
.
@@ -2237,7 +2237,7 @@ The function is only available in XPath 2.0.
- 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
@@ -2312,7 +2312,7 @@ The function is only available in XPath 2.0.
- 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
@@ -2384,7 +2384,7 @@ The function is only available in XPath 2.0.
- 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
@@ -2397,7 +2397,7 @@ The function is only available in XPath 2.0.
metricKey
as xs:string
- - The name of an enum constant in
JavaOperationMetricKey
or JavaClassMetricKey
+ - The name of an enum constant in
JavaOperationMetricKey
or JavaClassMetricKey
diff --git a/pmd_userdocs_extending_your_first_rule.html b/pmd_userdocs_extending_your_first_rule.html
index 284a7e8983..0409774b97 100644
--- a/pmd_userdocs_extending_your_first_rule.html
+++ b/pmd_userdocs_extending_your_first_rule.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_userdocs_incremental_analysis.html b/pmd_userdocs_incremental_analysis.html
index 114bbabc68..528f9f81a4 100644
--- a/pmd_userdocs_incremental_analysis.html
+++ b/pmd_userdocs_incremental_analysis.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
@@ -1669,7 +1669,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?
diff --git a/pmd_userdocs_installation.html b/pmd_userdocs_installation.html
index c077bf3b21..61d515be82 100644
--- a/pmd_userdocs_installation.html
+++ b/pmd_userdocs_installation.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
@@ -1680,7 +1680,7 @@ require it to function properly.
-~ $ cd ~/bin/pmd-bin-6.54.0/bin
+~ $ cd ~/bin/pmd-bin-6.55.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
@@ -1690,7 +1690,7 @@ require it to function properly.
.../src/main/java/com/me/RuleSetWriter.java:66 Avoid empty catch blocks
-C:\ > cd C:\pmd-bin-6.54.0\bin
+C:\ > cd C:\pmd-bin-6.55.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
@@ -1731,7 +1731,7 @@ directory or a jar or zip file containing the sources.
-~ $ cd ~/bin/pmd-bin-6.54.0/bin
+~ $ cd ~/bin/pmd-bin-6.55.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:
@@ -1747,7 +1747,7 @@ directory or a jar or zip file containing the sources.
assertEquals(Boolean.TYPE, expressions.get(index++).getType());
-C:\ > cd C:\pmd-bin-6.54.0\bin
+C:\ > cd C:\pmd-bin-6.55.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:
diff --git a/pmd_userdocs_making_rulesets.html b/pmd_userdocs_making_rulesets.html
index 4286e1fafc..99da6dd235 100644
--- a/pmd_userdocs_making_rulesets.html
+++ b/pmd_userdocs_making_rulesets.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_userdocs_report_formats.html b/pmd_userdocs_report_formats.html
index 91d4810af7..158ced2cd4 100644
--- a/pmd_userdocs_report_formats.html
+++ b/pmd_userdocs_report_formats.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_userdocs_suppressing_warnings.html b/pmd_userdocs_suppressing_warnings.html
index 360eee3aca..2cbb26ff43 100644
--- a/pmd_userdocs_suppressing_warnings.html
+++ b/pmd_userdocs_suppressing_warnings.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_userdocs_tools.html b/pmd_userdocs_tools.html
index ac96c2fd83..9ff1fc306d 100644
--- a/pmd_userdocs_tools.html
+++ b/pmd_userdocs_tools.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_userdocs_tools_ant.html b/pmd_userdocs_tools_ant.html
index ae955342c1..c56f4bb5a6 100644
--- a/pmd_userdocs_tools_ant.html
+++ b/pmd_userdocs_tools_ant.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
@@ -1614,12 +1614,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.54.0
,
+adding the PMD Task. Assuming, you have extracted the PMD zip file to /home/joe/pmd-bin-6.55.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.54.0/lib">
+ <fileset dir="/home/joe/pmd-bin-6.55.0-SNAPSHOT/lib">
<include name="*.jar"/>
</fileset>
</classpath>
@@ -1629,7 +1629,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.54.0/lib">
+ <fileset dir="/home/joe/pmd-bin-6.55.0-SNAPSHOT/lib">
<include name="*.jar"/>
</fileset>
</path>
@@ -1908,7 +1908,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.54.0/lib">
+ <fileset dir="/home/joe/pmd-bin-6.55.0-SNAPSHOT/lib">
<include name="*.jar"/>
</fileset>
<!-- the custom renderer is expected to be in /home/joe/pmd-addons/com/company/MyRenderer.class -->
@@ -1939,7 +1939,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.54.0/lib">
+ <fileset dir="/home/joe/pmd-bin-6.55.0-SNAPSHOT/lib">
<include name="*.jar"/>
</fileset>
</path>
diff --git a/pmd_userdocs_tools_ci.html b/pmd_userdocs_tools_ci.html
index 4bd3f94986..c49f37fcbc 100644
--- a/pmd_userdocs_tools_ci.html
+++ b/pmd_userdocs_tools_ci.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_userdocs_tools_gradle.html b/pmd_userdocs_tools_gradle.html
index 64cba3c921..431fc5f3ef 100644
--- a/pmd_userdocs_tools_gradle.html
+++ b/pmd_userdocs_tools_gradle.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_userdocs_tools_java_api.html b/pmd_userdocs_tools_java_api.html
index 23cbfe892c..2885b7e4a7 100644
--- a/pmd_userdocs_tools_java_api.html
+++ b/pmd_userdocs_tools_java_api.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/pmd_userdocs_tools_maven.html b/pmd_userdocs_tools_maven.html
index 15e4ffe004..9750e6415b 100644
--- a/pmd_userdocs_tools_maven.html
+++ b/pmd_userdocs_tools_maven.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/tag_devdocs.html b/tag_devdocs.html
index d133bfc82d..86e49ab76f 100644
--- a/tag_devdocs.html
+++ b/tag_devdocs.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/tag_extending.html b/tag_extending.html
index 066dc62102..f4f6d9cc44 100644
--- a/tag_extending.html
+++ b/tag_extending.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/tag_getting_started.html b/tag_getting_started.html
index 876c4ad367..eded2f80ae 100644
--- a/tag_getting_started.html
+++ b/tag_getting_started.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/tag_languages.html b/tag_languages.html
index 2595320c75..643f1b208a 100644
--- a/tag_languages.html
+++ b/tag_languages.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/tag_metrics.html b/tag_metrics.html
index a1151b09ee..2d51bea4d5 100644
--- a/tag_metrics.html
+++ b/tag_metrics.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/tag_release_notes.html b/tag_release_notes.html
index 34a5780221..a58a47eed5 100644
--- a/tag_release_notes.html
+++ b/tag_release_notes.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/tag_rule_references.html b/tag_rule_references.html
index 8dcbdc2fa5..6525298b25 100644
--- a/tag_rule_references.html
+++ b/tag_rule_references.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/tag_tools.html b/tag_tools.html
index c06acf1590..23f97c889f 100644
--- a/tag_tools.html
+++ b/tag_tools.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/tag_troubleshooting.html b/tag_troubleshooting.html
index 0b8c95cacf..8fc365015c 100644
--- a/tag_troubleshooting.html
+++ b/tag_troubleshooting.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023
diff --git a/tag_userdocs.html b/tag_userdocs.html
index 1fad3c945d..dbe295bd6b 100644
--- a/tag_userdocs.html
+++ b/tag_userdocs.html
@@ -174,8 +174,8 @@
- - PMD 6.54.0
- Release date: 28-January-2023
+ - PMD 6.55.0-SNAPSHOT
+ Release date: 25-February-2023