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>


Reply via email to