From 2c670339d8aaa8c2970767063b623e1d1d1118a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Fournier?= Date: Wed, 22 Jan 2020 17:06:37 +0100 Subject: [PATCH 1/4] Deprecate CharStream and impls --- docs/pages/release_notes.md | 6 ++++++ pmd-core/src/main/ant/alljavacc.xml | 7 +++++-- .../java/net/sourceforge/pmd/lang/cpp/CppCharStream.java | 3 +++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/docs/pages/release_notes.md b/docs/pages/release_notes.md index 69bf8669f2..211c8bf9df 100644 --- a/docs/pages/release_notes.md +++ b/docs/pages/release_notes.md @@ -129,6 +129,12 @@ You can identify them with the `@InternalApi` annotation. You'll also get a depr methods on {% jdoc apex::lang.apex.ast.ApexParserVisitor %} and its implementations. Use {% jdoc apex::lang.apex.ast.ApexNode %} instead, now considers comments too. +* {% jdoc core::lang.ast.CharStream %}, {% jdoc core::lang.ast.JavaCharStream %}, +{% jdoc core::lang.ast.SimpleCharStream %}: these are APIs used by our JavaCC +implementations and that will be moved/refactored for PMD 7.0.0. They should not +be used, extended or implemented directly. + + ##### For removal * pmd-core diff --git a/pmd-core/src/main/ant/alljavacc.xml b/pmd-core/src/main/ant/alljavacc.xml index 09d710f1e2..8c0261cb4a 100644 --- a/pmd-core/src/main/ant/alljavacc.xml +++ b/pmd-core/src/main/ant/alljavacc.xml @@ -42,6 +42,9 @@ + @@ -59,7 +62,7 @@ value="net.sourceforge.pmd.lang.ast" /> + value="@Deprecated @net.sourceforge.pmd.annotation.InternalApi class JavaCharStream implements CharStream" /> @@ -77,7 +80,7 @@ value="net.sourceforge.pmd.lang.ast" /> + value="@Deprecated @net.sourceforge.pmd.annotation.InternalApi public class SimpleCharStream implements CharStream" /> diff --git a/pmd-cpp/src/main/java/net/sourceforge/pmd/lang/cpp/CppCharStream.java b/pmd-cpp/src/main/java/net/sourceforge/pmd/lang/cpp/CppCharStream.java index 97e9540b85..de9332cc12 100644 --- a/pmd-cpp/src/main/java/net/sourceforge/pmd/lang/cpp/CppCharStream.java +++ b/pmd-cpp/src/main/java/net/sourceforge/pmd/lang/cpp/CppCharStream.java @@ -8,6 +8,7 @@ import java.io.IOException; import java.io.Reader; import java.util.regex.Pattern; +import net.sourceforge.pmd.annotation.InternalApi; import net.sourceforge.pmd.lang.ast.SimpleCharStream; /** @@ -16,6 +17,8 @@ import net.sourceforge.pmd.lang.ast.SimpleCharStream; * * @author Andreas Dangel */ +@Deprecated +@InternalApi public class CppCharStream extends SimpleCharStream { private static final Pattern CONTINUATION = Pattern.compile("\\\\\\n|\\\\\\r\\n"); From 60e97d0ec8079de4cd5b83f287b64ee21734dc75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Fournier?= Date: Wed, 22 Jan 2020 17:19:29 +0100 Subject: [PATCH 2/4] Deprecate javacc generated code --- pmd-cpp/src/main/ant/alljavacc.xml | 17 ++++++++++++++++- pmd-java/src/main/ant/alljavacc.xml | 14 ++++++++++++++ pmd-javascript/src/main/ant/alljavacc.xml | 15 +++++++++++++++ pmd-jsp/src/main/ant/alljavacc.xml | 15 +++++++++++++++ pmd-matlab/src/main/ant/alljavacc.xml | 15 +++++++++++++++ pmd-modelica/src/main/ant/alljavacc.xml | 15 +++++++++++++++ pmd-objectivec/src/main/ant/alljavacc.xml | 15 +++++++++++++++ pmd-plsql/src/main/ant/alljavacc.xml | 13 +++++++++++++ pmd-python/src/main/ant/alljavacc.xml | 15 +++++++++++++++ pmd-visualforce/src/main/ant/alljavacc.xml | 17 ++++++++++++++++- pmd-vm/src/main/ant/alljavacc.xml | 15 +++++++++++++++ 11 files changed, 164 insertions(+), 2 deletions(-) diff --git a/pmd-cpp/src/main/ant/alljavacc.xml b/pmd-cpp/src/main/ant/alljavacc.xml index 9347d126e4..7a3126d5e5 100644 --- a/pmd-cpp/src/main/ant/alljavacc.xml +++ b/pmd-cpp/src/main/ant/alljavacc.xml @@ -91,6 +91,21 @@ public class Token implements GenericToken, java.io.Serializable]]> + + + + + + + + + + + + + + - + diff --git a/pmd-java/src/main/ant/alljavacc.xml b/pmd-java/src/main/ant/alljavacc.xml index e1a80620f1..00b7ad9cd8 100644 --- a/pmd-java/src/main/ant/alljavacc.xml +++ b/pmd-java/src/main/ant/alljavacc.xml @@ -138,5 +138,19 @@ public class Token implements GenericToken, java.io.Serializable]]> + + + + + + + + + + + + + diff --git a/pmd-javascript/src/main/ant/alljavacc.xml b/pmd-javascript/src/main/ant/alljavacc.xml index 6f7a0a7bc4..4173d25bf1 100644 --- a/pmd-javascript/src/main/ant/alljavacc.xml +++ b/pmd-javascript/src/main/ant/alljavacc.xml @@ -90,5 +90,20 @@ public class Token implements GenericToken, java.io.Serializable]]> + + + + + + + + + + + + + + diff --git a/pmd-jsp/src/main/ant/alljavacc.xml b/pmd-jsp/src/main/ant/alljavacc.xml index 34207aa4a6..887179978b 100644 --- a/pmd-jsp/src/main/ant/alljavacc.xml +++ b/pmd-jsp/src/main/ant/alljavacc.xml @@ -116,6 +116,21 @@ public class Token implements GenericToken, java.io.Serializable]]> + + + + + + + + + + + + + + diff --git a/pmd-matlab/src/main/ant/alljavacc.xml b/pmd-matlab/src/main/ant/alljavacc.xml index ecf431f7b6..542cbe7af3 100644 --- a/pmd-matlab/src/main/ant/alljavacc.xml +++ b/pmd-matlab/src/main/ant/alljavacc.xml @@ -90,6 +90,21 @@ public class Token implements GenericToken, java.io.Serializable]]> + + + + + + + + + + + + + + diff --git a/pmd-modelica/src/main/ant/alljavacc.xml b/pmd-modelica/src/main/ant/alljavacc.xml index 866f4be282..3380d340be 100644 --- a/pmd-modelica/src/main/ant/alljavacc.xml +++ b/pmd-modelica/src/main/ant/alljavacc.xml @@ -153,5 +153,20 @@ public class Token implements GenericToken, java.io.Serializable]]> + + + + + + + + + + + + + + diff --git a/pmd-objectivec/src/main/ant/alljavacc.xml b/pmd-objectivec/src/main/ant/alljavacc.xml index 26ab8cd3d9..04afa8409c 100644 --- a/pmd-objectivec/src/main/ant/alljavacc.xml +++ b/pmd-objectivec/src/main/ant/alljavacc.xml @@ -90,6 +90,21 @@ public class Token implements GenericToken, java.io.Serializable]]> + + + + + + + + + + + + + + diff --git a/pmd-plsql/src/main/ant/alljavacc.xml b/pmd-plsql/src/main/ant/alljavacc.xml index c161ad16ca..9ab6ca5784 100644 --- a/pmd-plsql/src/main/ant/alljavacc.xml +++ b/pmd-plsql/src/main/ant/alljavacc.xml @@ -141,5 +141,18 @@ public class Token implements GenericToken, java.io.Serializable]]> + + + + + + + + + + + + diff --git a/pmd-python/src/main/ant/alljavacc.xml b/pmd-python/src/main/ant/alljavacc.xml index b876617263..85bfd7fe94 100644 --- a/pmd-python/src/main/ant/alljavacc.xml +++ b/pmd-python/src/main/ant/alljavacc.xml @@ -90,6 +90,21 @@ public class Token implements GenericToken, java.io.Serializable]]> + + + + + + + + + + + + + + diff --git a/pmd-visualforce/src/main/ant/alljavacc.xml b/pmd-visualforce/src/main/ant/alljavacc.xml index b2463ff956..5fcf821490 100644 --- a/pmd-visualforce/src/main/ant/alljavacc.xml +++ b/pmd-visualforce/src/main/ant/alljavacc.xml @@ -33,7 +33,7 @@ javacchome="${javacc-home.path}" /> - + + + + + + + + + + + + + + diff --git a/pmd-vm/src/main/ant/alljavacc.xml b/pmd-vm/src/main/ant/alljavacc.xml index 8f07d54ade..527eae1c88 100644 --- a/pmd-vm/src/main/ant/alljavacc.xml +++ b/pmd-vm/src/main/ant/alljavacc.xml @@ -123,5 +123,20 @@ public class Token implements GenericToken, java.io.Serializable]]> + + + + + + + + + + + + + + From bed7baa35e984a48003c6421e823445f83e10711 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Fournier?= Date: Wed, 22 Jan 2020 17:20:15 +0100 Subject: [PATCH 3/4] Deprecate Velocity stuff --- docs/pages/release_notes.md | 4 ++++ .../pmd/lang/vm/ast/TemplateParseException.java | 1 + .../sourceforge/pmd/lang/vm/util/VelocityCharStream.java | 8 +++++--- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/docs/pages/release_notes.md b/docs/pages/release_notes.md index 211c8bf9df..a0fd288df3 100644 --- a/docs/pages/release_notes.md +++ b/docs/pages/release_notes.md @@ -133,6 +133,10 @@ methods on {% jdoc apex::lang.apex.ast.ApexParserVisitor %} and its implementati {% jdoc core::lang.ast.SimpleCharStream %}: these are APIs used by our JavaCC implementations and that will be moved/refactored for PMD 7.0.0. They should not be used, extended or implemented directly. +* All classes generated by JavaCC, eg {% jdoc java::lang.ast.JJTJavaParserState %}. +This includes token classes, which will be replaced with a single implementation, and +subclasses of {% jdoc core::lang.ast.ParseException %}, whose usages will be replaced +by just that superclass. ##### For removal diff --git a/pmd-vm/src/main/java/net/sourceforge/pmd/lang/vm/ast/TemplateParseException.java b/pmd-vm/src/main/java/net/sourceforge/pmd/lang/vm/ast/TemplateParseException.java index 3f4122123f..e41a76a3be 100644 --- a/pmd-vm/src/main/java/net/sourceforge/pmd/lang/vm/ast/TemplateParseException.java +++ b/pmd-vm/src/main/java/net/sourceforge/pmd/lang/vm/ast/TemplateParseException.java @@ -32,6 +32,7 @@ import net.sourceforge.pmd.lang.vm.util.LogUtil; * $ * @since 1.5 */ +@Deprecated public class TemplateParseException extends ParseException { private static final long serialVersionUID = -3146323135623083918L; diff --git a/pmd-vm/src/main/java/net/sourceforge/pmd/lang/vm/util/VelocityCharStream.java b/pmd-vm/src/main/java/net/sourceforge/pmd/lang/vm/util/VelocityCharStream.java index 78a3e91fa3..ed4e79ec23 100644 --- a/pmd-vm/src/main/java/net/sourceforge/pmd/lang/vm/util/VelocityCharStream.java +++ b/pmd-vm/src/main/java/net/sourceforge/pmd/lang/vm/util/VelocityCharStream.java @@ -19,7 +19,7 @@ import net.sourceforge.pmd.lang.ast.CharStream; * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations - * under the License. + * under the License. */ /** @@ -36,8 +36,10 @@ import net.sourceforge.pmd.lang.ast.CharStream; /** * An implementation of interface CharStream, where the stream is assumed to * contain only ASCII characters (without unicode processing). + * + * @deprecated Will be removed, replaced with SimpleCharStream */ - +@Deprecated public final class VelocityCharStream implements CharStream { public static final boolean STATIC_FLAG = false; int bufsize; @@ -401,7 +403,7 @@ public final class VelocityCharStream implements CharStream { /** * Method to adjust line and column numbers for the start of a token.
- * + * * @param newLine * @param newCol */ From 5feca7fd93f8fdff0de147766c011d7606486cef Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Fri, 24 Jan 2020 16:19:24 +0100 Subject: [PATCH 4/4] Exclude generated AST*.java files from internalization --- pmd-cpp/src/main/ant/alljavacc.xml | 4 +++- pmd-java/src/main/ant/alljavacc.xml | 4 +++- pmd-javascript/src/main/ant/alljavacc.xml | 4 +++- pmd-jsp/src/main/ant/alljavacc.xml | 4 +++- pmd-matlab/src/main/ant/alljavacc.xml | 4 +++- pmd-modelica/src/main/ant/alljavacc.xml | 4 +++- pmd-objectivec/src/main/ant/alljavacc.xml | 4 +++- pmd-plsql/src/main/ant/alljavacc.xml | 4 +++- pmd-python/src/main/ant/alljavacc.xml | 4 +++- pmd-visualforce/src/main/ant/alljavacc.xml | 4 +++- pmd-vm/src/main/ant/alljavacc.xml | 4 +++- 11 files changed, 33 insertions(+), 11 deletions(-) diff --git a/pmd-cpp/src/main/ant/alljavacc.xml b/pmd-cpp/src/main/ant/alljavacc.xml index 7a3126d5e5..800af4264b 100644 --- a/pmd-cpp/src/main/ant/alljavacc.xml +++ b/pmd-cpp/src/main/ant/alljavacc.xml @@ -96,7 +96,9 @@ public class Token implements GenericToken, java.io.Serializable]]> - + + + diff --git a/pmd-java/src/main/ant/alljavacc.xml b/pmd-java/src/main/ant/alljavacc.xml index 00b7ad9cd8..485a46de17 100644 --- a/pmd-java/src/main/ant/alljavacc.xml +++ b/pmd-java/src/main/ant/alljavacc.xml @@ -143,7 +143,9 @@ public class Token implements GenericToken, java.io.Serializable]]> - + + + diff --git a/pmd-javascript/src/main/ant/alljavacc.xml b/pmd-javascript/src/main/ant/alljavacc.xml index 4173d25bf1..405026b5cd 100644 --- a/pmd-javascript/src/main/ant/alljavacc.xml +++ b/pmd-javascript/src/main/ant/alljavacc.xml @@ -96,7 +96,9 @@ public class Token implements GenericToken, java.io.Serializable]]> - + + + diff --git a/pmd-jsp/src/main/ant/alljavacc.xml b/pmd-jsp/src/main/ant/alljavacc.xml index 887179978b..066a3c7c03 100644 --- a/pmd-jsp/src/main/ant/alljavacc.xml +++ b/pmd-jsp/src/main/ant/alljavacc.xml @@ -122,7 +122,9 @@ public class Token implements GenericToken, java.io.Serializable]]> - + + + diff --git a/pmd-matlab/src/main/ant/alljavacc.xml b/pmd-matlab/src/main/ant/alljavacc.xml index 542cbe7af3..646b4740f1 100644 --- a/pmd-matlab/src/main/ant/alljavacc.xml +++ b/pmd-matlab/src/main/ant/alljavacc.xml @@ -96,7 +96,9 @@ public class Token implements GenericToken, java.io.Serializable]]> - + + + diff --git a/pmd-modelica/src/main/ant/alljavacc.xml b/pmd-modelica/src/main/ant/alljavacc.xml index 3380d340be..2f1674b358 100644 --- a/pmd-modelica/src/main/ant/alljavacc.xml +++ b/pmd-modelica/src/main/ant/alljavacc.xml @@ -158,7 +158,9 @@ public class Token implements GenericToken, java.io.Serializable]]> - + + + diff --git a/pmd-objectivec/src/main/ant/alljavacc.xml b/pmd-objectivec/src/main/ant/alljavacc.xml index 04afa8409c..16a4dd9e84 100644 --- a/pmd-objectivec/src/main/ant/alljavacc.xml +++ b/pmd-objectivec/src/main/ant/alljavacc.xml @@ -96,7 +96,9 @@ public class Token implements GenericToken, java.io.Serializable]]> - + + + diff --git a/pmd-plsql/src/main/ant/alljavacc.xml b/pmd-plsql/src/main/ant/alljavacc.xml index 9ab6ca5784..e963988534 100644 --- a/pmd-plsql/src/main/ant/alljavacc.xml +++ b/pmd-plsql/src/main/ant/alljavacc.xml @@ -145,7 +145,9 @@ public class Token implements GenericToken, java.io.Serializable]]> - + + + diff --git a/pmd-python/src/main/ant/alljavacc.xml b/pmd-python/src/main/ant/alljavacc.xml index 85bfd7fe94..1996f86bf1 100644 --- a/pmd-python/src/main/ant/alljavacc.xml +++ b/pmd-python/src/main/ant/alljavacc.xml @@ -96,7 +96,9 @@ public class Token implements GenericToken, java.io.Serializable]]> - + + + diff --git a/pmd-visualforce/src/main/ant/alljavacc.xml b/pmd-visualforce/src/main/ant/alljavacc.xml index 5fcf821490..9c3046499d 100644 --- a/pmd-visualforce/src/main/ant/alljavacc.xml +++ b/pmd-visualforce/src/main/ant/alljavacc.xml @@ -122,7 +122,9 @@ public class Token implements GenericToken, java.io.Serializable]]> - + + + diff --git a/pmd-vm/src/main/ant/alljavacc.xml b/pmd-vm/src/main/ant/alljavacc.xml index 527eae1c88..358f1dee9b 100644 --- a/pmd-vm/src/main/ant/alljavacc.xml +++ b/pmd-vm/src/main/ant/alljavacc.xml @@ -129,7 +129,9 @@ public class Token implements GenericToken, java.io.Serializable]]> - + + +