Resolving: MNG-1129, encoding is now a plugin parameter on the resources mojos.

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@315021 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
John Dennis Casey 2005-10-12 20:11:47 +00:00
parent 8c8c0c6b9e
commit 253fce25ae
1 changed files with 34 additions and 3 deletions

View File

@ -27,9 +27,13 @@
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
import java.util.Arrays;
@ -50,6 +54,12 @@
public class ResourcesMojo
extends AbstractMojo
{
/**
* @parameter
*/
private String encoding;
/**
* The output directory into which to copy the resources.
*
@ -95,6 +105,15 @@ protected void copyResources( List resources, String outputDirectory )
{
initializeFiltering();
if ( encoding == null || encoding.length() < 1 )
{
getLog().info( "Using default encoding to copy filtered resources." );
}
else
{
getLog().info( "Using encoding: \'" + encoding + "\' to copy filtered resources." );
}
for ( Iterator i = resources.iterator(); i.hasNext(); )
{
Resource resource = (Resource) i.next();
@ -192,10 +211,24 @@ private void copyFile( File from, File to, boolean filtering )
else
{
// buffer so it isn't reading a byte at a time!
Reader fileReader = new BufferedReader( new FileReader( from ) );
Reader fileReader = null;
Writer fileWriter = null;
try
{
if ( encoding == null || encoding.length() < 1 )
{
fileReader = new BufferedReader( new FileReader( from ) );
fileWriter = new FileWriter( to );
}
else
{
FileInputStream instream = new FileInputStream( from );
FileOutputStream outstream = new FileOutputStream( to );
fileReader = new BufferedReader( new InputStreamReader( instream, encoding ) );
fileWriter = new OutputStreamWriter( outstream, encoding );
}
// support ${token}
Reader reader = new InterpolationFilterReader( fileReader, filterProperties, "${", "}" );
@ -204,8 +237,6 @@ private void copyFile( File from, File to, boolean filtering )
reader = new InterpolationFilterReader( reader, new ReflectionProperties( project ), "${", "}" );
fileWriter = new FileWriter( to );
IOUtil.copy( reader, fileWriter );
}
finally