From cbeb4704a086bebb4de6c524d16bdc2d087953fd Mon Sep 17 00:00:00 2001 From: Peter Donald Date: Mon, 17 Dec 2001 10:50:15 +0000 Subject: [PATCH] Start reducing the dependence on FileUtils. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270248 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/antlib/xml/XSLTProcess.java | 12 - .../org/apache/tools/ant/AntClassLoader.java | 4 +- .../main/org/apache/tools/ant/Project.java | 3 - .../apache/tools/ant/ProjectComponent.java | 2 - .../apache/tools/ant/taskdefs/Available.java | 2 - .../org/apache/tools/ant/taskdefs/Copy.java | 35 ++- .../org/apache/tools/ant/taskdefs/Expand.java | 16 +- .../apache/tools/ant/taskdefs/FixCRLF.java | 6 +- .../apache/tools/ant/taskdefs/Javadoc.java | 8 +- .../org/apache/tools/ant/taskdefs/Move.java | 12 +- .../apache/tools/ant/taskdefs/Replace.java | 13 +- .../org/apache/tools/ant/taskdefs/Rmic.java | 3 +- .../org/apache/tools/ant/taskdefs/Touch.java | 7 - .../org/apache/tools/ant/taskdefs/Untar.java | 5 +- .../org/apache/tools/ant/taskdefs/Zip.java | 13 +- .../compilers/DefaultCompilerAdapter.java | 6 +- .../tools/ant/taskdefs/exec/Execute.java | 6 +- .../tools/ant/taskdefs/optional/Cab.java | 9 +- .../tools/ant/taskdefs/optional/NetRexxC.java | 12 +- .../ant/taskdefs/optional/ReplaceRegExp.java | 5 +- .../optional/ejb/WeblogicDeploymentTool.java | 4 +- .../ant/taskdefs/optional/i18n/Translate.java | 8 +- .../optional/junit/AggregateTransformer.java | 7 +- .../optional/junit/XMLResultAggregator.java | 6 +- .../main/org/apache/tools/ant/types/Path.java | 5 +- .../org/apache/tools/ant/util/FileUtils.java | 245 +----------------- .../tools/ant/util/SourceFileScanner.java | 23 +- .../org/apache/tools/ant/AntClassLoader.java | 4 +- .../todo/org/apache/tools/ant/Project.java | 3 - .../apache/tools/ant/ProjectComponent.java | 2 - .../apache/tools/ant/taskdefs/Available.java | 2 - .../org/apache/tools/ant/taskdefs/Copy.java | 35 ++- .../org/apache/tools/ant/taskdefs/Expand.java | 16 +- .../apache/tools/ant/taskdefs/FixCRLF.java | 6 +- .../apache/tools/ant/taskdefs/Javadoc.java | 8 +- .../org/apache/tools/ant/taskdefs/Move.java | 12 +- .../apache/tools/ant/taskdefs/Replace.java | 13 +- .../org/apache/tools/ant/taskdefs/Rmic.java | 3 +- .../org/apache/tools/ant/taskdefs/Touch.java | 7 - .../org/apache/tools/ant/taskdefs/Untar.java | 5 +- .../org/apache/tools/ant/taskdefs/Zip.java | 13 +- .../compilers/DefaultCompilerAdapter.java | 6 +- .../tools/ant/taskdefs/exec/Execute.java | 6 +- .../tools/ant/taskdefs/optional/Cab.java | 9 +- .../tools/ant/taskdefs/optional/NetRexxC.java | 12 +- .../ant/taskdefs/optional/ReplaceRegExp.java | 5 +- .../optional/ejb/WeblogicDeploymentTool.java | 4 +- .../ant/taskdefs/optional/i18n/Translate.java | 8 +- .../optional/junit/AggregateTransformer.java | 7 +- .../optional/junit/XMLResultAggregator.java | 6 +- .../todo/org/apache/tools/ant/types/Path.java | 5 +- .../org/apache/tools/ant/util/FileUtils.java | 245 +----------------- .../tools/ant/util/SourceFileScanner.java | 23 +- 53 files changed, 206 insertions(+), 736 deletions(-) diff --git a/proposal/myrmidon/src/java/org/apache/antlib/xml/XSLTProcess.java b/proposal/myrmidon/src/java/org/apache/antlib/xml/XSLTProcess.java index e0eaed248..8c733f542 100644 --- a/proposal/myrmidon/src/java/org/apache/antlib/xml/XSLTProcess.java +++ b/proposal/myrmidon/src/java/org/apache/antlib/xml/XSLTProcess.java @@ -8,8 +8,6 @@ package org.apache.antlib.xml; import java.io.File; -import java.util.Enumeration; -import java.util.Vector; import java.util.ArrayList; import java.util.Iterator; import org.apache.myrmidon.api.TaskException; @@ -19,7 +17,6 @@ import org.apache.tools.ant.Project; import org.apache.tools.ant.taskdefs.MatchingTask; import org.apache.tools.ant.types.Path; import org.apache.tools.ant.types.Reference; -import org.apache.tools.ant.util.FileUtils; /** * A Task to process via XSLT a set of XML documents. This is useful for @@ -56,18 +53,9 @@ public class XSLTProcess private boolean m_stylesheetLoaded; private boolean m_force; private String m_outputtype; - private FileUtils m_fileUtils; private XSLTLiaison m_liaison; private String m_processor; - /** - * Creates a new XSLTProcess Task. - */ - public XSLTProcess() - { - m_fileUtils = FileUtils.newFileUtils(); - }//-- setForce - /** * Set the base directory. * diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/AntClassLoader.java b/proposal/myrmidon/src/main/org/apache/tools/ant/AntClassLoader.java index 9fe2e4e64..9363831ec 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/AntClassLoader.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/AntClassLoader.java @@ -21,9 +21,9 @@ import java.util.Hashtable; import java.util.Vector; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; +import org.apache.avalon.excalibur.io.FileUtil; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.types.Path; -import org.apache.tools.ant.util.FileUtils; /** * Used to load classes within ant with a different claspath from that used to @@ -421,7 +421,7 @@ public class AntClassLoader throws TaskException { File pathComponent - = project != null ? FileUtils.newFileUtils().resolveFile( project.getBaseDir(), pathElement ) + = project != null ? FileUtil.resolveFile( project.getBaseDir(), pathElement ) : new File( pathElement ); pathComponents.addElement( pathComponent ); } diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/Project.java b/proposal/myrmidon/src/main/org/apache/tools/ant/Project.java index e8f2f41e4..3f41f5447 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/Project.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/Project.java @@ -8,15 +8,12 @@ package org.apache.tools.ant; import java.io.File; -import java.lang.reflect.Modifier; import java.util.Enumeration; import java.util.Hashtable; -import java.util.Stack; import java.util.Vector; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.types.FilterSet; import org.apache.tools.ant.types.FilterSetCollection; -import org.apache.tools.ant.util.FileUtils; /** * Central representation of an Ant project. This class defines a Ant project diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/ProjectComponent.java b/proposal/myrmidon/src/main/org/apache/tools/ant/ProjectComponent.java index 64d834e0e..0fbba77a9 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/ProjectComponent.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/ProjectComponent.java @@ -7,10 +7,8 @@ */ package org.apache.tools.ant; -import java.io.File; import org.apache.myrmidon.api.AbstractTask; import org.apache.myrmidon.api.TaskException; -import org.apache.tools.ant.util.FileUtils; /** * Base class for components of a project, including tasks and data types. diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Available.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Available.java index 6efc7a7b8..4c3d374ab 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Available.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Available.java @@ -16,7 +16,6 @@ import org.apache.tools.ant.taskdefs.condition.Condition; import org.apache.tools.ant.types.EnumeratedAttribute; import org.apache.tools.ant.types.Path; import org.apache.tools.ant.types.Reference; -import org.apache.tools.ant.util.FileUtils; /** * Will set the given property if the requested resource is available at @@ -274,7 +273,6 @@ public class Available return false; } - FileUtils fileUtils = FileUtils.newFileUtils(); File parent = path.getParentFile(); // ** full-pathname specified == parent dir of path in list if( parent != null && parent.exists() diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Copy.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Copy.java index e7b6c4ed8..39468e440 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Copy.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Copy.java @@ -12,6 +12,7 @@ import java.io.IOException; import java.util.Enumeration; import java.util.Hashtable; import java.util.Vector; +import org.apache.avalon.excalibur.io.FileUtil; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.Project; @@ -61,12 +62,6 @@ public class Copy extends Task protected Mapper mapperElement = null; private Vector filterSets = new Vector(); - private FileUtils fileUtils; - - public Copy() - { - fileUtils = FileUtils.newFileUtils(); - } /** * Sets a single source file to copy. @@ -277,11 +272,6 @@ public class Copy extends Task } } - protected FileUtils getFileUtils() - { - return fileUtils; - } - /** * Get the filtersets being applied to this operation. * @@ -335,8 +325,8 @@ public class Copy extends Task if( fileCopyMap.size() > 0 ) { getLogger().info( "Copying " + fileCopyMap.size() + - " file" + ( fileCopyMap.size() == 1 ? "" : "s" ) + - " to " + destDir.getAbsolutePath() ); + " file" + ( fileCopyMap.size() == 1 ? "" : "s" ) + + " to " + destDir.getAbsolutePath() ); Enumeration e = fileCopyMap.keys(); while( e.hasMoreElements() ) @@ -363,8 +353,17 @@ public class Copy extends Task { executionFilters.addFilterSet( (FilterSet)filterEnum.nextElement() ); } - fileUtils.copyFile( fromFile, toFile, executionFilters, - forceOverwrite, preserveLastModified ); + final File src = new File( fromFile ); + final File dest = new File( toFile ); + if( forceOverwrite ) + { + FileUtil.forceDelete( dest ); + } + FileUtils.newFileUtils().copyFile( src, dest, executionFilters ); + if( preserveLastModified ) + { + dest.setLastModified( src.lastModified() ); + } } catch( IOException ioe ) { @@ -398,9 +397,9 @@ public class Copy extends Task if( count > 0 ) { getLogger().info( "Copied " + count + - " empty director" + - ( count == 1 ? "y" : "ies" ) + - " to " + destDir.getAbsolutePath() ); + " empty director" + + ( count == 1 ? "y" : "ies" ) + + " to " + destDir.getAbsolutePath() ); } } } diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Expand.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Expand.java index 743567f2c..909cf3c07 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Expand.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Expand.java @@ -17,12 +17,12 @@ import java.util.Date; import java.util.Vector; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; +import org.apache.avalon.excalibur.io.FileUtil; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.Project; import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.types.PatternSet; -import org.apache.tools.ant.util.FileUtils; /** * Unzip a file. @@ -115,8 +115,6 @@ public class Expand extends MatchingTask throw new TaskException( "Dest must be a directory." ); } - FileUtils fileUtils = FileUtils.newFileUtils(); - if( source != null ) { if( source.isDirectory() ) @@ -126,7 +124,7 @@ public class Expand extends MatchingTask } else { - expandFile( fileUtils, source, dest ); + expandFile( source, dest ); } } if( filesets.size() > 0 ) @@ -141,7 +139,7 @@ public class Expand extends MatchingTask for( int i = 0; i < files.length; ++i ) { File file = new File( fromDir, files[ i ] ); - expandFile( fileUtils, file, dest ); + expandFile( file, dest ); } } } @@ -150,7 +148,7 @@ public class Expand extends MatchingTask /* * This method is to be overridden by extending unarchival tasks. */ - protected void expandFile( FileUtils fileUtils, File srcF, File dir ) + protected void expandFile( File srcF, File dir ) throws TaskException { ZipInputStream zis = null; @@ -162,7 +160,7 @@ public class Expand extends MatchingTask while( ( ze = zis.getNextEntry() ) != null ) { - extractFile( fileUtils, srcF, dir, zis, + extractFile( srcF, dir, zis, ze.getName(), new Date( ze.getTime() ), ze.isDirectory() ); @@ -189,7 +187,7 @@ public class Expand extends MatchingTask } } - protected void extractFile( FileUtils fileUtils, File srcF, File dir, + protected void extractFile( File srcF, File dir, InputStream compressedInputStream, String entryName, Date entryDate, boolean isDirectory ) @@ -237,7 +235,7 @@ public class Expand extends MatchingTask } } - File f = fileUtils.resolveFile( dir, entryName ); + File f = FileUtil.resolveFile( dir, entryName ); try { if( !overwrite && f.exists() diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/FixCRLF.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/FixCRLF.java index 0740c0900..4b9a9eb2a 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/FixCRLF.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/FixCRLF.java @@ -101,8 +101,6 @@ public class FixCRLF extends MatchingTask private boolean javafiles = false; private File destDir = null; - private FileUtils fileUtils = FileUtils.newFileUtils(); - /** * Encoding to assume for the files */ @@ -578,7 +576,7 @@ public class FixCRLF extends MatchingTask // Set up the output Writer try { - tmpFile = fileUtils.createTempFile( "fixcrlf", "", destD ); + tmpFile = File.createTempFile( "fixcrlf", "", destD ); Writer writer = ( encoding == null ) ? new FileWriter( tmpFile ) : new OutputStreamWriter( new FileOutputStream( tmpFile ), encoding ); outWriter = new BufferedWriter( writer ); @@ -761,7 +759,7 @@ public class FixCRLF extends MatchingTask { // Compare the destination with the temp file log( "destFile exists", Project.MSG_DEBUG ); - if( !fileUtils.contentEquals( destFile, tmpFile ) ) + if( !FileUtils.newFileUtils().contentEquals( destFile, tmpFile ) ) { log( destFile + " is being written", Project.MSG_DEBUG ); if( !destFile.delete() ) diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Javadoc.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Javadoc.java index e7be887f8..e152dfecd 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Javadoc.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Javadoc.java @@ -21,8 +21,8 @@ import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.Project; import org.apache.tools.ant.Task; import org.apache.tools.ant.taskdefs.exec.Execute; -import org.apache.tools.ant.taskdefs.exec.PumpStreamHandler; import org.apache.tools.ant.taskdefs.exec.LogOutputStream; +import org.apache.tools.ant.taskdefs.exec.PumpStreamHandler; import org.apache.tools.ant.types.Commandline; import org.apache.tools.ant.types.EnumeratedAttribute; import org.apache.tools.ant.types.FileSet; @@ -95,8 +95,6 @@ public class Javadoc extends Task private boolean useExternalFile = false; private File tmpList = null; - private FileUtils fileUtils = FileUtils.newFileUtils(); - public void setAccess( AccessType at ) { cmd.createArgument().setValue( "-" + at.getValue() ); @@ -873,7 +871,7 @@ public class Javadoc extends Task { if( tmpList == null ) { - tmpList = fileUtils.createTempFile( "javadoc", "", null ); + tmpList = File.createTempFile( "javadoc", "", getBaseDirectory() ); toExecute.createArgument().setValue( "@" + tmpList.getAbsolutePath() ); } srcListWriter = new PrintWriter( new FileWriter( tmpList.getAbsolutePath(), @@ -1122,7 +1120,7 @@ public class Javadoc extends Task { if( useExternalFile ) { - tmpList = fileUtils.createTempFile( "javadoc", "", null ); + tmpList = File.createTempFile( "javadoc", "", getBaseDirectory() ); toExecute.createArgument().setValue( "@" + tmpList.getAbsolutePath() ); packageListWriter = new PrintWriter( new FileWriter( tmpList ) ); } diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Move.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Move.java index 11fc15fc1..710917472 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Move.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Move.java @@ -10,8 +10,10 @@ package org.apache.tools.ant.taskdefs; import java.io.File; import java.io.IOException; import java.util.Enumeration; +import org.apache.avalon.excalibur.io.FileUtil; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.Project; +import org.apache.tools.ant.util.FileUtils; import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.types.FilterSet; import org.apache.tools.ant.types.FilterSetCollection; @@ -106,7 +108,7 @@ public class Move extends Copy if( fileCopyMap.size() > 0 ) {// files to move getLogger().info( "Moving " + fileCopyMap.size() + " files to " + - destDir.getAbsolutePath() ); + destDir.getAbsolutePath() ); Enumeration e = fileCopyMap.keys(); while( e.hasMoreElements() ) @@ -156,8 +158,12 @@ public class Move extends Copy { executionFilters.addFilterSet( (FilterSet)filterEnum.nextElement() ); } - getFileUtils().copyFile( f, d, executionFilters, - forceOverwrite ); + + if( forceOverwrite ) + { + FileUtil.forceDelete( d ); + } + FileUtils.newFileUtils().copyFile( f, d, executionFilters ); f = new File( fromFile ); if( !f.delete() ) diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Replace.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Replace.java index 1e3882fff..2f6a44945 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Replace.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Replace.java @@ -55,8 +55,6 @@ public class Replace extends MatchingTask */ private String encoding = null; - private FileUtils fileUtils = FileUtils.newFileUtils(); - private int fileCount; private int replaceCount; @@ -295,8 +293,15 @@ public class Replace extends MatchingTask throw new TaskException( "Replace: source file " + src.getPath() + " doesn't exist" ); } - File temp = fileUtils.createTempFile( "rep", ".tmp", - src.getParentFile() ); + File temp = null; + try + { + temp = File.createTempFile( "rep", ".tmp", src.getParentFile() ); + } + catch( IOException ioe ) + { + throw new TaskException( ioe.toString(), ioe ); + } Reader reader = null; Writer writer = null; diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Rmic.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Rmic.java index 158e85c78..1af73afb2 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Rmic.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Rmic.java @@ -11,6 +11,7 @@ import java.io.File; import java.io.IOException; import java.rmi.Remote; import java.util.Vector; +import org.apache.avalon.excalibur.io.FileUtil; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.AntClassLoader; import org.apache.tools.ant.DirectoryScanner; @@ -688,7 +689,7 @@ public class Rmic extends MatchingTask } else { - FileUtils.newFileUtils().copyFile( oldFile, newFile ); + FileUtil.copyFile( oldFile, newFile ); } oldFile.delete(); } diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Touch.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Touch.java index b42eca079..2fe39ed33 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Touch.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Touch.java @@ -19,7 +19,6 @@ import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.Project; import org.apache.tools.ant.Task; import org.apache.tools.ant.types.FileSet; -import org.apache.tools.ant.util.FileUtils; /** * Touch a file and/or fileset(s) -- corresponds to the Unix touch command.

