Author: hboutemy
Date: Sun Apr 18 21:02:29 2010
New Revision: 935409
URL: http://svn.apache.org/viewvc?rev=935409&view=rev
Log:
refactoring: moved sourceEncoding from CpdReport and PmdReport to
AbstractPmdReport
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/CpdReport.java
maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReport.java
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=935409&r1=935408&r2=935409&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
Sun Apr 18 21:02:29 2010
@@ -177,6 +177,13 @@ public abstract class AbstractPmdReport
*/
protected boolean aggregate;
+ /**
+ * The file encoding to use when reading the Java sources.
+ *
+ * @parameter expression="${encoding}"
default-value="${project.build.sourceEncoding}"
+ * @since 2.3
+ */
+ private String sourceEncoding;
/**
* The projects in the reactor for aggregation report.
@@ -415,4 +422,9 @@ public abstract class AbstractPmdReport
{
return outputDirectory.getAbsolutePath();
}
+
+ protected String getSourceEncoding()
+ {
+ return sourceEncoding;
+ }
}
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?rev=935409&r1=935408&r2=935409&view=diff
==============================================================================
---
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
Sun Apr 18 21:02:29 2010
@@ -72,14 +72,6 @@ public class CpdReport
*/
private boolean skip;
- /**
- * The file encoding to use when reading the Java sources.
- *
- * @parameter expression="${encoding}"
default-value="${project.build.sourceEncoding}"
- * @since 2.3
- */
- private String sourceEncoding;
-
/** {...@inheritdoc} */
public String getName( Locale locale )
{
@@ -125,12 +117,12 @@ public class CpdReport
{
files = getFilesToProcess();
- if ( StringUtils.isNotEmpty( sourceEncoding ) )
+ if ( StringUtils.isNotEmpty( getSourceEncoding() ) )
{
- cpd.setEncoding( sourceEncoding );
+ cpd.setEncoding( getSourceEncoding() );
// test encoding as CPD will convert exception into a
RuntimeException
- WriterFactory.newWriter( new ByteArrayOutputStream(),
sourceEncoding );
+ WriterFactory.newWriter( new ByteArrayOutputStream(),
getSourceEncoding() );
}
else if ( !files.isEmpty() )
{
@@ -146,7 +138,7 @@ public class CpdReport
}
catch ( UnsupportedEncodingException e )
{
- throw new MavenReportException( "Encoding '" +
sourceEncoding + "' is not supported.", e );
+ throw new MavenReportException( "Encoding '" +
getSourceEncoding() + "' is not supported.", e );
}
catch ( IOException e )
{
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=935409&r1=935408&r2=935409&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
Sun Apr 18 21:02:29 2010
@@ -110,13 +110,6 @@ public class PmdReport
private String[] rulesets = new String[]{"rulesets/basic.xml",
"rulesets/unusedcode.xml", "rulesets/imports.xml", };
/**
- * The file encoding to use when reading the Java sources.
- *
- * @parameter expression="${encoding}"
default-value="${project.build.sourceEncoding}"
- */
- private String sourceEncoding;
-
- /**
* @component
* @required
* @readonly
@@ -233,7 +226,7 @@ public class PmdReport
throw new MavenReportException( "Can't get file list", e );
}
- if ( StringUtils.isEmpty( sourceEncoding ) && !files.isEmpty()
)
+ if ( StringUtils.isEmpty( getSourceEncoding() ) &&
!files.isEmpty() )
{
getLog().warn(
"File encoding has not been set, using
platform encoding "
@@ -257,9 +250,9 @@ public class PmdReport
// PMD closes this Reader even though it did not
open it so we have
// to open a new one with every call to
processFile().
Reader reader;
- if ( StringUtils.isNotEmpty( sourceEncoding ) )
+ if ( StringUtils.isNotEmpty( getSourceEncoding() )
)
{
- reader = ReaderFactory.newReader( file,
sourceEncoding );
+ reader = ReaderFactory.newReader( file,
getSourceEncoding() );
}
else
{
@@ -276,7 +269,7 @@ public class PmdReport
}
catch ( UnsupportedEncodingException e1 )
{
- throw new MavenReportException( "Encoding '" +
sourceEncoding + "' is not supported.", e1 );
+ throw new MavenReportException( "Encoding '" +
getSourceEncoding() + "' is not supported.", e1 );
}
catch ( PMDException pe )
{
@@ -418,8 +411,7 @@ public class PmdReport
Renderer renderer = null;
if ( "xml".equals( format ) )
{
- // MPMD-83: encoding in XML declaration is hardcoded in PMD
XMLRenderer as UTF-8
- renderer = new XMLRenderer();
+ renderer = new PmdXMLRenderer( "UTF-8" );
}
else if ( "txt".equals( format ) )
{
@@ -454,6 +446,15 @@ public class PmdReport
return renderer;
}
+ private static class PmdXMLRenderer extends XMLRenderer
+ {
+ public PmdXMLRenderer( String encoding )
+ {
+ super();
+ this.encoding = encoding;
+ }
+ }
+
/** @author <a href="mailto:[email protected]">Doug Douglass</a> */
private static class ProcessingErrorRuleViolation
implements IRuleViolation