Author: jvanzyl Date: Fri Jun 1 15:03:43 2007 New Revision: 543635 URL: http://svn.apache.org/viewvc?view=rev&rev=543635 Log: MNG-2065 Using FileUtils for resource filtering Submitted by: Brian Topping
Removed: maven/plugins/trunk/maven-resources-plugin/src/main/java/org/apache/maven/plugin/resources/util/ Modified: maven/plugins/trunk/maven-resources-plugin/src/main/java/org/apache/maven/plugin/resources/ResourcesMojo.java Modified: maven/plugins/trunk/maven-resources-plugin/src/main/java/org/apache/maven/plugin/resources/ResourcesMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-resources-plugin/src/main/java/org/apache/maven/plugin/resources/ResourcesMojo.java?view=diff&rev=543635&r1=543634&r2=543635 ============================================================================== --- maven/plugins/trunk/maven-resources-plugin/src/main/java/org/apache/maven/plugin/resources/ResourcesMojo.java (original) +++ maven/plugins/trunk/maven-resources-plugin/src/main/java/org/apache/maven/plugin/resources/ResourcesMojo.java Fri Jun 1 15:03:43 2007 @@ -22,20 +22,11 @@ import org.apache.maven.project.MavenProject; import org.codehaus.plexus.util.DirectoryScanner; import org.codehaus.plexus.util.FileUtils; -import org.codehaus.plexus.util.IOUtil; -import org.apache.maven.plugin.resources.util.InterpolationFilterReader; +import org.codehaus.plexus.util.InterpolationFilterReader; -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; import java.util.Iterator; import java.util.List; @@ -230,61 +221,38 @@ } } - private void copyFile( File from, File to, boolean filtering ) + private void copyFile( File from, final File to, boolean filtering ) throws IOException { - if ( !filtering ) - { - if ( to.lastModified() < from.lastModified() ) - { - FileUtils.copyFile( from, to ); - } - } - else - { - // buffer so it isn't reading a byte at a time! - 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, "${", "}" ); - - // support @token@ - reader = new InterpolationFilterReader( reader, filterProperties, "@", "@" ); - - boolean isPropertiesFile = false; - - if ( to.isFile() && to.getName().endsWith( ".properties" ) ) - { - isPropertiesFile = true; - } - - reader = new InterpolationFilterReader( reader, new ReflectionProperties( project, isPropertiesFile ), "${", "}" ); - - IOUtil.copy( reader, fileWriter ); - } - finally - { - IOUtil.close( fileReader ); - IOUtil.close( fileWriter ); - } + FileUtils.FilterWrapper[] wrappers = null; + if (filtering) { + wrappers = new FileUtils.FilterWrapper[]{ + // support ${token} + new FileUtils.FilterWrapper() { + public Reader getReader(Reader reader) { + return new InterpolationFilterReader(reader, filterProperties, "${", "}"); + } + }, + // support @token@ + new FileUtils.FilterWrapper() { + public Reader getReader(Reader reader) { + return new InterpolationFilterReader(reader, filterProperties, "@", "@"); + } + }, + + new FileUtils.FilterWrapper() { + public Reader getReader(Reader reader) { + boolean isPropertiesFile = false; + + if (to.isFile() && to.getName().endsWith(".properties")) { + isPropertiesFile = true; + } + + return new InterpolationFilterReader(reader, new ReflectionProperties(project, isPropertiesFile), "${", "}"); + } + } + }; } + FileUtils.copyFile(from, to, encoding, wrappers); } }