Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[all] Breaking API changes for 7.0.0 #881

Closed
64 tasks done
Tracked by #3898
oowekyala opened this issue Jan 25, 2018 · 0 comments
Closed
64 tasks done
Tracked by #3898

[all] Breaking API changes for 7.0.0 #881

oowekyala opened this issue Jan 25, 2018 · 0 comments
Labels
in:pmd-internals Affects PMD's internals
Milestone

Comments

@oowekyala
Copy link
Member

oowekyala commented Jan 25, 2018

List of breaking API changes and deprecated APIs to be removed for 7.0.0:

  • Make AbstractJspNode, AbstractVFNode, and AbstractLombokAwareRule abstract classes
  • Remove default implementation of getXPathNodeName from AbstractNode
  • The toString methods of nodes can be repurposed as soon as 7.0.0 to output more useful debugging info, see [core] Add getXPathNodeName to the Node interface #879
  • Move JavaQualifiedName out of the net.sourceforge.pmd.lang.java.ast, as it's not part of the AST in any way.
  • Add method getFormalParameters() in interface ASTMethodOrConstructorDeclaration
  • change return type of Object getNextToken(); in n.s.p.lang.TokenManager to GenericToken or even T (with <T extends GenericToken>). See [core] Refactor CPD token filtering #1039

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:
    • Rule.usesDFA, Rule.usesTypeResolution, Rule.usesMultifile, Rule.usesRuleChain
    • Rule.setUsesDFA, Rule.setUsesTypeResolution, Rule.setUsesMultifile
    • Implementations in AbstractRule and AbstractDelegateRule
  • Old benchmark API, in n.s.pmd.benchmark:
    • Benchmark
    • Benchmarker
    • BenchmarkReport
    • BenchmarkResult
    • RuleDuration
    • StringBuilderCR
    • TextReport
  • StringUtil members:
    • startsWithAny
    • isNotEmpty
    • isEmpty
    • isMissing
    • areSemanticEquals
    • replaceString (2 overloads)
    • substringsOf(2 overloads)
    • asStringOn (2 overloads)
    • lpad
  • CollectionUtil members (IIRC some of these implementations should be moved to the eclipse plugin)
    • arraysAreEqual
    • valuesAreTransitivelyEqual
    • areEqual
    • areSemanticEquals
    • addWithoutDuplicates (2 overloads)
  • 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:

oowekyala added a commit to oowekyala/pmd that referenced this issue Jan 25, 2018
@jsotuyod jsotuyod added this to the 7.0.0 milestone Jan 25, 2018
@adangel adangel added the in:pmd-internals Affects PMD's internals label Jan 26, 2018
adangel added a commit that referenced this issue Sep 11, 2018
adangel added a commit to adangel/pmd that referenced this issue Jan 18, 2023
adangel added a commit to adangel/pmd that referenced this issue Jan 18, 2023
adangel added a commit to adangel/pmd that referenced this issue Jan 18, 2023
adangel added a commit to adangel/pmd that referenced this issue Jan 18, 2023
It was only used be the old ui viewer, which was removed with pmd#1431 already
adangel added a commit to adangel/pmd that referenced this issue Jan 19, 2023
It was only used be the old ui viewer, which was removed with pmd#1431 already
@adangel adangel mentioned this issue Jan 23, 2023
55 tasks
jsotuyod added a commit that referenced this issue Jan 24, 2023
…vals

[core] Remove deprecated classes/methods (finish #881)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
in:pmd-internals Affects PMD's internals
Projects
None yet
Development

No branches or pull requests

3 participants