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();