Author: dkulp Date: Sat Mar 10 20:19:49 2007 New Revision: 516848 URL: http://svn.apache.org/viewvc?view=rev&rev=516848 Log: MPMD-28, MPMD-52, MPMD-44, MPDM-53 * Add maven.pmd.skip and maven.cpd.skip flags * Added aggregate mode (with support for xrefs) * Workaround bug in ResourceManager in reporting mode
Modified: 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/AbstractPmdViolationCheckMojo.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/CpdReportGenerator.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/PmdReport.java maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReportListener.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/PmdReportTest.java maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/default-configuration/pmd-check-failandwarnonpriority-plugin-config.xml maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/default-configuration/pmd-check-failonpriority-plugin-config.xml maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/default-configuration/pmd-check-notfailonviolation-plugin-config.xml 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=516848&r1=516847&r2=516848 ============================================================================== --- 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 20:19:49 2007 @@ -25,6 +25,8 @@ import java.util.Collections; import java.util.Iterator; import java.util.List; +import java.util.Map; +import java.util.TreeMap; import org.apache.maven.artifact.handler.ArtifactHandler; import org.apache.maven.model.ReportPlugin; @@ -99,6 +101,13 @@ * @parameter default-value="${project.reporting.outputDirectory}/xref" */ private File xrefLocation; + + /** + * Location of the Test Xrefs to link to. + * + * @parameter default-value="${project.reporting.outputDirectory}/xref-test" + */ + private File xrefTestLocation; /** * A list of files to exclude from checking. Can contain ant-style wildcards and double wildcards. @@ -154,6 +163,22 @@ */ protected boolean includeTests; + /** + * Whether to build an aggregated report at the root, or build individual reports. + * + * @parameter expression="${aggregate}" default-value="false" + * @since 2.2 + */ + protected boolean aggregate; + + + /** + * The projects in the reactor for aggregation report. + * + * @parameter expression="${reactorProjects}" + * @readonly + */ + protected List reactorProjects; /** * @see org.apache.maven.reporting.AbstractMavenReport#getProject() @@ -171,18 +196,20 @@ return siteRenderer; } - protected String constructXRefLocation() + protected String constructXRefLocation( boolean test ) { String location = null; if ( linkXRef ) { - String relativePath = PathTool.getRelativePath( outputDirectory, xrefLocation.getAbsolutePath() ); + File xrefLoc = test ? xrefTestLocation : xrefLocation; + + String relativePath = PathTool.getRelativePath( outputDirectory, xrefLoc.getAbsolutePath() ); if ( StringUtils.isEmpty( relativePath ) ) { relativePath = "."; } - relativePath = relativePath + "/" + xrefLocation.getName(); - if ( xrefLocation.exists() ) + relativePath = relativePath + "/" + xrefLoc.getName(); + if ( xrefLoc.exists() ) { // XRef was already generated by manual execution of a lifecycle binding location = relativePath; @@ -213,13 +240,20 @@ /** * Convenience method to get the list of files where the PMD tool will be executed * - * @param includes contains the concatenated list of files to be included * @return a List of the files where the PMD tool will be executed * @throws java.io.IOException */ - protected List getFilesToProcess( ) + protected Map getFilesToProcess( ) throws IOException { + String sourceXref = constructXRefLocation( false ); + String testXref = includeTests ? constructXRefLocation( true ) : ""; + + if ( aggregate && !project.isExecutionRoot() ) + { + return Collections.EMPTY_MAP; + } + if ( excludeRoots == null ) { excludeRoots = Collections.EMPTY_LIST; @@ -237,9 +271,29 @@ } } + List directories = new ArrayList(compileSourceRoots); + List testdirectories = new ArrayList(); + if ( includeTests ) + { + testdirectories.addAll(testSourceRoots); + } + if ( aggregate ) + { + for ( Iterator i = reactorProjects.iterator(); i.hasNext(); ) + { + MavenProject localProject = (MavenProject) i.next(); + directories.addAll(localProject.getCompileSourceRoots()); + if ( includeTests ) + { + testdirectories.addAll(localProject.getTestCompileSourceRoots()); + } + } + + } + String excluding = getIncludeExcludeString( excludes ); String including = getIncludeExcludeString( includes ); - List files = new ArrayList(); + Map files = new TreeMap(); if ( "".equals(including) ) { @@ -262,7 +316,7 @@ } getLog().debug( "Excluded files: '" + excludesStr + "'" ); - for ( Iterator it = compileSourceRoots.iterator(); it.hasNext();) + for ( Iterator it = directories.iterator(); it.hasNext();) { String root = (String)it.next(); File sourceDirectory = new File(root); @@ -270,25 +324,28 @@ && sourceDirectory.isDirectory() && !excludeRootFiles.contains(sourceDirectory)) { - files.addAll( FileUtils.getFiles( sourceDirectory, including, excludesStr.toString() ) ); + List newfiles = FileUtils.getFiles( sourceDirectory, including, excludesStr.toString() ); + for ( Iterator it2 = newfiles.iterator(); it2.hasNext(); ) + { + files.put( it2.next(), new Object[] { sourceDirectory , sourceXref }); + } } - } - - if ( includeTests ) + } + for ( Iterator it = testdirectories.iterator(); it.hasNext();) { - for ( Iterator it = testSourceRoots.iterator(); it.hasNext();) + String root = (String)it.next(); + File testDirectory = new File(root); + if ( testDirectory.exists() + && testDirectory.isDirectory() + && !excludeRootFiles.contains(testDirectory)) { - String root = (String)it.next(); - File sourceDirectory = new File(root); - - if ( sourceDirectory.exists() - && sourceDirectory.isDirectory() - && !excludeRootFiles.contains(sourceDirectory)) + List newfiles = FileUtils.getFiles( testDirectory, including, excludesStr.toString() ); + for ( Iterator it2 = newfiles.iterator(); it2.hasNext(); ) { - files.addAll( FileUtils.getFiles( sourceDirectory, including, excludesStr.toString() ) ); + files.put( it2.next(), new Object[] { testDirectory , testXref }); } } - } + } return files; } @@ -328,9 +385,30 @@ */ public boolean canGenerateReport() { - ArtifactHandler artifactHandler = project.getArtifact().getArtifactHandler(); - return "java".equals( artifactHandler.getLanguage() ) && - new File( project.getBuild().getSourceDirectory() ).exists(); + if ( aggregate && !project.isExecutionRoot() ) + { + return false; + } + + // if format is XML, we need to output it even if the file list is empty + // so the "check" goals can check for failures + if ( "xml".equals(format) ) + { + return true; + } + try + { + Map filesToProcess = getFilesToProcess( ); + if ( filesToProcess.isEmpty() ) + { + return false; + } + } + catch ( IOException e ) + { + getLog().error(e); + } + return true; } /** 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?view=diff&rev=516848&r1=516847&r2=516848 ============================================================================== --- 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 Mar 10 20:19:49 2007 @@ -24,6 +24,7 @@ import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -32,6 +33,7 @@ import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; +import org.apache.maven.project.MavenProject; import org.codehaus.plexus.util.xml.pull.MXParser; import org.codehaus.plexus.util.xml.pull.XmlPullParser; import org.codehaus.plexus.util.xml.pull.XmlPullParserException; @@ -74,25 +76,38 @@ private String language; /** - * The project source directory. - * - * @parameter expression="${project.build.sourceDirectory}" - * @required - * @readonly + * Whether to build an aggregated report at the root, or build individual reports. + * + * @parameter expression="${aggregate}" default-value="false" + * @since 2.2 */ - private File sourceDirectory; - + protected boolean aggregate; + /** * Print details of check failures to build output * * @parameter expression="${pmd.verbose}" default-value="false" */ private boolean verbose; + + /** + * The project to analyse. + * + * @parameter expression="${project}" + * @required + * @readonly + */ + protected MavenProject project; protected void executeCheck( String filename, String tagName, String key, int failurePriority ) throws MojoFailureException, MojoExecutionException { - if ( "java".equals( language ) && sourceDirectory.exists() ) + if ( aggregate && !project.isExecutionRoot() ) + { + return; + } + + if ( "java".equals( language ) || aggregate ) { File outputFile = new File( targetDirectory, filename ); if ( outputFile.exists() ) 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=516848&r1=516847&r2=516848 ============================================================================== --- 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 20:19:49 2007 @@ -23,8 +23,10 @@ import java.io.FileWriter; import java.io.IOException; import java.io.Writer; +import java.util.Iterator; import java.util.List; import java.util.Locale; +import java.util.Map; import java.util.ResourceBundle; import java.util.Collections; @@ -88,13 +90,13 @@ if ( !skip && canGenerateReport() ) { CPD cpd = new CPD(minimumTokens, new JavaLanguage()); + Map files = null; try { - List files = getFilesToProcess( ); - Collections.sort( files ); - for ( int i = 0; i < files.size(); i++ ) + files = getFilesToProcess( ); + for ( Iterator it = files.keySet().iterator(); it.hasNext(); ) { - cpd.add( (File) files.get( i ) ); + cpd.add( (File) it.next() ); } } catch (IOException e) @@ -103,9 +105,8 @@ } cpd.go(); - String src = getProject().getBuild().getSourceDirectory(); CpdReportGenerator gen = - new CpdReportGenerator( getSink(), src, getBundle( locale ), constructXRefLocation() ); + new CpdReportGenerator( getSink(), files, getBundle( locale ) ); gen.generate( cpd.getMatches() ); if ( !isHtml() ) Modified: maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReportGenerator.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReportGenerator.java?view=diff&rev=516848&r1=516847&r2=516848 ============================================================================== --- maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReportGenerator.java (original) +++ maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReportGenerator.java Sat Mar 10 20:19:49 2007 @@ -19,7 +19,9 @@ * under the License. */ +import java.io.File; import java.util.Iterator; +import java.util.Map; import java.util.ResourceBundle; import net.sourceforge.pmd.PMD; @@ -38,18 +40,15 @@ { private Sink sink; - private String sourceDirectory; + private Map fileMap; private ResourceBundle bundle; - private String xrefLocation; - - public CpdReportGenerator( Sink sink, String sourceDirectory, ResourceBundle bundle, String xrefLocation ) + public CpdReportGenerator( Sink sink, Map fileMap, ResourceBundle bundle ) { this.sink = sink; - this.sourceDirectory = sourceDirectory; + this.fileMap = fileMap; this.bundle = bundle; - this.xrefLocation = xrefLocation; } /** @@ -117,10 +116,20 @@ { Match match = (Match) matches.next(); String filename1 = match.getFirstMark().getTokenSrcID(); - filename1 = StringUtils.substring( filename1, sourceDirectory.length() + 1 ); + + File file = new File( filename1 ); + Object fileInfo[] = (Object[]) fileMap.get( file ); + File sourceDirectory = (File) fileInfo[0]; + String xrefLocation = (String) fileInfo[1]; + + filename1 = StringUtils.substring( filename1, sourceDirectory.getAbsolutePath().length() + 1 ); String filename2 = match.getSecondMark().getTokenSrcID(); - filename2 = StringUtils.substring( filename2, sourceDirectory.length() + 1 ); + file = new File( filename2 ); + fileInfo = (Object[]) fileMap.get( file ); + sourceDirectory = (File) fileInfo[0]; + String xrefLocation2 = (String) fileInfo[1]; + filename2 = StringUtils.substring( filename2, sourceDirectory.getAbsolutePath().length() + 1 ); String code = match.getSourceCodeSlice(); int line1 = match.getFirstMark().getBeginLine(); @@ -166,7 +175,7 @@ sink.tableCell(); if ( xrefLocation != null ) { - sink.link( xrefLocation + "/" + filename2.replaceAll( "\\.java$", ".html" ).replace( '\\', '/' ) + "#" + + sink.link( xrefLocation2 + "/" + filename2.replaceAll( "\\.java$", ".html" ).replace( '\\', '/' ) + "#" + line2 ); } sink.text( String.valueOf( line2 ) ); 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?view=diff&rev=516848&r1=516847&r2=516848 ============================================================================== --- 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 Mar 10 20:19:49 2007 @@ -20,6 +20,7 @@ */ import java.io.IOException; +import java.util.HashMap; import java.util.Map; import org.apache.maven.plugin.MojoExecutionException; @@ -37,13 +38,25 @@ public class CpdViolationCheckMojo extends AbstractPmdViolationCheckMojo { + + /** + * Skip the CPD violation checks. Most useful on the command line + * via "-Dmaven.cpd.skip=true". + * + * @parameter expression="${maven.cpd.skip}" default-value="false" + */ + private boolean skip; + /** * @see org.apache.maven.plugin.AbstractMojo#execute() */ public void execute() throws MojoExecutionException, MojoFailureException { - executeCheck( "cpd.xml", "duplication", "CPD duplication",10 ); + if ( !skip ) + { + executeCheck( "cpd.xml", "duplication", "CPD duplication", 0 ); + } } /** @@ -54,7 +67,6 @@ protected void printError( Map item, String severity ) { // TODO Auto-generated method stub - } protected Map getErrorDetails( XmlPullParser xpp ) 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=516848&r1=516847&r2=516848 ============================================================================== --- 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 20:19:49 2007 @@ -33,6 +33,7 @@ import java.util.Iterator; import java.util.List; import java.util.Locale; +import java.util.Map; import java.util.ResourceBundle; import java.util.Collections; @@ -53,6 +54,7 @@ import org.apache.maven.reporting.MavenReportException; import org.codehaus.doxia.sink.Sink; import org.codehaus.plexus.resource.ResourceManager; +import org.codehaus.plexus.resource.loader.FileResourceLoader; /** * Implement the PMD report. @@ -104,9 +106,14 @@ */ private String sourceEncoding; - /** @component */ + /** + * @component + * @required + * @readonly + */ private ResourceManager locator; - + + /** @see org.apache.maven.reporting.MavenReport#getName(java.util.Locale) */ public String getName( Locale locale ) { @@ -131,13 +138,7 @@ RuleContext ruleContext = new RuleContext(); Report report = new Report(); // TODO: use source roots instead - String sourceDirectory = project.getBuild().getSourceDirectory(); - PmdReportListener reportSink = new PmdReportListener( sink, sourceDirectory, getBundle( locale ) ); - String location = constructXRefLocation(); - if ( location != null ) - { - reportSink.setXrefLocation( location ); - } + PmdReportListener reportSink = new PmdReportListener( sink, getBundle( locale ) ); report.addListener( reportSink ); ruleContext.setReport( report ); @@ -153,7 +154,20 @@ String set = rulesets[idx]; getLog().debug( "Preparing ruleset: " + set ); File ruleset = locator.resolveLocation( set, getLocationTemp( set ) ); - InputStream rulesInput = new FileInputStream( ruleset ); + InputStream rulesInput = null; + if ( null == ruleset) + { + // workaround bug in resource manager when run in reporting mode + rulesInput = this.getClass().getClassLoader().getResourceAsStream( set ); + } + else + { + rulesInput = new FileInputStream( ruleset ); + } + if ( null == rulesInput ) + { + throw new MavenReportException( "Cold not resolve " + set ); + } sets[idx] = ruleSetFactory.createRuleSet( rulesInput ); } @@ -165,24 +179,28 @@ boolean hasEncoding = sourceEncoding != null; - List files; + Map files; try { files = getFilesToProcess( ); - Collections.sort( files ); } catch ( IOException e ) { - throw new MavenReportException( "Can't parse " + sourceDirectory, e ); + throw new MavenReportException( "Can't get file list", e ); } - for ( Iterator i = files.iterator(); i.hasNext(); ) + for ( Iterator i = files.entrySet().iterator(); i.hasNext(); ) { - File file = (File) i.next(); + Map.Entry entry = (Map.Entry) i.next(); + File file = (File) entry.getKey(); + Object fileInfo[] = (Object[]) entry.getValue(); + File sourceDir = (File) fileInfo[0]; + String xrefLoc = (String) fileInfo[1]; // TODO: lazily call beginFile in case there are no rules - reportSink.beginFile( file ); + reportSink.beginFile( file , sourceDir ); + reportSink.setXrefLocation( xrefLoc ); ruleContext.setSourceCodeFilename( file.getAbsolutePath() ); for ( int idx = 0; idx < rulesets.length; idx++ ) { Modified: maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReportListener.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReportListener.java?view=diff&rev=516848&r1=516847&r2=516848 ============================================================================== --- maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReportListener.java (original) +++ maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReportListener.java Sat Mar 10 20:19:49 2007 @@ -46,8 +46,6 @@ { private Sink sink; - private String sourceDirectory; - private String currentFilename; private boolean fileInitialized; @@ -63,10 +61,9 @@ //private List metrics = new ArrayList(); - public PmdReportListener( Sink sink, String sourceDirectory, ResourceBundle bundle ) + public PmdReportListener( Sink sink, ResourceBundle bundle ) { this.sink = sink; - this.sourceDirectory = sourceDirectory; this.bundle = bundle; } @@ -194,9 +191,9 @@ // TODO files summary } - public void beginFile( File file ) + public void beginFile( File file, File sourceDir ) { - currentFilename = StringUtils.substring( file.getAbsolutePath(), sourceDirectory.length() + 1 ); + currentFilename = StringUtils.substring( file.getAbsolutePath(), sourceDir.getAbsolutePath().length() + 1 ); currentFilename = StringUtils.replace( currentFilename, "\\", "/" ); fileInitialized = false; } 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=516848&r1=516847&r2=516848 ============================================================================== --- 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 20:19:49 2007 @@ -50,12 +50,23 @@ private int failurePriority; /** + * Skip the PMD checks. Most useful on the command line + * via "-Dmaven.pmd.skip=true". + * + * @parameter expression="${maven.pmd.skip}" default-value="false" + */ + private boolean skip; + + /** * @see org.apache.maven.plugin.AbstractMojo#execute() */ public void execute() throws MojoExecutionException, MojoFailureException { - executeCheck( "pmd.xml", "violation", "PMD violation", failurePriority ); + if ( !skip ) + { + executeCheck( "pmd.xml", "violation", "PMD violation", failurePriority ); + } } /** Modified: maven/plugins/trunk/maven-pmd-plugin/src/test/java/org/apache/maven/plugin/pmd/PmdReportTest.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/test/java/org/apache/maven/plugin/pmd/PmdReportTest.java?view=diff&rev=516848&r1=516847&r2=516848 ============================================================================== --- maven/plugins/trunk/maven-pmd-plugin/src/test/java/org/apache/maven/plugin/pmd/PmdReportTest.java (original) +++ maven/plugins/trunk/maven-pmd-plugin/src/test/java/org/apache/maven/plugin/pmd/PmdReportTest.java Sat Mar 10 20:19:49 2007 @@ -72,6 +72,7 @@ String str = readFile( new File( getBasedir(), "target/test/unit/default-configuration/target/site/pmd.html" ) ); + assertTrue( str.indexOf( "/xref/def/configuration/App.html#31" ) != -1 ); assertTrue( str.indexOf( "/xref/def/configuration/AppSample.html#45" ) != -1 ); Modified: maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/default-configuration/pmd-check-failandwarnonpriority-plugin-config.xml URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/default-configuration/pmd-check-failandwarnonpriority-plugin-config.xml?view=diff&rev=516848&r1=516847&r2=516848 ============================================================================== --- maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/default-configuration/pmd-check-failandwarnonpriority-plugin-config.xml (original) +++ maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/default-configuration/pmd-check-failandwarnonpriority-plugin-config.xml Sat Mar 10 20:19:49 2007 @@ -33,7 +33,6 @@ <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-pmd-plugin</artifactId> <configuration> - <sourceDirectory>${basedir}/src/test/resources/unit/default-configuration</sourceDirectory> <targetDirectory>${basedir}/target/test/unit/default-configuration/target</targetDirectory> <failOnViolation>true</failOnViolation> <failurePriority>3</failurePriority> Modified: maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/default-configuration/pmd-check-failonpriority-plugin-config.xml URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/default-configuration/pmd-check-failonpriority-plugin-config.xml?view=diff&rev=516848&r1=516847&r2=516848 ============================================================================== --- maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/default-configuration/pmd-check-failonpriority-plugin-config.xml (original) +++ maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/default-configuration/pmd-check-failonpriority-plugin-config.xml Sat Mar 10 20:19:49 2007 @@ -34,7 +34,6 @@ <artifactId>maven-pmd-plugin</artifactId> <configuration> <!-- project implementation="org.apache.maven.plugin.pmd.stubs.DefaultConfigurationMavenProjectStub"/--> - <sourceDirectory>${basedir}/src/test/resources/unit/default-configuration</sourceDirectory> <targetDirectory>${basedir}/target/test/unit/default-configuration/target</targetDirectory> <failOnViolation>true</failOnViolation> <failurePriority>1</failurePriority> Modified: maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/default-configuration/pmd-check-notfailonviolation-plugin-config.xml URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/default-configuration/pmd-check-notfailonviolation-plugin-config.xml?view=diff&rev=516848&r1=516847&r2=516848 ============================================================================== --- maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/default-configuration/pmd-check-notfailonviolation-plugin-config.xml (original) +++ maven/plugins/trunk/maven-pmd-plugin/src/test/resources/unit/default-configuration/pmd-check-notfailonviolation-plugin-config.xml Sat Mar 10 20:19:49 2007 @@ -34,7 +34,6 @@ <artifactId>maven-pmd-plugin</artifactId> <configuration> <!-- project implementation="org.apache.maven.plugin.pmd.stubs.DefaultConfigurationMavenProjectStub"/--> - <sourceDirectory>${basedir}/src/test/resources/unit/default-configuration</sourceDirectory> <targetDirectory>${basedir}/target/test/unit/default-configuration/target</targetDirectory> <failOnViolation>false</failOnViolation> <verbose>false</verbose>