Description
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
Reactions are currently unavailable
You can’t perform that action at this time.
@Deprecated@DeprecatedUntil700@ExperimentalTasks:
Remove deprecated rules
deprecations in pmd-jsp
deprecations in pmd-modelica
deprecations in pmd-plsql
deprecations in pmd-scala
deprecations in pmd-vm
deprecations in pmd-javascript
deprecations in pmd-apex
deprecations in pmd-visualforce
deprecations in pmd-core
deprecations in pmd-java
net.sourceforge.pmd.lang.java.ast.ModifierOwner#isFinal, isAbstract, isStrictfp, isSynchronized, isNative, isStatic, isVolatile, isTransient, isPrivate, isPublic, isProtected, isPackagePrivate, isSyntacticallyAbstract, isSyntacticallyPublic, isSyntacticallyStatic, isSyntacticallyFinal
Experimental in pmd-apex
Experimental in pmd-core
Experimental in pmd-groovy
Experimental in pmd-html
Experimental in pmd-java
Experimental in pmd-kotlin
Experimental in pmd-test-schema
Remove @DeprecatedUntil700 (move to pmd-compat6)