Merge pull request #4831 from adangel:issue-4830-consolidate-packages

Consolidate packages in each maven module #4831
This commit is contained in:
Andreas Dangel
2024-03-04 19:46:56 +01:00
941 changed files with 1716 additions and 1649 deletions

View File

@ -6,7 +6,7 @@
<!-- Input properties:
- lang-name: matches the grammar name (eg "Swift")
- lang-terse-name: uncapitalized package name (eg "swift")
- lang-id: the language id, used in the conventional package name (eg "swift")
- node-prefix: prefix for generated AST nodes (eg "Sw")
- root-node-name: name of the root node without prefix (eg "TopLevel"), will be made to implement RootNode
@ -14,10 +14,10 @@
-->
<property name="target-package-dir" value="${antlr4.outputDirectory}/net/sourceforge/pmd/lang/${lang-terse-name}/ast"/>
<property name="target-package-dir" value="${antlr4.outputDirectory}/net/sourceforge/pmd/lang/${lang-id}/ast"/>
<property name="lang-ast-package" value="net.sourceforge.pmd.lang.${lang-terse-name}.ast" />
<property name="lang-ast-package" value="net.sourceforge.pmd.lang.${lang-id}.ast" />
<property name="ast-api-package" value="net.sourceforge.pmd.lang.ast" />
<property name="ast-impl-package" value="${ast-api-package}.impl.antlr4" />

View File

@ -324,10 +324,10 @@ entries:
subfolderitems:
- title: Index
output: web, pdf
url: /pmd_rules_vf.html
url: /pmd_rules_visualforce.html
- title: Security
output: web, pdf
url: /pmd_rules_vf_security.html
url: /pmd_rules_visualforce_security.html
- title: null
output: web, pdf
subfolders:
@ -360,16 +360,16 @@ entries:
subfolderitems:
- title: Index
output: web, pdf
url: /pmd_rules_vm.html
url: /pmd_rules_velocity.html
- title: Best Practices
output: web, pdf
url: /pmd_rules_vm_bestpractices.html
url: /pmd_rules_velocity_bestpractices.html
- title: Design
output: web, pdf
url: /pmd_rules_vm_design.html
url: /pmd_rules_velocity_design.html
- title: Error Prone
output: web, pdf
url: /pmd_rules_vm_errorprone.html
url: /pmd_rules_velocity_errorprone.html
- title: null
output: web, pdf
subfolders:
@ -502,7 +502,7 @@ entries:
url: /pmd_languages_visualforce.html
output: web, pdf
- title: Velocity Template Language (VTL)
url: /pmd_languages_vm.html
url: /pmd_languages_velocity.html
output: web, pdf
- title: XML and XML dialects
url: /pmd_languages_xml.html

View File

@ -104,7 +104,7 @@ class JDocNamespaceDeclaration < Liquid::Tag
'javascript', 'jsp', 'julia',
'kotlin', 'lang-test', 'lua', 'matlab', 'objectivec', 'perl', 'php', 'plsql', 'python', 'ruby', 'scala', 'swift',
'test', 'test-schema', 'tsql', 'ui',
'modelica', 'visualforce', 'vm', 'xml'].flat_map {|m| [m, "pmd-" + m]}
'modelica', 'visualforce', 'velocity', 'xml'].flat_map {|m| [m, "pmd-" + m]}
def self.make_base_namespaces
res = {}

View File

@ -119,7 +119,7 @@ against a previously recorded version. If there are differences, the test fails.
This helps to detect anything in the AST structure that changed, maybe unexpectedly.
* Create a test class in the package `net.sourceforge.pmd.lang.$lang.ast` with the name `$langTreeDumpTest`.
* This test class must extend `net.sourceforge.pmd.lang.ast.test.BaseTreeDumpTest`. Note: This class
* This test class must extend `net.sourceforge.pmd.lang.test.ast.BaseTreeDumpTest`. Note: This class
is written in kotlin and is available in the module "lang-test".
* Add a default constructor, that calls the super constructor like so:
@ -131,7 +131,7 @@ This helps to detect anything in the AST structure that changed, maybe unexpecte
Replace "$lang" and "$extension" accordingly.
* Implement the method `getParser()`. It must return a
subclass of `net.sourceforge.pmd.lang.ast.test.BaseParsingHelper`. See
subclass of `net.sourceforge.pmd.lang.test.ast.BaseParsingHelper`. See
`net.sourceforge.pmd.lang.ecmascript.ast.JsParsingHelper` for an example.
With this parser helper you can also specify, where the test files are searched, by using
the method `withResourceContext(Class<?>, String)`.

View File

