diff --git a/src/main/org/apache/tools/ant/DirectoryScanner.java b/src/main/org/apache/tools/ant/DirectoryScanner.java index e846ae0f5..9da320505 100644 --- a/src/main/org/apache/tools/ant/DirectoryScanner.java +++ b/src/main/org/apache/tools/ant/DirectoryScanner.java @@ -56,6 +56,7 @@ package org.apache.tools.ant; import java.io.File; import java.io.IOException; +import java.util.Arrays; import java.util.Enumeration; import java.util.HashMap; import java.util.HashSet; @@ -1032,6 +1033,7 @@ public class DirectoryScanner public String[] getIncludedFiles() { String[] files = new String[filesIncluded.size()]; filesIncluded.copyInto(files); + Arrays.sort(files); return files; } @@ -1099,6 +1101,7 @@ public class DirectoryScanner public String[] getIncludedDirectories() { String[] directories = new String[dirsIncluded.size()]; dirsIncluded.copyInto(directories); + Arrays.sort(directories); return directories; } diff --git a/src/main/org/apache/tools/ant/types/Resource.java b/src/main/org/apache/tools/ant/types/Resource.java index 76a5cd3f9..279478c38 100644 --- a/src/main/org/apache/tools/ant/types/Resource.java +++ b/src/main/org/apache/tools/ant/types/Resource.java @@ -63,7 +63,7 @@ package org.apache.tools.ant.types; * @author Antoine Levy-Lambert * @since Ant 1.5.2 */ -public class Resource implements Cloneable { +public class Resource implements Cloneable, Comparable { private String name = null; private boolean exists = true; private long lastmodified = 0; @@ -179,4 +179,17 @@ public class Resource implements Cloneable { } } + /** + * delegates to a comparison of names. + * + * @since Ant 1.6 + */ + public int compareTo(Object other) { + if (!(other instanceof Resource)) { + throw new IllegalArgumentException("Can only be compared with " + + "Resources"); + } + Resource r = (Resource) other; + return getName().compareTo(r.getName()); + } } diff --git a/src/main/org/apache/tools/ant/types/ZipScanner.java b/src/main/org/apache/tools/ant/types/ZipScanner.java index 81ed1e3bd..fa0de815e 100644 --- a/src/main/org/apache/tools/ant/types/ZipScanner.java +++ b/src/main/org/apache/tools/ant/types/ZipScanner.java @@ -56,6 +56,7 @@ package org.apache.tools.ant.types; import java.io.File; import java.io.IOException; +import java.util.Arrays; import java.util.Vector; import java.util.Hashtable; import java.util.Enumeration; @@ -138,6 +139,7 @@ public class ZipScanner extends DirectoryScanner { } String[] files = new String[myvector.size()]; myvector.copyInto(files); + Arrays.sort(files); return files; } else { return super.getIncludedFiles(); @@ -165,6 +167,7 @@ public class ZipScanner extends DirectoryScanner { } String[] files = new String[myvector.size()]; myvector.copyInto(files); + Arrays.sort(files); return files; } else { return super.getIncludedDirectories();