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} */