You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by mb...@apache.org on 2012/08/22 14:32:46 UTC

svn commit: r1376015 [1/3] - in /ant/core/trunk/src/main/org/apache/tools/ant: ./ taskdefs/ taskdefs/optional/depend/ taskdefs/optional/depend/constantpool/ types/ types/mappers/ types/optional/ types/optional/depend/ types/optional/image/ types/resour...

Author: mbenson
Date: Wed Aug 22 12:32:43 2012
New Revision: 1376015

URL: http://svn.apache.org/viewvc?rev=1376015&view=rev
Log:
Java 1.5, continued

Modified:
    ant/core/trunk/src/main/org/apache/tools/ant/PropertyHelper.java
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/ManifestTask.java
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/MatchingTask.java
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Redirector.java
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/depend/AntAnalyzer.java
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/depend/ClassFile.java
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ConstantPool.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/AbstractFileSet.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/ArchiveFileSet.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/ArchiveScanner.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/Assertions.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/Commandline.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/CommandlineJava.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/Description.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/EnumeratedAttribute.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/FileList.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/FilterSetCollection.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/Mapper.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/PatternSet.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/Permissions.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/PropertySet.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/RedirectorElement.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/TarScanner.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/XMLCatalog.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/ZipScanner.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/mappers/FilterMapper.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/optional/ScriptMapper.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/optional/depend/ClassfileSet.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/optional/depend/DependScanner.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/optional/image/ImageOperation.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/optional/image/Rotate.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/resources/AbstractClasspathResource.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/resources/AbstractResourceCollectionWrapper.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/resources/ArchiveResource.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/resources/Archives.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/resources/BaseResourceCollectionContainer.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/resources/FailFast.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/resources/Files.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/resources/ImmutableResourceException.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/resources/JavaConstantResource.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/resources/MappedResourceCollection.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/resources/ResourceDecorator.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/resources/ResourceList.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/resources/Restrict.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/resources/Sort.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/resources/Tokens.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/resources/Union.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/resources/comparators/DelegatedResourceComparator.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/resources/comparators/Reverse.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/resources/selectors/And.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/resources/selectors/Compare.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/resources/selectors/InstanceOf.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/resources/selectors/Majority.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/resources/selectors/None.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/resources/selectors/Or.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/resources/selectors/ResourceSelectorContainer.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/AbstractSelectorContainer.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/AndSelector.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/BaseSelectorContainer.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/ContainsRegexpSelector.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/ContainsSelector.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/DateSelector.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/DependSelector.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/DepthSelector.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/ExtendSelector.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/FilenameSelector.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/MajoritySelector.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/NoneSelector.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/NotSelector.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/OrSelector.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/PresentSelector.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/SelectSelector.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/SelectorContainer.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/SelectorUtils.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/SizeSelector.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/TokenizedPattern.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/TypeSelector.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/WritableSelector.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/modifiedselector/Cache.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/modifiedselector/ChecksumAlgorithm.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/modifiedselector/DigestAlgorithm.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/modifiedselector/EqualComparator.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/modifiedselector/ModifiedSelector.java
    ant/core/trunk/src/main/org/apache/tools/ant/types/selectors/modifiedselector/PropertiesfileCache.java
    ant/core/trunk/src/main/org/apache/tools/ant/util/depend/AbstractAnalyzer.java
    ant/core/trunk/src/main/org/apache/tools/ant/util/depend/DependencyAnalyzer.java
    ant/core/trunk/src/main/org/apache/tools/ant/util/depend/bcel/AncestorAnalyzer.java
    ant/core/trunk/src/main/org/apache/tools/ant/util/depend/bcel/DependencyVisitor.java
    ant/core/trunk/src/main/org/apache/tools/ant/util/depend/bcel/FullAnalyzer.java

Modified: ant/core/trunk/src/main/org/apache/tools/ant/PropertyHelper.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/PropertyHelper.java?rev=1376015&r1=1376014&r2=1376015&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/PropertyHelper.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/PropertyHelper.java Wed Aug 22 12:32:43 2012
@@ -163,6 +163,7 @@ public class PropertyHelper implements G
             String property, Object value, PropertyHelper propertyHelper);
     }
 