@@ -39,12 +38,6 @@ public class Touch extends Task private String dateTime; private File file; - private FileUtils fileUtils; - - public Touch() - { - fileUtils = FileUtils.newFileUtils(); - } /** * Date in the format MM/DD/YYYY HH:MM AM_PM. diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Untar.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Untar.java index 72cda75b4..3bdad1d31 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Untar.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Untar.java @@ -12,7 +12,6 @@ import java.io.FileInputStream; import java.io.IOException; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.Project; -import org.apache.tools.ant.util.FileUtils; import org.apache.tools.tar.TarEntry; import org.apache.tools.tar.TarInputStream; @@ -25,7 +24,7 @@ import org.apache.tools.tar.TarInputStream; public class Untar extends Expand { - protected void expandFile( FileUtils fileUtils, File srcF, File dir ) + protected void expandFile( File srcF, File dir ) throws TaskException { TarInputStream tis = null; @@ -38,7 +37,7 @@ public class Untar extends Expand while( ( te = tis.getNextEntry() ) != null ) { - extractFile( fileUtils, srcF, dir, tis, + extractFile( srcF, dir, tis, te.getName(), te.getModTime(), te.isDirectory() ); } diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Zip.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Zip.java index 5118d9b3a..e2607fd29 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Zip.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/Zip.java @@ -28,7 +28,6 @@ import org.apache.tools.ant.types.EnumeratedAttribute; import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.types.ZipFileSet; import org.apache.tools.ant.types.ZipScanner; -import org.apache.tools.ant.util.FileUtils; import org.apache.tools.ant.util.MergingMapper; import org.apache.tools.ant.util.SourceFileScanner; import org.apache.tools.zip.ZipEntry; @@ -235,9 +234,15 @@ public class Zip extends MatchingTask doUpdate = doUpdate && zipFile.exists(); if( doUpdate ) { - FileUtils fileUtils = FileUtils.newFileUtils(); - renamedFile = fileUtils.createTempFile( "zip", ".tmp", - zipFile.getParentFile() ); + try + { + renamedFile = File.createTempFile( "zip", ".tmp", + zipFile.getParentFile() ); + } + catch( final IOException ioe ) + { + throw new TaskException( ioe.toString(), ioe ); + } try { diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java index 6ba9f5478..1186cc5ed 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java @@ -13,12 +13,11 @@ import java.io.IOException; import java.io.PrintWriter; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.Project; -import org.apache.tools.ant.taskdefs.exec.Execute; import org.apache.tools.ant.taskdefs.Javac; +import org.apache.tools.ant.taskdefs.exec.Execute; import org.apache.tools.ant.taskdefs.exec.LogStreamHandler; import org.apache.tools.ant.types.Commandline; import org.apache.tools.ant.types.Path; -import org.apache.tools.ant.util.FileUtils; /** * This is the default implementation for the CompilerAdapter interface. @@ -39,7 +38,6 @@ public abstract class DefaultCompilerAdapter implements CompilerAdapter protected boolean depend = false; protected boolean verbose = false; - private FileUtils fileUtils = FileUtils.newFileUtils(); protected Javac attributes; protected Path bootclasspath; protected Path compileClasspath; @@ -400,7 +398,7 @@ public abstract class DefaultCompilerAdapter implements CompilerAdapter PrintWriter out = null; try { - tmpFile = fileUtils.createTempFile( "jikes", "", null ); + tmpFile = File.createTempFile( "jikes", "", new File( "." ) ); out = new PrintWriter( new FileWriter( tmpFile ) ); for( int i = firstFileName; i < args.length; i++ ) { diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/exec/Execute.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/exec/Execute.java index f916ba9dd..55011faf7 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/exec/Execute.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/exec/Execute.java @@ -16,12 +16,12 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Locale; import java.util.Vector; +import org.apache.avalon.excalibur.io.FileUtil; import org.apache.myrmidon.api.TaskException; import org.apache.myrmidon.framework.Os; import org.apache.tools.ant.Project; import org.apache.tools.ant.Task; import org.apache.tools.ant.types.Commandline; -import org.apache.tools.ant.util.FileUtils; /** * Runs an external program. @@ -817,7 +817,7 @@ public class Execute { throw new IOException( "Cannot locate antRun script: Property 'ant.home' not found" ); } - String antRun = FileUtils.newFileUtils(). + String antRun = FileUtil. resolveFile( project.getBaseDir(), antHome + File.separator + _script ).toString(); // Build the command @@ -883,7 +883,7 @@ public class Execute { throw new IOException( "Cannot locate antRun script: Property 'ant.home' not found" ); } - String antRun = FileUtils.newFileUtils(). + String antRun = FileUtil. resolveFile( project.getBaseDir(), antHome + File.separator + _script ).toString(); // Build the command diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/Cab.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/Cab.java index 37277b4a7..0ca4f675f 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/Cab.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/Cab.java @@ -18,11 +18,9 @@ import org.apache.myrmidon.api.TaskException; import org.apache.myrmidon.framework.Os; import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.Project; -import org.apache.tools.ant.taskdefs.exec.ExecTask; import org.apache.tools.ant.taskdefs.MatchingTask; -import org.apache.tools.ant.types.Commandline; +import org.apache.tools.ant.taskdefs.exec.ExecTask; import org.apache.tools.ant.types.FileSet; -import org.apache.tools.ant.util.FileUtils; /** * Create a CAB archive. @@ -39,7 +37,6 @@ public class Cab extends MatchingTask protected String archiveType = "cab"; - private FileUtils fileUtils = FileUtils.newFileUtils(); private File baseDir; private File cabFile; @@ -161,7 +158,7 @@ public class Cab extends MatchingTask if( !doVerbose ) { - outFile = fileUtils.createTempFile( "ant", "", null ); + outFile = File.createTempFile( "ant", "", getBaseDirectory() ); exec.setOutput( outFile ); } @@ -327,7 +324,7 @@ public class Cab extends MatchingTask protected File createListFile( Vector files ) throws IOException { - File listFile = fileUtils.createTempFile( "ant", "", null ); + File listFile = File.createTempFile( "ant", "", getBaseDirectory() ); PrintWriter writer = new PrintWriter( new FileOutputStream( listFile ) ); diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/NetRexxC.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/NetRexxC.java index f7bc2a8f2..a0e632351 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/NetRexxC.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/NetRexxC.java @@ -17,11 +17,11 @@ import java.util.Properties; import java.util.StringTokenizer; import java.util.Vector; import netrexx.lang.Rexx; +import org.apache.avalon.excalibur.io.FileUtil; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.Project; import org.apache.tools.ant.taskdefs.MatchingTask; -import org.apache.tools.ant.util.FileUtils; /** * Task to compile NetRexx source files. This task can take the following @@ -501,8 +501,8 @@ public class NetRexxC extends MatchingTask if( compileList.size() > 0 ) { getLogger().info( "Compiling " + compileList.size() + " source file" - + ( compileList.size() == 1 ? "" : "s" ) - + " to " + destDir ); + + ( compileList.size() == 1 ? "" : "s" ) + + " to " + destDir ); doNetRexxCompile(); } } @@ -611,8 +611,8 @@ public class NetRexxC extends MatchingTask if( filecopyList.size() > 0 ) { getLogger().info( "Copying " + filecopyList.size() + " file" - + ( filecopyList.size() == 1 ? "" : "s" ) - + " to " + destDir.getAbsolutePath() ); + + ( filecopyList.size() == 1 ? "" : "s" ) + + " to " + destDir.getAbsolutePath() ); Enumeration enum = filecopyList.keys(); while( enum.hasMoreElements() ) { @@ -620,7 +620,7 @@ public class NetRexxC extends MatchingTask String toFile = (String)filecopyList.get( fromFile ); try { - FileUtils.newFileUtils().copyFile( fromFile, toFile ); + FileUtil.copyFile( new File( fromFile ), new File( toFile ) ); } catch( IOException ioe ) { diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java index 901a56f2d..8aaa97087 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java @@ -23,7 +23,6 @@ import org.apache.tools.ant.Task; import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.types.RegularExpression; import org.apache.tools.ant.types.Substitution; -import org.apache.tools.ant.util.FileUtils; import org.apache.tools.ant.util.regexp.Regexp; /** @@ -73,8 +72,6 @@ import org.apache.tools.ant.util.regexp.Regexp; */ public class ReplaceRegExp extends Task { - - private FileUtils fileUtils = FileUtils.newFileUtils(); private boolean byline; private File file; @@ -263,7 +260,7 @@ public class ReplaceRegExp extends Task throws IOException, TaskException { File parentDir = new File( new File( f.getAbsolutePath() ).getParent() ); - File temp = fileUtils.createTempFile( "replace", ".txt", parentDir ); + File temp = File.createTempFile( "replace", ".txt", parentDir ); FileReader r = null; FileWriter w = null; diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java index 46461af44..dafab9625 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java @@ -20,12 +20,12 @@ import java.util.jar.JarFile; import java.util.jar.JarOutputStream; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; +import org.apache.avalon.excalibur.io.FileUtil; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.AntClassLoader; import org.apache.tools.ant.Project; import org.apache.tools.ant.taskdefs.Java; import org.apache.tools.ant.types.Path; -import org.apache.tools.ant.util.FileUtils; import org.xml.sax.InputSource; public class WeblogicDeploymentTool extends GenericDeploymentTool @@ -755,7 +755,7 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool { try { - FileUtils.newFileUtils().copyFile( sourceJar, destJar ); + FileUtil.copyFile( sourceJar, destJar ); if( !keepgenerated ) { sourceJar.delete(); diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/i18n/Translate.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/i18n/Translate.java index 82f7c7377..cf10679e7 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/i18n/Translate.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/i18n/Translate.java @@ -18,12 +18,12 @@ import java.io.OutputStreamWriter; import java.util.Hashtable; import java.util.Locale; import java.util.Vector; +import org.apache.avalon.excalibur.io.FileUtil; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.Project; import org.apache.tools.ant.taskdefs.MatchingTask; import org.apache.tools.ant.types.FileSet; -import org.apache.tools.ant.util.FileUtils; /** * Translates text embedded in files using Resource Bundle files. @@ -40,10 +40,6 @@ public class Translate extends MatchingTask * Holds key value pairs loaded from resource bundle file */ private Hashtable resourceMap = new Hashtable(); - /** - * Used to resolve file names. - */ - private FileUtils fileUtils = FileUtils.newFileUtils(); /** * Last Modified Timestamp of resource bundle file being used. */ @@ -528,7 +524,7 @@ public class Translate extends MatchingTask { try { - File dest = fileUtils.resolveFile( toDir, srcFiles[ j ] ); + File dest = FileUtil.resolveFile( toDir, srcFiles[ j ] ); //Make sure parent dirs exist, else, create them. try { diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java index 9cbd5d771..891e1b0e9 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java @@ -15,11 +15,11 @@ import java.io.InputStream; import java.net.URL; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; +import org.apache.avalon.excalibur.io.FileUtil; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.Project; import org.apache.tools.ant.Task; import org.apache.tools.ant.types.EnumeratedAttribute; -import org.apache.tools.ant.util.FileUtils; import org.w3c.dom.Document; import org.w3c.dom.Element; @@ -215,12 +215,11 @@ public class AggregateTransformer // set the destination directory relative from the project if needed. if( toDir == null ) { - toDir = FileUtils.newFileUtils().resolveFile( task.getBaseDirectory(), "." ); + toDir = FileUtil.resolveFile( task.getBaseDirectory(), "." ); } else if( !toDir.isAbsolute() ) { - toDir = FileUtils.newFileUtils(). - resolveFile( task.getBaseDirectory(), toDir.getPath() ); + toDir = FileUtil.resolveFile( task.getBaseDirectory(), toDir.getPath() ); } } diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLResultAggregator.java b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLResultAggregator.java index ef3d88354..3493690d2 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLResultAggregator.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/junit/XMLResultAggregator.java @@ -17,13 +17,13 @@ import java.util.Enumeration; import java.util.Vector; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; +import org.apache.avalon.excalibur.io.FileUtil; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.Project; import org.apache.tools.ant.Task; import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.util.DOMElementWriter; -import org.apache.tools.ant.util.FileUtils; import org.apache.tools.ant.util.StringUtils; import org.w3c.dom.Document; import org.w3c.dom.Element; @@ -184,7 +184,7 @@ public class XMLResultAggregator extends Task implements XMLConstants } if( toDir == null ) { - toDir = FileUtils.newFileUtils().resolveFile( project.getBaseDir(), DEFAULT_DIR ); + toDir = FileUtil.resolveFile( project.getBaseDir(), DEFAULT_DIR ); } return new File( toDir, toFile ); } @@ -210,7 +210,7 @@ public class XMLResultAggregator extends Task implements XMLConstants if( pathname.endsWith( ".xml" ) ) { File file = new File( ds.getBasedir(), pathname ); - file = FileUtils.newFileUtils(). + file = FileUtil. resolveFile( project.getBaseDir(), file.getPath() ); v.addElement( file ); } diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/types/Path.java b/proposal/myrmidon/src/main/org/apache/tools/ant/types/Path.java index 428acbd92..2eb1c9817 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/types/Path.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/types/Path.java @@ -12,11 +12,11 @@ import java.util.Enumeration; import java.util.Locale; import java.util.Stack; import java.util.Vector; +import org.apache.avalon.excalibur.io.FileUtil; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.PathTokenizer; import org.apache.tools.ant.Project; -import org.apache.tools.ant.util.FileUtils; /** * This object represents a path as used by CLASSPATH or PATH environment @@ -196,8 +196,7 @@ public class Path { if( project != null ) { - File f = FileUtils.newFileUtils(). - resolveFile( project.getBaseDir(), relativeName ); + File f = FileUtil.resolveFile( project.getBaseDir(), relativeName ); return f.getAbsolutePath(); } return relativeName; diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/util/FileUtils.java b/proposal/myrmidon/src/main/org/apache/tools/ant/util/FileUtils.java index c7d062aee..8cbf67368 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/util/FileUtils.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/util/FileUtils.java @@ -17,8 +17,6 @@ import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; -import java.text.DecimalFormat; -import java.util.Random; import java.util.Stack; import java.util.StringTokenizer; import org.apache.myrmidon.api.TaskException; @@ -37,15 +35,6 @@ import org.apache.tools.ant.types.FilterSetCollection; public class FileUtils { - private static Random rand = new Random( System.currentTimeMillis() ); - - /** - * Empty constructor. - */ - private FileUtils() - { - } - /** * Factory method. * @@ -132,54 +121,6 @@ public class FileUtils } } - /** - * Convienence method to copy a file from a source to a destination. No - * filtering is performed. - * - * @param sourceFile Description of Parameter - * @param destFile Description of Parameter - * @throws IOException - */ - public void copyFile( String sourceFile, String destFile ) - throws IOException, TaskException - { - copyFile( new File( sourceFile ), new File( destFile ), null, false, false ); - } - - /** - * Convienence method to copy a file from a source to a destination - * specifying if token filtering must be used. - * - * @param sourceFile Description of Parameter - * @param destFile Description of Parameter - * @param filters Description of Parameter - * @throws IOException - */ - public void copyFile( String sourceFile, String destFile, FilterSetCollection filters ) - throws IOException, TaskException - { - copyFile( new File( sourceFile ), new File( destFile ), filters, false, false ); - } - - /** - * Convienence method to copy a file from a source to a destination - * specifying if token filtering must be used and if source files may - * overwrite newer destination files. - * - * @param sourceFile Description of Parameter - * @param destFile Description of Parameter - * @param filters Description of Parameter - * @param overwrite Description of Parameter - * @throws IOException - */ - public void copyFile( String sourceFile, String destFile, FilterSetCollection filters, - boolean overwrite ) - throws IOException, TaskException - { - copyFile( new File( sourceFile ), new File( destFile ), filters, - overwrite, false ); - } - /** * Convienence method to copy a file from a source to a destination * specifying if token filtering must be used, if source files may overwrite @@ -194,84 +135,14 @@ public class FileUtils * @param preserveLastModified Description of Parameter * @throws IOException */ - public void copyFile( String sourceFile, String destFile, FilterSetCollection filters, - boolean overwrite, boolean preserveLastModified ) - throws IOException, TaskException - { - copyFile( new File( sourceFile ), new File( destFile ), filters, - overwrite, preserveLastModified ); - } - - /** - * Convienence method to copy a file from a source to a destination. No - * filtering is performed. - * - * @param sourceFile Description of Parameter - * @param destFile Description of Parameter - * @throws IOException - */ - public void copyFile( File sourceFile, File destFile ) - throws IOException, TaskException - { - copyFile( sourceFile, destFile, null, false, false ); - } - - /** - * Convienence method to copy a file from a source to a destination - * specifying if token filtering must be used. - * - * @param sourceFile Description of Parameter - * @param destFile Description of Parameter - * @param filters Description of Parameter - * @throws IOException - */ - public void copyFile( File sourceFile, File destFile, FilterSetCollection filters ) + public void copyFile( File sourceFile, + File destFile, + FilterSetCollection filters ) throws IOException, TaskException { - copyFile( sourceFile, destFile, filters, false, false ); - } - - /** - * Convienence method to copy a file from a source to a destination - * specifying if token filtering must be used and if source files may - * overwrite newer destination files. - * - * @param sourceFile Description of Parameter - * @param destFile Description of Parameter - * @param filters Description of Parameter - * @param overwrite Description of Parameter - * @throws IOException - */ - public void copyFile( File sourceFile, File destFile, FilterSetCollection filters, - boolean overwrite ) - throws IOException, TaskException - { - copyFile( sourceFile, destFile, filters, overwrite, false ); - } - - /** - * Convienence method to copy a file from a source to a destination - * specifying if token filtering must be used, if source files may overwrite - * newer destination files and the last modified time of destFile - * file should be made equal to the last modified time of sourceFile - * . - * - * @param sourceFile Description of Parameter - * @param destFile Description of Parameter - * @param filters Description of Parameter - * @param overwrite Description of Parameter - * @param preserveLastModified Description of Parameter - * @throws IOException - */ - public void copyFile( File sourceFile, File destFile, FilterSetCollection filters, - boolean overwrite, boolean preserveLastModified ) - throws IOException, TaskException - { - - if( overwrite || !destFile.exists() || + if( !destFile.exists() || destFile.lastModified() < sourceFile.lastModified() ) { - if( destFile.exists() && destFile.isFile() ) { destFile.delete(); @@ -327,54 +198,9 @@ public class FileUtils in.close(); out.close(); } - - if( preserveLastModified ) - { - destFile.setLastModified( sourceFile.lastModified() ); - } } } - /** - * Create a temporary file in a given directory.

- * - * The file denoted by the returned abstract pathname did not exist before - * this method was invoked, any subsequent invocation of this method will - * yield a different file name.

- * - * This method is different to File.createTempFile of JDK 1.2 as it doesn't - * create the file itself and doesn't use platform specific temporary - * directory when the parentDir attribute is null.

- * - * @param parentDir Directory to create the temporary file in - current - * working directory will be assumed if this parameter is null. - * @param prefix Description of Parameter - * @param suffix Description of Parameter - * @return Description of the Returned Value - * @since 1.8 - */ - public File createTempFile( String prefix, String suffix, File parentDir ) - { - - File result = null; - String parent = null; - if( parentDir != null ) - { - parent = parentDir.getPath(); - } - DecimalFormat fmt = new DecimalFormat( "#####" ); - synchronized( rand ) - { - do - { - result = new File( parent, - prefix + fmt.format( rand.nextInt() ) - + suffix ); - } while( result.exists() ); - } - return result; - } - /** * "normalize" the given absolute path.

* @@ -514,68 +340,5 @@ public class FileUtils } return new File( path ); } - - /** - * Interpret the filename as a file relative to the given file - unless the - * filename already represents an absolute filename. - * - * @param file the "reference" file for relative paths. This instance must - * be an absolute file and must not contain "./" or - * "../" sequences (same for \ instead of /). If it is null, - * this call is equivalent to new java.io.File(filename). - * @param filename a file name - * @return an absolute file that doesn't contain "./" or - * "../" sequences and uses the correct separator for the - * current platform. - */ - public File resolveFile( File file, String filename ) - throws TaskException - { - filename = filename.replace( '/', File.separatorChar ) - .replace( '\\', File.separatorChar ); - - // deal with absolute files - if( filename.startsWith( File.separator ) || - ( filename.length() >= 2 && - Character.isLetter( filename.charAt( 0 ) ) && - filename.charAt( 1 ) == ':' ) - ) - { - return normalize( filename ); - } - - if( file == null ) - { - return new File( filename ); - } - - File helpFile = new File( file.getAbsolutePath() ); - StringTokenizer tok = new StringTokenizer( filename, File.separator ); - while( tok.hasMoreTokens() ) - { - String part = tok.nextToken(); - if( part.equals( ".." ) ) - { - helpFile = helpFile.getParentFile(); - if( helpFile == null ) - { - String msg = "The file or path you specified (" - + filename + ") is invalid relative to " - + file.getPath(); - throw new TaskException( msg ); - } - } - else if( part.equals( "." ) ) - { - // Do nothing here - } - else - { - helpFile = new File( helpFile, part ); - } - } - - return new File( helpFile.getAbsolutePath() ); - } } diff --git a/proposal/myrmidon/src/main/org/apache/tools/ant/util/SourceFileScanner.java b/proposal/myrmidon/src/main/org/apache/tools/ant/util/SourceFileScanner.java index 5da62b76f..ca684dfa4 100644 --- a/proposal/myrmidon/src/main/org/apache/tools/ant/util/SourceFileScanner.java +++ b/proposal/myrmidon/src/main/org/apache/tools/ant/util/SourceFileScanner.java @@ -13,6 +13,7 @@ import org.apache.myrmidon.api.TaskException; import org.apache.myrmidon.framework.Os; import org.apache.tools.ant.Project; import org.apache.tools.ant.Task; +import org.apache.avalon.excalibur.io.FileUtil; /** * Utility class that collects the functionality of the various scanDir methods @@ -26,18 +27,14 @@ import org.apache.tools.ant.Task; */ public class SourceFileScanner { - - protected Task task; - - private FileUtils fileUtils; + private Task m_task; /** * @param task The task we should log messages through */ public SourceFileScanner( Task task ) { - this.task = task; - fileUtils = FileUtils.newFileUtils(); + this.m_task = task; } /** @@ -80,16 +77,16 @@ public class SourceFileScanner String[] targets = mapper.mapFileName( files[ i ] ); if( targets == null || targets.length == 0 ) { - task.log( files[ i ] + " skipped - don\'t know how to handle it", + m_task.log( files[ i ] + " skipped - don\'t know how to handle it", Project.MSG_VERBOSE ); continue; } - File src = fileUtils.resolveFile( srcDir, files[ i ] ); + File src = FileUtil.resolveFile( srcDir, files[ i ] ); if( src.lastModified() > now ) { - task.log( "Warning: " + files[ i ] + " modified in the future.", + m_task.log( "Warning: " + files[ i ] + " modified in the future.", Project.MSG_WARN ); } @@ -97,18 +94,18 @@ public class SourceFileScanner targetList.setLength( 0 ); for( int j = 0; !added && j < targets.length; j++ ) { - File dest = fileUtils.resolveFile( destDir, targets[ j ] ); + File dest = FileUtil.resolveFile( destDir, targets[ j ] ); if( !dest.exists() ) { - task.log( files[ i ] + " added as " + dest.getAbsolutePath() + " doesn\'t exist.", + m_task.log( files[ i ] + " added as " + dest.getAbsolutePath() + " doesn\'t exist.", Project.MSG_VERBOSE ); v.addElement( files[ i ] ); added = true; } else if( src.lastModified() > dest.lastModified() ) { - task.log( files[ i ] + " added as " + dest.getAbsolutePath() + " is outdated.", + m_task.log( files[ i ] + " added as " + dest.getAbsolutePath() + " is outdated.", Project.MSG_VERBOSE ); v.addElement( files[ i ] ); added = true; @@ -125,7 +122,7 @@ public class SourceFileScanner if( !added ) { - task.log( files[ i ] + " omitted as " + targetList.toString() + m_task.log( files[ i ] + " omitted as " + targetList.toString() + ( targets.length == 1 ? " is" : " are " ) + " up to date.", Project.MSG_VERBOSE ); } diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/AntClassLoader.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/AntClassLoader.java index 9fe2e4e64..9363831ec 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/AntClassLoader.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/AntClassLoader.java @@ -21,9 +21,9 @@ import java.util.Hashtable; import java.util.Vector; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; +import org.apache.avalon.excalibur.io.FileUtil; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.types.Path; -import org.apache.tools.ant.util.FileUtils; /** * Used to load classes within ant with a different claspath from that used to @@ -421,7 +421,7 @@ public class AntClassLoader throws TaskException { File pathComponent - = project != null ? FileUtils.newFileUtils().resolveFile( project.getBaseDir(), pathElement ) + = project != null ? FileUtil.resolveFile( project.getBaseDir(), pathElement ) : new File( pathElement ); pathComponents.addElement( pathComponent ); } diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/Project.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/Project.java index e8f2f41e4..3f41f5447 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/Project.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/Project.java @@ -8,15 +8,12 @@ package org.apache.tools.ant; import java.io.File; -import java.lang.reflect.Modifier; import java.util.Enumeration; import java.util.Hashtable; -import java.util.Stack; import java.util.Vector; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.types.FilterSet; import org.apache.tools.ant.types.FilterSetCollection; -import org.apache.tools.ant.util.FileUtils; /** * Central representation of an Ant project. This class defines a Ant project diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/ProjectComponent.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/ProjectComponent.java index 64d834e0e..0fbba77a9 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/ProjectComponent.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/ProjectComponent.java @@ -7,10 +7,8 @@ */ package org.apache.tools.ant; -import java.io.File; import org.apache.myrmidon.api.AbstractTask; import org.apache.myrmidon.api.TaskException; -import org.apache.tools.ant.util.FileUtils; /** * Base class for components of a project, including tasks and data types. diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Available.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Available.java index 6efc7a7b8..4c3d374ab 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Available.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Available.java @@ -16,7 +16,6 @@ import org.apache.tools.ant.taskdefs.condition.Condition; import org.apache.tools.ant.types.EnumeratedAttribute; import org.apache.tools.ant.types.Path; import org.apache.tools.ant.types.Reference; -import org.apache.tools.ant.util.FileUtils; /** * Will set the given property if the requested resource is available at @@ -274,7 +273,6 @@ public class Available return false; } - FileUtils fileUtils = FileUtils.newFileUtils(); File parent = path.getParentFile(); // ** full-pathname specified == parent dir of path in list if( parent != null && parent.exists() diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Copy.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Copy.java index e7b6c4ed8..39468e440 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Copy.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Copy.java @@ -12,6 +12,7 @@ import java.io.IOException; import java.util.Enumeration; import java.util.Hashtable; import java.util.Vector; +import org.apache.avalon.excalibur.io.FileUtil; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.Project; @@ -61,12 +62,6 @@ public class Copy extends Task protected Mapper mapperElement = null; private Vector filterSets = new Vector(); - private FileUtils fileUtils; - - public Copy() - { - fileUtils = FileUtils.newFileUtils(); - } /** * Sets a single source file to copy. @@ -277,11 +272,6 @@ public class Copy extends Task } } - protected FileUtils getFileUtils() - { - return fileUtils; - } - /** * Get the filtersets being applied to this operation. * @@ -335,8 +325,8 @@ public class Copy extends Task if( fileCopyMap.size() > 0 ) { getLogger().info( "Copying " + fileCopyMap.size() + - " file" + ( fileCopyMap.size() == 1 ? "" : "s" ) + - " to " + destDir.getAbsolutePath() ); + " file" + ( fileCopyMap.size() == 1 ? "" : "s" ) + + " to " + destDir.getAbsolutePath() ); Enumeration e = fileCopyMap.keys(); while( e.hasMoreElements() ) @@ -363,8 +353,17 @@ public class Copy extends Task { executionFilters.addFilterSet( (FilterSet)filterEnum.nextElement() ); } - fileUtils.copyFile( fromFile, toFile, executionFilters, - forceOverwrite, preserveLastModified ); + final File src = new File( fromFile ); + final File dest = new File( toFile ); + if( forceOverwrite ) + { + FileUtil.forceDelete( dest ); + } + FileUtils.newFileUtils().copyFile( src, dest, executionFilters ); + if( preserveLastModified ) + { + dest.setLastModified( src.lastModified() ); + } } catch( IOException ioe ) { @@ -398,9 +397,9 @@ public class Copy extends Task if( count > 0 ) { getLogger().info( "Copied " + count + - " empty director" + - ( count == 1 ? "y" : "ies" ) + - " to " + destDir.getAbsolutePath() ); + " empty director" + + ( count == 1 ? "y" : "ies" ) + + " to " + destDir.getAbsolutePath() ); } } } diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Expand.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Expand.java index 743567f2c..909cf3c07 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Expand.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Expand.java @@ -17,12 +17,12 @@ import java.util.Date; import java.util.Vector; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; +import org.apache.avalon.excalibur.io.FileUtil; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.Project; import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.types.PatternSet; -import org.apache.tools.ant.util.FileUtils; /** * Unzip a file. @@ -115,8 +115,6 @@ public class Expand extends MatchingTask throw new TaskException( "Dest must be a directory." ); } - FileUtils fileUtils = FileUtils.newFileUtils(); - if( source != null ) { if( source.isDirectory() ) @@ -126,7 +124,7 @@ public class Expand extends MatchingTask } else { - expandFile( fileUtils, source, dest ); + expandFile( source, dest ); } } if( filesets.size() > 0 ) @@ -141,7 +139,7 @@ public class Expand extends MatchingTask for( int i = 0; i < files.length; ++i ) { File file = new File( fromDir, files[ i ] ); - expandFile( fileUtils, file, dest ); + expandFile( file, dest ); } } } @@ -150,7 +148,7 @@ public class Expand extends MatchingTask /* * This method is to be overridden by extending unarchival tasks. */ - protected void expandFile( FileUtils fileUtils, File srcF, File dir ) + protected void expandFile( File srcF, File dir ) throws TaskException { ZipInputStream zis = null; @@ -162,7 +160,7 @@ public class Expand extends MatchingTask while( ( ze = zis.getNextEntry() ) != null ) { - extractFile( fileUtils, srcF, dir, zis, + extractFile( srcF, dir, zis, ze.getName(), new Date( ze.getTime() ), ze.isDirectory() ); @@ -189,7 +187,7 @@ public class Expand extends MatchingTask } } - protected void extractFile( FileUtils fileUtils, File srcF, File dir, + protected void extractFile( File srcF, File dir, InputStream compressedInputStream, String entryName, Date entryDate, boolean isDirectory ) @@ -237,7 +235,7 @@ public class Expand extends MatchingTask } } - File f = fileUtils.resolveFile( dir, entryName ); + File f = FileUtil.resolveFile( dir, entryName ); try { if( !overwrite && f.exists() diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/FixCRLF.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/FixCRLF.java index 0740c0900..4b9a9eb2a 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/FixCRLF.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/FixCRLF.java @@ -101,8 +101,6 @@ public class FixCRLF extends MatchingTask private boolean javafiles = false; private File destDir = null; - private FileUtils fileUtils = FileUtils.newFileUtils(); - /** * Encoding to assume for the files */ @@ -578,7 +576,7 @@ public class FixCRLF extends MatchingTask // Set up the output Writer try { - tmpFile = fileUtils.createTempFile( "fixcrlf", "", destD ); + tmpFile = File.createTempFile( "fixcrlf", "", destD ); Writer writer = ( encoding == null ) ? new FileWriter( tmpFile ) : new OutputStreamWriter( new FileOutputStream( tmpFile ), encoding ); outWriter = new BufferedWriter( writer ); @@ -761,7 +759,7 @@ public class FixCRLF extends MatchingTask { // Compare the destination with the temp file log( "destFile exists", Project.MSG_DEBUG ); - if( !fileUtils.contentEquals( destFile, tmpFile ) ) + if( !FileUtils.newFileUtils().contentEquals( destFile, tmpFile ) ) { log( destFile + " is being written", Project.MSG_DEBUG ); if( !destFile.delete() ) diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Javadoc.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Javadoc.java index e7be887f8..e152dfecd 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Javadoc.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Javadoc.java @@ -21,8 +21,8 @@ import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.Project; import org.apache.tools.ant.Task; import org.apache.tools.ant.taskdefs.exec.Execute; -import org.apache.tools.ant.taskdefs.exec.PumpStreamHandler; import org.apache.tools.ant.taskdefs.exec.LogOutputStream; +import org.apache.tools.ant.taskdefs.exec.PumpStreamHandler; import org.apache.tools.ant.types.Commandline; import org.apache.tools.ant.types.EnumeratedAttribute; import org.apache.tools.ant.types.FileSet; @@ -95,8 +95,6 @@ public class Javadoc extends Task private boolean useExternalFile = false; private File tmpList = null; - private FileUtils fileUtils = FileUtils.newFileUtils(); - public void setAccess( AccessType at ) { cmd.createArgument().setValue( "-" + at.getValue() ); @@ -873,7 +871,7 @@ public class Javadoc extends Task { if( tmpList == null ) { - tmpList = fileUtils.createTempFile( "javadoc", "", null ); + tmpList = File.createTempFile( "javadoc", "", getBaseDirectory() ); toExecute.createArgument().setValue( "@" + tmpList.getAbsolutePath() ); } srcListWriter = new PrintWriter( new FileWriter( tmpList.getAbsolutePath(), @@ -1122,7 +1120,7 @@ public class Javadoc extends Task { if( useExternalFile ) { - tmpList = fileUtils.createTempFile( "javadoc", "", null ); + tmpList = File.createTempFile( "javadoc", "", getBaseDirectory() ); toExecute.createArgument().setValue( "@" + tmpList.getAbsolutePath() ); packageListWriter = new PrintWriter( new FileWriter( tmpList ) ); } diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Move.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Move.java index 11fc15fc1..710917472 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Move.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Move.java @@ -10,8 +10,10 @@ package org.apache.tools.ant.taskdefs; import java.io.File; import java.io.IOException; import java.util.Enumeration; +import org.apache.avalon.excalibur.io.FileUtil; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.Project; +import org.apache.tools.ant.util.FileUtils; import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.types.FilterSet; import org.apache.tools.ant.types.FilterSetCollection; @@ -106,7 +108,7 @@ public class Move extends Copy if( fileCopyMap.size() > 0 ) {// files to move getLogger().info( "Moving " + fileCopyMap.size() + " files to " + - destDir.getAbsolutePath() ); + destDir.getAbsolutePath() ); Enumeration e = fileCopyMap.keys(); while( e.hasMoreElements() ) @@ -156,8 +158,12 @@ public class Move extends Copy { executionFilters.addFilterSet( (FilterSet)filterEnum.nextElement() ); } - getFileUtils().copyFile( f, d, executionFilters, - forceOverwrite ); + + if( forceOverwrite ) + { + FileUtil.forceDelete( d ); + } + FileUtils.newFileUtils().copyFile( f, d, executionFilters ); f = new File( fromFile ); if( !f.delete() ) diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Replace.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Replace.java index 1e3882fff..2f6a44945 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Replace.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Replace.java @@ -55,8 +55,6 @@ public class Replace extends MatchingTask */ private String encoding = null; - private FileUtils fileUtils = FileUtils.newFileUtils(); - private int fileCount; private int replaceCount; @@ -295,8 +293,15 @@ public class Replace extends MatchingTask throw new TaskException( "Replace: source file " + src.getPath() + " doesn't exist" ); } - File temp = fileUtils.createTempFile( "rep", ".tmp", - src.getParentFile() ); + File temp = null; + try + { + temp = File.createTempFile( "rep", ".tmp", src.getParentFile() ); + } + catch( IOException ioe ) + { + throw new TaskException( ioe.toString(), ioe ); + } Reader reader = null; Writer writer = null; diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Rmic.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Rmic.java index 158e85c78..1af73afb2 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Rmic.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Rmic.java @@ -11,6 +11,7 @@ import java.io.File; import java.io.IOException; import java.rmi.Remote; import java.util.Vector; +import org.apache.avalon.excalibur.io.FileUtil; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.AntClassLoader; import org.apache.tools.ant.DirectoryScanner; @@ -688,7 +689,7 @@ public class Rmic extends MatchingTask } else { - FileUtils.newFileUtils().copyFile( oldFile, newFile ); + FileUtil.copyFile( oldFile, newFile ); } oldFile.delete(); } diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Touch.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Touch.java index b42eca079..2fe39ed33 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Touch.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Touch.java @@ -19,7 +19,6 @@ import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.Project; import org.apache.tools.ant.Task; import org.apache.tools.ant.types.FileSet; -import org.apache.tools.ant.util.FileUtils; /** * Touch a file and/or fileset(s) -- corresponds to the Unix touch command.

@@ -39,12 +38,6 @@ public class Touch extends Task private String dateTime; private File file; - private FileUtils fileUtils; - - public Touch() - { - fileUtils = FileUtils.newFileUtils(); - } /** * Date in the format MM/DD/YYYY HH:MM AM_PM. diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Untar.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Untar.java index 72cda75b4..3bdad1d31 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Untar.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Untar.java @@ -12,7 +12,6 @@ import java.io.FileInputStream; import java.io.IOException; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.Project; -import org.apache.tools.ant.util.FileUtils; import org.apache.tools.tar.TarEntry; import org.apache.tools.tar.TarInputStream; @@ -25,7 +24,7 @@ import org.apache.tools.tar.TarInputStream; public class Untar extends Expand { - protected void expandFile( FileUtils fileUtils, File srcF, File dir ) + protected void expandFile( File srcF, File dir ) throws TaskException { TarInputStream tis = null; @@ -38,7 +37,7 @@ public class Untar extends Expand while( ( te = tis.getNextEntry() ) != null ) { - extractFile( fileUtils, srcF, dir, tis, + extractFile( srcF, dir, tis, te.getName(), te.getModTime(), te.isDirectory() ); } diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Zip.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Zip.java index 5118d9b3a..e2607fd29 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Zip.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/Zip.java @@ -28,7 +28,6 @@ import org.apache.tools.ant.types.EnumeratedAttribute; import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.types.ZipFileSet; import org.apache.tools.ant.types.ZipScanner; -import org.apache.tools.ant.util.FileUtils; import org.apache.tools.ant.util.MergingMapper; import org.apache.tools.ant.util.SourceFileScanner; import org.apache.tools.zip.ZipEntry; @@ -235,9 +234,15 @@ public class Zip extends MatchingTask doUpdate = doUpdate && zipFile.exists(); if( doUpdate ) { - FileUtils fileUtils = FileUtils.newFileUtils(); - renamedFile = fileUtils.createTempFile( "zip", ".tmp", - zipFile.getParentFile() ); + try + { + renamedFile = File.createTempFile( "zip", ".tmp", + zipFile.getParentFile() ); + } + catch( final IOException ioe ) + { + throw new TaskException( ioe.toString(), ioe ); + } try { diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java index 6ba9f5478..1186cc5ed 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java @@ -13,12 +13,11 @@ import java.io.IOException; import java.io.PrintWriter; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.Project; -import org.apache.tools.ant.taskdefs.exec.Execute; import org.apache.tools.ant.taskdefs.Javac; +import org.apache.tools.ant.taskdefs.exec.Execute; import org.apache.tools.ant.taskdefs.exec.LogStreamHandler; import org.apache.tools.ant.types.Commandline; import org.apache.tools.ant.types.Path; -import org.apache.tools.ant.util.FileUtils; /** * This is the default implementation for the CompilerAdapter interface. @@ -39,7 +38,6 @@ public abstract class DefaultCompilerAdapter implements CompilerAdapter protected boolean depend = false; protected boolean verbose = false; - private FileUtils fileUtils = FileUtils.newFileUtils(); protected Javac attributes; protected Path bootclasspath; protected Path compileClasspath; @@ -400,7 +398,7 @@ public abstract class DefaultCompilerAdapter implements CompilerAdapter PrintWriter out = null; try { - tmpFile = fileUtils.createTempFile( "jikes", "", null ); + tmpFile = File.createTempFile( "jikes", "", new File( "." ) ); out = new PrintWriter( new FileWriter( tmpFile ) ); for( int i = firstFileName; i < args.length; i++ ) { diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/exec/Execute.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/exec/Execute.java index f916ba9dd..55011faf7 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/exec/Execute.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/exec/Execute.java @@ -16,12 +16,12 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Locale; import java.util.Vector; +import org.apache.avalon.excalibur.io.FileUtil; import org.apache.myrmidon.api.TaskException; import org.apache.myrmidon.framework.Os; import org.apache.tools.ant.Project; import org.apache.tools.ant.Task; import org.apache.tools.ant.types.Commandline; -import org.apache.tools.ant.util.FileUtils; /** * Runs an external program. @@ -817,7 +817,7 @@ public class Execute { throw new IOException( "Cannot locate antRun script: Property 'ant.home' not found" ); } - String antRun = FileUtils.newFileUtils(). + String antRun = FileUtil. resolveFile( project.getBaseDir(), antHome + File.separator + _script ).toString(); // Build the command @@ -883,7 +883,7 @@ public class Execute { throw new IOException( "Cannot locate antRun script: Property 'ant.home' not found" ); } - String antRun = FileUtils.newFileUtils(). + String antRun = FileUtil. resolveFile( project.getBaseDir(), antHome + File.separator + _script ).toString(); // Build the command diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/Cab.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/Cab.java index 37277b4a7..0ca4f675f 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/Cab.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/Cab.java @@ -18,11 +18,9 @@ import org.apache.myrmidon.api.TaskException; import org.apache.myrmidon.framework.Os; import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.Project; -import org.apache.tools.ant.taskdefs.exec.ExecTask; import org.apache.tools.ant.taskdefs.MatchingTask; -import org.apache.tools.ant.types.Commandline; +import org.apache.tools.ant.taskdefs.exec.ExecTask; import org.apache.tools.ant.types.FileSet; -import org.apache.tools.ant.util.FileUtils; /** * Create a CAB archive. @@ -39,7 +37,6 @@ public class Cab extends MatchingTask protected String archiveType = "cab"; - private FileUtils fileUtils = FileUtils.newFileUtils(); private File baseDir; private File cabFile; @@ -161,7 +158,7 @@ public class Cab extends MatchingTask if( !doVerbose ) { - outFile = fileUtils.createTempFile( "ant", "", null ); + outFile = File.createTempFile( "ant", "", getBaseDirectory() ); exec.setOutput( outFile ); } @@ -327,7 +324,7 @@ public class Cab extends MatchingTask protected File createListFile( Vector files ) throws IOException { - File listFile = fileUtils.createTempFile( "ant", "", null ); + File listFile = File.createTempFile( "ant", "", getBaseDirectory() ); PrintWriter writer = new PrintWriter( new FileOutputStream( listFile ) ); diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/NetRexxC.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/NetRexxC.java index f7bc2a8f2..a0e632351 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/NetRexxC.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/NetRexxC.java @@ -17,11 +17,11 @@ import java.util.Properties; import java.util.StringTokenizer; import java.util.Vector; import netrexx.lang.Rexx; +import org.apache.avalon.excalibur.io.FileUtil; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.Project; import org.apache.tools.ant.taskdefs.MatchingTask; -import org.apache.tools.ant.util.FileUtils; /** * Task to compile NetRexx source files. This task can take the following @@ -501,8 +501,8 @@ public class NetRexxC extends MatchingTask if( compileList.size() > 0 ) { getLogger().info( "Compiling " + compileList.size() + " source file" - + ( compileList.size() == 1 ? "" : "s" ) - + " to " + destDir ); + + ( compileList.size() == 1 ? "" : "s" ) + + " to " + destDir ); doNetRexxCompile(); } } @@ -611,8 +611,8 @@ public class NetRexxC extends MatchingTask if( filecopyList.size() > 0 ) { getLogger().info( "Copying " + filecopyList.size() + " file" - + ( filecopyList.size() == 1 ? "" : "s" ) - + " to " + destDir.getAbsolutePath() ); + + ( filecopyList.size() == 1 ? "" : "s" ) + + " to " + destDir.getAbsolutePath() ); Enumeration enum = filecopyList.keys(); while( enum.hasMoreElements() ) { @@ -620,7 +620,7 @@ public class NetRexxC extends MatchingTask String toFile = (String)filecopyList.get( fromFile ); try { - FileUtils.newFileUtils().copyFile( fromFile, toFile ); + FileUtil.copyFile( new File( fromFile ), new File( toFile ) ); } catch( IOException ioe ) { diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java index 901a56f2d..8aaa97087 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java @@ -23,7 +23,6 @@ import org.apache.tools.ant.Task; import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.types.RegularExpression; import org.apache.tools.ant.types.Substitution; -import org.apache.tools.ant.util.FileUtils; import org.apache.tools.ant.util.regexp.Regexp; /** @@ -73,8 +72,6 @@ import org.apache.tools.ant.util.regexp.Regexp; */ public class ReplaceRegExp extends Task { - - private FileUtils fileUtils = FileUtils.newFileUtils(); private boolean byline; private File file; @@ -263,7 +260,7 @@ public class ReplaceRegExp extends Task throws IOException, TaskException { File parentDir = new File( new File( f.getAbsolutePath() ).getParent() ); - File temp = fileUtils.createTempFile( "replace", ".txt", parentDir ); + File temp = File.createTempFile( "replace", ".txt", parentDir ); FileReader r = null; FileWriter w = null; diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java index 46461af44..dafab9625 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java @@ -20,12 +20,12 @@ import java.util.jar.JarFile; import java.util.jar.JarOutputStream; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; +import org.apache.avalon.excalibur.io.FileUtil; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.AntClassLoader; import org.apache.tools.ant.Project; import org.apache.tools.ant.taskdefs.Java; import org.apache.tools.ant.types.Path; -import org.apache.tools.ant.util.FileUtils; import org.xml.sax.InputSource; public class WeblogicDeploymentTool extends GenericDeploymentTool @@ -755,7 +755,7 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool { try { - FileUtils.newFileUtils().copyFile( sourceJar, destJar ); + FileUtil.copyFile( sourceJar, destJar ); if( !keepgenerated ) { sourceJar.delete(); diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/i18n/Translate.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/i18n/Translate.java index 82f7c7377..cf10679e7 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/i18n/Translate.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/i18n/Translate.java @@ -18,12 +18,12 @@ import java.io.OutputStreamWriter; import java.util.Hashtable; import java.util.Locale; import java.util.Vector; +import org.apache.avalon.excalibur.io.FileUtil; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.Project; import org.apache.tools.ant.taskdefs.MatchingTask; import org.apache.tools.ant.types.FileSet; -import org.apache.tools.ant.util.FileUtils; /** * Translates text embedded in files using Resource Bundle files. @@ -40,10 +40,6 @@ public class Translate extends MatchingTask * Holds key value pairs loaded from resource bundle file */ private Hashtable resourceMap = new Hashtable(); - /** - * Used to resolve file names. - */ - private FileUtils fileUtils = FileUtils.newFileUtils(); /** * Last Modified Timestamp of resource bundle file being used. */ @@ -528,7 +524,7 @@ public class Translate extends MatchingTask { try { - File dest = fileUtils.resolveFile( toDir, srcFiles[ j ] ); + File dest = FileUtil.resolveFile( toDir, srcFiles[ j ] ); //Make sure parent dirs exist, else, create them. try { diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java index 9cbd5d771..891e1b0e9 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer.java @@ -15,11 +15,11 @@ import java.io.InputStream; import java.net.URL; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; +import org.apache.avalon.excalibur.io.FileUtil; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.Project; import org.apache.tools.ant.Task; import org.apache.tools.ant.types.EnumeratedAttribute; -import org.apache.tools.ant.util.FileUtils; import org.w3c.dom.Document; import org.w3c.dom.Element; @@ -215,12 +215,11 @@ public class AggregateTransformer // set the destination directory relative from the project if needed. if( toDir == null ) { - toDir = FileUtils.newFileUtils().resolveFile( task.getBaseDirectory(), "." ); + toDir = FileUtil.resolveFile( task.getBaseDirectory(), "." ); } else if( !toDir.isAbsolute() ) { - toDir = FileUtils.newFileUtils(). - resolveFile( task.getBaseDirectory(), toDir.getPath() ); + toDir = FileUtil.resolveFile( task.getBaseDirectory(), toDir.getPath() ); } } diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/junit/XMLResultAggregator.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/junit/XMLResultAggregator.java index ef3d88354..3493690d2 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/junit/XMLResultAggregator.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/taskdefs/optional/junit/XMLResultAggregator.java @@ -17,13 +17,13 @@ import java.util.Enumeration; import java.util.Vector; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; +import org.apache.avalon.excalibur.io.FileUtil; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.Project; import org.apache.tools.ant.Task; import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.util.DOMElementWriter; -import org.apache.tools.ant.util.FileUtils; import org.apache.tools.ant.util.StringUtils; import org.w3c.dom.Document; import org.w3c.dom.Element; @@ -184,7 +184,7 @@ public class XMLResultAggregator extends Task implements XMLConstants } if( toDir == null ) { - toDir = FileUtils.newFileUtils().resolveFile( project.getBaseDir(), DEFAULT_DIR ); + toDir = FileUtil.resolveFile( project.getBaseDir(), DEFAULT_DIR ); } return new File( toDir, toFile ); } @@ -210,7 +210,7 @@ public class XMLResultAggregator extends Task implements XMLConstants if( pathname.endsWith( ".xml" ) ) { File file = new File( ds.getBasedir(), pathname ); - file = FileUtils.newFileUtils(). + file = FileUtil. resolveFile( project.getBaseDir(), file.getPath() ); v.addElement( file ); } diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/types/Path.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/types/Path.java index 428acbd92..2eb1c9817 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/types/Path.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/types/Path.java @@ -12,11 +12,11 @@ import java.util.Enumeration; import java.util.Locale; import java.util.Stack; import java.util.Vector; +import org.apache.avalon.excalibur.io.FileUtil; import org.apache.myrmidon.api.TaskException; import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.PathTokenizer; import org.apache.tools.ant.Project; -import org.apache.tools.ant.util.FileUtils; /** * This object represents a path as used by CLASSPATH or PATH environment @@ -196,8 +196,7 @@ public class Path { if( project != null ) { - File f = FileUtils.newFileUtils(). - resolveFile( project.getBaseDir(), relativeName ); + File f = FileUtil.resolveFile( project.getBaseDir(), relativeName ); return f.getAbsolutePath(); } return relativeName; diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/util/FileUtils.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/util/FileUtils.java index c7d062aee..8cbf67368 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/util/FileUtils.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/util/FileUtils.java @@ -17,8 +17,6 @@ import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; -import java.text.DecimalFormat; -import java.util.Random; import java.util.Stack; import java.util.StringTokenizer; import org.apache.myrmidon.api.TaskException; @@ -37,15 +35,6 @@ import org.apache.tools.ant.types.FilterSetCollection; public class FileUtils { - private static Random rand = new Random( System.currentTimeMillis() ); - - /** - * Empty constructor. - */ - private FileUtils() - { - } - /** * Factory method. * @@ -132,54 +121,6 @@ public class FileUtils } } - /** - * Convienence method to copy a file from a source to a destination. No - * filtering is performed. - * - * @param sourceFile Description of Parameter - * @param destFile Description of Parameter - * @throws IOException - */ - public void copyFile( String sourceFile, String destFile ) - throws IOException, TaskException - { - copyFile( new File( sourceFile ), new File( destFile ), null, false, false ); - } - - /** - * Convienence method to copy a file from a source to a destination - * specifying if token filtering must be used. - * - * @param sourceFile Description of Parameter - * @param destFile Description of Parameter - * @param filters Description of Parameter - * @throws IOException - */ - public void copyFile( String sourceFile, String destFile, FilterSetCollection filters ) - throws IOException, TaskException - { - copyFile( new File( sourceFile ), new File( destFile ), filters, false, false ); - } - - /** - * Convienence method to copy a file from a source to a destination - * specifying if token filtering must be used and if source files may - * overwrite newer destination files. - * - * @param sourceFile Description of Parameter - * @param destFile Description of Parameter - * @param filters Description of Parameter - * @param overwrite Description of Parameter - * @throws IOException - */ - public void copyFile( String sourceFile, String destFile, FilterSetCollection filters, - boolean overwrite ) - throws IOException, TaskException - { - copyFile( new File( sourceFile ), new File( destFile ), filters, - overwrite, false ); - } - /** * Convienence method to copy a file from a source to a destination * specifying if token filtering must be used, if source files may overwrite @@ -194,84 +135,14 @@ public class FileUtils * @param preserveLastModified Description of Parameter * @throws IOException */ - public void copyFile( String sourceFile, String destFile, FilterSetCollection filters, - boolean overwrite, boolean preserveLastModified ) - throws IOException, TaskException - { - copyFile( new File( sourceFile ), new File( destFile ), filters, - overwrite, preserveLastModified ); - } - - /** - * Convienence method to copy a file from a source to a destination. No - * filtering is performed. - * - * @param sourceFile Description of Parameter - * @param destFile Description of Parameter - * @throws IOException - */ - public void copyFile( File sourceFile, File destFile ) - throws IOException, TaskException - { - copyFile( sourceFile, destFile, null, false, false ); - } - - /** - * Convienence method to copy a file from a source to a destination - * specifying if token filtering must be used. - * - * @param sourceFile Description of Parameter - * @param destFile Description of Parameter - * @param filters Description of Parameter - * @throws IOException - */ - public void copyFile( File sourceFile, File destFile, FilterSetCollection filters ) + public void copyFile( File sourceFile, + File destFile, + FilterSetCollection filters ) throws IOException, TaskException { - copyFile( sourceFile, destFile, filters, false, false ); - } - - /** - * Convienence method to copy a file from a source to a destination - * specifying if token filtering must be used and if source files may - * overwrite newer destination files. - * - * @param sourceFile Description of Parameter - * @param destFile Description of Parameter - * @param filters Description of Parameter - * @param overwrite Description of Parameter - * @throws IOException - */ - public void copyFile( File sourceFile, File destFile, FilterSetCollection filters, - boolean overwrite ) - throws IOException, TaskException - { - copyFile( sourceFile, destFile, filters, overwrite, false ); - } - - /** - * Convienence method to copy a file from a source to a destination - * specifying if token filtering must be used, if source files may overwrite - * newer destination files and the last modified time of destFile - * file should be made equal to the last modified time of sourceFile - * . - * - * @param sourceFile Description of Parameter - * @param destFile Description of Parameter - * @param filters Description of Parameter - * @param overwrite Description of Parameter - * @param preserveLastModified Description of Parameter - * @throws IOException - */ - public void copyFile( File sourceFile, File destFile, FilterSetCollection filters, - boolean overwrite, boolean preserveLastModified ) - throws IOException, TaskException - { - - if( overwrite || !destFile.exists() || + if( !destFile.exists() || destFile.lastModified() < sourceFile.lastModified() ) { - if( destFile.exists() && destFile.isFile() ) { destFile.delete(); @@ -327,54 +198,9 @@ public class FileUtils in.close(); out.close(); } - - if( preserveLastModified ) - { - destFile.setLastModified( sourceFile.lastModified() ); - } } } - /** - * Create a temporary file in a given directory.

- * - * The file denoted by the returned abstract pathname did not exist before - * this method was invoked, any subsequent invocation of this method will - * yield a different file name.

- * - * This method is different to File.createTempFile of JDK 1.2 as it doesn't - * create the file itself and doesn't use platform specific temporary - * directory when the parentDir attribute is null.

- * - * @param parentDir Directory to create the temporary file in - current - * working directory will be assumed if this parameter is null. - * @param prefix Description of Parameter - * @param suffix Description of Parameter - * @return Description of the Returned Value - * @since 1.8 - */ - public File createTempFile( String prefix, String suffix, File parentDir ) - { - - File result = null; - String parent = null; - if( parentDir != null ) - { - parent = parentDir.getPath(); - } - DecimalFormat fmt = new DecimalFormat( "#####" ); - synchronized( rand ) - { - do - { - result = new File( parent, - prefix + fmt.format( rand.nextInt() ) - + suffix ); - } while( result.exists() ); - } - return result; - } - /** * "normalize" the given absolute path.

* @@ -514,68 +340,5 @@ public class FileUtils } return new File( path ); } - - /** - * Interpret the filename as a file relative to the given file - unless the - * filename already represents an absolute filename. - * - * @param file the "reference" file for relative paths. This instance must - * be an absolute file and must not contain "./" or - * "../" sequences (same for \ instead of /). If it is null, - * this call is equivalent to new java.io.File(filename). - * @param filename a file name - * @return an absolute file that doesn't contain "./" or - * "../" sequences and uses the correct separator for the - * current platform. - */ - public File resolveFile( File file, String filename ) - throws TaskException - { - filename = filename.replace( '/', File.separatorChar ) - .replace( '\\', File.separatorChar ); - - // deal with absolute files - if( filename.startsWith( File.separator ) || - ( filename.length() >= 2 && - Character.isLetter( filename.charAt( 0 ) ) && - filename.charAt( 1 ) == ':' ) - ) - { - return normalize( filename ); - } - - if( file == null ) - { - return new File( filename ); - } - - File helpFile = new File( file.getAbsolutePath() ); - StringTokenizer tok = new StringTokenizer( filename, File.separator ); - while( tok.hasMoreTokens() ) - { - String part = tok.nextToken(); - if( part.equals( ".." ) ) - { - helpFile = helpFile.getParentFile(); - if( helpFile == null ) - { - String msg = "The file or path you specified (" - + filename + ") is invalid relative to " - + file.getPath(); - throw new TaskException( msg ); - } - } - else if( part.equals( "." ) ) - { - // Do nothing here - } - else - { - helpFile = new File( helpFile, part ); - } - } - - return new File( helpFile.getAbsolutePath() ); - } } diff --git a/proposal/myrmidon/src/todo/org/apache/tools/ant/util/SourceFileScanner.java b/proposal/myrmidon/src/todo/org/apache/tools/ant/util/SourceFileScanner.java index 5da62b76f..ca684dfa4 100644 --- a/proposal/myrmidon/src/todo/org/apache/tools/ant/util/SourceFileScanner.java +++ b/proposal/myrmidon/src/todo/org/apache/tools/ant/util/SourceFileScanner.java @@ -13,6 +13,7 @@ import org.apache.myrmidon.api.TaskException; import org.apache.myrmidon.framework.Os; import org.apache.tools.ant.Project; import org.apache.tools.ant.Task; +import org.apache.avalon.excalibur.io.FileUtil; /** * Utility class that collects the functionality of the various scanDir methods @@ -26,18 +27,14 @@ import org.apache.tools.ant.Task; */ public class SourceFileScanner { - - protected Task task; - - private FileUtils fileUtils; + private Task m_task; /** * @param task The task we should log messages through */ public SourceFileScanner( Task task ) { - this.task = task; - fileUtils = FileUtils.newFileUtils(); + this.m_task = task; } /** @@ -80,16 +77,16 @@ public class SourceFileScanner String[] targets = mapper.mapFileName( files[ i ] ); if( targets == null || targets.length == 0 ) { - task.log( files[ i ] + " skipped - don\'t know how to handle it", + m_task.log( files[ i ] + " skipped - don\'t know how to handle it", Project.MSG_VERBOSE ); continue; } - File src = fileUtils.resolveFile( srcDir, files[ i ] ); + File src = FileUtil.resolveFile( srcDir, files[ i ] ); if( src.lastModified() > now ) { - task.log( "Warning: " + files[ i ] + " modified in the future.", + m_task.log( "Warning: " + files[ i ] + " modified in the future.", Project.MSG_WARN ); } @@ -97,18 +94,18 @@ public class SourceFileScanner targetList.setLength( 0 ); for( int j = 0; !added && j < targets.length; j++ ) { - File dest = fileUtils.resolveFile( destDir, targets[ j ] ); + File dest = FileUtil.resolveFile( destDir, targets[ j ] ); if( !dest.exists() ) { - task.log( files[ i ] + " added as " + dest.getAbsolutePath() + " doesn\'t exist.", + m_task.log( files[ i ] + " added as " + dest.getAbsolutePath() + " doesn\'t exist.", Project.MSG_VERBOSE ); v.addElement( files[ i ] ); added = true; } else if( src.lastModified() > dest.lastModified() ) { - task.log( files[ i ] + " added as " + dest.getAbsolutePath() + " is outdated.", + m_task.log( files[ i ] + " added as " + dest.getAbsolutePath() + " is outdated.", Project.MSG_VERBOSE ); v.addElement( files[ i ] ); added = true; @@ -125,7 +122,7 @@ public class SourceFileScanner if( !added ) { - task.log( files[ i ] + " omitted as " + targetList.toString() + m_task.log( files[ i ] + " omitted as " + targetList.toString() + ( targets.length == 1 ? " is" : " are " ) + " up to date.", Project.MSG_VERBOSE ); }