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


Reply via email to