Author: adangel
Date: Sat Oct  1 09:30:14 2016
New Revision: 1762992

URL: http://svn.apache.org/viewvc?rev=1762992&view=rev
Log:
[MPMD-162] PMD/CPD report does not take into account pmd.excludeFromFailureFile
Use the new interface for the check mojos

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/CpdViolationCheckMojo.java
    
maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdViolationCheckMojo.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/org/apache/maven/plugin/pmd/AbstractPmdViolationCheckMojo.java?rev=1762992&r1=1762991&r2=1762992&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
 Sat Oct  1 09:30:14 2016
@@ -92,6 +92,18 @@ public abstract class AbstractPmdViolati
     @Parameter( property = "pmd.excludeFromFailureFile", defaultValue = "" )
     private String excludeFromFailureFile;
 
+    /** Helper to exclude violations from the result. */
+    private final ExcludeFromFile<D> excludeFromFile;
+
+    /**
+     * Initialize this abstact check mojo by giving the correct 
ExcludeFromFile helper.
+     * @param excludeFromFile the needed helper, for the specific violation 
type
+     */
+    protected AbstractPmdViolationCheckMojo( ExcludeFromFile<D> 
excludeFromFile )
+    {
+        this.excludeFromFile = excludeFromFile;
+    }
+
     /**
      * The project to analyze.
      */
@@ -112,7 +124,7 @@ public abstract class AbstractPmdViolati
             return;
         }
 
-        loadExcludeFromFailuresData( excludeFromFailureFile );
+        excludeFromFile.loadExcludeFromFailuresData( excludeFromFailureFile );
         final File outputFile = new File( targetDirectory, filename );
 
         if ( outputFile.exists() )
@@ -162,9 +174,6 @@ public abstract class AbstractPmdViolati
         }
     }
 
-    protected abstract void loadExcludeFromFailuresData( String 
excludeFromFailureFile )
-        throws MojoExecutionException;
-
     /**
      * Method for collecting the violations found by the PMD tool
      *
@@ -185,7 +194,7 @@ public abstract class AbstractPmdViolati
         for ( final D violation : violations )
         {
             final int priority = getPriority( violation );
-            if ( priority <= failurePriority && !isExcludedFromFailure( 
violation ) )
+            if ( priority <= failurePriority && 
!excludeFromFile.isExcludedFromFailure( violation ) )
             {
                 failures.add( violation );
                 if ( printFailingErrors )
@@ -207,8 +216,6 @@ public abstract class AbstractPmdViolati
 
     protected abstract int getPriority( D errorDetail );
 
-    protected abstract boolean isExcludedFromFailure( D errorDetail );
-
     protected abstract ViolationDetails<D> newViolationDetailsInstance();
 
     /**

Modified: 
maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdViolationCheckMojo.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdViolationCheckMojo.java?rev=1762992&r1=1762991&r2=1762992&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdViolationCheckMojo.java
 (original)
+++ 
maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdViolationCheckMojo.java
 Sat Oct  1 09:30:14 2016
@@ -47,6 +47,13 @@ import org.codehaus.plexus.util.xml.pull
 public class CpdViolationCheckMojo
     extends AbstractPmdViolationCheckMojo<Duplication>
 {
+    /**
+     * Default constructor. Initializes with the correct {@link 
ExcludeDuplicationsFromFile}.
+     */
+    public CpdViolationCheckMojo()
+    {
+        super( new ExcludeDuplicationsFromFile() );
+    }
 
     /**
      * Skip the CPD violation checks. Most useful on the command line via 
"-Dcpd.skip=true".
@@ -62,9 +69,6 @@ public class CpdViolationCheckMojo
     @Parameter( property = "cpd.failOnViolation", defaultValue = "true", 
required = true )
     protected boolean failOnViolation;
 
-    /** Helper to exclude duplications from the result. */
-    private final ExcludeDuplicationsFromFile excludeDuplicationsFromFile = 
new ExcludeDuplicationsFromFile();
-
     /**
      * {@inheritDoc}
      */
@@ -116,19 +120,6 @@ public class CpdViolationCheckMojo
     }
 
     @Override
-    protected boolean isExcludedFromFailure( final Duplication errorDetail )
-    {
-        return excludeDuplicationsFromFile.isExcludedFromFailure( errorDetail 
);
-    }
-
-    @Override
-    protected void loadExcludeFromFailuresData( final String 
excludeFromFailureFile )
-        throws MojoExecutionException
-    {
-        excludeDuplicationsFromFile.loadExcludeFromFailuresData( 
excludeFromFailureFile );
-    }
-
-    @Override
     protected int getPriority( Duplication errorDetail )
     {
         return 0;

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?rev=1762992&r1=1762991&r2=1762992&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
 Sat Oct  1 09:30:14 2016
@@ -50,6 +50,14 @@ public class PmdViolationCheckMojo
     extends AbstractPmdViolationCheckMojo<Violation>
 {
     /**
+     * Default constructor. Initializes with the correct {@link 
ExcludeViolationsFromFile}.
+     */
+    public PmdViolationCheckMojo()
+    {
+        super( new ExcludeViolationsFromFile() );
+    }
+
+    /**
      * What priority level to fail the build on. Failures at or above this 
level will stop the build. Anything below
      * will be warnings and will be displayed in the build output if 
verbose=true. Note: Minimum Priority = 5 Maximum
      * Priority = 0
@@ -63,9 +71,6 @@ public class PmdViolationCheckMojo
     @Parameter( property = "pmd.skip", defaultValue = "false" )
     private boolean skip;
 
-    /** Helper to exclude violations from the result. */
-    private final ExcludeViolationsFromFile excludeFromFile = new 
ExcludeViolationsFromFile();
-
     /**
      * {@inheritDoc}
      */
@@ -78,19 +83,6 @@ public class PmdViolationCheckMojo
         }
     }
 
-    @Override
-    protected void loadExcludeFromFailuresData( final String 
excludeFromFailureFile )
-        throws MojoExecutionException
-    {
-        excludeFromFile.loadExcludeFromFailuresData( excludeFromFailureFile );
-    }
-
-    @Override
-    protected boolean isExcludedFromFailure( final Violation errorDetail )
-    {
-        return excludeFromFile.isExcludedFromFailure( errorDetail );
-    }
-
     /**
      * {@inheritDoc}
      */


Reply via email to