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


Reply via email to