diff --git a/pmd/etc/grammar/JspParser.jjt b/pmd-jsp/etc/grammar/JspParser.jjt
similarity index 100%
rename from pmd/etc/grammar/JspParser.jjt
rename to pmd-jsp/etc/grammar/JspParser.jjt
diff --git a/pmd-jsp/pom.xml b/pmd-jsp/pom.xml
new file mode 100644
index 0000000000..b8a36b8f0f
--- /dev/null
+++ b/pmd-jsp/pom.xml
@@ -0,0 +1,185 @@
+
+
+ 4.0.0
+ pmd-jsp
+ PMD JSP
+
+
+ net.sourceforge.pmd
+ pmd-aggregate
+ 5.1.4-SNAPSHOT
+
+
+
+
+
+ maven-resources-plugin
+
+ false
+
+ ${*}
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-antrun-plugin
+ true
+
+
+ generate-sources
+ generate-sources
+
+
+
+
+
+
+
+
+
+ run
+
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ add-javacc-generated-sources
+
+ add-source
+
+
+
+
+
+
+
+
+
+
+
+
+ com.atlassian.maven.plugins
+ maven-clover2-plugin
+
+ ${java.version}
+ ${basedir}/../pmd/licences/clover2.license
+
+
+
+ pre-site
+
+ instrument
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-site-plugin
+
+ ${project.build.directory}/generated-xdocs
+
+
+
+
+
+
+ net.sourceforge.pmd
+ pmd
+ ${project.version}
+
+
+ net.sourceforge.pmd
+ pmd-test
+ ${project.version}
+
+
+ org.apache.ant
+ ant
+ provided
+
+
+ org.apache.ant
+ ant-testutil
+ test
+
+
+ jaxen
+ jaxen
+
+
+ xercesImpl
+ xerces
+
+
+ xalan
+ xalan
+
+
+ icu4j
+ com.ibm.icu
+
+
+
+
+ com.beust
+ jcommander
+
+
+ org.ow2.asm
+ asm
+
+
+ net.sourceforge.saxon
+ saxon
+
+
+ net.sourceforge.saxon
+ saxon
+ dom
+ runtime
+
+
+ junit
+ junit
+ test
+
+
+ xerces
+ xercesImpl
+ jar
+ compile
+
+
+ net.java.dev.javacc
+ javacc
+
+
+ commons-io
+ commons-io
+
+
+ org.mockito
+ mockito-all
+ test
+
+
+ org.apache.commons
+ commons-lang3
+
+
+ org.slf4j
+ slf4j-api
+ test
+
+
+
diff --git a/pmd-jsp/src/main/ant/alljavacc.xml b/pmd-jsp/src/main/ant/alljavacc.xml
new file mode 100644
index 0000000000..39402a662a
--- /dev/null
+++ b/pmd-jsp/src/main/ant/alljavacc.xml
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ public class
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pmd/src/main/java/net/sourceforge/pmd/cpd/JSPLanguage.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/cpd/JSPLanguage.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/cpd/JSPLanguage.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/cpd/JSPLanguage.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/cpd/JSPTokenizer.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/cpd/JSPTokenizer.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/cpd/JSPTokenizer.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/cpd/JSPTokenizer.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/JspHandler.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/JspHandler.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/JspHandler.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/JspHandler.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/JspLanguageModule.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/JspLanguageModule.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/JspLanguageModule.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/JspLanguageModule.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/JspParser.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/JspParser.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/JspParser.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/JspParser.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/JspTokenManager.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/JspTokenManager.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/JspTokenManager.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/JspTokenManager.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTAttribute.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTAttribute.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTAttribute.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTAttribute.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTAttributeValue.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTAttributeValue.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTAttributeValue.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTAttributeValue.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTCData.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTCData.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTCData.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTCData.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTCommentTag.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTCommentTag.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTCommentTag.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTCommentTag.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTCompilationUnit.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTCompilationUnit.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTCompilationUnit.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTCompilationUnit.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTContent.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTContent.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTContent.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTContent.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTDeclaration.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTDeclaration.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTDeclaration.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTDeclaration.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTDoctypeDeclaration.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTDoctypeDeclaration.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTDoctypeDeclaration.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTDoctypeDeclaration.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTDoctypeExternalId.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTDoctypeExternalId.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTDoctypeExternalId.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTDoctypeExternalId.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTElExpression.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTElExpression.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTElExpression.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTElExpression.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTElement.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTElement.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTElement.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTElement.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTHtmlScript.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTHtmlScript.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTHtmlScript.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTHtmlScript.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspComment.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspComment.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspComment.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspComment.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDeclaration.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDeclaration.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDeclaration.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDeclaration.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDeclarations.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDeclarations.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDeclarations.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDeclarations.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDirective.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDirective.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDirective.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDirective.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDirectiveAttribute.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDirectiveAttribute.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDirectiveAttribute.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDirectiveAttribute.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDocument.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDocument.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDocument.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDocument.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspExpression.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspExpression.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspExpression.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspExpression.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspExpressionInAttribute.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspExpressionInAttribute.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspExpressionInAttribute.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspExpressionInAttribute.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspScriptlet.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspScriptlet.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspScriptlet.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspScriptlet.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTText.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTText.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTText.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTText.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTUnparsedText.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTUnparsedText.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTUnparsedText.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTUnparsedText.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTValueBinding.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTValueBinding.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTValueBinding.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTValueBinding.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/AbstractJspNode.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/AbstractJspNode.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/AbstractJspNode.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/AbstractJspNode.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/DumpFacade.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/DumpFacade.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/DumpFacade.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/DumpFacade.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/JspNode.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/JspNode.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/JspNode.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/JspNode.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/JspParserVisitorAdapter.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/JspParserVisitorAdapter.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/JspParserVisitorAdapter.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/JspParserVisitorAdapter.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/OpenTagRegister.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/OpenTagRegister.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/OpenTagRegister.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/OpenTagRegister.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/StartAndEndTagMismatchException.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/StartAndEndTagMismatchException.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/StartAndEndTagMismatchException.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/StartAndEndTagMismatchException.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/SyntaxErrorException.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/SyntaxErrorException.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/ast/SyntaxErrorException.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/SyntaxErrorException.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/rule/AbstractJspRule.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/rule/AbstractJspRule.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/rule/AbstractJspRule.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/rule/AbstractJspRule.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/rule/JspRuleChainVisitor.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/rule/JspRuleChainVisitor.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/rule/JspRuleChainVisitor.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/rule/JspRuleChainVisitor.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/rule/JspRuleViolationFactory.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/rule/JspRuleViolationFactory.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/rule/JspRuleViolationFactory.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/rule/JspRuleViolationFactory.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/rule/basic/DuplicateJspImportsRule.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/rule/basic/DuplicateJspImportsRule.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/rule/basic/DuplicateJspImportsRule.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/rule/basic/DuplicateJspImportsRule.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/rule/basic/NoInlineStyleInformationRule.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/rule/basic/NoInlineStyleInformationRule.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/rule/basic/NoInlineStyleInformationRule.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/rule/basic/NoInlineStyleInformationRule.java
diff --git a/pmd/src/main/java/net/sourceforge/pmd/lang/jsp/rule/basic/NoUnsanitizedJSPExpressionRule.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/rule/basic/NoUnsanitizedJSPExpressionRule.java
similarity index 100%
rename from pmd/src/main/java/net/sourceforge/pmd/lang/jsp/rule/basic/NoUnsanitizedJSPExpressionRule.java
rename to pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/rule/basic/NoUnsanitizedJSPExpressionRule.java
diff --git a/pmd-jsp/src/main/resources/META-INF/services/net.sourceforge.pmd.lang.Language b/pmd-jsp/src/main/resources/META-INF/services/net.sourceforge.pmd.lang.Language
new file mode 100644
index 0000000000..a171cc649e
--- /dev/null
+++ b/pmd-jsp/src/main/resources/META-INF/services/net.sourceforge.pmd.lang.Language
@@ -0,0 +1 @@
+net.sourceforge.pmd.lang.jsp.JspLanguageModule
diff --git a/pmd/src/main/resources/rulesets/jsp/basic-jsf.xml b/pmd-jsp/src/main/resources/rulesets/jsp/basic-jsf.xml
similarity index 100%
rename from pmd/src/main/resources/rulesets/jsp/basic-jsf.xml
rename to pmd-jsp/src/main/resources/rulesets/jsp/basic-jsf.xml
diff --git a/pmd/src/main/resources/rulesets/jsp/basic.xml b/pmd-jsp/src/main/resources/rulesets/jsp/basic.xml
similarity index 100%
rename from pmd/src/main/resources/rulesets/jsp/basic.xml
rename to pmd-jsp/src/main/resources/rulesets/jsp/basic.xml
diff --git a/pmd/src/main/resources/rulesets/jsp/rulesets.properties b/pmd-jsp/src/main/resources/rulesets/jsp/rulesets.properties
similarity index 100%
rename from pmd/src/main/resources/rulesets/jsp/rulesets.properties
rename to pmd-jsp/src/main/resources/rulesets/jsp/rulesets.properties
diff --git a/pmd/src/test/java/net/sourceforge/pmd/lang/jsp/JspParserTest.java b/pmd-jsp/src/test/java/net/sourceforge/pmd/lang/jsp/JspParserTest.java
similarity index 95%
rename from pmd/src/test/java/net/sourceforge/pmd/lang/jsp/JspParserTest.java
rename to pmd-jsp/src/test/java/net/sourceforge/pmd/lang/jsp/JspParserTest.java
index 09754af18f..8f3b4c6c77 100644
--- a/pmd/src/test/java/net/sourceforge/pmd/lang/jsp/JspParserTest.java
+++ b/pmd-jsp/src/test/java/net/sourceforge/pmd/lang/jsp/JspParserTest.java
@@ -10,7 +10,6 @@ import net.sourceforge.pmd.lang.LanguageVersionHandler;
import net.sourceforge.pmd.lang.Parser;
import net.sourceforge.pmd.lang.ast.Node;
-import net.sourceforge.pmd.lang.java.JavaLanguageModule;
import org.junit.Assert;
import org.junit.Test;
diff --git a/pmd/src/test/java/net/sourceforge/pmd/lang/jsp/ast/AbstractJspNodesTst.java b/pmd-jsp/src/test/java/net/sourceforge/pmd/lang/jsp/ast/AbstractJspNodesTst.java
similarity index 100%
rename from pmd/src/test/java/net/sourceforge/pmd/lang/jsp/ast/AbstractJspNodesTst.java
rename to pmd-jsp/src/test/java/net/sourceforge/pmd/lang/jsp/ast/AbstractJspNodesTst.java
diff --git a/pmd/src/test/java/net/sourceforge/pmd/lang/jsp/ast/JspDocStyleTest.java b/pmd-jsp/src/test/java/net/sourceforge/pmd/lang/jsp/ast/JspDocStyleTest.java
similarity index 100%
rename from pmd/src/test/java/net/sourceforge/pmd/lang/jsp/ast/JspDocStyleTest.java
rename to pmd-jsp/src/test/java/net/sourceforge/pmd/lang/jsp/ast/JspDocStyleTest.java
diff --git a/pmd/src/test/java/net/sourceforge/pmd/lang/jsp/ast/JspPageStyleTest.java b/pmd-jsp/src/test/java/net/sourceforge/pmd/lang/jsp/ast/JspPageStyleTest.java
similarity index 100%
rename from pmd/src/test/java/net/sourceforge/pmd/lang/jsp/ast/JspPageStyleTest.java
rename to pmd-jsp/src/test/java/net/sourceforge/pmd/lang/jsp/ast/JspPageStyleTest.java
diff --git a/pmd/src/test/java/net/sourceforge/pmd/lang/jsp/ast/OpenTagRegisterTest.java b/pmd-jsp/src/test/java/net/sourceforge/pmd/lang/jsp/ast/OpenTagRegisterTest.java
similarity index 100%
rename from pmd/src/test/java/net/sourceforge/pmd/lang/jsp/ast/OpenTagRegisterTest.java
rename to pmd-jsp/src/test/java/net/sourceforge/pmd/lang/jsp/ast/OpenTagRegisterTest.java
diff --git a/pmd/src/test/java/net/sourceforge/pmd/lang/jsp/ast/XPathJspRuleTest.java b/pmd-jsp/src/test/java/net/sourceforge/pmd/lang/jsp/ast/XPathJspRuleTest.java
similarity index 100%
rename from pmd/src/test/java/net/sourceforge/pmd/lang/jsp/ast/XPathJspRuleTest.java
rename to pmd-jsp/src/test/java/net/sourceforge/pmd/lang/jsp/ast/XPathJspRuleTest.java
diff --git a/pmd/src/test/java/net/sourceforge/pmd/lang/jsp/rule/basic/BasicRulesTest.java b/pmd-jsp/src/test/java/net/sourceforge/pmd/lang/jsp/rule/basic/BasicRulesTest.java
similarity index 100%
rename from pmd/src/test/java/net/sourceforge/pmd/lang/jsp/rule/basic/BasicRulesTest.java
rename to pmd-jsp/src/test/java/net/sourceforge/pmd/lang/jsp/rule/basic/BasicRulesTest.java
diff --git a/pmd/src/test/java/net/sourceforge/pmd/lang/jsp/rule/basicjsf/BasicJsfRulesTest.java b/pmd-jsp/src/test/java/net/sourceforge/pmd/lang/jsp/rule/basicjsf/BasicJsfRulesTest.java
similarity index 100%
rename from pmd/src/test/java/net/sourceforge/pmd/lang/jsp/rule/basicjsf/BasicJsfRulesTest.java
rename to pmd-jsp/src/test/java/net/sourceforge/pmd/lang/jsp/rule/basicjsf/BasicJsfRulesTest.java
diff --git a/pmd/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/DuplicateJspImports.xml b/pmd-jsp/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/DuplicateJspImports.xml
similarity index 100%
rename from pmd/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/DuplicateJspImports.xml
rename to pmd-jsp/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/DuplicateJspImports.xml
diff --git a/pmd/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/IframeMissingSrcAttribute.xml b/pmd-jsp/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/IframeMissingSrcAttribute.xml
similarity index 100%
rename from pmd/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/IframeMissingSrcAttribute.xml
rename to pmd-jsp/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/IframeMissingSrcAttribute.xml
diff --git a/pmd/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/JspEncoding.xml b/pmd-jsp/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/JspEncoding.xml
similarity index 100%
rename from pmd/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/JspEncoding.xml
rename to pmd-jsp/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/JspEncoding.xml
diff --git a/pmd/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoClassAttribute.xml b/pmd-jsp/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoClassAttribute.xml
similarity index 100%
rename from pmd/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoClassAttribute.xml
rename to pmd-jsp/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoClassAttribute.xml
diff --git a/pmd/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoHtmlComments.xml b/pmd-jsp/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoHtmlComments.xml
similarity index 100%
rename from pmd/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoHtmlComments.xml
rename to pmd-jsp/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoHtmlComments.xml
diff --git a/pmd/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoInlineScript.xml b/pmd-jsp/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoInlineScript.xml
similarity index 100%
rename from pmd/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoInlineScript.xml
rename to pmd-jsp/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoInlineScript.xml
diff --git a/pmd/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoInlineStyleInformation.xml b/pmd-jsp/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoInlineStyleInformation.xml
similarity index 100%
rename from pmd/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoInlineStyleInformation.xml
rename to pmd-jsp/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoInlineStyleInformation.xml
diff --git a/pmd/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoJspForward.xml b/pmd-jsp/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoJspForward.xml
similarity index 100%
rename from pmd/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoJspForward.xml
rename to pmd-jsp/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoJspForward.xml
diff --git a/pmd/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoLongScripts.xml b/pmd-jsp/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoLongScripts.xml
similarity index 100%
rename from pmd/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoLongScripts.xml
rename to pmd-jsp/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoLongScripts.xml
diff --git a/pmd/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoScriptlets.xml b/pmd-jsp/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoScriptlets.xml
similarity index 100%
rename from pmd/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoScriptlets.xml
rename to pmd-jsp/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoScriptlets.xml
diff --git a/pmd/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoUnsanitizedJSPExpression.xml b/pmd-jsp/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoUnsanitizedJSPExpression.xml
similarity index 100%
rename from pmd/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoUnsanitizedJSPExpression.xml
rename to pmd-jsp/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basic/xml/NoUnsanitizedJSPExpression.xml
diff --git a/pmd/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basicjsf/xml/DontNestJsfInJstlIteration.xml b/pmd-jsp/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basicjsf/xml/DontNestJsfInJstlIteration.xml
similarity index 100%
rename from pmd/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basicjsf/xml/DontNestJsfInJstlIteration.xml
rename to pmd-jsp/src/test/resources/net/sourceforge/pmd/lang/jsp/rule/basicjsf/xml/DontNestJsfInJstlIteration.xml
diff --git a/pmd/src/main/ant/alljavacc.xml b/pmd/src/main/ant/alljavacc.xml
index 62bf7de2e9..09d710f1e2 100644
--- a/pmd/src/main/ant/alljavacc.xml
+++ b/pmd/src/main/ant/alljavacc.xml
@@ -4,7 +4,7 @@
+ depends="checkUpToDate,init,dummyjjtree,cleanup" />
@@ -102,48 +102,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- public class
-
-
-
-
-
-
-
-
-
-
diff --git a/pmd/src/main/resources/META-INF/services/net.sourceforge.pmd.lang.Language b/pmd/src/main/resources/META-INF/services/net.sourceforge.pmd.lang.Language
index e5bb864700..9be1e05ee8 100644
--- a/pmd/src/main/resources/META-INF/services/net.sourceforge.pmd.lang.Language
+++ b/pmd/src/main/resources/META-INF/services/net.sourceforge.pmd.lang.Language
@@ -1,5 +1,4 @@
net.sourceforge.pmd.lang.fortran.FortranLanguageModule
-net.sourceforge.pmd.lang.jsp.JspLanguageModule
net.sourceforge.pmd.lang.php.PhpLanguageModule
net.sourceforge.pmd.lang.ruby.RubyLanguageModule
net.sourceforge.pmd.lang.xml.XmlLanguageModule