+    //TODO PropertyEnumerator Delegate type, would improve PropertySet
 
     //  --------------------------------------------------------
     //

Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/ManifestTask.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/ManifestTask.java?rev=1376015&r1=1376014&r2=1376015&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/ManifestTask.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/ManifestTask.java Wed Aug 22 12:32:43 2012
@@ -113,10 +113,10 @@ public class ManifestTask extends Task {
      */
     public void addConfiguredSection(Manifest.Section section)
          throws ManifestException {
-        Enumeration attributeKeys = section.getAttributeKeys();
+        Enumeration<String> attributeKeys = section.getAttributeKeys();
         while (attributeKeys.hasMoreElements()) {
             Attribute attribute = section.getAttribute(
-                (String) attributeKeys.nextElement());
+                attributeKeys.nextElement());
             checkAttribute(attribute);
         }
         nestedManifest.addConfiguredSection(section);
@@ -249,9 +249,9 @@ public class ManifestTask extends Task {
         }
 
         //look for and print warnings
-        for (Enumeration e = nestedManifest.getWarnings();
+        for (Enumeration<String> e = nestedManifest.getWarnings();
                 e.hasMoreElements();) {
-            log("Manifest warning: " + (String) e.nextElement(),
+            log("Manifest warning: " + e.nextElement(),
                     Project.MSG_WARN);
         }
         try {

Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/MatchingTask.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/MatchingTask.java?rev=1376015&r1=1376014&r2=1376015&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/MatchingTask.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/MatchingTask.java Wed Aug 22 12:32:43 2012
@@ -263,7 +263,7 @@ public abstract class MatchingTask exten
      *
      * @return an enumerator that goes through each of the selectors
      */
-    public Enumeration selectorElements() {
+    public Enumeration<FileSelector> selectorElements() {
         return fileset.selectorElements();
     }
 

Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Redirector.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Redirector.java?rev=1376015&r1=1376014&r2=1376015&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Redirector.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Redirector.java Wed Aug 22 12:32:43 2012
@@ -37,7 +37,7 @@ import org.apache.tools.ant.ProjectCompo
 import org.apache.tools.ant.Task;
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.filters.util.ChainReaderHelper;
-import org.apache.tools.ant.util.LineOrientedOutputStream;
+import org.apache.tools.ant.types.FilterChain;
 import org.apache.tools.ant.util.LineOrientedOutputStreamRedirector;
 import org.apache.tools.ant.util.StringUtils;
 import org.apache.tools.ant.util.TeeOutputStream;
@@ -51,7 +51,7 @@ import org.apache.tools.ant.util.KeepAli
 /**
  * The Redirector class manages the setup and connection of input and output
  * redirection for an Ant project component.
- * 
+ *
  * @since Ant 1.6
  */
 public class Redirector {
@@ -157,13 +157,13 @@ public class Redirector {
     private PrintStream errorPrintStream = null;
 
     /** The output filter chains */
-    private Vector outputFilterChains;
+    private Vector<FilterChain> outputFilterChains;
 
     /** The error filter chains */
-    private Vector errorFilterChains;
+    private Vector<FilterChain> errorFilterChains;
 
     /** The input filter chains */
-    private Vector inputFilterChains;
+    private Vector<FilterChain> inputFilterChains;
 
     /** The output encoding */
     private String outputEncoding = DEFAULT_ENCODING;
@@ -194,7 +194,7 @@ public class Redirector {
 
     /**
      * Create a redirector instance for the given task
-     * 
+     *
      * @param managingTask
      *            the task for which the redirector is to work
      */
@@ -204,7 +204,7 @@ public class Redirector {
 
     /**
      * Create a redirector instance for the given task
-     * 
+     *
      * @param managingTask
      *            the project component for which the redirector is to work
      * @since Ant 1.6.3
@@ -215,7 +215,7 @@ public class Redirector {
 
     /**
      * Set the input to use for the task
-     * 
+     *
      * @param input
      *            the file from which input is read.
      */
@@ -225,7 +225,7 @@ public class Redirector {
 
     /**
      * Set the input to use for the task
-     * 
+     *
      * @param input
      *            the files from which input is read.
      */
@@ -241,7 +241,7 @@ public class Redirector {
 
     /**
      * Set the string to use as input
-     * 
+     *
      * @param inputString
      *            the string which is used as the input source
      */
@@ -254,7 +254,7 @@ public class Redirector {
     /**
      * Set whether to include the value of the input string in log messages.
      * Defaults to true.
-     * 
+     *
      * @param logInputString
      *            true or false.
      * @since Ant 1.7
@@ -265,7 +265,7 @@ public class Redirector {
 
     /**
      * Set a stream to use as input.
-     * 
+     *
      * @param inputStream
      *            the stream from which input will be read
      * @since Ant 1.6.3
@@ -279,7 +279,7 @@ public class Redirector {
     /**
      * File the output of the process is redirected to. If error is not
      * redirected, it too will appear in the output
-     * 
+     *
      * @param out
      *            the file to which output stream is written
      */
@@ -290,7 +290,7 @@ public class Redirector {
     /**
      * Files the output of the process is redirected to. If error is not
      * redirected, it too will appear in the output
-     * 
+     *
      * @param out
      *            the files to which output stream is written
      */
@@ -306,7 +306,7 @@ public class Redirector {
 
     /**
      * Set the output encoding.
-     * 
+     *
      * @param outputEncoding
      *            <code>String</code>.
      */
@@ -322,7 +322,7 @@ public class Redirector {
 
     /**
      * Set the error encoding.
-     * 
+     *
      * @param errorEncoding
      *            <code>String</code>.
      */
@@ -337,7 +337,7 @@ public class Redirector {
 
     /**
      * Set the input encoding.
-     * 
+     *
      * @param inputEncoding
      *            <code>String</code>.
      */
@@ -353,7 +353,7 @@ public class Redirector {
     /**
      * Controls whether error output of exec is logged. This is only useful when
      * output is being redirected and error output is desired in the Ant log
-     * 
+     *
      * @param logError
      *            if true the standard error is sent to the Ant log system and
      *            not sent to output.
@@ -368,7 +368,7 @@ public class Redirector {
      * This <code>Redirector</code>'s subordinate
      * <code>PropertyOutputStream</code>s will not set their respective
      * properties <code>while (appendProperties && append)</code>.
-     * 
+     *
      * @param appendProperties
      *            whether to append properties.
      */
@@ -380,7 +380,7 @@ public class Redirector {
 
     /**
      * Set the file to which standard error is to be redirected.
-     * 
+     *
      * @param error
      *            the file to which error is to be written
      */
@@ -390,7 +390,7 @@ public class Redirector {
 
     /**
      * Set the files to which standard error is to be redirected.
-     * 
+     *
      * @param error
      *            the file to which error is to be written
      */
@@ -406,7 +406,7 @@ public class Redirector {
 
     /**
      * Property name whose value should be set to the output of the process.
-     * 
+     *
      * @param outputProperty
      *            the name of the property to be set with the task's output.
      */
@@ -423,7 +423,7 @@ public class Redirector {
     /**
      * Whether output should be appended to or overwrite an existing file.
      * Defaults to false.
-     * 
+     *
      * @param append
      *            if true output and error streams are appended to their
      *            respective files, if specified.
@@ -441,7 +441,7 @@ public class Redirector {
      * If true, (error and non-error) output will be "teed", redirected as
      * specified while being sent to Ant's logging mechanism as if no
      * redirection had taken place. Defaults to false.
-     * 
+     *
      * @param alwaysLog
      *            <code>boolean</code>
      * @since Ant 1.6.3
@@ -458,7 +458,7 @@ public class Redirector {
     /**
      * Whether output and error files should be created even when empty.
      * Defaults to true.
-     * 
+     *
      * @param createEmptyFiles
      *            <code>boolean</code>.
      */
@@ -473,7 +473,7 @@ public class Redirector {
 
     /**
      * Property name whose value should be set to the error of the process.
-     * 
+     *
      * @param errorProperty
      *            the name of the property to be set with the error output.
      */
@@ -489,11 +489,11 @@ public class Redirector {
 
     /**
      * Set the input <code>FilterChain</code>s.
-     * 
+     *
      * @param inputFilterChains
      *            <code>Vector</code> containing <code>FilterChain</code>.
      */
-    public void setInputFilterChains(Vector inputFilterChains) {
+    public void setInputFilterChains(Vector<FilterChain> inputFilterChains) {
         synchronized (inMutex) {
             this.inputFilterChains = inputFilterChains;
         }
@@ -501,11 +501,11 @@ public class Redirector {
 
     /**
      * Set the output <code>FilterChain</code>s.
-     * 
+     *
      * @param outputFilterChains
      *            <code>Vector</code> containing <code>FilterChain</code>.
      */
-    public void setOutputFilterChains(Vector outputFilterChains) {
+    public void setOutputFilterChains(Vector<FilterChain> outputFilterChains) {
         synchronized (outMutex) {
             this.outputFilterChains = outputFilterChains;
         }
@@ -513,11 +513,11 @@ public class Redirector {
 
     /**
      * Set the error <code>FilterChain</code>s.
-     * 
+     *
      * @param errorFilterChains
      *            <code>Vector</code> containing <code>FilterChain</code>.
      */
-    public void setErrorFilterChains(Vector errorFilterChains) {
+    public void setErrorFilterChains(Vector<FilterChain> errorFilterChains) {
         synchronized (errMutex) {
             this.errorFilterChains = errorFilterChains;
         }
@@ -525,12 +525,12 @@ public class Redirector {
 
     /**
      * Set a property from a ByteArrayOutputStream
-     * 
+     *
      * @param baos
      *            contains the property value.
      * @param propertyName
      *            the property name.
-     * 
+     *
      * @exception IOException
      *                if the value cannot be read form the stream.
      */
@@ -746,10 +746,10 @@ public class Redirector {
 
     /**
      * Create the StreamHandler to use with our Execute instance.
-     * 
+     *
      * @return the execute stream handler to manage the input, output and error
      *         streams.
-     * 
+     *
      * @throws BuildException
      *             if the execute stream handler cannot be created.
      */
@@ -762,7 +762,7 @@ public class Redirector {
 
     /**
      * Pass output sent to System.out to specified output.
-     * 
+     *
      * @param output
      *            the data to be output
      */
@@ -777,16 +777,16 @@ public class Redirector {
 
     /**
      * Handle an input request
-     * 
+     *
      * @param buffer
      *            the buffer into which data is to be read.
      * @param offset
      *            the offset into the buffer at which data is stored.
      * @param length
      *            the amount of data to read
-     * 
+     *
      * @return the number of bytes read
-     * 
+     *
      * @exception IOException
      *                if the data cannot be read
      */
@@ -804,7 +804,7 @@ public class Redirector {
 
     /**
      * Process data due to a flush operation.
-     * 
+     *
      * @param output
      *            the data being flushed.
      */
@@ -820,7 +820,7 @@ public class Redirector {
 
     /**
      * Process error output
-     * 
+     *
      * @param output
      *            the error output data.
      */
@@ -835,7 +835,7 @@ public class Redirector {
 
     /**
      * Handle a flush operation on the error stream
-     * 
+     *
      * @param output
      *            the error information being flushed.
      */
@@ -851,7 +851,7 @@ public class Redirector {
 
     /**
      * Get the output stream for the redirector
-     * 
+     *
      * @return the redirector's output stream or null if no output has been
      *         configured
      */
@@ -863,7 +863,7 @@ public class Redirector {
 
     /**
      * Get the error stream for the redirector
-     * 
+     *
      * @return the redirector's error stream or null if no output has been
      *         configured
      */
@@ -875,7 +875,7 @@ public class Redirector {
 
     /**
      * Get the input stream for the redirector
-     * 
+     *
      * @return the redirector's input stream or null if no output has been
      *         configured
      */
@@ -887,10 +887,10 @@ public class Redirector {
 
     /**
      * Complete redirection.
-     * 
+     *
      * This operation will close any streams and create any specified property
      * values.
-     * 
+     *
      * @throws IOException
      *             if the output properties cannot be read from their output
      *             streams.

Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/depend/AntAnalyzer.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/depend/AntAnalyzer.java?rev=1376015&r1=1376014&r2=1376015&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/depend/AntAnalyzer.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/depend/AntAnalyzer.java Wed Aug 22 12:32:43 2012
@@ -49,24 +49,24 @@ public class AntAnalyzer extends Abstrac
      * @param classes a vector to be populated with the names of the
      *      dependency classes.
      */
-    protected void determineDependencies(Vector files, Vector classes) {
+    protected void determineDependencies(Vector<File> files, Vector<String> classes) {
         // we get the root classes and build up a set of
         // classes upon which they depend
-        Hashtable dependencies = new Hashtable();
-        Hashtable containers = new Hashtable();
-        Hashtable toAnalyze = new Hashtable();
-        for (Enumeration e = getRootClasses(); e.hasMoreElements();) {
-            String classname = (String) e.nextElement();
+        Hashtable<String, String> dependencies = new Hashtable<String, String>();
+        Hashtable<File, File> containers = new Hashtable<File, File>();
+        Hashtable<String, String> toAnalyze = new Hashtable<String, String>();
+        for (Enumeration<String> e = getRootClasses(); e.hasMoreElements();) {
+            String classname = e.nextElement();
             toAnalyze.put(classname, classname);
         }
 
         int count = 0;
         int maxCount = isClosureRequired() ? MAX_LOOPS : 1;
-        Hashtable analyzedDeps = null;
+        Hashtable<String, String> analyzedDeps = null;
         while (toAnalyze.size() != 0 && count++ < maxCount) {
-            analyzedDeps = new Hashtable();
-            for (Enumeration e = toAnalyze.keys(); e.hasMoreElements();) {
-                String classname = (String) e.nextElement();
+            analyzedDeps = new Hashtable<String, String>();
+            for (Enumeration<String> e = toAnalyze.keys(); e.hasMoreElements();) {
+                String classname = e.nextElement();
                 dependencies.put(classname, classname);
                 try {
                     File container = getClassContainer(classname);
@@ -90,10 +90,7 @@ public class AntAnalyzer extends Abstrac
                         }
                         ClassFile classFile = new ClassFile();
                         classFile.read(inStream);
-                        Vector dependencyList = classFile.getClassRefs();
-                        Enumeration depEnum = dependencyList.elements();
-                        while (depEnum.hasMoreElements()) {
-                            String dependency = (String) depEnum.nextElement();
+                        for (String dependency : classFile.getClassRefs()) {
                             analyzedDeps.put(dependency, dependency);
                         }
                     } finally {
@@ -110,9 +107,7 @@ public class AntAnalyzer extends Abstrac
             toAnalyze.clear();
 
             // now recover all the dependencies collected and add to the list.
-            Enumeration depsEnum = analyzedDeps.elements();
-            while (depsEnum.hasMoreElements()) {
-                String className = (String) depsEnum.nextElement();
+            for (String className : analyzedDeps.values()) {
                 if (!dependencies.containsKey(className)) {
                     toAnalyze.put(className, className);
                 }
@@ -120,20 +115,18 @@ public class AntAnalyzer extends Abstrac
         }
 
         // pick up the last round of dependencies that were determined
-        Enumeration depsEnum = analyzedDeps.elements();
-        while (depsEnum.hasMoreElements()) {
-            String className = (String) depsEnum.nextElement();
+        for (String className : analyzedDeps.values()) {
             dependencies.put(className, className);
         }
 
         files.removeAllElements();
-        for (Enumeration e = containers.keys(); e.hasMoreElements();) {
-            files.addElement((File) e.nextElement());
+        for (File f : containers.keySet()) {
+            files.add(f);
         }
 
         classes.removeAllElements();
-        for (Enumeration e = dependencies.keys(); e.hasMoreElements();) {
-            classes.addElement((String) e.nextElement());
+        for (String dependency :dependencies.keySet()) {
+            classes.add(dependency);
         }
     }
 

Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/depend/ClassFile.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/depend/ClassFile.java?rev=1376015&r1=1376014&r2=1376015&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/depend/ClassFile.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/depend/ClassFile.java Wed Aug 22 12:32:43 2012
@@ -86,9 +86,9 @@ public class ClassFile {
      *
      * @return a vector of class names which this class references
      */
-    public Vector getClassRefs() {
+    public Vector<String> getClassRefs() {
 
-        Vector classRefs = new Vector();
+        Vector<String> classRefs = new Vector<String>();
 
         final int size = constantPool.size();
         for (int i = 0; i < size; ++i) {
@@ -99,7 +99,7 @@ public class ClassFile {
                 ClassCPInfo classEntry = (ClassCPInfo) entry;
 
                 if (!classEntry.getClassName().equals(className)) {
-                    classRefs.addElement(
+                    classRefs.add(
                         ClassFileUtils.convertSlashName(classEntry.getClassName()));
                 }
             }

Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ConstantPool.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ConstantPool.java?rev=1376015&r1=1376014&r2=1376015&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ConstantPool.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/depend/constantpool/ConstantPool.java Wed Aug 22 12:32:43 2012
@@ -19,9 +19,10 @@ package org.apache.tools.ant.taskdefs.op
 
 import java.io.DataInputStream;
 import java.io.IOException;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Vector;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * The constant pool of a Java class. The constant pool is a collection of
@@ -34,23 +35,19 @@ import java.util.Vector;
 public class ConstantPool {
 
     /** The entries in the constant pool. */
-    private Vector entries;
+    private final List<ConstantPoolEntry> entries = new ArrayList<ConstantPoolEntry>();
 
     /**
      * A Hashtable of UTF8 entries - used to get constant pool indexes of
      * the UTF8 values quickly
      */
-    private Hashtable utf8Indexes;
+    private final Map<String, Integer> utf8Indexes = new HashMap<String, Integer>();
 
     /** Initialise the constant pool. */
     public ConstantPool() {
-        entries = new Vector();
-
         // The zero index is never present in the constant pool itself so
         // we add a null entry for it
-        entries.addElement(null);
-
-        utf8Indexes = new Hashtable();
+        entries.add(null);
     }
 
     /**
@@ -92,13 +89,13 @@ public class ConstantPool {
     public int addEntry(ConstantPoolEntry entry) {
         int index = entries.size();
 
-        entries.addElement(entry);
+        entries.add(entry);
 
         int numSlots = entry.getNumEntries();
 
         // add null entries for any additional slots required.
         for (int j = 0; j < numSlots - 1; ++j) {
-            entries.addElement(null);
+            entries.add(null);
         }
 
         if (entry instanceof Utf8CPInfo) {
@@ -116,9 +113,7 @@ public class ConstantPool {
      * into the actual data for that entry.
      */
     public void resolve() {
-        for (Enumeration i = entries.elements(); i.hasMoreElements();) {
-            ConstantPoolEntry poolInfo = (ConstantPoolEntry) i.nextElement();
-
+        for (ConstantPoolEntry poolInfo : entries) {
             if (poolInfo != null && !poolInfo.isResolved()) {
                 poolInfo.resolve(this);
             }
@@ -133,7 +128,7 @@ public class ConstantPool {
      * @return the constant pool entry at that index.
      */
     public ConstantPoolEntry getEntry(int index) {
-        return (ConstantPoolEntry) entries.elementAt(index);
+        return entries.get(index);
     }
 
     /**
@@ -145,7 +140,7 @@ public class ConstantPool {
      */
     public int getUTF8Entry(String value) {
         int index = -1;
-        Integer indexInteger = (Integer) utf8Indexes.get(value);
+        Integer indexInteger = utf8Indexes.get(value);
 
         if (indexInteger != null) {
             index = indexInteger.intValue();
@@ -167,7 +162,7 @@ public class ConstantPool {
 
         final int size = entries.size();
         for (int i = 0; i < size && index == -1; ++i) {
-            Object element = entries.elementAt(i);
+            Object element = entries.get(i);
 
             if (element instanceof ClassCPInfo) {
                 ClassCPInfo classinfo = (ClassCPInfo) element;
@@ -194,7 +189,7 @@ public class ConstantPool {
 
         final int size = entries.size();
         for (int i = 0; i < size && index == -1; ++i) {
-            Object element = entries.elementAt(i);
+            Object element = entries.get(i);
 
             if (element instanceof ConstantCPInfo) {
                 ConstantCPInfo constantEntry = (ConstantCPInfo) element;
@@ -225,7 +220,7 @@ public class ConstantPool {
 
         final int size = entries.size();
         for (int i = 0; i < size && index == -1; ++i) {
-            Object element = entries.elementAt(i);
+            Object element = entries.get(i);
 
             if (element instanceof MethodRefCPInfo) {
                 MethodRefCPInfo methodRefEntry = (MethodRefCPInfo) element;
@@ -260,7 +255,7 @@ public class ConstantPool {
 
         final int size = entries.size();
         for (int i = 0; i < size && index == -1; ++i) {
-            Object element = entries.elementAt(i);
+            Object element = entries.get(i);
 
             if (element instanceof InterfaceMethodRefCPInfo) {
                 InterfaceMethodRefCPInfo interfaceMethodRefEntry
@@ -297,7 +292,7 @@ public class ConstantPool {
 
         final int size = entries.size();
         for (int i = 0; i < size && index == -1; ++i) {
-            Object element = entries.elementAt(i);
+            Object element = entries.get(i);
 
             if (element instanceof FieldRefCPInfo) {
                 FieldRefCPInfo fieldRefEntry = (FieldRefCPInfo) element;
@@ -327,7 +322,7 @@ public class ConstantPool {
 
         final int size = entries.size();
         for (int i = 0; i < size && index == -1; ++i) {
-            Object element = entries.elementAt(i);
+            Object element = entries.get(i);
 
             if (element instanceof NameAndTypeCPInfo) {
                 NameAndTypeCPInfo nameAndTypeEntry
@@ -349,7 +344,7 @@ public class ConstantPool {
      * @return the constant pool entries as strings
      */
     public String toString() {
-        StringBuffer sb = new StringBuffer("\n");
+        StringBuilder sb = new StringBuilder("\n");
         final int size = entries.size();
 
         for (int i = 0; i < size; ++i) {

Modified: ant/core/trunk/src/main/org/apache/tools/ant/types/AbstractFileSet.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/AbstractFileSet.java?rev=1376015&r1=1376014&r2=1376015&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/types/AbstractFileSet.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/types/AbstractFileSet.java Wed Aug 22 12:32:43 2012
@@ -18,10 +18,11 @@
 package org.apache.tools.ant.types;
 
 import java.io.File;
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Enumeration;
-import java.util.Iterator;
+import java.util.List;
 import java.util.Stack;
-import java.util.Vector;
 
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.FileScanner;
@@ -62,8 +63,8 @@ public abstract class AbstractFileSet ex
     implements Cloneable, SelectorContainer {
 
     private PatternSet defaultPatterns = new PatternSet();
-    private Vector additionalPatterns = new Vector();
-    private Vector selectors = new Vector();
+    private List<PatternSet> additionalPatterns = new ArrayList<PatternSet>();
+    private List<FileSelector> selectors = new ArrayList<FileSelector>();
 
     private File dir;
     private boolean useDefaultExcludes = true;
@@ -165,7 +166,7 @@ public abstract class AbstractFileSet ex
             throw noChildrenAllowed();
         }
         PatternSet patterns = new PatternSet();
-        additionalPatterns.addElement(patterns);
+        additionalPatterns.add(patterns);
         directoryScanner = null;
         return patterns;
     }
@@ -579,9 +580,7 @@ public abstract class AbstractFileSet ex
         if (defaultPatterns.hasPatterns(getProject())) {
             return true;
         }
-        Enumeration e = additionalPatterns.elements();
-        while (e.hasMoreElements()) {
-            PatternSet ps = (PatternSet) e.nextElement();
+        for (PatternSet ps : additionalPatterns) {
             if (ps.hasPatterns(getProject())) {
                 return true;
             }
@@ -621,12 +620,12 @@ public abstract class AbstractFileSet ex
      *
      * @return an <code>Enumeration</code> of selectors.
      */
-    public synchronized Enumeration selectorElements() {
+    public synchronized Enumeration<FileSelector> selectorElements() {
         if (isReference()) {
             return getRef(getProject()).selectorElements();
         }
         dieOnCircularReference();
-        return selectors.elements();
+        return Collections.enumeration(selectors);
     }
 
     /**
@@ -638,7 +637,7 @@ public abstract class AbstractFileSet ex
         if (isReference()) {
             throw noChildrenAllowed();
         }
-        selectors.addElement(selector);
+        selectors.add(selector);
         directoryScanner = null;
         setChecked(false);
     }
@@ -844,13 +843,11 @@ public abstract class AbstractFileSet ex
             try {
                 AbstractFileSet fs = (AbstractFileSet) super.clone();
                 fs.defaultPatterns = (PatternSet) defaultPatterns.clone();
-                fs.additionalPatterns = new Vector(additionalPatterns.size());
-                Enumeration e = additionalPatterns.elements();
-                while (e.hasMoreElements()) {
-                    fs.additionalPatterns
-                        .addElement(((PatternSet) e.nextElement()).clone());
+                fs.additionalPatterns = new ArrayList<PatternSet>(additionalPatterns.size());
+                for (PatternSet ps : additionalPatterns) {
+                    fs.additionalPatterns.add((PatternSet) ps.clone());
                 }
-                fs.selectors = new Vector(selectors);
+                fs.selectors = new ArrayList<FileSelector>(selectors);
                 return fs;
             } catch (CloneNotSupportedException e) {
                 throw new BuildException(e);
@@ -898,13 +895,12 @@ public abstract class AbstractFileSet ex
         PatternSet ps = (PatternSet) defaultPatterns.clone();
         final int count = additionalPatterns.size();
         for (int i = 0; i < count; i++) {
-            Object o = additionalPatterns.elementAt(i);
-            ps.append((PatternSet) o, p);
+            ps.append(additionalPatterns.get(i), p);
         }
         return ps;
     }
 
-    protected synchronized void dieOnCircularReference(Stack stk, Project p)
+    protected synchronized void dieOnCircularReference(Stack<Object> stk, Project p)
         throws BuildException {
         if (isChecked()) {
             return;
@@ -912,14 +908,12 @@ public abstract class AbstractFileSet ex
         if (isReference()) {
             super.dieOnCircularReference(stk, p);
         } else {
-            for (Iterator i = selectors.iterator(); i.hasNext(); ) {
-                Object o = i.next();
-                if (o instanceof DataType) {
-                    pushAndInvokeCircularReferenceCheck((DataType) o, stk, p);
+            for (FileSelector fileSelector : selectors) {
+                if (fileSelector instanceof DataType) {
+                    pushAndInvokeCircularReferenceCheck((DataType) fileSelector, stk, p);
                 }
             }
-            for (Iterator i = additionalPatterns.iterator(); i.hasNext(); ) {
-                PatternSet ps = (PatternSet) i.next();
+            for (PatternSet ps : additionalPatterns) {
                 pushAndInvokeCircularReferenceCheck(ps, stk, p);
             }
             setChecked(true);

Modified: ant/core/trunk/src/main/org/apache/tools/ant/types/ArchiveFileSet.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/ArchiveFileSet.java?rev=1376015&r1=1376014&r2=1376015&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/types/ArchiveFileSet.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/types/ArchiveFileSet.java Wed Aug 22 12:32:43 2012
@@ -207,6 +207,7 @@ public abstract class ArchiveFileSet ext
      * @throws BuildException if the reference is invalid (circular ref, wrong class, etc).
      * @since Ant 1.8
      */
+    // TODO is the above true? AFAICT the calls look circular :/
     protected Object getCheckedRef(Project p) {
         return getRef(p);
     }
@@ -475,7 +476,7 @@ public abstract class ArchiveFileSet ext
      */
     public Object clone() {
         if (isReference()) {
-            return ((ArchiveFileSet) getRef(getProject())).clone();
+            return getCheckedRef(ArchiveFileSet.class, getDataTypeName(), getProject()).clone();
         }
         return super.clone();
     }
@@ -545,7 +546,7 @@ public abstract class ArchiveFileSet ext
         }
     }
 
-    protected synchronized void dieOnCircularReference(Stack stk, Project p)
+    protected synchronized void dieOnCircularReference(Stack<Object> stk, Project p)
         throws BuildException {
         if (isChecked()) {
             return;

Modified: ant/core/trunk/src/main/org/apache/tools/ant/types/ArchiveScanner.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/ArchiveScanner.java?rev=1376015&r1=1376014&r2=1376015&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/types/ArchiveScanner.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/types/ArchiveScanner.java Wed Aug 22 12:32:43 2012
@@ -20,7 +20,6 @@ package org.apache.tools.ant.types;
 
 import java.io.File;
 import java.util.Map;
-import java.util.Set;
 import java.util.TreeMap;
 import java.util.Iterator;
 
@@ -62,22 +61,22 @@ public abstract class ArchiveScanner ext
     /**
      * record list of all file zip entries
      */
-    private TreeMap fileEntries = new TreeMap();
+    private Map<String, Resource> fileEntries = new TreeMap<String, Resource>();
 
     /**
      * record list of all directory zip entries
      */
-    private TreeMap dirEntries = new TreeMap();
+    private Map<String, Resource> dirEntries = new TreeMap<String, Resource>();
 
     /**
      * record list of matching file zip entries
      */
-    private TreeMap matchFileEntries = new TreeMap();
+    private Map<String, Resource> matchFileEntries = new TreeMap<String, Resource>();
 
     /**
      * record list of matching directory zip entries
      */
-    private TreeMap matchDirEntries = new TreeMap();
+    private Map<String, Resource> matchDirEntries = new TreeMap<String, Resource>();
 
     /**
      * encoding of file names.
@@ -159,8 +158,7 @@ public abstract class ArchiveScanner ext
             return super.getIncludedFiles();
         }
         scanme();
-        Set s = matchFileEntries.keySet();
-        return (String[]) (s.toArray(new String[s.size()]));
+        return matchFileEntries.keySet().toArray(new String[matchFileEntries.size()]);
     }
 
     /**
@@ -189,8 +187,7 @@ public abstract class ArchiveScanner ext
             return super.getIncludedDirectories();
         }
         scanme();
-        Set s = matchDirEntries.keySet();
-        return (String[]) (s.toArray(new String[s.size()]));
+        return matchDirEntries.keySet().toArray(new String[matchDirEntries.size()]);
     }
 
     /**
@@ -212,7 +209,7 @@ public abstract class ArchiveScanner ext
      * @return an Iterator of Resources.
      * @since Ant 1.7
      */
-    /* package-private for now */ Iterator getResourceFiles(Project project) {
+    /* package-private for now */ Iterator<Resource> getResourceFiles(Project project) {
         if (src == null) {
             return new FileResourceIterator(project, getBasedir(), getIncludedFiles());
         }
@@ -226,7 +223,7 @@ public abstract class ArchiveScanner ext
      * @return an Iterator of Resources.
      * @since Ant 1.7
      */
-    /* package-private for now */  Iterator getResourceDirectories(Project project) {
+    /* package-private for now */  Iterator<Resource> getResourceDirectories(Project project) {
         if (src == null) {
             return new FileResourceIterator(project, getBasedir(), getIncludedDirectories());
         }
@@ -280,12 +277,12 @@ public abstract class ArchiveScanner ext
         // first check if the archive needs to be scanned again
         scanme();
         if (fileEntries.containsKey(name)) {
-            return (Resource) fileEntries.get(name);
+            return fileEntries.get(name);
         }
         name = trimSeparator(name);
 
         if (dirEntries.containsKey(name)) {
-            return (Resource) dirEntries.get(name);
+            return dirEntries.get(name);
         }
         return new Resource(name);
     }
@@ -308,10 +305,10 @@ public abstract class ArchiveScanner ext
      */
     protected abstract void fillMapsFromArchive(Resource archive,
                                                 String encoding,
-                                                Map fileEntries,
-                                                Map matchFileEntries,
-                                                Map dirEntries,
-                                                Map matchDirEntries);
+                                                Map<String, Resource> fileEntries,
+                                                Map<String, Resource> matchFileEntries,
+                                                Map<String, Resource> dirEntries,
+                                                Map<String, Resource> matchDirEntries);
 
     /**
      * if the datetime of the archive did not change since

Modified: ant/core/trunk/src/main/org/apache/tools/ant/types/Assertions.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/Assertions.java?rev=1376015&r1=1376014&r2=1376015&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/types/Assertions.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/types/Assertions.java Wed Aug 22 12:32:43 2012
@@ -22,7 +22,6 @@ import org.apache.tools.ant.BuildExcepti
 import org.apache.tools.ant.Project;
 
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 import java.util.ListIterator;
 
@@ -76,7 +75,7 @@ public class Assertions extends DataType
     /**
      * list of type BaseAssertion
      */
-    private ArrayList assertionList = new ArrayList();
+    private ArrayList<BaseAssertion> assertionList = new ArrayList<BaseAssertion>();
 
 
     /**
@@ -163,7 +162,7 @@ public class Assertions extends DataType
      * for adding to a command line
      * @param commandList the command line to format
      */
-    public void applyAssertions(List commandList) {
+    public void applyAssertions(List<String> commandList) {
         getProject().log("Applying assertions", Project.MSG_DEBUG);
         Assertions clause = getFinalReference();
         //do the system assertions
@@ -176,9 +175,7 @@ public class Assertions extends DataType
         }
 
         //now any inner assertions
-        Iterator it = clause.assertionList.iterator();
-        while (it.hasNext()) {
-            BaseAssertion assertion = (BaseAssertion) it.next();
+        for (BaseAssertion assertion : clause.assertionList) {
             String arg = assertion.toCommand();
             getProject().log("adding assertion " + arg, Project.MSG_DEBUG);
             commandList.add(arg);
@@ -199,9 +196,7 @@ public class Assertions extends DataType
         }
 
         //now any inner assertions
-        Iterator it = clause.assertionList.iterator();
-        while (it.hasNext()) {
-            BaseAssertion assertion = (BaseAssertion) it.next();
+        for (BaseAssertion assertion : clause.assertionList) {
             String arg = assertion.toCommand();
             addVmArgument(command, arg);
         }
@@ -212,7 +207,7 @@ public class Assertions extends DataType
      * for adding to a command line
      * @param commandIterator list of commands
      */
-    public void applyAssertions(final ListIterator commandIterator) {
+    public void applyAssertions(final ListIterator<String> commandIterator) {
         getProject().log("Applying assertions", Project.MSG_DEBUG);
         Assertions clause = getFinalReference();
         //do the system assertions
@@ -225,9 +220,7 @@ public class Assertions extends DataType
         }
 
         //now any inner assertions
-        Iterator it = clause.assertionList.iterator();
-        while (it.hasNext()) {
-            BaseAssertion assertion = (BaseAssertion) it.next();
+        for (BaseAssertion assertion : clause.assertionList) {
             String arg = assertion.toCommand();
             getProject().log("adding assertion " + arg, Project.MSG_DEBUG);
             commandIterator.add(arg);
@@ -254,7 +247,7 @@ public class Assertions extends DataType
      */
     public Object clone() throws CloneNotSupportedException {
         Assertions that = (Assertions) super.clone();
-        that.assertionList = (ArrayList) assertionList.clone();
+        that.assertionList = new ArrayList<BaseAssertion>(assertionList);
         return that;
     }
 

Modified: ant/core/trunk/src/main/org/apache/tools/ant/types/Commandline.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/Commandline.java?rev=1376015&r1=1376014&r2=1376015&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/types/Commandline.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/types/Commandline.java Wed Aug 22 12:32:43 2012
@@ -20,7 +20,6 @@ package org.apache.tools.ant.types;
 
 import java.io.File;
 import java.util.StringTokenizer;
-import java.util.Vector;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.ListIterator;
@@ -59,7 +58,7 @@ public class Commandline implements Clon
     /**
      * The arguments of the command
      */
-    private Vector arguments = new Vector();
+    private List<Argument> arguments = new ArrayList<Argument>();
 
     /**
      * the program to execute
@@ -232,7 +231,7 @@ public class Commandline implements Clon
             if (realPos == -1) {
                 realPos = (executable == null ? 0 : 1);
                 for (int i = 0; i < position; i++) {
-                    Argument arg = (Argument) arguments.elementAt(i);
+                    Argument arg = (Argument) arguments.get(i);
                     realPos += arg.getParts().length;
                 }
             }
@@ -306,9 +305,9 @@ public class Commandline implements Clon
     public Argument createArgument(boolean insertAtStart) {
         Argument argument = new Argument();
         if (insertAtStart) {
-            arguments.insertElementAt(argument, 0);
+            arguments.add(0, argument);
         } else {
-            arguments.addElement(argument);
+            arguments.add(argument);
         }
         return argument;
     }
@@ -349,11 +348,9 @@ public class Commandline implements Clon
      * @return the commandline as an array of strings.
      */
     public String[] getCommandline() {
-        List commands = new LinkedList();
-        ListIterator list = commands.listIterator();
-        addCommandToList(list);
-        final String[] result = new String[commands.size()];
-        return (String[]) commands.toArray(result);
+        final List<String> commands = new LinkedList<String>();
+        addCommandToList(commands.listIterator());
+        return commands.toArray(new String[commands.size()]);
     }
 
     /**
@@ -361,7 +358,7 @@ public class Commandline implements Clon
      * @param list the list to add to.
      * @since Ant 1.6
      */
-    public void addCommandToList(ListIterator list) {
+    public void addCommandToList(ListIterator<String> list) {
         if (executable != null) {
             list.add(executable);
         }
@@ -374,10 +371,9 @@ public class Commandline implements Clon
      * @return the arguments as an array of strings.
      */
     public String[] getArguments() {
-        List result = new ArrayList(arguments.size() * 2);
+        List<String> result = new ArrayList<String>(arguments.size() * 2);
         addArgumentsToList(result.listIterator());
-        String [] res = new String[result.size()];
-        return (String[]) result.toArray(res);
+        return result.toArray(new String[result.size()]);
     }
 
     /**
@@ -385,10 +381,10 @@ public class Commandline implements Clon
      * @param list the list of arguments.
      * @since Ant 1.6
      */
-    public void addArgumentsToList(ListIterator list) {
+    public void addArgumentsToList(ListIterator<String> list) {
         final int size = arguments.size();
         for (int i = 0; i < size; i++) {
-            Argument arg = (Argument) arguments.elementAt(i);
+            Argument arg = arguments.get(i);
             String[] s = arg.getParts();
             if (s != null) {
                 for (int j = 0; j < s.length; j++) {
@@ -448,7 +444,7 @@ public class Commandline implements Clon
             return "";
         }
         // path containing one or more elements
-        final StringBuffer result = new StringBuffer();
+        final StringBuilder result = new StringBuilder();
         for (int i = 0; i < line.length; i++) {
             if (i > 0) {
                 result.append(' ');
@@ -475,9 +471,9 @@ public class Commandline implements Clon
         final int inQuote = 1;
         final int inDoubleQuote = 2;
         int state = normal;
-        StringTokenizer tok = new StringTokenizer(toProcess, "\"\' ", true);
-        Vector v = new Vector();
-        StringBuffer current = new StringBuffer();
+        final StringTokenizer tok = new StringTokenizer(toProcess, "\"\' ", true);
+        final ArrayList<String> result = new ArrayList<String>();
+        final StringBuilder current = new StringBuilder();
         boolean lastTokenHasBeenQuoted = false;
 
         while (tok.hasMoreTokens()) {
@@ -506,8 +502,8 @@ public class Commandline implements Clon
                     state = inDoubleQuote;
                 } else if (" ".equals(nextTok)) {
                     if (lastTokenHasBeenQuoted || current.length() != 0) {
-                        v.addElement(current.toString());
-                        current = new StringBuffer();
+                        result.add(current.toString());
+                        current.setLength(0);
                     }
                 } else {
                     current.append(nextTok);
@@ -517,14 +513,12 @@ public class Commandline implements Clon
             }
         }
         if (lastTokenHasBeenQuoted || current.length() != 0) {
-            v.addElement(current.toString());
+            result.add(current.toString());
         }
         if (state == inQuote || state == inDoubleQuote) {
             throw new BuildException("unbalanced quotes in " + toProcess);
         }
-        String[] args = new String[v.size()];
-        v.copyInto(args);
-        return args;
+        return result.toArray(new String[result.size()]);
     }
 
     /**
@@ -543,7 +537,7 @@ public class Commandline implements Clon
     public Object clone() {
         try {
             Commandline c = (Commandline) super.clone();
-            c.arguments = (Vector) arguments.clone();
+            c.arguments = new ArrayList<Argument>(arguments);
             return c;
         } catch (CloneNotSupportedException e) {
             throw new BuildException(e);
@@ -555,7 +549,7 @@ public class Commandline implements Clon
      */
     public void clear() {
         executable = null;
-        arguments.removeAllElements();
+        arguments.clear();
     }
 
     /**
@@ -563,7 +557,7 @@ public class Commandline implements Clon
      * another operation.
      */
     public void clearArgs() {
-        arguments.removeAllElements();
+        arguments.clear();
     }
 
     /**
@@ -689,7 +683,7 @@ public class Commandline implements Clon
      * @since Ant 1.7
      * @return an Iterator.
      */
-    public Iterator iterator() {
+    public Iterator<Argument> iterator() {
         return arguments.iterator();
     }
 }

Modified: ant/core/trunk/src/main/org/apache/tools/ant/types/CommandlineJava.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/CommandlineJava.java?rev=1376015&r1=1376014&r2=1376015&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/types/CommandlineJava.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/types/CommandlineJava.java Wed Aug 22 12:32:43 2012
@@ -79,7 +79,7 @@ public class CommandlineJava implements 
         /** the system properties. */
         Properties sys = null;
         // CheckStyle:VisibilityModifier ON
-        private Vector propertySets = new Vector();
+        private Vector<PropertySet> propertySets = new Vector<PropertySet>();
 
         /**
          * Get the properties as an array; this is an override of the
@@ -89,13 +89,12 @@ public class CommandlineJava implements 
          */
         public String[] getVariables() throws BuildException {
 
-            List definitions = new LinkedList();
-            ListIterator list = definitions.listIterator();
-            addDefinitionsToList(list);
+            List<String> definitions = new LinkedList<String>();
+            addDefinitionsToList(definitions.listIterator());
             if (definitions.size() == 0) {
                 return null;
             } else {
-                return (String[]) definitions.toArray(new String[definitions.size()]);
+                return definitions.toArray(new String[definitions.size()]);
             }
         }
 
@@ -103,7 +102,7 @@ public class CommandlineJava implements 
          * Add all definitions (including property sets) to a list.
          * @param listIt list iterator supporting add method.
          */
-        public void addDefinitionsToList(ListIterator listIt) {
+        public void addDefinitionsToList(ListIterator<String> listIt) {
             String[] props = super.getVariables();
             if (props != null) {
                 for (int i = 0; i < props.length; i++) {
@@ -111,7 +110,7 @@ public class CommandlineJava implements 
                 }
             }
             Properties propertySetProperties = mergePropertySets();
-            for (Enumeration e = propertySetProperties.keys();
+            for (Enumeration<?> e = propertySetProperties.keys();
                  e.hasMoreElements();) {
                 String key = (String) e.nextElement();
                 String value = propertySetProperties.getProperty(key);
@@ -138,7 +137,7 @@ public class CommandlineJava implements 
             try {
                 sys = System.getProperties();
                 Properties p = new Properties();
-                for (Enumeration e = sys.propertyNames(); e.hasMoreElements();) {
+                for (Enumeration<?> e = sys.propertyNames(); e.hasMoreElements();) {
                     String name = (String) e.nextElement();
                     String value = sys.getProperty(name);
                     if (name != null && value != null) {
@@ -146,8 +145,7 @@ public class CommandlineJava implements 
                     }
                 }
                 p.putAll(mergePropertySets());
-                for (Enumeration e = variables.elements(); e.hasMoreElements();) {
-                    Environment.Variable v = (Environment.Variable) e.nextElement();
+                for (Environment.Variable v : variables) {
                     v.validate();
                     p.put(v.getKey(), v.getValue());
                 }
@@ -180,11 +178,12 @@ public class CommandlineJava implements 
          * @return a cloned instance of SysProperties.
          * @exception CloneNotSupportedException for signature.
          */
+        @SuppressWarnings("unchecked")
         public Object clone() throws CloneNotSupportedException {
             try {
                 SysProperties c = (SysProperties) super.clone();
-                c.variables = (Vector) variables.clone();
-                c.propertySets = (Vector) propertySets.clone();
+                c.variables = (Vector<Environment.Variable>) variables.clone();
+                c.propertySets = (Vector<PropertySet>) propertySets.clone();
                 return c;
             } catch (CloneNotSupportedException e) {
                 return null;
@@ -215,9 +214,7 @@ public class CommandlineJava implements 
          */
         private Properties mergePropertySets() {
             Properties p = new Properties();
-            for (Enumeration e = propertySets.elements();
-                 e.hasMoreElements();) {
-                PropertySet ps = (PropertySet) e.nextElement();
+            for (PropertySet ps : propertySets) {
                 p.putAll(ps.getProperties());
             }
             return p;
@@ -399,12 +396,11 @@ public class CommandlineJava implements 
      */
     public String[] getCommandline() {
         //create the list
-        List commands = new LinkedList();
-        final ListIterator listIterator = commands.listIterator();
+        List<String> commands = new LinkedList<String>();
         //fill it
-        addCommandsToList(listIterator);
+        addCommandsToList(commands.listIterator());
         //convert to an array
-        return (String[]) commands.toArray(new String[commands.size()]);
+        return commands.toArray(new String[commands.size()]);
     }
 
     /**
@@ -412,7 +408,7 @@ public class CommandlineJava implements 
      * @param listIterator an iterator that supports the add method.
      * @since Ant 1.6
      */
-    private void addCommandsToList(final ListIterator listIterator) {
+    private void addCommandsToList(final ListIterator<String> listIterator) {
         //create the command to run Java, including user specified options
         getActualVMCommand().addCommandToList(listIterator);
         // properties are part of the vm options...

Modified: ant/core/trunk/src/main/org/apache/tools/ant/types/Description.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/Description.java?rev=1376015&r1=1376014&r2=1376015&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/types/Description.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/types/Description.java Wed Aug 22 12:32:43 2012
@@ -25,7 +25,8 @@ import org.apache.tools.ant.UnknownEleme
 import org.apache.tools.ant.Target;
 import org.apache.tools.ant.helper.ProjectHelperImpl;
 
-import java.util.Vector;
+import java.util.ArrayList;
+import java.util.List;
 
 
 /**
@@ -50,7 +51,7 @@ public class Description extends DataTyp
      */
     public void addText(String text) {
 
-        ProjectHelper ph = (ProjectHelper) getProject().getReference(ProjectHelper.PROJECTHELPER_REFERENCE);
+        ProjectHelper ph = getProject().getReference(ProjectHelper.PROJECTHELPER_REFERENCE);
         if (!(ph instanceof ProjectHelperImpl)) {
             // New behavior for delayed task creation. Description
             // will be evaluated in Project.getDescription()
@@ -73,31 +74,23 @@ public class Description extends DataTyp
      *         the targets.
      */
     public static String getDescription(Project project) {
-        Vector targets = (Vector) project.getReference(ProjectHelper2.REFID_TARGETS);
+        List<Target> targets = project.getReference(ProjectHelper2.REFID_TARGETS);
         if (targets == null) {
             return null;
         }
-        StringBuffer description = new StringBuffer();
-        final int size = targets.size();
-        for (int i = 0; i < size; i++) {
-            Target t = (Target) targets.elementAt(i);
+        StringBuilder description = new StringBuilder();
+        for (Target t : targets) {
             concatDescriptions(project, t, description);
         }
         return description.toString();
     }
 
     private static void concatDescriptions(Project project, Target t,
-                                           StringBuffer description) {
+                                           StringBuilder description) {
         if (t == null) {
             return;
         }
-        Vector tasks = findElementInTarget(project, t, "description");
-        if (tasks == null) {
-            return;
-        }
-        final int size = tasks.size();
-        for (int i = 0; i < size; i++) {
-            Task task = (Task) tasks.elementAt(i);
+        for (Task task : findElementInTarget(project, t, "description")) {
             if (!(task instanceof UnknownElement)) {
                 continue;
             }
@@ -109,13 +102,12 @@ public class Description extends DataTyp
         }
     }
 
-    private static Vector findElementInTarget(Project project,
+    private static List<Task> findElementInTarget(Project project,
                                               Target t, String name) {
-        Task[] tasks = t.getTasks();
-        Vector elems = new Vector();
-        for (int i = 0; i < tasks.length; i++) {
-            if (name.equals(tasks[i].getTaskName())) {
-                elems.addElement(tasks[i]);
+        final List<Task> elems = new ArrayList<Task>();
+        for (Task task : t.getTasks()) {
+            if (name.equals(task.getTaskName())) {
+                elems.add(task);
             }
         }
         return elems;

Modified: ant/core/trunk/src/main/org/apache/tools/ant/types/EnumeratedAttribute.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/EnumeratedAttribute.java?rev=1376015&r1=1376014&r2=1376015&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/types/EnumeratedAttribute.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/types/EnumeratedAttribute.java Wed Aug 22 12:32:43 2012
@@ -67,7 +67,7 @@ public abstract class EnumeratedAttribut
      * http://issues.apache.org/bugzilla/show_bug.cgi?id=14831</a>
      */
     public static EnumeratedAttribute getInstance(
-        Class/*<? extends EnumeratedAttribute>*/ clazz,
+        Class<? extends EnumeratedAttribute> clazz,
         String value) throws BuildException {
         if (!EnumeratedAttribute.class.isAssignableFrom(clazz)) {
             throw new BuildException(
@@ -75,7 +75,7 @@ public abstract class EnumeratedAttribut
         }
         EnumeratedAttribute ea = null;
         try {
-            ea = (EnumeratedAttribute) clazz.newInstance();
+            ea = clazz.newInstance();
         } catch (Exception e) {
             throw new BuildException(e);
         }

Modified: ant/core/trunk/src/main/org/apache/tools/ant/types/FileList.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/FileList.java?rev=1376015&r1=1376014&r2=1376015&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/types/FileList.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/types/FileList.java Wed Aug 22 12:32:43 2012
@@ -19,8 +19,9 @@
 package org.apache.tools.ant.types;
 
 import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.StringTokenizer;
-import java.util.Vector;
 import java.util.Iterator;
 
 import org.apache.tools.ant.Project;
@@ -36,7 +37,7 @@ import org.apache.tools.ant.types.resour
  */
 public class FileList extends DataType implements ResourceCollection {
 
-    private Vector filenames = new Vector();
+    private List<String> filenames = new ArrayList<String>();
     private File dir;
 
     /**
@@ -108,7 +109,7 @@ public class FileList extends DataType i
             StringTokenizer tok = new StringTokenizer(
                 filenames, ", \t\n\r\f", false);
             while (tok.hasMoreTokens()) {
-               this.filenames.addElement(tok.nextToken());
+               this.filenames.add(tok.nextToken());
             }
         }
     }
@@ -131,9 +132,7 @@ public class FileList extends DataType i
             throw new BuildException("No files specified for filelist.");
         }
 
-        String[] result = new String[filenames.size()];
-        filenames.copyInto(result);
-        return result;
+        return filenames.toArray(new String[filenames.size()]);
     }
 
     /**
@@ -180,7 +179,7 @@ public class FileList extends DataType i
             throw new BuildException(
                 "No name specified in nested file element");
         }
-        filenames.addElement(name.getName());
+        filenames.add(name.getName());
     }
 
     /**
@@ -190,10 +189,10 @@ public class FileList extends DataType i
      */
     public Iterator<Resource> iterator() {
         if (isReference()) {
-            return ((FileList) getRef(getProject())).iterator();
+            return getRef(getProject()).iterator();
         }
         return new FileResourceIterator(getProject(), dir,
-            (String[]) (filenames.toArray(new String[filenames.size()])));
+            filenames.toArray(new String[filenames.size()]));
     }
 
     /**

Modified: ant/core/trunk/src/main/org/apache/tools/ant/types/FilterSetCollection.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/FilterSetCollection.java?rev=1376015&r1=1376014&r2=1376015&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/types/FilterSetCollection.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/types/FilterSetCollection.java Wed Aug 22 12:32:43 2012
@@ -17,18 +17,8 @@
  */
 package org.apache.tools.ant.types;
 
-// java io classes
-
-
-
-
-// java util classes
-import java.util.Enumeration;
-import java.util.Vector;
-
-// ant classes
-
-
+import java.util.ArrayList;
+import java.util.List;
 
 
 /**
@@ -38,7 +28,7 @@ import java.util.Vector;
  */
 public class FilterSetCollection {
 
-    private Vector filterSets = new Vector();
+    private List<FilterSet> filterSets = new ArrayList<FilterSet>();
 
     /**
      * Constructor for a FilterSetCollection.
@@ -61,7 +51,7 @@ public class FilterSetCollection {
      * @param filterSet a <code>FilterSet</code> value
      */
     public void addFilterSet(FilterSet filterSet) {
-        filterSets.addElement(filterSet);
+        filterSets.add(filterSet);
     }
 
     /**
@@ -73,8 +63,7 @@ public class FilterSetCollection {
      */
     public String replaceTokens(String line) {
         String replacedLine = line;
-        for (Enumeration e = filterSets.elements(); e.hasMoreElements();) {
-            FilterSet filterSet = (FilterSet) e.nextElement();
+        for (FilterSet filterSet : filterSets) {
             replacedLine = filterSet.replaceTokens(replacedLine);
         }
         return replacedLine;
@@ -86,8 +75,7 @@ public class FilterSetCollection {
     * @return   Return true if there are filter in this set otherwise false.
     */
     public boolean hasFilters() {
-        for (Enumeration e = filterSets.elements(); e.hasMoreElements();) {
-            FilterSet filterSet = (FilterSet) e.nextElement();
+        for (FilterSet filterSet : filterSets) {
             if (filterSet.hasFilters()) {
                 return true;
             }

Modified: ant/core/trunk/src/main/org/apache/tools/ant/types/Mapper.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/Mapper.java?rev=1376015&r1=1376014&r2=1376015&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/types/Mapper.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/types/Mapper.java Wed Aug 22 12:32:43 2012
@@ -230,8 +230,7 @@ public class Mapper extends DataType imp
         }
 
         try {
-            FileNameMapper m
-                = (FileNameMapper) (getImplementationClass().newInstance());
+            FileNameMapper m = getImplementationClass().newInstance();
             final Project p = getProject();
             if (p != null) {
                 p.setProjectReference(m);
@@ -252,7 +251,7 @@ public class Mapper extends DataType imp
      * @return <code>Class</code>.
      * @throws ClassNotFoundException if the class cannot be found
      */
-    protected Class getImplementationClass() throws ClassNotFoundException {
+    protected Class<? extends FileNameMapper> getImplementationClass() throws ClassNotFoundException {
 
         String cName = this.classname;
         if (type != null) {
@@ -264,7 +263,7 @@ public class Mapper extends DataType imp
             // Memory leak in line below
             : getProject().createClassLoader(classpath);
 
-        return Class.forName(cName, true, loader);
+        return Class.forName(cName, true, loader).asSubclass(FileNameMapper.class);
     }
 
     /**
@@ -275,7 +274,7 @@ public class Mapper extends DataType imp
      * @return the referenced Mapper
      */
     protected Mapper getRef() {
-        return (Mapper) getCheckedRef();
+        return getCheckedRef(Mapper.class, getDataTypeName());
     }
 
     /**

Modified: ant/core/trunk/src/main/org/apache/tools/ant/types/PatternSet.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/PatternSet.java?rev=1376015&r1=1376014&r2=1376015&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/types/PatternSet.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/types/PatternSet.java Wed Aug 22 12:32:43 2012
@@ -21,9 +21,9 @@ import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileReader;
 import java.io.IOException;
-import java.util.Enumeration;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.StringTokenizer;
-import java.util.Vector;
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.PropertyHelper;
@@ -37,10 +37,10 @@ import org.apache.tools.ant.util.FileUti
  *
  */
 public class PatternSet extends DataType implements Cloneable {
-    private Vector includeList = new Vector();
-    private Vector excludeList = new Vector();
-    private Vector includesFileList = new Vector();
-    private Vector excludesFileList = new Vector();
+    private List<NameEntry> includeList = new ArrayList<NameEntry>();
+    private List<NameEntry> excludeList = new ArrayList<NameEntry>();
+    private List<NameEntry> includesFileList = new ArrayList<NameEntry>();
+    private List<NameEntry> excludesFileList = new ArrayList<NameEntry>();
 
     /**
      * inner class to hold a name on list.  "If" and "Unless" attributes
@@ -318,9 +318,9 @@ public class PatternSet extends DataType
     /**
      * add a name entry to the given list
      */
-    private NameEntry addPatternToList(Vector list) {
+    private NameEntry addPatternToList(List<NameEntry> list) {
         NameEntry result = new NameEntry();
-        list.addElement(result);
+        list.add(result);
         return result;
     }
 
@@ -354,7 +354,7 @@ public class PatternSet extends DataType
      *  Reads path matching patterns from a file and adds them to the
      *  includes or excludes list (as appropriate).
      */
-    private void readPatterns(File patternfile, Vector patternlist, Project p)
+    private void readPatterns(File patternfile, List<NameEntry> patternlist, Project p)
             throws BuildException {
 
         BufferedReader patternReader = null;
@@ -458,21 +458,18 @@ public class PatternSet extends DataType
     /**
      * Convert a vector of NameEntry elements into an array of Strings.
      */
-    private String[] makeArray(Vector list, Project p) {
+    private String[] makeArray(List<NameEntry> list, Project p) {
         if (list.size() == 0) {
             return null;
         }
-        Vector tmpNames = new Vector();
-        for (Enumeration e = list.elements(); e.hasMoreElements();) {
-            NameEntry ne = (NameEntry) e.nextElement();
+        ArrayList<String> tmpNames = new ArrayList<String>();
+        for (NameEntry ne : list) {
             String pattern = ne.evalName(p);
             if (pattern != null && pattern.length() > 0) {
-                tmpNames.addElement(pattern);
+                tmpNames.add(pattern);
             }
         }
-        String[] result = new String[tmpNames.size()];
-        tmpNames.copyInto(result);
-        return result;
+        return tmpNames.toArray(new String[tmpNames.size()]);
     }
 
     /**
@@ -480,9 +477,7 @@ public class PatternSet extends DataType
      */
     private void readFiles(Project p) {
         if (includesFileList.size() > 0) {
-            Enumeration e = includesFileList.elements();
-            while (e.hasMoreElements()) {
-                NameEntry ne = (NameEntry) e.nextElement();
+            for (NameEntry ne : includesFileList) {
                 String fileName = ne.evalName(p);
                 if (fileName != null) {
                     File inclFile = p.resolveFile(fileName);
@@ -493,12 +488,10 @@ public class PatternSet extends DataType
                     readPatterns(inclFile, includeList, p);
                 }
             }
-            includesFileList.removeAllElements();
+            includesFileList.clear();
         }
         if (excludesFileList.size() > 0) {
-            Enumeration e = excludesFileList.elements();
-            while (e.hasMoreElements()) {
-                NameEntry ne = (NameEntry) e.nextElement();
+            for (NameEntry ne : excludesFileList) {
                 String fileName = ne.evalName(p);
                 if (fileName != null) {
                     File exclFile = p.resolveFile(fileName);
@@ -509,7 +502,7 @@ public class PatternSet extends DataType
                     readPatterns(exclFile, excludeList, p);
                 }
             }
-            excludesFileList.removeAllElements();
+            excludesFileList.clear();
         }
     }
 
@@ -527,10 +520,10 @@ public class PatternSet extends DataType
     public Object clone() {
         try {
             PatternSet ps = (PatternSet) super.clone();
-            ps.includeList = (Vector) includeList.clone();
-            ps.excludeList = (Vector) excludeList.clone();
-            ps.includesFileList = (Vector) includesFileList.clone();
-            ps.excludesFileList = (Vector) excludesFileList.clone();
+            ps.includeList = new ArrayList<NameEntry>(includeList);
+            ps.excludeList = new ArrayList<NameEntry>(excludeList);
+            ps.includesFileList = new ArrayList<NameEntry>(includesFileList);
+            ps.excludesFileList = new ArrayList<NameEntry>(excludesFileList);
             return ps;
         } catch (CloneNotSupportedException e) {
             throw new BuildException(e);

Modified: ant/core/trunk/src/main/org/apache/tools/ant/types/Permissions.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/Permissions.java?rev=1376015&r1=1376014&r2=1376015&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/types/Permissions.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/types/Permissions.java Wed Aug 22 12:32:43 2012
@@ -21,7 +21,6 @@ package org.apache.tools.ant.types;
 import java.lang.reflect.Constructor;
 import java.security.UnresolvedPermission;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Set;
@@ -45,15 +44,15 @@ import org.apache.tools.ant.ExitExceptio
  */
 public class Permissions {
 
-    private List grantedPermissions = new LinkedList();
-    private List revokedPermissions = new LinkedList();
+    private List<Permission> grantedPermissions = new LinkedList<Permission>();
+    private List<Permission> revokedPermissions = new LinkedList<Permission>();
     private java.security.Permissions granted = null;
     private SecurityManager origSm = null;
     private boolean active = false;
     private boolean delegateToOldSM;
 
     // Mandatory constructor for permission object.
-    private static final Class[] PARAMS = {String.class, String.class};
+    private static final Class<?>[] PARAMS = {String.class, String.class};
 
     /**
      * Create a set of Permissions.  Equivalent to calling
@@ -108,14 +107,12 @@ public class Permissions {
      */
     private void init() throws BuildException {
         granted = new java.security.Permissions();
-        for (Iterator i = revokedPermissions.listIterator(); i.hasNext();) {
-            Permissions.Permission p = (Permissions.Permission) i.next();
+        for (Permissions.Permission p : revokedPermissions) {
             if (p.getClassName() == null) {
                 throw new BuildException("Revoked permission " + p + " does not contain a class.");
             }
         }
-        for (Iterator i = grantedPermissions.listIterator(); i.hasNext();) {
-            Permissions.Permission p = (Permissions.Permission) i.next();
+        for (Permissions.Permission p : grantedPermissions) {
             if (p.getClassName() == null) {
                 throw new BuildException("Granted permission " + p
                         + " does not contain a class.");
@@ -153,12 +150,12 @@ public class Permissions {
         try {
             // First add explicitly already resolved permissions will not be
             // resolved when added as unresolved permission.
-            Class clazz = Class.forName(permission.getClassName());
+            Class<? extends java.security.Permission> clazz = Class.forName(
+                    permission.getClassName()).asSubclass(java.security.Permission.class);
             String name = permission.getName();
             String actions = permission.getActions();
-            Constructor ctr = clazz.getConstructor(PARAMS);
-            return (java.security.Permission) ctr.newInstance(new Object[] {
-                    name, actions });
+            Constructor<? extends java.security.Permission> ctr = clazz.getConstructor(PARAMS);
+            return ctr.newInstance(new Object[] { name, actions });
         } catch (Exception e) {
             // Let the UnresolvedPermission handle it.
             return new UnresolvedPermission(permission.getClassName(),
@@ -232,12 +229,11 @@ public class Permissions {
          * @param perm the permission being checked
          */
         private void checkRevoked(java.security.Permission perm) {
-            for (Iterator i = revokedPermissions.listIterator(); i.hasNext();) {
-                if (((Permissions.Permission) i.next()).matches(perm)) {
+            for (Permissions.Permission revoked : revokedPermissions) {
+                if (revoked.matches(perm)) {
                     throw new SecurityException("Permission " + perm + " was revoked.");
                 }
             }
-
         }
     }
 
@@ -246,14 +242,14 @@ public class Permissions {
         private String className;
         private String name;
         private String actionString;
-        private Set actions;
+        private Set<String> actions;
 
         /**
          * Set the class, mandatory.
          * @param aClass The class name of the permission.
          */
         public void setClass(String aClass) {
-                className = aClass.trim();
+            className = aClass.trim();
         }
 
         /**
@@ -319,7 +315,7 @@ public class Permissions {
                 }
             }
             if (actions != null) {
-                Set as = parseActions(perm.getActions());
+                Set<String> as = parseActions(perm.getActions());
                 int size = as.size();
                 as.removeAll(actions);
                 if (as.size() == size) {
@@ -334,8 +330,8 @@ public class Permissions {
          * Parses the actions into a set of separate strings.
          * @param actions The actions to be parsed.
          */
-        private Set parseActions(String actions) {
-            Set result = new HashSet();
+        private Set<String> parseActions(String actions) {
+            Set<String> result = new HashSet<String>();
             StringTokenizer tk = new StringTokenizer(actions, ",");
             while (tk.hasMoreTokens()) {
                 String item = tk.nextToken().trim();