diff --git a/pmd-core/src/main/resources/rulesets/releases/552.xml b/pmd-core/src/main/resources/rulesets/releases/552.xml new file mode 100644 index 0000000000..dd70f67ef7 --- /dev/null +++ b/pmd-core/src/main/resources/rulesets/releases/552.xml @@ -0,0 +1,14 @@ + + + + +This ruleset contains links to rules that are new in PMD v5.5.2 + + + + + + diff --git a/pmd-plsql/src/main/resources/rulesets/plsql/rulesets.properties b/pmd-plsql/src/main/resources/rulesets/plsql/rulesets.properties index 9479c7c9d3..ae519eb457 100644 --- a/pmd-plsql/src/main/resources/rulesets/plsql/rulesets.properties +++ b/pmd-plsql/src/main/resources/rulesets/plsql/rulesets.properties @@ -2,4 +2,4 @@ # BSD-style license; for more info see http://pmd.sourceforge.net/license.html # -rulesets.filenames=rulesets/plsql/codesize.xml,rulesets/plsql/dates.xml,rulesets/plsql/TomKytesDespair.xml +rulesets.filenames=rulesets/plsql/codesize.xml,rulesets/plsql/dates.xml,rulesets/plsql/TomKytesDespair.xml,rulesets/plsql/strictsyntax.xml diff --git a/pmd-plsql/src/main/resources/rulesets/plsql/strictsyntax.xml b/pmd-plsql/src/main/resources/rulesets/plsql/strictsyntax.xml new file mode 100644 index 0000000000..5d88e3c523 --- /dev/null +++ b/pmd-plsql/src/main/resources/rulesets/plsql/strictsyntax.xml @@ -0,0 +1,51 @@ + + + + +The Strict Syntax ruleset contains rules that highlight invalid plsql syntax, which works, but should be avoided. + + + + +Oracle states that the PRAQMA AUTONOMOUS_TRANSACTION must be in the declaration block, +but the code does not complain, when being compiled on the 11g DB. +https://docs.oracle.com/cd/B28359_01/appdev.111/b28370/static.htm#BABIIHBJ + + 3 + + + + + + violation */ + /* do something */ + COMMIT; + end do_transaction; + +end inline_pragma_error; +/ + + ]]> + + + diff --git a/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/rule/strictsyntax/StrictsyntaxRulesTest.java b/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/rule/strictsyntax/StrictsyntaxRulesTest.java new file mode 100644 index 0000000000..9fc5523280 --- /dev/null +++ b/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/rule/strictsyntax/StrictsyntaxRulesTest.java @@ -0,0 +1,16 @@ +/** + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ +package net.sourceforge.pmd.lang.plsql.rule.strictsyntax; + +import net.sourceforge.pmd.testframework.SimpleAggregatorTst; + +public class StrictsyntaxRulesTest extends SimpleAggregatorTst { + + private static final String RULESET = "plsql-strictsyntax"; + + @Override + public void setUp() { + addRule(RULESET, "MisplacedPragma"); + } +} diff --git a/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/strictsyntax/xml/MisplacedPragma.xml b/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/strictsyntax/xml/MisplacedPragma.xml new file mode 100644 index 0000000000..046e2dc6a1 --- /dev/null +++ b/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/strictsyntax/xml/MisplacedPragma.xml @@ -0,0 +1,53 @@ + + + + Correct Syntax + 0 + + plsql + + + + Wrong Syntax + 1 + 10 + + plsql + + + diff --git a/src/site/markdown/overview/changelog.md b/src/site/markdown/overview/changelog.md index 9511036327..843e11312f 100644 --- a/src/site/markdown/overview/changelog.md +++ b/src/site/markdown/overview/changelog.md @@ -8,8 +8,14 @@ **Feature Request and Improvements:** +* plsql + * [#1539](https://sourceforge.net/p/pmd/bugs/1539/): \[plsql] Create new rule for strict syntax checking: MisplacedPragma + **New/Modified/Deprecated Rules:** +* New Rules for plsql + * plsql-strictsyntax: MisplacedPragma + **Pull Requests:** * [#106](https://github.com/pmd/pmd/pull/106): \[java] CPD: Keep constructor names under ignoreIdentifiers