git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@910889 13f79535-47bb-0310-9956-ffa450edef68master
@@ -48,6 +48,7 @@ import org.apache.tools.ant.util.CollectionUtils; | |||||
import org.apache.tools.ant.util.FileUtils; | import org.apache.tools.ant.util.FileUtils; | ||||
import org.apache.tools.ant.util.JavaEnvUtils; | import org.apache.tools.ant.util.JavaEnvUtils; | ||||
import org.apache.tools.ant.util.StringUtils; | import org.apache.tools.ant.util.StringUtils; | ||||
import org.apache.tools.ant.util.VectorSet; | |||||
/** | /** | ||||
* Central representation of an Ant project. This class defines an | * Central representation of an Ant project. This class defines an | ||||
@@ -1799,7 +1800,7 @@ public class Project implements ResourceFactory { | |||||
*/ | */ | ||||
public final Vector topoSort(String[] root, Hashtable targetTable, | public final Vector topoSort(String[] root, Hashtable targetTable, | ||||
boolean returnAll) throws BuildException { | boolean returnAll) throws BuildException { | ||||
Vector ret = new Vector(); | |||||
Vector ret = new VectorSet(); | |||||
Hashtable state = new Hashtable(); | Hashtable state = new Hashtable(); | ||||
Stack visiting = new Stack(); | Stack visiting = new Stack(); | ||||
@@ -24,7 +24,7 @@ package org.apache.tools.ant.input; | |||||
* @since Ant 1.5 | * @since Ant 1.5 | ||||
*/ | */ | ||||
public class InputRequest { | public class InputRequest { | ||||
private String prompt; | |||||
private final String prompt; | |||||
private String input; | private String input; | ||||
private String defaultValue; | private String defaultValue; | ||||
@@ -18,6 +18,7 @@ | |||||
package org.apache.tools.ant.input; | package org.apache.tools.ant.input; | ||||
import java.util.LinkedHashSet; | |||||
import java.util.Vector; | import java.util.Vector; | ||||
/** | /** | ||||
@@ -26,7 +27,7 @@ import java.util.Vector; | |||||
* @since Ant 1.5 | * @since Ant 1.5 | ||||
*/ | */ | ||||
public class MultipleChoiceInputRequest extends InputRequest { | public class MultipleChoiceInputRequest extends InputRequest { | ||||
private Vector choices = new Vector(); | |||||
private final LinkedHashSet choices; | |||||
/** | /** | ||||
* @param prompt The prompt to show to the user. Must not be null. | * @param prompt The prompt to show to the user. Must not be null. | ||||
@@ -38,14 +39,14 @@ public class MultipleChoiceInputRequest extends InputRequest { | |||||
if (choices == null) { | if (choices == null) { | ||||
throw new IllegalArgumentException("choices must not be null"); | throw new IllegalArgumentException("choices must not be null"); | ||||
} | } | ||||
this.choices = choices; | |||||
this.choices = new LinkedHashSet(choices); | |||||
} | } | ||||
/** | /** | ||||
* @return The possible values. | * @return The possible values. | ||||
*/ | */ | ||||
public Vector getChoices() { | public Vector getChoices() { | ||||
return choices; | |||||
return new Vector(choices); | |||||
} | } | ||||
/** | /** | ||||
@@ -32,10 +32,12 @@ import java.util.Collection; | |||||
import java.util.Date; | import java.util.Date; | ||||
import java.util.Enumeration; | import java.util.Enumeration; | ||||
import java.util.HashMap; | import java.util.HashMap; | ||||
import java.util.HashSet; | |||||
import java.util.Hashtable; | import java.util.Hashtable; | ||||
import java.util.Iterator; | import java.util.Iterator; | ||||
import java.util.Locale; | import java.util.Locale; | ||||
import java.util.Map; | import java.util.Map; | ||||
import java.util.Set; | |||||
import java.util.StringTokenizer; | import java.util.StringTokenizer; | ||||
import java.util.Vector; | import java.util.Vector; | ||||
@@ -54,6 +56,7 @@ import org.apache.tools.ant.types.selectors.SelectorUtils; | |||||
import org.apache.tools.ant.util.FileUtils; | import org.apache.tools.ant.util.FileUtils; | ||||
import org.apache.tools.ant.util.RetryHandler; | import org.apache.tools.ant.util.RetryHandler; | ||||
import org.apache.tools.ant.util.Retryable; | import org.apache.tools.ant.util.Retryable; | ||||
import org.apache.tools.ant.util.VectorSet; | |||||
/** | /** | ||||
* Basic FTP client. Performs the following actions: | * Basic FTP client. Performs the following actions: | ||||
@@ -116,7 +119,7 @@ public class FTP extends Task implements FTPTaskConfig { | |||||
private boolean timeDiffAuto = false; | private boolean timeDiffAuto = false; | ||||
private int action = SEND_FILES; | private int action = SEND_FILES; | ||||
private Vector filesets = new Vector(); | private Vector filesets = new Vector(); | ||||
private Vector dirCache = new Vector(); | |||||
private Set dirCache = new HashSet(); | |||||
private int transferred = 0; | private int transferred = 0; | ||||
private String remoteFileSep = "/"; | private String remoteFileSep = "/"; | ||||
private int port = DEFAULT_FTP_PORT; | private int port = DEFAULT_FTP_PORT; | ||||
@@ -354,12 +357,12 @@ public class FTP extends Task implements FTPTaskConfig { | |||||
excludes = new String[0]; | excludes = new String[0]; | ||||
} | } | ||||
filesIncluded = new Vector(); | |||||
filesIncluded = new VectorSet(); | |||||
filesNotIncluded = new Vector(); | filesNotIncluded = new Vector(); | ||||
filesExcluded = new Vector(); | |||||
dirsIncluded = new Vector(); | |||||
filesExcluded = new VectorSet(); | |||||
dirsIncluded = new VectorSet(); | |||||
dirsNotIncluded = new Vector(); | dirsNotIncluded = new Vector(); | ||||
dirsExcluded = new Vector(); | |||||
dirsExcluded = new VectorSet(); | |||||
try { | try { | ||||
String cwd = ftp.printWorkingDirectory(); | String cwd = ftp.printWorkingDirectory(); | ||||
@@ -1919,7 +1922,7 @@ public class FTP extends Task implements FTPTaskConfig { | |||||
+ "directory: " + ftp.getReplyString()); | + "directory: " + ftp.getReplyString()); | ||||
} | } | ||||
} | } | ||||
dirCache.addElement(dir); | |||||
dirCache.add(dir); | |||||
} | } | ||||
ftp.changeWorkingDirectory(cwd); | ftp.changeWorkingDirectory(cwd); | ||||
} | } | ||||
@@ -50,6 +50,7 @@ import org.apache.tools.ant.types.selectors.SelectorUtils; | |||||
import org.apache.tools.ant.util.FileUtils; | import org.apache.tools.ant.util.FileUtils; | ||||
import org.apache.tools.ant.util.RetryHandler; | import org.apache.tools.ant.util.RetryHandler; | ||||
import org.apache.tools.ant.util.Retryable; | import org.apache.tools.ant.util.Retryable; | ||||
import org.apache.tools.ant.util.VectorSet; | |||||
public class FTPTaskMirrorImpl implements FTPTaskMirror { | public class FTPTaskMirrorImpl implements FTPTaskMirror { | ||||
@@ -63,7 +64,7 @@ public class FTPTaskMirrorImpl implements FTPTaskMirror { | |||||
private static final FileUtils FILE_UTILS = FileUtils.getFileUtils(); | private static final FileUtils FILE_UTILS = FileUtils.getFileUtils(); | ||||
private final FTPTask task; | private final FTPTask task; | ||||
private Vector dirCache = new Vector(); | |||||
private Set dirCache = new HashSet(); | |||||
private int transferred = 0; | private int transferred = 0; | ||||
private int skipped = 0; | private int skipped = 0; | ||||
@@ -257,12 +258,12 @@ public class FTPTaskMirrorImpl implements FTPTaskMirror { | |||||
excludes = new String[0]; | excludes = new String[0]; | ||||
} | } | ||||
filesIncluded = new Vector(); | |||||
filesIncluded = new VectorSet(); | |||||
filesNotIncluded = new Vector(); | filesNotIncluded = new Vector(); | ||||
filesExcluded = new Vector(); | |||||
dirsIncluded = new Vector(); | |||||
filesExcluded = new VectorSet(); | |||||
dirsIncluded = new VectorSet(); | |||||
dirsNotIncluded = new Vector(); | dirsNotIncluded = new Vector(); | ||||
dirsExcluded = new Vector(); | |||||
dirsExcluded = new VectorSet(); | |||||
try { | try { | ||||
String cwd = ftp.printWorkingDirectory(); | String cwd = ftp.printWorkingDirectory(); | ||||
@@ -1310,7 +1311,7 @@ public class FTPTaskMirrorImpl implements FTPTaskMirror { | |||||
+ "directory: " + ftp.getReplyString()); | + "directory: " + ftp.getReplyString()); | ||||
} | } | ||||
} | } | ||||
dirCache.addElement(dir); | |||||
dirCache.add(dir); | |||||
} | } | ||||
ftp.changeWorkingDirectory(cwd); | ftp.changeWorkingDirectory(cwd); | ||||
} | } | ||||
@@ -20,6 +20,8 @@ package org.apache.tools.ant.taskdefs.optional.ssh; | |||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
import java.util.Iterator; | import java.util.Iterator; | ||||
import java.util.LinkedHashSet; | |||||
import java.util.Set; | |||||
import java.util.StringTokenizer; | import java.util.StringTokenizer; | ||||
import java.io.File; | import java.io.File; | ||||
@@ -29,7 +31,7 @@ import java.io.File; | |||||
public class Directory { | public class Directory { | ||||
private File directory; | private File directory; | ||||
private ArrayList childDirectories; | |||||
private Set childDirectories; | |||||
private ArrayList files; | private ArrayList files; | ||||
private Directory parent; | private Directory parent; | ||||
@@ -48,7 +50,7 @@ public class Directory { | |||||
*/ | */ | ||||
public Directory(File directory , Directory parent) { | public Directory(File directory , Directory parent) { | ||||
this.parent = parent; | this.parent = parent; | ||||
this.childDirectories = new ArrayList(); | |||||
this.childDirectories = new LinkedHashSet(); | |||||
this.files = new ArrayList(); | this.files = new ArrayList(); | ||||
this.directory = directory; | this.directory = directory; | ||||
} | } | ||||
@@ -117,8 +119,8 @@ public class Directory { | |||||
* @return the child directory, or null if not found | * @return the child directory, or null if not found | ||||
*/ | */ | ||||
public Directory getChild(File dir) { | public Directory getChild(File dir) { | ||||
for (int i = 0; i < childDirectories.size(); i++) { | |||||
Directory current = (Directory) childDirectories.get(i); | |||||
for (Iterator i = childDirectories.iterator(); i.hasNext(); ) { | |||||
Directory current = (Directory) i.next(); | |||||
if (current.getDirectory().equals(dir)) { | if (current.getDirectory().equals(dir)) { | ||||
return current; | return current; | ||||
} | } | ||||
@@ -27,6 +27,7 @@ import java.util.Vector; | |||||
import org.apache.tools.ant.Project; | import org.apache.tools.ant.Project; | ||||
import org.apache.tools.ant.BuildException; | import org.apache.tools.ant.BuildException; | ||||
import org.apache.tools.ant.util.FileUtils; | import org.apache.tools.ant.util.FileUtils; | ||||
import org.apache.tools.ant.util.VectorSet; | |||||
/** | /** | ||||
* A set of filters to be applied to something. | * A set of filters to be applied to something. | ||||
@@ -575,7 +576,7 @@ public class FilterSet extends DataType implements Cloneable { | |||||
String beginToken = getBeginToken(); | String beginToken = getBeginToken(); | ||||
String endToken = getEndToken(); | String endToken = getEndToken(); | ||||
if (recurseDepth == 0) { | if (recurseDepth == 0) { | ||||
passedTokens = new Vector(); | |||||
passedTokens = new VectorSet(); | |||||
} | } | ||||
recurseDepth++; | recurseDepth++; | ||||
if (passedTokens.contains(parent) && !duplicateToken) { | if (passedTokens.contains(parent) && !duplicateToken) { | ||||
@@ -17,10 +17,8 @@ | |||||
*/ | */ | ||||
package org.apache.tools.ant.util; | package org.apache.tools.ant.util; | ||||
import java.util.Arrays; | |||||
import java.util.HashSet; | |||||
import java.util.Iterator; | import java.util.Iterator; | ||||
import java.util.LinkedList; | |||||
import java.util.LinkedHashSet; | |||||
/** | /** | ||||
* A <CODE>ContainerMapper</CODE> that unites the results of its constituent | * A <CODE>ContainerMapper</CODE> that unites the results of its constituent | ||||
@@ -30,8 +28,7 @@ public class CompositeMapper extends ContainerMapper { | |||||
/** {@inheritDoc}. */ | /** {@inheritDoc}. */ | ||||
public String[] mapFileName(String sourceFileName) { | public String[] mapFileName(String sourceFileName) { | ||||
HashSet results = new HashSet(); | |||||
LinkedList sortedResults = new LinkedList(); | |||||
LinkedHashSet results = new LinkedHashSet(); | |||||
FileNameMapper mapper = null; | FileNameMapper mapper = null; | ||||
for (Iterator mIter = getMappers().iterator(); mIter.hasNext();) { | for (Iterator mIter = getMappers().iterator(); mIter.hasNext();) { | ||||
@@ -40,16 +37,13 @@ public class CompositeMapper extends ContainerMapper { | |||||
String[] mapped = mapper.mapFileName(sourceFileName); | String[] mapped = mapper.mapFileName(sourceFileName); | ||||
if (mapped != null) { | if (mapped != null) { | ||||
for (int i = 0; i < mapped.length; i++) { | for (int i = 0; i < mapped.length; i++) { | ||||
if (!results.contains(mapped[i])) { | |||||
results.add(mapped[i]); | |||||
sortedResults.addLast(mapped[i]); | |||||
} | |||||
results.add(mapped[i]); | |||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
return (results.size() == 0) ? null | return (results.size() == 0) ? null | ||||
: (String[]) sortedResults.toArray(new String[results.size()]); | |||||
: (String[]) results.toArray(new String[results.size()]); | |||||
} | } | ||||
} | } | ||||
@@ -22,6 +22,7 @@ import java.util.Enumeration; | |||||
import java.util.Vector; | import java.util.Vector; | ||||
import java.util.zip.ZipFile; | import java.util.zip.ZipFile; | ||||
import org.apache.tools.ant.types.Path; | import org.apache.tools.ant.types.Path; | ||||
import org.apache.tools.ant.util.VectorSet; | |||||
/** | /** | ||||
* An abstract implementation of the analyzer interface providing support | * An abstract implementation of the analyzer interface providing support | ||||
@@ -39,7 +40,7 @@ public abstract class AbstractAnalyzer implements DependencyAnalyzer { | |||||
private Path classPath = new Path(null); | private Path classPath = new Path(null); | ||||
/** The list of root classes */ | /** The list of root classes */ | ||||
private Vector rootClasses = new Vector(); | |||||
private final Vector rootClasses = new VectorSet(); | |||||
/** true if dependencies have been determined */ | /** true if dependencies have been determined */ | ||||
private boolean determined = false; | private boolean determined = false; | ||||