Prepare pmd release 6.22.0
This commit is contained in:
@ -3,7 +3,7 @@ repository: pmd/pmd
|
|||||||
pmd:
|
pmd:
|
||||||
version: 6.22.0
|
version: 6.22.0
|
||||||
previous_version: 6.21.0
|
previous_version: 6.21.0
|
||||||
date: ??-????-2020
|
date: 12-March-2020
|
||||||
release_type: minor
|
release_type: minor
|
||||||
|
|
||||||
# release types: major, minor, bugfix
|
# release types: major, minor, bugfix
|
||||||
|
@ -73,6 +73,136 @@ the breaking API changes will be performed in 7.0.0.
|
|||||||
an API is tagged as `@Deprecated` or not in the latest minor release. During the development of 7.0.0,
|
an API is tagged as `@Deprecated` or not in the latest minor release. During the development of 7.0.0,
|
||||||
we may decide to remove some APIs that were not tagged as deprecated, though we'll try to avoid it." %}
|
we may decide to remove some APIs that were not tagged as deprecated, though we'll try to avoid it." %}
|
||||||
|
|
||||||
|
#### 6.22.0
|
||||||
|
|
||||||
|
##### Deprecated APIs
|
||||||
|
|
||||||
|
###### Internal API
|
||||||
|
|
||||||
|
Those APIs are not intended to be used by clients, and will be hidden or removed with PMD 7.0.0.
|
||||||
|
You can identify them with the `@InternalApi` annotation. You'll also get a deprecation warning.
|
||||||
|
|
||||||
|
* {% jdoc java::lang.java.JavaLanguageHandler %}
|
||||||
|
* {% jdoc java::lang.java.JavaLanguageParser %}
|
||||||
|
* {% jdoc java::lang.java.JavaDataFlowHandler %}
|
||||||
|
* Implementations of {% jdoc core::lang.rule.RuleViolationFactory %} in each
|
||||||
|
language module, eg {% jdoc java::lang.java.rule.JavaRuleViolationFactory %}.
|
||||||
|
See javadoc of {% jdoc core::lang.rule.RuleViolationFactory %}.
|
||||||
|
* Implementations of {% jdoc core::RuleViolation %} in each language module,
|
||||||
|
eg {% jdoc java::lang.java.rule.JavaRuleViolation %}. See javadoc of
|
||||||
|
{% jdoc core::RuleViolation %}.
|
||||||
|
|
||||||
|
* {% jdoc core::rules.RuleFactory %}
|
||||||
|
* {% jdoc core::rules.RuleBuilder %}
|
||||||
|
* Constructors of {% jdoc core::RuleSetFactory %}, use factory methods from {% jdoc core::RulesetsFactoryUtils %} instead
|
||||||
|
* {% jdoc core::RulesetsFactoryUtils#getRulesetFactory(core::PMDConfiguration, core::util.ResourceLoader) %}
|
||||||
|
|
||||||
|
* {% jdoc apex::lang.apex.ast.AbstractApexNode %}
|
||||||
|
* {% jdoc apex::lang.apex.ast.AbstractApexNodeBase %}, and the related `visit`
|
||||||
|
methods on {% jdoc apex::lang.apex.ast.ApexParserVisitor %} and its implementations.
|
||||||
|
Use {% jdoc apex::lang.apex.ast.ApexNode %} instead, now considers comments too.
|
||||||
|
|
||||||
|
###### For removal
|
||||||
|
|
||||||
|
* pmd-core
|
||||||
|
* {% jdoc core::lang.dfa.DFAGraphRule %} and its implementations
|
||||||
|
* {% jdoc core::lang.dfa.DFAGraphMethod %}
|
||||||
|
* Many methods on the {% jdoc core::lang.ast.Node %} interface
|
||||||
|
and {% jdoc core::lang.ast.AbstractNode %} base class. See their javadoc for details.
|
||||||
|
* {% jdoc !!core::lang.ast.Node#isFindBoundary() %} is deprecated for XPath queries.
|
||||||
|
* Many APIs of {% jdoc_package core::lang.metrics %}, though most of them were internal and
|
||||||
|
probably not used directly outside of PMD. Use {% jdoc core::lang.metrics.MetricsUtil %} as
|
||||||
|
a replacement for the language-specific façades too.
|
||||||
|
* {% jdoc core::lang.ast.QualifiableNode %}, {% jdoc core::lang.ast.QualifiedName %}
|
||||||
|
* pmd-java
|
||||||
|
* {% jdoc java::lang.java.AbstractJavaParser %}
|
||||||
|
* {% jdoc java::lang.java.AbstractJavaHandler %}
|
||||||
|
* [`ASTAnyTypeDeclaration.TypeKind`](https://javadoc.io/page/net.sourceforge.pmd/pmd-java/6.21.0/net/sourceforge/pmd/lang/java/ast/ASTAnyTypeDeclaration.TypeKind.html)
|
||||||
|
* {% jdoc !!java::lang.java.ast.ASTAnyTypeDeclaration#getKind() %}
|
||||||
|
* {% jdoc java::lang.java.ast.JavaQualifiedName %}
|
||||||
|
* {% jdoc !!java::lang.java.ast.ASTCatchStatement#getBlock() %}
|
||||||
|
* {% jdoc !!java::lang.java.ast.ASTCompilationUnit#declarationsAreInDefaultPackage() %}
|
||||||
|
* {% jdoc java::lang.java.ast.JavaQualifiableNode %}
|
||||||
|
* {% jdoc !!java::lang.java.ast.ASTAnyTypeDeclaration#getQualifiedName() %}
|
||||||
|
* {% jdoc !!java::lang.java.ast.ASTMethodOrConstructorDeclaration#getQualifiedName() %}
|
||||||
|
* {% jdoc !!java::lang.java.ast.ASTLambdaExpression#getQualifiedName() %}
|
||||||
|
* {% jdoc_package java::lang.java.qname %} and its contents
|
||||||
|
* {% jdoc java::lang.java.ast.MethodLikeNode %}
|
||||||
|
* Its methods will also be removed from its implementations,
|
||||||
|
{% jdoc java::lang.java.ast.ASTMethodOrConstructorDeclaration %},
|
||||||
|
{% jdoc java::lang.java.ast.ASTLambdaExpression %}.
|
||||||
|
* {% jdoc !!java::lang.java.ast.ASTAnyTypeDeclaration#getImage() %} will be removed. Please use `getSimpleName()`
|
||||||
|
instead. This affects {% jdoc !!java::lang.java.ast.ASTAnnotationTypeDeclaration#getImage() %},
|
||||||
|
{% jdoc !!java::lang.java.ast.ASTClassOrInterfaceDeclaration#getImage() %}, and
|
||||||
|
{% jdoc !!java::lang.java.ast.ASTEnumDeclaration#getImage() %}.
|
||||||
|
* Several methods of {% jdoc java::lang.java.ast.ASTTryStatement %}, replacements with other names
|
||||||
|
have been added. This includes the XPath attribute `@Finally`, replace it with a test for `child::FinallyStatement`.
|
||||||
|
* Several methods named `getGuardExpressionNode` are replaced with `getCondition`. This affects the
|
||||||
|
following nodes: WhileStatement, DoStatement, ForStatement, IfStatement, AssertStatement, ConditionalExpression.
|
||||||
|
* {% jdoc java::lang.java.ast.ASTYieldStatement %} will not implement {% jdoc java::lang.java.ast.TypeNode %}
|
||||||
|
anymore come 7.0.0. Test the type of the expression nested within it.
|
||||||
|
* {% jdoc java::lang.java.metrics.JavaMetrics %}, {% jdoc java::lang.java.metrics.JavaMetricsComputer %}
|
||||||
|
* {% jdoc !!java::lang.java.ast.ASTArguments#getArgumentCount() %}.
|
||||||
|
Use {% jdoc java::lang.java.ast.ASTArguments#size() %} instead.
|
||||||
|
* {% jdoc !!java::lang.java.ast.ASTFormalParameters#getParameterCount() %}.
|
||||||
|
Use {% jdoc java::lang.java.ast.ASTFormalParameters#size() %} instead.
|
||||||
|
* pmd-apex
|
||||||
|
* {% jdoc apex::lang.apex.metrics.ApexMetrics %}, {% jdoc apex::lang.apex.metrics.ApexMetricsComputer %}
|
||||||
|
|
||||||
|
###### In ASTs (JSP)
|
||||||
|
|
||||||
|
As part of the changes we'd like to do to AST classes for 7.0.0, we would like to
|
||||||
|
hide some methods and constructors that rule writers should not have access to.
|
||||||
|
The following usages are now deprecated **in the JSP AST** (with other languages to come):
|
||||||
|
|
||||||
|
* Manual instantiation of nodes. **Constructors of node classes are deprecated** and
|
||||||
|
marked {% jdoc core::annotation.InternalApi %}. Nodes should only be obtained from the parser,
|
||||||
|
which for rules, means that they never need to instantiate node themselves.
|
||||||
|
Those constructors will be made package private with 7.0.0.
|
||||||
|
* **Subclassing of abstract node classes, or usage of their type**. The base classes are internal API
|
||||||
|
and will be hidden in version 7.0.0. You should not couple your code to them.
|
||||||
|
* In the meantime you should use interfaces like {% jdoc jsp::lang.jsp.ast.JspNode %} 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 class {% jdoc jsp::lang.jsp.JspParser %} is deprecated and should not be used directly.
|
||||||
|
Use {% jdoc !!core::lang.LanguageVersionHandler#getParser(ParserOptions) %} instead.
|
||||||
|
|
||||||
|
Please look at {% jdoc_package jsp::lang.jsp.ast %} to find out the full list of deprecations.
|
||||||
|
|
||||||
|
###### In ASTs (Velocity)
|
||||||
|
|
||||||
|
As part of the changes we'd like to do to AST classes for 7.0.0, we would like to
|
||||||
|
hide some methods and constructors that rule writers should not have access to.
|
||||||
|
The following usages are now deprecated **in the VM AST** (with other languages to come):
|
||||||
|
|
||||||
|
* Manual instantiation of nodes. **Constructors of node classes are deprecated** and
|
||||||
|
marked {% jdoc core::annotation.InternalApi %}. Nodes should only be obtained from the parser,
|
||||||
|
which for rules, means that they never need to instantiate node themselves.
|
||||||
|
Those constructors will be made package private with 7.0.0.
|
||||||
|
* **Subclassing of abstract node classes, or usage of their type**. The base classes are internal API
|
||||||
|
and will be hidden in version 7.0.0. You should not couple your code to them.
|
||||||
|
* In the meantime you should use interfaces like {% jdoc vm::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
|
||||||
|
for removal. They were only used internally during parsing.
|
||||||
|
* The class {% jdoc vm::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.
|
||||||
|
|
||||||
|
##### PLSQL AST
|
||||||
|
|
||||||
|
The production and node `ASTCursorBody` was unnecessary, not used and has been removed. Cursors have been already
|
||||||
|
parsed as `ASTCursorSpecification`.
|
||||||
|
|
||||||
#### 6.21.0
|
#### 6.21.0
|
||||||
|
|
||||||
##### Deprecated APIs
|
##### Deprecated APIs
|
||||||
|
Reference in New Issue
Block a user