You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by de...@apache.org on 2012/10/30 23:11:05 UTC

svn commit: r1403897 - in /maven/plugins/trunk/maven-assembly-plugin/src: it/projects/filtering-feature/filters-defined-in-build/ main/java/org/apache/maven/plugin/assembly/format/ main/java/org/apache/maven/plugin/assembly/utils/ test/java/org/apache/...

Author: dennisl
Date: Tue Oct 30 22:11:04 2012
New Revision: 1403897

URL: http://svn.apache.org/viewvc?rev=1403897&view=rev
Log:
[MASSEMBLY-371] Converting line endings corrupts ISO-8859-1 files when platform encoding is UTF-8

Modified:
    maven/plugins/trunk/maven-assembly-plugin/src/it/projects/filtering-feature/filters-defined-in-build/verify.bsh
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileFormatter.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFileUtils.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/AssemblyFileUtilsTest.java

Modified: maven/plugins/trunk/maven-assembly-plugin/src/it/projects/filtering-feature/filters-defined-in-build/verify.bsh
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/it/projects/filtering-feature/filters-defined-in-build/verify.bsh?rev=1403897&r1=1403896&r2=1403897&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/it/projects/filtering-feature/filters-defined-in-build/verify.bsh (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/it/projects/filtering-feature/filters-defined-in-build/verify.bsh Tue Oct 30 22:11:04 2012
@@ -5,7 +5,8 @@ import java.util.jar.*;
 try
 {
     File file = new File( basedir, "target/filters-defined-in-build-1/file-1.properties");
-    BufferedReader r = new BufferedReader(new FileReader(file));
+    // This is a properties file encoded using ISO-8859-1
+    BufferedReader r = new BufferedReader( new InputStreamReader( new FileInputStream( file ), "ISO-8859-1" ) );
     String s = r.readLine();
     if(s.contains("filter.build"))
     {

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileFormatter.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileFormatter.java?rev=1403897&r1=1403896&r2=1403897&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileFormatter.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/FileFormatter.java Tue Oct 30 22:11:04 2012
@@ -128,7 +128,7 @@ public class FileFormatter
 
             File target = FileUtils.createTempFile( source.getName() + ".", ".formatted", tempRoot );
 
-            AssemblyFileUtils.convertLineEndings( contentReader, target, lineEndingChars );
+            AssemblyFileUtils.convertLineEndings( contentReader, target, lineEndingChars, encoding );
 
             return target;
         }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFileUtils.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFileUtils.java?rev=1403897&r1=1403896&r2=1403897&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFileUtils.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFileUtils.java Tue Oct 30 22:11:04 2012
@@ -22,8 +22,9 @@ package org.apache.maven.plugin.assembly
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
 import java.io.File;
-import java.io.FileWriter;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.OutputStreamWriter;
 import java.io.RandomAccessFile;
 import java.io.Reader;
 import java.nio.channels.FileChannel;
@@ -135,7 +136,7 @@ public final class AssemblyFileUtils
      * @param lineEndings This is the result of the getLineEndingChars(..) method in this utility class; the actual
      *   line-ending characters.
      */
-    public static void convertLineEndings( Reader source, File dest, String lineEndings )
+    public static void convertLineEndings( Reader source, File dest, String lineEndings, String encoding )
         throws IOException
     {
         BufferedWriter out = null;
@@ -151,7 +152,14 @@ public final class AssemblyFileUtils
                 bufferedSource = new BufferedReader( source );
             }
 
-            out = new BufferedWriter( new FileWriter( dest ) ); // platform encoding
+            if ( encoding == null )
+            {
+                out = new BufferedWriter( new OutputStreamWriter( new FileOutputStream( dest ) ) ); // platform encoding
+            }
+            else
+            {
+                out = new BufferedWriter( new OutputStreamWriter( new FileOutputStream( dest ), encoding ) );
+            }
 
             String line;
 

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/AssemblyFileUtilsTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/AssemblyFileUtilsTest.java?rev=1403897&r1=1403896&r2=1403897&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/AssemblyFileUtilsTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/AssemblyFileUtilsTest.java Tue Oct 30 22:11:04 2012
@@ -172,7 +172,8 @@ public class AssemblyFileUtilsTest
         File dest = File.createTempFile( "line-conversion-test.", "" );
         dest.deleteOnExit();
 
-        AssemblyFileUtils.convertLineEndings( new StringReader( test ), dest, lineEndingChars );
+        // Using platform encoding for the conversion tests in this class is OK
+        AssemblyFileUtils.convertLineEndings( new StringReader( test ), dest, lineEndingChars, null );
 
         FileReader reader = null;
         StringWriter writer = new StringWriter();