You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2010/04/19 00:05:28 UTC

svn commit: r935423 - in /maven/plugins/trunk/maven-pmd-plugin/src: it/multi-module/ it/multi-module/mod-1/ main/java/org/apache/maven/plugin/pmd/

Author: hboutemy
Date: Sun Apr 18 22:05:27 2010
New Revision: 935423

URL: http://svn.apache.org/viewvc?rev=935423&view=rev
Log:
[MPMD-83] use project.reporting.outputEncoding encoding for non-HTML reports

Modified:
    maven/plugins/trunk/maven-pmd-plugin/src/it/multi-module/mod-1/pom.xml
    maven/plugins/trunk/maven-pmd-plugin/src/it/multi-module/verify.bsh
    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/it/multi-module/mod-1/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/it/multi-module/mod-1/pom.xml?rev=935423&r1=935422&r2=935423&view=diff
==============================================================================
--- maven/plugins/trunk/maven-pmd-plugin/src/it/multi-module/mod-1/pom.xml (original)
+++ maven/plugins/trunk/maven-pmd-plugin/src/it/multi-module/mod-1/pom.xml Sun Apr 18 22:05:27 2010
@@ -35,6 +35,10 @@ under the License.
     Test proper report generation in a multi-module build.
   </description>
 
+  <properties>
+    <project.reporting.outputEncoding>ISO-8859-1</project.reporting.outputEncoding>
+  </properties>
+
   <reporting>
     <plugins>
       <plugin>

Modified: maven/plugins/trunk/maven-pmd-plugin/src/it/multi-module/verify.bsh
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/it/multi-module/verify.bsh?rev=935423&r1=935422&r2=935423&view=diff
==============================================================================
--- maven/plugins/trunk/maven-pmd-plugin/src/it/multi-module/verify.bsh (original)
+++ maven/plugins/trunk/maven-pmd-plugin/src/it/multi-module/verify.bsh Sun Apr 18 22:05:27 2010
@@ -56,4 +56,25 @@ if ( content.indexOf( nonascii ) < 0 )
     throw new IOException( "non-ascii content corrupted in UTF-8." );
 }
 
+// check xml files encoding
+void checkEncoding( String module, String encoding )
+{
+    for ( String path : paths )
+    {
+        if ( !path.endsWith( ".xml" ) )
+        {
+            continue;
+        }
+        File file = new File( basedir, module + '/' + path );
+        content = FileUtils.fileRead( file, encoding );
+        if ( !content.startsWith( "<?xml version=\"1.0\" encoding=\"" + encoding + "\"?>" ) )
+        {
+            throw new IOException( "wrong XML encoding declaration for " + file );
+        }
+    }
+}
+checkEncoding( "mod-1", "ISO-8859-1" );
+checkEncoding( "mod-2", "UTF-8" );
+checkEncoding( "mod-3", "UTF-8" );
+
 return true;

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=935423&r1=935422&r2=935423&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 22:05:27 2010
@@ -38,6 +38,7 @@ import org.apache.maven.project.MavenPro
 import org.apache.maven.reporting.AbstractMavenReport;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.PathTool;
+import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.StringUtils;
 
 /**
@@ -186,6 +187,14 @@ public abstract class AbstractPmdReport
     private String sourceEncoding;
 
     /**
+     * The file encoding when writing non-HTML reports.
+     *
+     * @parameter expression="${outputEncoding}" default-value="${project.reporting.outputEncoding}"
+     * @since 2.5
+     */
+    private String outputEncoding;
+
+    /**
      * The projects in the reactor for aggregation report.
      *
      * @parameter expression="${reactorProjects}"
@@ -427,4 +436,15 @@ public abstract class AbstractPmdReport
     {
         return sourceEncoding;
     }
+
+    /**
+     * Gets the effective reporting output files encoding.
+     *
+     * @return The effective reporting output file encoding, never <code>null</code>.
+     * @since 2.5
+     */
+    protected String getOutputEncoding()
+    {
+        return ( outputEncoding != null ) ? outputEncoding : ReaderFactory.UTF_8;
+    }
 }

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=935423&r1=935422&r2=935423&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 22:05:27 2010
@@ -174,7 +174,7 @@ public class CpdReport
             targetDirectory.mkdirs();
             File targetFile = new File( targetDirectory, "cpd." + format );
             FileOutputStream tStream = new FileOutputStream( targetFile );
-            writer = new OutputStreamWriter( tStream, "UTF-8" );
+            writer = new OutputStreamWriter( tStream, getOutputEncoding() );
             writer.write( buffer );
             writer.close();
 
@@ -216,7 +216,7 @@ public class CpdReport
         Renderer renderer = null;
         if ( "xml".equals( format ) )
         {
-            renderer = new XMLRenderer( "UTF-8" );
+            renderer = new XMLRenderer( getOutputEncoding() );
         }
         else if ( "csv".equals( format ) )
         {

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=935423&r1=935422&r2=935423&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 22:05:27 2010
@@ -311,7 +311,7 @@ public class PmdReport
                     {
                         File targetFile = new File( targetDirectory, "pmd." + format );
                         FileOutputStream tStream = new FileOutputStream( targetFile );
-                        writer = new OutputStreamWriter( tStream, "UTF-8" );
+                        writer = new OutputStreamWriter( tStream, getOutputEncoding() );
 
                         r.setWriter( writer );
                         r.start();
@@ -411,7 +411,7 @@ public class PmdReport
         Renderer renderer = null;
         if ( "xml".equals( format ) )
         {
-            renderer = new PmdXMLRenderer( "UTF-8" );
+            renderer = new PmdXMLRenderer( getOutputEncoding() );
         }
         else if ( "txt".equals( format ) )
         {