diff --git a/maven-plugin-pmd-build/lib/pmd-build-0.4.jar b/maven-plugin-pmd-build/lib/pmd-build-0.4.jar deleted file mode 100644 index 868d41baaa..0000000000 Binary files a/maven-plugin-pmd-build/lib/pmd-build-0.4.jar and /dev/null differ diff --git a/maven-plugin-pmd-build/pom.xml b/maven-plugin-pmd-build/pom.xml index 86d7f163ac..4fd5e92cb3 100644 --- a/maven-plugin-pmd-build/pom.xml +++ b/maven-plugin-pmd-build/pom.xml @@ -33,22 +33,6 @@ only if you modify the java code. - src - test - - - ${basedir} - - xslt/**/*.xsl - - - - ${basedir}/src - - **/*.properties - - - maven-compiler-plugin @@ -79,6 +63,12 @@ only if you modify the java code. 2.0 provided + + commons-io + commons-io + 2.1 + test + diff --git a/maven-plugin-pmd-build/regress/AntTaskTest.java b/maven-plugin-pmd-build/regress/AntTaskTest.java deleted file mode 100644 index 466ae79f60..0000000000 --- a/maven-plugin-pmd-build/regress/AntTaskTest.java +++ /dev/null @@ -1,48 +0,0 @@ -import net.sourceforge.pmd.ant.PmdBuildTask; - -import org.apache.tools.ant.BuildException; -import org.junit.After; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; - -/** - * @author rpelisse - * - */ -public class AntTaskTest { - - /** - * @throws java.lang.Exception - */ - @BeforeClass - public static void setUpBeforeClass() throws Exception { - } - - /** - * @throws java.lang.Exception - */ - @Before - public void setUp() throws Exception { - } - - /** - * @throws java.lang.Exception - */ - @After - public void tearDown() throws Exception { - } - - @Test - public void antTask() { - PmdBuildTask task = new PmdBuildTask(); - task.setRulesDirectory("rulesets"); - task.setTarget("target-test"); - try { - task.execute(); - } catch (BuildException e) { - e.printStackTrace(); - } - - } -} diff --git a/maven-plugin-pmd-build/regress/PmdBuildTest.java b/maven-plugin-pmd-build/regress/PmdBuildTest.java deleted file mode 100644 index d42df1267f..0000000000 --- a/maven-plugin-pmd-build/regress/PmdBuildTest.java +++ /dev/null @@ -1,75 +0,0 @@ -/** - * BSD-style license; for more info see http://pmd.sourceforge.net/license.html - */ -import java.io.File; -import java.io.IOException; - -import javax.xml.transform.TransformerException; - -import net.sourceforge.pmd.build.PmdBuildException; -import net.sourceforge.pmd.build.RuleSetToDocs; - -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.Test; - -/** - * @author Romain PELISSE, belaran@gmail.com - * - */ -public class PmdBuildTest { - - private static String TEST_DIR = "target-test/"; - private static File testDir; - - /** - * @throws java.lang.Exception - */ - @Before - public void setUp() throws Exception { - testDir = new File(TEST_DIR); - if (! testDir.exists() && ! testDir.mkdir() ) - { - throw new PmdBuildException("Can't create " + TEST_DIR); - } - else if ( ! testDir.isDirectory() ) - { - throw new PmdBuildException("testdir " + TEST_DIR + " exist !"); - } - } - - @Test - public void convertRulesetsTest() throws IOException { - RuleSetToDocs builder = new RuleSetToDocs(); - builder.setRulesDirectory("rulesets"); - builder.setTargetDirectory(TEST_DIR); - try { - builder.convertRulesets(); - } catch (PmdBuildException e) { - e.printStackTrace(); - } - } - - @Test - public void generateIndexRules() throws IOException, TransformerException { - RuleSetToDocs builder = new RuleSetToDocs(); - builder.setRulesDirectory("rulesets"); - builder.setTargetDirectory(TEST_DIR); - try { - builder.generateRulesIndex(); - } catch (PmdBuildException e) { - e.printStackTrace(); - } - } - - - /** - * @throws java.lang.Exception - */ - @AfterClass - public static void tearDown() throws Exception { - RuleSetToDocs.deleteFile(testDir); - } - - -} diff --git a/maven-plugin-pmd-build/src/net/sourceforge/pmd/ant/PmdBuildTask.java b/maven-plugin-pmd-build/src/main/java/net/sourceforge/pmd/ant/PmdBuildTask.java similarity index 94% rename from maven-plugin-pmd-build/src/net/sourceforge/pmd/ant/PmdBuildTask.java rename to maven-plugin-pmd-build/src/main/java/net/sourceforge/pmd/ant/PmdBuildTask.java index f2ce886e90..7eae5b49f7 100644 --- a/maven-plugin-pmd-build/src/net/sourceforge/pmd/ant/PmdBuildTask.java +++ b/maven-plugin-pmd-build/src/main/java/net/sourceforge/pmd/ant/PmdBuildTask.java @@ -19,6 +19,7 @@ public class PmdBuildTask extends Task { private String rulesDirectory; private String target; private String siteXml; + private String siteXmlTarget; public String getSiteXml() { return siteXml; @@ -26,6 +27,14 @@ public class PmdBuildTask extends Task { public void setSiteXml(String siteXml) { this.siteXml = siteXml; } + + public String getSiteXmlTarget() { + return siteXmlTarget; + } + public void setSiteXmlTarget(String siteXmlTarget) { + this.siteXmlTarget = siteXmlTarget; + } + private String rulesetToDocs; private String mergeRuleset; private String rulesIndex; @@ -61,6 +70,7 @@ public class PmdBuildTask extends Task { PmdBuildTools tool = validate(new RuleSetToDocs()); tool.setTargetDirectory(this.target); tool.setSiteXml(siteXml); + tool.setSiteXmlTarget(this.siteXmlTarget); tool.setRulesDirectory(this.rulesDirectory); try { diff --git a/maven-plugin-pmd-build/src/net/sourceforge/pmd/build/PmdBuildException.java b/maven-plugin-pmd-build/src/main/java/net/sourceforge/pmd/build/PmdBuildException.java similarity index 100% rename from maven-plugin-pmd-build/src/net/sourceforge/pmd/build/PmdBuildException.java rename to maven-plugin-pmd-build/src/main/java/net/sourceforge/pmd/build/PmdBuildException.java diff --git a/maven-plugin-pmd-build/src/net/sourceforge/pmd/build/PmdBuildTools.java b/maven-plugin-pmd-build/src/main/java/net/sourceforge/pmd/build/PmdBuildTools.java similarity index 100% rename from maven-plugin-pmd-build/src/net/sourceforge/pmd/build/PmdBuildTools.java rename to maven-plugin-pmd-build/src/main/java/net/sourceforge/pmd/build/PmdBuildTools.java diff --git a/maven-plugin-pmd-build/src/net/sourceforge/pmd/build/RuleSetToDocs.java b/maven-plugin-pmd-build/src/main/java/net/sourceforge/pmd/build/RuleSetToDocs.java similarity index 100% rename from maven-plugin-pmd-build/src/net/sourceforge/pmd/build/RuleSetToDocs.java rename to maven-plugin-pmd-build/src/main/java/net/sourceforge/pmd/build/RuleSetToDocs.java diff --git a/maven-plugin-pmd-build/src/net/sourceforge/pmd/build/filefilter/DirectoryFileFilter.java b/maven-plugin-pmd-build/src/main/java/net/sourceforge/pmd/build/filefilter/DirectoryFileFilter.java similarity index 100% rename from maven-plugin-pmd-build/src/net/sourceforge/pmd/build/filefilter/DirectoryFileFilter.java rename to maven-plugin-pmd-build/src/main/java/net/sourceforge/pmd/build/filefilter/DirectoryFileFilter.java diff --git a/maven-plugin-pmd-build/src/net/sourceforge/pmd/build/filefilter/RulesetFilenameFilter.java b/maven-plugin-pmd-build/src/main/java/net/sourceforge/pmd/build/filefilter/RulesetFilenameFilter.java similarity index 100% rename from maven-plugin-pmd-build/src/net/sourceforge/pmd/build/filefilter/RulesetFilenameFilter.java rename to maven-plugin-pmd-build/src/main/java/net/sourceforge/pmd/build/filefilter/RulesetFilenameFilter.java diff --git a/maven-plugin-pmd-build/src/net/sourceforge/pmd/build/util/ConfigUtil.java b/maven-plugin-pmd-build/src/main/java/net/sourceforge/pmd/build/util/ConfigUtil.java similarity index 100% rename from maven-plugin-pmd-build/src/net/sourceforge/pmd/build/util/ConfigUtil.java rename to maven-plugin-pmd-build/src/main/java/net/sourceforge/pmd/build/util/ConfigUtil.java diff --git a/maven-plugin-pmd-build/src/net/sourceforge/pmd/build/util/FileUtil.java b/maven-plugin-pmd-build/src/main/java/net/sourceforge/pmd/build/util/FileUtil.java similarity index 100% rename from maven-plugin-pmd-build/src/net/sourceforge/pmd/build/util/FileUtil.java rename to maven-plugin-pmd-build/src/main/java/net/sourceforge/pmd/build/util/FileUtil.java diff --git a/maven-plugin-pmd-build/src/net/sourceforge/pmd/build/util/XmlUtil.java b/maven-plugin-pmd-build/src/main/java/net/sourceforge/pmd/build/util/XmlUtil.java similarity index 100% rename from maven-plugin-pmd-build/src/net/sourceforge/pmd/build/util/XmlUtil.java rename to maven-plugin-pmd-build/src/main/java/net/sourceforge/pmd/build/util/XmlUtil.java diff --git a/maven-plugin-pmd-build/src/net/sourceforge/pmd/build/xml/RulesetFileTemplater.java b/maven-plugin-pmd-build/src/main/java/net/sourceforge/pmd/build/xml/RulesetFileTemplater.java similarity index 100% rename from maven-plugin-pmd-build/src/net/sourceforge/pmd/build/xml/RulesetFileTemplater.java rename to maven-plugin-pmd-build/src/main/java/net/sourceforge/pmd/build/xml/RulesetFileTemplater.java diff --git a/maven-plugin-pmd-build/src/net/sourceforge/pmd/build/xml/XmlFileTemplater.java b/maven-plugin-pmd-build/src/main/java/net/sourceforge/pmd/build/xml/XmlFileTemplater.java similarity index 100% rename from maven-plugin-pmd-build/src/net/sourceforge/pmd/build/xml/XmlFileTemplater.java rename to maven-plugin-pmd-build/src/main/java/net/sourceforge/pmd/build/xml/XmlFileTemplater.java diff --git a/maven-plugin-pmd-build/src/net/sourceforge/pmd/maven/PmdPreSite.java b/maven-plugin-pmd-build/src/main/java/net/sourceforge/pmd/maven/PmdPreSite.java similarity index 100% rename from maven-plugin-pmd-build/src/net/sourceforge/pmd/maven/PmdPreSite.java rename to maven-plugin-pmd-build/src/main/java/net/sourceforge/pmd/maven/PmdPreSite.java diff --git a/maven-plugin-pmd-build/src/config.properties b/maven-plugin-pmd-build/src/main/resources/config.properties similarity index 100% rename from maven-plugin-pmd-build/src/config.properties rename to maven-plugin-pmd-build/src/main/resources/config.properties diff --git a/maven-plugin-pmd-build/src/logging.properties b/maven-plugin-pmd-build/src/main/resources/logging.properties similarity index 100% rename from maven-plugin-pmd-build/src/logging.properties rename to maven-plugin-pmd-build/src/main/resources/logging.properties diff --git a/maven-plugin-pmd-build/xslt/add-menu-to-site-descriptor.xsl b/maven-plugin-pmd-build/src/main/resources/xslt/add-menu-to-site-descriptor.xsl similarity index 100% rename from maven-plugin-pmd-build/xslt/add-menu-to-site-descriptor.xsl rename to maven-plugin-pmd-build/src/main/resources/xslt/add-menu-to-site-descriptor.xsl diff --git a/maven-plugin-pmd-build/xslt/create-rules-menu.xsl b/maven-plugin-pmd-build/src/main/resources/xslt/create-rules-menu.xsl similarity index 100% rename from maven-plugin-pmd-build/xslt/create-rules-menu.xsl rename to maven-plugin-pmd-build/src/main/resources/xslt/create-rules-menu.xsl diff --git a/maven-plugin-pmd-build/xslt/merge-rulesets.xsl b/maven-plugin-pmd-build/src/main/resources/xslt/merge-rulesets.xsl similarity index 100% rename from maven-plugin-pmd-build/xslt/merge-rulesets.xsl rename to maven-plugin-pmd-build/src/main/resources/xslt/merge-rulesets.xsl diff --git a/maven-plugin-pmd-build/xslt/rule-format.xsl b/maven-plugin-pmd-build/src/main/resources/xslt/rule-format.xsl similarity index 100% rename from maven-plugin-pmd-build/xslt/rule-format.xsl rename to maven-plugin-pmd-build/src/main/resources/xslt/rule-format.xsl diff --git a/maven-plugin-pmd-build/xslt/rules-index.xsl b/maven-plugin-pmd-build/src/main/resources/xslt/rules-index.xsl similarity index 100% rename from maven-plugin-pmd-build/xslt/rules-index.xsl rename to maven-plugin-pmd-build/src/main/resources/xslt/rules-index.xsl diff --git a/maven-plugin-pmd-build/src/test/java/net/sourceforge/pmd/TestBase.java b/maven-plugin-pmd-build/src/test/java/net/sourceforge/pmd/TestBase.java new file mode 100644 index 0000000000..bbdf57fb4d --- /dev/null +++ b/maven-plugin-pmd-build/src/test/java/net/sourceforge/pmd/TestBase.java @@ -0,0 +1,49 @@ +/** + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ +package net.sourceforge.pmd; + +import java.io.File; + +import net.sourceforge.pmd.build.PmdBuildException; + +import org.apache.commons.io.FileUtils; +import org.junit.After; +import org.junit.Before; + +/** + * Base test class which sets up the environment for the tests. + * @author Andreas Dangel + * + */ +public abstract class TestBase { + + protected static String TEST_DIR = "target/test-environment/"; + protected static File testDir = null; + + /** + * @throws java.lang.Exception + */ + @Before + public void setUp() throws Exception { + testDir = new File(TEST_DIR); + if (! testDir.exists() && ! testDir.mkdir() ) + { + throw new PmdBuildException("Can't create " + TEST_DIR); + } + else if ( ! testDir.isDirectory() ) + { + throw new PmdBuildException("testdir " + TEST_DIR + " exist !"); + } + + FileUtils.copyDirectory(new File("src/test/resources/sample-pmd"), testDir); + } + + @After + public void tearDown() throws Exception { + if (testDir != null) { + FileUtils.deleteDirectory(testDir); + } + testDir = null; + } +} diff --git a/maven-plugin-pmd-build/src/test/java/net/sourceforge/pmd/ant/PmdBuildTaskTest.java b/maven-plugin-pmd-build/src/test/java/net/sourceforge/pmd/ant/PmdBuildTaskTest.java new file mode 100644 index 0000000000..65f613b9a7 --- /dev/null +++ b/maven-plugin-pmd-build/src/test/java/net/sourceforge/pmd/ant/PmdBuildTaskTest.java @@ -0,0 +1,26 @@ +/** + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ + +package net.sourceforge.pmd.ant; + +import net.sourceforge.pmd.TestBase; + +import org.junit.Test; + +/** + * @author rpelisse + * + */ +public class PmdBuildTaskTest extends TestBase { + + @Test + public void antTask() throws Exception { + PmdBuildTask task = new PmdBuildTask(); + task.setRulesDirectory(TEST_DIR + "rulesets"); + task.setTarget(TEST_DIR + "target"); + task.setSiteXml(TEST_DIR + "site/site.pre.xml"); + task.setSiteXmlTarget(TEST_DIR + "site/site.xml"); + task.execute(); + } +} diff --git a/maven-plugin-pmd-build/src/test/java/net/sourceforge/pmd/build/RuleSetToDocsTest.java b/maven-plugin-pmd-build/src/test/java/net/sourceforge/pmd/build/RuleSetToDocsTest.java new file mode 100644 index 0000000000..c3566d8535 --- /dev/null +++ b/maven-plugin-pmd-build/src/test/java/net/sourceforge/pmd/build/RuleSetToDocsTest.java @@ -0,0 +1,24 @@ +/** + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ +package net.sourceforge.pmd.build; + +import net.sourceforge.pmd.TestBase; + +import org.junit.Test; + +/** + * @author Romain PELISSE, belaran@gmail.com + * + */ +public class RuleSetToDocsTest extends TestBase { + + @Test + public void convertRulesetsTest() throws Exception { + RuleSetToDocs builder = new RuleSetToDocs(); + builder.setRulesDirectory(TEST_DIR + "rulesets"); + builder.setTargetDirectory(TEST_DIR + "target"); + + builder.convertRulesets(); + } +} diff --git a/maven-plugin-pmd-build/src/test/resources/sample-pmd/rulesets/java/basic.xml b/maven-plugin-pmd-build/src/test/resources/sample-pmd/rulesets/java/basic.xml new file mode 100644 index 0000000000..3f4812f853 --- /dev/null +++ b/maven-plugin-pmd-build/src/test/resources/sample-pmd/rulesets/java/basic.xml @@ -0,0 +1,50 @@ + + + + +The Basic ruleset contains a collection of good practices which should be followed. + + + + +Avoid jumbled loop incrementers - its usually a mistake, and is confusing even if intentional. + + 3 + + + + + + + + + + + + diff --git a/maven-plugin-pmd-build/src/test/resources/sample-pmd/site/site.pre.xml b/maven-plugin-pmd-build/src/test/resources/sample-pmd/site/site.pre.xml new file mode 100644 index 0000000000..8d6b880017 --- /dev/null +++ b/maven-plugin-pmd-build/src/test/resources/sample-pmd/site/site.pre.xml @@ -0,0 +1,29 @@ + + + + SourceForge + images/sflogo.png + http://sourceforge.net/ + + + pmd-logo + images/pmd_logo_small.jpg + http://pmd.sourceforge.net/ + + + + + + + + + + + + + + + + + +