From 10e27ca3c09adb71bbe50877b484c53e938256ec Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Mon, 26 Nov 2018 13:55:35 +0100 Subject: [PATCH] Deprecate PMD LanguageModule for languages, that only support CPD --- docs/pages/release_notes.md | 24 ++++++++++++++ .../pmd/lang/LanguageRegistry.java | 22 ++++++++----- .../net/sourceforge/pmd/cpd/CPPTokenizer.java | 10 ++---- .../sourceforge/pmd/lang/cpp/CppHandler.java | 2 ++ .../pmd/lang/cpp/CppLanguageModule.java | 3 ++ .../sourceforge/pmd/lang/cpp/CppParser.java | 3 ++ .../sourceforge/pmd/LanguageVersionTest.java | 33 ------------------- .../pmd/lang/cs/CsLanguageModule.java | 3 ++ .../lang/fortran/FortranLanguageModule.java | 3 ++ .../sourceforge/pmd/LanguageVersionTest.java | 33 ------------------- .../pmd/lang/groovy/GroovyLanguageModule.java | 3 ++ .../sourceforge/pmd/LanguageVersionTest.java | 33 ------------------- .../sourceforge/pmd/cpd/MatlabTokenizer.java | 11 ++----- .../pmd/lang/matlab/MatlabHandler.java | 3 ++ .../pmd/lang/matlab/MatlabLanguageModule.java | 3 ++ .../pmd/lang/matlab/MatlabParser.java | 3 ++ .../sourceforge/pmd/LanguageVersionTest.java | 27 --------------- .../pmd/cpd/ObjectiveCTokenizer.java | 10 ++---- .../lang/objectivec/ObjectiveCHandler.java | 3 ++ .../objectivec/ObjectiveCLanguageModule.java | 3 ++ .../pmd/lang/objectivec/ObjectiveCParser.java | 3 ++ .../sourceforge/pmd/LanguageVersionTest.java | 27 --------------- .../pmd/lang/php/PhpLanguageModule.java | 3 ++ .../sourceforge/pmd/LanguageVersionTest.java | 27 --------------- .../pmd/lang/python/PythonHandler.java | 3 ++ .../pmd/lang/python/PythonLanguageModule.java | 3 ++ .../pmd/lang/python/PythonParser.java | 3 ++ .../pmd/LanguageVersionDiscovererTest.java | 32 ------------------ .../sourceforge/pmd/LanguageVersionTest.java | 27 --------------- .../pmd/lang/ruby/RubyLanguageModule.java | 3 ++ .../sourceforge/pmd/LanguageVersionTest.java | 27 --------------- .../pmd/lang/scala/ScalaLanguageModule.java | 3 ++ .../sourceforge/pmd/LanguageVersionTest.java | 27 --------------- .../pmd/lang/swift/SwiftLanguageModule.java | 3 ++ .../sourceforge/pmd/LanguageVersionTest.java | 27 --------------- 35 files changed, 100 insertions(+), 353 deletions(-) delete mode 100644 pmd-cpp/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java delete mode 100644 pmd-fortran/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java delete mode 100644 pmd-groovy/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java delete mode 100644 pmd-matlab/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java delete mode 100644 pmd-objectivec/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java delete mode 100644 pmd-php/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java delete mode 100644 pmd-python/src/test/java/net/sourceforge/pmd/LanguageVersionDiscovererTest.java delete mode 100644 pmd-python/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java delete mode 100644 pmd-ruby/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java delete mode 100644 pmd-scala/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java delete mode 100644 pmd-swift/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java diff --git a/docs/pages/release_notes.md b/docs/pages/release_notes.md index e888fbd06f..6b714c065d 100644 --- a/docs/pages/release_notes.md +++ b/docs/pages/release_notes.md @@ -110,6 +110,30 @@ now deprecated until 7.0.0. The proposed changes to the API are described [on th with different types (and obviously with different names). They both implement `Iterator<`{% jdoc jast::ASTVariableDeclaratorId %}`>` though, so you should iterate on each declared variable. See [#910](https://github.com/pmd/pmd/issues/910). +* The LanguageModules of several languages, that only support CPD execution, have been deprecated. These languages + are not fully supported by PMD, so having a language module does not make sense. The functionality of CPD is + not affected by this change. The following classes have been deprecated and will be removed with PMD 7.0.0: + + * {% jdoc cpp::lang.cpp.CppHandler %} + * {% jdoc cpp::lang.cpp.CppLanguageModule %} + * {% jdoc cpp::lang.cpp.CppParser %} + * {% jdoc cs::lang.cs.CsLanguageModule %} + * {% jdoc fortran::lang.fortran.FortranLanguageModule %} + * {% jdoc groovy::lang.groovy.GroovyLanguageModule %} + * {% jdoc matlab::lang.matlab.MatlabHandler %} + * {% jdoc matlab::lang.matlab.MatlabLanguageModule %} + * {% jdoc matlab::lang.matlab.MatlabParser %} + * {% jdoc objectivec::lang.objectivec.ObjectiveCHandler %} + * {% jdoc objectivec::lang.objectivec.ObjectiveCLanguageModule %} + * {% jdoc objectivec::lang.objectivec.ObjectiveCParser %} + * {% jdoc php::lang.php.PhpLanguageModule %} + * {% jdoc python::lang.python.PythonHandler %} + * {% jdoc python::lang.python.PythonLanguageModule %} + * {% jdoc python::lang.python.PythonParser %} + * {% jdoc ruby::lang.ruby.RubyLanguageModule %} + * {% jdoc scala::lang.scala.ScalaLanguageModule %} + * {% jdoc swift::lang.swift.SwiftLanguageModule %} + ### External Contributions * [#1384](https://github.com/pmd/pmd/pull/1384): \[java] New Rule - UseUnderscoresInNumericLiterals - [RajeshR](https://github.com/rajeshggwp) diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/LanguageRegistry.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/LanguageRegistry.java index 029953ae15..7417176fa8 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/LanguageRegistry.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/LanguageRegistry.java @@ -62,7 +62,16 @@ public final class LanguageRegistry { } public static Collection getLanguages() { - return getInstance().languages.values(); + // Filter out languages, that are not fully supported by PMD yet. + // Those languages should not have a LanguageModule then, but they have it. + // TODO This is unnecessary, if the incomplete language modules have been removed. + List languages = new ArrayList<>(); + for (Language language : getInstance().languages.values()) { + if (language.getRuleChainVisitorClass() != null) { + languages.add(language); + } + } + return languages; } public static Language getLanguage(String languageName) { @@ -132,15 +141,12 @@ public final class LanguageRegistry { * A utility method to find the Languages which have Rule support. * * @return A List of Languages with Rule support. + * + * @deprecated This method will be removed with PMD 7.0.0. Use {@link #getLanguages()} instead. */ + @Deprecated public static List findWithRuleSupport() { - List languages = new ArrayList<>(); - for (Language language : getInstance().languages.values()) { - if (language.getRuleChainVisitorClass() != null) { - languages.add(language); - } - } - return languages; + return new ArrayList<>(getLanguages()); } public static String commaSeparatedTerseNamesForLanguage(List languages) { diff --git a/pmd-cpp/src/main/java/net/sourceforge/pmd/cpd/CPPTokenizer.java b/pmd-cpp/src/main/java/net/sourceforge/pmd/cpd/CPPTokenizer.java index b81450012b..09ab82cd1a 100644 --- a/pmd-cpp/src/main/java/net/sourceforge/pmd/cpd/CPPTokenizer.java +++ b/pmd-cpp/src/main/java/net/sourceforge/pmd/cpd/CPPTokenizer.java @@ -13,11 +13,9 @@ import java.util.Properties; import net.sourceforge.pmd.PMD; import net.sourceforge.pmd.cpd.token.JavaCCTokenFilter; import net.sourceforge.pmd.cpd.token.TokenFilter; -import net.sourceforge.pmd.lang.LanguageRegistry; -import net.sourceforge.pmd.lang.LanguageVersionHandler; import net.sourceforge.pmd.lang.ast.GenericToken; import net.sourceforge.pmd.lang.ast.TokenMgrError; -import net.sourceforge.pmd.lang.cpp.CppLanguageModule; +import net.sourceforge.pmd.lang.cpp.CppTokenManager; import net.sourceforge.pmd.util.IOUtil; /** @@ -55,11 +53,7 @@ public class CPPTokenizer implements Tokenizer { public void tokenize(SourceCode sourceCode, Tokens tokenEntries) { StringBuilder buffer = sourceCode.getCodeBuffer(); try (Reader reader = IOUtil.skipBOM(new StringReader(maybeSkipBlocks(buffer.toString())))) { - LanguageVersionHandler languageVersionHandler = LanguageRegistry.getLanguage(CppLanguageModule.NAME) - .getDefaultVersion().getLanguageVersionHandler(); - final TokenFilter tokenFilter = new JavaCCTokenFilter( - languageVersionHandler.getParser(languageVersionHandler.getDefaultParserOptions()) - .getTokenManager(sourceCode.getFileName(), reader)); + final TokenFilter tokenFilter = new JavaCCTokenFilter(new CppTokenManager(reader)); GenericToken currentToken = tokenFilter.getNextToken(); while (currentToken != null) { diff --git a/pmd-cpp/src/main/java/net/sourceforge/pmd/lang/cpp/CppHandler.java b/pmd-cpp/src/main/java/net/sourceforge/pmd/lang/cpp/CppHandler.java index 3fab012da8..62c4c19c26 100644 --- a/pmd-cpp/src/main/java/net/sourceforge/pmd/lang/cpp/CppHandler.java +++ b/pmd-cpp/src/main/java/net/sourceforge/pmd/lang/cpp/CppHandler.java @@ -11,7 +11,9 @@ import net.sourceforge.pmd.lang.rule.RuleViolationFactory; /** * Implementation of LanguageVersionHandler for the C++ Language. + * @deprecated There is no full PMD support for c++. */ +@Deprecated public class CppHandler extends AbstractLanguageVersionHandler { @Override diff --git a/pmd-cpp/src/main/java/net/sourceforge/pmd/lang/cpp/CppLanguageModule.java b/pmd-cpp/src/main/java/net/sourceforge/pmd/lang/cpp/CppLanguageModule.java index ef81858c60..6cd9a34eb5 100644 --- a/pmd-cpp/src/main/java/net/sourceforge/pmd/lang/cpp/CppLanguageModule.java +++ b/pmd-cpp/src/main/java/net/sourceforge/pmd/lang/cpp/CppLanguageModule.java @@ -8,7 +8,10 @@ import net.sourceforge.pmd.lang.BaseLanguageModule; /** * Implementation of the C/C++ Language Module. + * + * @deprecated There is no full PMD support for c++. */ +@Deprecated public class CppLanguageModule extends BaseLanguageModule { /** The name, that can be used to display the language in UI. */ diff --git a/pmd-cpp/src/main/java/net/sourceforge/pmd/lang/cpp/CppParser.java b/pmd-cpp/src/main/java/net/sourceforge/pmd/lang/cpp/CppParser.java index 27a8435144..2e28ff971b 100644 --- a/pmd-cpp/src/main/java/net/sourceforge/pmd/lang/cpp/CppParser.java +++ b/pmd-cpp/src/main/java/net/sourceforge/pmd/lang/cpp/CppParser.java @@ -16,7 +16,10 @@ import net.sourceforge.pmd.lang.ast.ParseException; /** * Adapter for the C++ Parser. + * + * @deprecated There is no full PMD support for c++. */ +@Deprecated public class CppParser extends AbstractParser { /** diff --git a/pmd-cpp/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java b/pmd-cpp/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java deleted file mode 100644 index 532789523b..0000000000 --- a/pmd-cpp/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java +++ /dev/null @@ -1,33 +0,0 @@ -/** - * BSD-style license; for more info see http://pmd.sourceforge.net/license.html - */ - -package net.sourceforge.pmd; - -import java.util.Arrays; -import java.util.Collection; - -import org.junit.runners.Parameterized.Parameters; - -import net.sourceforge.pmd.lang.LanguageRegistry; -import net.sourceforge.pmd.lang.LanguageVersion; -import net.sourceforge.pmd.lang.cpp.CppLanguageModule; - -public class LanguageVersionTest extends AbstractLanguageVersionTest { - - public LanguageVersionTest(String name, String terseName, String version, LanguageVersion expected) { - super(name, terseName, version, expected); - } - - @Parameters - public static Collection data() { - return Arrays.asList(new Object[][] { - { - CppLanguageModule.NAME, - CppLanguageModule.TERSE_NAME, - "", - LanguageRegistry.getLanguage(CppLanguageModule.NAME).getDefaultVersion(), - }, - }); - } -} diff --git a/pmd-cs/src/main/java/net/sourceforge/pmd/lang/cs/CsLanguageModule.java b/pmd-cs/src/main/java/net/sourceforge/pmd/lang/cs/CsLanguageModule.java index 238014b832..c90fd57029 100644 --- a/pmd-cs/src/main/java/net/sourceforge/pmd/lang/cs/CsLanguageModule.java +++ b/pmd-cs/src/main/java/net/sourceforge/pmd/lang/cs/CsLanguageModule.java @@ -8,7 +8,10 @@ import net.sourceforge.pmd.lang.BaseLanguageModule; /** * Language Module for C# + * + * @deprecated There is no full PMD support for c#. */ +@Deprecated public class CsLanguageModule extends BaseLanguageModule { /** The name. */ diff --git a/pmd-fortran/src/main/java/net/sourceforge/pmd/lang/fortran/FortranLanguageModule.java b/pmd-fortran/src/main/java/net/sourceforge/pmd/lang/fortran/FortranLanguageModule.java index 510ed045a4..48ac68a69f 100644 --- a/pmd-fortran/src/main/java/net/sourceforge/pmd/lang/fortran/FortranLanguageModule.java +++ b/pmd-fortran/src/main/java/net/sourceforge/pmd/lang/fortran/FortranLanguageModule.java @@ -8,7 +8,10 @@ import net.sourceforge.pmd.lang.BaseLanguageModule; /** * Implementation for the Fortran Language Module + * + * @deprecated There is no full PMD support for fortran. */ +@Deprecated public class FortranLanguageModule extends BaseLanguageModule { /** The name */ diff --git a/pmd-fortran/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java b/pmd-fortran/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java deleted file mode 100644 index e4cb577784..0000000000 --- a/pmd-fortran/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java +++ /dev/null @@ -1,33 +0,0 @@ -/** - * BSD-style license; for more info see http://pmd.sourceforge.net/license.html - */ - -package net.sourceforge.pmd; - -import java.util.Arrays; -import java.util.Collection; - -import org.junit.runners.Parameterized.Parameters; - -import net.sourceforge.pmd.lang.LanguageRegistry; -import net.sourceforge.pmd.lang.LanguageVersion; -import net.sourceforge.pmd.lang.fortran.FortranLanguageModule; - -public class LanguageVersionTest extends AbstractLanguageVersionTest { - - public LanguageVersionTest(String name, String terseName, String version, LanguageVersion expected) { - super(name, terseName, version, expected); - } - - @Parameters - public static Collection data() { - return Arrays.asList(new Object[][] { - { - FortranLanguageModule.NAME, - FortranLanguageModule.TERSE_NAME, - "", - LanguageRegistry.getLanguage(FortranLanguageModule.NAME).getDefaultVersion(), - }, - }); - } -} diff --git a/pmd-groovy/src/main/java/net/sourceforge/pmd/lang/groovy/GroovyLanguageModule.java b/pmd-groovy/src/main/java/net/sourceforge/pmd/lang/groovy/GroovyLanguageModule.java index 95ddc5870b..02149c8db5 100644 --- a/pmd-groovy/src/main/java/net/sourceforge/pmd/lang/groovy/GroovyLanguageModule.java +++ b/pmd-groovy/src/main/java/net/sourceforge/pmd/lang/groovy/GroovyLanguageModule.java @@ -8,7 +8,10 @@ import net.sourceforge.pmd.lang.BaseLanguageModule; /** * Language Module for Groovy + * + * @deprecated There is no full PMD support for Groovy. */ +@Deprecated public class GroovyLanguageModule extends BaseLanguageModule { /** The name. */ diff --git a/pmd-groovy/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java b/pmd-groovy/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java deleted file mode 100644 index 48b1486ac4..0000000000 --- a/pmd-groovy/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java +++ /dev/null @@ -1,33 +0,0 @@ -/** - * BSD-style license; for more info see http://pmd.sourceforge.net/license.html - */ - -package net.sourceforge.pmd; - -import java.util.Arrays; -import java.util.Collection; - -import org.junit.runners.Parameterized.Parameters; - -import net.sourceforge.pmd.lang.LanguageRegistry; -import net.sourceforge.pmd.lang.LanguageVersion; -import net.sourceforge.pmd.lang.groovy.GroovyLanguageModule; - -public class LanguageVersionTest extends AbstractLanguageVersionTest { - - public LanguageVersionTest(String name, String terseName, String version, LanguageVersion expected) { - super(name, terseName, version, expected); - } - - @Parameters - public static Collection data() { - return Arrays.asList(new Object[][] { - { - GroovyLanguageModule.NAME, - GroovyLanguageModule.TERSE_NAME, - "", - LanguageRegistry.getLanguage(GroovyLanguageModule.NAME).getDefaultVersion(), - }, - }); - } -} diff --git a/pmd-matlab/src/main/java/net/sourceforge/pmd/cpd/MatlabTokenizer.java b/pmd-matlab/src/main/java/net/sourceforge/pmd/cpd/MatlabTokenizer.java index 818c2ff282..b0eb103f4e 100644 --- a/pmd-matlab/src/main/java/net/sourceforge/pmd/cpd/MatlabTokenizer.java +++ b/pmd-matlab/src/main/java/net/sourceforge/pmd/cpd/MatlabTokenizer.java @@ -10,10 +10,8 @@ import java.io.StringReader; import net.sourceforge.pmd.cpd.token.JavaCCTokenFilter; import net.sourceforge.pmd.cpd.token.TokenFilter; -import net.sourceforge.pmd.lang.LanguageRegistry; -import net.sourceforge.pmd.lang.LanguageVersionHandler; import net.sourceforge.pmd.lang.ast.TokenMgrError; -import net.sourceforge.pmd.lang.matlab.MatlabLanguageModule; +import net.sourceforge.pmd.lang.matlab.MatlabTokenManager; import net.sourceforge.pmd.lang.matlab.ast.Token; import net.sourceforge.pmd.util.IOUtil; @@ -26,12 +24,7 @@ public class MatlabTokenizer implements Tokenizer { public void tokenize(SourceCode sourceCode, Tokens tokenEntries) { StringBuilder buffer = sourceCode.getCodeBuffer(); try (Reader reader = IOUtil.skipBOM(new StringReader(buffer.toString()))) { - LanguageVersionHandler languageVersionHandler = LanguageRegistry.getLanguage(MatlabLanguageModule.NAME) - .getDefaultVersion().getLanguageVersionHandler(); - - final TokenFilter tokenFilter = new JavaCCTokenFilter(languageVersionHandler - .getParser(languageVersionHandler.getDefaultParserOptions()) - .getTokenManager(sourceCode.getFileName(), reader)); + final TokenFilter tokenFilter = new JavaCCTokenFilter(new MatlabTokenManager(reader)); Token currentToken = (Token) tokenFilter.getNextToken(); while (currentToken != null) { tokenEntries.add(new TokenEntry(currentToken.image, sourceCode.getFileName(), currentToken.beginLine)); diff --git a/pmd-matlab/src/main/java/net/sourceforge/pmd/lang/matlab/MatlabHandler.java b/pmd-matlab/src/main/java/net/sourceforge/pmd/lang/matlab/MatlabHandler.java index f2562e76b1..0f52acdcaf 100644 --- a/pmd-matlab/src/main/java/net/sourceforge/pmd/lang/matlab/MatlabHandler.java +++ b/pmd-matlab/src/main/java/net/sourceforge/pmd/lang/matlab/MatlabHandler.java @@ -11,7 +11,10 @@ import net.sourceforge.pmd.lang.rule.RuleViolationFactory; /** * Implementation of LanguageVersionHandler for the Matlab Language. + * + * @deprecated There is no full PMD support for Matlab. */ +@Deprecated public class MatlabHandler extends AbstractLanguageVersionHandler { @Override diff --git a/pmd-matlab/src/main/java/net/sourceforge/pmd/lang/matlab/MatlabLanguageModule.java b/pmd-matlab/src/main/java/net/sourceforge/pmd/lang/matlab/MatlabLanguageModule.java index 29c4621628..8c310584a6 100644 --- a/pmd-matlab/src/main/java/net/sourceforge/pmd/lang/matlab/MatlabLanguageModule.java +++ b/pmd-matlab/src/main/java/net/sourceforge/pmd/lang/matlab/MatlabLanguageModule.java @@ -8,7 +8,10 @@ import net.sourceforge.pmd.lang.BaseLanguageModule; /** * Implementation of the Matlab Language Module. + * + * @deprecated There is no full PMD support for Matlab. */ +@Deprecated public class MatlabLanguageModule extends BaseLanguageModule { /** The name, that can be used to display the language in UI. */ diff --git a/pmd-matlab/src/main/java/net/sourceforge/pmd/lang/matlab/MatlabParser.java b/pmd-matlab/src/main/java/net/sourceforge/pmd/lang/matlab/MatlabParser.java index 70ad4717ae..4548e31820 100644 --- a/pmd-matlab/src/main/java/net/sourceforge/pmd/lang/matlab/MatlabParser.java +++ b/pmd-matlab/src/main/java/net/sourceforge/pmd/lang/matlab/MatlabParser.java @@ -16,7 +16,10 @@ import net.sourceforge.pmd.lang.ast.ParseException; /** * Adapter for the Matlab Parser. + * + * @deprecated There is no full PMD support for Matlab. */ +@Deprecated public class MatlabParser extends AbstractParser { /** diff --git a/pmd-matlab/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java b/pmd-matlab/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java deleted file mode 100644 index 174a140aa4..0000000000 --- a/pmd-matlab/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java +++ /dev/null @@ -1,27 +0,0 @@ -/** - * BSD-style license; for more info see http://pmd.sourceforge.net/license.html - */ - -package net.sourceforge.pmd; - -import java.util.Arrays; -import java.util.Collection; - -import org.junit.runners.Parameterized.Parameters; - -import net.sourceforge.pmd.lang.LanguageRegistry; -import net.sourceforge.pmd.lang.LanguageVersion; -import net.sourceforge.pmd.lang.matlab.MatlabLanguageModule; - -public class LanguageVersionTest extends AbstractLanguageVersionTest { - - public LanguageVersionTest(String name, String terseName, String version, LanguageVersion expected) { - super(name, terseName, version, expected); - } - - @Parameters - public static Collection data() { - return Arrays.asList(new Object[][] { { MatlabLanguageModule.NAME, MatlabLanguageModule.TERSE_NAME, "", - LanguageRegistry.getLanguage(MatlabLanguageModule.NAME).getDefaultVersion(), }, }); - } -} diff --git a/pmd-objectivec/src/main/java/net/sourceforge/pmd/cpd/ObjectiveCTokenizer.java b/pmd-objectivec/src/main/java/net/sourceforge/pmd/cpd/ObjectiveCTokenizer.java index 00e56d793c..2bb7e7deac 100644 --- a/pmd-objectivec/src/main/java/net/sourceforge/pmd/cpd/ObjectiveCTokenizer.java +++ b/pmd-objectivec/src/main/java/net/sourceforge/pmd/cpd/ObjectiveCTokenizer.java @@ -10,10 +10,8 @@ import java.io.StringReader; import net.sourceforge.pmd.cpd.token.JavaCCTokenFilter; import net.sourceforge.pmd.cpd.token.TokenFilter; -import net.sourceforge.pmd.lang.LanguageRegistry; -import net.sourceforge.pmd.lang.LanguageVersionHandler; import net.sourceforge.pmd.lang.ast.TokenMgrError; -import net.sourceforge.pmd.lang.objectivec.ObjectiveCLanguageModule; +import net.sourceforge.pmd.lang.objectivec.ObjectiveCTokenManager; import net.sourceforge.pmd.lang.objectivec.ast.Token; /** @@ -25,11 +23,7 @@ public class ObjectiveCTokenizer implements Tokenizer { public void tokenize(SourceCode sourceCode, Tokens tokenEntries) { StringBuilder buffer = sourceCode.getCodeBuffer(); try (Reader reader = new StringReader(buffer.toString())) { - LanguageVersionHandler languageVersionHandler = LanguageRegistry.getLanguage(ObjectiveCLanguageModule.NAME) - .getDefaultVersion().getLanguageVersionHandler(); - final TokenFilter tokenFilter = new JavaCCTokenFilter(languageVersionHandler - .getParser(languageVersionHandler.getDefaultParserOptions()) - .getTokenManager(sourceCode.getFileName(), reader)); + final TokenFilter tokenFilter = new JavaCCTokenFilter(new ObjectiveCTokenManager(reader)); Token currentToken = (Token) tokenFilter.getNextToken(); while (currentToken != null) { tokenEntries.add(new TokenEntry(currentToken.image, sourceCode.getFileName(), currentToken.beginLine)); diff --git a/pmd-objectivec/src/main/java/net/sourceforge/pmd/lang/objectivec/ObjectiveCHandler.java b/pmd-objectivec/src/main/java/net/sourceforge/pmd/lang/objectivec/ObjectiveCHandler.java index 5a7f13e215..896b7b459e 100644 --- a/pmd-objectivec/src/main/java/net/sourceforge/pmd/lang/objectivec/ObjectiveCHandler.java +++ b/pmd-objectivec/src/main/java/net/sourceforge/pmd/lang/objectivec/ObjectiveCHandler.java @@ -11,7 +11,10 @@ import net.sourceforge.pmd.lang.rule.RuleViolationFactory; /** * Implementation of LanguageVersionHandler for the Objective-C Language. + * + * @deprecated There is no full PMD support for Objective-C. */ +@Deprecated public class ObjectiveCHandler extends AbstractLanguageVersionHandler { @Override diff --git a/pmd-objectivec/src/main/java/net/sourceforge/pmd/lang/objectivec/ObjectiveCLanguageModule.java b/pmd-objectivec/src/main/java/net/sourceforge/pmd/lang/objectivec/ObjectiveCLanguageModule.java index 30e9ccdb3c..51612b04ff 100644 --- a/pmd-objectivec/src/main/java/net/sourceforge/pmd/lang/objectivec/ObjectiveCLanguageModule.java +++ b/pmd-objectivec/src/main/java/net/sourceforge/pmd/lang/objectivec/ObjectiveCLanguageModule.java @@ -8,7 +8,10 @@ import net.sourceforge.pmd.lang.BaseLanguageModule; /** * Implementation of the Objective-C Language Module. + * + * @deprecated There is no full PMD support for Objective-C. */ +@Deprecated public class ObjectiveCLanguageModule extends BaseLanguageModule { /** The name, that can be used to display the language in UI. */ diff --git a/pmd-objectivec/src/main/java/net/sourceforge/pmd/lang/objectivec/ObjectiveCParser.java b/pmd-objectivec/src/main/java/net/sourceforge/pmd/lang/objectivec/ObjectiveCParser.java index fcc042bdab..f71bd2e595 100644 --- a/pmd-objectivec/src/main/java/net/sourceforge/pmd/lang/objectivec/ObjectiveCParser.java +++ b/pmd-objectivec/src/main/java/net/sourceforge/pmd/lang/objectivec/ObjectiveCParser.java @@ -16,7 +16,10 @@ import net.sourceforge.pmd.lang.ast.ParseException; /** * Adapter for the Objective-C Parser. + * + * @deprecated There is no full PMD support for Objective-C. */ +@Deprecated public class ObjectiveCParser extends AbstractParser { /** diff --git a/pmd-objectivec/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java b/pmd-objectivec/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java deleted file mode 100644 index 20f0472faa..0000000000 --- a/pmd-objectivec/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java +++ /dev/null @@ -1,27 +0,0 @@ -/** - * BSD-style license; for more info see http://pmd.sourceforge.net/license.html - */ - -package net.sourceforge.pmd; - -import java.util.Arrays; -import java.util.Collection; - -import org.junit.runners.Parameterized.Parameters; - -import net.sourceforge.pmd.lang.LanguageRegistry; -import net.sourceforge.pmd.lang.LanguageVersion; -import net.sourceforge.pmd.lang.objectivec.ObjectiveCLanguageModule; - -public class LanguageVersionTest extends AbstractLanguageVersionTest { - - public LanguageVersionTest(String name, String terseName, String version, LanguageVersion expected) { - super(name, terseName, version, expected); - } - - @Parameters - public static Collection data() { - return Arrays.asList(new Object[][] { { ObjectiveCLanguageModule.NAME, ObjectiveCLanguageModule.TERSE_NAME, "", - LanguageRegistry.getLanguage(ObjectiveCLanguageModule.NAME).getDefaultVersion(), }, }); - } -} diff --git a/pmd-php/src/main/java/net/sourceforge/pmd/lang/php/PhpLanguageModule.java b/pmd-php/src/main/java/net/sourceforge/pmd/lang/php/PhpLanguageModule.java index 88929091cd..010a7c542a 100644 --- a/pmd-php/src/main/java/net/sourceforge/pmd/lang/php/PhpLanguageModule.java +++ b/pmd-php/src/main/java/net/sourceforge/pmd/lang/php/PhpLanguageModule.java @@ -8,7 +8,10 @@ import net.sourceforge.pmd.lang.BaseLanguageModule; /** * Language Module for PHP. + * + * @deprecated There is no full PMD support for PHP. */ +@Deprecated public class PhpLanguageModule extends BaseLanguageModule { /** The name. */ diff --git a/pmd-php/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java b/pmd-php/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java deleted file mode 100644 index b5f4c0c7b0..0000000000 --- a/pmd-php/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java +++ /dev/null @@ -1,27 +0,0 @@ -/** - * BSD-style license; for more info see http://pmd.sourceforge.net/license.html - */ - -package net.sourceforge.pmd; - -import java.util.Arrays; -import java.util.Collection; - -import org.junit.runners.Parameterized.Parameters; - -import net.sourceforge.pmd.lang.LanguageRegistry; -import net.sourceforge.pmd.lang.LanguageVersion; -import net.sourceforge.pmd.lang.php.PhpLanguageModule; - -public class LanguageVersionTest extends AbstractLanguageVersionTest { - - public LanguageVersionTest(String name, String terseName, String version, LanguageVersion expected) { - super(name, terseName, version, expected); - } - - @Parameters - public static Collection data() { - return Arrays.asList(new Object[][] { { PhpLanguageModule.NAME, PhpLanguageModule.TERSE_NAME, "", - LanguageRegistry.getLanguage(PhpLanguageModule.NAME).getDefaultVersion(), }, }); - } -} diff --git a/pmd-python/src/main/java/net/sourceforge/pmd/lang/python/PythonHandler.java b/pmd-python/src/main/java/net/sourceforge/pmd/lang/python/PythonHandler.java index c7816b8ea6..63c5a547ea 100644 --- a/pmd-python/src/main/java/net/sourceforge/pmd/lang/python/PythonHandler.java +++ b/pmd-python/src/main/java/net/sourceforge/pmd/lang/python/PythonHandler.java @@ -11,7 +11,10 @@ import net.sourceforge.pmd.lang.rule.RuleViolationFactory; /** * Implementation of LanguageVersionHandler for the Python Language. + * + * @deprecated There is no full PMD support for Python. */ +@Deprecated public class PythonHandler extends AbstractLanguageVersionHandler { @Override diff --git a/pmd-python/src/main/java/net/sourceforge/pmd/lang/python/PythonLanguageModule.java b/pmd-python/src/main/java/net/sourceforge/pmd/lang/python/PythonLanguageModule.java index 995810ffb2..3003d53389 100644 --- a/pmd-python/src/main/java/net/sourceforge/pmd/lang/python/PythonLanguageModule.java +++ b/pmd-python/src/main/java/net/sourceforge/pmd/lang/python/PythonLanguageModule.java @@ -8,7 +8,10 @@ import net.sourceforge.pmd.lang.BaseLanguageModule; /** * Implementation of the Python Language Module. + * + * @deprecated There is no full PMD support for Python. */ +@Deprecated public class PythonLanguageModule extends BaseLanguageModule { /** The name, that can be used to display the language in UI. */ diff --git a/pmd-python/src/main/java/net/sourceforge/pmd/lang/python/PythonParser.java b/pmd-python/src/main/java/net/sourceforge/pmd/lang/python/PythonParser.java index 03e4e4f03d..4aa11e9706 100644 --- a/pmd-python/src/main/java/net/sourceforge/pmd/lang/python/PythonParser.java +++ b/pmd-python/src/main/java/net/sourceforge/pmd/lang/python/PythonParser.java @@ -16,7 +16,10 @@ import net.sourceforge.pmd.lang.ast.ParseException; /** * Adapter for the Python Parser. + * + * @deprecated There is no full PMD support for Python. */ +@Deprecated public class PythonParser extends AbstractParser { /** diff --git a/pmd-python/src/test/java/net/sourceforge/pmd/LanguageVersionDiscovererTest.java b/pmd-python/src/test/java/net/sourceforge/pmd/LanguageVersionDiscovererTest.java deleted file mode 100644 index 2915db700e..0000000000 --- a/pmd-python/src/test/java/net/sourceforge/pmd/LanguageVersionDiscovererTest.java +++ /dev/null @@ -1,32 +0,0 @@ -/** - * BSD-style license; for more info see http://pmd.sourceforge.net/license.html - */ - -package net.sourceforge.pmd; - -import static org.junit.Assert.assertEquals; - -import java.io.File; - -import org.junit.Test; - -import net.sourceforge.pmd.lang.LanguageRegistry; -import net.sourceforge.pmd.lang.LanguageVersion; -import net.sourceforge.pmd.lang.LanguageVersionDiscoverer; -import net.sourceforge.pmd.lang.python.PythonLanguageModule; - -public class LanguageVersionDiscovererTest { - - /** - * Test on Python file with default version - */ - @Test - public void testPython() { - LanguageVersionDiscoverer discoverer = new LanguageVersionDiscoverer(); - File pythonFile = new File("/path/to/MY_PACKAGE.py"); - - LanguageVersion languageVersion = discoverer.getDefaultLanguageVersionForFile(pythonFile); - assertEquals("LanguageVersion must be Python!", - LanguageRegistry.getLanguage(PythonLanguageModule.NAME).getDefaultVersion(), languageVersion); - } -} diff --git a/pmd-python/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java b/pmd-python/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java deleted file mode 100644 index f4210fc481..0000000000 --- a/pmd-python/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java +++ /dev/null @@ -1,27 +0,0 @@ -/** - * BSD-style license; for more info see http://pmd.sourceforge.net/license.html - */ - -package net.sourceforge.pmd; - -import java.util.Arrays; -import java.util.Collection; - -import org.junit.runners.Parameterized.Parameters; - -import net.sourceforge.pmd.lang.LanguageRegistry; -import net.sourceforge.pmd.lang.LanguageVersion; -import net.sourceforge.pmd.lang.python.PythonLanguageModule; - -public class LanguageVersionTest extends AbstractLanguageVersionTest { - - public LanguageVersionTest(String name, String terseName, String version, LanguageVersion expected) { - super(name, terseName, version, expected); - } - - @Parameters - public static Collection data() { - return Arrays.asList(new Object[][] { { PythonLanguageModule.NAME, PythonLanguageModule.TERSE_NAME, "", - LanguageRegistry.getLanguage(PythonLanguageModule.NAME).getDefaultVersion(), }, }); - } -} diff --git a/pmd-ruby/src/main/java/net/sourceforge/pmd/lang/ruby/RubyLanguageModule.java b/pmd-ruby/src/main/java/net/sourceforge/pmd/lang/ruby/RubyLanguageModule.java index 48ff5f92a7..36ec4680e2 100644 --- a/pmd-ruby/src/main/java/net/sourceforge/pmd/lang/ruby/RubyLanguageModule.java +++ b/pmd-ruby/src/main/java/net/sourceforge/pmd/lang/ruby/RubyLanguageModule.java @@ -8,7 +8,10 @@ import net.sourceforge.pmd.lang.BaseLanguageModule; /** * Language module for Ruby. + * + * @deprecated There is no full PMD support for Ruby. */ +@Deprecated public class RubyLanguageModule extends BaseLanguageModule { /** The name. */ diff --git a/pmd-ruby/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java b/pmd-ruby/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java deleted file mode 100644 index af5451a4aa..0000000000 --- a/pmd-ruby/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java +++ /dev/null @@ -1,27 +0,0 @@ -/** - * BSD-style license; for more info see http://pmd.sourceforge.net/license.html - */ - -package net.sourceforge.pmd; - -import java.util.Arrays; -import java.util.Collection; - -import org.junit.runners.Parameterized.Parameters; - -import net.sourceforge.pmd.lang.LanguageRegistry; -import net.sourceforge.pmd.lang.LanguageVersion; -import net.sourceforge.pmd.lang.ruby.RubyLanguageModule; - -public class LanguageVersionTest extends AbstractLanguageVersionTest { - - public LanguageVersionTest(String name, String terseName, String version, LanguageVersion expected) { - super(name, terseName, version, expected); - } - - @Parameters - public static Collection data() { - return Arrays.asList(new Object[][] { { RubyLanguageModule.NAME, RubyLanguageModule.TERSE_NAME, "", - LanguageRegistry.getLanguage(RubyLanguageModule.NAME).getDefaultVersion(), }, }); - } -} diff --git a/pmd-scala/src/main/java/net/sourceforge/pmd/lang/scala/ScalaLanguageModule.java b/pmd-scala/src/main/java/net/sourceforge/pmd/lang/scala/ScalaLanguageModule.java index 135b626ebd..739a0834e7 100644 --- a/pmd-scala/src/main/java/net/sourceforge/pmd/lang/scala/ScalaLanguageModule.java +++ b/pmd-scala/src/main/java/net/sourceforge/pmd/lang/scala/ScalaLanguageModule.java @@ -8,7 +8,10 @@ import net.sourceforge.pmd.lang.BaseLanguageModule; /** * Language Module for Scala + * + * @deprecated There is no full PMD support for Scala. */ +@Deprecated public class ScalaLanguageModule extends BaseLanguageModule { /** The name. */ diff --git a/pmd-scala/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java b/pmd-scala/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java deleted file mode 100644 index 1a45a40e5f..0000000000 --- a/pmd-scala/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java +++ /dev/null @@ -1,27 +0,0 @@ -/** - * BSD-style license; for more info see http://pmd.sourceforge.net/license.html - */ - -package net.sourceforge.pmd; - -import java.util.Arrays; -import java.util.Collection; - -import org.junit.runners.Parameterized.Parameters; - -import net.sourceforge.pmd.lang.LanguageRegistry; -import net.sourceforge.pmd.lang.LanguageVersion; -import net.sourceforge.pmd.lang.scala.ScalaLanguageModule; - -public class LanguageVersionTest extends AbstractLanguageVersionTest { - - public LanguageVersionTest(String name, String terseName, String version, LanguageVersion expected) { - super(name, terseName, version, expected); - } - - @Parameters - public static Collection data() { - return Arrays.asList(new Object[][] { { ScalaLanguageModule.NAME, ScalaLanguageModule.TERSE_NAME, "", - LanguageRegistry.getLanguage(ScalaLanguageModule.NAME).getDefaultVersion(), }, }); - } -} diff --git a/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/SwiftLanguageModule.java b/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/SwiftLanguageModule.java index fe66c3f81f..76fa53d5a6 100644 --- a/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/SwiftLanguageModule.java +++ b/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/SwiftLanguageModule.java @@ -8,7 +8,10 @@ import net.sourceforge.pmd.lang.BaseLanguageModule; /** * Language Module for Swift + * + * @deprecated There is no full PMD support for Swift. */ +@Deprecated public class SwiftLanguageModule extends BaseLanguageModule { /** The name. */ diff --git a/pmd-swift/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java b/pmd-swift/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java deleted file mode 100644 index fae0f9dfd2..0000000000 --- a/pmd-swift/src/test/java/net/sourceforge/pmd/LanguageVersionTest.java +++ /dev/null @@ -1,27 +0,0 @@ -/** - * BSD-style license; for more info see http://pmd.sourceforge.net/license.html - */ - -package net.sourceforge.pmd; - -import java.util.Arrays; -import java.util.Collection; - -import org.junit.runners.Parameterized.Parameters; - -import net.sourceforge.pmd.lang.LanguageRegistry; -import net.sourceforge.pmd.lang.LanguageVersion; -import net.sourceforge.pmd.lang.swift.SwiftLanguageModule; - -public class LanguageVersionTest extends AbstractLanguageVersionTest { - - public LanguageVersionTest(String name, String terseName, String version, LanguageVersion expected) { - super(name, terseName, version, expected); - } - - @Parameters - public static Collection data() { - return Arrays.asList(new Object[][] { { SwiftLanguageModule.NAME, SwiftLanguageModule.TERSE_NAME, "", - LanguageRegistry.getLanguage(SwiftLanguageModule.NAME).getDefaultVersion(), }, }); - } -}