@ -75,7 +75,7 @@ If your language only supports CPD, then you can subclass {% jdoc core::lang.imp
At this point the new language module should be available in {% jdoc core::lang.LanguageRegistry#CPD %} and usable by CPD like any other language.
4. Update the test that asserts the list of supported languages by updating the `SUPPORTED_LANGUAGES` constant in [BinaryDistributionIT](https://github.com/pmd/pmd/blob/master/pmd-dist/src/test/java/net/sourceforge/pmd/it/BinaryDistributionIT.java).
4. Update the test that asserts the list of supported languages by updating the `SUPPORTED_LANGUAGES` constant in [BinaryDistributionIT](https://github.com/pmd/pmd/blob/master/pmd-dist/src/test/java/net/sourceforge/pmd/dist/BinaryDistributionIT.java).
5. Add some tests for your CpdLexer by following the [section below](#testing-your-implementation).

View File

@ -2,7 +2,7 @@
title: Language configuration
permalink: pmd_languages_configuration.html
author: Clément Fournier
last_updated: August 2023 (7.0.0)
last_updated: February 2024 (7.0.0)
tags: [languages]
keywords: [pmd, cpd, options, command, auxclasspath, language, properties]
summary: "Summary of language configuration options and properties"
@ -114,13 +114,13 @@ The Java language can be configured with the following properties:
or relative to the Visualforce directory. Default is `../classes`. Specifying an
empty string will disable data type resolution for Apex Controller properties.
Environment variable: `PMD_VF_APEX_DIRECTORIES`
Environment variable: `PMD_VISUALFORCE_APEX_DIRECTORIES`
- `objectsDirectories`: Comma separated list of directories for Custom Objects.
Absolute or relative to the Visualforce directory. Default is `../objects`.
Specifying an empty string will disable data type resolution for Custom Object fields.
Environment variable: `PMD_VF_OBJECTS_DIRECTORIES`
Environment variable: `PMD_VISUALFORCE_OBJECTS_DIRECTORIES`
## CPP language properties

View File

@ -0,0 +1,18 @@
---
title: Velocity Template Language (VTL) support
permalink: pmd_languages_velocity.html
last_updated: February 2024 (7.0.0)
tags: [languages, PmdCapableLanguage, CpdCapableLanguage]
summary: "VTL-specific features and guidance"
---
> [Velocity](https://velocity.apache.org/engine/devel/vtl-reference.html) is a Java-based template engine.
> It permits web page designers to reference methods defined in Java code.
{% include language_info.html name='Velocity Template Language (VTL)' id='velocity' implementation='velocity::lang.velocity.VmLanguageModule' supports_pmd=true supports_cpd=true since='5.1.0' %}
{% capture id_change_note %}
The language id of the Velocity module was in PMD 6 just "vm". In PMD 7, this has been changed to "velocity". Also the
package name of the classes has been changed from vm to "velocity".
{% endcapture %}
{% include note.html content=id_change_note %}

View File

@ -10,7 +10,13 @@ summary: "Visualforce-specific features and guidance"
> [Visualforce](https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/) consists of a tag-based markup
> language that gives developers way to build applications and customize the Salesforce user interface.
{% include language_info.html name='Salesforce Visualforce' id='vf' implementation='visualforce::lang.vf.VfLanguageModule' supports_pmd=true supports_cpd=true since='5.6.0' %}
{% include language_info.html name='Salesforce Visualforce' id='visualforce' implementation='visualforce::lang.visualforce.VfLanguageModule' supports_pmd=true supports_cpd=true since='5.6.0' %}
{% capture vf_id_note %}
The language id of Visualforce was in PMD 6 just "vf". In PMD 7, this has been changed to "visualforce". Also the
package name of the classes has been changed from vf to "visualforce".
{% endcapture %}
{% include note.html content=vf_id_note %}
## Language Properties
@ -22,37 +28,37 @@ Since PMD 6.30.0 support for type resolution has been added.
The Visualforce AST now can resolve the data type of Visualforce expressions that reference
Apex Controller properties and Custom Object fields. This feature improves the precision of existing rules,
like {% rule vf/security/VfUnescapeEl %}.
like {% rule visualforce/security/VfUnescapeEl %}.
This can be configured using two language properties, which can be set as environment variables:
* `PMD_VF_APEX_DIRECTORIES`: Comma separated list of directories for Apex classes. Absolute or relative
* `PMD_VISUALFORCE_APEX_DIRECTORIES`: Comma separated list of directories for Apex classes. Absolute or relative
to the Visualforce directory. Default is `../classes`. Specifying an empty string will disable data type
resolution for Apex Controller properties.
* `PMD_VF_OBJECTS_DIRECTORIES`: Comma separated list of directories for Custom Objects. Absolute or relative
* `PMD_VISUALFORCE_OBJECTS_DIRECTORIES`: Comma separated list of directories for Custom Objects. Absolute or relative
to the Visualforce directory. Default is `../objects`. Specifying an empty string will disable data type
resolution for Custom Object fields.
{% include warning.html content="
These env vars have changed from PMD 6 to PMD 7:
* `PMD_VF_APEXDIRECTORIES` ➡️ `PMD_VF_APEX_DIRECTORIES`
* `PMD_VF_OBJECTSDIRECTORIES` ➡️ `PMD_VF_OBJECTS_DIRECTORIES`
* `PMD_VF_APEXDIRECTORIES` ➡️ `PMD_VISUALFORCE_APEX_DIRECTORIES`
* `PMD_VF_OBJECTSDIRECTORIES` ➡️ `PMD_VISUALFORCE_OBJECTS_DIRECTORIES`
"%}
### Sample usage
```
PMD_VF_APEXDIRECTORIES=../classes \
PMD_VF_OBJECTSDIRECTORIES=../objects \
PMD_VISUALFORCE_APEXDIRECTORIES=../classes \
PMD_VISUALFORCE_OBJECTSDIRECTORIES=../objects \
pmd check -d $GITHUB_WORKSPACE/force-app/main/default/pages \
-R category/vf/security.xml/VfUnescapeEl -f text
-R category/visualforce/security.xml/VfUnescapeEl -f text
```
If you run with debug logging turned on, you might see log messages like this:
```
Okt. 14, 2021 11:30:44 AM net.sourceforge.pmd.lang.vf.VfExpressionTypeVisitor visit
Okt. 14, 2021 11:30:44 AM net.sourceforge.pmd.lang.visualforce.VfExpressionTypeVisitor visit
FINE: Unable to determine type for: Account.NotFoundField__c
```

View File

@ -1,12 +0,0 @@
---
title: Velocity Template Language (VTL) support
permalink: pmd_languages_vm.html
last_updated: September 2023 (7.0.0)
tags: [languages, PmdCapableLanguage, CpdCapableLanguage]
summary: "VTL-specific features and guidance"
---
> [Velocity](https://velocity.apache.org/engine/devel/vtl-reference.html) is a Java-based template engine.
> It permits web page designers to reference methods defined in Java code.
{% include language_info.html name='Velocity Template Language (VTL)' id='vm' implementation='vm::lang.vm.VmLanguageModule' supports_pmd=true supports_cpd=true since='5.1.0' %}

View File

@ -263,8 +263,8 @@ Example:
* [pom](pmd_rules_pom.html) (Maven POM)
* [scala](pmd_rules_scala.html)
* [swift](pmd_rules_swift.html)
* [vf](pmd_rules_vf.html) (Salesforce VisualForce)
* [vm](pmd_rules_vm.html) (Apache Velocity)
* [velocity](pmd_rules_velocity.html) (Apache Velocity Template Language)
* [visualforce](pmd_rules_visualforce.html) (Salesforce VisualForce)
* [xml](pmd_rules_xml.html)
* [xsl](pmd_rules_xsl.html)

View File

@ -25,7 +25,7 @@ Each category-ruleset has a single abstract base test class, from which the indi
We have one test class per rule, which executes all test cases for a single rule. The actual test cases are
stored in separate XML files, for each rule a separate file is used.
All the test classes inherit from {% jdoc test::testframework.PmdRuleTst %},
All the test classes inherit from {% jdoc test::test.PmdRuleTst %},
which provides the seamless integration with JUnit5. This base class determines the language, the category name
and the rule name from the concrete test class. It then searches the test code on its own.
E.g. the individual rule test class
@ -41,7 +41,7 @@ test case and just execute this one.
## Where to place the test code
The {% jdoc test::testframework.PmdRuleTst %} class searches the XML file, that describes the test cases
The {% jdoc test::test.PmdRuleTst %} class searches the XML file, that describes the test cases
for a certain rule using the following convention:
The XML file is a test resource, so it is searched in the tree under `src/test/resources`.
@ -76,13 +76,13 @@ see [Using the test framework externally](#using-the-test-framework-externally).
### Test Class: AbstractClassWithoutAbstractMethodTest
This class inherits from {% jdoc test::testframework.PmdRuleTst %} and is located in the package "bestpractices",
This class inherits from {% jdoc test::test.PmdRuleTst %} and is located in the package "bestpractices",
since the rule belongs to the category "Best Practices":
``` java
package net.sourceforge.pmd.lang.java.rule.bestpractices;
import net.sourceforge.pmd.testframework.PmdRuleTst;
import net.sourceforge.pmd.test.PmdRuleTst;
class AbstractClassWithoutAbstractMethodTest extends PmdRuleTst {
// no additional unit tests
@ -251,7 +251,7 @@ the rule test manually, as SimpleAggregatorTst will fail to determine it correct
``` java
package com.example.pmd.rules;
import net.sourceforge.pmd.testframework.SimpleAggregatorTst;
import net.sourceforge.pmd.test.SimpleAggregatorTst;
class CustomRuleTest extends SimpleAggregatorTst {
@Override
@ -272,19 +272,19 @@ The test data should be placed in an XML file located in "src/test/resources" un
The framework uses the [dynamic test feature](https://junit.org/junit5/docs/current/user-guide/#writing-tests-dynamic-tests)
of JUnit5 under the hood, among a couple of utility classes:
* {% jdoc test::testframework.PmdRuleTst %}: This is the base class for tests in PMD's code base. It is a subclass of
{% jdoc test::testframework.RuleTst %} and just
* {% jdoc test::test.PmdRuleTst %}: This is the base class for tests in PMD's code base. It is a subclass of
{% jdoc test::test.RuleTst %} and just
contains the logic to determine the test resources based on the test class name.
* {% jdoc test::testframework.SimpleAggregatorTst %}: This is a more generic base class for the test classes.
* {% jdoc test::test.SimpleAggregatorTst %}: This is a more generic base class for the test classes.
It doesn't register any test cases on its own. You can register your own rule tests.
It itself is a subclass of {% jdoc test::testframework.RuleTst %}.
It itself is a subclass of {% jdoc test::test.RuleTst %}.
* The maven module "pmd-test-schema" contains the logic to parse the XML files and provides a
{% jdoc test-schema::test.schema.RuleTestCollection %}. This in turn contains a list of
{% jdoc test-schema::test.schema.RuleTestDescriptor %}s. Each rule test descriptor describes a single test case.
* {% jdoc test::testframework.RuleTst %}: uses the {%jdoc test-schema::test.schema.TestSchemaParser %}
* {% jdoc test::test.RuleTst %}: uses the {%jdoc test-schema::test.schema.TestSchemaParser %}
from module "pmd-test-schema" to parse the test cases, executes each
rule test descriptor and asserts the results. It defines a test method `ruleTests()` which is a test factory
and returns one dynamic test per rule test.

View File

@ -74,6 +74,8 @@ You might encounter additionally the following types of problems:
see [Release downloads](#release-downloads).
* Some CLI options have been removed, because they have been deprecated. See [CLI Changes](#cli-changes) for details.
* If you call CPD programmatically, the API has changed, see [New Programmatic API for CPD](pmd_release_notes_pmd7.html#new-programmatic-api-for-cpd).
* If you use Visualforce, then you need to change "vf" to "visualforce", e.g. `category/vf/security.xml` ➡️ `category/visualforce/security.xml`
* If you use Velocity, then you need to change "vm" to "velocity", e.g. `category/vm/...` ➡️ `category/velocity/...`
The following topics describe well known migration challenges in more detail.
@ -115,9 +117,13 @@ Once you have reviewed your ruleset(s), you can switch to PMD 7.
### I'm using custom rules
#### Testing
Ideally, you have written good tests already for your custom rules - see [Testing your rules](pmd_userdocs_extending_testing.html).
This helps to identify problems early on.
The base test classes {%jdoc test::test.PmdRuleTst %} and {%jdoc test::test.SimpleAggregatorTst %} have been moved out
of package `net.sourceforge.pmd.testframework`. You'll need to adjust your imports.
#### Ruleset XML
The `<rule>` tag, that defines your custom rule, is required to have a `language` attribute now. This was always the
case for XPath rules, but is now a requirement for Java rules.

View File

@ -139,6 +139,17 @@ See [#3766](https://github.com/pmd/pmd/issues/3766) for details.
Contributors: [Aaron Hurst](https://github.com/aaronhurst-google) (@aaronhurst-google),
[Edward Klimoshenko](https://github.com/eklimo) (@eklimo)
##### Changed: Visualforce
There was an inconsistency between the naming of the maven module and the language id. The language id
used the abbreviation "vf", while the maven module used the longer name "visualforce". This has been
solved by renaming the language module to its full name "visualforce". The java packages have
been renamed as well.
If you import rules, you also need to adjust the paths, e.g.
* `category/vf/security.xml` ➡️ `category/visualforce/security.xml`
##### Changed: HTML support
Support for HTML was introduced in PMD 6.55.0 as an experimental feature. With PMD 7.0.0 this
@ -148,6 +159,15 @@ is now considered stable.
Experimental Kotlin support has been promoted as stable API now.
##### Changed: Velocity Template Language (VTL)
The module was named just "vm" which was not a good name. It module and language id and
package names have been renamed to "velocity".
If you import rules, you also need to ajdust the paths, e.g.
* `category/vm/...` ➡️ `category/velocity/...`
#### Rule Changes
**New Rules**
@ -169,6 +189,13 @@ Experimental Kotlin support has been promoted as stable API now.
* {% rule java/errorprone/NonSerializableClass %}: The deprecated property `prefix` has been removed
without replacement. In a serializable class all fields have to be serializable regardless of the name.
**Renamed Rulesets**
* `category/vf/security.xml` ➡️ `category/visualforce/security.xml`
* `category/vm/bestpractices.xml` ➡️ `category/velocity/bestpractices.xml`
* `category/vm/design.xml` ➡️ `category/velocity/design.xml`
* `category/vm/errorprone.xml` ➡️ `category/velocity/errorprone.xml`
**Removed Rules**
The following previously deprecated rules have been finally removed:
@ -297,6 +324,7 @@ The rules have been moved into categories with PMD 6.
* [#4796](https://github.com/pmd/pmd/pull/4796): Remove deprecated and release rulesets
* [#4823](https://github.com/pmd/pmd/pull/4823): Update to use renamed pmd-designer
* [#4827](https://github.com/pmd/pmd/pull/4827): \[compat6] Support config errors and cpd for csharp
* [#4830](https://github.com/pmd/pmd/issues/4830): Consolidate packages in each maven module
* apex
* [#3766](https://github.com/pmd/pmd/issues/3766): \[apex] Replace Jorje with fully open source front-end
* apex-documentation
@ -384,6 +412,42 @@ in the migration guide for details.
* {%jdoc core::reporting.RuleViolation %}
* {%jdoc core::reporting.ViolationSuppressor %}
* {%jdoc core::lang.rule.xpath.XPathRule %} has been moved into subpackage {% jdoc_package core::lang.rule.xpath %}.
* pmd-html
* `net.sourceforge.pmd.lang.html.ast.HtmlCpdLexer` moved into package `cpd`: {%jdoc html::lang.html.cpd.HtmlCpdLexer %}.
* pmd-lang-test: All types have been moved under the new base package {%jdoc_package lang-test::lang.test %}:
* {%jdoc lang-test::lang.test.AbstractMetricTestRule %} (moved from `net.sourceforge.pmd.test.AbstractMetricTestRule`)
* {%jdoc lang-test::lang.test.BaseTextComparisonTest %} (moved from `net.sourceforge.pmd.test.BaseTextComparisonTest`)
* {%jdoc lang-test::lang.test.cpd.CpdTextComparisonTest %} (moved from `net.sourceforge.pmd.cpd.test.CpdTextComparisonTest`)
* {%jdoc lang-test::lang.test.ast.BaseTreeDumpTest %} (moved from `net.sourceforge.pmd.lang.ast.test.BaseTreeDumpTest`)
* Any many other types have been moved from `net.sourceforge.pmd.lang.ast.test` to `net.sourceforge.pmd.lang.test`.
* pmd-scala
* {%jdoc scala::lang.scala.cpd.ScalaCpdLexer %} (moved from `net.sourceforge.pmd.lang.scala.cpd.ScalaCpdLexer`)
* {%jdoc scala::lang.scala.cpd.ScalaTokenAdapter %} (moved from `net.sourceforge.pmd.lang.scala.cpd.ScalaTokenAdapter`)
* pmd-test
* {%jdoc test::test.lang.rule.AbstractRuleSetFactoryTest %} (moved from `net.sourceforge.pmd.lang.rule.AbstractRuleSetFactoryTest`)
* {%jdoc test::test.AbstractAntTestHelper %} (moved from `net.sourceforge.pmd.ant.AbstractAntTestHelper`)
* {%jdoc test::test.AbstractLanguageVersionTest %} (moved from `net.sourceforge.pmd.AbstractLanguageVersionTest`)
* {%jdoc test::test.PmdRuleTst %} (moved from `net.sourceforge.pmd.testframework.PmdRuleTst`)
* {%jdoc test::test.RuleTst %} (moved from `net.sourceforge.pmd.testframework.RuleTst`)
* {%jdoc test::test.SimpleAggregatorTst %} (moved from `net.sourceforge.pmd.testframework.SimpleAggregatorTst`)
* pmd-xml
* {%jdoc xml::lang.xml.pom.PomLanguageModule %} (moved from `net.sourceforge.pmd.lang.pom.PomLanguageModule`)
* {%jdoc xml::lang.xml.wsdl.WsdlLanguageModule %} (moved from `net.sourceforge.pmd.lang.wsdl.WsdlLanguageModule`)
* {%jdoc xml::lang.xml.xsl.XslLanguageModule %} (moved from `net.sourceforge.pmd.lang.xsl.XslLanguageModule`)
* pmd-visualforce
* The package `net.sourceforge.pmd.lang.vf` has been renamed to {%jdoc_package visualforce::lang.visualforce %}.
* The language id of visualforce has been changed to `visualforce` (it was previously just "vf")
* The ruleset changed: `category/vf/security.xml` ➡️ `category/visualforce/security.xml`
* pmd-velocity (renamed from pmd-vm)
* The package `net.sourceforge.pmd.lang.vm` has been renamed to {%jdoc_package velocity::lang.velocity %}.
* The language id of the Velocity module has been changed to `velocity` (it was previously just "vm")
* The rulesets changed: `category/vm/...` ➡️ `category/velocity/...`
* Many classes used the prefix `Vm`, e.g. `VmLanguageModule`. This has been changed to be `Vtl`:
* {%jdoc velocity::lang.velocity.VtlLanguageModule %}
* {%jdoc velocity::lang.velocity.ast.VtlNode %}
* {%jdoc velocity::lang.velocity.ast.VtlParser %}
* {%jdoc velocity::lang.velocity.cpd.VtlCpdLexer %}
* {%jdoc velocity::lang.velocity.rule.AbstractVtlRule %}
**Internalized classes and interfaces and methods**
@ -445,6 +509,10 @@ package or made (package) private and are _not accessible_ anymore.
* Method `replacementIfDeprecated()` is now package private.
* `net.sourceforge.pmd.properties.PropertyTypeId` - moved in subpackage `internal`.
* {%jdoc !!core::properties.PropertyDescriptor %} - method `getTypeId()` is now package private.
* pmd-doc
* The whole maven module `pmd-doc` is now considered internal API even though it was not declared so before.
It's used to generate the rule documentation for the built-in rules.
* All the classes have been moved into package `net.sourceforge.pmd.doc.internal`.
* pmd-ant
* {%jdoc !!ant::ant.Formatter %}
* Method `getRenderer()` has been removed.
@ -710,6 +778,7 @@ The annotation `@DeprecatedUntil700` has been removed.
* {%jdoc !!plsql::lang.plsql.ast.PLSQLNode %} - method `jjtAccept()` has been removed.
Use {%jdoc core::lang.ast.Node#acceptVisitor(core::lang.ast.AstVisitor,P) %} instead.
* pmd-scala
* The maven module `pmd-scala` has been removed. Use `pmd-scala_2.13` or `pmd-scala_2.12` instead.
* {%jdoc !!scala::lang.scala.ast.ScalaNode %}
* Method `accept()` has been removed. Use {%jdoc core::lang.ast.Node#acceptVisitor(core::lang.ast.AstVisitor,P) %} instead.
* Method `getNode()` has been removed. The underlying node is only available in AST nodes, but not in rule implementations.
@ -724,10 +793,10 @@ The annotation `@DeprecatedUntil700` has been removed.
* {%jdoc !!visualforce::lang.vf.DataType %} - method `fromBasicType(BasicType)` has been removed.
Use {%jdoc visualforce::lang.vf.DataType#fromTypeName(java.lang.String) %} instead.
* pmd-vm
* {%jdoc !!vm::lang.vm.ast.VmNode %} - method `jjtAccept()` has been removed.
* {%jdoc !!velocity::lang.vm.ast.VmNode %} - method `jjtAccept()` has been removed.
Use {%jdoc core::lang.ast.Node#acceptVisitor(core::lang.ast.AstVisitor,P) %} instead.
* `net.sourceforge.pmd.lang.vm.ast.VmParserVisitor`
Use {%jdoc vm::lang.vm.ast.VmVisitor %} or {%jdoc vm::lang.vm.ast.VmVisitorBase %} instead.
Use {%jdoc velocity::lang.vm.ast.VmVisitor %} or {%jdoc velocity::lang.vm.ast.VmVisitorBase %} instead.
* `net.sourceforge.pmd.lang.vm.ast.VmParserVisitorAdapter`
**Removed classes, interfaces and methods (not previously deprecated)**
@ -1124,7 +1193,7 @@ Contributors: [Aaron Hurst](https://github.com/aaronhurst-google) (@aaronhurst-g
{% rule plsql/design/ExcessiveParameterList %}, {% rule plsql/design/ExcessiveTypeLength %},
{% rule plsql/design/NcssMethodCount %}, {% rule plsql/design/NcssObjectCount %},
{% rule plsql/design/NPathComplexity %}
* VM: {% rule vm/design/ExcessiveTemplateLength %}
* Velocity: {% rule velocity/design/ExcessiveTemplateLength %}
* The general property `violationSuppressXPath` which is available for all rules to
[suppress warnings]({{ baseurl }}pmd_userdocs_suppressing_warnings.html) now uses XPath version 3.1 by default.
@ -1286,6 +1355,7 @@ See also [Detailed Release Notes for PMD 7]({{ baseurl }}pmd_release_notes_pmd7.
* [#4796](https://github.com/pmd/pmd/pull/4796): Remove deprecated and release rulesets
* [#4823](https://github.com/pmd/pmd/pull/4823): Update to use renamed pmd-designer
* [#4827](https://github.com/pmd/pmd/pull/4827): \[compat6] Support config errors and cpd for csharp
* [#4830](https://github.com/pmd/pmd/issues/4830): Consolidate packages in each maven module
* ant
* [#4080](https://github.com/pmd/pmd/issues/4080): \[ant] Split off Ant integration into a new submodule
* core

View File

@ -352,7 +352,7 @@ can be parsed now. PMD should now be able to parse Apex code up to version 59.0
{% rule plsql/design/ExcessiveParameterList %}, {% rule plsql/design/ExcessiveTypeLength %},
{% rule plsql/design/NcssMethodCount %}, {% rule plsql/design/NcssObjectCount %},
{% rule plsql/design/NPathComplexity %}
* VM: {% rule vm/design/ExcessiveTemplateLength %}
* Velocity: {% rule velocity/design/ExcessiveTemplateLength %}
* The general property `violationSuppressXPath` which is available for all rules to
[suppress warnings](pmd_userdocs_suppressing_warnings.html) now uses XPath version 3.1 by default.
@ -1739,7 +1739,7 @@ These deprecations have already been rolled out in a previous version for the
following languages:
* Java: {% jdoc_package java::lang.java.ast %}
* Java Server Pages: {% jdoc_package jsp::lang.jsp.ast %}
* Velocity Template Language: {% jdoc_package vm::lang.vm.ast %}
* Velocity Template Language: {% jdoc_package velocity::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):
@ -1754,7 +1754,7 @@ implementations, and their corresponding Parser if it exists (in the same packag
* {% jdoc plsql::lang.plsql.PLSQLTokenManager %}
* {% jdoc python::lang.python.PythonTokenManager %}
* {% jdoc visualforce::lang.vf.VfTokenManager %}
* {% jdoc vm::lang.vm.VmTokenManager %}
* {% jdoc velocity::lang.vm.VmTokenManager %}
In the **Java AST** the following attributes are deprecated and will issue a warning when used in XPath rules:
@ -1889,19 +1889,19 @@ The following usages are now deprecated **in the VM AST** (with other languages
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 {% jdoc vm::lang.vm.ast.VmNode %} or
* In the meantime you should use interfaces like {% jdoc velocity::lang.vm.ast.VmNode %} or
{% jdoc core::lang.ast.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 {% jdoc_package vm::lang.vm.directive %} as well as the classes
{% jdoc vm::lang.vm.util.DirectiveMapper %} and {% jdoc vm::lang.vm.util.LogUtil %} are deprecated
* The package {% jdoc_package velocity::lang.vm.directive %} as well as the classes
{% jdoc velocity::lang.vm.util.DirectiveMapper %} and {% jdoc velocity::lang.vm.util.LogUtil %} are deprecated
for removal. They were only used internally during parsing.
* The class {% jdoc vm::lang.vm.VmParser %} is deprecated and should not be used directly.
* The class {% jdoc velocity::lang.vm.VmParser %} is deprecated and should not be used directly.
Use {% jdoc !!core::lang.LanguageVersionHandler#getParser(ParserOptions) %} instead.
Please look at {% jdoc_package vm::lang.vm.ast %} to find out the full list of deprecations.
Please look at {% jdoc_package velocity::lang.vm.ast %} to find out the full list of deprecations.
**PLSQL AST**
@ -2111,7 +2111,7 @@ of deprecations.
* {% jdoc !q!jsp::lang.jsp.ast.DumpFacade %}
* {% jdoc !q!plsql::lang.plsql.ast.DumpFacade %}
* {% jdoc !q!visualforce::lang.vf.ast.DumpFacade %}
* {% jdoc !q!vm::lang.vm.ast.AbstractVmNode#dump(String, boolean, Writer) %}
* {% jdoc !q!velocity::lang.vm.ast.AbstractVmNode#dump(String, boolean, Writer) %}
* {% jdoc !q!xml::lang.xml.ast.DumpFacade %}
* The method {% jdoc !c!core::lang.LanguageVersionHandler#getDumpFacade(Writer, String, boolean) %} will be
removed as well. It is deprecated, along with all its implementations in the subclasses of {% jdoc core::lang.LanguageVersionHandler %}.

View File

@ -17,7 +17,7 @@
whose name is an acronym, eg PLSQL (in camelcase, "Plsql").
Defaults to lang-name.
- lang-terse-name: Terse name, used in the conventional package names
- lang-id: The language id, used in the conventional package names
It also uses the following maven properties:
@ -34,12 +34,12 @@
</not>
</condition>
<property name="target-package-dir" value="${javacc.outputDirectory}/net/sourceforge/pmd/lang/${lang-terse-name}/ast" />
<property name="target-package-dir" value="${javacc.outputDirectory}/net/sourceforge/pmd/lang/${lang-id}/ast" />
<property name="stamp-file" value="${project.build.directory}/last-generated-timestamp" />
<property name="javacc-home.path" value="${project.build.directory}/lib/javacc" />
<property name="lang-ast-package" value="net.sourceforge.pmd.lang.${lang-terse-name}.ast" />
<property name="lang-ast-package" value="net.sourceforge.pmd.lang.${lang-id}.ast" />
<property name="ast-api-package" value="net.sourceforge.pmd.lang.ast" />
<property name="ast-impl-package" value="${ast-api-package}.impl.javacc" />

View File

@ -7,7 +7,7 @@ package net.sourceforge.pmd.lang.apex;
import java.util.Arrays;
import java.util.Collection;
import net.sourceforge.pmd.AbstractLanguageVersionTest;
import net.sourceforge.pmd.test.AbstractLanguageVersionTest;
class LanguageVersionTest extends AbstractLanguageVersionTest {

View File

@ -9,7 +9,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.jupiter.api.Test;
import net.sourceforge.pmd.lang.rule.AbstractRuleSetFactoryTest;
import net.sourceforge.pmd.test.lang.rule.AbstractRuleSetFactoryTest;
import net.sourceforge.pmd.lang.rule.RuleSet;
import net.sourceforge.pmd.lang.rule.RuleSetLoader;

View File

@ -4,7 +4,7 @@
package net.sourceforge.pmd.lang.apex;
import net.sourceforge.pmd.lang.rule.AbstractRuleSetFactoryTest;
import net.sourceforge.pmd.test.lang.rule.AbstractRuleSetFactoryTest;
class RuleSetFactoryTest extends AbstractRuleSetFactoryTest {
// no additional tests yet

View File

@ -4,8 +4,8 @@
package net.sourceforge.pmd.lang.apex;
import static net.sourceforge.pmd.lang.ast.test.TestUtilsKt.assertSize;
import static net.sourceforge.pmd.lang.ast.test.TestUtilsKt.assertSuppressed;
import static net.sourceforge.pmd.lang.test.ast.TestUtilsKt.assertSize;
import static net.sourceforge.pmd.lang.test.ast.TestUtilsKt.assertSuppressed;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.util.List;

View File

@ -4,8 +4,8 @@
package net.sourceforge.pmd.lang.apex.ast;
import static net.sourceforge.pmd.lang.ast.test.NodeExtensionsKt.textOfReportLocation;
import static net.sourceforge.pmd.lang.ast.test.TestUtilsKt.assertPosition;
import static net.sourceforge.pmd.lang.test.ast.NodeExtensionsKt.textOfReportLocation;
import static net.sourceforge.pmd.lang.test.ast.TestUtilsKt.assertPosition;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.IsInstanceOf.instanceOf;
import static org.hamcrest.core.StringContains.containsString;

View File

@ -5,7 +5,7 @@
package net.sourceforge.pmd.lang.apex.ast;
import net.sourceforge.pmd.lang.apex.ApexLanguageModule;
import net.sourceforge.pmd.lang.ast.test.BaseParsingHelper;
import net.sourceforge.pmd.lang.test.ast.BaseParsingHelper;
public class ApexParsingHelper extends BaseParsingHelper<ApexParsingHelper, ASTApexFile> {

View File

@ -7,9 +7,9 @@ package net.sourceforge.pmd.lang.apex.ast;
import org.junit.jupiter.api.Test;
import net.sourceforge.pmd.lang.ast.test.BaseParsingHelper;
import net.sourceforge.pmd.lang.ast.test.BaseTreeDumpTest;
import net.sourceforge.pmd.lang.ast.test.RelevantAttributePrinter;
import net.sourceforge.pmd.lang.test.ast.BaseParsingHelper;
import net.sourceforge.pmd.lang.test.ast.BaseTreeDumpTest;
import net.sourceforge.pmd.lang.test.ast.RelevantAttributePrinter;
class ApexTreeDumpTest extends BaseTreeDumpTest {

View File

@ -6,7 +6,7 @@ package net.sourceforge.pmd.lang.apex.cpd;
import org.junit.jupiter.api.Test;
import net.sourceforge.pmd.cpd.test.CpdTextComparisonTest;
import net.sourceforge.pmd.lang.test.cpd.CpdTextComparisonTest;
import net.sourceforge.pmd.lang.apex.ApexLanguageModule;
class ApexCpdLexerTest extends CpdTextComparisonTest {

View File

@ -2,11 +2,11 @@
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.lang.apex.metrics.impl;
package net.sourceforge.pmd.lang.apex.metrics.internal;
import net.sourceforge.pmd.lang.apex.ast.ApexQualifiableNode;
import net.sourceforge.pmd.lang.ast.Node;
import net.sourceforge.pmd.testframework.SimpleAggregatorTst;
import net.sourceforge.pmd.test.SimpleAggregatorTst;
/**
* Executes the metrics testing rules.

View File

@ -2,12 +2,12 @@
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.lang.apex.metrics.impl;
package net.sourceforge.pmd.lang.apex.metrics.internal;
import net.sourceforge.pmd.lang.apex.ast.ASTMethod;
import net.sourceforge.pmd.lang.apex.metrics.ApexMetrics;
import net.sourceforge.pmd.lang.ast.Node;
import net.sourceforge.pmd.test.AbstractMetricTestRule;
import net.sourceforge.pmd.lang.test.AbstractMetricTestRule;
/**
* @author Gwilym Kuiper

View File

@ -2,13 +2,13 @@
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.lang.apex.metrics.impl;
package net.sourceforge.pmd.lang.apex.metrics.internal;
import net.sourceforge.pmd.lang.apex.ast.ASTMethod;
import net.sourceforge.pmd.lang.apex.ast.ASTUserClassOrInterface;
import net.sourceforge.pmd.lang.apex.metrics.ApexMetrics;
import net.sourceforge.pmd.lang.ast.Node;
import net.sourceforge.pmd.test.AbstractMetricTestRule;
import net.sourceforge.pmd.lang.test.AbstractMetricTestRule;
/**
* Tests standard cyclo.

View File

@ -2,11 +2,11 @@
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.lang.apex.metrics.impl;
package net.sourceforge.pmd.lang.apex.metrics.internal;
import net.sourceforge.pmd.lang.apex.metrics.ApexMetrics;
import net.sourceforge.pmd.lang.ast.Node;
import net.sourceforge.pmd.test.AbstractMetricTestRule;
import net.sourceforge.pmd.lang.test.AbstractMetricTestRule;
/**
* @author Clément Fournier

View File

@ -12,7 +12,7 @@ import net.sourceforge.pmd.lang.apex.ast.ASTUserEnum;
import net.sourceforge.pmd.lang.apex.ast.ASTUserInterface;
import net.sourceforge.pmd.lang.apex.ast.ASTUserTrigger;
import net.sourceforge.pmd.lang.apex.ast.ApexParserTestBase;
import net.sourceforge.pmd.lang.ast.test.TestUtilsKt;
import net.sourceforge.pmd.lang.test.ast.TestUtilsKt;
import net.sourceforge.pmd.reporting.Report;
class AbstractApexRuleTest extends ApexParserTestBase {

View File

@ -4,7 +4,7 @@
package net.sourceforge.pmd.lang.apex.rule;
import static net.sourceforge.pmd.lang.ast.test.TestUtilsKt.assertSize;
import static net.sourceforge.pmd.lang.test.ast.TestUtilsKt.assertSize;
import org.junit.jupiter.api.Test;

View File

@ -4,7 +4,7 @@
package net.sourceforge.pmd.lang.apex.rule.bestpractices;
import net.sourceforge.pmd.testframework.PmdRuleTst;
import net.sourceforge.pmd.test.PmdRuleTst;
class ApexAssertionsShouldIncludeMessageTest extends PmdRuleTst {
// no additional unit tests

Some files were not shown because too many files have changed in this diff Show More