bodewig 2003/02/17 04:59:24
Modified: src/main/org/apache/tools/ant/types Resource.java ResourceFactory.java ZipScanner.java src/main/org/apache/tools/ant/util SourceSelector.java Log: Tighten up contract for resource names. Revision Changes Path 1.4 +16 -0 ant/src/main/org/apache/tools/ant/types/Resource.java Index: Resource.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/types/Resource.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- Resource.java 10 Feb 2003 14:14:31 -0000 1.3 +++ Resource.java 17 Feb 2003 12:59:23 -0000 1.4 @@ -79,6 +79,9 @@ * only sets the name. * * <p>This is a dummy, used for not existing resources.</p> + * + * @param name relative path of the resource. Expects + * "/" to be used as the directory separator. */ public Resource(String name) { this(name, false, 0, false); @@ -86,11 +89,18 @@ /** * sets the name, lastmodified flag, and exists flag + * + * @param name relative path of the resource. Expects + * "/" to be used as the directory separator. */ public Resource(String name, boolean exists, long lastmodified) { this(name, exists, lastmodified, false); } + /** + * @param name relative path of the resource. Expects + * "/" to be used as the directory separator. + */ public Resource(String name, boolean exists, long lastmodified, boolean directory) { this.name = name; @@ -107,11 +117,17 @@ * <p>example for a file with fullpath /var/opt/adm/resource.txt * in a file set with root dir /var/opt it will be * adm/resource.txt.</p> + * + * <p>"/" will be used as the directory separator.</p> */ public String getName() { return name; } + /** + * @param name relative path of the resource. Expects + * "/" to be used as the directory separator. + */ public void setName(String name) { this.name = name; } 1.4 +2 -1 ant/src/main/org/apache/tools/ant/types/ResourceFactory.java Index: ResourceFactory.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/types/ResourceFactory.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- ResourceFactory.java 10 Feb 2003 14:14:31 -0000 1.3 +++ ResourceFactory.java 17 Feb 2003 12:59:23 -0000 1.4 @@ -66,7 +66,8 @@ * Query a resource (file, zipentry, ...) by name * * @param Name relative path of the resource about which - * information is sought + * information is sought. Expects "/" to be used as the + * directory separator. * @return instance of Resource; the exists attribute of Resource * will tell whether the sought resource exists */ 1.16 +0 -3 ant/src/main/org/apache/tools/ant/types/ZipScanner.java Index: ZipScanner.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/types/ZipScanner.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- ZipScanner.java 12 Feb 2003 09:05:04 -0000 1.15 +++ ZipScanner.java 17 Feb 2003 12:59:23 -0000 1.16 @@ -214,9 +214,6 @@ return new Resource("", true, Long.MAX_VALUE, true); } - // Zip-Entries always use forward slashes - name = name.replace(File.separatorChar, '/'); - // first check if the archive needs to be scanned again scanme(); if (myentries.containsKey(name)) { 1.5 +5 -2 ant/src/main/org/apache/tools/ant/util/SourceSelector.java Index: SourceSelector.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/util/SourceSelector.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- SourceSelector.java 10 Feb 2003 14:14:38 -0000 1.4 +++ SourceSelector.java 17 Feb 2003 12:59:24 -0000 1.5 @@ -59,6 +59,7 @@ import org.apache.tools.ant.types.Resource; import org.apache.tools.ant.types.ResourceFactory; +import java.io.File; import java.util.Vector; /** @@ -111,14 +112,16 @@ } String[] targetnames = - mapper.mapFileName(source[counter].getName()); + mapper.mapFileName(source[counter].getName() + .replace('/', File.separatorChar)); if (targetnames != null) { boolean added = false; targetList.setLength(0); for (int ctarget = 0; !added && ctarget < targetnames.length; ctarget++) { Resource atarget = - targets.getResource(targetnames[ctarget]); + targets.getResource(targetnames[ctarget] + .replace(File.separatorChar, '/')); // if the target does not exist, or exists and // is older than the source, then we want to // add the resource to what needs to be copied