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

[core] Cleanup remaining experimental and deprecated API #4349

Closed
19 tasks done
Tracked by #3898
adangel opened this issue Jan 23, 2023 · 0 comments · Fixed by #4811
Closed
19 tasks done
Tracked by #3898

[core] Cleanup remaining experimental and deprecated API #4349

adangel opened this issue Jan 23, 2023 · 0 comments · Fixed by #4811
Assignees
Labels
is:deprecation The main focus is deprecating public APIs or rules, eg to make them internal, or removing them
Milestone

Comments

@adangel
Copy link
Member

adangel commented Jan 23, 2023

  • Review all types, methods, fields, that are marked as
    • @Deprecated
    • @DeprecatedUntil700
    • @Experimental
  • Consider deleting the deprecated APIs
  • Consider promoting the experimental APIs
  • The goal is, that there are almost no deprecated APIs in PMD 7, so that we can start fresh with the next version cycle (deprecating other APIs, introducing new APIs, ...)
  • This includes deprecated CLI parameters

Tasks:

  • Remove deprecated rules

  • deprecations in pmd-jsp

    • net.sourceforge.pmd.lang.jsp.ast.JspNode#jjtAccept
    • net.sourceforge.pmd.lang.jsp.ast.JspParserVisitor
    • net.sourceforge.pmd.lang.jsp.ast.JspParserVisitorAdapter
  • deprecations in pmd-modelica

    • net.sourceforge.pmd.lang.modelica.ast.ModelicaNode#jjtAccept
    • net.sourceforge.pmd.lang.modelica.ast.ModelicaParserVisitor
    • net.sourceforge.pmd.lang.modelica.ast.ModelicaParserVisitorAdapter
    • net.sourceforge.pmd.lang.modelica.rule.AmbiguousResolutionRule
    • net.sourceforge.pmd.lang.modelica.rule.ConnectUsingNonConnector
  • deprecations in pmd-plsql

    • net.sourceforge.pmd.lang.plsql.ast.PLSQLNode#jjtAccept
    • net.sourceforge.pmd.lang.plsql.ast.PLSQLParserVisitor
    • net.sourceforge.pmd.lang.plsql.ast.PLSQLParserVisitorAdapter
  • deprecations in pmd-scala

    • net.sourceforge.pmd.lang.scala.ast.AbstractScalaNode#getNode
    • net.sourceforge.pmd.lang.scala.ast.ScalaNode#accept
    • net.sourceforge.pmd.lang.scala.ast.ScalaNode#getNode
    • ⚠️ Note: Also rename ScalaParserVisitor -> ScalaVisitor, and ScalaParserVisitorAdapter -> ScalaVisitorBase
  • deprecations in pmd-vm

    • net.sourceforge.pmd.lang.vm.ast.VmNode#jjtAccept
    • net.sourceforge.pmd.lang.vm.ast.VmParserVisitor
    • net.sourceforge.pmd.lang.vm.ast.VmParserVisitorAdapter
  • deprecations in pmd-javascript

    • net.sourceforge.pmd.lang.ecmascript.ast.AbstractEcmascriptNode#getNode
    • net.sourceforge.pmd.lang.ecmascript.ast.ASTFunctionNode#getBody(int)
    • net.sourceforge.pmd.lang.ecmascript.ast.ASTTryStatement#isCatch
    • net.sourceforge.pmd.lang.ecmascript.ast.ASTTryStatement#isFinally
    • net.sourceforge.pmd.lang.ecmascript.ast.EcmascriptNode#jjtAccept
    • net.sourceforge.pmd.lang.ecmascript.ast.EcmascriptNode#getNode
    • net.sourceforge.pmd.lang.ecmascript.ast.EcmascriptParserVisitor
    • net.sourceforge.pmd.lang.ecmascript.ast.EcmascriptParserVisitorAdapter
  • deprecations in pmd-apex

    • net.sourceforge.pmd.lang.apex.ast.ApexNode#jjtAccept
    • net.sourceforge.pmd.lang.apex.ast.ApexParserVisitor
    • net.sourceforge.pmd.lang.apex.ast.ApexParserVisitorAdapter
    • net.sourceforge.pmd.lang.apex.ast.ASTAssignmentExpression#getOperator
    • net.sourceforge.pmd.lang.apex.ast.ASTBinaryExpression#getOperator
    • net.sourceforge.pmd.lang.apex.ast.ASTBooleanExpression#getOperator
    • net.sourceforge.pmd.lang.apex.ast.ASTPostfixExpression#getOperator
    • net.sourceforge.pmd.lang.apex.ast.ASTPrefixExpression#getOperator
    • net.sourceforge.pmd.lang.apex.rule.security.Helper
  • deprecations in pmd-visualforce

    • net.sourceforge.pmd.lang.vf.ast.VfNode#jjtAccept
    • net.sourceforge.pmd.lang.vf.ast.VfParserVisitor
    • net.sourceforge.pmd.lang.vf.ast.VfParserVisitorAdapter
    • net.sourceforge.pmd.lang.vf.DataType#fromBasicType
  • deprecations in pmd-core

    • net.sourceforge.pmd.cpd.CpdLanguageProperties#DEFAULT_SKIP_BLOCKS_PATTERN
    • net.sourceforge.pmd.internal.LogMessages#runWithHelpFlagMessage
    • net.sourceforge.pmd.lang.ast.impl.antlr4.BaseAntlrNode#joinTokenText
    • net.sourceforge.pmd.lang.ast.Node#getImage and net.sourceforge.pmd.lang.ast.Node#hasImageEqualTo -> [core] Undeprecate Node::getImage() in PMD 7 #4792
    • net.sourceforge.pmd.lang.ast.Node#getNthParent, getFirstParentOfType, getParentsOfType, findChildrenOfType, findDescendantsOfType, findDescendantsOfType, getFirstChildOfType, getFirstDescendantOfType, hasDescendantOfType, findChildNodesWithXPath
    • net.sourceforge.pmd.lang.document.FileCollector#addZipFile
    • net.sourceforge.pmd.lang.document.FileId#toString
    • net.sourceforge.pmd.lang.document.TextDocument#readOnlyString(java.lang.CharSequence, java.lang.String, net.sourceforge.pmd.lang.LanguageVersion)
    • net.sourceforge.pmd.lang.document.TextFile#dataSourceCompat
    • net.sourceforge.pmd.lang.rule.xpath.XPathVersion#XPATH_1_0, XPATH_1_0_COMPATIBILITY, XPATH_2_0
    • net.sourceforge.pmd.lang.rule.AbstractDelegateRule
    • net.sourceforge.pmd.lang.rule.AbstractRule#deepCopyValuesTo
    • net.sourceforge.pmd.lang.rule.AbstractRule#addRuleChainVisit
    • net.sourceforge.pmd.lang.rule.RuleReference#setRuleSetReference
    • net.sourceforge.pmd.lang.rule.RuleReference#hasOverriddenProperty
    • net.sourceforge.pmd.lang.rule.XPathRule#XPATH_DESCRIPTOR
    • net.sourceforge.pmd.lang.rule.XPathRule#VERSION_DESCRIPTOR
    • net.sourceforge.pmd.lang.Language#getTerseName
    • net.sourceforge.pmd.lang.LanguageRegistry#getLanguage
    • net.sourceforge.pmd.lang.LanguageRegistry#findLanguageByTerseName
    • net.sourceforge.pmd.lang.LanguageRegistry#findByExtension
    • net.sourceforge.pmd.lang.LanguageVersionDiscoverer#getLanguagesForFile(java.io.File)
    • net.sourceforge.pmd.properties.AbstractPropertySource#propertyDescriptors
    • net.sourceforge.pmd.properties.AbstractPropertySource#propertyValuesByDescriptor
    • net.sourceforge.pmd.properties.AbstractPropertySource#copyPropertyDescriptors
    • net.sourceforge.pmd.properties.AbstractPropertySource#copyPropertyValues
    • net.sourceforge.pmd.properties.PropertySource#dysfunctionReason -> [core] Undeprecate PropertySource::dysfunctionReason in PMD 7 #4793
    • net.sourceforge.pmd.reporting.Reportable#getBeginLine, getEndLine, getBeginColumn, getEndColumn
    • net.sourceforge.pmd.util.datasource.internal.AbstractDataSource
    • net.sourceforge.pmd.util.datasource.DataSource
    • net.sourceforge.pmd.util.datasource.FileDataSource
    • net.sourceforge.pmd.util.datasource.ReaderDataSource
    • net.sourceforge.pmd.util.datasource.ZipDataSource
    • net.sourceforge.pmd.util.treeexport.TreeExportConfiguration
    • net.sourceforge.pmd.util.CollectionUtil#mapFrom
    • net.sourceforge.pmd.util.CollectionUtil#invertedMapFrom
    • net.sourceforge.pmd.util.IteratorUtil.AbstractIterator#remove
    • net.sourceforge.pmd.AbstractConfiguration#setInputPaths
    • net.sourceforge.pmd.AbstractConfiguration#setInputFilePath(java.lang.String)
    • net.sourceforge.pmd.AbstractConfiguration#setIgnoreFilePath(java.lang.String)
    • net.sourceforge.pmd.AbstractConfiguration#setInputUri(java.lang.String)
    • net.sourceforge.pmd.PMDConfiguration#prependClasspath
    • net.sourceforge.pmd.PMDConfiguration#getRuleSets
    • net.sourceforge.pmd.PMDConfiguration#setRuleSets(java.lang.String)
    • net.sourceforge.pmd.PMDConfiguration#getReportFile
    • net.sourceforge.pmd.PMDConfiguration#setReportFile(java.lang.String)
    • net.sourceforge.pmd.Report#merge
    • net.sourceforge.pmd.RuleSetLoader#toFactory
    • net.sourceforge.pmd.RuleSetReferenceId#toString
    • net.sourceforge.pmd.RuleViolation#getPackageName, getClassName, getMethodName, getVariableName
  • deprecations in pmd-java

    • net.sourceforge.pmd.lang.java.ast.AbstractPackageNameModuleDirective#getImage
    • net.sourceforge.pmd.lang.java.ast.AbstractTypeDeclaration#getImage
    • net.sourceforge.pmd.lang.java.ast.ASTAnnotation#getAnnotationName
    • net.sourceforge.pmd.lang.java.ast.ASTClassType#ASTClassType(java.lang.String)
    • net.sourceforge.pmd.lang.java.ast.ASTClassType#getImage
    • net.sourceforge.pmd.lang.java.ast.ASTClassType#isReferenceToClassSameCompilationUnit
    • net.sourceforge.pmd.lang.java.ast.ASTFieldDeclaration#getVariableName
    • net.sourceforge.pmd.lang.java.ast.AstImplUtil#bumpParenDepth(net.sourceforge.pmd.lang.java.ast.ASTPattern) - might be removed only with Java 22 support and support for Java 20 preview removed -> [java] Support JDK 22 #4794
    • net.sourceforge.pmd.lang.java.ast.ASTLiteral#isStringLiteral, isCharLiteral, isNullLiteral, isBooleanLiteral, isNumericLiteral, isIntLiteral, isLongLiteral, isFloatLiteral, isDoubleLiteral
    • net.sourceforge.pmd.lang.java.ast.ASTMethodDeclaration#getMethodName
    • net.sourceforge.pmd.lang.java.ast.ASTMethodReference#getImage
    • net.sourceforge.pmd.lang.java.ast.ASTModuleName#getImage
    • net.sourceforge.pmd.lang.java.ast.ASTPattern#getParenthesisDepth - might be removed only with Java 22 support and support for Java 20 preview removed -> [java] Support JDK 22 #4794
    • net.sourceforge.pmd.lang.java.ast.ASTPrimitiveType#getImage
    • net.sourceforge.pmd.lang.java.ast.ASTType#getTypeImage
    • net.sourceforge.pmd.lang.java.ast.ASTType#getArrayDepth
    • net.sourceforge.pmd.lang.java.ast.ASTType#isPrimitiveType, isArrayType, isClassOrInterfaceType
    • net.sourceforge.pmd.lang.java.ast.ASTTypeDeclaration#getImage
    • net.sourceforge.pmd.lang.java.ast.ASTUnaryExpression#isPrefix
    • net.sourceforge.pmd.lang.java.ast.ASTVariableId#getImage
    • net.sourceforge.pmd.lang.java.ast.ASTVariableId#getVariableName
    • net.sourceforge.pmd.lang.java.ast.InternalApiBridge#newVarId
    • net.sourceforge.pmd.lang.java.ast.JavaComment#getImage
    • net.sourceforge.pmd.lang.java.ast.JavaNode#jjtAccept
    • net.sourceforge.pmd.lang.java.ast.JavaParserVisitor
    • net.sourceforge.pmd.lang.java.ast.JavaParserVisitorAdapter
      net.sourceforge.pmd.lang.java.ast.ModifierOwner#isFinal, isAbstract, isStrictfp, isSynchronized, isNative, isStatic, isVolatile, isTransient, isPrivate, isPublic, isProtected, isPackagePrivate, isSyntacticallyAbstract, isSyntacticallyPublic, isSyntacticallyStatic, isSyntacticallyFinal
    • net.sourceforge.pmd.lang.java.ast.TypeNode#getType
  • Experimental in pmd-apex

    • net.sourceforge.pmd.lang.apex.ast.ASTCommentContainer
    • net.sourceforge.pmd.lang.apex.multifile.ApexMultifileAnalysis
  • Experimental in pmd-core

    • net.sourceforge.pmd.cpd.CPDReport#filterMatches
    • net.sourceforge.pmd.lang.ast.impl.antlr4.AntlrToken#getKind
    • net.sourceforge.pmd.lang.ast.impl.javacc.AbstractJjtreeNode
    • net.sourceforge.pmd.lang.ast.impl.TokenDocument
    • net.sourceforge.pmd.lang.ast.AstInfo#getSuppressionComments
    • net.sourceforge.pmd.lang.ast.AstInfo#withSuppressMap
    • net.sourceforge.pmd.lang.ast.GenericToken#getKind
    • net.sourceforge.pmd.lang.document.FileCollector#addZipFileWithContent
    • net.sourceforge.pmd.lang.document.FileCollector#newZipCollector
    • net.sourceforge.pmd.lang.document (package-info)
    • net.sourceforge.pmd.lang.LanguageVersionHandler#getLanguageMetricsProvider
    • net.sourceforge.pmd.lang.LanguageVersionHandler#getDesignerBindings
    • net.sourceforge.pmd.lang.PlainTextLanguage
    • net.sourceforge.pmd.properties.PropertyConstraint#getXmlConstraint
    • net.sourceforge.pmd.properties.PropertyConstraint#toOptionalConstraint
    • net.sourceforge.pmd.properties.PropertyConstraint#fromPredicate(java.util.function.Predicate<? super U>, java.lang.String)
    • net.sourceforge.pmd.properties.PropertyConstraint#fromPredicate(java.util.function.Predicate<? super U>, java.lang.String, java.util.Map<java.lang.String,java.lang.String>)
    • net.sourceforge.pmd.renderers.AbstractRenderer#setReportFile
    • net.sourceforge.pmd.renderers.Renderer#setReportFile
    • net.sourceforge.pmd.util.designerbindings.DesignerBindings
    • net.sourceforge.pmd.util.designerbindings.DesignerBindings.TreeIconId
    • net.sourceforge.pmd.util.designerbindings.RelatedNodesSelector
    • net.sourceforge.pmd.util.Predicate
    • net.sourceforge.pmd.Report#filterViolations
    • net.sourceforge.pmd.Report#union
  • Experimental in pmd-groovy

    • net.sourceforge.pmd.lang.groovy.ast.impl.antlr4.GroovyToken#getKind
  • Experimental in pmd-html

    • net.sourceforge.pmd.lang.html (package-info) - whole language?
  • Experimental in pmd-java

    • net.sourceforge.pmd.lang.java.ast.ASTCompilationUnit#isUnnamedClass - JLS Preview
    • net.sourceforge.pmd.lang.java.ast.ASTExpression#getConversionContext
    • net.sourceforge.pmd.lang.java.ast.ASTPattern#getParenthesisDepth - Part of Java 20 Preview only -> [java] Support JDK 22 #4794
    • net.sourceforge.pmd.lang.java.ast.ASTRecordPattern#getParenthesisDepth - Part of Java 20 Preview only -> [java] Support JDK 22 #4794
    • net.sourceforge.pmd.lang.java.ast.ASTTemplate - JLS Preview
    • net.sourceforge.pmd.lang.java.ast.ASTTemplateExpression - JLS Preview
    • net.sourceforge.pmd.lang.java.ast.ASTTemplateFragment - JLS Preview
    • net.sourceforge.pmd.lang.java.ast.ASTTypePattern#getParenthesisDepth - Part of Java 20 Preview only -> [java] Support JDK 22 #4794
    • net.sourceforge.pmd.lang.java.ast.ASTUnnamedPattern - JLS Preview
    • net.sourceforge.pmd.lang.java.rule.AbstractJavaRulechainRule#AbstractJavaRulechainRule
    • net.sourceforge.pmd.lang.java.symbols.table.JSymbolTable
    • net.sourceforge.pmd.lang.java.symbols.JElementSymbol (also internal api...)
    • net.sourceforge.pmd.lang.java.symbols (package-info)
    • net.sourceforge.pmd.lang.java.types.ast.ExprContext
    • net.sourceforge.pmd.lang.java.types.JIntersectionType#getInducedClassType
    • net.sourceforge.pmd.lang.java.types.JTypeMirror#streamMethods
    • net.sourceforge.pmd.lang.java.types.JTypeMirror#streamDeclaredMethods
    • net.sourceforge.pmd.lang.java.types.JTypeMirror#getConstructors
  • Experimental in pmd-kotlin

    • net.sourceforge.pmd.lang.kotlin.KotlinLanguageModule - whole language?
  • Experimental in pmd-test-schema

    • net.sourceforge.pmd.test.schema.TestSchemaParser
  • Remove @DeprecatedUntil700 (move to pmd-compat6)

    • Update migration guide: refactor to avoid @Deprecated and @DeprecatedUntil700 , using rc4 and only after that update to 7.0.0
    • release notes: @DeprecatedUntil700 is gone
@adangel adangel added this to the 7.0.0 milestone Jan 23, 2023
@adangel adangel self-assigned this Feb 1, 2024
adangel added a commit to adangel/pmd that referenced this issue Feb 9, 2024
@adangel adangel added the is:deprecation The main focus is deprecating public APIs or rules, eg to make them internal, or removing them label Feb 10, 2024
@adangel adangel mentioned this issue Mar 1, 2024
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
is:deprecation The main focus is deprecating public APIs or rules, eg to make them internal, or removing them
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant