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/18 16:40:39 UTC
svn commit: r935344 -
/maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReport.java
Author: hboutemy
Date: Sun Apr 18 14:40:38 2010
New Revision: 935344
URL: http://svn.apache.org/viewvc?rev=935344&view=rev
Log:
[MPMD-93] avoid platform encoding use, use UTF-8 fixed encoding instead for PMD reports other than HTML
Modified:
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/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=935344&r1=935343&r2=935344&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 14:40:38 2010
@@ -22,9 +22,11 @@ package org.apache.maven.plugin.pmd;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
+import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
@@ -55,6 +57,8 @@ import org.codehaus.plexus.resource.Reso
import org.codehaus.plexus.resource.loader.FileResourceCreationException;
import org.codehaus.plexus.resource.loader.FileResourceLoader;
import org.codehaus.plexus.resource.loader.ResourceNotFoundException;
+import org.codehaus.plexus.util.FileUtils;
+import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.ReaderFactory;
import org.codehaus.plexus.util.StringUtils;
@@ -310,31 +314,32 @@ public class PmdReport
{
// Use the PMD renderers to render in any format aside from HTML.
Renderer r = createRenderer();
- StringWriter stringwriter = new StringWriter();
+ Writer writer = null;
try
{
- r.setWriter( stringwriter );
+ File targetFile = new File( targetDirectory, "pmd." + format );
+ FileOutputStream tStream = new FileOutputStream( targetFile );
+ writer = new OutputStreamWriter( tStream, "UTF-8" );
+
+ r.setWriter( writer );
r.start();
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,
- "pmd." + format ) );
- writer.write( buffer, 0, buffer.length() );
- writer.close();
+ FileUtils.copyFile( targetFile, new File( siteDir, "pmd." + format ) );
}
catch ( IOException ioe )
{
throw new MavenReportException( ioe.getMessage(), ioe );
}
+ finally
+ {
+ IOUtil.close( writer );
+ }
}
}
finally
@@ -415,6 +420,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();
}
else if ( "txt".equals( format ) )