List of breaking API changes and deprecated APIs to be removed for 7.0.0:
Deprecated APIs:
AbstractNode.hasDecendantOfAnyType
n.s.pmd.util.viewer.gui (old ast viewer)
n.s.pmd.util.designer (old designer)
PMD.VERSION
deprecated on master
removed in pmd/7.0.x via 9d1c186
RuleSetFactory(ClassLoader, RulePriority, boolean, boolean)
Previous rule dependency accessors:
Old benchmark API, in n.s.pmd.benchmark:
StringUtil members:
CollectionUtil members (IIRC some of these implementations should be moved to the eclipse plugin)
Property constructors (it may make sense to deprecate some other ones too)
EnumeratedProperty<E>(String, String, String[], E[], int, float)
EnumeratedProperty<E>(String, String, String[], E[], int, Class<E>, float)
PMDParameters. transformParametersIntoConfiguration
net.sourceforge.pmd.pmd.dcd.graph.MemberNode.equals(...)
ASTConstructorDeclaration.getParameters()
deprecate Node's <T> void findDescendantsOfType(Class<T> targetType, List<T> results, boolean crossFindBoundaries)
deprecate Node's <T> void findDescendantsOfType(Class<T> targetType, List<T> results, boolean crossFindBoundaries)
add public <T> List<T> findDescendantsOfType(final Class<T> targetType, final boolean crossBoundaries) to Node
Remove class net.sourceforge.pmd.util.log.ConsoleLogHandler entirely (see [core] Log only once all messages #1045 )
Make net.sourceforge.pmd.lang.java.ast.ASTFormalParameter::setVarargs() package-private
Actually every setXX method of AST nodes that's only used by the parser should be made package private
Remove class net.sourceforge.pmd.lang.java.xpath.TypeOfFunction entirely
Remove all overloads of typeof from net.sourceforge.pmd.lang.java.xpath.JavaFunctions
Remove isA, isEither and isNeither from net.sourceforge.pmd.lang.java.typeresolution.TypeHelper
Remove CommentUtil (see [java] Deprecated CommentUtil, move implementation to AST Comment #1198 , [java] Update comment rules for java #2802 )
Remove AbstractCommentRule.tagsIndicesIn() (see [java] Deprecated CommentUtil, move implementation to AST Comment #1198 , [java] Update comment rules for java #2802 )
ASTImportDeclaration should no longer be a TypeNode
ASTImportDeclaration's setImportOnDemand and setStatic should be made package-private
Remove ASTConditionalExpression.setTernary and ASTConditionalExpression.isTernary
Remove package net.sourceforge.pmd.lang.dfa.report (see [core] Deprecate ReportTree #1283 )
Remove deprecated apex visit(ApexNode<?>...) (see [apex] Fix class cast exceptions when using javadoc #1408 )
Open
Remaining tasks:
List of breaking API changes and deprecated APIs to be removed for 7.0.0:
JavaQualifiedNameout of thenet.sourceforge.pmd.lang.java.ast, as it's not part of the AST in any way.getFormalParameters()in interfaceASTMethodOrConstructorDeclarationObject getNextToken();inn.s.p.lang.TokenManagertoGenericTokenor evenT(with<T extends GenericToken>). See [core] Refactor CPD token filtering #1039Deprecated APIs:
AbstractNode.hasDecendantOfAnyTypen.s.pmd.util.viewer.gui(old ast viewer)n.s.pmd.util.designer(old designer)PMD.VERSIONRuleSetFactory(ClassLoader, RulePriority, boolean, boolean)Rule.usesDFA,Rule.usesTypeResolution,Rule.usesMultifile,Rule.usesRuleChainRule.setUsesDFA,Rule.setUsesTypeResolution,Rule.setUsesMultifileAbstractRuleandAbstractDelegateRulen.s.pmd.benchmark:StringUtilmembers:startsWithAnyisNotEmptyisEmptyisMissingareSemanticEqualsreplaceString(2 overloads)substringsOf(2 overloads)asStringOn(2 overloads)lpadCollectionUtilmembers (IIRC some of these implementations should be moved to the eclipse plugin)arraysAreEqualvaluesAreTransitivelyEqualareEqualareSemanticEqualsaddWithoutDuplicates(2 overloads)EnumeratedProperty<E>(String, String, String[], E[], int, float)EnumeratedProperty<E>(String, String, String[], E[], int, Class<E>, float)PMDParameters. transformParametersIntoConfigurationnet.sourceforge.pmd.pmd.dcd.graph.MemberNode.equals(...)ASTConstructorDeclaration.getParameters()Node's<T> void findDescendantsOfType(Class<T> targetType, List<T> results, boolean crossFindBoundaries)Node's<T> void findDescendantsOfType(Class<T> targetType, List<T> results, boolean crossFindBoundaries)public <T> List<T> findDescendantsOfType(final Class<T> targetType, final boolean crossBoundaries)toNodenet.sourceforge.pmd.util.log.ConsoleLogHandlerentirely (see [core] Log only once all messages #1045)net.sourceforge.pmd.lang.java.ast.ASTFormalParameter::setVarargs()package-privatesetXXmethod of AST nodes that's only used by the parser should be made package privatenet.sourceforge.pmd.lang.java.xpath.TypeOfFunctionentirelytypeoffromnet.sourceforge.pmd.lang.java.xpath.JavaFunctionsisA,isEitherandisNeitherfromnet.sourceforge.pmd.lang.java.typeresolution.TypeHelperCommentUtil(see [java] Deprecated CommentUtil, move implementation to AST Comment #1198, [java] Update comment rules for java #2802)AbstractCommentRule.tagsIndicesIn()(see [java] Deprecated CommentUtil, move implementation to AST Comment #1198, [java] Update comment rules for java #2802)ASTImportDeclarationshould no longer be aTypeNodeASTImportDeclaration'ssetImportOnDemandandsetStaticshould be made package-privateASTConditionalExpression.setTernaryandASTConditionalExpression.isTernarynet.sourceforge.pmd.lang.dfa.report(see [core] Deprecate ReportTree #1283)Open
net.sourceforge.pmd.cli.PMDParameters.RulePriorityConverterentirely (see [core] Fix JCommander help for -min option #1147)RuleSetWriter.RULESET_NS_URInet.sourceforge.pmd.lang.rule.RuleReference.RuleReference()(default constructor)pmd-core/src/main/resources/net/sourceforge/pmd/util/viewer/resources/viewer_strings.propertiesRemaining tasks: