diff --git a/404.html b/404.html index 58dc3fff80..055fe6c79b 100644 --- a/404.html +++ b/404.html @@ -85,8 +85,8 @@
diff --git a/feed.xml b/feed.xml
index 95cba8db52..cece92c07f 100644
--- a/feed.xml
+++ b/feed.xml
@@ -5,8 +5,8 @@
diff --git a/license.html b/license.html
index eec4218b33..49ee344c10 100644
--- a/license.html
+++ b/license.html
@@ -85,8 +85,8 @@
diff --git a/news.html b/news.html
index 08905fba4d..216e76b74b 100644
--- a/news.html
+++ b/news.html
@@ -85,8 +85,8 @@
diff --git a/news_archive.html b/news_archive.html
index 56e885fede..eb9f69aa9c 100644
--- a/news_archive.html
+++ b/news_archive.html
@@ -85,8 +85,8 @@
diff --git a/pmd_about_help.html b/pmd_about_help.html
index fd19994f06..a90eb78975 100644
--- a/pmd_about_help.html
+++ b/pmd_about_help.html
@@ -85,8 +85,8 @@
diff --git a/pmd_about_release_policies.html b/pmd_about_release_policies.html
index 318cb5230e..26e0e58808 100644
--- a/pmd_about_release_policies.html
+++ b/pmd_about_release_policies.html
@@ -85,8 +85,8 @@
diff --git a/pmd_about_support_lifecycle.html b/pmd_about_support_lifecycle.html
index a85da3d6e7..546170772f 100644
--- a/pmd_about_support_lifecycle.html
+++ b/pmd_about_support_lifecycle.html
@@ -85,8 +85,8 @@
diff --git a/pmd_devdocs_building.html b/pmd_devdocs_building.html
index 36530d14fc..5cd8a96a6c 100644
--- a/pmd_devdocs_building.html
+++ b/pmd_devdocs_building.html
@@ -85,8 +85,8 @@
[tom@hal building]$ ls -l
total 5716
--rw-rw-r-- 1 tom tom 5837216 Jul 17 13:09 pmd-src-7.5.0-SNAPSHOT.zip
-[tom@hal building]$ unzip -q pmd-src-7.5.0-SNAPSHOT.zip
+-rw-rw-r-- 1 tom tom 5837216 Jul 17 13:09 pmd-src-7.6.0-SNAPSHOT.zip
+[tom@hal building]$ unzip -q pmd-src-7.6.0-SNAPSHOT.zip
[tom@hal building]$
Now cd down into the pmd
directory:
[tom@hal building]$ cd pmd-src-7.5.0-SNAPSHOT
-[tom@hal pmd-src-7.5.0-SNAPSHOT]$ ls -l | grep pom.xml
+[tom@hal building]$ cd pmd-src-7.6.0-SNAPSHOT
+[tom@hal pmd-src-7.6.0-SNAPSHOT]$ ls -l | grep pom.xml
-rw-rw-r-- 1 tom tom 36482 14\. Nov 17:36 pom.xml
-[tom@hal pmd-src-7.5.0-SNAPSHOT]$
+[tom@hal pmd-src-7.6.0-SNAPSHOT]$
That’s the project configuration for maven… let’s compile!
-[tom@hal pmd-src-7.5.0-SNAPSHOT]$ ./mvnw clean verify
+[tom@hal pmd-src-7.6.0-SNAPSHOT]$ ./mvnw clean verify
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
@@ -1972,7 +1972,7 @@ total 5716
[INFO] Finished at: 2015-11-14T17:46:06+01:00
[INFO] Final Memory: 63M/765M
[INFO] ------------------------------------------------------------------------
-[tom@hal pmd-src-7.5.0-SNAPSHOT]$
+[tom@hal pmd-src-7.6.0-SNAPSHOT]$
Now the source and binary distribution zip files can be found in the folder pmd-dist/target
.
@@ -2021,7 +2021,7 @@ They’re also in the jar file that’s included with both the source and binary
©2024 PMD Open Source Project. All rights
reserved.
- Site last generated: Aug 29, 2024
+ Site last generated: Aug 30, 2024
diff --git a/pmd_devdocs_development.html b/pmd_devdocs_development.html
index a80a72395d..fb8c44d152 100644
--- a/pmd_devdocs_development.html
+++ b/pmd_devdocs_development.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1974,7 +1974,7 @@ every push. Each pull request is built as well.
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- March 2024
Site last generated: Aug 29, 2024
+ March 2024
Site last generated: Aug 30, 2024
diff --git a/pmd_devdocs_how_pmd_works.html b/pmd_devdocs_how_pmd_works.html
index 5917e1317b..857271b11a 100644
--- a/pmd_devdocs_how_pmd_works.html
+++ b/pmd_devdocs_how_pmd_works.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1905,7 +1905,7 @@
Overview
-The processing starts with the main class PmdAnalysis
.
+The processing starts with the main class PmdAnalysis
.
- Parse command line parameters (see net.sourceforge.pmd.cli.PMDParameters)
@@ -1985,7 +1985,7 @@ type resolution information and DFA nodes.
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- September 2017
Site last generated: Aug 29, 2024
+ September 2017
Site last generated: Aug 30, 2024
diff --git a/pmd_devdocs_logging.html b/pmd_devdocs_logging.html
index 7ee3c9701f..fbfaf2096c 100644
--- a/pmd_devdocs_logging.html
+++ b/pmd_devdocs_logging.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1990,7 +1990,7 @@ The default configuration is provided in
©2024 PMD Open Source Project. All rights
reserved.
- Site last generated: Aug 29, 2024
+ Site last generated: Aug 30, 2024
diff --git a/pmd_devdocs_major_adding_new_cpd_language.html b/pmd_devdocs_major_adding_new_cpd_language.html
index f98139a041..f6b7c28ef0 100644
--- a/pmd_devdocs_major_adding_new_cpd_language.html
+++ b/pmd_devdocs_major_adding_new_cpd_language.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1905,7 +1905,7 @@
Adding support for a CPD language
-CPD works generically on the tokens produced by a CpdLexer
.
+
CPD works generically on the tokens produced by a CpdLexer
.
To add support for a new language, the crucial piece is writing a CpdLexer that
splits the source file into the tokens specific to your language. Thankfully you
can use a stock Antlr grammar or JavaCC
@@ -1924,14 +1924,14 @@ other languages.
is automatically available in the binary distribution (pmd-dist).
- - Implement a
CpdLexer
.
+ - Implement a
CpdLexer
.
-
For Antlr grammars you can take the grammar from antlr/grammars-v4 and place it in src/main/antlr4
followed by the package name of the language. You then need to call the appropriate ant wrapper to generate
the lexer from the grammar. To do so, edit pom.xml
(eg like the Golang module).
Once that is done, mvn generate-sources
should generate the lexer sources for you.
- You can now implement a CpdLexer, for instance by extending AntlrCpdLexer
. The following reproduces the Go implementation:
+
You can now implement a CpdLexer, for instance by extending AntlrCpdLexer
. The following reproduces the Go implementation:
```java
// mind the package convention if you are going to make a PR
package net.sourceforge.pmd.lang.go.cpd;
@@ -1949,19 +1949,19 @@ Once that is done, mvn genera
- If your language is case-insensitive, then you might want to overwrite
getImage(AntlrToken)
. There you can
change each token e.g. into uppercase, so that CPD sees the same strings and can find duplicates even when
-the casing differs. See TSqlCpdLexer
for an example. You will also need a
+the casing differs. See TSqlCpdLexer
for an example. You will also need a
“CaseChangingCharStream”, so that antlr itself is case-insensitive.
- For JavaCC grammars, place your grammar in
etc/grammar
and edit the pom.xml
like the Python implementation does.
-You can then subclass JavaccCpdLexer
instead of AntlrCpdLexer.
+You can then subclass JavaccCpdLexer
instead of AntlrCpdLexer.
- If your JavaCC based language is case-insensitive (option
IGNORE_CASE=true
), then you need to implement
-JavaccTokenDocument.TokenDocumentBehavior
, which can change each token
-e.g. into uppercase. See PLSQLParser
for an example.
+JavaccTokenDocument.TokenDocumentBehavior
, which can change each token
+e.g. into uppercase. See PLSQLParser
for an example.
- For any other scenario just implement the interface however you can. Look at the Scala or Apex module for existing implementations.
-
-
Create a Language
implementation, and make it implement CpdCapableLanguage
.
-If your language only supports CPD, then you can subclass CpdOnlyLanguageModuleBase
to get going:
+ Create a Language
implementation, and make it implement CpdCapableLanguage
.
+If your language only supports CPD, then you can subclass CpdOnlyLanguageModuleBase
to get going:
// mind the package convention if you are going to make a PR
package net.sourceforge.pmd.lang.go;
@@ -1983,7 +1983,7 @@ If your language only supports CPD, then you can subclass src/main/resources/META-INF/services/net.sourceforge.pmd.lang.Language
.
- At this point the new language module should be available in CPD
and usable by CPD like any other language.
+ At this point the new language module should be available in CPD
and usable by CPD like any other language.
-
Update the test that asserts the list of supported languages by updating the SUPPORTED_LANGUAGES
constant in BinaryDistributionIT.
@@ -2016,15 +2016,15 @@ There is also the following Jekyll Include, that creates summary box for the lan
Declaring CpdLexer options
To make the CpdLexer configurable, first define some property descriptors using
-PropertyFactory
. Look at CpdLanguageProperties
+PropertyFactory
. Look at CpdLanguageProperties
for some predefined ones which you can reuse (prefer reusing property descriptors if you can).
-You need to override newPropertyBundle
+You need to override newPropertyBundle
and call definePropertyDescriptor
to register the descriptors.
After that you can access the values of the properties from the parameter
-of createCpdTokenizer
.
+of createCpdTokenizer
.
-To implement simple token filtering, you can use BaseTokenFilter
-as a base class, or another base class in net.sourceforge.pmd.cpd.impl
.
+
To implement simple token filtering, you can use BaseTokenFilter
+as a base class, or another base class in net.sourceforge.pmd.cpd.impl
.
Take a look at the Kotlin token filter implementation, or the Java one.
Testing your implementation
@@ -2032,7 +2032,7 @@ Take a look at the pmd-lang-test (scope test
) in your pom.xml
.
This contains utilities to test your CpdLexer.
-Create a test class extending from CpdTextComparisonTest
.
+
Create a test class extending from CpdTextComparisonTest
.
To add tests, you need to write regular JUnit @Test
-annotated methods, and
call the method doTest
with the name of the test file.
@@ -2119,7 +2119,7 @@ call the method doTest
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- June 2024 (7.3.0)
Site last generated: Aug 29, 2024
+ June 2024 (7.3.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_devdocs_major_adding_new_language_antlr.html b/pmd_devdocs_major_adding_new_language_antlr.html
index 93d9ff7521..e60519bd30 100644
--- a/pmd_devdocs_major_adding_new_language_antlr.html
+++ b/pmd_devdocs_major_adding_new_language_antlr.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -2059,7 +2059,7 @@ implementation that you need to extend to create your own adapter as we do with
- It can be used to provide other features for your language like
- violation suppression logic
- ViolationDecorator
s, to add additional language specific information to the
+ ViolationDecorator
s, to add additional language specific information to the
created violations. The Java language module uses this to
provide the method name or class name, where the violation occurred.
- metrics
@@ -2240,7 +2240,7 @@ syntax tree) is not suitable to add methods such as
diff --git a/pmd_devdocs_major_adding_new_language_javacc.html b/pmd_devdocs_major_adding_new_language_javacc.html
index bf5aaa549e..08f2b6e43d 100644
--- a/pmd_devdocs_major_adding_new_language_javacc.html
+++ b/pmd_devdocs_major_adding_new_language_javacc.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1995,7 +1995,7 @@ all the available tokens in the field ViolationDecorator
s, to add additional language specific information to the
+ ViolationDecorator
s, to add additional language specific information to the
created violations. The Java language module uses this to
provide the method name or class name, where the violation occurred.
- metrics (see below “Optional features”)
@@ -2150,7 +2150,7 @@ have more control over this, there are two annotations that can be used for AST
-
-
DeprecatedAttribute
: Getters might be annotated with that indicating, that
+
DeprecatedAttribute
: Getters might be annotated with that indicating, that
this getter method should not be used in XPath rules. When a XPath rule uses such a method, a warning is
issued. If the method additionally has the standard Java @Deprecated
annotation, then the getter is also
deprecated for java usage. Otherwise, the getter is only deprecated for usage in XPath rules.
@@ -2159,7 +2159,7 @@ deprecated for java usage. Otherwise, the getter is only deprecated for usage in
attribute replaceWith
should be used.
-
-
NoAttribute
: This annotation can be used on an AST node type or on individual
+
NoAttribute
: This annotation can be used on an AST node type or on individual
methods in order to filter out which methods are available for XPath rules.
When used on a type, either all methods can be filtered or only inherited methods (see attribute scope
).
When used directly on an individual method, then only this method will be filtered out.
@@ -2209,10 +2209,10 @@ This can be achieved with Rule Designer:
- Create a package
lang.<langname>.metrics
- Create a utility class
<langname>Metrics
- Implement new metrics and add them as static constants. Be sure to document them.
- - Implement
getLanguageMetricsProvider
, to make the metrics available in the designer.
+ - Implement
getLanguageMetricsProvider
, to make the metrics available in the designer.
-See JavaMetrics
for an example.
+See JavaMetrics
for an example.
Symbol table
@@ -2230,7 +2230,7 @@ see Java-specific features and guidance.
Note:
With PMD 7.0.0 the symbol table and type resolution implementation has been
rewritten from scratch. There is still an old API for symbol table support, that is used by PLSQL,
-see net.sourceforge.pmd.lang.symboltable
. This will be deprecated and should not be used.
+see net.sourceforge.pmd.lang.symboltable
. This will be deprecated and should not be used.
Type resolution
@@ -2303,7 +2303,7 @@ see Java-specific features and guidance.
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- December 2023 (7.0.0)
Site last generated: Aug 29, 2024
+ December 2023 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_devdocs_major_rule_guidelines.html b/pmd_devdocs_major_rule_guidelines.html
index f15b5ffcf3..c5b1b3b24d 100644
--- a/pmd_devdocs_major_rule_guidelines.html
+++ b/pmd_devdocs_major_rule_guidelines.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -2038,7 +2038,7 @@ non-private”).
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- August, 2021
Site last generated: Aug 29, 2024
+ August, 2021
Site last generated: Aug 30, 2024
diff --git a/pmd_devdocs_pmdtester.html b/pmd_devdocs_pmdtester.html
index 9690b8ed00..b5b48ef9a5 100644
--- a/pmd_devdocs_pmdtester.html
+++ b/pmd_devdocs_pmdtester.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1955,7 +1955,7 @@ Regression difference reports are commented back to the PR for the reviewer’s
©2024 PMD Open Source Project. All rights
reserved.
- Site last generated: Aug 29, 2024
+ Site last generated: Aug 30, 2024
diff --git a/pmd_devdocs_roadmap.html b/pmd_devdocs_roadmap.html
index 4779fa85e1..0d2c21f90d 100644
--- a/pmd_devdocs_roadmap.html
+++ b/pmd_devdocs_roadmap.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -2076,7 +2076,7 @@ This should be configurable on per Rule basis similar to TR and SymbolTable.
©2024 PMD Open Source Project. All rights
reserved.
- Site last generated: Aug 29, 2024
+ Site last generated: Aug 30, 2024
diff --git a/pmd_devdocs_rule_deprecation_policy.html b/pmd_devdocs_rule_deprecation_policy.html
index 55d6a0c82d..1f5209032b 100644
--- a/pmd_devdocs_rule_deprecation_policy.html
+++ b/pmd_devdocs_rule_deprecation_policy.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -2046,7 +2046,7 @@ major release of PMD.
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- November 15, 2019
Site last generated: Aug 29, 2024
+ November 15, 2019
Site last generated: Aug 30, 2024
diff --git a/pmd_devdocs_writing_documentation.html b/pmd_devdocs_writing_documentation.html
index 7b91d2b7f3..7fd4eb6fae 100644
--- a/pmd_devdocs_writing_documentation.html
+++ b/pmd_devdocs_writing_documentation.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1975,47 +1975,47 @@ all formatting inside the delimiters, and allow to write code samples without
{% jdoc core::lang.rule.Rule %}
- Rule
+ Rule
{% jdoc !q!core::lang.rule.Rule %}
- net.sourceforge.pmd.lang.rule.Rule
+ net.sourceforge.pmd.lang.rule.Rule
{% jdoc core::lang.rule.Rule#setName(java.lang.String) %}
- setName
+ setName
{% jdoc !c!core::lang.rule.Rule#setName(java.lang.String) %}
- Rule#setName
+ Rule#setName
{% jdoc !a!core::lang.rule.Rule#setName(java.lang.String) %}
- setName(String)
+ setName(String)
{% jdoc !ac!core::lang.rule.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::ASTTypeDeclaration %}
- ASTTypeDeclaration
+ ASTTypeDeclaration
{% 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
@@ -2192,7 +2192,7 @@ by specifying -Dpmd.doc.check
©2024 PMD Open Source Project. All rights
reserved.
- Site last generated: Aug 29, 2024
+ Site last generated: Aug 30, 2024
diff --git a/pmd_languages_apex.html b/pmd_languages_apex.html
index 9f2c0318cf..78d7d26d44 100644
--- a/pmd_languages_apex.html
+++ b/pmd_languages_apex.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1916,7 +1916,7 @@ transaction control statements on the Salesforce Platform server, in conjunction
- Since PMD 5.5.0
-- Implementation:
ApexLanguageModule
+- Implementation:
ApexLanguageModule
- Id: apex
- PMD: ✔️
- CPD: ✔️
@@ -1926,12 +1926,12 @@ transaction control statements on the Salesforce Platform server, in conjunction
Metrics framework
-In order to use code metrics in Apex, use the metrics constants in ApexMetrics
,
-together with MetricsUtil
.
+In order to use code metrics in Apex, use the metrics constants in ApexMetrics
,
+together with MetricsUtil
.
Multifile Analysis
-Integration happens in ApexMultifileAnalysis
. It uses
+
Integration happens in ApexMultifileAnalysis
. It uses
ApexLink. For detailed information, see also Apexlink POC #2830.
Note: ApexLink’s new home: https://github.com/apex-dev-tools
@@ -1997,7 +1997,7 @@ and generate an AST. This library is however a binary-blob provided as part of t
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- September 2023 (7.0.0)
Site last generated: Aug 29, 2024
+ September 2023 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_coco.html b/pmd_languages_coco.html
index be08d02545..b437b0bf87 100644
--- a/pmd_languages_coco.html
+++ b/pmd_languages_coco.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1915,7 +1915,7 @@ It is part of the Coco Platform from https://cocot
- Since PMD 7.0.0
-- Implementation:
CocoLanguageModule
+- Implementation:
CocoLanguageModule
- Id: coco
- PMD: ❌
- CPD: ✔️
@@ -1972,7 +1972,7 @@ It is part of the Coco Platform from https://cocot
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- September 2023 (7.0.0)
Site last generated: Aug 29, 2024
+ September 2023 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_configuration.html b/pmd_languages_configuration.html
index 06d4ed6dd3..2ebda40de6 100644
--- a/pmd_languages_configuration.html
+++ b/pmd_languages_configuration.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1923,7 +1923,7 @@ completely in uppercase:
Properties whose name start with CPD are used to configure CPD CpdLexer options.
Programmatically, the language properties can be set on PMDConfiguration
(or CPDConfiguration
) before using the
-PmdAnalysis
(or CpdAnalysis
) instance
+PmdAnalysis
(or CpdAnalysis
) instance
to start the analysis:
PMDConfiguration configuration = new PMDConfiguration();
@@ -1953,7 +1953,7 @@ version of the language will be used.
CPD language properties
-Many languages support the following properties, which are centrally defined in CpdLanguageProperties
:
+Many languages support the following properties, which are centrally defined in CpdLanguageProperties
:
-
@@ -1990,8 +1990,8 @@ appear to have the same value.
-Note: CPDConfiguration
has convenience methods to control these options, e.g.
-setIgnoreAnnotations
.
+Note: CPDConfiguration
has convenience methods to control these options, e.g.
+setIgnoreAnnotations
.
Java language properties
@@ -2100,7 +2100,7 @@ that is conditionally compiled out. Set this property to empty to disable this.<
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- August 2024 (7.5.0)
Site last generated: Aug 29, 2024
+ August 2024 (7.5.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_cpp.html b/pmd_languages_cpp.html
index 9761339885..6989ab78fd 100644
--- a/pmd_languages_cpp.html
+++ b/pmd_languages_cpp.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1910,7 +1910,7 @@
- Since PMD 3.5
-- Implementation:
CppLanguageModule
+- Implementation:
CppLanguageModule
- Id: cpp
- PMD: ❌
- CPD: ✔️
@@ -1963,7 +1963,7 @@
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- September 2023 (7.0.0)
Site last generated: Aug 29, 2024
+ September 2023 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_cs.html b/pmd_languages_cs.html
index b5944915e3..e6ceb42993 100644
--- a/pmd_languages_cs.html
+++ b/pmd_languages_cs.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1910,7 +1910,7 @@
- Since PMD 4.3
-- Implementation:
CsLanguageModule
+- Implementation:
CsLanguageModule
- Id: cs
- PMD: ❌
- CPD: ✔️
@@ -1960,7 +1960,7 @@
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- September 2023 (7.0.0)
Site last generated: Aug 29, 2024
+ September 2023 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_dart.html b/pmd_languages_dart.html
index 986e8594f7..a815f5f140 100644
--- a/pmd_languages_dart.html
+++ b/pmd_languages_dart.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1914,7 +1914,7 @@
- Since PMD 6.14.0
-- Implementation:
DartLanguageModule
+- Implementation:
DartLanguageModule
- Id: dart
- PMD: ❌
- CPD: ✔️
@@ -1964,7 +1964,7 @@
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- September 2023 (7.0.0)
Site last generated: Aug 29, 2024
+ September 2023 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_fortran.html b/pmd_languages_fortran.html
index 481dbe4aa5..8e60bdf07e 100644
--- a/pmd_languages_fortran.html
+++ b/pmd_languages_fortran.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1910,7 +1910,7 @@
-- Implementation:
FortranLanguageModule
+- Implementation:
FortranLanguageModule
- Id: fortran
- PMD: ❌
- CPD: ✔️
@@ -1960,7 +1960,7 @@
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- September 2023 (7.0.0)
Site last generated: Aug 29, 2024
+ September 2023 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_gherkin.html b/pmd_languages_gherkin.html
index 625a6d1ab7..2514e3f184 100644
--- a/pmd_languages_gherkin.html
+++ b/pmd_languages_gherkin.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1914,7 +1914,7 @@ The Gherkin syntax is designed to be non-technical, making it human-readable for
- Since PMD 6.48.0
-- Implementation:
GherkinLanguageModule
+- Implementation:
GherkinLanguageModule
- Id: gherkin
- PMD: ❌
- CPD: ✔️
@@ -1973,7 +1973,7 @@ languages, CPD currently supports only the English version of the Gherkin langua
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- September 2023 (7.0.0)
Site last generated: Aug 29, 2024
+ September 2023 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_go.html b/pmd_languages_go.html
index 737850280b..6e1c8257cd 100644
--- a/pmd_languages_go.html
+++ b/pmd_languages_go.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1914,7 +1914,7 @@
- Since PMD 5.2.0
-- Implementation:
GoLanguageModule
+- Implementation:
GoLanguageModule
- Id: go
- PMD: ❌
- CPD: ✔️
@@ -1964,7 +1964,7 @@
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- September 2023 (7.0.0)
Site last generated: Aug 29, 2024
+ September 2023 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_groovy.html b/pmd_languages_groovy.html
index 7699ecde53..8ba15b0b54 100644
--- a/pmd_languages_groovy.html
+++ b/pmd_languages_groovy.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1916,7 +1916,7 @@ familiar and easy to learn syntax.
- Since PMD 5.5.2
-- Implementation:
GroovyLanguageModule
+- Implementation:
GroovyLanguageModule
- Id: groovy
- PMD: ❌
- CPD: ✔️
@@ -1975,7 +1975,7 @@ familiar and easy to learn syntax.
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- September 2023 (7.0.0)
Site last generated: Aug 29, 2024
+ September 2023 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_html.html b/pmd_languages_html.html
index 4507374f09..acf10baab9 100644
--- a/pmd_languages_html.html
+++ b/pmd_languages_html.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1910,7 +1910,7 @@
- Since PMD 6.45.0
-- Implementation:
HtmlLanguageModule
+- Implementation:
HtmlLanguageModule
- Id: html
- PMD: ✔️
- CPD: ✔️
@@ -1972,7 +1972,7 @@ so that you have to select attributes by e.g.
diff --git a/pmd_languages_index.html b/pmd_languages_index.html
index edcf0b35f8..6efa4400a8 100644
--- a/pmd_languages_index.html
+++ b/pmd_languages_index.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1943,7 +1943,7 @@
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- September 2023 (7.0.0)
Site last generated: Aug 29, 2024
+ September 2023 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_java.html b/pmd_languages_java.html
index 3cedb85b0e..c78c101f5f 100644
--- a/pmd_languages_java.html
+++ b/pmd_languages_java.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1910,7 +1910,7 @@
- Since PMD 1.0.0
-- Implementation:
JavaLanguageModule
+- Implementation:
JavaLanguageModule
- Id: java
- PMD: ✔️
- CPD: ✔️
@@ -2137,42 +2137,42 @@ Java 11 (or later) for the auxClasspath allows PMD to correctly identify the mis
Symbol table APIs
-Symbol table API related classes are in the package net.sourceforge.pmd.lang.java.symbols
.
-The root interface for symbols is JElementSymbol
.
+Symbol table API related classes are in the package net.sourceforge.pmd.lang.java.symbols
.
+The root interface for symbols is JElementSymbol
.
-The symbol table can be requested on any node with the method getSymbolTable
.
-This returns a JSymbolTable
which gives you access to variables, methods and types that are
+
The symbol table can be requested on any node with the method getSymbolTable
.
+This returns a JSymbolTable
which gives you access to variables, methods and types that are
within scope.
-A ASTExpression
might represent a ASTAssignableExpr.ASTNamedReferenceExpr
+
A ASTExpression
might represent a ASTAssignableExpr.ASTNamedReferenceExpr
if it e.g. references a variable name. In that case, you can access the referenced variable symbol
-with the method getReferencedSym
.
+with the method getReferencedSym
.
-Declaration nodes, such as ASTVariableId
implement the interface
-SymbolDeclaratorNode
. Through the method
-getSymbol
you can also access the symbol.
+Declaration nodes, such as ASTVariableId
implement the interface
+SymbolDeclaratorNode
. Through the method
+getSymbol
you can also access the symbol.
-To find usages, you can call getLocalUsages
.
+To find usages, you can call getLocalUsages
.
Type resolution APIs
-Type resolution API related classes are in the package net.sourceforge.pmd.lang.java.types
.
+Type resolution API related classes are in the package net.sourceforge.pmd.lang.java.types
.
The core of the framework is a set of interfaces to represent types. The root interface is
-JTypeMirror
. Type mirrors are created by a
-TypeSystem
object. This object is analysis-global.
+JTypeMirror
. Type mirrors are created by a
+TypeSystem
object. This object is analysis-global.
-The utility class TypeTestUtil
provides simple methods to check types,
+
The utility class TypeTestUtil
provides simple methods to check types,
e.g. TypeTestUtil.isA(String.class, variableDeclaratorIdNode)
tests, whether the given
variableDeclaratorId is of type “String”.
-Any TypeNode
provides access to the type with the method getTypeMirror
.
-E.g. this can be called on ASTMethodCall
to retrieve the return type of the called method.
+Any TypeNode
provides access to the type with the method getTypeMirror
.
+E.g. this can be called on ASTMethodCall
to retrieve the return type of the called method.
Metrics framework
-In order to use code metrics in Java, use the metrics constants in JavaMetrics
,
-together with MetricsUtil
. For instance:
+In order to use code metrics in Java, use the metrics constants in JavaMetrics
,
+together with MetricsUtil
. For instance:
@Override
public Object visit(ASTMethodDeclaration node, Object data) {
@@ -2194,13 +2194,13 @@ together with VARIABLE_NAME
- METHOD_NAME
- CLASS_NAME
- PACKAGE_NAME
+ VARIABLE_NAME
+ METHOD_NAME
+ CLASS_NAME
+ PACKAGE_NAME
-You can access these via getAdditionalInfo
+You can access these via getAdditionalInfo
Dataflow
@@ -2254,7 +2254,7 @@ AST pass that adds dataflow information. The implementation can be found in
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- July 2024 (7.5.0)
Site last generated: Aug 29, 2024
+ July 2024 (7.5.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_js_ts.html b/pmd_languages_js_ts.html
index ffa48ebea8..94d2b7c96b 100644
--- a/pmd_languages_js_ts.html
+++ b/pmd_languages_js_ts.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1910,7 +1910,7 @@
-- Implementation:
EcmascriptLanguageModule
+- Implementation:
EcmascriptLanguageModule
- Id: ecmascript
- PMD: ✔️
- CPD: ✔️
@@ -1925,7 +1925,7 @@
- Since PMD 7.0.0
-- Implementation:
TsLanguageModule
+- Implementation:
TsLanguageModule
- Id: ts
- PMD: ❌
- CPD: ✔️
@@ -1991,7 +1991,7 @@ This grammar is published under the
diff --git a/pmd_languages_jsp.html b/pmd_languages_jsp.html
index e018be4de9..32ce0b0fb3 100644
--- a/pmd_languages_jsp.html
+++ b/pmd_languages_jsp.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1910,7 +1910,7 @@
-- Implementation:
JspLanguageModule
+- Implementation:
JspLanguageModule
- Id: jsp
- PMD: ✔️
- CPD: ✔️
@@ -2005,7 +2005,7 @@ have to do “manual” string manipulation (e.g. using regular expressions).
Page last updated:
- September 2023 (7.0.0)
Site last generated: Aug 29, 2024
+ September 2023 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_julia.html b/pmd_languages_julia.html
index 334570dac2..2418d8e02c 100644
--- a/pmd_languages_julia.html
+++ b/pmd_languages_julia.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1917,7 +1917,7 @@ Julia programs compile to efficient native code for multiple platforms via LLVM.
- Since PMD 7.0.0
-- Implementation:
JuliaLanguageModule
+- Implementation:
JuliaLanguageModule
- Id: julia
- PMD: ❌
- CPD: ✔️
@@ -1974,7 +1974,7 @@ Julia programs compile to efficient native code for multiple platforms via LLVM.
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- September 2023 (7.0.0)
Site last generated: Aug 29, 2024
+ September 2023 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_kotlin.html b/pmd_languages_kotlin.html
index 581730df01..e21e9f3094 100644
--- a/pmd_languages_kotlin.html
+++ b/pmd_languages_kotlin.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1912,7 +1912,7 @@
- Since PMD 7.0
-- Implementation:
KotlinLanguageModule
+- Implementation:
KotlinLanguageModule
- Id: kotlin
- PMD: ✔️
- CPD: ✔️
@@ -1967,7 +1967,7 @@
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- February 2024 (7.0.0)
Site last generated: Aug 29, 2024
+ February 2024 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_lua.html b/pmd_languages_lua.html
index d1de44ff2f..44ebe96520 100644
--- a/pmd_languages_lua.html
+++ b/pmd_languages_lua.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1914,7 +1914,7 @@
- Since PMD 6.17.0
-- Implementation:
LuaLanguageModule
+- Implementation:
LuaLanguageModule
- Id: lua
- PMD: ❌
- CPD: ✔️
@@ -1966,7 +1966,7 @@ a gradually typed language derived from Lua, was added.
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- September 2023 (7.0.0)
Site last generated: Aug 29, 2024
+ September 2023 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_matlab.html b/pmd_languages_matlab.html
index 9bc8d0f4ed..25ece33ebe 100644
--- a/pmd_languages_matlab.html
+++ b/pmd_languages_matlab.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1912,7 +1912,7 @@
- Since PMD 5.3.0
-- Implementation:
MatlabLanguageModule
+- Implementation:
MatlabLanguageModule
- Id: matlab
- PMD: ❌
- CPD: ✔️
@@ -1962,7 +1962,7 @@
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- September 2023 (7.0.0)
Site last generated: Aug 29, 2024
+ September 2023 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_modelica.html b/pmd_languages_modelica.html
index 3fc67e536e..d55acb82f7 100644
--- a/pmd_languages_modelica.html
+++ b/pmd_languages_modelica.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1912,7 +1912,7 @@
- Since PMD 6.21.0
-- Implementation:
ModelicaLanguageModule
+- Implementation:
ModelicaLanguageModule
- Id: modelica
- PMD: ✔️
- CPD: ✔️
@@ -1966,7 +1966,7 @@
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- September 2023 (7.0.0)
Site last generated: Aug 29, 2024
+ September 2023 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_objectivec.html b/pmd_languages_objectivec.html
index ad43b38d56..84ea8082ae 100644
--- a/pmd_languages_objectivec.html
+++ b/pmd_languages_objectivec.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1915,7 +1915,7 @@ a superset of the C programming language and provides object-oriented capabiliti
- Since PMD 5.3.0
-- Implementation:
ObjectiveCLanguageModule
+- Implementation:
ObjectiveCLanguageModule
- Id: objectivec
- PMD: ❌
- CPD: ✔️
@@ -1965,7 +1965,7 @@ a superset of the C programming language and provides object-oriented capabiliti
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- September 2023 (7.0.0)
Site last generated: Aug 29, 2024
+ September 2023 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_perl.html b/pmd_languages_perl.html
index 5fcff08d86..e3c012bfc6 100644
--- a/pmd_languages_perl.html
+++ b/pmd_languages_perl.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1914,7 +1914,7 @@
- Since PMD 5.5.0
-- Implementation:
PerlLanguageModule
+- Implementation:
PerlLanguageModule
- Id: perl
- PMD: ❌
- CPD: ✔️
@@ -1964,7 +1964,7 @@
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- September 2023 (7.0.0)
Site last generated: Aug 29, 2024
+ September 2023 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_php.html b/pmd_languages_php.html
index 8b410d50aa..faf8afd967 100644
--- a/pmd_languages_php.html
+++ b/pmd_languages_php.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1914,7 +1914,7 @@
- Since PMD 1.1
-- Implementation:
PhpLanguageModule
+- Implementation:
PhpLanguageModule
- Id: php
- PMD: ❌
- CPD: ✔️
@@ -1964,7 +1964,7 @@
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- September 2023 (7.0.0)
Site last generated: Aug 29, 2024
+ September 2023 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_plsql.html b/pmd_languages_plsql.html
index c329e3032e..7d03ea5d64 100644
--- a/pmd_languages_plsql.html
+++ b/pmd_languages_plsql.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1915,7 +1915,7 @@ describes and explains how to use PL/SQL, the Oracle procedural extension of SQL
- Since PMD 5.1.0
-- Implementation:
PLSQLLanguageModule
+- Implementation:
PLSQLLanguageModule
- Id: plsql
- PMD: ✔️
- CPD: ✔️
@@ -2017,7 +2017,7 @@ a custom XPath rule with the following expression:
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- September 2023 (7.0.0)
Site last generated: Aug 29, 2024
+ September 2023 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_python.html b/pmd_languages_python.html
index 8a43604cb3..221e69cab4 100644
--- a/pmd_languages_python.html
+++ b/pmd_languages_python.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1914,7 +1914,7 @@
- Since PMD 5.3.0
-- Implementation:
PythonLanguageModule
+- Implementation:
PythonLanguageModule
- Id: python
- PMD: ❌
- CPD: ✔️
@@ -1964,7 +1964,7 @@
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- September 2023 (7.0.0)
Site last generated: Aug 29, 2024
+ September 2023 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_ruby.html b/pmd_languages_ruby.html
index d630c13e51..01d1612acd 100644
--- a/pmd_languages_ruby.html
+++ b/pmd_languages_ruby.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1915,7 +1915,7 @@ productivity. It has an elegant syntax that is natural to read and easy to write
- Since PMD 3.0
-- Implementation:
RubyLanguageModule
+- Implementation:
RubyLanguageModule
- Id: ruby
- PMD: ❌
- CPD: ✔️
@@ -1965,7 +1965,7 @@ productivity. It has an elegant syntax that is natural to read and easy to write
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- September 2023 (7.0.0)
Site last generated: Aug 29, 2024
+ September 2023 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_scala.html b/pmd_languages_scala.html
index 8325385032..32ae9e4050 100644
--- a/pmd_languages_scala.html
+++ b/pmd_languages_scala.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1916,7 +1916,7 @@ object-oriented and functional languages.
- Since PMD 5.3.0
-- Implementation:
ScalaLanguageModule
+- Implementation:
ScalaLanguageModule
- Id: scala
- PMD: ✔️
- CPD: ✔️
@@ -1970,7 +1970,7 @@ object-oriented and functional languages.
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- September 2023 (7.0.0)
Site last generated: Aug 29, 2024
+ September 2023 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_swift.html b/pmd_languages_swift.html
index ece0cfe770..f28c935288 100644
--- a/pmd_languages_swift.html
+++ b/pmd_languages_swift.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1915,7 +1915,7 @@ powerful for experts. It is fast, modern, safe, and a joy to write.
- Since PMD 5.3.7
-- Implementation:
SwiftLanguageModule
+- Implementation:
SwiftLanguageModule
- Id: swift
- PMD: ✔️
- CPD: ✔️
@@ -1970,7 +1970,7 @@ powerful for experts. It is fast, modern, safe, and a joy to write.
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- September 2023 (7.0.0)
Site last generated: Aug 29, 2024
+ September 2023 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_tsql.html b/pmd_languages_tsql.html
index ec301b7f53..ca0269c75e 100644
--- a/pmd_languages_tsql.html
+++ b/pmd_languages_tsql.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1915,7 +1915,7 @@ proprietary extension to the SQL (Structured Query Language) used to interact wi
- Since PMD 6.55.0
-- Implementation:
TSqlLanguageModule
+- Implementation:
TSqlLanguageModule
- Id: tsql
- PMD: ❌
- CPD: ✔️
@@ -1965,7 +1965,7 @@ proprietary extension to the SQL (Structured Query Language) used to interact wi
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- September 2023 (7.0.0)
Site last generated: Aug 29, 2024
+ September 2023 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_velocity.html b/pmd_languages_velocity.html
index 2a20cf6d4a..28e773e6ad 100644
--- a/pmd_languages_velocity.html
+++ b/pmd_languages_velocity.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1915,7 +1915,7 @@ It permits web page designers to reference methods defined in Java code.
- Since PMD 5.1.0
-- Implementation:
VtlLanguageModule
+- Implementation:
VtlLanguageModule
- Id: velocity
- PMD: ✔️
- CPD: ✔️
@@ -1975,7 +1975,7 @@ is used as the prefix, e.g. V
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- February 2024 (7.0.0)
Site last generated: Aug 29, 2024
+ February 2024 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_visualforce.html b/pmd_languages_visualforce.html
index 3954263fdf..10ba8ff705 100644
--- a/pmd_languages_visualforce.html
+++ b/pmd_languages_visualforce.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1915,7 +1915,7 @@ language that gives developers way to build applications and customize the Sales
- Since PMD 5.6.0
-- Implementation:
VfLanguageModule
+- Implementation:
VfLanguageModule
- Id: visualforce
- PMD: ✔️
- CPD: ✔️
@@ -2023,7 +2023,7 @@ the needed data.
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- February 2024 (7.0.0)
Site last generated: Aug 29, 2024
+ February 2024 (7.0.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_languages_xml.html b/pmd_languages_xml.html
index 53468c4cc1..ffc8df0a22 100644
--- a/pmd_languages_xml.html
+++ b/pmd_languages_xml.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1910,7 +1910,7 @@
- Since PMD 5.4.0
-- Implementation:
PomLanguageModule
+- Implementation:
PomLanguageModule
- Id: pom
- PMD: ✔️
- CPD: ✔️
@@ -1925,7 +1925,7 @@
- Since PMD 5.4.0
-- Implementation:
WsdlLanguageModule
+- Implementation:
WsdlLanguageModule
- Id: wsdl
- PMD: ✔️
- CPD: ✔️
@@ -1940,7 +1940,7 @@
- Since PMD 5.0.0
-- Implementation:
XmlLanguageModule
+- Implementation:
XmlLanguageModule
- Id: xml
- PMD: ✔️
- CPD: ✔️
@@ -1955,7 +1955,7 @@
- Since PMD 5.0.0
-- Implementation:
XslLanguageModule
+- Implementation:
XslLanguageModule
- Id: xsl
- PMD: ✔️
- CPD: ✔️
@@ -2016,9 +2016,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
@@ -2048,7 +2048,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
.
@@ -2097,7 +2097,7 @@ for more info about the differences with
diff --git a/pmd_projectdocs_committers_infrastructure.html b/pmd_projectdocs_committers_infrastructure.html
index 1f55da6c6d..f7eff4a373 100644
--- a/pmd_projectdocs_committers_infrastructure.html
+++ b/pmd_projectdocs_committers_infrastructure.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -2018,7 +2018,7 @@ Login is via github.
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- April 2021
Site last generated: Aug 29, 2024
+ April 2021
Site last generated: Aug 30, 2024
diff --git a/pmd_projectdocs_committers_main_landing_page.html b/pmd_projectdocs_committers_main_landing_page.html
index 88b22ac3a8..0be6769a59 100644
--- a/pmd_projectdocs_committers_main_landing_page.html
+++ b/pmd_projectdocs_committers_main_landing_page.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -2018,7 +2018,7 @@ the new post is recognized and added to the news section and also on the news su
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- March 2020
Site last generated: Aug 29, 2024
+ March 2020
Site last generated: Aug 30, 2024
diff --git a/pmd_projectdocs_committers_merging_pull_requests.html b/pmd_projectdocs_committers_merging_pull_requests.html
index ceb796ed88..71e91d10b7 100644
--- a/pmd_projectdocs_committers_merging_pull_requests.html
+++ b/pmd_projectdocs_committers_merging_pull_requests.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -2131,7 +2131,7 @@ integrated (e.g. gitk and github show the branches, from which the specific comm
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- October 2021
Site last generated: Aug 29, 2024
+ October 2021
Site last generated: Aug 30, 2024
diff --git a/pmd_projectdocs_committers_releasing.html b/pmd_projectdocs_committers_releasing.html
index ad19b16fba..2a48afa33a 100644
--- a/pmd_projectdocs_committers_releasing.html
+++ b/pmd_projectdocs_committers_releasing.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -2426,7 +2426,7 @@ the tag. Here are the steps:
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- July 2024 (7.5.0)
Site last generated: Aug 29, 2024
+ July 2024 (7.5.0)
Site last generated: Aug 30, 2024
diff --git a/pmd_projectdocs_credits.html b/pmd_projectdocs_credits.html
index 836b562b98..2d5de7e5e9 100644
--- a/pmd_projectdocs_credits.html
+++ b/pmd_projectdocs_credits.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -3566,7 +3566,7 @@ PMD scoreboard formulas, pmd-dcpd optimizations
©2024 PMD Open Source Project. All rights
reserved.
- Site last generated: Aug 29, 2024
+ Site last generated: Aug 30, 2024
diff --git a/pmd_projectdocs_decisions.html b/pmd_projectdocs_decisions.html
index 5e97ecf172..90d7da3606 100644
--- a/pmd_projectdocs_decisions.html
+++ b/pmd_projectdocs_decisions.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -2288,7 +2288,7 @@
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- July 2022
Site last generated: Aug 29, 2024
+ July 2022
Site last generated: Aug 30, 2024
diff --git a/pmd_projectdocs_decisions_adr_1.html b/pmd_projectdocs_decisions_adr_1.html
index 8846d6ab20..9cb6b46ace 100644
--- a/pmd_projectdocs_decisions_adr_1.html
+++ b/pmd_projectdocs_decisions_adr_1.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1990,7 +1990,7 @@ as the decisions need to be formulated and written down. Everybody is on the sam
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- September 2022
Site last generated: Aug 29, 2024
+ September 2022
Site last generated: Aug 30, 2024
diff --git a/pmd_projectdocs_decisions_adr_2.html b/pmd_projectdocs_decisions_adr_2.html
index fb2810b811..5b740275b5 100644
--- a/pmd_projectdocs_decisions_adr_2.html
+++ b/pmd_projectdocs_decisions_adr_2.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1993,7 +1993,7 @@ when Kotlin is used. Eclipse can’t be used practically anymore.
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- September 2022
Site last generated: Aug 29, 2024
+ September 2022
Site last generated: Aug 30, 2024
diff --git a/pmd_projectdocs_decisions_adr_3.html b/pmd_projectdocs_decisions_adr_3.html
index 8e65a0af06..c611c359df 100644
--- a/pmd_projectdocs_decisions_adr_3.html
+++ b/pmd_projectdocs_decisions_adr_3.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -2144,7 +2144,7 @@ Java Module System.
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- February 2024
Site last generated: Aug 29, 2024
+ February 2024
Site last generated: Aug 30, 2024
diff --git a/pmd_projectdocs_decisions_adr_NNN.html b/pmd_projectdocs_decisions_adr_NNN.html
index d440ea237b..fadde39d9f 100644
--- a/pmd_projectdocs_decisions_adr_NNN.html
+++ b/pmd_projectdocs_decisions_adr_NNN.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1954,7 +1954,7 @@
©2024 PMD Open Source Project. All rights
reserved.
Page last updated:
- July 2022
Site last generated: Aug 29, 2024
+ July 2022
Site last generated: Aug 30, 2024
diff --git a/pmd_projectdocs_faq.html b/pmd_projectdocs_faq.html
index b732cb28f8..0f6097dba6 100644
--- a/pmd_projectdocs_faq.html
+++ b/pmd_projectdocs_faq.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1980,7 +1980,7 @@ You must take this into account for certain rules.
©2024 PMD Open Source Project. All rights
reserved.
- Site last generated: Aug 29, 2024
+ Site last generated: Aug 30, 2024
diff --git a/pmd_projectdocs_logo.html b/pmd_projectdocs_logo.html
index 567f675a80..1c2e5525b1 100644
--- a/pmd_projectdocs_logo.html
+++ b/pmd_projectdocs_logo.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1969,7 +1969,7 @@ These old logos are provided here only as reference for historical reasons and s
©2024 PMD Open Source Project. All rights
reserved.
- Site last generated: Aug 29, 2024
+ Site last generated: Aug 30, 2024
diff --git a/pmd_projectdocs_trivia_meaning.html b/pmd_projectdocs_trivia_meaning.html
index 5175c3dc91..f218456e19 100644
--- a/pmd_projectdocs_trivia_meaning.html
+++ b/pmd_projectdocs_trivia_meaning.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1949,7 +1949,7 @@ really know. We just think the letters sound good together.
©2024 PMD Open Source Project. All rights
reserved.
- Site last generated: Aug 29, 2024
+ Site last generated: Aug 30, 2024
diff --git a/pmd_projectdocs_trivia_news.html b/pmd_projectdocs_trivia_news.html
index a25567149c..436106ffa8 100644
--- a/pmd_projectdocs_trivia_news.html
+++ b/pmd_projectdocs_trivia_news.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -2089,7 +2089,7 @@ interview with Ole-Martin and Tom
©2024 PMD Open Source Project. All rights
reserved.
- Site last generated: Aug 29, 2024
+ Site last generated: Aug 30, 2024
diff --git a/pmd_projectdocs_trivia_products.html b/pmd_projectdocs_trivia_products.html
index f22849b653..4dba15029d 100644
--- a/pmd_projectdocs_trivia_products.html
+++ b/pmd_projectdocs_trivia_products.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1997,7 +1997,7 @@ to catch web app security problems. Thanks to Joseph Hemler for the props!
©2024 PMD Open Source Project. All rights
reserved.
- Site last generated: Aug 29, 2024
+ Site last generated: Aug 30, 2024
diff --git a/pmd_projectdocs_trivia_similarprojects.html b/pmd_projectdocs_trivia_similarprojects.html
index 7ce2eea8db..90a0f297d0 100644
--- a/pmd_projectdocs_trivia_similarprojects.html
+++ b/pmd_projectdocs_trivia_similarprojects.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -2004,7 +2004,7 @@ only for maven project.
©2024 PMD Open Source Project. All rights
reserved.
- Site last generated: Aug 29, 2024
+ Site last generated: Aug 30, 2024
diff --git a/pmd_release_notes.html b/pmd_release_notes.html
index 168745f8ca..ea8dec7438 100644
--- a/pmd_release_notes.html
+++ b/pmd_release_notes.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1901,146 +1901,19 @@
- 30-August-2024 - 7.5.0-SNAPSHOT
+ 27-September-2024 - 7.6.0-SNAPSHOT
-The PMD team is pleased to announce PMD 7.5.0-SNAPSHOT.
+The PMD team is pleased to announce PMD 7.6.0-SNAPSHOT.
This is a minor release.
🚀 New and noteworthy
-New: Java 23 Support
-
-This release of PMD brings support for Java 23. There are no new standard language features,
-but a couple of preview language features:
-
-
- - JEP 455: Primitive Types in Patterns, instanceof, and switch (Preview)
- - JEP 476: Module Import Declarations (Preview)
- - JEP 477: Implicitly Declared Classes and Instance Main Methods (Third Preview)
- - JEP 482: Flexible Constructor Bodies (Second Preview)
-
-
-Note that String Templates (introduced as preview in Java 21 and 22) are not supported anymore in Java 23,
-see JDK-8329949 for details.
-
-In order to analyze a project with PMD that uses these preview language features,
-you’ll need to enable it via the environment variable PMD_JAVA_OPTS
and select the new language
-version 23-preview
:
-
-export PMD_JAVA_OPTS=--enable-preview
-pmd check --use-version java-23-preview ...
-
-
-Note: Support for Java 21 preview language features have been removed. The version “21-preview”
-are no longer available.
-
-🌟 New and changed rules
-New Rules
-
- - The new Java rule
AvoidSynchronizedStatement
finds synchronization blocks that
-could cause performance issues with virtual threads due to pinning.
- - The new JavaScript rule
AvoidConsoleStatements
finds any function calls
-on the Console API (e.g. console.log
). Using these in production code might negatively impact performance.
-
🐛 Fixed Issues
-
- - apex-performance
-
- - #5139: [apex] OperationWithHighCostInLoop: false negative for triggers
-
-
- - java
-
-
- - java-bestpractices
-
- - #3602: [java] GuardLogStatement: False positive when compile-time constant is created from external constants
- - #4731: [java] GuardLogStatement: Documentation is unclear why getters are flagged
- - #5145: [java] UnusedPrivateMethod: False positive with method calls inside lambda
- - #5151: [java] GuardLogStatement: Should not need to guard parameterized log messages where the replacement arg is a constant from another class
- - #5152: [java] GuardLogStatement: Should not need to guard parameterized log messages where the replacement arg is “this”
- - #5153: [java] GuardLogStatement: Should not need to guard parameterized log messages where the replacement arg is an array element
-
-
- - java-design
-
-
- - java-multithreading
-
- - #5175: [java] Update AvoidSynchronizedAtMethodLevel message to mention ReentrantLock, new rule AvoidSynchronizedStatement
-
-
- - javascript-performance
-
- - #5105: [javascript] Prohibit any console methods
-
-
- - plsql
-
- - #5125: [plsql] Improve merge statement (order of merge insert/update flexible, allow prefixes in column names)
-
-
- - plsql-bestpractices
-
- - #5132: [plsql] TomKytesDespair: XPathException for more complex exception handler
-
-
-
🚨 API Changes
-Deprecations
-
- - pmd-jsp
-
- JspParserImpl
is deprecated now. It should have been package-private
-because this is an implementation class that should not be used directly.
-
-
- - pmd-plsql
-
- MergeUpdateClausePrefix
is deprecated. This production is
-not used anymore and will be removed. Note: The whole parser implementation class has been deprecated since 7.3.0,
-as it is supposed to be internalized.
-
-
- - pmd-velocity
-
- VtlParserImpl
is deprecated now. It should have been package-private
-because this is an implementation class that should not be used directly.
-
-
- - pmd-visualforce
-
- VfParserImpl
is deprecated now. It should have been package-private
-because this is an implementation class that should not be used directly.
-
-
-
-
-Experimental
-
- - pmd-java
-
- - Renamed
isUnnamedClass()
to ASTCompilationUnit#isSimpleCompilationUnit
- ASTImplicitClassDeclaration
- ASTImportDeclaration#isModuleImport
- JavaVisitorBase#visit(ASTImplicitClassDeclaration, P)
-
-
-
✨ External Contributions
-
- - #5125: [plsql] Improve merge statement (order of merge insert/update flexible, allow prefixes in column names) - Arjen Duursma (@duursma)
- - #5175: [java] Update AvoidSynchronizedAtMethodLevel message to mention ReentrantLock, new rule AvoidSynchronizedStatement - Chas Honton (@chonton)
-
@@ -2071,7 +1944,7 @@ because this is an implementation class that should not be used directly.
©2024 PMD Open Source Project. All rights
reserved.
- Site last generated: Aug 29, 2024
+ Site last generated: Aug 30, 2024
diff --git a/pmd_release_notes_old.html b/pmd_release_notes_old.html
index 0b63fc2ff6..17c8cb9ae6 100644
--- a/pmd_release_notes_old.html
+++ b/pmd_release_notes_old.html
@@ -85,8 +85,8 @@
- - PMD 7.5.0-SNAPSHOT
- Release date: 30-August-2024
+ - PMD 7.6.0-SNAPSHOT
+ Release date: 27-September-2024
@@ -1903,13 +1903,191 @@
Previous versions of PMD can be downloaded here: Releases - pmd/pmd (GitHub)
+30-August-2024 - 7.5.0
+
+The PMD team is pleased to announce PMD 7.5.0.
+
+This is a minor release.
+
+Table Of Contents
+
+
+ - 🚀 New: Java 23 Support
+ - 🌟 New Rules
+ - 🐛 Fixed Issues
+ - 🚨 API Changes
+
+ - Deprecations
+ - Experimental
+
+
+ - ✨ External Contributions
+ - 📦 Dependency updates
+ - 📈 Stats
+
+
+🚀 New: Java 23 Support
+This release of PMD brings support for Java 23. There are no new standard language features,
+but a couple of preview language features:
+
+
+ - JEP 455: Primitive Types in Patterns, instanceof, and switch (Preview)
+ - JEP 476: Module Import Declarations (Preview)
+ - JEP 477: Implicitly Declared Classes and Instance Main Methods (Third Preview)
+ - JEP 482: Flexible Constructor Bodies (Second Preview)
+
+
+Note that String Templates (introduced as preview in Java 21 and 22) are not supported anymore in Java 23,
+see JDK-8329949 for details.
+
+In order to analyze a project with PMD that uses these preview language features,
+you’ll need to enable it via the environment variable PMD_JAVA_OPTS
and select the new language
+version 23-preview
:
+
+export PMD_JAVA_OPTS=--enable-preview
+pmd check --use-version java-23-preview ...
+
+
+Note: Support for Java 21 preview language features have been removed. The version “21-preview”
+are no longer available.
+
+🌟 New Rules
+
+ - The new Java rule
AvoidSynchronizedStatement
finds synchronization blocks that
+could cause performance issues with virtual threads due to pinning.
+ - The new JavaScript rule
AvoidConsoleStatements
finds any function calls
+on the Console API (e.g. console.log
). Using these in production code might negatively impact performance.
+
+
+🐛 Fixed Issues
+
+ - apex-performance
+
+ - #5139: [apex] OperationWithHighCostInLoop: false negative for triggers
+
+
+ - java
+
+
+ - java-bestpractices
+
+ - #3602: [java] GuardLogStatement: False positive when compile-time constant is created from external constants
+ - #4731: [java] GuardLogStatement: Documentation is unclear why getters are flagged
+ - #5145: [java] UnusedPrivateMethod: False positive with method calls inside lambda
+ - #5151: [java] GuardLogStatement: Should not need to guard parameterized log messages where the replacement arg is a constant from another class
+ - #5152: [java] GuardLogStatement: Should not need to guard parameterized log messages where the replacement arg is “this”
+ - #5153: [java] GuardLogStatement: Should not need to guard parameterized log messages where the replacement arg is an array element
+
+
+ - java-design
+
+
+ - java-multithreading
+
+ - #5175: [java] Update AvoidSynchronizedAtMethodLevel message to mention ReentrantLock, new rule AvoidSynchronizedStatement
+
+
+ - javascript-performance
+
+ - #5105: [javascript] Prohibit any console methods
+
+
+ - plsql
+
+ - #5125: [plsql] Improve merge statement (order of merge insert/update flexible, allow prefixes in column names)
+
+
+ - plsql-bestpractices
+
+ - #5132: [plsql] TomKytesDespair: XPathException for more complex exception handler
+
+
+
+
+🚨 API Changes
+Deprecations
+
+ - pmd-jsp
+
+ JspParserImpl
is deprecated now. It should have been package-private
+because this is an implementation class that should not be used directly.
+
+
+ - pmd-plsql
+
+ MergeUpdateClausePrefix
is deprecated. This production is
+not used anymore and will be removed. Note: The whole parser implementation class has been deprecated since 7.3.0,
+as it is supposed to be internalized.
+
+
+ - pmd-velocity
+
+ VtlParserImpl
is deprecated now. It should have been package-private
+because this is an implementation class that should not be used directly.
+
+
+ - pmd-visualforce
+
+ VfParserImpl
is deprecated now. It should have been package-private
+because this is an implementation class that should not be used directly.
+
+
+
+
+Experimental
+
+ - pmd-java
+
+ - Renamed
isUnnamedClass()
to ASTCompilationUnit#isSimpleCompilationUnit
+ ASTImplicitClassDeclaration
+ ASTImportDeclaration#isModuleImport
+ JavaVisitorBase#visit(ASTImplicitClassDeclaration, P)
+
+
+
+
+✨ External Contributions
+
+ - #5125: [plsql] Improve merge statement (order of merge insert/update flexible, allow prefixes in column names) - Arjen Duursma (@duursma)
+ - #5175: [java] Update AvoidSynchronizedAtMethodLevel message to mention ReentrantLock, new rule AvoidSynchronizedStatement - Chas Honton (@chonton)
+
+
+📦 Dependency updates
+
+ - #5100: Enable Dependabot
+ - #5141: Bump org.apache.maven.plugins:maven-checkstyle-plugin from 3.3.1 to 3.4.0
+ - #5142: Bump org.apache.maven.plugins:maven-compiler-plugin from 3.12.1 to 3.13.0
+ - #5144: Bump org.codehaus.mojo:versions-maven-plugin from 2.16.2 to 2.17.1
+ - #5148: Bump org.apache.commons:commons-text from 1.11.0 to 1.12.0
+ - #5149: Bump org.apache.maven.plugins:maven-site-plugin from 4.0.0-M13 to 4.0.0-M16
+ - #5160: Bump org.pcollections:pcollections from 3.2.0 to 4.0.2
+ - #5161: Bump danger from 9.4.3 to 9.5.0 in the all-gems group across 1 directory
+ - #5164: Bump org.apache.maven.plugins:maven-dependency-plugin from 3.6.1 to 3.7.1
+ - #5165: Bump the all-gems group across 1 directory with 2 updates
+ - #5171: Bump net.bytebuddy:byte-buddy-agent from 1.14.12 to 1.14.19
+ - #5180: Bump net.sf.saxon:Saxon-HE from 12.4 to 12.5
+
+
+📈 Stats
+
+ - 87 commits
+ - 25 closed tickets & PRs
+ - Days since last release: 35
+
+
26-July-2024 - 7.4.0
The PMD team is pleased to announce PMD 7.4.0.
This is a minor release.
-Table Of Contents
+Table Of Contents
- 🌟 New and changed rules
@@ -1945,7 +2123,7 @@ for inner classes and interfaces:
🐛 Fixed Issues
+🐛 Fixed Issues
- apex
@@ -2005,7 +2183,7 @@ The old rule name still works but is deprecated.
-🚨 API Changes
+🚨 API Changes
- javascript
@@ -2015,7 +2193,7 @@ The old rule name still works but is deprecated.
-✨ External Contributions
+✨ External Contributions
- #5048: [apex] Added Inner Classes to Apex Class Naming Conventions Rule - Justin Stroud (@justinstroudbah / @sgnl-labs)
- #5086: [plsql] Fixed issue with missing optional table alias in MERGE usage - Arjen Duursma (@duursma)
@@ -2028,7 +2206,7 @@ The old rule name still works but is deprecated.
- #5121: [plsql] Fixed issue with missing optional table alias in MERGE usage - Arjen Duursma (@duursma)
-📈 Stats
+📈 Stats
- 81 commits
- 32 closed tickets & PRs
@@ -2041,7 +2219,7 @@ The old rule name still works but is deprecated.
This is a minor release.
-Table Of Contents
+Table Of Contents
- 🚀 New and noteworthy
@@ -2065,7 +2243,7 @@ The old rule name still works but is deprecated.
🚀 New and noteworthy
-✨ New Rules
+✨ New Rules
- The new Java rule
UseEnumCollections
reports usages for HashSet
and HashMap
@@ -2083,7 +2261,7 @@ to the latest version (3.23.0 or newer).
See also Maven PMD Plugin.
-🐛 Fixed Issues
+🐛 Fixed Issues
- cli
@@ -2131,7 +2309,7 @@ to the latest version (3.23.0 or newer).
-🚨 API Changes
+🚨 API Changes
CPD Report Format XML
@@ -2228,7 +2406,7 @@ because this is an implementation class that should not be used directly.
The already deprecated PMD 6 compatibility module (pmd-compat6) has been removed.
See above for details.
-📈 Stats
+📈 Stats
- 88 commits
- 32 closed tickets & PRs
@@ -2241,7 +2419,7 @@ See above for details.
This is a minor release.
-Table Of Contents
+Table Of Contents
- 🚀 New and noteworthy
@@ -2276,7 +2454,7 @@ See above for details.
This PMD release ships a new version of the pmd-designer.
For the changes, see PMD Designer Changelog (7.2.0).
-🐛 Fixed Issues
+🐛 Fixed Issues
- core
@@ -2329,7 +2507,7 @@ For the changes, see 🚨 API Changes
+🚨 API Changes
Deprecated API
@@ -2341,13 +2519,13 @@ For the changes, see ✨ External Contributions
+✨ External Contributions
-📈 Stats
+📈 Stats
- 152 commits
- 46 closed tickets & PRs
@@ -2360,7 +2538,7 @@ For the changes, see Table Of Contents
+Table Of Contents
- 🚀 New and noteworthy
@@ -2389,7 +2567,7 @@ only the longest non-overlapping duplicate.
These improvements apply to all supported languages, irrespective of supported flags.
-✨ New Rules
+✨ New Rules
- The new Java rule
UnnecessaryVarargsArrayCreation
reports explicit array creation
when a varargs is expected. This is more heavy to read and could be simplified.
@@ -2408,7 +2586,7 @@ have a new property named ext
methods should be considered as valid verification methods. This allows to use custom mocking or assertion libraries.
-🐛 Fixed Issues
+🐛 Fixed Issues
- core
@@ -2501,7 +2679,7 @@ methods should be considered as valid verification methods. This allows to use c
-🚨 API Changes
+🚨 API Changes
Deprecated methods
- pmd-java
@@ -2513,13 +2691,13 @@ removal. The method is only useful for the rule itself and shouldn’t be used o
-✨ External Contributions
+✨ External Contributions
- #4864: Fix #1084 [Java] add extra assert method names to Junit rules - Erwan Moutymbo (@emouty)
- #4894: Fix #4791 Error caused by space in JDK path - Scrates1 (@Scrates1)
-📈 Stats
+📈 Stats
- 205 commits
- 71 closed tickets & PRs
@@ -3513,7 +3691,7 @@ You can see the progress in PMD
for all.
-Table Of Contents
+Table Of Contents
- Changes since 7.0.0-rc3
@@ -4349,7 +4527,7 @@ of the changes listed here, see Detailed Release Notes for PMD 7.
-
🐛 Fixed Issues
+🐛 Fixed Issues
- miscellaneous
@@ -4676,7 +4854,7 @@ of the changes listed here, see ✨ External Contributions
+
✨ External Contributions
- #1658: [core] Node support for Antlr-based languages - Matías Fraga (@matifraga)
@@ -4719,7 +4897,7 @@ of the changes listed here, see #4665: [java] Doc: Fix references AutoClosable -> AutoCloseable - Andrey Bozhko (@AndreyBozhko)
-📈 Stats
+📈 Stats
- 5007 commits
- 658 closed tickets & PRs
@@ -4748,7 +4926,7 @@ You can see the progress in PMD
for all.
-Table Of Contents
+Table Of Contents
- Changes since 7.0.0-rc2
@@ -5245,7 +5423,7 @@ of the changes listed here, see 💥 Compatibility and migration notes
See Detailed Release Notes for PMD 7.
-🐛 Fixed Issues
+🐛 Fixed Issues
- miscellaneous
@@ -5546,7 +5724,7 @@ of the changes listed here, see ✨ External Contributions
+
✨ External Contributions
- #1658: [core] Node support for Antlr-based languages - Matías Fraga (@matifraga)
@@ -5583,7 +5761,7 @@ of the changes listed here, see #4553: [java] Fix #4492: GuardLogStatement gives false positive when argument is a Java method reference - Anastasiia Koba (@anastasiia-koba)
-📈 Stats
+📈 Stats
- 4694 commits
- 617 closed tickets & PRs
@@ -5612,7 +5790,7 @@ You can see the progress in PMD
for all.
-Table Of Contents
+Table Of Contents
- Changes since 7.0.0-rc1
@@ -6065,7 +6243,7 @@ of the changes listed here, see 💥 Compatibility and migration notes
See Detailed Release Notes for PMD 7.
-🐛 Fixed Issues
+🐛 Fixed Issues
- miscellaneous
@@ -6344,7 +6522,7 @@ of the changes listed here, see ✨ External Contributions
+
✨ External Contributions
- #1658: [core] Node support for Antlr-based languages - Matías Fraga (@matifraga)
@@ -6369,7 +6547,7 @@ of the changes listed here, see #4520: [doc] Fix typo: missing closing quotation mark after CPD-END - João Dinis Ferreira (@joaodinissf)
-📈 Stats
+📈 Stats
- 4557 commits
- 572 closed tickets & PRs
@@ -6398,7 +6576,7 @@ You can see the progress in PMD
for all.
-Table Of Contents
+Table Of Contents
- 🚀 Major Features and Enhancements
@@ -6612,7 +6790,7 @@ of the changes listed here, see Detailed R
💥 Compatibility and migration notes
See Detailed Release Notes for PMD 7.
-🐛 Fixed Issues
+🐛 Fixed Issues
- miscellaneous
@@ -6856,7 +7034,7 @@ of the changes listed here, see Detailed R
-✨ External Contributions
+✨ External Contributions
- #1658: [core] Node support for Antlr-based languages - Matías Fraga (@matifraga)
@@ -6871,7 +7049,7 @@ of the changes listed here, see Detailed R
- #4428: [apex] ApexBadCrypto bug fix for #4427 - inline detection of hard coded values - Steven Stearns (@sfdcsteve)
-📈 Stats
+📈 Stats
- 4416 commits
- 464 closed tickets & PRs
@@ -6884,7 +7062,7 @@ of the changes listed here, see Detailed R
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -7002,7 +7180,7 @@ not affected by this change. The following class has been deprecated and will be
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -7144,7 +7322,7 @@ with some matches removed with a given predicate based filter.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -7265,7 +7443,7 @@ This has been done now.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -7474,7 +7652,7 @@ has been deprecated. The equivalent method Table Of Contents
+
Table Of Contents
- New and noteworthy
@@ -7590,7 +7768,7 @@ test class detection by pattern.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -7728,7 +7906,7 @@ methods. This behavior can be customized using the property
Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -7819,7 +7997,7 @@ the dependency to Jorje.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -8027,7 +8205,7 @@ You can identify them with the
Table Of Contents
+Table Of Contents
- Fixed Issues
@@ -8096,7 +8274,7 @@ You can identify them with the Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -8326,7 +8504,7 @@ and Table Of Contents
+
Table Of Contents
- New and noteworthy
@@ -8497,7 +8675,7 @@ some violations removed with a given predicate based filter.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -8734,7 +8912,7 @@ decouples you from this. A file collector is available through Table Of Contents
+
Table Of Contents
- New and noteworthy
@@ -8862,7 +9040,7 @@ will change drastically in PMD 7.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -8990,7 +9168,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
@@ -9236,7 +9414,7 @@ compared to other cli tools.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -9474,7 +9652,7 @@ This information is also available via XPath attribute
Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -9546,7 +9724,7 @@ Contributions of any kind welcome!
This is a minor release.
-Table Of Contents
+Table Of Contents
- Fixed Issues
@@ -9595,7 +9773,7 @@ Contributions of any kind welcome!
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -9821,7 +9999,7 @@ It will probably be moved away with PMD 7.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -9963,7 +10141,7 @@ It now considers usages of
Do
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -10178,7 +10356,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
@@ -10303,7 +10481,7 @@ the violation should be suppres
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -10387,7 +10565,7 @@ the parser. More information can be found in the Table Of Contents
+
Table Of Contents
- New and noteworthy
@@ -10520,7 +10698,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
@@ -10688,7 +10866,7 @@ of the language is changed.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -10842,7 +11020,7 @@ You can identify them with the
Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -10961,7 +11139,7 @@ with PMD 7.0.0.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -11081,7 +11259,7 @@ See #2758 for details.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -11349,7 +11527,7 @@ are deprecated as internal API.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -11496,7 +11674,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
@@ -11733,7 +11911,7 @@ in the developer documentation.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -11893,7 +12071,7 @@ definitive API.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -12186,7 +12364,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
@@ -12544,7 +12722,7 @@ parsed as
ASTCursorSpecificat
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -12810,7 +12988,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
- Fixed Issues
@@ -12881,7 +13059,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
@@ -13094,7 +13272,7 @@ except Table Of Contents
+
Table Of Contents
- New and noteworthy
@@ -13318,7 +13496,7 @@ subpackages, except Table Of Contents
+
Table Of Contents
- New and noteworthy
@@ -13429,7 +13607,7 @@ Java EE’s
@Inject
an
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -13655,7 +13833,7 @@ of deprecations.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -13892,7 +14070,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
@@ -14004,7 +14182,7 @@ and annotations that do not have a package declaration.
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -14217,7 +14395,7 @@ quickstart ruleset
rulesets/a
This is a minor release.
-Table Of Contents
+Table Of Contents
- New and noteworthy
@@ -14376,7 +14554,7 @@ all test methods, either using the
Table Of Contents
+Table Of Contents