git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@277276 13f79535-47bb-0310-9956-ffa450edef68master
@@ -1,5 +1,5 @@ | |||||
/* | /* | ||||
* Copyright 2000-2004 The Apache Software Foundation | |||||
* Copyright 2000-2005 The Apache Software Foundation | |||||
* | * | ||||
* Licensed under the Apache License, Version 2.0 (the "License"); | * Licensed under the Apache License, Version 2.0 (the "License"); | ||||
* you may not use this file except in compliance with the License. | * you may not use this file except in compliance with the License. | ||||
@@ -84,7 +84,7 @@ public class Copy extends Task { | |||||
* Copy task constructor. | * Copy task constructor. | ||||
*/ | */ | ||||
public Copy() { | public Copy() { | ||||
fileUtils = FileUtils.newFileUtils(); | |||||
fileUtils = FileUtils.getFileUtils(); | |||||
granularity = fileUtils.getFileTimestampGranularity(); | granularity = fileUtils.getFileTimestampGranularity(); | ||||
} | } | ||||
@@ -1,5 +1,5 @@ | |||||
/* | /* | ||||
* Copyright 2001-2002,2004 The Apache Software Foundation | |||||
* Copyright 2001-2005 The Apache Software Foundation | |||||
* | * | ||||
* Licensed under the Apache License, Version 2.0 (the "License"); | * Licensed under the Apache License, Version 2.0 (the "License"); | ||||
* you may not use this file except in compliance with the License. | * you may not use this file except in compliance with the License. | ||||
@@ -27,6 +27,7 @@ import org.apache.tools.ant.Project; | |||||
import org.apache.tools.ant.taskdefs.condition.Os; | import org.apache.tools.ant.taskdefs.condition.Os; | ||||
import org.apache.tools.ant.types.FileList; | import org.apache.tools.ant.types.FileList; | ||||
import org.apache.tools.ant.types.FileSet; | import org.apache.tools.ant.types.FileSet; | ||||
import org.apache.tools.ant.util.FileUtils; | |||||
/** | /** | ||||
* Examines and removes out of date target files. If any of the target files | * Examines and removes out of date target files. If any of the target files | ||||
@@ -134,13 +135,10 @@ public class DependSet extends MatchingTask { | |||||
long now = (new Date()).getTime(); | long now = (new Date()).getTime(); | ||||
/* | /* | ||||
If we're on Windows, we have to munge the time up to 2 secs to | |||||
be able to check file modification times. | |||||
(Windows has a max resolution of two secs for modification times) | |||||
We have to munge the time to allow for the filesystem time | |||||
granularity. | |||||
*/ | */ | ||||
if (Os.isFamily("windows")) { | |||||
now += 2000; | |||||
} | |||||
now += FileUtils.getFileUtils().getFileTimestampGranularity(); | |||||
// | // | ||||
// Grab all the target files specified via filesets | // Grab all the target files specified via filesets | ||||
@@ -1,5 +1,5 @@ | |||||
/* | /* | ||||
* Copyright 2002-2004 The Apache Software Foundation | |||||
* Copyright 2002-2005 The Apache Software Foundation | |||||
* | * | ||||
* Licensed under the Apache License, Version 2.0 (the "License"); | * Licensed under the Apache License, Version 2.0 (the "License"); | ||||
* you may not use this file except in compliance with the License. | * you may not use this file except in compliance with the License. | ||||
@@ -27,6 +27,7 @@ import org.apache.tools.ant.Project; | |||||
import org.apache.tools.ant.taskdefs.condition.Os; | import org.apache.tools.ant.taskdefs.condition.Os; | ||||
import org.apache.tools.ant.types.EnumeratedAttribute; | import org.apache.tools.ant.types.EnumeratedAttribute; | ||||
import org.apache.tools.ant.types.Parameter; | import org.apache.tools.ant.types.Parameter; | ||||
import org.apache.tools.ant.util.FileUtils; | |||||
/** | /** | ||||
* Selector that chooses files based on their last modified date. | * Selector that chooses files based on their last modified date. | ||||
@@ -38,7 +39,7 @@ public class DateSelector extends BaseExtendSelector { | |||||
private long millis = -1; | private long millis = -1; | ||||
private String dateTime = null; | private String dateTime = null; | ||||
private boolean includeDirs = false; | private boolean includeDirs = false; | ||||
private int granularity = 0; | |||||
private long granularity = 0; | |||||
private int cmp = 2; | private int cmp = 2; | ||||
private String pattern; | private String pattern; | ||||
/** Key to used for parameterized custom selector */ | /** Key to used for parameterized custom selector */ | ||||
@@ -59,9 +60,7 @@ public class DateSelector extends BaseExtendSelector { | |||||
* | * | ||||
*/ | */ | ||||
public DateSelector() { | public DateSelector() { | ||||
if (Os.isFamily("dos")) { | |||||
granularity = 2000; | |||||
} | |||||
granularity = FileUtils.getFileUtils().getFileTimestampGranularity(); | |||||
} | } | ||||
/** | /** | ||||
@@ -1,5 +1,5 @@ | |||||
/* | /* | ||||
* Copyright 2000-2004 The Apache Software Foundation | |||||
* Copyright 2000-2005 The Apache Software Foundation | |||||
* | * | ||||
* Licensed under the Apache License, Version 2.0 (the "License"); | * Licensed under the Apache License, Version 2.0 (the "License"); | ||||
* you may not use this file except in compliance with the License. | * you may not use this file except in compliance with the License. | ||||
@@ -40,7 +40,7 @@ public abstract class MappingSelector extends BaseSelector { | |||||
* | * | ||||
*/ | */ | ||||
public MappingSelector() { | public MappingSelector() { | ||||
granularity = (int) FileUtils.newFileUtils().getFileTimestampGranularity(); | |||||
granularity = (int) FileUtils.getFileUtils().getFileTimestampGranularity(); | |||||
} | } | ||||
@@ -128,8 +128,8 @@ public abstract class MappingSelector extends BaseSelector { | |||||
/** | /** | ||||
* Sets the number of milliseconds leeway we will give before we consider | * Sets the number of milliseconds leeway we will give before we consider | ||||
* a file out of date. Defaults to 2000 on MS-DOS derivatives as the FAT | |||||
* file system. | |||||
* a file out of date. Defaults to 2000 on MS-DOS derivatives and 1000 on | |||||
* others. | |||||
* @param granularity the leeway in milliseconds | * @param granularity the leeway in milliseconds | ||||
*/ | */ | ||||
public void setGranularity(int granularity) { | public void setGranularity(int granularity) { | ||||
@@ -1,5 +1,5 @@ | |||||
/* | /* | ||||
* Copyright 2001-2004 The Apache Software Foundation | |||||
* Copyright 2001-2005 The Apache Software Foundation | |||||
* | * | ||||
* Licensed under the Apache License, Version 2.0 (the "License"); | * Licensed under the Apache License, Version 2.0 (the "License"); | ||||
* you may not use this file except in compliance with the License. | * you may not use this file except in compliance with the License. | ||||
@@ -58,11 +58,14 @@ import org.apache.tools.ant.launch.Locator; | |||||
*/ | */ | ||||
public class FileUtils { | public class FileUtils { | ||||
private static final FileUtils PRIMARY_INSTANCE = new FileUtils(); | |||||
//get some non-crypto-grade randomness from various places. | //get some non-crypto-grade randomness from various places. | ||||
private static Random rand = new Random(System.currentTimeMillis() | private static Random rand = new Random(System.currentTimeMillis() | ||||
+ Runtime.getRuntime().freeMemory()); | + Runtime.getRuntime().freeMemory()); | ||||
private boolean onNetWare = Os.isFamily("netware"); | |||||
private static boolean onNetWare = Os.isFamily("netware"); | |||||
// for toURI | // for toURI | ||||
private static boolean[] isSpecial = new boolean[256]; | private static boolean[] isSpecial = new boolean[256]; | ||||
@@ -106,11 +109,21 @@ public class FileUtils { | |||||
* Factory method. | * Factory method. | ||||
* | * | ||||
* @return a new instance of FileUtils. | * @return a new instance of FileUtils. | ||||
* @deprecated Use getFileUtils instead, FileUtils do not have state. | |||||
*/ | */ | ||||
public static FileUtils newFileUtils() { | public static FileUtils newFileUtils() { | ||||
return new FileUtils(); | return new FileUtils(); | ||||
} | } | ||||
/** | |||||
* Method to retrieve The FileUtils, which is shared by all users of this | |||||
* method. | |||||
* @return an instance of FileUtils. | |||||
*/ | |||||
public static FileUtils getFileUtils() { | |||||
return PRIMARY_INSTANCE; | |||||
} | |||||
/** | /** | ||||
* Empty constructor. | * Empty constructor. | ||||
*/ | */ | ||||
@@ -1356,7 +1369,6 @@ public class FileUtils { | |||||
return isUpToDate(sourceTime, destTime, getFileTimestampGranularity()); | return isUpToDate(sourceTime, destTime, getFileTimestampGranularity()); | ||||
} | } | ||||
/** | /** | ||||
* close a writer without throwing any exception if something went wrong. | * close a writer without throwing any exception if something went wrong. | ||||
* Do not attempt to close it if the file is null | * Do not attempt to close it if the file is null | ||||