You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by vs...@apache.org on 2009/08/13 13:57:25 UTC
svn commit: r803850 - in /maven/plugins/trunk/maven-pmd-plugin: ./
src/main/java/org/apache/maven/plugin/pmd/
src/test/java/org/apache/maven/plugin/pmd/
Author: vsiveton
Date: Thu Aug 13 11:57:24 2009
New Revision: 803850
URL: http://svn.apache.org/viewvc?rev=803850&view=rev
Log:
MPMD-102: Bump to Doxia 1.0
o using doxia 1.0
o upgrade code
Added:
maven/plugins/trunk/maven-pmd-plugin/src/test/java/org/apache/maven/plugin/pmd/AbstractPmdReportTest.java (with props)
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/CpdReportGenerator.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/test/java/org/apache/maven/plugin/pmd/CpdReportTest.java
maven/plugins/trunk/maven-pmd-plugin/src/test/java/org/apache/maven/plugin/pmd/PmdReportTest.java
Modified: maven/plugins/trunk/maven-pmd-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/pom.xml?rev=803850&r1=803849&r2=803850&view=diff
==============================================================================
--- maven/plugins/trunk/maven-pmd-plugin/pom.xml (original)
+++ maven/plugins/trunk/maven-pmd-plugin/pom.xml Thu Aug 13 11:57:24 2009
@@ -61,7 +61,8 @@
</issueManagement>
<properties>
- <mavenVersion>2.0</mavenVersion>
+ <mavenVersion>2.0.6</mavenVersion>
+ <doxiaVersion>1.0</doxiaVersion>
</properties>
<dependencies>
@@ -89,7 +90,24 @@
<dependency>
<groupId>org.apache.maven.reporting</groupId>
<artifactId>maven-reporting-impl</artifactId>
- <version>${mavenVersion}</version>
+ <version>2.0.4.2</version>
+ </dependency>
+
+ <!-- doxia -->
+ <dependency>
+ <groupId>org.apache.maven.doxia</groupId>
+ <artifactId>doxia-sink-api</artifactId>
+ <version>${doxiaVersion}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.doxia</groupId>
+ <artifactId>doxia-decoration-model</artifactId>
+ <version>${doxiaVersion}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.doxia</groupId>
+ <artifactId>doxia-site-renderer</artifactId>
+ <version>${doxiaVersion}</version>
</dependency>
<!-- plexus -->
@@ -111,6 +129,13 @@
<version>4.2.4</version>
</dependency>
+ <!-- misc -->
+ <dependency>
+ <groupId>xerces</groupId>
+ <artifactId>xmlParserAPIs</artifactId>
+ <version>2.6.2</version>
+ </dependency>
+
<!-- test -->
<dependency>
<groupId>org.apache.maven.shared</groupId>
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?rev=803850&r1=803849&r2=803850&view=diff
==============================================================================
--- 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 Thu Aug 13 11:57:24 2009
@@ -32,10 +32,10 @@
import java.util.Map;
import java.util.TreeMap;
+import org.apache.maven.doxia.siterenderer.Renderer;
import org.apache.maven.model.ReportPlugin;
import org.apache.maven.project.MavenProject;
import org.apache.maven.reporting.AbstractMavenReport;
-import org.codehaus.doxia.site.renderer.SiteRenderer;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.PathTool;
import org.codehaus.plexus.util.StringUtils;
@@ -60,7 +60,7 @@
* The output directory for the final HTML report. Note that this parameter is only evaluated if the goal is run
* directly from the command line or during the default lifecycle. If the goal is run indirectly as part of a site
* generation, the output directory configured in the Maven Site Plugin is used instead.
- *
+ *
* @parameter expression="${project.reporting.outputDirectory}"
* @required
*/
@@ -71,7 +71,7 @@
*
* @component
*/
- private SiteRenderer siteRenderer;
+ private Renderer siteRenderer;
/**
* The project to analyse.
@@ -106,7 +106,7 @@
* @parameter default-value="${project.reporting.outputDirectory}/xref"
*/
private File xrefLocation;
-
+
/**
* Location of the Test Xrefs to link to.
*
@@ -119,21 +119,21 @@
* exclusion patterns only operate on the path of a source file relative to its source root directory. In other
* words, files are excluded based on their package and/or class name. If you want to exclude entire source root
* directories, use the parameter <code>excludeRoots</code> instead.
- *
+ *
* @parameter
* @since 2.2
*/
private String[] excludes;
/**
- * A list of files to include from checking. Can contain Ant-style wildcards and double wildcards.
+ * A list of files to include from checking. Can contain Ant-style wildcards and double wildcards.
* Defaults to **\/*.java.
*
* @parameter
* @since 2.2
*/
private String[] includes;
-
+
/**
* The directories containing the sources to be compiled.
*
@@ -142,7 +142,7 @@
* @readonly
*/
private List compileSourceRoots;
-
+
/**
* The directories containing the test-sources to be compiled.
*
@@ -151,7 +151,7 @@
* @readonly
*/
private List testSourceRoots;
-
+
/**
* The project source directories that should be excluded.
*
@@ -159,7 +159,7 @@
* @since 2.2
*/
private File[] excludeRoots;
-
+
/**
* Run PMD on the tests.
*
@@ -167,7 +167,7 @@
* @since 2.2
*/
protected boolean includeTests;
-
+
/**
* Whether to build an aggregated report at the root, or build individual reports.
*
@@ -175,8 +175,8 @@
* @since 2.2
*/
protected boolean aggregate;
-
-
+
+
/**
* The projects in the reactor for aggregation report.
*
@@ -196,7 +196,7 @@
/**
* @see org.apache.maven.reporting.AbstractMavenReport#getSiteRenderer()
*/
- protected SiteRenderer getSiteRenderer()
+ protected Renderer getSiteRenderer()
{
return siteRenderer;
}
@@ -207,7 +207,7 @@
if ( linkXRef )
{
File xrefLoc = test ? xrefTestLocation : xrefLocation;
-
+
String relativePath = PathTool.getRelativePath( outputDirectory.getAbsolutePath(), xrefLoc.getAbsolutePath() );
if ( StringUtils.isEmpty( relativePath ) )
{
@@ -253,7 +253,7 @@
{
String sourceXref = constructXRefLocation( false );
String testXref = includeTests ? constructXRefLocation( true ) : "";
-
+
if ( aggregate && !project.isExecutionRoot() )
{
return Collections.EMPTY_MAP;
@@ -264,8 +264,8 @@
excludeRoots = new File[0];
}
Collection excludeRootFiles = new HashSet( excludeRoots.length );
-
- for ( int i = 0; i < excludeRoots.length; i++ )
+
+ for ( int i = 0; i < excludeRoots.length; i++ )
{
File file = excludeRoots[i];
if ( file.isDirectory() )
@@ -273,16 +273,16 @@
excludeRootFiles.add( file );
}
}
-
+
List directories = new ArrayList();
-
+
for ( Iterator i = compileSourceRoots.iterator(); i.hasNext(); )
{
String root = (String) i.next();
File sroot = new File( root );
directories.add( new PmdFileInfo( project, sroot, sourceXref ) );
}
-
+
if ( includeTests )
{
for ( Iterator i = testSourceRoots.iterator(); i.hasNext(); )
@@ -313,9 +313,9 @@
}
}
}
-
+
}
-
+
String excluding = getExcludes();
getLog().debug( "Exclusions: " + excluding );
String including = getIncludes();
@@ -335,14 +335,14 @@
files.put( it2.next(), finfo );
}
}
- }
-
+ }
+
return files;
}
/**
* Gets the comma separated list of effective include patterns.
- *
+ *
* @return The comma separated list of effective include patterns, never <code>null</code>.
*/
private String getIncludes()
@@ -361,7 +361,7 @@
/**
* Gets the comma separated list of effective exclude patterns.
- *
+ *
* @return The comma separated list of effective exclude patterns, never <code>null</code>.
*/
private String getExcludes()
@@ -400,7 +400,7 @@
{
return true;
}
- try
+ try
{
Map filesToProcess = getFilesToProcess( );
if ( filesToProcess.isEmpty() )
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?rev=803850&r1=803849&r2=803850&view=diff
==============================================================================
--- 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 Thu Aug 13 11:57:24 2009
@@ -27,8 +27,8 @@
import net.sourceforge.pmd.PMD;
import net.sourceforge.pmd.cpd.Match;
+import org.apache.maven.doxia.sink.Sink;
import org.apache.maven.project.MavenProject;
-import org.codehaus.doxia.sink.Sink;
import org.codehaus.plexus.util.StringUtils;
/**
@@ -44,7 +44,7 @@
private Map fileMap;
private ResourceBundle bundle;
-
+
private boolean aggregate;
public CpdReportGenerator( Sink sink, Map fileMap, ResourceBundle bundle, boolean aggregate )
@@ -113,20 +113,22 @@
if ( !matches.hasNext() )
{
+ sink.paragraph();
sink.text( bundle.getString( "report.cpd.noProblems" ) );
+ sink.paragraph_();
}
while ( matches.hasNext() )
{
Match match = (Match) matches.next();
String filename1 = match.getFirstMark().getTokenSrcID();
-
+
File file = new File( filename1 );
PmdFileInfo fileInfo = (PmdFileInfo) fileMap.get( file );
File sourceDirectory = fileInfo.getSourceDirectory();
String xrefLocation = fileInfo.getXrefLocation();
MavenProject projectFile1 = fileInfo.getProject();
-
+
filename1 = StringUtils.substring( filename1, sourceDirectory.getAbsolutePath().length() + 1 );
String filename2 = match.getSecondMark().getTokenSrcID();
@@ -141,7 +143,6 @@
int line1 = match.getFirstMark().getBeginLine();
int line2 = match.getSecondMark().getBeginLine();
- sink.paragraph();
sink.table();
sink.tableRow();
sink.tableHeaderCell();
@@ -173,7 +174,7 @@
if ( xrefLocation != null )
{
- sink.link( xrefLocation + "/" + filename1.replaceAll( "\\.java$", ".html" ).replace( '\\', '/' )
+ sink.link( xrefLocation + "/" + filename1.replaceAll( "\\.java$", ".html" ).replace( '\\', '/' )
+ "#" + line1 );
}
sink.text( String.valueOf( line1 ) );
@@ -197,12 +198,12 @@
sink.tableCell_();
}
sink.tableCell();
-
-
-
+
+
+
if ( xrefLocation != null )
{
- sink.link( xrefLocation2 + "/" + filename2.replaceAll( "\\.java$", ".html" ).replace( '\\', '/' )
+ sink.link( xrefLocation2 + "/" + filename2.replaceAll( "\\.java$", ".html" ).replace( '\\', '/' )
+ "#" + line2 );
}
sink.text( String.valueOf( line2 ) );
@@ -216,12 +217,12 @@
// Source snippet
sink.tableRow();
-
+
int colspan = 2;
- if ( aggregate )
+ if ( aggregate )
{
++colspan;
- }
+ }
// TODO Cleaner way to do this?
sink.rawText( "<td colspan='" + colspan + "'>" );
sink.verbatim( false );
@@ -229,8 +230,7 @@
sink.verbatim_();
sink.rawText( "</td>" );
sink.tableRow_();
- sink.table();
- sink.paragraph_();
+ sink.table_();
}
sink.section1_();
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?rev=803850&r1=803849&r2=803850&view=diff
==============================================================================
--- 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 Thu Aug 13 11:57:24 2009
@@ -49,8 +49,8 @@
import net.sourceforge.pmd.renderers.TextRenderer;
import net.sourceforge.pmd.renderers.XMLRenderer;
+import org.apache.maven.doxia.sink.Sink;
import org.apache.maven.reporting.MavenReportException;
-import org.codehaus.doxia.sink.Sink;
import org.codehaus.plexus.resource.ResourceManager;
import org.codehaus.plexus.resource.loader.FileResourceCreationException;
import org.codehaus.plexus.resource.loader.FileResourceLoader;
@@ -75,7 +75,7 @@
* <p>
* <b>Note:</b> support for <code>1.6</code> was added in version 2.3 of this plugin.
* </p>
- *
+ *
* @parameter expression="${targetJdk}"
*/
private String targetJdk;
@@ -109,7 +109,7 @@
/**
* The file encoding to use when reading the Java sources.
- *
+ *
* @parameter expression="${encoding}" default-value="${project.build.sourceEncoding}"
*/
private String sourceEncoding;
@@ -120,8 +120,8 @@
* @readonly
*/
private ResourceManager locator;
-
-
+
+
/** @see org.apache.maven.reporting.MavenReport#getName(java.util.Locale) */
public String getName( Locale locale )
{
@@ -138,7 +138,7 @@
{
rulesets = rules;
}
-
+
/** @see org.apache.maven.reporting.AbstractMavenReport#executeReport(java.util.Locale) */
public void executeReport( Locale locale )
throws MavenReportException
@@ -170,18 +170,18 @@
try
{
Thread.currentThread().setContextClassLoader( this.getClass().getClassLoader() );
-
+
Sink sink = getSink();
-
+
PMD pmd = getPMD();
RuleContext ruleContext = new RuleContext();
Report report = new Report();
PmdReportListener reportSink = new PmdReportListener( sink, getBundle( locale ), aggregate );
-
+
report.addListener( reportSink );
ruleContext.setReport( report );
reportSink.beginDocument();
-
+
RuleSetFactory ruleSetFactory = new RuleSetFactory();
ruleSetFactory.setMinimumPriority( this.minimumPriority );
RuleSet[] sets = new RuleSet[rulesets.length];
@@ -192,12 +192,12 @@
String set = rulesets[idx];
getLog().debug( "Preparing ruleset: " + set );
File ruleset = locator.getResourceAsFile( set, getLocationTemp( set ) );
-
+
if ( null == ruleset )
{
throw new MavenReportException( "Could not resolve " + set );
}
-
+
InputStream rulesInput = new FileInputStream( ruleset );
try
{
@@ -221,7 +221,7 @@
{
throw new MavenReportException( e.getMessage(), e );
}
-
+
Map files;
try
{
@@ -304,15 +304,15 @@
}
reportSink.endFile( file );
}
-
+
reportSink.endDocument();
-
+
if ( !isHtml() )
{
// Use the PMD renderers to render in any format aside from HTML.
Renderer r = createRenderer();
StringWriter stringwriter = new StringWriter();
-
+
try
{
r.setWriter( stringwriter );
@@ -320,11 +320,11 @@
r.renderFileReport( report );
r.end();
String buffer = stringwriter.toString();
-
+
Writer writer = new FileWriter( new File( targetDirectory, "pmd." + format ) );
writer.write( buffer, 0, buffer.length() );
writer.close();
-
+
File siteDir = getReportOutputDirectory();
siteDir.mkdirs();
writer = new FileWriter( new File( siteDir,
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?rev=803850&r1=803849&r2=803850&view=diff
==============================================================================
--- 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 Thu Aug 13 11:57:24 2009
@@ -32,7 +32,7 @@
import net.sourceforge.pmd.ReportListener;
import net.sourceforge.pmd.stat.Metric;
-import org.codehaus.doxia.sink.Sink;
+import org.apache.maven.doxia.sink.Sink;
import org.codehaus.plexus.util.StringUtils;
/**
@@ -57,7 +57,7 @@
private List violations = new ArrayList();
private boolean aggregate;
-
+
// The number of erroneous files
private int fileCount = 0;
@@ -82,7 +82,7 @@
sink.section2();
sink.sectionTitle2();
String title = currentFilename;
- if ( aggregate )
+ if ( aggregate )
{
title = fileInfo.getProject().getName() + " - " + currentFilename;
}
@@ -113,7 +113,7 @@
{
public int compare( Object o1, Object o2 )
{
- return ( (IRuleViolation) o1 ).getBeginLine()
+ return ( (IRuleViolation) o1 ).getBeginLine()
- ( (IRuleViolation) o2 ).getBeginLine();
}
} );
Added: maven/plugins/trunk/maven-pmd-plugin/src/test/java/org/apache/maven/plugin/pmd/AbstractPmdReportTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/test/java/org/apache/maven/plugin/pmd/AbstractPmdReportTest.java?rev=803850&view=auto
==============================================================================
--- maven/plugins/trunk/maven-pmd-plugin/src/test/java/org/apache/maven/plugin/pmd/AbstractPmdReportTest.java (added)
+++ maven/plugins/trunk/maven-pmd-plugin/src/test/java/org/apache/maven/plugin/pmd/AbstractPmdReportTest.java Thu Aug 13 11:57:24 2009
@@ -0,0 +1,73 @@
+package org.apache.maven.plugin.pmd;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.File;
+import java.io.IOException;
+import java.io.Writer;
+import java.util.Locale;
+
+import org.apache.maven.doxia.site.decoration.DecorationModel;
+import org.apache.maven.doxia.siterenderer.RendererException;
+import org.apache.maven.doxia.siterenderer.SiteRenderingContext;
+import org.apache.maven.doxia.siterenderer.sink.SiteRendererSink;
+import org.apache.maven.plugin.testing.AbstractMojoTestCase;
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.WriterFactory;
+
+/**
+ * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
+ * @version $Id$
+ * @since 2.5
+ */
+public abstract class AbstractPmdReportTest
+ extends AbstractMojoTestCase
+{
+ /**
+ * Renderer the sink from the report mojo.
+ *
+ * @param mojo not null
+ * @param outputHtml not null
+ * @throws RendererException if any
+ * @throws IOException if any
+ */
+ protected void renderer( AbstractPmdReport mojo, File outputHtml )
+ throws RendererException, IOException
+ {
+ Writer writer = null;
+ SiteRenderingContext context = new SiteRenderingContext();
+ context.setDecoration( new DecorationModel() );
+ context.setTemplateName( "org/apache/maven/doxia/siterenderer/resources/default-site.vm" );
+ context.setLocale( Locale.ENGLISH );
+
+ try
+ {
+ outputHtml.getParentFile().mkdirs();
+ writer = WriterFactory.newXmlWriter( outputHtml );
+
+ mojo.getSiteRenderer().generateDocument( writer, (SiteRendererSink) mojo.getSink(),
+ context );
+ }
+ finally
+ {
+ IOUtil.close( writer );
+ }
+ }
+}
Propchange: maven/plugins/trunk/maven-pmd-plugin/src/test/java/org/apache/maven/plugin/pmd/AbstractPmdReportTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-pmd-plugin/src/test/java/org/apache/maven/plugin/pmd/AbstractPmdReportTest.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: maven/plugins/trunk/maven-pmd-plugin/src/test/java/org/apache/maven/plugin/pmd/CpdReportTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/test/java/org/apache/maven/plugin/pmd/CpdReportTest.java?rev=803850&r1=803849&r2=803850&view=diff
==============================================================================
--- maven/plugins/trunk/maven-pmd-plugin/src/test/java/org/apache/maven/plugin/pmd/CpdReportTest.java (original)
+++ maven/plugins/trunk/maven-pmd-plugin/src/test/java/org/apache/maven/plugin/pmd/CpdReportTest.java Thu Aug 13 11:57:24 2009
@@ -36,17 +36,18 @@
import net.sourceforge.pmd.cpd.Match;
import net.sourceforge.pmd.cpd.TokenEntry;
-import org.apache.maven.plugin.testing.AbstractMojoTestCase;
import org.codehaus.plexus.util.FileUtils;
import org.w3c.dom.Document;
/**
* @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
*/
-public class CpdReportTest extends AbstractMojoTestCase
+public class CpdReportTest
+ extends AbstractPmdReportTest
{
- protected void setUp() throws Exception
+ protected void setUp()
+ throws Exception
{
super.setUp();
FileUtils.deleteDirectory( new File( getBasedir(), "target/test/unit" ) );
@@ -54,10 +55,11 @@
/**
* Test CPDReport given the default configuration
- *
+ *
* @throws Exception
*/
- public void testDefaultConfiguration() throws Exception
+ public void testDefaultConfiguration()
+ throws Exception
{
File testPom =
new File( getBasedir(),
@@ -70,10 +72,12 @@
assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/site/cpd.html" );
+ renderer( mojo, generatedFile );
assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
// check the contents of cpd.html
- String str = readFile( new File( getBasedir(), "target/test/unit/default-configuration/target/site/cpd.html" ) );
+ String str =
+ readFile( new File( getBasedir(), "target/test/unit/default-configuration/target/site/cpd.html" ) );
assertTrue( str.toLowerCase().indexOf( "AppSample.java".toLowerCase() ) != -1 );
str = readFile( new File( getBasedir(), "target/test/unit/default-configuration/target/site/cpd.html" ) );
@@ -89,10 +93,11 @@
/**
* Test CPDReport using custom configuration
- *
+ *
* @throws Exception
*/
- public void testCustomConfiguration() throws Exception
+ public void testCustomConfiguration()
+ throws Exception
{
File testPom =
new File( getBasedir(),
@@ -105,10 +110,12 @@
assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
generatedFile = new File( getBasedir(), "target/test/unit/custom-configuration/target/site/cpd.html" );
+ renderer( mojo, generatedFile );
assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
// Contents that should NOT be in the report
- String str = readFile( new File( getBasedir(), "target/test/unit/custom-configuration/target/site/cpd.html" ) );
+ String str =
+ readFile( new File( getBasedir(), "target/test/unit/custom-configuration/target/site/cpd.html" ) );
assertTrue( str.toLowerCase().indexOf( "/Sample.java".toLowerCase() ) == -1 );
str = readFile( new File( getBasedir(), "target/test/unit/custom-configuration/target/site/cpd.html" ) );
@@ -128,15 +135,17 @@
/**
* Test CPDReport with invalid format
- *
+ *
* @throws Exception
*/
- public void testInvalidFormat() throws Exception
+ public void testInvalidFormat()
+ throws Exception
{
try
{
File testPom =
- new File( getBasedir(), "src/test/resources/unit/invalid-format/cpd-invalid-format-plugin-config.xml" );
+ new File( getBasedir(),
+ "src/test/resources/unit/invalid-format/cpd-invalid-format-plugin-config.xml" );
CpdReport mojo = (CpdReport) lookupMojo( "cpd", testPom );
mojo.execute();
@@ -149,20 +158,22 @@
}
- protected void tearDown() throws Exception
+ protected void tearDown()
+ throws Exception
{
}
/**
* Read the contents of the specified file object into a string
- *
+ *
* @param file
* the file to be read
* @return a String object that contains the contents of the file
* @throws java.io.IOException
*/
- private String readFile( File file ) throws IOException
+ private String readFile( File file )
+ throws IOException
{
String str = "", strTmp = "";
BufferedReader in = new BufferedReader( new FileReader( file ) );
@@ -176,7 +187,8 @@
return str;
}
- public void testWriteNonHtml() throws Exception
+ public void testWriteNonHtml()
+ throws Exception
{
File testPom =
new File( getBasedir(),
@@ -188,7 +200,7 @@
TokenEntry tSecondEntry = new TokenEntry( "public java", "MyClass3.java", 55 );
List tList = new ArrayList();
Match tMatch = new Match( 2, tFirstEntry, tSecondEntry );
- tMatch.setSourceCodeSlice( "// ----- ACCESSEURS avec éléments -----");
+ tMatch.setSourceCodeSlice( "// ----- ACCESSEURS avec �l�ments -----" );
tList.add( tMatch );
CPD tCpd = new MockCpd( 100, new JavaLanguage(), tList.iterator() );
@@ -204,7 +216,8 @@
assertNotNull( pmdCpdDocument );
}
- public static class MockCpd extends CPD
+ public static class MockCpd
+ extends CPD
{
private Iterator matches;
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?rev=803850&r1=803849&r2=803850&view=diff
==============================================================================
--- 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 Thu Aug 13 11:57:24 2009
@@ -19,7 +19,6 @@
* under the License.
*/
-import org.apache.maven.plugin.testing.AbstractMojoTestCase;
import org.codehaus.plexus.util.FileUtils;
import java.io.BufferedReader;
@@ -32,7 +31,7 @@
* @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
*/
public class PmdReportTest
- extends AbstractMojoTestCase
+ extends AbstractPmdReportTest
{
protected void setUp()
throws Exception
@@ -40,7 +39,7 @@
super.setUp();
FileUtils.deleteDirectory( new File( getBasedir(), "target/test/unit" ) );
}
-
+
public void testDefaultConfiguration()
throws Exception
{
@@ -67,63 +66,65 @@
assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/site/pmd.html" );
+ renderer( mojo, generatedFile );
assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
//check if there's a link to the JXR files
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 );
}
-
+
public void testFileURL()
throws Exception
{
FileUtils.copyDirectoryStructure(
new File( getBasedir(), "src/test/resources/unit/default-configuration/jxr-files" ),
new File( getBasedir(), "target/test/unit/default-configuration/target/site" ) );
-
+
File testPom = new File( getBasedir(),
"src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml" );
PmdReport mojo = (PmdReport) lookupMojo( "pmd", testPom );
-
+
URL url = getClass().getClassLoader().getResource( "rulesets/basic.xml" );
URL url2 = getClass().getClassLoader().getResource( "rulesets/unusedcode.xml" );
URL url3 = getClass().getClassLoader().getResource( "rulesets/imports.xml" );
mojo.setRulesets( new String[] { url.toString(), url2.toString() , url3.toString() } );
-
+
mojo.execute();
-
+
//check if the PMD files were generated
File generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/pmd.xml" );
assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
-
+
generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/basic.xml" );
assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
-
+
generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/imports.xml" );
assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
-
+
generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/unusedcode.xml" );
assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
-
+
generatedFile = new File( getBasedir(), "target/test/unit/default-configuration/target/site/pmd.html" );
+ renderer( mojo, generatedFile );
assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
-
+
//check if there's a link to the JXR files
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 );
- }
-
+ }
+
/**
* With custom rulesets
*
@@ -146,15 +147,17 @@
assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
generatedFile = new File( getBasedir(), "target/test/unit/custom-configuration/target/site/pmd.html" );
+ renderer( mojo, generatedFile );
+ renderer( mojo, generatedFile );
assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) );
//check if custom ruleset was applied
String str = readFile( new File( getBasedir(), "target/test/unit/custom-configuration/target/site/pmd.html" ) );
assertTrue( str.toLowerCase().indexOf( "Avoid using if statements without curly braces".toLowerCase() ) != -1 );
-
+
assertTrue(
str.toLowerCase().indexOf( "Avoid using if...else statements without curly braces".toLowerCase() ) != -1 );
-
+
assertTrue("unnecessary constructor should not be triggered because of low priority",
str.toLowerCase().indexOf( "Avoid unnecessary constructors - the compiler will generate these for you".toLowerCase() ) == -1 );
@@ -174,7 +177,6 @@
mojo.execute();
File basedir = new File( getBasedir(), "target/test/unit/skip-configuration" );
- assertTrue( FileUtils.fileExists( basedir.getAbsolutePath() ) );
// verify the generated files do not exist because PMD was skipped
File generatedFile = new File( getBasedir(), "target/test/unit/skip-configuration/target/pmd.csv" );