Author: dkulp
Date: Sat Mar 10 06:16:04 2007
New Revision: 516710
URL: http://svn.apache.org/viewvc?view=rev&rev=516710
Log:
MPMD-41,MPMD-30,MPMD-47,MPMD-51,MPMD40
* Use PMD 3.9
* Use compileSourceRoots and testSourceRoots for directories
* Copy the pmd.xml to site as well
Modified:
maven/plugins/trunk/maven-pmd-plugin/pom.xml
maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/AbstractPmdReport.java
maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReport.java
maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReport.java
maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdViolationCheckMojo.java
maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/custom-configuration/cpd-custom-configuration-plugin-config.xml
maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/custom-configuration/custom-configuration-plugin-config.xml
maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/default-configuration/cpd-default-configuration-plugin-config.xml
maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml
Modified: maven/plugins/trunk/maven-pmd-plugin/pom.xml
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/pom.xml?view=diff&rev=516710&r1=516709&r2=516710
==============================================================================
--- maven/plugins/trunk/maven-pmd-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-pmd-plugin/pom.xml Sat Mar 10 06:16:04 2007
@@ -18,11 +18,11 @@
under the License.
-->
-<project xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:schemaLocation='http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd'
xmlns='http://maven.apache.org/POM/4.0.0'>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<artifactId>maven-plugins</artifactId>
<groupId>org.apache.maven.plugins</groupId>
- <version>8-SNAPSHOT</version>
+ <version>8</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>maven-pmd-plugin</artifactId>
@@ -103,7 +103,31 @@
<dependency>
<groupId>pmd</groupId>
<artifactId>pmd</artifactId>
- <version>3.7</version>
+ <version>3.9</version>
+ <exclusions>
+ <!-- 3.9 specifies a beta version of jaxen which doesn't have a pom
resulting in
+ a warning whenever you use it. Likewise for xom 1.0. -->
+ <exclusion>
+ <groupId>jaxen</groupId>
+ <artifactId>jaxen</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>jaxen</groupId>
+ <artifactId>jaxen</artifactId>
+ <version>1.1</version>
+ <exclusions>
+ <exclusion>
+ <groupId>xom</groupId>
+ <artifactId>xom</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>xom</groupId>
+ <artifactId>xom</artifactId>
+ <version>1.1</version>
</dependency>
<dependency>
<groupId>org.apache.maven.reporting</groupId>
@@ -131,33 +155,7 @@
<name>John Allen</name>
</contributor>
</contributors>
- <build>
- <resources>
- <!-- Include the apache process LICENSE and NOTICE
- files.
-
- -->
- <resource>
- <targetPath>META-INF</targetPath>
- <filtering>false</filtering>
- <directory>${basedir}</directory>
- <includes>
- <include>LICENSE</include>
- <include>NOTICE</include>
- </includes>
- </resource>
- <!-- Include super-pom defined main/resources
- Removing this section will break the build.
- Since we have defined a new build/resources
- section for the Apache process LICENSE and NOTICE
- files, this original default section is now
- required.
- -->
- <resource>
- <directory>${basedir}/src/main/resources</directory>
- </resource>
- </resources>
- </build>
+
<reporting>
<plugins>
<plugin>
@@ -171,5 +169,14 @@
</plugin>
</plugins>
</reporting>
+
+ <!-- asm is not available in central yet. Temporarily point to objectweb
to get it -->
+ <repositories>
+ <repository>
+ <id>objectweb</id>
+ <name>Objectweb Maven Repository</name>
+ <url>http://maven.objectweb.org/maven2/</url>
+ </repository>
+ </repositories>
</project>
Modified:
maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/AbstractPmdReport.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/AbstractPmdReport.java?view=diff&rev=516710&r1=516709&r2=516710
==============================================================================
---
maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/AbstractPmdReport.java
(original)
+++
maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/AbstractPmdReport.java
Sat Mar 10 06:16:04 2007
@@ -21,6 +21,7 @@
import java.io.File;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
@@ -105,6 +106,42 @@
* @parameter
*/
private String[] excludes;
+
+ /**
+ * A list of files to include from checking. Can contain ant-style
wildcards and double wildcards.
+ * Defaults to **\/*.java
+ *
+ * @parameter
+ */
+ private String[] includes;
+
+
+
+
+ /**
+ * The source directories containing the sources to be compiled.
+ *
+ * @parameter expression="${project.compileSourceRoots}"
+ * @required
+ */
+ private List compileSourceRoots;
+
+ /**
+ * The source directories containing the test-source to be compiled.
+ *
+ * @parameter expression="${project.testCompileSourceRoots}"
+ * @required
+ */
+ private List testSourceRoots;
+
+
+ /**
+ * Run PMD on the tests
+ *
+ * @parameter default-value="false"
+ */
+ protected boolean includeTests;
+
/**
* @see org.apache.maven.reporting.AbstractMavenReport#getProject()
@@ -168,32 +205,57 @@
* @return a List of the files where the PMD tool will be executed
* @throws java.io.IOException
*/
- protected List getFilesToProcess( String includes )
+ protected List getFilesToProcess( )
throws IOException
{
- String excluding = getExclusionsString( excludes );
- List files = Collections.EMPTY_LIST;
-
- File dir = new File( project.getBuild().getSourceDirectory() );
- if ( dir.exists() )
+ String excluding = getIncludeExcludeString( excludes );
+ String including = getIncludeExcludeString( includes );
+ List files = new ArrayList();
+
+ if ( "".equals(including) )
{
+ including = "**/*.java";
+ }
- StringBuffer excludesStr = new StringBuffer();
- if ( StringUtils.isNotEmpty( excluding ) )
+ StringBuffer excludesStr = new StringBuffer();
+ if ( StringUtils.isNotEmpty( excluding ) )
+ {
+ excludesStr.append( excluding );
+ }
+ String[] defaultExcludes = FileUtils.getDefaultExcludes();
+ for ( int i = 0; i < defaultExcludes.length; i++ )
+ {
+ if ( excludesStr.length() > 0 )
{
- excludesStr.append( excluding );
+ excludesStr.append( "," );
}
- String[] defaultExcludes = FileUtils.getDefaultExcludes();
- for ( int i = 0; i < defaultExcludes.length; i++ )
+ excludesStr.append( defaultExcludes[i] );
+ }
+ getLog().debug( "Excluded files: '" + excludesStr + "'" );
+
+ for ( Iterator it = compileSourceRoots.iterator(); it.hasNext();)
+ {
+ String root = (String)it.next();
+ File sourceDirectory = new File(root);
+ if ( sourceDirectory.exists()
+ && sourceDirectory.isDirectory() )
{
- if ( excludesStr.length() > 0 )
+ files.addAll( FileUtils.getFiles( sourceDirectory, including,
excludesStr.toString() ) );
+ }
+ }
+
+ if ( includeTests )
+ {
+ for ( Iterator it = testSourceRoots.iterator(); it.hasNext();)
+ {
+ String root = (String)it.next();
+ File sourceDirectory = new File(root);
+ if ( sourceDirectory.exists()
+ && sourceDirectory.isDirectory() )
{
- excludesStr.append( "," );
- }
- excludesStr.append( defaultExcludes[i] );
+ files.addAll( FileUtils.getFiles( sourceDirectory,
including, excludesStr.toString() ) );
+ }
}
- getLog().debug( "Excluded files: '" + excludesStr + "'" );
- files = FileUtils.getFiles( dir, includes, excludesStr.toString()
);
}
return files;
}
@@ -204,23 +266,23 @@
* @param exclude the array of Strings that contains the files to be
excluded
* @return a String that contains the concatenates file names
*/
- private String getExclusionsString( String[] exclude )
+ private String getIncludeExcludeString( String[] arr )
{
- StringBuffer excludes = new StringBuffer();
+ StringBuffer str = new StringBuffer();
- if ( exclude != null )
+ if ( arr != null )
{
- for ( int index = 0; index < exclude.length; index++ )
+ for ( int index = 0; index < arr.length; index++ )
{
- if ( excludes.length() > 0 )
+ if ( str.length() > 0 )
{
- excludes.append( ',' );
+ str.append( ',' );
}
- excludes.append( exclude[index] );
+ str.append( arr[index] );
}
}
- return excludes.toString();
+ return str.toString();
}
Modified:
maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReport.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReport.java?view=diff&rev=516710&r1=516709&r2=516710
==============================================================================
---
maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReport.java
(original)
+++
maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReport.java
Sat Mar 10 06:16:04 2007
@@ -90,7 +90,7 @@
CPD cpd = new CPD(minimumTokens, new JavaLanguage());
try
{
- List files = getFilesToProcess( "**/*.java" );
+ List files = getFilesToProcess( );
Collections.sort( files );
for ( int i = 0; i < files.size(); i++ )
{
@@ -118,6 +118,15 @@
Writer writer = new FileWriter( new File( targetDirectory,
"cpd." + format ) );
writer.write( buffer, 0, buffer.length() );
writer.close();
+
+
+ File siteDir = new File(targetDirectory, "site");
+ siteDir.mkdirs();
+ writer = new FileWriter( new File( siteDir,
+ "cpd." + format ) );
+ writer.write( buffer, 0, buffer.length() );
+ writer.close();
+
}
catch ( IOException ioe )
{
Modified:
maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReport.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReport.java?view=diff&rev=516710&r1=516709&r2=516710
==============================================================================
---
maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReport.java
(original)
+++
maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReport.java
Sat Mar 10 06:16:04 2007
@@ -168,7 +168,7 @@
List files;
try
{
- files = getFilesToProcess( "**/*.java" );
+ files = getFilesToProcess( );
Collections.sort( files );
}
catch ( IOException e )
@@ -224,6 +224,13 @@
try
{
Writer writer = new FileWriter( new File( targetDirectory,
"pmd." + format ) );
+ writer.write( buffer, 0, buffer.length() );
+ writer.close();
+
+ File siteDir = new File(targetDirectory, "site");
+ siteDir.mkdirs();
+ writer = new FileWriter( new File( siteDir,
+ "pmd." + format ) );
writer.write( buffer, 0, buffer.length() );
writer.close();
}
Modified:
maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdViolationCheckMojo.java
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdViolationCheckMojo.java?view=diff&rev=516710&r1=516709&r2=516710
==============================================================================
---
maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdViolationCheckMojo.java
(original)
+++
maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdViolationCheckMojo.java
Sat Mar 10 06:16:04 2007
@@ -69,9 +69,17 @@
StringBuffer buff = new StringBuffer( 100 );
buff.append( "PMD " + severity + ": " );
- buff.append( item.get( "package" ) );
- buff.append( "." ).append( item.get( "class" ) );
- buff.append( ":" ).append( item.get( "line" ) );
+ if ( item.containsKey( "package" ) )
+ {
+ buff.append( item.get( "package" ) );
+ buff.append( "." );
+ }
+ if ( item.containsKey( "class" ) )
+ {
+ buff.append( item.get( "class" ) );
+ buff.append( ":" );
+ }
+ buff.append( item.get( "line" ) );
buff.append( " Rule:" ).append( item.get( "rule" ) );
buff.append( " Priority:" ).append( item.get( "priority" ) );
buff.append( " " ).append( item.get( "text" ) ).append( "." );
Modified:
maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/custom-configuration/cpd-custom-configuration-plugin-config.xml
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/custom-configuration/cpd-custom-configuration-plugin-config.xml?view=diff&rev=516710&r1=516709&r2=516710
==============================================================================
---
maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/custom-configuration/cpd-custom-configuration-plugin-config.xml
(original)
+++
maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/custom-configuration/cpd-custom-configuration-plugin-config.xml
Sat Mar 10 06:16:04 2007
@@ -43,6 +43,9 @@
<excludes>
<exclude>**/Sample.java</exclude>
</excludes>
+ <compileSourceRoots>
+
<compileSourceRoot>${basedir}/src/test/resources/unit/custom-configuration/</compileSourceRoot>
+ </compileSourceRoots>
</configuration>
</plugin>
</plugins>
Modified:
maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/custom-configuration/custom-configuration-plugin-config.xml
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/custom-configuration/custom-configuration-plugin-config.xml?view=diff&rev=516710&r1=516709&r2=516710
==============================================================================
---
maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/custom-configuration/custom-configuration-plugin-config.xml
(original)
+++
maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/custom-configuration/custom-configuration-plugin-config.xml
Sat Mar 10 06:16:04 2007
@@ -52,6 +52,9 @@
<exclude>**/Sample.java</exclude>
<exclude>**/AnotherSample.java</exclude>
</excludes>
+ <compileSourceRoots>
+
<compileSourceRoot>${basedir}/src/test/resources/unit/custom-configuration/</compileSourceRoot>
+ </compileSourceRoots>
</configuration>
<dependencies>
<dependency>
Modified:
maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/default-configuration/cpd-default-configuration-plugin-config.xml
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/default-configuration/cpd-default-configuration-plugin-config.xml?view=diff&rev=516710&r1=516709&r2=516710
==============================================================================
---
maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/default-configuration/cpd-default-configuration-plugin-config.xml
(original)
+++
maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/default-configuration/cpd-default-configuration-plugin-config.xml
Sat Mar 10 06:16:04 2007
@@ -40,6 +40,11 @@
<linkXRef>false</linkXRef>
<xrefLocation>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefLocation>
<minimumTokens>100</minimumTokens>
+
+ <compileSourceRoots>
+
<compileSourceRoot>${basedir}/src/test/resources/unit/default-configuration/</compileSourceRoot>
+ </compileSourceRoots>
+
</configuration>
</plugin>
</plugins>
Modified:
maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml
URL:
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml?view=diff&rev=516710&r1=516709&r2=516710
==============================================================================
---
maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml
(original)
+++
maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml
Sat Mar 10 06:16:04 2007
@@ -40,6 +40,10 @@
<linkXRef>true</linkXRef>
<xrefLocation>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefLocation>
<sourceEncoding>ISO-8859-1</sourceEncoding>
+
+ <compileSourceRoots>
+
<compileSourceRoot>${basedir}/src/test/resources/unit/default-configuration/</compileSourceRoot>
+ </compileSourceRoots>
</configuration>
<dependencies>
<dependency>