[prev in list] [next in list] [prev in thread] [next in thread] 

List:       maven-dev
Subject:    svn commit: r939751 - in /maven/plugins/trunk/maven-pmd-plugin/src:
From:       hboutemy () apache ! org
Date:       2010-04-30 17:36:29
Message-ID: 20100430173629.D934C23888E8 () eris ! apache ! org
[Download RAW message or body]

Author: hboutemy
Date: Fri Apr 30 17:36:29 2010
New Revision: 939751

URL: http://svn.apache.org/viewvc?rev=939751&view=rev
Log:
[MPMD-91] report filename when no class name available in pmd:check output

Modified:
    maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/AbstractPmdViolationCheckMojo.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/java/org/apache/maven/plugin/pmd/PmdViolationCheckMojoTest.java


Modified: maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/AbstractPmdViolationCheckMojo.java
                
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/main/java/o \
rg/apache/maven/plugin/pmd/AbstractPmdViolationCheckMojo.java?rev=939751&r1=939750&r2=939751&view=diff
 ==============================================================================
--- maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/AbstractPmdViolationCheckMojo.java \
                (original)
+++ maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/AbstractPmdViolationCheckMojo.java \
Fri Apr 30 17:36:29 2010 @@ -33,6 +33,7 @@ import org.apache.maven.plugin.AbstractM
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.xml.pull.MXParser;
 import org.codehaus.plexus.util.xml.pull.XmlPullParser;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
@@ -180,11 +181,23 @@ public abstract class AbstractPmdViolati
         List failures = new ArrayList();
         List warnings = new ArrayList();
 
+        String fullpath = null;
+
         while ( eventType != XmlPullParser.END_DOCUMENT )
         {
+            if ( eventType == XmlPullParser.START_TAG && "file".equals( \
xpp.getName() ) ) +            {
+                fullpath = xpp.getAttributeValue( "", "name" );
+            }
             if ( eventType == XmlPullParser.START_TAG && tagName.equals( \
xpp.getName() ) )  {
                 Map details = getErrorDetails( xpp );
+
+                if ( fullpath != null )
+                {
+                    details.put( "filename", getFilename( fullpath, (String) \
details.get( "package" ) ) ); +                }
+
                 try
                 {
                     int priority = Integer.parseInt( (String) details.get( \
"priority" ) ); @@ -199,13 +212,13 @@ public abstract class AbstractPmdViolati
                 }
                 catch ( NumberFormatException e )
                 {
-                    // i don't know what priority this is. Treat it like a
+                    // I don't know what priority this is. Treat it like a
                     // failure
                     failures.add( details );
                 }
                 catch ( NullPointerException e )
                 {
-                    // i don't know what priority this is. Treat it like a
+                    // I don't know what priority this is. Treat it like a
                     // failure
                     failures.add( details );
                 }
@@ -221,6 +234,26 @@ public abstract class AbstractPmdViolati
         return map;
     }
 
+    private String getFilename( String fullpath, String pkg )
+    {
+        int index = fullpath.lastIndexOf( File.separatorChar );
+
+        while ( StringUtils.isNotEmpty( pkg ) )
+        {
+            index = fullpath.substring( 0, index ).lastIndexOf( File.separatorChar \
); +
+            int dot = pkg.indexOf( '.' );
+
+            if ( dot < 0 )
+            {
+                break;
+            }
+            pkg = pkg.substring( dot + 1 );
+        }
+
+        return fullpath.substring( index + 1 );
+    }
+
     /**
      * Prints the warnings and failures
      *

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/o \
rg/apache/maven/plugin/pmd/PmdViolationCheckMojo.java?rev=939751&r1=939750&r2=939751&view=diff
 ==============================================================================
--- 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 \
Fri Apr 30 17:36:29 2010 @@ -75,16 +75,20 @@ public class PmdViolationCheckMojo
 
         StringBuffer buff = new StringBuffer( 100 );
         buff.append( "PMD " + severity + ": " );
-        if ( item.containsKey( "package" ) )
-        {
-            buff.append( item.get( "package" ) );
-            buff.append( "." );
-        }
         if ( item.containsKey( "class" ) )
         {
+            if ( item.containsKey( "package" ) )
+            {
+                buff.append( item.get( "package" ) );
+                buff.append( "." );
+            }
             buff.append( item.get( "class" ) );
-            buff.append( ":" );
         }
+        else
+        {
+            buff.append( item.get( "filename" ) );
+        }
+        buff.append( ":" );
         buff.append( item.get( "beginline" ) );
         buff.append( " Rule:" ).append( item.get( "rule" ) );
         buff.append( " Priority:" ).append( item.get( "priority" ) );

Modified: maven/plugins/trunk/maven-pmd-plugin/src/test/java/org/apache/maven/plugin/pmd/PmdViolationCheckMojoTest.java
                
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/test/java/o \
rg/apache/maven/plugin/pmd/PmdViolationCheckMojoTest.java?rev=939751&r1=939750&r2=939751&view=diff
 ==============================================================================
--- maven/plugins/trunk/maven-pmd-plugin/src/test/java/org/apache/maven/plugin/pmd/PmdViolationCheckMojoTest.java \
                (original)
+++ maven/plugins/trunk/maven-pmd-plugin/src/test/java/org/apache/maven/plugin/pmd/PmdViolationCheckMojoTest.java \
Fri Apr 30 17:36:29 2010 @@ -90,7 +90,7 @@ public class PmdViolationCheckMojoTest
         }
         catch ( MojoFailureException e )
         {
-            System.out.println("Caught Expected Message: "+e.getMessage());// \
expected +            System.out.println( "Caught Expected Message: " + \
e.getMessage() );// expected  }
 
     }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic