Revert "Bug 395421 - Update to Ant 1.9.2"

This reverts commit 22637807d4259640c13623980463e0b10ea9f453.
diff --git a/ant/org.eclipse.ant.core/META-INF/MANIFEST.MF b/ant/org.eclipse.ant.core/META-INF/MANIFEST.MF
index 69f0879..8b91a3d 100644
--- a/ant/org.eclipse.ant.core/META-INF/MANIFEST.MF
+++ b/ant/org.eclipse.ant.core/META-INF/MANIFEST.MF
@@ -16,7 +16,7 @@
  org.eclipse.ant.internal.core.contentDescriber;x-internal:=true
 Require-Bundle: org.eclipse.core.variables;bundle-version="[3.1.0,4.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
- org.apache.ant;bundle-version="1.9.2"
+ org.apache.ant;bundle-version="1.8.4"
 Bundle-ActivationPolicy: lazy;exclude:="org.eclipse.ant.internal.core.contentDescriber"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ClassPath: .
diff --git a/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/EclipseAntMain.java b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/EclipseAntMain.java
index 614a15c..92fb588 100644
--- a/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/EclipseAntMain.java
+++ b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/EclipseAntMain.java
@@ -11,6 +11,9 @@
 
 package org.eclipse.ant.internal.core.ant;
 
+import java.util.Iterator;
+import java.util.Vector;
+
 import org.apache.tools.ant.BuildListener;
 import org.apache.tools.ant.Main;
 import org.apache.tools.ant.Project;
@@ -28,22 +31,22 @@
 		Main projectHelpMain = new EclipseAntMain(eclipseAntProject);
 		projectHelpMain.startAnt(args, null, null);
 	}
-
+	
 	/*
 	 * @see org.apache.tools.ant.Main#exit(int)
 	 */
-	@Override
 	protected void exit(int exitCode) {
-		// disallow system exit
+		//disallow system exit
 	}
-
+	
 	/*
 	 * @see org.apache.tools.ant.Main#addBuildListeners(org.apache.tools.ant.Project)
 	 */
-	@Override
 	protected void addBuildListeners(Project project) {
-		for (BuildListener listener : fEclipseAntProject.getBuildListeners()) {
-			project.addBuildListener(listener);
+		//TODO ANT-1.9.1 API USE
+		Vector<?> list = fEclipseAntProject.getBuildListeners();
+		for (Iterator<?> i = list.iterator(); i.hasNext();) {
+			project.addBuildListener((BuildListener) i.next());
 		}
 	}
 }
diff --git a/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/InternalAntRunner.java b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/InternalAntRunner.java
index 66aa3ae..b86234c 100644
--- a/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/InternalAntRunner.java
+++ b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/InternalAntRunner.java
@@ -11,7 +11,7 @@
  *******************************************************************************/
 
 package org.eclipse.ant.internal.core.ant;
-
+ 
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
@@ -24,7 +24,6 @@
 import java.util.Arrays;
 import java.util.Enumeration;
 import java.util.HashMap;
-import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.List;
 import java.util.ListIterator;
@@ -72,8 +71,8 @@
 import org.osgi.framework.Bundle;
 
 /**
- * Eclipse application entry point into Ant. Derived from the original Ant Main class to ensure that the functionality is equivalent when running in
- * the platform.
+ * Eclipse application entry point into Ant. Derived from the original Ant Main class
+ * to ensure that the functionality is equivalent when running in the platform.
  */
 public class InternalAntRunner {
 
@@ -81,24 +80,24 @@
 	private ArrayList<String> buildListeners;
 	private String buildFileLocation;
 
-	/**
+	/** 
 	 * Targets we want to run.
 	 */
 	private Vector<String> targets;
 
 	private Map<String, String> userProperties;
-	private boolean noExplicitUserProperties = true;
-
+	private boolean noExplicitUserProperties= true;
+	
 	private Project currentProject;
-
+	
 	private String defaultTarget;
-
-	private BuildLogger buildLogger = null;
-
+	
+	private BuildLogger buildLogger= null;
+	
 	/**
 	 * Cache of the Ant version number when it has been loaded
 	 */
-	private String antVersionNumber = null;
+	private String antVersionNumber= null;
 
 	/** Current message output status. Follows Project.MSG_XXX */
 	private int messageOutputLevel = Project.MSG_INFO;
@@ -116,51 +115,50 @@
 	private PrintStream err = System.err;
 
 	/**
-	 * The Ant logger class. There may be only one logger. It will have the right to use the 'out' PrintStream. The class must implement the
-	 * BuildLogger interface. An empty String indicates that no logger is to be used. A <code>null</code> name indicates that the
-	 * <code>org.apache.tools.ant.DefaultLogger</code> will be used.
+	 * The Ant logger class. There may be only one logger. It will have the
+	 * right to use the 'out' PrintStream. The class must implement the BuildLogger
+	 * interface.  An empty String indicates that no logger is to be used.  A <code>null</code>
+	 * name indicates that the <code>org.apache.tools.ant.DefaultLogger</code> will be used.
 	 */
 	private String loggerClassname = null;
 
 	/** Extra arguments to be parsed as command line arguments. */
 	private String[] extraArguments = null;
-
+	
 	private boolean executed = false;
-
-	private ArrayList<String> propertyFiles = new ArrayList<String>();
-
-	private URL[] customClasspath = null;
-
+	
+	private ArrayList<String> propertyFiles= new ArrayList<String>();
+	
+	private URL[] customClasspath= null;
+	
 	/**
-	 * The Ant InputHandler class. There may be only one input handler.
-	 */
-	private String inputHandlerClassname = null;
+     * The Ant InputHandler class. There may be only one input handler.
+     */
+    private String inputHandlerClassname = null;
+    
+    private String buildAntHome= null;
+    
+    /** 
+     * Indicates whether to execute all targets that 
+     * do not depend on failed targets
+     * @since Ant 1.6.0
+     */
+    private boolean keepGoing= false;
 
-	private String buildAntHome = null;
-
-	/**
-	 * Indicates whether to execute all targets that do not depend on failed targets
-	 * 
-	 * @since Ant 1.6.0
-	 */
-	private boolean keepGoing = false;
-
-	/**
-	 * Indicates whether this build is to support interactive input
-	 * 
-	 * @since Ant 1.6.0
-	 */
-	private boolean allowInput = true;
-
-	private String fEarlyErrorMessage = null;
+    /** 
+     * Indicates whether this build is to support interactive input 
+     * @since Ant 1.6.0
+     */
+    private boolean allowInput = true;
+    
+    private String fEarlyErrorMessage= null;
 
 	private boolean unknownTargetsFound = false;
-
+    
 	/**
 	 * Adds a build listener.
 	 * 
-	 * @param classNames
-	 *            the fully qualified names of the build listeners to be added
+	 * @param classNames the fully qualified names of the build listeners to be added
 	 */
 	public void addBuildListeners(List<String> classNames) {
 		if (buildListeners == null) {
@@ -170,17 +168,15 @@
 	}
 
 	protected void addBuildListener(String clazz) {
-		if (buildListeners == null) {
+		if(buildListeners == null) {
 			buildListeners = new ArrayList<String>();
 		}
 		buildListeners.add(clazz);
 	}
-
+	
 	/**
 	 * Adds a build logger. There can be only one build logger.
-	 * 
-	 * @param className
-	 *            The fully qualified name of the build logger to add
+	 * @param className The fully qualified name of the build logger to add
 	 */
 	public void addBuildLogger(String className) {
 		loggerClassname = className;
@@ -188,9 +184,7 @@
 
 	/**
 	 * Adds user properties to the current collection of user properties.
-	 * 
-	 * @param properties
-	 *            The user properties to be added
+	 * @param properties The user properties to be added
 	 */
 	public void addUserProperties(Map<String, String> properties) {
 		if (userProperties == null) {
@@ -200,12 +194,10 @@
 		}
 		noExplicitUserProperties = false;
 	}
-
+	
 	/**
 	 * Adds user property files.
-	 * 
-	 * @param additionalPropertyFiles
-	 *            The property files to add
+	 * @param additionalPropertyFiles The property files to add
 	 * @since 2.1
 	 */
 	public void addPropertyFiles(String[] additionalPropertyFiles) {
@@ -215,15 +207,13 @@
 	/**
 	 * Tries to add the build listeners to the backing {@link Project}
 	 * 
-	 * @param project
-	 *            the project to add the listeners to
-	 * @param log
-	 *            if we should be logging {@link ClassCastException}s here or not.
+	 * @param project the project to add the listeners to
+	 * @param log if we should be logging {@link ClassCastException}s here or not.
 	 */
 	protected void addBuildListeners(Project project, boolean log) {
-		String className = null;
+		String className= null;
 		try {
-			BuildLogger logger = createLogger();
+			BuildLogger logger= createLogger();
 			if (logger != null) {
 				project.addBuildListener(logger);
 			}
@@ -234,18 +224,15 @@
 					project.addBuildListener((BuildListener) listener.newInstance());
 				}
 			}
-		}
-		catch (ClassCastException e) {
-			String message = MessageFormat.format(InternalAntMessages.InternalAntRunner_not_an_instance_of_apache_ant_BuildListener, new Object[] { className });
-			if (log) {
+		} catch (ClassCastException e) {
+			String message = MessageFormat.format(InternalAntMessages.InternalAntRunner_not_an_instance_of_apache_ant_BuildListener, new Object[]{className});
+			if(log) {
 				logMessage(null, message, Project.MSG_ERR);
 			}
 			throw new BuildException(message, e);
-		}
-		catch (BuildException e) {
+		} catch (BuildException e) {
 			throw e;
-		}
-		catch (Exception e) {
+		} catch (Exception e) {
 			throw new BuildException(e);
 		}
 	}
@@ -259,16 +246,15 @@
 				if (substituteVariables && value != null) {
 					try {
 						value = VariablesPlugin.getDefault().getStringVariableManager().performStringSubstitution(value);
-					}
-					catch (CoreException e) {
-						// do nothing
+					} catch (CoreException e) {
+						//do nothing
 					}
 				}
 				project.setUserProperty(entry.getKey(), value);
 			}
-			// may have properties set (always have the Ant process ID)
-			// using the Arguments and not the Properties page
-			// if set using the arguments, still include the global properties
+			//may have properties set (always have the Ant process ID)
+			//using the Arguments and not the Properties page
+			//if set using the arguments, still include the global properties
 			if (noExplicitUserProperties) {
 				setGlobalProperties(project, substituteVariables);
 			}
@@ -278,22 +264,23 @@
 	}
 
 	/**
-	 * Sets the default <code>ant.file</code> and <code>ant.version</code> properties in the given {@link Project}
+	 * Sets the default <code>ant.file</code> and <code>ant.version</code>
+	 * properties in the given {@link Project}
 	 * 
 	 * @param project
 	 */
 	protected void setBuiltInProperties(Project project) {
-		// note also see processAntHome for system properties that are set
+		//note also see processAntHome for system properties that are set
 		project.setUserProperty("ant.file", getBuildFileLocation()); //$NON-NLS-1$
 		project.setUserProperty("ant.version", Main.getAntVersion()); //$NON-NLS-1$
 	}
-
+	
 	private void setGlobalProperties(Project project, boolean substituteVariables) {
 		AntCorePreferences prefs = AntCorePlugin.getPlugin().getPreferences();
 		List<Property> properties = prefs.getProperties();
 		if (properties != null) {
 			for (Property property : properties) {
-				String value = property.getValue(substituteVariables);
+				String value= property.getValue(substituteVariables);
 				if (value != null) {
 					project.setUserProperty(property.getName(), value);
 				}
@@ -305,32 +292,29 @@
 		List<Task> tasks = AntCorePlugin.getPlugin().getPreferences().getTasks();
 		for (Task task : tasks) {
 			if (isVersionCompatible("1.6")) { //$NON-NLS-1$
-				AntTypeDefinition def = new AntTypeDefinition();
-				String name = ProjectHelper.genComponentName(task.getURI(), task.getTaskName());
+				AntTypeDefinition def= new AntTypeDefinition();
+				String name = ProjectHelper.genComponentName(task.getURI(),task.getTaskName());
 				def.setName(name);
-				def.setClassName(task.getClassName());
-				def.setClassLoader(this.getClass().getClassLoader());
-				def.setAdaptToClass(org.apache.tools.ant.Task.class);
-				def.setAdapterClass(TaskAdapter.class);
-				ComponentHelper.getComponentHelper(project).addDataTypeDefinition(def);
+	            def.setClassName(task.getClassName());
+	            def.setClassLoader(this.getClass().getClassLoader());
+	            def.setAdaptToClass(org.apache.tools.ant.Task.class);
+	            def.setAdapterClass(TaskAdapter.class);
+	            ComponentHelper.getComponentHelper(project).addDataTypeDefinition(def);
 			} else {
 				try {
 					Class<?> taskClass = Class.forName(task.getClassName());
 					if (isVersionCompatible("1.5")) { //$NON-NLS-1$
 						try {
 							project.checkTaskClass(taskClass);
-						}
-						catch (BuildException e) {
-							IStatus status = new Status(IStatus.ERROR, AntCorePlugin.PI_ANTCORE, AntCorePlugin.ERROR_RUNNING_BUILD, MessageFormat.format(InternalAntMessages.InternalAntRunner_Error_setting_Ant_task, new Object[] { task.getTaskName() }), e);
+						} catch (BuildException e) {
+							IStatus status = new Status(IStatus.ERROR, AntCorePlugin.PI_ANTCORE, AntCorePlugin.ERROR_RUNNING_BUILD, MessageFormat.format(InternalAntMessages.InternalAntRunner_Error_setting_Ant_task, new Object[]{task.getTaskName()}), e);
 							AntCorePlugin.getPlugin().getLog().log(status);
 							continue;
 						}
 					}
 					project.addTaskDefinition(task.getTaskName(), taskClass);
-				}
-				catch (ClassNotFoundException e) {
-					IStatus status = new Status(IStatus.ERROR, AntCorePlugin.PI_ANTCORE, AntCorePlugin.ERROR_RUNNING_BUILD, MessageFormat.format(InternalAntMessages.InternalAntRunner_Class_not_found_for_task, new Object[] {
-							task.getClassName(), task.getTaskName() }), e);
+				} catch (ClassNotFoundException e) {
+					IStatus status = new Status(IStatus.ERROR, AntCorePlugin.PI_ANTCORE, AntCorePlugin.ERROR_RUNNING_BUILD, MessageFormat.format(InternalAntMessages.InternalAntRunner_Class_not_found_for_task, new Object[]{task.getClassName(), task.getTaskName()}), e);
 					AntCorePlugin.getPlugin().getLog().log(status);
 				}
 			}
@@ -343,19 +327,17 @@
 			Type type = iterator.next();
 			if (isVersionCompatible("1.6")) { //$NON-NLS-1$
 				AntTypeDefinition def = new AntTypeDefinition();
-				String name = ProjectHelper.genComponentName(type.getURI(), type.getTypeName());
-				def.setName(name);
-				def.setClassName(type.getClassName());
-				def.setClassLoader(this.getClass().getClassLoader());
-				ComponentHelper.getComponentHelper(project).addDataTypeDefinition(def);
+				String name= ProjectHelper.genComponentName(type.getURI(), type.getTypeName());
+                def.setName(name);
+                def.setClassName(type.getClassName());
+                def.setClassLoader(this.getClass().getClassLoader());
+                ComponentHelper.getComponentHelper(project).addDataTypeDefinition(def);
 			} else {
 				try {
 					Class<?> typeClass = Class.forName(type.getClassName());
 					project.addDataTypeDefinition(type.getTypeName(), typeClass);
-				}
-				catch (ClassNotFoundException e) {
-					IStatus status = new Status(IStatus.ERROR, AntCorePlugin.PI_ANTCORE, AntCorePlugin.ERROR_RUNNING_BUILD, MessageFormat.format(InternalAntMessages.InternalAntRunner_Class_not_found_for_type, new Object[] {
-							type.getClassName(), type.getTypeName() }), e);
+				} catch (ClassNotFoundException e) {
+					IStatus status = new Status(IStatus.ERROR, AntCorePlugin.PI_ANTCORE, AntCorePlugin.ERROR_RUNNING_BUILD, MessageFormat.format(InternalAntMessages.InternalAntRunner_Class_not_found_for_type, new Object[]{type.getClassName(), type.getTypeName()}), e);
 					AntCorePlugin.getPlugin().getLog().log(status);
 				}
 			}
@@ -363,81 +345,86 @@
 	}
 
 	/**
-	 * Parses the build file and adds necessary information into the given project.
-	 * 
-	 * @param project
-	 *            The project to configure
+	 * Parses the build file and adds necessary information into
+	 * the given project.
+	 * @param project The project to configure
 	 */
 	protected void parseBuildFile(Project project) {
 		File buildFile = new File(getBuildFileLocation());
 		if (!buildFile.exists()) {
-			throw new BuildException(MessageFormat.format(InternalAntMessages.InternalAntRunner_Buildfile_does_not_exist, new Object[] { buildFile.getAbsolutePath() }));
+			throw new BuildException(MessageFormat.format(InternalAntMessages.InternalAntRunner_Buildfile_does_not_exist,
+						 new Object[]{buildFile.getAbsolutePath()}));
 		}
 		if (!buildFile.isFile()) {
-			throw new BuildException(MessageFormat.format(InternalAntMessages.InternalAntRunner_Buildfile_is_not_a_file, new Object[] { buildFile.getAbsolutePath() }));
+			throw new BuildException(MessageFormat.format(InternalAntMessages.InternalAntRunner_Buildfile_is_not_a_file,
+							new Object[]{buildFile.getAbsolutePath()}));
 		}
-
-		if (!isVersionCompatible("1.5")) { //$NON-NLS-1$
-			parseBuildFile(project, buildFile);
-		} else {
-			ProjectHelper helper = ProjectHelper.getProjectHelper();
-			project.addReference("ant.projectHelper", helper); //$NON-NLS-1$
-			helper.parse(project, buildFile);
-		}
+		
+        if (!isVersionCompatible("1.5")) { //$NON-NLS-1$
+            parseBuildFile(project, buildFile);
+        } else {
+            ProjectHelper helper = ProjectHelper.getProjectHelper();
+            project.addReference("ant.projectHelper", helper); //$NON-NLS-1$
+            helper.parse(project, buildFile);
+        }
 	}
+    
+    /**
+     * @deprecated support for Ant older than 1.5
+     */
+    private void parseBuildFile(Project project, File buildFile) {
+        ProjectHelper.configureProject(project, buildFile);   
+    }
 
 	/**
-	 * @deprecated support for Ant older than 1.5
-	 */
-	@Deprecated
-	private void parseBuildFile(Project project, File buildFile) {
-		ProjectHelper.configureProject(project, buildFile);
-	}
-
-	/**
-	 * Gets all the target information from the build script. Returns a list of lists. Each item in the enclosing list represents a target, where the
-	 * first element is the name, the second element is the description, the third element is the project name, and the last elements is an array of
-	 * dependencies.
-	 * 
+	 * Gets all the target information from the build script.
+	 * Returns a list of lists. Each item in the enclosing list represents a
+	 * target, where the first element is the name, the
+	 * second element is the description, the third element is the
+	 * project name, and the last elements is an array of dependencies.
 	 * @return a list of {@link TargetInfo} objects
 	 */
 	public List<TargetInfo> getTargets() {
 		try {
-			setJavaClassPath();
+		    setJavaClassPath();
 			Project antProject = getProject();
 			processAntHome(false);
 			antProject.init();
 			setTypes(antProject);
-			boolean exceptionState = processProperties(AntCoreUtil.getArrayList(extraArguments));
-			if (fEarlyErrorMessage != null) {
-				if (exceptionState) {
-					throw new BuildException(fEarlyErrorMessage);
-				}
-			}
-
+			boolean exceptionState= processProperties(AntCoreUtil.getArrayList(extraArguments));
+            if (fEarlyErrorMessage != null) {
+                if (exceptionState) {
+                    throw new BuildException(fEarlyErrorMessage);
+                }
+            }
+			
 			setProperties(antProject, false);
 			if (isVersionCompatible("1.5")) { //$NON-NLS-1$
 				new InputHandlerSetter().setInputHandler(antProject, "org.eclipse.ant.internal.core.ant.NullInputHandler"); //$NON-NLS-1$
 			}
 			parseBuildFile(antProject);
 			defaultTarget = antProject.getDefaultTarget();
-			Hashtable<String, Target> projectTargets = antProject.getTargets();
-			ArrayList<TargetInfo> infos = new ArrayList<TargetInfo>();
+			//TODO ANT-1.9.1 API USE
+			Enumeration<?> projectTargets = antProject.getTargets().elements();
+			ArrayList<TargetInfo> infos= new ArrayList<TargetInfo>();
 			ProjectInfo pinfo = new ProjectInfo(antProject.getName(), antProject.getDescription());
-			boolean defaultFound = false;
-			for (Target target : projectTargets.values()) {
-				String name = target.getName();
+			Target target;
+			boolean defaultFound= false;
+			while (projectTargets.hasMoreElements()) {
+				target = (Target) projectTargets.nextElement();
+				String name= target.getName();
 				if (name.length() == 0) {
-					// "no name" implicit target of Ant 1.6
+					//"no name" implicit target of Ant 1.6
 					continue;
 				}
 				if (target.getName().equals(defaultTarget)) {
-					defaultFound = true;
+					defaultFound= true;
 				}
 				ArrayList<String> dependencies = new ArrayList<String>();
-				Enumeration<String> enumeration = target.getDependencies();
+				//TODO ANT-1.9.1 API USE
+				Enumeration<?> enumeration = target.getDependencies();
 				while (enumeration.hasMoreElements()) {
-					dependencies.add(enumeration.nextElement());
+					dependencies.add((String) enumeration.nextElement());
 				}
 				String[] dependencyArray = new String[dependencies.size()];
 				dependencies.toArray(dependencyArray);
@@ -445,17 +432,15 @@
 				infos.add(info);
 			}
 			if (!defaultFound) {
-				// default target must exist
-				throw new BuildException(MessageFormat.format(InternalAntMessages.InternalAntRunner_Default_target_does_not_exist, new Object[] {
-						"'", defaultTarget, "'" })); //$NON-NLS-1$ //$NON-NLS-2$
+				//default target must exist
+				throw new BuildException(MessageFormat.format(InternalAntMessages.InternalAntRunner_Default_target_does_not_exist, new Object[]{"'", defaultTarget, "'"})); //$NON-NLS-1$ //$NON-NLS-2$
 			}
 			return infos;
-		}
-		finally {
+		} finally {
 			processAntHome(true);
 		}
 	}
-
+	
 	/**
 	 * Returns a list of target names in the build script.
 	 * 
@@ -463,55 +448,56 @@
 	 */
 	private List<String> getTargetNames() {
 		try {
-			setJavaClassPath();
+		    setJavaClassPath();
 			Project antProject;
-
+		
 			antProject = getProject();
 			processAntHome(false);
 			antProject.init();
 			setTypes(antProject);
 			processProperties(AntCoreUtil.getArrayList(extraArguments));
-
+			
 			setProperties(antProject, false);
 			if (isVersionCompatible("1.5")) { //$NON-NLS-1$
 				new InputHandlerSetter().setInputHandler(antProject, "org.eclipse.ant.internal.core.ant.NullInputHandler"); //$NON-NLS-1$
 			}
 			parseBuildFile(antProject);
-			Hashtable<String, Target> projectTargets = antProject.getTargets();
+			Enumeration<?> projectTargets = antProject.getTargets().elements();
 			ArrayList<String> names = new ArrayList<String>();
-			for (Target target : projectTargets.values()) {
-				String name = target.getName();
+			Target target;
+			while (projectTargets.hasMoreElements()) {
+				target = (Target) projectTargets.nextElement();
+				String name= target.getName();
 				if (name.length() == 0) {
-					// "no name" implicit target of Ant 1.6
+					//"no name" implicit target of Ant 1.6
 					continue;
 				}
 				names.add(name);
 			}
 			return names;
-		}
-		finally {
+		} finally {
 			processAntHome(true);
 		}
-	}
+	}	
 
 	private Project getProject() {
 		Project antProject;
 		if (isVersionCompatible("1.6")) { //$NON-NLS-1$
-			// in Ant version 1.6 or greater all tasks can exist outside the scope of a target
+			//in Ant version 1.6 or greater all tasks can exist outside the scope of a target
 			if (isVersionCompatible("1.6.3")) { //$NON-NLS-1$
-				antProject = new InternalProject2();
+				antProject= new InternalProject2();
 			} else {
-				antProject = new Project();
+				antProject= new Project();
 			}
 		} else {
-			antProject = new InternalProject();
+			antProject= new InternalProject();
 		}
 		return antProject;
 	}
-
+	
 	/**
-	 * Returns the default target name that was last computed or <code>null</code> if no default target has been computed.
-	 * 
+	 * Returns the default target name that was last computed or <code>null</code>
+	 * if no default target has been computed.
 	 * @return the default target name
 	 */
 	public String getDefaultTarget() {
@@ -534,7 +520,7 @@
 			sb.append(extraArguments[i]);
 			sb.append(' ');
 		}
-		project.log(MessageFormat.format(InternalAntMessages.InternalAntRunner_Arguments, new Object[] { sb.toString().trim() }));
+		project.log(MessageFormat.format(InternalAntMessages.InternalAntRunner_Arguments, new Object[]{sb.toString().trim()}));
 	}
 
 	private void createMonitorBuildListener(Project project) {
@@ -544,7 +530,7 @@
 		Vector<String> chosenTargets = targets;
 		if (chosenTargets == null || chosenTargets.isEmpty()) {
 			chosenTargets = new Vector<String>(1);
-			String defltTarget = project.getDefaultTarget();
+			String defltTarget= project.getDefaultTarget();
 			if (defltTarget != null) {
 				chosenTargets.add(defltTarget);
 			}
@@ -553,41 +539,38 @@
 	}
 
 	/**
-	 * Invokes the building of a project object and executes a build using either a given target or the default target. This method is called if
-	 * running in headless mode.
-	 * 
+	 * Invokes the building of a project object and executes a build using either a given
+	 * target or the default target. This method is called if running in
+	 * headless mode.
 	 * @see org.eclipse.ant.core.AntRunner#run(Object)
-	 * @param argArray
-	 *            the command line arguments
-	 * @exception Exception
-	 *                execution exceptions
+	 * @param argArray the command line arguments
+	 * @exception Exception execution exceptions
 	 */
 	public void run(Object argArray) throws Exception {
 		run(AntCoreUtil.getArrayList((String[]) argArray));
 	}
 
 	/**
-	 * Attempts to run the given list of command line arguments. Note that the list passed to this method must support {@link List#remove(Object)}. <br>
-	 * <br>
+	 * Attempts to run the given list of command line arguments. Note that the list passed to this method must support
+	 * {@link List#remove(Object)}.
+	 * <br><br>
 	 * This method directly processes the following arguments:
 	 * <ul>
 	 * <li><b>-projecthelp</b>, <b>-p</b> - print project help information</li>
 	 * </ul>
-	 * 
-	 * @param argList
-	 *            the raw list of command line arguments
+	 * @param argList the raw list of command line arguments
 	 */
 	private void run(List<String> argList) {
 		setCurrentProject(new Project());
-		if (isVersionCompatible("1.6.3")) { //$NON-NLS-1$
-			new ExecutorSetter().setExecutor(currentProject);
-		}
+        if (isVersionCompatible("1.6.3")) { //$NON-NLS-1$
+           new ExecutorSetter().setExecutor(currentProject);
+        }
 		Throwable error = null;
 		PrintStream originalErr = System.err;
 		PrintStream originalOut = System.out;
-		InputStream originalIn = System.in;
-
-		SecurityManager originalSM = System.getSecurityManager();
+		InputStream originalIn= System.in;
+		
+		SecurityManager originalSM= System.getSecurityManager();
 		setJavaClassPath();
 		executed = true;
 		processAntHome(false);
@@ -602,40 +585,39 @@
 					return;
 				}
 			}
-
-			boolean exceptionState = processProperties(argList);
-
+			
+            boolean exceptionState= processProperties(argList);
+            
 			addBuildListeners(getCurrentProject(), true);
-
+            
 			addInputHandler(getCurrentProject());
-
+			
 			remapSystemIn();
 			System.setOut(new PrintStream(new DemuxOutputStream(getCurrentProject(), false)));
 			System.setErr(new PrintStream(new DemuxOutputStream(getCurrentProject(), true)));
-
+			
 			if (!projectHelp) {
 				fireBuildStarted(getCurrentProject());
 			}
-
-			if (fEarlyErrorMessage != null) {
-				// an error occurred processing the properties
-				// build started has fired and we have
-				// listeners/loggers to report the error
-				logMessage(getCurrentProject(), fEarlyErrorMessage, Project.MSG_ERR);
-				if (exceptionState) {
-					throw new BuildException(fEarlyErrorMessage);
-				}
-			}
-
-			// properties can only be set after buildStarted as some listeners/loggers
-			// depend on this (e.g. XMLLogger)
-			setProperties(getCurrentProject(), true);
-
+            
+            if (fEarlyErrorMessage != null) {
+                //an error occurred processing the properties
+                //build started has fired and we have
+                //listeners/loggers to report the error
+                logMessage(getCurrentProject(), fEarlyErrorMessage, Project.MSG_ERR);
+                if (exceptionState) {
+                    throw new BuildException(fEarlyErrorMessage);
+                }
+            }
+            
+            //properties can only be set after buildStarted as some listeners/loggers
+            //depend on this (e.g. XMLLogger)
+            setProperties(getCurrentProject(), true);
+			
 			if (argList != null && !argList.isEmpty()) {
 				try {
 					executed = processCommandLine(argList);
-				}
-				catch (BuildException e) {
+				} catch (BuildException e) {
 					executed = false;
 					throw e;
 				}
@@ -643,26 +625,26 @@
 			if (!executed) {
 				return;
 			}
-
-			// needs to occur after processCommandLine(List)
+			
+            //needs to occur after processCommandLine(List)
 			if (allowInput && (inputHandlerClassname != null && inputHandlerClassname.length() > 0)) {
 				if (isVersionCompatible("1.6")) { //$NON-NLS-1$
-					// https://bugs.eclipse.org/bugs/show_bug.cgi?id=182577
-					// getCurrentProject().setDefaultInputStream(originalIn);
-					System.getProperties().remove("eclipse.ant.noInput"); //$NON-NLS-1$
+					//https://bugs.eclipse.org/bugs/show_bug.cgi?id=182577
+					//getCurrentProject().setDefaultInputStream(originalIn);
+					System.getProperties().remove("eclipse.ant.noInput");  //$NON-NLS-1$
 				}
 			} else {
-				// set the system property that any input handler
-				// can check to see if handling input is allowed
-				System.setProperty("eclipse.ant.noInput", "true"); //$NON-NLS-1$//$NON-NLS-2$
+				//set the system property that any input handler
+				//can check to see if handling input is allowed
+				System.setProperty("eclipse.ant.noInput", "true");  //$NON-NLS-1$//$NON-NLS-2$
 				if (isVersionCompatible("1.5") && (inputHandlerClassname == null || inputHandlerClassname.length() == 0)) { //$NON-NLS-1$
-					InputHandlerSetter setter = new InputHandlerSetter();
+					InputHandlerSetter setter= new InputHandlerSetter();
 					setter.setInputHandler(getCurrentProject(), "org.eclipse.ant.internal.core.ant.FailInputHandler"); //$NON-NLS-1$
 				}
 			}
 
-			if (!projectHelp) {
-				logMessage(currentProject, MessageFormat.format(InternalAntMessages.InternalAntRunner_Build_file, new Object[] { getBuildFileLocation() }), Project.MSG_INFO);
+			if(!projectHelp) {
+				logMessage(currentProject, MessageFormat.format(InternalAntMessages.InternalAntRunner_Build_file, new Object[]{getBuildFileLocation()}), Project.MSG_INFO);
 
 				setTasks(getCurrentProject());
 				setTypes(getCurrentProject());
@@ -672,82 +654,77 @@
 				}
 				parseBuildFile(getCurrentProject());
 			}
-
+			
 			createMonitorBuildListener(getCurrentProject());
-
+			
 			if (projectHelp) {
 				if (isVersionCompatible("1.7")) { //$NON-NLS-1$
 					new EclipseMainHelper().runProjectHelp(getBuildFileLocation(), getCurrentProject());
 					return;
-				}
+				} 
 				logMessage(currentProject, InternalAntMessages.InternalAntRunner_ant_1_7_needed_for_help_info, Project.MSG_ERR);
 				executed = false;
 				return;
 			}
-
+			
 			if (extraArguments != null) {
 				printArguments(getCurrentProject());
 			}
 			System.setSecurityManager(new AntSecurityManager(originalSM, Thread.currentThread()));
-
+			
 			if (targets == null) {
-				targets = new Vector<String>(1);
-			}
+                targets = new Vector<String>(1);
+            }
 			String dtarget = currentProject.getDefaultTarget();
-			if (targets.isEmpty() && dtarget != null) {
-				targets.add(dtarget);
-			}
-			if (!isVersionCompatible("1.6.3")) { //$NON-NLS-1$
-				getCurrentProject().addReference("eclipse.ant.targetVector", targets); //$NON-NLS-1$
+            if (targets.isEmpty() && dtarget != null) {
+                targets.add(dtarget);
+            }
+			if (!isVersionCompatible("1.6.3")) {  //$NON-NLS-1$
+	            getCurrentProject().addReference("eclipse.ant.targetVector", targets); //$NON-NLS-1$
 			}
 			getCurrentProject().executeTargets(targets);
-		}
-		catch (OperationCanceledException e) {
+		} catch (OperationCanceledException e) {
 			executed = false;
 			logMessage(currentProject, e.getMessage(), Project.MSG_INFO);
 			throw e;
-		}
-		catch (AntSecurityException e) {
-			// expected
-		}
-		catch (RuntimeException e) {
+		} catch (AntSecurityException e) {
+			//expected
+		} catch (RuntimeException e) {
 			error = e;
 			throw e;
-		}
-		catch (Error e) {
+		} catch (Error e) {
 			error = e;
 			throw e;
-		}
-		finally {
+		} finally {
 			System.setErr(originalErr);
 			System.setOut(originalOut);
 			System.setIn(originalIn);
 			if (System.getSecurityManager() instanceof AntSecurityManager) {
 				System.setSecurityManager(originalSM);
 			}
-
-			if (!projectHelp) {
+			
+			if (!projectHelp) {		
 				if (AntCorePlugin.getPlugin().getBundle().getState() != Bundle.ACTIVE) {
 					return;
 				}
 				fireBuildFinished(getCurrentProject(), error);
 			}
-
-			// close any user specified build log
+						
+			//close any user specified build log
 			if (err != originalErr) {
 				err.close();
 			}
 			if (out != originalOut) {
 				out.close();
 			}
-
+			
 			processAntHome(true);
 			if (!allowInput) {
-				System.getProperties().remove("eclipse.ant.noInput"); //$NON-NLS-1$
+				System.getProperties().remove("eclipse.ant.noInput");  //$NON-NLS-1$
 			}
 		}
 	}
-
+	
 	/**
 	 * Re-maps {@link System.in} to the Ant input stream setter
 	 */
@@ -755,79 +732,81 @@
 		if (!isVersionCompatible("1.6")) { //$NON-NLS-1$
 			return;
 		}
-		DemuxInputStreamSetter setter = new DemuxInputStreamSetter();
+		DemuxInputStreamSetter setter= new DemuxInputStreamSetter();
 		setter.remapSystemIn(currentProject);
 	}
 
 	private void processAntHome(boolean finished) {
-		AntCorePreferences prefs = AntCorePlugin.getPlugin().getPreferences();
-		String antHome = prefs.getAntHome();
+		AntCorePreferences prefs= AntCorePlugin.getPlugin().getPreferences();
+		String antHome= prefs.getAntHome();
 		if (buildAntHome != null && !finished) {
-			antHome = buildAntHome;
+			antHome= buildAntHome;
 		}
 		if (antHome == null || antHome.length() == 0) {
 			System.getProperties().remove("ant.home"); //$NON-NLS-1$
 			System.getProperties().remove("ant.library.dir"); //$NON-NLS-1$
 		} else {
 			System.setProperty("ant.home", antHome); //$NON-NLS-1$
-			File antLibDir = new File(antHome, "lib"); //$NON-NLS-1$
+			File antLibDir= new File(antHome, "lib"); //$NON-NLS-1$
 			System.setProperty("ant.library.dir", antLibDir.getAbsolutePath()); //$NON-NLS-1$
 		}
 	}
-
+	
 	public void setAntHome(String antHome) {
-		this.buildAntHome = antHome;
+		this.buildAntHome= antHome;
 	}
 
 	/**
 	 * Creates and returns the default build logger for logging build events to the ant log.
 	 * 
-	 * @return the default build logger for logging build events to the ant log can return <code>null</code> if no logging is to occur
+	 * @return the default build logger for logging build events to the ant log
+	 * 			can return <code>null</code> if no logging is to occur
 	 */
 	protected BuildLogger createLogger() {
 		if (loggerClassname == null) {
-			buildLogger = new DefaultLogger();
+			buildLogger= new DefaultLogger();
 		} else if (!IAntCoreConstants.EMPTY_STRING.equals(loggerClassname)) {
 			try {
 				buildLogger = (BuildLogger) (Class.forName(loggerClassname).newInstance());
-			}
-			catch (ClassCastException e) {
-				String message = MessageFormat.format(InternalAntMessages.InternalAntRunner_not_an_instance_of_apache_ant_BuildLogger, new Object[] { loggerClassname });
+			} catch (ClassCastException e) {
+				String message = MessageFormat.format(InternalAntMessages.InternalAntRunner_not_an_instance_of_apache_ant_BuildLogger, new Object[]{loggerClassname});
+				logMessage(null, message, Project.MSG_ERR);
+				throw new BuildException(message, e);
+			} catch (Exception e) {
+				String message = MessageFormat.format(InternalAntMessages.InternalAntRunner_Unable_to_instantiate_logger, new Object[]{loggerClassname});
 				logMessage(null, message, Project.MSG_ERR);
 				throw new BuildException(message, e);
 			}
-			catch (Exception e) {
-				String message = MessageFormat.format(InternalAntMessages.InternalAntRunner_Unable_to_instantiate_logger, new Object[] { loggerClassname });
-				logMessage(null, message, Project.MSG_ERR);
-				throw new BuildException(message, e);
-			}
-		}
-
+		} 
+		
 		if (buildLogger != null) {
 			buildLogger.setMessageOutputLevel(messageOutputLevel);
 			buildLogger.setOutputPrintStream(out);
 			buildLogger.setErrorPrintStream(err);
 			buildLogger.setEmacsMode(emacsMode);
-			if (buildLogger instanceof AbstractEclipseBuildLogger) {
-				((AbstractEclipseBuildLogger) buildLogger).configure(userProperties);
-			}
+            if (buildLogger instanceof AbstractEclipseBuildLogger) {
+                ((AbstractEclipseBuildLogger) buildLogger).configure(userProperties);
+            }
 		}
 
 		return buildLogger;
 	}
 
 	/**
-	 * Project.fireBuildStarted is protected in Ant earlier than 1.5.*. Provides backwards compatibility with old Ant installs.
+	 * Project.fireBuildStarted is protected in Ant earlier than 1.5.*.
+     * Provides backwards compatibility with old Ant installs.
 	 */
 	protected void fireBuildStarted(Project project) {
-		if (!isVersionCompatible("1.5")) { //$NON-NLS-1$
-			BuildEvent event = new BuildEvent(project);
-			for (BuildListener listener : project.getBuildListeners()) {
-				listener.buildStarted(event);
-			}
-		} else {
-			project.fireBuildStarted();
-		}
+        if (!isVersionCompatible("1.5")) { //$NON-NLS-1$
+            BuildEvent event = new BuildEvent(project);
+            //TODO ANT-1.9.1 API USE
+            Vector<?> listeners = project.getBuildListeners();
+            for (Iterator<?> iterator = listeners.iterator(); iterator.hasNext();) {
+                ((BuildListener) iterator.next()).buildStarted(event);
+            }
+        } else {
+            project.fireBuildStarted();
+        }
 	}
 
 	/**
@@ -837,32 +816,35 @@
 	 * @param error
 	 */
 	protected void fireBuildFinished(Project project, Throwable error) {
-		if (usingXmlLogger()) {
-			// generate the log file in the correct location
-			String fileName = project.getProperty("XmlLogger.file"); //$NON-NLS-1$
+		if(usingXmlLogger()) {
+			//generate the log file in the correct location
+			String fileName= project.getProperty("XmlLogger.file"); //$NON-NLS-1$
 			if (fileName == null) {
-				fileName = "log.xml"; //$NON-NLS-1$
+				fileName= "log.xml"; //$NON-NLS-1$
 			}
-			String realPath = new Path(getBuildFileLocation()).toFile().getAbsolutePath();
-			IPath path = new Path(realPath);
-			path = path.removeLastSegments(1);
-			path = path.addTrailingSeparator();
-			path = path.append(fileName);
-
+			String realPath= new Path(getBuildFileLocation()).toFile().getAbsolutePath();
+			IPath path= new Path(realPath);
+			path= path.removeLastSegments(1);
+			path= path.addTrailingSeparator();
+			path= path.append(fileName);
+		
 			project.setProperty("XmlLogger.file", path.toOSString()); //$NON-NLS-1$
 		}
 		if (error == null && executed) {
 			logMessage(project, InternalAntMessages.InternalAntRunner_BUILD_SUCCESSFUL_1, messageOutputLevel);
-		}
-		if (!isVersionCompatible("1.5")) { //$NON-NLS-1$
-			BuildEvent event = new BuildEvent(project);
-			event.setException(error);
-			for (BuildListener listener : project.getBuildListeners()) {
-				listener.buildFinished(event);
-			}
-		} else {
-			project.fireBuildFinished(error);
-		}
+		} 
+        if (!isVersionCompatible("1.5")) { //$NON-NLS-1$
+            BuildEvent event = new BuildEvent(project);
+            event.setException(error);
+            //TODO ANT-1.9.1 API USE
+            Vector<?> listeners = project.getBuildListeners();
+            Iterator<?> iter = listeners.iterator();
+            while (iter.hasNext()) {
+                ((BuildListener) iter.next()).buildFinished(event);
+            }   
+        } else {
+            project.fireBuildFinished(error);
+        }
 	}
 
 	private boolean usingXmlLogger() {
@@ -870,18 +852,23 @@
 			return true;
 		}
 		if (buildListeners != null) {
-			for (BuildListener listener : currentProject.getBuildListeners()) {
-				if (listener instanceof XmlLogger) {
+			//TODO ANT-1.9.1 API USE
+			Vector<?> listeners = currentProject.getBuildListeners();
+			Enumeration<?> e = listeners.elements();
+			while (e.hasMoreElements()) {
+				BuildListener element = (BuildListener) e.nextElement();
+				if (element instanceof XmlLogger) {
 					return true;
 				}
 			}
 		}
+		
 		return false;
 	}
 
 	protected void logMessage(Project project, String message, int priority) {
 		if (project != null) {
-			project.log(message, priority);
+			project.log(message, priority);	
 		} else {
 			if (buildListeners != null) {
 				Project p = new Project();
@@ -897,8 +884,7 @@
 	/**
 	 * Sets the buildFileLocation.
 	 * 
-	 * @param buildFileLocation
-	 *            the file system location of the build file
+	 * @param buildFileLocation the file system location of the build file
 	 */
 	public void setBuildFileLocation(String buildFileLocation) {
 		this.buildFileLocation = buildFileLocation;
@@ -906,15 +892,14 @@
 			currentProject.setUserProperty("ant.file", buildFileLocation); //$NON-NLS-1$
 		}
 	}
-
+	
 	/**
 	 * Sets the input handler class name.
 	 * 
-	 * @param inputHandlerClassname
-	 *            the name of the class to use for the input handler
+	 * @param inputHandlerClassname the name of the class to use for the input handler
 	 */
 	public void setInputHandler(String inputHandlerClassname) {
-		this.inputHandlerClassname = inputHandlerClassname;
+		this.inputHandlerClassname= inputHandlerClassname;
 	}
 
 	/**
@@ -925,13 +910,14 @@
 	protected String getInputHandler() {
 		return this.inputHandlerClassname;
 	}
-
+	
 	protected String getBuildLogger() {
 		return this.loggerClassname;
 	}
-
+	
 	/**
-	 * Returns the location of the buildfile. If one has not been supplied the default location of <code>build.xml</code> will be returned
+	 * Returns the location of the buildfile. If one has not been supplied
+	 * the default location of <code>build.xml</code> will be returned
 	 * 
 	 * @return the absolute location of the build file
 	 */
@@ -944,9 +930,7 @@
 
 	/**
 	 * Sets the message output level. Use -1 for none.
-	 * 
-	 * @param level
-	 *            The message output level
+	 * @param level The message output level
 	 */
 	public void setMessageOutputLevel(int level) {
 		messageOutputLevel = level;
@@ -957,9 +941,7 @@
 
 	/**
 	 * Sets the extra user arguments
-	 * 
-	 * @param args
-	 *            The extra user arguments
+	 * @param args The extra user arguments
 	 */
 	public void setArguments(String[] args) {
 		extraArguments = args;
@@ -967,9 +949,7 @@
 
 	/**
 	 * Sets the execution targets.
-	 * 
-	 * @param executionTargets
-	 *            The targets to execute for the build
+	 * @param executionTargets The targets to execute for the build
 	 */
 	public void setExecutionTargets(String[] executionTargets) {
 		targets = new Vector<String>(executionTargets.length);
@@ -977,9 +957,10 @@
 			targets.add(executionTargets[i]);
 		}
 	}
-
+	
 	/*
-	 * Returns a String representation of the Ant version number as specified in the version.txt file.
+	 * Returns a String representation of the Ant version number as specified
+	 * in the version.txt file.
 	 */
 	protected String getAntVersionNumber() throws BuildException {
 		if (antVersionNumber == null) {
@@ -988,40 +969,37 @@
 				InputStream in = Main.class.getResourceAsStream("/org/apache/tools/ant/version.txt"); //$NON-NLS-1$
 				props.load(in);
 				in.close();
-				String versionNumber = props.getProperty("VERSION"); //$NON-NLS-1$
-				antVersionNumber = versionNumber;
-			}
-			catch (IOException ioe) {
-				throw new BuildException(MessageFormat.format(InternalAntMessages.InternalAntRunner_Could_not_load_the_version_information, new Object[] { ioe.getMessage() }));
-			}
-			catch (NullPointerException npe) {
-				throw new BuildException(MessageFormat.format(InternalAntMessages.InternalAntRunner_Could_not_load_the_version_information, new Object[] { npe.getMessage() }));
+				String versionNumber= props.getProperty("VERSION");  //$NON-NLS-1$
+				antVersionNumber= versionNumber;
+			} catch (IOException ioe) {
+				throw new BuildException(MessageFormat.format(InternalAntMessages.InternalAntRunner_Could_not_load_the_version_information, new Object[]{ioe.getMessage()}));
+			} catch (NullPointerException npe) {
+				throw new BuildException(MessageFormat.format(InternalAntMessages.InternalAntRunner_Could_not_load_the_version_information, new Object[] {npe.getMessage()}));
 			}
 		}
 		return antVersionNumber;
 	}
-
+	
 	/*
-	 * Returns whether the given version is compatible with the current Ant version. A version is compatible if it is less than or equal to the
-	 * current version.
+	 * Returns whether the given version is compatible with the
+	 * current Ant version. A version is compatible if it is less
+	 * than or equal to the current version. 
 	 */
 	protected boolean isVersionCompatible(String comparison) {
 		String version = getAntVersionNumber();
 		return version.compareTo(comparison) >= 0;
 	}
-
+	
 	/**
-	 * Pre-processes the raw command line to set up input handling and logging. <br>
-	 * <br>
+	 * Pre-processes the raw command line to set up input handling and logging.
+	 * <br><br>
 	 * This method checks for the following command line arguments:
 	 * <ul>
 	 * <li><b>-inputhandler</b> <em>&lt;class&gt;</em> - the class which will handle input requests</li>
 	 * <li><b>-logger</b> <em>&lt;classname&gt;</em> - the class which is to perform logging</li>
 	 * <li><b>-listener</b> <em>&lt;classname&gt;</em> - add an instance of class as a project listener</li>
 	 * </ul>
-	 * 
-	 * @param commands
-	 *            the raw command line arguments passed in from the application
+	 * @param commands the raw command line arguments passed in from the application
 	 * @return <code>true</code> if it is OK to run with the given list of arguments <code>false</code> otherwise
 	 */
 	protected boolean preprocessCommandLine(List<String> commands) {
@@ -1029,9 +1007,9 @@
 		while (arg != null) {
 			if (arg.length() == 0) {
 				throw new BuildException(InternalAntMessages.InternalAntRunner_specify_a_classname_using_the_listener_argument);
-			}
+			} 
 			if (buildListeners == null) {
-				buildListeners = new ArrayList<String>(1);
+				buildListeners= new ArrayList<String>(1);
 			}
 			buildListeners.add(arg);
 			arg = AntCoreUtil.getArgument(commands, "-listener"); //$NON-NLS-1$
@@ -1041,14 +1019,14 @@
 		if (arg != null) {
 			if (arg.length() == 0) {
 				throw new BuildException(InternalAntMessages.InternalAntRunner_specify_a_classname_using_the_logger_argument);
-			}
+			} 
 			loggerClassname = arg;
 		}
 		arg = AntCoreUtil.getArgument(commands, "-logger"); //$NON-NLS-1$
 		if (arg != null) {
 			throw new BuildException(InternalAntMessages.InternalAntRunner_Only_one_logger_class_may_be_specified);
 		}
-
+		
 		arg = AntCoreUtil.getArgument(commands, "-inputhandler"); //$NON-NLS-1$
 		if (arg != null) {
 			if (!isVersionCompatible("1.5")) { //$NON-NLS-1$
@@ -1056,7 +1034,7 @@
 			}
 			if (arg.length() == 0) {
 				throw new BuildException(InternalAntMessages.InternalAntRunner_specify_a_classname_the_inputhandler_argument);
-			}
+			} 
 			inputHandlerClassname = arg;
 		}
 		arg = AntCoreUtil.getArgument(commands, "-inputhandler"); //$NON-NLS-1$
@@ -1065,10 +1043,10 @@
 		}
 		return true;
 	}
-
+	
 	/**
-	 * Process the command line arguments. <br>
-	 * <br>
+	 * Process the command line arguments.
+	 * <br><br>
 	 * The listing of supported Ant command line arguments is:
 	 * <ul>
 	 * <li><b>-buildfile</b>, <b>-file</b>, <b>-f</b> <em>&lt;file&gt;</em> - use given buildfile</li>
@@ -1087,15 +1065,13 @@
 	 * </ul>
 	 * The list of other Ant command line arguments that we currently do not support:
 	 * <ul>
-	 * <li><b>-nice</b> <em>&lt;number&gt;</em> - A niceness value for the main thread - 1 (lowest) to 10 (highest); 5 is the default</li>
+	 * <li><b>-nice</b>  <em>&lt;number&gt;</em> - A niceness value for the main thread - 1 (lowest) to 10 (highest); 5 is the default</li>
 	 * <li><b>-nouserlib</b> - Run ant without using the jar files from ${user.home}/.ant/lib</li>
 	 * <li><b>-noclasspath</b> - Run ant without using CLASSPATH</li>
 	 * <li><b>-autoproxy</b> - Java 1.5+ : use the OS proxies</li>
 	 * <li><b>-main</b> <em>&lt;class&gt;</em> - override Ant's normal entry point</li>
 	 * </ul>
-	 * 
-	 * @param list
-	 *            the raw command line arguments passed in from the application
+	 * @param list the raw command line arguments passed in from the application
 	 * @return <code>true</code> if it is OK to run with the given list of arguments <code>false</code> otherwise
 	 */
 	private boolean processCommandLine(List<String> commands) {
@@ -1107,22 +1083,22 @@
 			}
 			return false;
 		}
-
+		
 		if (commands.remove("-version")) { //$NON-NLS-1$
 			printVersion();
 			return false;
 		}
-
+		
 		if (commands.remove("-verbose") || commands.remove("-v")) { //$NON-NLS-1$ //$NON-NLS-2$
 			printVersion();
 			setMessageOutputLevel(Project.MSG_VERBOSE);
 		}
-
+		
 		if (commands.remove("-debug") || commands.remove("-d")) { //$NON-NLS-1$ //$NON-NLS-2$
 			printVersion();
 			setMessageOutputLevel(Project.MSG_DEBUG);
 		}
-
+		
 		if (commands.remove("-quiet") || commands.remove("-q")) { //$NON-NLS-1$ //$NON-NLS-2$
 			setMessageOutputLevel(Project.MSG_WARN);
 		}
@@ -1133,39 +1109,37 @@
 				buildLogger.setEmacsMode(true);
 			}
 		}
-
+		
 		if (commands.remove("-diagnostics")) { //$NON-NLS-1$
 			if (!isVersionCompatible("1.5")) { //$NON-NLS-1$
 				throw new BuildException(InternalAntMessages.InternalAntRunner_The_diagnositics_options_is_an_Ant_1_5_feature);
 			}
 			try {
 				Diagnostics.doReport(System.out);
-			}
-			catch (NullPointerException e) {
+			} catch (NullPointerException e) {
 				logMessage(currentProject, InternalAntMessages.InternalAntRunner_anthome_must_be_set_to_use_ant_diagnostics, Project.MSG_ERR);
 			}
 			return false;
 		}
-
+		
 		String arg = AntCoreUtil.getArgument(commands, "-logfile"); //$NON-NLS-1$
 		if (arg == null) {
 			arg = AntCoreUtil.getArgument(commands, "-l"); //$NON-NLS-1$
 		}
 		if (arg != null) {
 			if (arg.length() == 0) {
-				String message = InternalAntMessages.InternalAntRunner_specify_a_log_file_using_the_log_argument;
-				logMessage(currentProject, message, Project.MSG_ERR);
+				String message= InternalAntMessages.InternalAntRunner_specify_a_log_file_using_the_log_argument;
+				logMessage(currentProject, message, Project.MSG_ERR); 
 				throw new BuildException(message);
-			}
+			} 
 			try {
 				createLogFile(arg);
-			}
-			catch (IOException e) {
+			} catch (IOException e) {
 				// just log message and ignore exception
-				logMessage(currentProject, MessageFormat.format(InternalAntMessages.InternalAntRunner_Could_not_write_to_log_file, new Object[] { arg }), Project.MSG_ERR);
+				logMessage(currentProject, MessageFormat.format(InternalAntMessages.InternalAntRunner_Could_not_write_to_log_file, new Object[]{arg}), Project.MSG_ERR);
 				return false;
 			}
-
+		
 		}
 		arg = AntCoreUtil.getArgument(commands, "-buildfile"); //$NON-NLS-1$
 		if (arg == null) {
@@ -1176,29 +1150,29 @@
 		}
 		if (arg != null) {
 			if (arg.length() == 0) {
-				String message = InternalAntMessages.InternalAntRunner_specify_a_buildfile_using_the_buildfile_argument;
-				logMessage(currentProject, message, Project.MSG_ERR);
+				String message= InternalAntMessages.InternalAntRunner_specify_a_buildfile_using_the_buildfile_argument;
+				logMessage(currentProject, message, Project.MSG_ERR); 
 				throw new BuildException(message);
-			}
+			} 
 			setBuildFileLocation(arg);
 		}
 		if (isVersionCompatible("1.6")) { //$NON-NLS-1$
 			if (commands.remove("-k") || commands.remove("-keep-going")) { //$NON-NLS-1$ //$NON-NLS-2$
-				keepGoing = true;
+				keepGoing= true;
 			}
 			if (commands.remove("-noinput")) { //$NON-NLS-1$
-				allowInput = false;
+				allowInput= false;
 			}
-			arg = AntCoreUtil.getArgument(commands, "-lib"); //$NON-NLS-1$
+			arg= AntCoreUtil.getArgument(commands, "-lib"); //$NON-NLS-1$
 			if (arg != null) {
 				logMessage(currentProject, InternalAntMessages.InternalAntRunner_157, Project.MSG_ERR);
 				return false;
 			}
 		}
-
-		arg = AntCoreUtil.getArgument(commands, "-find"); //$NON-NLS-1$
+		
+		arg= AntCoreUtil.getArgument(commands, "-find"); //$NON-NLS-1$
 		if (arg == null) {
-			arg = AntCoreUtil.getArgument(commands, "-s"); //$NON-NLS-1$
+			arg= AntCoreUtil.getArgument(commands, "-s"); //$NON-NLS-1$
 		}
 		if (arg != null) {
 			logMessage(currentProject, InternalAntMessages.InternalAntRunner_find_not_supported, Project.MSG_ERR);
@@ -1209,15 +1183,15 @@
 			processUnrecognizedCommands(commands);
 		}
 
-		if (!commands.isEmpty()) {
+		if(!commands.isEmpty()) {
 			processUnrecognizedTargets(commands);
 		}
-
+		
 		if (!commands.isEmpty()) {
 			processTargets(commands);
 		}
-
-		if (unknownTargetsFound && (targets == null || targets.isEmpty())) {
+		
+		if (unknownTargetsFound && (targets == null  || targets.isEmpty())) {
 			// Some targets are specified but none of them are good. Hence quit
 			// https://bugs.eclipse.org/bugs/show_bug.cgi?id=352536
 			logMessage(currentProject, InternalAntMessages.InternalAntRunner_no_known_target, Project.MSG_ERR);
@@ -1225,9 +1199,10 @@
 		}
 		return true;
 	}
-
+	
 	/**
-	 * Checks for unrecognized targets on the command line and removes them.
+	 * Checks for unrecognized targets on the command line and
+	 * removes them.
 	 * 
 	 * @since 3.6
 	 */
@@ -1238,17 +1213,23 @@
 			String target = iterator.next();
 			if (!names.contains(target)) {
 				iterator.remove();
-				String message = MessageFormat.format(InternalAntMessages.InternalAntRunner_unknown_target, new Object[] { target });
+				String message = MessageFormat.format(InternalAntMessages.InternalAntRunner_unknown_target, new Object[]{target});
 				logMessage(currentProject, message, Project.MSG_WARN);
 				unknownTargetsFound = true;
 			}
 		}
 	}
 
+	
 	/**
-	 * Checks for unrecognized arguments on the command line. Since there is no syntactic way to distinguish between ant -foo target1 target2 ant -foo
-	 * fooarg target we remove everything up to the last argument that begins with a '-'. In the latter case, above, that means that there will be an
-	 * extra target, 'fooarg', left lying around.
+	 * Checks for unrecognized arguments on the command line.
+	 * Since there is no syntactic way to distinguish between
+	 * ant -foo target1 target2
+	 * ant -foo fooarg target
+	 * we remove everything up to the last argument that
+	 * begins with a '-'.  In the latter case, above, that
+	 * means that there will be an extra target, 'fooarg',
+	 * left lying around.
 	 */
 	protected void processUnrecognizedCommands(List<String> commands) {
 		int p = -1;
@@ -1260,9 +1241,7 @@
 				break;
 			}
 		}
-		if (p < 0) {
-			return;
-		}
+		if (p < 0) { return; }
 
 		// remove everything preceding that last '-arg'
 		String s = IAntCoreConstants.EMPTY_STRING;
@@ -1270,11 +1249,12 @@
 			s += " " + (commands.get(0)); //$NON-NLS-1$
 			commands.remove(0);
 		}
-
+		
 		// warn of ignored commands
-		String message = MessageFormat.format(InternalAntMessages.InternalAntRunner_Unknown_argument, new Object[] { s.substring(1) });
-		logMessage(currentProject, message, Project.MSG_WARN);
+		String message = MessageFormat.format(InternalAntMessages.InternalAntRunner_Unknown_argument, new Object[]{ s.substring(1) });
+		logMessage(currentProject, message, Project.MSG_WARN); 
 	}
+	
 
 	/**
 	 * Checks for targets specified at the command line.
@@ -1289,15 +1269,17 @@
 	}
 
 	/**
-	 * Creates the log file with the name specified by the user. If the fileName is not absolute, the file will be created in the working directory if
-	 * specified or in the same directory as the location of the build file.
+	 * Creates the log file with the name specified by the user.
+	 * If the fileName is not absolute, the file will be created in the
+	 * working directory if specified or in the same directory as the location
+	 * of the build file.
 	 */
 	protected void createLogFile(String fileName) throws FileNotFoundException, IOException {
 		File logFile = AntCoreUtil.getFileRelativeToBaseDir(fileName, currentProject.getUserProperty("basedir"), getBuildFileLocation()); //$NON-NLS-1$
-		// this stream is closed in the finally block of run(list)
+		//this stream is closed in the finally block of run(list)
 		out = new PrintStream(new FileOutputStream(logFile));
 		err = out;
-		logMessage(currentProject, MessageFormat.format(InternalAntMessages.InternalAntRunner_Using_file_as_build_log, new Object[] { logFile.getCanonicalPath() }), Project.MSG_INFO);
+		logMessage(currentProject, MessageFormat.format(InternalAntMessages.InternalAntRunner_Using_file_as_build_log, new Object[]{logFile.getCanonicalPath()}), Project.MSG_INFO);
 		if (buildLogger != null) {
 			buildLogger.setErrorPrintStream(err);
 			buildLogger.setOutputPrintStream(out);
@@ -1305,10 +1287,11 @@
 	}
 
 	/**
-	 * Processes the command line properties and adds the user properties. <br>
-	 * <br>
-	 * Any user properties that have been explicitly set are set as well. Ensures that -D properties take precedence. <br>
-	 * <br>
+	 * Processes the command line properties and adds the user properties.
+	 * <br><br>
+	 * Any user properties that have been explicitly set are set as well.
+	 * Ensures that -D properties take precedence.
+	 * <br><br>
 	 * This command lie arguments used are:
 	 * <ul>
 	 * <li><b>-D</b> <em>&lt;property&gt;=&lt;value&gt;</em> - use value for given property</li>
@@ -1316,44 +1299,44 @@
 	 * </ul>
 	 */
 	private boolean processProperties(List<String> commands) {
-		boolean exceptionToBeThrown = false;
-		// MULTIPLE property files are allowed
-		String arg = AntCoreUtil.getArgument(commands, "-propertyfile"); //$NON-NLS-1$
+        boolean exceptionToBeThrown= false;
+		//MULTIPLE property files are allowed
+		String arg= AntCoreUtil.getArgument(commands, "-propertyfile"); //$NON-NLS-1$
 		while (arg != null) {
 			if (!isVersionCompatible("1.5")) { //$NON-NLS-1$
-				fEarlyErrorMessage = InternalAntMessages.InternalAntRunner_Specifying_property_files_is_a_Ant_1_5_feature;
+				fEarlyErrorMessage= InternalAntMessages.InternalAntRunner_Specifying_property_files_is_a_Ant_1_5_feature;
 				break;
 			}
 			if (arg.length() == 0) {
-				fEarlyErrorMessage = InternalAntMessages.InternalAntRunner_specify_a_property_filename_when_using_propertyfile_argument;
-				exceptionToBeThrown = true;
-				break;
-			}
-
+                fEarlyErrorMessage= InternalAntMessages.InternalAntRunner_specify_a_property_filename_when_using_propertyfile_argument;
+                exceptionToBeThrown= true;
+                break;
+			} 
+			
 			propertyFiles.add(arg);
-			arg = AntCoreUtil.getArgument(commands, "-propertyfile"); //$NON-NLS-1$
+			arg= AntCoreUtil.getArgument(commands, "-propertyfile"); //$NON-NLS-1$
 		}
-
-		String[] globalPropertyFiles = AntCorePlugin.getPlugin().getPreferences().getCustomPropertyFiles();
+		
+		String[] globalPropertyFiles= AntCorePlugin.getPlugin().getPreferences().getCustomPropertyFiles();
 		if (globalPropertyFiles.length > 0) {
-			if (!isVersionCompatible("1.5")) { //$NON-NLS-1$
-				fEarlyErrorMessage = InternalAntMessages.InternalAntRunner_Specifying_property_files_is_a_Ant_1_5_feature;
-			} else {
-				if (propertyFiles == null) {
-					propertyFiles = new ArrayList<String>(globalPropertyFiles.length);
-				}
-				propertyFiles.addAll(Arrays.asList(globalPropertyFiles));
-			}
+            if (!isVersionCompatible("1.5")) { //$NON-NLS-1$
+                fEarlyErrorMessage= InternalAntMessages.InternalAntRunner_Specifying_property_files_is_a_Ant_1_5_feature;
+            } else {
+                if (propertyFiles == null) {
+                    propertyFiles = new ArrayList<String>(globalPropertyFiles.length);
+                }
+                propertyFiles.addAll(Arrays.asList(globalPropertyFiles));
+            }
 		}
-
+		
 		if (propertyFiles != null && !propertyFiles.isEmpty()) {
-			loadPropertyFiles();
+            loadPropertyFiles();
 		}
-
+		
 		if (commands != null) {
 			processMinusDProperties(commands);
-		}
-		return exceptionToBeThrown;
+        }
+        return exceptionToBeThrown;
 	}
 
 	/**
@@ -1362,24 +1345,24 @@
 	 * @param commands
 	 */
 	protected void processMinusDProperties(List<String> commands) {
-		if (!commands.isEmpty() && userProperties == null) {
+	    if (!commands.isEmpty() && userProperties == null) {
 			userProperties = new HashMap<String, String>();
 		}
 		AntCoreUtil.processMinusDProperties(commands, userProperties);
 	}
 
 	/**
-	 * Logs a message with the client indicating the version of <b>Ant</b> that this class fronts.
+	 * Logs a message with the client indicating the version of <b>Ant</b> that this class
+	 * fronts.
 	 */
 	protected void printVersion() {
 		logMessage(currentProject, Main.getAntVersion(), Project.MSG_INFO);
 	}
 
+	
 	/**
 	 * Sets the build progress monitor.
-	 * 
-	 * @param monitor
-	 *            The progress monitor to use
+	 * @param monitor The progress monitor to use
 	 */
 	public void setProgressMonitor(IProgressMonitor monitor) {
 		this.monitor = monitor;
@@ -1397,100 +1380,96 @@
 	/**
 	 * Sets the current {@link Project} context
 	 * 
-	 * @param currentProject
-	 *            the new {@link Project}
+	 * @param currentProject the new {@link Project}
 	 */
 	protected void setCurrentProject(Project currentProject) {
 		this.currentProject = currentProject;
 	}
-
+	
 	public String getBuildExceptionErrorMessage(Throwable t) {
 		if (t instanceof BuildException) {
 			return t.toString();
 		}
 		return null;
 	}
-
+	
 	/**
-	 * Load all properties from the files specified by -propertyfile.
+	 * Load all properties from the files 
+	 * specified by -propertyfile.
 	 */
 	protected void loadPropertyFiles() {
-		if (userProperties == null) {
-			userProperties = new HashMap<String, String>();
-		}
-		try {
-			List<Properties> allProperties = AntCoreUtil.loadPropertyFiles(propertyFiles, currentProject.getUserProperty("basedir"), getBuildFileLocation()); //$NON-NLS-1$
-			Iterator<Properties> iter = allProperties.iterator();
-			while (iter.hasNext()) {
-				Properties props = iter.next();
-				Enumeration<?> propertyNames = props.propertyNames();
-				while (propertyNames.hasMoreElements()) {
-					String name = (String) propertyNames.nextElement();
-					// most specific to global
-					// do not overwrite specific with a global property
-					if (userProperties.get(name) == null) {
-						userProperties.put(name, props.getProperty(name));
-					}
-				}
-			}
-		}
-		catch (IOException e) {
-			fEarlyErrorMessage = MessageFormat.format(InternalAntMessages.InternalAntRunner_could_not_load_property_file, new Object[] { e.getMessage() });
-		}
+	    if (userProperties == null) {
+        	userProperties = new HashMap<String, String>();
+        }
+        try {
+            List<Properties> allProperties = AntCoreUtil.loadPropertyFiles(propertyFiles, currentProject.getUserProperty("basedir"), getBuildFileLocation()); //$NON-NLS-1$
+	        Iterator<Properties> iter= allProperties.iterator();
+	        while (iter.hasNext()) {
+	            Properties props = iter.next();
+	            Enumeration<?> propertyNames = props.propertyNames();
+	            while (propertyNames.hasMoreElements()) {
+	                String name = (String) propertyNames.nextElement();
+	                //most specific to global
+	                //do not overwrite specific with a global property
+	                if (userProperties.get(name) == null) {
+	                    userProperties.put(name, props.getProperty(name));
+	                }
+	            }
+	        }
+        } catch (IOException e) {
+            fEarlyErrorMessage = MessageFormat.format(InternalAntMessages.InternalAntRunner_could_not_load_property_file, new Object[]{e.getMessage()});
+        }
 	}
-
+	
 	/**
-	 * Creates the InputHandler and adds it to the project.
-	 * 
-	 * @exception BuildException
-	 *                if a specified InputHandler implementation could not be loaded.
-	 */
-	protected void addInputHandler(Project project) {
-		if (!isVersionCompatible("1.5") || (inputHandlerClassname != null && inputHandlerClassname.length() == 0)) { //$NON-NLS-1$
+     * Creates the InputHandler and adds it to the project.
+     *
+     * @exception BuildException if a specified InputHandler
+     *                           implementation could not be loaded.
+     */
+    protected void addInputHandler(Project project) {
+    	if (!isVersionCompatible("1.5") || (inputHandlerClassname != null && inputHandlerClassname.length() == 0)) { //$NON-NLS-1$
 			return;
 		}
-		InputHandlerSetter setter = new InputHandlerSetter();
+		InputHandlerSetter setter= new InputHandlerSetter();
 		setter.setInputHandler(project, inputHandlerClassname);
-	}
+    }
 
 	/*
 	 * Sets the Java class path in org.apache.tools.ant.types.Path
 	 */
 	private void setJavaClassPath() {
-		URL[] antClasspath = null;
-		AntCorePreferences prefs = AntCorePlugin.getPlugin().getPreferences();
+		URL[] antClasspath= null;
+		AntCorePreferences prefs= AntCorePlugin.getPlugin().getPreferences();
 		if (customClasspath == null) {
-			antClasspath = prefs.getURLs();
+			antClasspath= prefs.getURLs();
 		} else {
-			URL[] extraClasspath = prefs.getExtraClasspathURLs();
-			antClasspath = new URL[customClasspath.length + extraClasspath.length];
+			URL[] extraClasspath= prefs.getExtraClasspathURLs();
+			antClasspath= new URL[customClasspath.length + extraClasspath.length];
 			System.arraycopy(customClasspath, 0, antClasspath, 0, customClasspath.length);
 			System.arraycopy(extraClasspath, 0, antClasspath, customClasspath.length, extraClasspath.length);
 		}
-		StringBuffer buff = new StringBuffer();
-		File file = null;
+		StringBuffer buff= new StringBuffer();
+		File file= null;
 		for (int i = 0; i < antClasspath.length; i++) {
 			try {
 				file = new File(FileLocator.toFileURL(antClasspath[i]).getPath());
-			}
-			catch (IOException e) {
+			} catch (IOException e) {
 				continue;
 			}
 			buff.append(file.getAbsolutePath());
 			buff.append("; "); //$NON-NLS-1$
 		}
 
-		org.apache.tools.ant.types.Path systemClasspath = new org.apache.tools.ant.types.Path(null, buff.substring(0, buff.length() - 2));
-		org.apache.tools.ant.types.Path.systemClasspath = systemClasspath;
+		org.apache.tools.ant.types.Path systemClasspath= new org.apache.tools.ant.types.Path(null, buff.substring(0, buff.length() - 2));
+		org.apache.tools.ant.types.Path.systemClasspath= systemClasspath;
 	}
-
+	
 	/**
 	 * Sets the custom classpath to be included when setting the Java classpath for this build.
-	 * 
-	 * @param classpath
-	 *            The custom classpath for this build.
+	 * @param classpath The custom classpath for this build.
 	 */
 	public void setCustomClasspath(URL[] classpath) {
-		customClasspath = classpath;
+		customClasspath= classpath;
 	}
 }
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/InternalProject.java b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/InternalProject.java
index c213683..b79292d 100644
--- a/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/InternalProject.java
+++ b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/InternalProject.java
@@ -25,11 +25,13 @@
 import org.apache.tools.ant.ProjectComponent;
 
 /**
- * A subclass of Project to facilitate "faster" parsing with less garbage generated. This class is not used on Ant 1.6 and newer due to the
- * improvements in lazy loading of these Ant versions.
+ * A subclass of Project to facilitate "faster" parsing with
+ * less garbage generated. This class is not used on Ant 1.6 and newer
+ * due to the improvements in lazy loading of these Ant versions.
  * 
- * Only three tasks are loaded (property, taskdef and typedef: three tasks that can be defined outside of a target on Ant 1.5.1 or older).
- * 
+ * Only three tasks are loaded (property, taskdef and 
+ * typedef: three tasks that can be defined outside of a target on Ant 1.5.1 or older).
+ *
  * Datatypes are loaded if requested.
  * 
  * Derived from the original Ant Project class
@@ -37,17 +39,14 @@
 public class InternalProject extends Project {
 
 	private Hashtable<String, Class<?>> typeNameToClass = null;
-
+	
 	public InternalProject() {
 		super();
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
+	/* (non-Javadoc)
 	 * @see org.apache.tools.ant.Project#init()
 	 */
-	@Override
 	public void init() throws BuildException {
 		setJavaVersionProperty();
 
@@ -58,23 +57,18 @@
 			addTaskDefinition("typedef", taskClass); //$NON-NLS-1$
 			taskClass = Class.forName("org.apache.tools.ant.taskdefs.Taskdef"); //$NON-NLS-1$
 			addTaskDefinition("taskdef", taskClass); //$NON-NLS-1$
-		}
-		catch (NoClassDefFoundError e) {
+		} catch (NoClassDefFoundError e) {
 			throw new BuildException(InternalAntMessages.InternalAntRunner_Missing_Class, e);
-		}
-		catch (ClassNotFoundException c) {
+		} catch (ClassNotFoundException c) {
 			throw new BuildException(InternalAntMessages.InternalAntRunner_Missing_Class, c);
 		}
 
 		setSystemProperties();
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
+	/* (non-Javadoc)
 	 * @see org.apache.tools.ant.Project#createDataType(java.lang.String)
 	 */
-	@Override
 	public Object createDataType(String typeName) throws BuildException {
 		if (typeNameToClass == null) {
 			initializeTypes();
@@ -94,8 +88,7 @@
 			try {
 				ctor = typeClass.getConstructor(new Class[0]);
 				noArg = true;
-			}
-			catch (NoSuchMethodException nse) {
+			} catch (NoSuchMethodException nse) {
 				ctor = typeClass.getConstructor(new Class[] { Project.class });
 				noArg = false;
 			}
@@ -110,28 +103,21 @@
 				((ProjectComponent) o).setProject(this);
 			}
 			return o;
-		}
-		catch (InvocationTargetException ite) {
+		} catch (InvocationTargetException ite) {
 			thrown = ite.getTargetException();
-		}
-		catch (IllegalArgumentException e) {
+		} catch (IllegalArgumentException e) {
 			thrown = e;
-		}
-		catch (InstantiationException e) {
+		} catch (InstantiationException e) {
 			thrown = e;
-		}
-		catch (IllegalAccessException e) {
+		} catch (IllegalAccessException e) {
 			thrown = e;
-		}
-		catch (NoSuchMethodException nse) {
+		} catch (NoSuchMethodException nse) {
 			thrown = nse;
-		}
-		catch (NoClassDefFoundError ncdfe) {
+		} catch (NoClassDefFoundError ncdfe) {
 			thrown = ncdfe;
 		}
 		if (thrown != null) {
-			String message = MessageFormat.format(InternalAntMessages.InternalProject_could_not_create_type, new Object[] { typeName,
-					thrown.toString() });
+			String message= MessageFormat.format(InternalAntMessages.InternalProject_could_not_create_type, new Object[]{typeName, thrown.toString()});
 			throw new BuildException(message, thrown);
 		}
 		// this line is actually unreachable
@@ -158,26 +144,21 @@
 				String typeName = (String) enumeration.nextElement();
 				String className = props.getProperty(typeName);
 				try {
-					Class<?> typeClass = Class.forName(className);
+					Class<?> typeClass= Class.forName(className);
 					typeNameToClass.put(typeName, typeClass);
-				}
-				catch (NoClassDefFoundError e) {
-					// ignore
-				}
-				catch (ClassNotFoundException c) {
-					// ignore
+				} catch (NoClassDefFoundError e) {
+					//ignore
+				} catch (ClassNotFoundException c) {
+					//ignore
 				}
 			}
-		}
-		catch (IOException ioe) {
+		} catch (IOException ioe) {
 			return;
 		}
 
 	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
+	
+	/* (non-Javadoc)
 	 * @see org.apache.tools.ant.Project#getDataTypeDefinitions()
 	 */
 	@Override
@@ -187,14 +168,13 @@
 		}
 		return typeNameToClass;
 	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
+	
+	/* (non-Javadoc)
 	 * @see org.apache.tools.ant.Project#addDataTypeDefinition(java.lang.String, java.lang.Class)
 	 */
 	@Override
-	public void addDataTypeDefinition(String typeName, Class<?> typeClass) {
+	public void addDataTypeDefinition(String typeName, Class typeClass) {
+		//TODO ANT-1.9.1 API USE
 		getDataTypeDefinitions();
 		typeNameToClass.put(typeName, typeClass);
 	}
diff --git a/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/ProgressBuildListener.java b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/ProgressBuildListener.java
index 5fb0c9d..9481139 100644
--- a/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/ProgressBuildListener.java
+++ b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/ProgressBuildListener.java
@@ -10,6 +10,7 @@
  *******************************************************************************/
 package org.eclipse.ant.internal.core.ant;
 
+
 import java.util.ArrayList;
 import java.util.Enumeration;
 import java.util.HashMap;
@@ -34,7 +35,7 @@
 import org.eclipse.core.runtime.SubProgressMonitor;
 
 /**
- * Reports progress and checks for cancellation of a script execution.
+ * Reports progress and checks for cancelation of a script execution.
  */
 public class ProgressBuildListener implements BuildListener {
 
@@ -44,17 +45,18 @@
 	private Thread currentTaskThread;
 
 	/**
-	 * Contains the progress monitor instances for the various projects in a chain.
+	 *  Contains the progress monitor instances for the various
+	 *	projects in a chain.
 	 */
 	protected class ProjectMonitors {
 		/**
-		 * This field is null for the main project
+		 *  This field is null for the main project
 		 */
 		private Target mainTarget;
 		private IProgressMonitor mainMonitor;
 		private IProgressMonitor targetMonitor;
 		private IProgressMonitor taskMonitor;
-
+		
 		protected IProgressMonitor getMainMonitor() {
 			return mainMonitor;
 		}
@@ -95,13 +97,13 @@
 		ProjectMonitors monitors = new ProjectMonitors();
 		IProgressMonitor localmonitor = monitor;
 		if (localmonitor == null) {
-			localmonitor = new NullProgressMonitor();
+			localmonitor= new NullProgressMonitor();
 		}
 		monitors.setMainMonitor(localmonitor);
 		projects.put(mainProject, monitors);
-		ArrayList<Target> targets = new ArrayList<Target>(targetNames.size());
+		ArrayList<Target> targets= new ArrayList<Target>(targetNames.size());
 		for (String targetName : targetNames) {
-			Target target = mainProject.getTargets().get(targetName);
+			Target target = (Target) mainProject.getTargets().get(targetName);
 			if (target != null) {
 				targets.add(target);
 			}
@@ -110,12 +112,9 @@
 		monitors.getMainMonitor().beginTask(IAntCoreConstants.EMPTY_STRING, work);
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
+	/* (non-Javadoc)
 	 * @see org.apache.tools.ant.BuildListener#buildStarted(org.apache.tools.ant.BuildEvent)
 	 */
-	@Override
 	public void buildStarted(BuildEvent event) {
 		checkCanceled();
 	}
@@ -131,16 +130,17 @@
 	protected int countTarget(Target target, List<String> alreadySeen) {
 		int result = 1;
 		Project project = target.getProject();
-		Hashtable<String, Target> targets = project.getTargets();
-		String targetName;
-		Target dependency;
-		for (Enumeration<String> dependencies = target.getDependencies(); dependencies.hasMoreElements();) {
-			targetName = dependencies.nextElement();
-			if (alreadySeen.contains(targetName)) { // circular dependency or common dependency
+		//TODO ANT-1.9.1 API USE
+		Hashtable<?, ?> targets = project.getTargets();
+        String targetName;
+        Target dependency;
+		for (Enumeration<?> dependencies = target.getDependencies(); dependencies.hasMoreElements();) {
+			targetName = (String) dependencies.nextElement();
+            if (alreadySeen.contains(targetName)) { //circular dependency or common dependency
 				return result;
-			}
-			alreadySeen.add(targetName);
-			dependency = targets.get(targetName);
+            }
+            alreadySeen.add(targetName);
+			dependency = (Target) targets.get(targetName);
 			if (dependency != null) {
 				result = result + countTarget(dependency, alreadySeen);
 			}
@@ -158,17 +158,14 @@
 		return result;
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
+	/* (non-Javadoc)
 	 * @see org.apache.tools.ant.BuildListener#buildFinished(org.apache.tools.ant.BuildEvent)
 	 */
-	@Override
 	public void buildFinished(BuildEvent event) {
 		ProjectMonitors monitors = projects.get(mainProject);
 		monitors.getMainMonitor().done();
-		Set<Project> keys = projects.keySet();
-		Iterator<Project> itr = keys.iterator();
+		Set<Project> keys= projects.keySet();
+		Iterator<Project> itr= keys.iterator();
 		while (itr.hasNext()) {
 			Project project = itr.next();
 			project.removeBuildListener(this);
@@ -176,12 +173,9 @@
 		}
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
+	/* (non-Javadoc)
 	 * @see org.apache.tools.ant.BuildListener#targetStarted(org.apache.tools.ant.BuildEvent)
 	 */
-	@Override
 	public void targetStarted(BuildEvent event) {
 		checkCanceled();
 		Project currentProject = event.getProject();
@@ -205,7 +199,7 @@
 		ProjectMonitors monitors = new ProjectMonitors();
 		// remember the target so we can remove this monitors object later
 		monitors.setMainTarget(target);
-		ArrayList<Target> targets = new ArrayList<Target>(1);
+		ArrayList<Target> targets= new ArrayList<Target>(1);
 		targets.add(target);
 		int work = computeWork(targets);
 		ProjectMonitors parentMonitors = null;
@@ -222,12 +216,9 @@
 		return monitors;
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
+	/* (non-Javadoc)
 	 * @see org.apache.tools.ant.BuildListener#targetFinished(org.apache.tools.ant.BuildEvent)
 	 */
-	@Override
 	public void targetFinished(BuildEvent event) {
 		checkCanceled();
 		Project currentProject = event.getProject();
@@ -246,12 +237,9 @@
 		}
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
+	/* (non-Javadoc)
 	 * @see org.apache.tools.ant.BuildListener#taskStarted(org.apache.tools.ant.BuildEvent)
 	 */
-	@Override
 	public void taskStarted(BuildEvent event) {
 		checkCanceled();
 		Project currentProject = event.getProject();
@@ -267,7 +255,7 @@
 		if (task == null) {
 			return;
 		}
-		currentTaskThread = Thread.currentThread();
+		currentTaskThread= Thread.currentThread();
 		monitors.setTaskMonitor(subMonitorFor(monitors.getTargetMonitor(), 1));
 		monitors.getTaskMonitor().beginTask(IAntCoreConstants.EMPTY_STRING, 1);
 		// If this script is calling another one, track the project chain.
@@ -278,12 +266,9 @@
 		}
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
+	/* (non-Javadoc)
 	 * @see org.apache.tools.ant.BuildListener#taskFinished(org.apache.tools.ant.BuildEvent)
 	 */
-	@Override
 	public void taskFinished(BuildEvent event) {
 		checkCanceled();
 		Project project = event.getProject();
@@ -296,29 +281,26 @@
 			return;
 		}
 		monitors.getTaskMonitor().done();
-		currentTaskThread = null;
+		currentTaskThread= null;
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
+	/* (non-Javadoc)
 	 * @see org.apache.tools.ant.BuildListener#messageLogged(org.apache.tools.ant.BuildEvent)
 	 */
-	@Override
 	public void messageLogged(BuildEvent event) {
 		checkCanceled();
 	}
 
 	protected void checkCanceled() {
-		// only cancel if the current task thread matches the current thread
-		// do not want to throw an exception in a separate thread or process
-		// see bug 32657
+		//only cancel if the current task thread matches the current thread
+		//do not want to throw an exception in a separate thread or process
+		//see bug 32657
 		if (currentTaskThread != null && currentTaskThread != Thread.currentThread()) {
 			return;
 		}
 		ProjectMonitors monitors = projects.get(mainProject);
 		if (monitors.getMainMonitor().isCanceled()) {
-			currentTaskThread = null;
+			currentTaskThread= null;
 			throw new OperationCanceledException(InternalAntMessages.ProgressBuildListener_Build_cancelled);
 		}
 	}
diff --git a/ant/org.eclipse.ant.launching/META-INF/MANIFEST.MF b/ant/org.eclipse.ant.launching/META-INF/MANIFEST.MF
index 525ee2c..cfc993f 100644
--- a/ant/org.eclipse.ant.launching/META-INF/MANIFEST.MF
+++ b/ant/org.eclipse.ant.launching/META-INF/MANIFEST.MF
@@ -10,7 +10,7 @@
  org.eclipse.jdt.launching;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.core.variables;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.ant.core;bundle-version="[3.2.0,4.0.0)",
- org.apache.ant;bundle-version="1.9.2",
+ org.apache.ant;bundle-version="1.7.1",
  org.eclipse.core.externaltools;bundle-version="[1.0.0,2.0.0)",
  org.eclipse.text;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.jdt.core;bundle-version="[3.5.0,4.0.0)",
diff --git a/ant/org.eclipse.ant.launching/common/org/eclipse/ant/internal/launching/debug/AntDebugState.java b/ant/org.eclipse.ant.launching/common/org/eclipse/ant/internal/launching/debug/AntDebugState.java
index 280986f..c758410 100644
--- a/ant/org.eclipse.ant.launching/common/org/eclipse/ant/internal/launching/debug/AntDebugState.java
+++ b/ant/org.eclipse.ant.launching/common/org/eclipse/ant/internal/launching/debug/AntDebugState.java
@@ -28,70 +28,72 @@
 import org.eclipse.ant.internal.launching.debug.model.DebugMessageIds;
 
 public class AntDebugState {
-
-	private static final String fgAntTaskName = "ant"; //$NON-NLS-1$
-	private static final String fgAntCallTaskName = "antcall"; //$NON-NLS-1$
-
+    
+    private static final String fgAntTaskName= "ant"; //$NON-NLS-1$
+    private static final String fgAntCallTaskName= "antcall"; //$NON-NLS-1$
+    
 	private IDebugBuildLogger fLogger;
-	private Stack<Task> fTasks = new Stack<Task>();
-	private Map<Task, Object> fTaskToProxies = new HashMap<Task, Object>();
+	private Stack<Task> fTasks= new Stack<Task>();
+	private Map<Task, Object> fTaskToProxies= new HashMap<Task, Object>();
 	private Task fCurrentTask;
 	private Task fStepOverTask;
 	private Task fStepIntoTask;
 	private Task fLastTaskFinished;
-
-	// properties set before execution
-	private Map<String, Object> fInitialProperties = null;
-	private Map<String, Object> fProperties = null;
-
-	private Map<Project, Vector<?>> fProjectToTargetNames = null;
-	private Map<Project, Map<Target, Vector<Target>>> fProjectToMapOfTargetToBuildSequence = null;
-	private Stack<Target> fTargetsToExecute = new Stack<Target>();
-	private Stack<Target> fTargetsExecuting = new Stack<Target>();
-
-	private boolean fConsiderTargetBreakpoints = false;
+    
+	//properties set before execution
+	//TODO ANT-1.9.1 API USE
+    private Map<?, ?> fInitialProperties= null;
+	private Map<?, ?> fProperties= null;
+    
+    private Map<Project, Vector<?>> fProjectToTargetNames= null;
+    private Map<Project, Map<Target, Vector<?>>> fProjectToMapOfTargetToBuildSequence= null;
+    private Stack<Target> fTargetsToExecute= new Stack<Target>();
+    private Stack<Target> fTargetsExecuting= new Stack<Target>();
+	
+	private boolean fConsiderTargetBreakpoints= false;
 	private boolean fShouldSuspend;
-	private boolean fClientSuspend = false;
-	private boolean fStepIntoSuspend = false;
-	private boolean fIsAfterTaskEvent = false;
-
+	private boolean fClientSuspend= false;
+	private boolean fStepIntoSuspend= false;
+	private boolean fIsAfterTaskEvent= false;
+	
+	
 	public AntDebugState(IDebugBuildLogger logger) {
-		fLogger = logger;
+		fLogger= logger;
 	}
 
 	public void buildStarted() {
-		fProjectToTargetNames = new HashMap<Project, Vector<?>>();
-		fProjectToMapOfTargetToBuildSequence = new HashMap<Project, Map<Target, Vector<Target>>>();
-	}
-
-	/**
-	 * Call-back from {@link org.eclipse.ant.internal.launching.runtime.logger.AntProcessDebugBuildLogger} when the build has finished
-	 * 
-	 * @since 1.0.1
-	 */
-	public void buildFinished() {
-		if (fProjectToTargetNames != null) {
-			fProjectToTargetNames.clear();
-		}
-		if (fProjectToMapOfTargetToBuildSequence != null) {
-			fProjectToMapOfTargetToBuildSequence.clear();
-		}
-		fTargetsExecuting.clear();
-		fTargetsToExecute.clear();
-		if (fInitialProperties != null) {
-			fInitialProperties.clear();
-		}
-		if (fProperties != null) {
-			fProperties.clear();
-		}
-		if (fTaskToProxies != null) {
-			fTaskToProxies.clear();
-		}
-		if (fTasks != null) {
-			fTasks.clear();
-		}
-	}
-
+        fProjectToTargetNames= new HashMap<Project, Vector<?>>();
+        fProjectToMapOfTargetToBuildSequence= new HashMap<Project, Map<Target, Vector<?>>>();
+    }
+    
+    /**
+     * Call-back from {@link org.eclipse.ant.internal.launching.runtime.logger.AntProcessDebugBuildLogger}
+     * when the build has finished
+     * @since 1.0.1
+     */
+    public void buildFinished() {
+    	if(fProjectToTargetNames != null) {
+    		fProjectToTargetNames.clear();
+    	}
+    	if(fProjectToMapOfTargetToBuildSequence != null) {
+    		fProjectToMapOfTargetToBuildSequence.clear();
+    	}
+    	fTargetsExecuting.clear();
+    	fTargetsToExecute.clear();
+    	if(fInitialProperties != null) {
+    		fInitialProperties.clear();
+    	}
+    	if(fProperties != null) {
+    		fProperties.clear();
+    	}
+    	if(fTaskToProxies != null) {
+    		fTaskToProxies.clear();
+    	}
+    	if(fTasks != null) {
+    		fTasks.clear();
+    	}
+    }
+	
 	public void waitIfSuspended() {
 		fLogger.waitIfSuspended();
 	}
@@ -101,7 +103,7 @@
 	}
 
 	private void setLastTaskFinished(Task lastTaskFinished) {
-		fLastTaskFinished = lastTaskFinished;
+		fLastTaskFinished= lastTaskFinished;
 
 	}
 
@@ -110,11 +112,11 @@
 	}
 
 	public void setCurrentTask(Task currentTask) {
-		fCurrentTask = currentTask;
+		fCurrentTask= currentTask;
 
 	}
 
-	private Map<String, Object> getInitialProperties() {
+	private Map<?, ?> getInitialProperties() {
 		return fInitialProperties;
 	}
 
@@ -123,7 +125,7 @@
 	}
 
 	public void setStepOverTask(Task stepOverTask) {
-		fStepOverTask = stepOverTask;
+		fStepOverTask= stepOverTask;
 
 	}
 
@@ -132,54 +134,54 @@
 	}
 
 	private void setConsiderTargetBreakpoints(boolean considerTargetBreakpoints) {
-		fConsiderTargetBreakpoints = considerTargetBreakpoints;
+		fConsiderTargetBreakpoints= considerTargetBreakpoints;
 	}
 
 	private Stack<Task> getTasks() {
 		return fTasks;
 	}
-
+	
 	public void setShouldSuspend(boolean shouldSuspend) {
-		fShouldSuspend = shouldSuspend;
+		fShouldSuspend= shouldSuspend;
 	}
 
 	public boolean shouldSuspend() {
 		return fShouldSuspend;
 	}
 
-	private Map<Target, Vector<Target>> getTargetToBuildSequence(Project project) {
+	private Map<Target, Vector<?>> getTargetToBuildSequence(Project project) {
 		return fProjectToMapOfTargetToBuildSequence.get(project);
 	}
 
 	public void setTargetToExecute(Target target) {
-		if (target == null) {
-			fTargetsToExecute.pop();
-		} else {
-			fTargetsToExecute.push(target);
-		}
+        if (target == null) {
+            fTargetsToExecute.pop();
+        } else {
+            fTargetsToExecute.push(target);
+        }
 	}
 
 	public void setTargetExecuting(Target target) {
-		if (target == null) {
-			if (!fTargetsExecuting.isEmpty()) {
-				fTargetsExecuting.pop();
-			}
-		} else {
-			fTargetsExecuting.push(target);
-		}
+        if (target == null) {
+        	if(!fTargetsExecuting.isEmpty()) {
+        		fTargetsExecuting.pop();
+        	}
+        } else {
+            fTargetsExecuting.push(target);
+        }
 	}
 
 	private Target getTargetToExecute() {
-		if (fTargetsToExecute.isEmpty()) {
-			return null;
-		}
+	    if (fTargetsToExecute.isEmpty()) {
+            return null;
+        }
 		return fTargetsToExecute.peek();
 	}
-
+	
 	private Target getTargetExecuting() {
-		if (fTargetsExecuting.isEmpty()) {
-			return null;
-		}
+        if (fTargetsExecuting.isEmpty()) {
+            return null;
+        }
 		return fTargetsExecuting.peek();
 	}
 
@@ -206,24 +208,24 @@
 	public void setStepIntoTask(Task stepIntoTask) {
 		fStepIntoTask = stepIntoTask;
 	}
-
+	
 	public void resume() {
 		fLogger.notifyAll();
 	}
 
-	public Map<String, Object> getProperties() {
+	public Map<?, ?> getProperties() {
 		return fProperties;
 	}
-
+	
 	public Location getBreakpointLocation() {
 		if (isAfterTaskEvent() && getCurrentTask() != null) {
 			return getCurrentTask().getLocation();
 		}
 		if (considerTargetBreakpoints()) {
-			Target targetExecuting = getTargetExecuting();
-			if (targetExecuting != null) {
-				return getLocation(targetExecuting);
-			}
+	        Target targetExecuting= getTargetExecuting();
+	        if (targetExecuting != null) {
+                return getLocation(targetExecuting);      
+            }
 		}
 		return null;
 	}
@@ -235,19 +237,19 @@
 	private void setAfterTaskEvent(boolean isAfterTaskEvent) {
 		fIsAfterTaskEvent = isAfterTaskEvent;
 	}
-
+	
 	public void taskStarted(BuildEvent event) {
 		setAfterTaskEvent(true);
-		if (getInitialProperties() == null) {// implicit or top level target does not fire targetStarted()
-			fInitialProperties = event.getProject().getProperties();
+		if (getInitialProperties() == null) {//implicit or top level target does not fire targetStarted()
+			fInitialProperties= event.getProject().getProperties();
 		}
-
+		
 		setCurrentTask(event.getTask());
 		setConsiderTargetBreakpoints(false);
 		Stack<Task> tasks = getTasks();
 		if (!tasks.isEmpty()) {
-			// cache the parent task proxy as when that task is started or finished the
-			// proxy is not yet available or is nulled out
+			//cache the parent task proxy as when that task is started or finished the
+			//proxy is not yet available or is nulled out
 			Task parentTask = tasks.peek();
 			Object proxy = parentTask.getRuntimeConfigurableWrapper().getProxy();
 			if (proxy != null) {
@@ -257,261 +259,262 @@
 		tasks.push(getCurrentTask());
 		waitIfSuspended();
 	}
+	
 
-	public void taskFinished() {
-		Stack<Task> tasks = getTasks();
-		if (!tasks.empty()) {
-			Task lastTask = tasks.pop();
-			setLastTaskFinished(lastTask);
-			setCurrentTask(null);
-			String taskName = lastTask.getTaskName();
+    public void taskFinished() {
+    	Stack<Task> tasks = getTasks();
+    	if(!tasks.empty()) {
+	    	Task lastTask= tasks.pop();
+	        setLastTaskFinished(lastTask);
+	        setCurrentTask(null);
+	        String taskName= lastTask.getTaskName();
+	       
+	        if (getStepOverTask() != null) {
+	        	if ((fgAntCallTaskName.equals(taskName) || fgAntTaskName.equals(taskName)) && (!fgAntCallTaskName.equals(getStepOverTask().getTaskName()) && !fgAntTaskName.equals(getStepOverTask().getTaskName()))) {
+	        		setShouldSuspend(true);
+	        	} else if (fTaskToProxies.remove(lastTask) instanceof MacroInstance) {
+	        		setShouldSuspend(true);
+	        	}
+	        }
+    	}
+    	 waitIfSuspended();
+    }
 
-			if (getStepOverTask() != null) {
-				if ((fgAntCallTaskName.equals(taskName) || fgAntTaskName.equals(taskName))
-						&& (!fgAntCallTaskName.equals(getStepOverTask().getTaskName()) && !fgAntTaskName.equals(getStepOverTask().getTaskName()))) {
-					setShouldSuspend(true);
-				} else if (fTaskToProxies.remove(lastTask) instanceof MacroInstance) {
-					setShouldSuspend(true);
-				}
-			}
-		}
-		waitIfSuspended();
-	}
+    public void stepOver() {
+       setStepOverTask(getCurrentTask());
+        if (getCurrentTask() == null) {
+            //stepping over target breakpoint
+           setShouldSuspend(true);
+        }
+        resume();
+    }
 
-	public void stepOver() {
-		setStepOverTask(getCurrentTask());
-		if (getCurrentTask() == null) {
-			// stepping over target breakpoint
-			setShouldSuspend(true);
-		}
-		resume();
-	}
-
-	public void targetStarted(BuildEvent event) {
+    public void targetStarted(BuildEvent event) {
 		setAfterTaskEvent(false);
-		Project eventProject = event.getProject();
-		if (getInitialProperties() == null) {
-			fInitialProperties = eventProject.getProperties();
-		}
-		if (fProjectToTargetNames.get(eventProject) == null) {
-			Object ref = eventProject.getReference("eclipse.ant.targetVector"); //$NON-NLS-1$
-			if (ref != null) {
-				fProjectToTargetNames.put(eventProject, (Vector<?>) ref);
-				HashMap<Target, Vector<Target>> targetToBuildSequence = new HashMap<Target, Vector<Target>>();
-				setTargetToExecute(initializeBuildSequenceInformation(event, targetToBuildSequence));
-				fProjectToMapOfTargetToBuildSequence.put(eventProject, targetToBuildSequence);
-			}
-		}
-
-		setTargetExecuting(event.getTarget());
-		if (event.getTarget().equals(getTargetToExecute())) {
-			// the dependencies of the target to execute have been met
-			// prepare for the next target
-			Vector<?> targets = fProjectToTargetNames.get(eventProject);
-			if (!targets.isEmpty()) {
-				setTargetToExecute(eventProject.getTargets().get(targets.remove(0)));
-			} else {
-				setTargetToExecute(null);
-			}
-		}
-		setConsiderTargetBreakpoints(true);
-	}
+        Project eventProject = event.getProject();
+        if (getInitialProperties() == null) {
+            fInitialProperties= eventProject.getProperties();
+        }
+        if (fProjectToTargetNames.get(eventProject) == null) {
+            Object ref= eventProject.getReference("eclipse.ant.targetVector"); //$NON-NLS-1$
+            if (ref != null) {
+                fProjectToTargetNames.put(eventProject, (Vector<?>) ref);
+                HashMap<Target, Vector<?>> targetToBuildSequence = new HashMap<Target, Vector<?>>();
+                setTargetToExecute(initializeBuildSequenceInformation(event, targetToBuildSequence));
+                fProjectToMapOfTargetToBuildSequence.put(eventProject, targetToBuildSequence);
+            }
+        }
+        
+        setTargetExecuting(event.getTarget());
+        if (event.getTarget().equals(getTargetToExecute())) {
+            //the dependencies of the target to execute have been met
+            //prepare for the next target
+            Vector<?> targets= fProjectToTargetNames.get(eventProject);
+            if (!targets.isEmpty()) {
+                setTargetToExecute((Target) eventProject.getTargets().get(targets.remove(0)));
+            } else {
+                setTargetToExecute(null);
+            }
+        }
+        setConsiderTargetBreakpoints(true);
+    }
 
 	public int getLineNumber(Location location) {
-		try { // succeeds with Ant newer than 1.6
-			return location.getLineNumber();
-		}
-		catch (NoSuchMethodError e) {
-			// Ant before 1.6
-			String locationString = location.toString();
-			if (locationString.length() == 0) {
-				return 0;
-			}
-			// filename: lineNumber: ("c:\buildfile.xml: 12: ")
-			int lastIndex = locationString.lastIndexOf(':');
-			int index = locationString.lastIndexOf(':', lastIndex - 1);
-			if (index != -1) {
-				try {
-					return Integer.parseInt(locationString.substring(index + 1, lastIndex));
-				}
-				catch (NumberFormatException nfe) {
-					return 0;
-				}
-			}
-			return 0;
-		}
+	    try { //succeeds with Ant newer than 1.6
+	        return location.getLineNumber();
+	    } catch (NoSuchMethodError e) {
+	        //Ant before 1.6
+	        String locationString= location.toString();
+	        if (locationString.length() == 0) {
+	            return 0;
+	        }
+	        //filename: lineNumber: ("c:\buildfile.xml: 12: ")
+	        int lastIndex= locationString.lastIndexOf(':');
+	        int index =locationString.lastIndexOf(':', lastIndex - 1);
+	        if (index != -1) {
+	            try {
+	                return Integer.parseInt(locationString.substring(index+1, lastIndex));
+	            } catch (NumberFormatException nfe) {
+	                return 0;
+	            }
+	        }
+	        return 0;
+	    }
 	}
 
 	public static Location getLocation(Target target) {
-		try {// succeeds with Ant newer than 1.6.2
-			return target.getLocation();
-		}
-		catch (NoSuchMethodError e) {
-			return Location.UNKNOWN_LOCATION;
-		}
+	    try {//succeeds with Ant newer than 1.6.2
+	        return target.getLocation();
+	    } catch (NoSuchMethodError e) {
+	        return Location.UNKNOWN_LOCATION;
+	    }
 	}
 
 	public String getFileName(Location location) {
-		try {// succeeds with Ant newer than 1.6
-			return location.getFileName();
-		}
-		catch (NoSuchMethodError e) {
-			// Ant before 1.6
-			String locationString = location.toString();
-			if (locationString.length() == 0) {
-				return null;
-			}
-			// filename: lineNumber: ("c:\buildfile.xml: 12: ")
-			int lastIndex = locationString.lastIndexOf(':');
-			int index = locationString.lastIndexOf(':', lastIndex - 1);
-			if (index == -1) {
-				index = lastIndex; // only the filename is known
-			}
-			if (index != -1) {
-				// bug 84403
-				// if (locationString.startsWith("file:")) {
-				// return FileUtils.newFileUtils().fromURI(locationString);
-				// }
-				// remove file:
-				return locationString.substring(5, index);
-			}
-			return null;
-		}
+	    try {//succeeds with Ant newer than 1.6
+	        return location.getFileName();
+	    } catch (NoSuchMethodError e) {
+	        //Ant before 1.6
+	        String locationString= location.toString();
+	        if (locationString.length() == 0) {
+	            return null;
+	        }
+	        //filename: lineNumber: ("c:\buildfile.xml: 12: ")          
+	        int lastIndex= locationString.lastIndexOf(':');
+	        int index =locationString.lastIndexOf(':', lastIndex-1);
+	        if (index == -1) {
+	            index= lastIndex; //only the filename is known
+	        }
+	        if (index != -1) {
+	        //bug 84403
+	            //if (locationString.startsWith("file:")) {
+	              //  return FileUtils.newFileUtils().fromURI(locationString);
+	            //}
+	            //remove file:
+	            return locationString.substring(5, index);
+	        }
+	        return null;
+	    }
 	}
 
 	private void appendToStack(StringBuffer stackRepresentation, String targetName, String taskName, Location location) {
-		stackRepresentation.append(targetName);
-		stackRepresentation.append(DebugMessageIds.MESSAGE_DELIMITER);
-		stackRepresentation.append(taskName);
-		stackRepresentation.append(DebugMessageIds.MESSAGE_DELIMITER);
-
-		stackRepresentation.append(getFileName(location));
-		stackRepresentation.append(DebugMessageIds.MESSAGE_DELIMITER);
-		stackRepresentation.append(getLineNumber(location));
-		stackRepresentation.append(DebugMessageIds.MESSAGE_DELIMITER);
+	    stackRepresentation.append(targetName);
+	    stackRepresentation.append(DebugMessageIds.MESSAGE_DELIMITER);
+	    stackRepresentation.append(taskName);
+	    stackRepresentation.append(DebugMessageIds.MESSAGE_DELIMITER);
+	    
+	    stackRepresentation.append(getFileName(location));
+	    stackRepresentation.append(DebugMessageIds.MESSAGE_DELIMITER);
+	    stackRepresentation.append(getLineNumber(location));
+	    stackRepresentation.append(DebugMessageIds.MESSAGE_DELIMITER);
 	}
 
 	public void marshalStack(StringBuffer stackRepresentation) {
-		Stack<Task> tasks = getTasks();
-
-		stackRepresentation.append(DebugMessageIds.STACK);
-		stackRepresentation.append(DebugMessageIds.MESSAGE_DELIMITER);
-
-		Target targetToExecute = getTargetToExecute();
-		Target targetExecuting = getTargetExecuting();
-
-		Project projectExecuting = null;
-		if (targetExecuting != null) {
-			projectExecuting = targetExecuting.getProject();
-		} else if (!tasks.empty()) { // no target...must be a task
-			Task task = tasks.peek();
-			projectExecuting = task.getProject();
-		}
-
+		Stack<Task> tasks= getTasks();
+		
+	    stackRepresentation.append(DebugMessageIds.STACK);
+	    stackRepresentation.append(DebugMessageIds.MESSAGE_DELIMITER);
+	    
+		Target targetToExecute= getTargetToExecute();
+		Target targetExecuting= getTargetExecuting();
+      
+        Project projectExecuting= null;
+        if (targetExecuting != null) {
+            projectExecuting= targetExecuting.getProject();
+        } else if(!tasks.empty()) { //no target...must be a task
+            Task task= tasks.peek();
+            projectExecuting= task.getProject();
+        }
+        
 		if (!isAfterTaskEvent()) {
 			appendToStack(stackRepresentation, targetExecuting.getName(), IAntCoreConstants.EMPTY_STRING, getLocation(targetExecuting));
 		}
-		for (int i = tasks.size() - 1; i >= 0; i--) {
-			Task task = tasks.get(i);
-			if (task.getProject() == projectExecuting) {
-				appendToStack(stackRepresentation, task.getOwningTarget().getName(), task.getTaskName(), task.getLocation());
-			} else {
-				// sub build target dependencies
-				String targetName = task.getOwningTarget().getName();
-				if (targetName != null && targetName.length() != 0) { // skip for implicit target
-					Iterator<Target> itr = fTargetsToExecute.iterator();
-					while (itr.hasNext()) {
-						Target target = itr.next();
-						if (target.getProject() != projectExecuting) {
-							targetToExecute = target;
-							continue;
-						}
-						marshalTargetDependancyStack(stackRepresentation, target, targetExecuting);
-					}
-				}
-				projectExecuting = task.getProject();
-				targetExecuting = task.getOwningTarget();
-				appendToStack(stackRepresentation, targetExecuting.getName(), task.getTaskName(), task.getLocation());
-			}
+		for (int i = tasks.size() - 1; i >= 0 ; i--) {
+			Task task= tasks.get(i);
+            if (task.getProject() == projectExecuting) {
+                appendToStack(stackRepresentation, task.getOwningTarget().getName(), task.getTaskName(), task.getLocation());
+            } else {
+                //sub build target dependencies
+                String targetName= task.getOwningTarget().getName();
+                if (targetName != null && targetName.length() != 0) { //skip for implicit target
+                    Iterator<Target> itr= fTargetsToExecute.iterator();
+                    while (itr.hasNext()) {
+                        Target target= itr.next();
+                        if (target.getProject() != projectExecuting) {
+                        	targetToExecute= target;
+                            continue;
+                        }
+                        marshalTargetDependancyStack(stackRepresentation, target, targetExecuting);
+                    }
+                }
+                projectExecuting= task.getProject();
+                targetExecuting= task.getOwningTarget();
+                appendToStack(stackRepresentation, targetExecuting.getName(), task.getTaskName(), task.getLocation());
+            }
 		}
 
-		// target dependency stack
+		//target dependency stack 
 		marshalTargetDependancyStack(stackRepresentation, targetToExecute, targetExecuting);
 	}
 
-	private void marshalTargetDependancyStack(StringBuffer stackRepresentation, Target targetToExecute, Target targetExecuting) {
-		if (targetToExecute != null) {
-			Vector<Target> buildSequence = getTargetToBuildSequence(targetToExecute.getProject()).get(targetToExecute);
-			int startIndex = buildSequence.indexOf(targetExecuting) + 1;
-			int dependancyStackDepth = buildSequence.indexOf(targetToExecute);
-
-			Target stackTarget;
-			for (int i = startIndex; i <= dependancyStackDepth; i++) {
-				stackTarget = buildSequence.get(i);
-				if (stackTarget.dependsOn(targetExecuting.getName())) {
-					appendToStack(stackRepresentation, stackTarget.getName(), IAntCoreConstants.EMPTY_STRING, getLocation(stackTarget));
-				}
-			}
-		}
-	}
+    private void marshalTargetDependancyStack(StringBuffer stackRepresentation, Target targetToExecute, Target targetExecuting) {
+        if (targetToExecute != null) {
+	     	Vector<?> buildSequence= getTargetToBuildSequence(targetToExecute.getProject()).get(targetToExecute);
+	     	int startIndex= buildSequence.indexOf(targetExecuting) + 1;
+	     	int dependancyStackDepth= buildSequence.indexOf(targetToExecute);
+	     	
+	     	Target stackTarget;
+	     	for (int i = startIndex; i <= dependancyStackDepth; i++) {
+	     		stackTarget= (Target) buildSequence.get(i);
+	            if (stackTarget.dependsOn(targetExecuting.getName())) {
+	     		    appendToStack(stackRepresentation, stackTarget.getName(), IAntCoreConstants.EMPTY_STRING, getLocation(stackTarget));
+	            }
+	     	}
+	     }
+    }
 
 	public void marshallProperties(StringBuffer propertiesRepresentation, boolean escapeLineSep) {
 		Stack<Task> tasks = getTasks();
 		if (tasks.isEmpty()) {
 			return;
 		}
-		propertiesRepresentation.append(DebugMessageIds.PROPERTIES);
-		propertiesRepresentation.append(DebugMessageIds.MESSAGE_DELIMITER);
-
-		Project project = tasks.peek().getProject();
-		Map<String, Object> lastProperties = getProperties();
-
-		Map<String, Object> currentProperties = project.getProperties();
-		if (lastProperties != null && currentProperties.size() == lastProperties.size()) {
-			// no new properties
-			return;
-		}
-
-		Map<String, Object> initialProperties = getInitialProperties();
-		Map<String, Object> currentUserProperties = project.getUserProperties();
+	    propertiesRepresentation.append(DebugMessageIds.PROPERTIES);
+	    propertiesRepresentation.append(DebugMessageIds.MESSAGE_DELIMITER);
+		
+		Project project= tasks.peek().getProject();
+		Map<?, ?> lastProperties= getProperties(); 
+		
+		//TODO ANT-1.9.1 API USE
+	    Map<?, ?> currentProperties= project.getProperties();
+	    if (lastProperties != null && currentProperties.size() == lastProperties.size()) {
+	        //no new properties
+	        return;
+	    }
+	    
+		Map<?, ?> initialProperties= getInitialProperties();
+	    Map<?, ?> currentUserProperties= project.getUserProperties();
+	    Iterator<?> iter= currentProperties.keySet().iterator();
+	    String propertyName;
 		String originalPropertyName;
-		String propertyValue;
-		for (String propertyName : currentProperties.keySet()) {
-			originalPropertyName = propertyName;
-			if (lastProperties == null || lastProperties.get(propertyName) == null) { // new property
+	    String propertyValue;
+	    while (iter.hasNext()) {
+	        propertyName = (String) iter.next();
+			originalPropertyName= propertyName;
+	        if (lastProperties == null || lastProperties.get(propertyName) == null) { //new property
 				if (escapeLineSep) {
-					propertyName = escapeLineSeparator(propertyName);
+					propertyName= escapeLineSeparator(propertyName);
 				}
-				propertiesRepresentation.append(propertyName.length());
-				propertiesRepresentation.append(DebugMessageIds.MESSAGE_DELIMITER);
-				propertiesRepresentation.append(propertyName);
-				propertiesRepresentation.append(DebugMessageIds.MESSAGE_DELIMITER);
-				propertyValue = (String) currentProperties.get(originalPropertyName);
+	            propertiesRepresentation.append(propertyName.length());
+	            propertiesRepresentation.append(DebugMessageIds.MESSAGE_DELIMITER);
+	            propertiesRepresentation.append(propertyName);
+	            propertiesRepresentation.append(DebugMessageIds.MESSAGE_DELIMITER);
+	            propertyValue= (String) currentProperties.get(originalPropertyName);
 				if (escapeLineSep) {
-					propertyValue = escapeLineSeparator(propertyValue);
+					propertyValue= escapeLineSeparator(propertyValue);
 				}
-				propertiesRepresentation.append(propertyValue.length());
-				propertiesRepresentation.append(DebugMessageIds.MESSAGE_DELIMITER);
+	            propertiesRepresentation.append(propertyValue.length());
+	            propertiesRepresentation.append(DebugMessageIds.MESSAGE_DELIMITER);
 				propertiesRepresentation.append(propertyValue);
-				propertiesRepresentation.append(DebugMessageIds.MESSAGE_DELIMITER);
-				propertiesRepresentation.append(getPropertyType(initialProperties, currentUserProperties, originalPropertyName));
-				propertiesRepresentation.append(DebugMessageIds.MESSAGE_DELIMITER);
-			}
-		}
-		propertiesRepresentation.deleteCharAt(propertiesRepresentation.length() - 1);
-		fProperties = currentProperties;
+	            propertiesRepresentation.append(DebugMessageIds.MESSAGE_DELIMITER);
+	            propertiesRepresentation.append(getPropertyType(initialProperties, currentUserProperties, originalPropertyName));
+	            propertiesRepresentation.append(DebugMessageIds.MESSAGE_DELIMITER);
+	        }
+	    }
+	    
+	    propertiesRepresentation.deleteCharAt(propertiesRepresentation.length() - 1);
+		fProperties= currentProperties;
 	}
 
-	private int getPropertyType(Map<String, Object> initialProperties, Map<String, Object> currentUserProperties, String propertyName) {
-		if (initialProperties.get(propertyName) != null) { // properties set before the start of the build
-			if (currentUserProperties.get(propertyName) == null) {
-				return DebugMessageIds.PROPERTY_SYSTEM;
-			}
+	private int getPropertyType(Map<?, ?> initialProperties, Map<?, ?> currentUserProperties, String propertyName) {
+		if (initialProperties.get(propertyName) != null) { //properties set before the start of the build
+		    if (currentUserProperties.get(propertyName) == null) {
+		        return DebugMessageIds.PROPERTY_SYSTEM;
+		    } 
 			return DebugMessageIds.PROPERTY_USER;
-		} else if (currentUserProperties.get(propertyName) == null) {
-			return DebugMessageIds.PROPERTY_RUNTIME;
+		} else if (currentUserProperties.get(propertyName) == null){
+		    return DebugMessageIds.PROPERTY_RUNTIME;
 		} else {
-			return DebugMessageIds.PROPERTY_USER;
+		    return DebugMessageIds.PROPERTY_USER;
 		}
 	}
 
@@ -519,44 +522,48 @@
 		if (!(stringToEscape.indexOf('\r') != -1 || stringToEscape.indexOf('\n') != -1 || stringToEscape.indexOf("\\r") != -1 || stringToEscape.indexOf("\\n") != -1)) { //$NON-NLS-1$ //$NON-NLS-2$
 			return stringToEscape;
 		}
-		StringBuffer escapedValue = new StringBuffer(stringToEscape);
-		for (int i = 0; i < escapedValue.length(); i++) {
+		StringBuffer escapedValue= new StringBuffer(stringToEscape);		
+		for (int i= 0; i < escapedValue.length(); i++) {
 			switch (escapedValue.charAt(i)) {
-				case '\r':
-					escapedValue.replace(i, i + 1, "\\r"); //$NON-NLS-1$
+			case '\r':
+				escapedValue.replace(i, i+1, "\\r"); //$NON-NLS-1$
+				i++;
+				break;
+			case '\n':
+				escapedValue.replace(i, i+1, "\\n"); //$NON-NLS-1$
+				i++;
+				break;
+			case '\\':
+				if (escapedValue.charAt(i + 1) == 'r' || escapedValue.charAt(i + 1) == 'n') {
+					escapedValue.replace(i, i+1, "\\\\"); //$NON-NLS-1$
 					i++;
-					break;
-				case '\n':
-					escapedValue.replace(i, i + 1, "\\n"); //$NON-NLS-1$
-					i++;
-					break;
-				case '\\':
-					if (escapedValue.charAt(i + 1) == 'r' || escapedValue.charAt(i + 1) == 'n') {
-						escapedValue.replace(i, i + 1, "\\\\"); //$NON-NLS-1$
-						i++;
-					}
-					break;
-				default:
-					break;
+				}
+				break;
+			default:
+				break;
 			}
 		}
 
 		return escapedValue.toString();
 	}
 
-	private Target initializeBuildSequenceInformation(BuildEvent event, Map<Target, Vector<Target>> targetToBuildSequence) {
-		Project antProject = event.getProject();
-		Vector<String> targets = (Vector<String>) antProject.getReference("eclipse.ant.targetVector"); //$NON-NLS-1$
-		if (targets == null) {
-			return null;
-		}
-		Hashtable<String, Target> allTargets = antProject.getTargets();
-		Vector<Target> sortedTargets;
-		for (String targetName : targets) {
-			sortedTargets = antProject.topoSort(targetName, allTargets);
-			targetToBuildSequence.put(allTargets.get(targetName), sortedTargets);
-		}
-		// the target to execute
-		return allTargets.get(targets.remove(0));
+	private Target initializeBuildSequenceInformation(BuildEvent event, Map<Target, Vector<?>> targetToBuildSequence) {
+	    Project antProject= event.getProject();
+	    Vector<?> targets= (Vector<?>) antProject.getReference("eclipse.ant.targetVector"); //$NON-NLS-1$
+        if (targets == null) {
+            return null;
+        }
+	    Iterator<?> itr= targets.iterator();
+	    //TODO ANT-1.9.1 API USE
+	    Hashtable<?, ?> allTargets = antProject.getTargets();
+	    String targetName;
+	    Vector<?> sortedTargets;
+	    while (itr.hasNext()) {
+	        targetName= (String) itr.next();
+	        sortedTargets= antProject.topoSort(targetName, allTargets);
+	        targetToBuildSequence.put((Target) allTargets.get(targetName), sortedTargets);
+	    }
+	    //the target to execute
+	    return (Target) allTargets.get(targets.remove(0));
 	}
 }
diff --git a/ant/org.eclipse.ant.tests.core/META-INF/MANIFEST.MF b/ant/org.eclipse.ant.tests.core/META-INF/MANIFEST.MF
index d330e15..cc3bd08 100644
--- a/ant/org.eclipse.ant.tests.core/META-INF/MANIFEST.MF
+++ b/ant/org.eclipse.ant.tests.core/META-INF/MANIFEST.MF
@@ -11,7 +11,7 @@
  org.eclipse.ant.tests.core.testplugin,
  org.eclipse.ant.tests.core.tests
 Require-Bundle: org.eclipse.ui.ide;resolution:=optional,
- org.apache.ant;bundle-version="1.9.2",
+ org.apache.ant;bundle-version="1.8.4",
  org.junit,
  org.eclipse.core.resources,
  org.eclipse.ui,
diff --git a/ant/org.eclipse.ant.tests.core/buildfiles/buildAntTestsSupportJAR.xml b/ant/org.eclipse.ant.tests.core/buildfiles/buildAntTestsSupportJAR.xml
index 7dac400..8b57ae7 100644
--- a/ant/org.eclipse.ant.tests.core/buildfiles/buildAntTestsSupportJAR.xml
+++ b/ant/org.eclipse.ant.tests.core/buildfiles/buildAntTestsSupportJAR.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
<!--
-     Copyright (c) 2005, 2013 IBM Corporation and others.
+     Copyright (c) 2005, 2006 IBM Corporation and others.
      All rights reserved. This program and the accompanying materials
      are made available under the terms of the Eclipse Public License v1.0
      which accompanies this distribution, and is available at
@@ -13,15 +13,38 @@
 
 	<target name="build" description="Removes all build artifacts, recreates the support jar, and refreshes this plugin's resources" depends="clean, lib/antTestsSupport.jar"/>
 
-	<target name="init">
+	<target name="init" depends="properties">
 		<property name="temp.folder" value="${basedir}/temp.folder"/>
+		<property name="plugin.destination" value="${basedir}"/>
 		<property name="build.result.folder" value="${basedir}"/>
 	</target>
 
+	<target name="properties" if="eclipse.running">
+		<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
+	</target>
+
 	<target name="lib/antTestsSupport.jar" depends="init" description= "Builds the support JAR">
 		<property name="destdir" value="${temp.folder}/lib/antTestsSupport.jar.bin"/>
 		<delete dir="${destdir}"/>
-		<mkdir dir="${destdir}"/>
		<!-- copy necessary resources -->
		<copy todir="${destdir}">
			<fileset dir="${basedir}/test_support_bin/"/>
		</copy>
		<mkdir dir="${build.result.folder}/lib"/>
		<jar destfile="${build.result.folder}/lib/antTestsSupport.jar" basedir="${destdir}"/>
+		<mkdir dir="${destdir}"/>
+		<!-- compile the source code -->
+		<javac target="1.1" destdir="${destdir}" failonerror="false" verbose="false" debug="on" includeAntRuntime="yes">
+			<classpath>
+				<dirset dir="${basedir}">
+					<include name="../org.eclipse.core.runtime/bin"/>
+					<include name="bin"/>
+					<include name="../org.eclipse.ant.core/bin"/>
+				</dirset>
+				<fileset dir="${eclipse.home}/plugins">
+					<include name="org.eclipse.core.runtime*.jar"/>
+					<include name="org.eclipse.equinox.common*.jar"/>
+					<include name="org.eclipse.ant.core*.jar"/>
+				</fileset>
+			</classpath>
+			<src path="test support/"/>
+		</javac>
+		<mkdir dir="${build.result.folder}/lib"/>
+		<jar destfile="${build.result.folder}/lib/antTestsSupport.jar" basedir="${destdir}"/>
 		<delete dir="${temp.folder}"/>
 	</target>
 
diff --git a/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestChecker.java b/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestChecker.java
index 1f55391..e1e5509 100644
--- a/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestChecker.java
+++ b/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestChecker.java
@@ -10,51 +10,52 @@
  *******************************************************************************/
 package org.eclipse.ant.tests.core.testplugin;
 
+
 import java.util.ArrayList;
 import java.util.Hashtable;
 import java.util.List;
 
 public class AntTestChecker {
-
-	private static AntTestChecker deflt = null;
-
+	
+	private static AntTestChecker deflt= null;
+	
 	private int taskStartedCount;
-
+	
 	private int taskFinishedCount;
-
+	
 	private int targetsStartedCount;
-
+	
 	private int targetsFinishedCount;
-
+	
 	private int buildsStartedCount;
-
+	
 	private int buildsFinishedCount;
-
-	private List<String> messages = new ArrayList<String>();
-
-	private List<String> targets = new ArrayList<String>();
-
-	private List<String> tasks = new ArrayList<String>();
-
-	private List<String> projects = new ArrayList<String>();
-
-	private Hashtable<String, Object> userProperties;
-
-	private List<String> nameOfListeners = new ArrayList<String>();
-
-	private AntTestChecker() {
+	
+	private List<String> messages= new ArrayList<String>();
+	
+	private List<String> targets= new ArrayList<String>();
+	
+	private List<String> tasks= new ArrayList<String>();
+	
+	private List<String> projects= new ArrayList<String>();
+	
+	private Hashtable<String, String> userProperties;
+	
+	private List<String> nameOfListeners= new ArrayList<String>();
+	
+	private AntTestChecker()  {
 	}
-
+	
 	/**
 	 * Returns the singleton AntTestChecker
 	 */
 	public static AntTestChecker getDefault() {
 		if (deflt == null) {
-			deflt = new AntTestChecker();
+			deflt= new AntTestChecker();
 		}
 		return deflt;
 	}
-
+	
 	/**
 	 * Resets the singleton AntTestChecker
 	 */
@@ -63,7 +64,6 @@
 			deflt.resetState();
 		}
 	}
-
 	/**
 	 * @see org.apache.tools.ant.BuildListener#buildFinished(org.apache.tools.ant.BuildEvent)
 	 */
@@ -71,11 +71,13 @@
 		buildsFinishedCount++;
 	}
 
+	
 	public void buildStarted(String projectName) {
 		buildsStartedCount++;
 		projects.add(projectName);
 	}
 
+	
 	public void messageLogged(String message) {
 		messages.add(message);
 	}
@@ -109,10 +111,9 @@
 		taskStartedCount++;
 		tasks.add(taskName);
 	}
-
+	
 	/**
 	 * Returns the buildsFinishedCount.
-	 * 
 	 * @return int
 	 */
 	public int getBuildsFinishedCount() {
@@ -121,7 +122,6 @@
 
 	/**
 	 * Returns the buildsStartedCount.
-	 * 
 	 * @return int
 	 */
 	public int getBuildsStartedCount() {
@@ -130,7 +130,6 @@
 
 	/**
 	 * Returns the messagesLoggedCount.
-	 * 
 	 * @return int
 	 */
 	public int getMessagesLoggedCount() {
@@ -139,7 +138,6 @@
 
 	/**
 	 * Returns the targetsFinishedCount.
-	 * 
 	 * @return int
 	 */
 	public int getTargetsFinishedCount() {
@@ -148,7 +146,6 @@
 
 	/**
 	 * Returns the targetsStartedCount.
-	 * 
 	 * @return int
 	 */
 	public int getTargetsStartedCount() {
@@ -157,7 +154,6 @@
 
 	/**
 	 * Returns the taskFinishedCount.
-	 * 
 	 * @return int
 	 */
 	public int getTaskFinishedCount() {
@@ -166,67 +162,67 @@
 
 	/**
 	 * Returns the taskStartedCount.
-	 * 
 	 * @return int
 	 */
 	public int getTaskStartedCount() {
 		return taskStartedCount;
 	}
-
+	
 	protected void resetState() {
-		taskStartedCount = 0;
-		taskFinishedCount = 0;
-		targetsStartedCount = 0;
-		targetsFinishedCount = 0;
-		buildsStartedCount = 0;
-		buildsFinishedCount = 0;
-		messages = new ArrayList<String>();
-		tasks = new ArrayList<String>();
-		targets = new ArrayList<String>();
-		projects = new ArrayList<String>();
-		userProperties = null;
-		nameOfListeners = new ArrayList<String>();
+		taskStartedCount= 0;
+		taskFinishedCount= 0;
+		targetsStartedCount= 0;
+		targetsFinishedCount= 0;
+		buildsStartedCount= 0;
+		buildsFinishedCount= 0;
+		messages= new ArrayList<String>();
+		tasks= new ArrayList<String>();
+		targets= new ArrayList<String>();
+		projects= new ArrayList<String>();
+		userProperties= null;
+		nameOfListeners= new ArrayList<String>();
 	}
-
+	
 	/**
-	 * Return the message n from the last: e.g. getLoggedMessage(0) returns the most recent message
-	 * 
-	 * @param n
-	 *            message index
+     * Return the message n from the last:
+     * e.g. getLoggedMessage(0) returns the most recent message
+     * 
+	 * @param n message index
 	 * @return the nth last message
 	 */
-	public String getLoggedMessage(int n) {
-		int idx = messages.size() - (n + 1);
-		if ((idx < 0) || (idx >= messages.size())) {
-			return null;
-		}
-		return messages.get(idx);
-	}
+    public String getLoggedMessage(int n) {
+        int idx = messages.size() - (n + 1);
+        if ((idx < 0) || (idx >= messages.size())) {
+            return null;
+        }
+        return messages.get(idx);
+    }
 
-	public String getLastMessageLogged() {
-		return getLoggedMessage(0);
-	}
-
-	public void setUserProperties(Hashtable<String, Object> userProperties) {
-		this.userProperties = userProperties;
+    public String getLastMessageLogged() {
+        return getLoggedMessage(0);
+    }
+	
+	public void setUserProperties(Hashtable<String, String> userProperties) {
+		this.userProperties= userProperties;
 	}
 
 	public String getUserProperty(String name) {
-		return (String) userProperties.get(name);
+		return userProperties.get(name);
 	}
-
+	
 	public List<String> getMessages() {
 		return messages;
 	}
-
+	
 	public List<String> getListeners() {
 		return nameOfListeners;
 	}
-
+	
 	public String getLastListener() {
 		return nameOfListeners.get(nameOfListeners.size() - 1);
 	}
 
+
 	public void addNameOfListener(String nameOfListener) {
 		this.nameOfListeners.add(nameOfListener);
 	}
diff --git a/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/testloggers/TestBuildLogger.java b/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/testloggers/TestBuildLogger.java
index 6af6f19..112b3c7 100644
--- a/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/testloggers/TestBuildLogger.java
+++ b/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/testloggers/TestBuildLogger.java
@@ -10,10 +10,10 @@
  *******************************************************************************/
 package org.eclipse.ant.tests.core.support.testloggers;
 
+
 import java.io.PrintStream;
 
 import org.apache.tools.ant.BuildEvent;
-import org.apache.tools.ant.BuildListener;
 import org.apache.tools.ant.BuildLogger;
 import org.apache.tools.ant.Project;
 import org.eclipse.ant.core.AntSecurityException;
@@ -22,27 +22,27 @@
 
 public class TestBuildLogger implements BuildLogger {
 
-	private int fMessageOutputLevel = Project.MSG_INFO;
-	private PrintStream fErr = null;
-	private PrintStream fOut = null;
-	private boolean fSetProperties = true;
-
+	private int fMessageOutputLevel= Project.MSG_INFO;
+	private PrintStream fErr= null;
+	private PrintStream fOut= null;
+    private boolean fSetProperties= true;
+	
 	/**
 	 * An exception that has already been logged.
 	 */
-	private Throwable fHandledException = null;
-
+	private Throwable fHandledException= null;
+	
+	
 	public TestBuildLogger() {
 	}
-
+	
 	/**
 	 * @see org.apache.tools.ant.BuildLogger#setMessageOutputLevel(int)
 	 */
-	@Override
 	public void setMessageOutputLevel(int level) {
-		fMessageOutputLevel = level;
+		fMessageOutputLevel= level;
 	}
-
+	
 	protected int getMessageOutputLevel() {
 		return fMessageOutputLevel;
 	}
@@ -50,15 +50,13 @@
 	/**
 	 * @see org.apache.tools.ant.BuildLogger#setEmacsMode(boolean)
 	 */
-	@Override
 	public void setEmacsMode(boolean emacsMode) {
-		// do nothing
+		//do nothing
 	}
 
 	/**
 	 * @see org.apache.tools.ant.BuildListener#buildStarted(org.apache.tools.ant.BuildEvent)
 	 */
-	@Override
 	public void buildStarted(BuildEvent event) {
 		AntTestChecker.getDefault().buildStarted(event.getProject().getName());
 	}
@@ -66,29 +64,27 @@
 	/**
 	 * @see org.apache.tools.ant.BuildListener#buildFinished(org.apache.tools.ant.BuildEvent)
 	 */
-	@Override
 	public void buildFinished(BuildEvent event) {
 		handleException(event);
-		fHandledException = null;
+		fHandledException= null;
 		AntTestChecker.getDefault().buildFinished();
 	}
 
 	/**
 	 * @see org.apache.tools.ant.BuildListener#targetStarted(org.apache.tools.ant.BuildEvent)
 	 */
-	@Override
 	public void targetStarted(BuildEvent event) {
 		AntTestChecker.getDefault().targetStarted(event.getTarget().getName());
-		if (fSetProperties) {
-			fSetProperties = false;
-			AntTestChecker.getDefault().setUserProperties(event.getProject().getProperties());
-		}
+        if (fSetProperties) {
+            fSetProperties= false;
+            //TODO ANT-1.9.1 API USE
+            AntTestChecker.getDefault().setUserProperties(event.getProject().getProperties());
+        }
 	}
 
 	/**
 	 * @see org.apache.tools.ant.BuildListener#targetFinished(org.apache.tools.ant.BuildEvent)
 	 */
-	@Override
 	public void targetFinished(BuildEvent event) {
 		handleException(event);
 		AntTestChecker.getDefault().targetFinished();
@@ -97,7 +93,6 @@
 	/**
 	 * @see org.apache.tools.ant.BuildListener#taskStarted(org.apache.tools.ant.BuildEvent)
 	 */
-	@Override
 	public void taskStarted(BuildEvent event) {
 		AntTestChecker.getDefault().taskStarted(event.getTask().getTaskName());
 	}
@@ -105,7 +100,6 @@
 	/**
 	 * @see org.apache.tools.ant.BuildListener#taskFinished(org.apache.tools.ant.BuildEvent)
 	 */
-	@Override
 	public void taskFinished(BuildEvent event) {
 		handleException(event);
 		AntTestChecker.getDefault().targetFinished();
@@ -114,7 +108,6 @@
 	/**
 	 * @see BuildListener#messageLogged(BuildEvent)
 	 */
-	@Override
 	public void messageLogged(BuildEvent event) {
 		if (event.getPriority() > getMessageOutputLevel()) {
 			return;
@@ -126,63 +119,62 @@
 	protected PrintStream getErrorPrintStream() {
 		return fErr;
 	}
-
+	
 	protected PrintStream getOutputPrintStream() {
 		return fOut;
 	}
-
+	
 	/**
 	 * @see org.apache.tools.ant.BuildLogger#setErrorPrintStream(java.io.PrintStream)
 	 */
-	@Override
 	public void setErrorPrintStream(PrintStream err) {
-		// this build logger logs to "null" unless
-		// the user has explicitly set a logfile to use
+		//this build logger logs to "null" unless
+		//the user has explicitly set a logfile to use
 		if (err == System.err) {
-			fErr = null;
+			fErr= null;
 		} else {
-			fErr = err;
+			fErr= err;
 		}
 	}
 
 	/**
 	 * @see org.apache.tools.ant.BuildLogger#setOutputPrintStream(java.io.PrintStream)
 	 */
-	@Override
 	public void setOutputPrintStream(PrintStream output) {
-		// this build logger logs to "null" unless
-		// the user has explicitly set a logfile to use
+		//this build logger logs to "null" unless
+		//the user has explicitly set a logfile to use
 		if (output == System.out) {
-			fOut = null;
+			fOut= null;
 		} else {
-			fOut = output;
+			fOut= output;
 		}
 	}
-
+	
 	protected void logMessage(String message, int priority) {
 		if (priority > getMessageOutputLevel()) {
 			return;
 		}
-
+		
 		if (priority == Project.MSG_ERR) {
 			if (getErrorPrintStream() != null && getErrorPrintStream() != System.err) {
-				// user has designated to log to a logfile
+				//user has designated to log to a logfile
 				getErrorPrintStream().println(message);
 			}
 		} else {
 			if (getOutputPrintStream() != null && getOutputPrintStream() != System.out) {
-				// user has designated to log to a logfile
+				//user has designated to log to a logfile
 				getOutputPrintStream().println(message);
-			}
+			} 
 		}
 	}
-
+	
 	protected void handleException(BuildEvent event) {
 		Throwable exception = event.getException();
-		if (exception == null || exception == fHandledException || exception instanceof OperationCanceledException
-				|| exception instanceof AntSecurityException) {
+		if (exception == null || exception == fHandledException
+		|| exception instanceof OperationCanceledException
+		|| exception instanceof AntSecurityException) {
 			return;
 		}
-		fHandledException = exception;
+		fHandledException= exception;
 	}
 }
diff --git a/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/OptionTests.java b/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/OptionTests.java
index 2e9e967..e04ead1 100644
--- a/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/OptionTests.java
+++ b/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/OptionTests.java
@@ -10,6 +10,7 @@
  *******************************************************************************/
 package org.eclipse.ant.tests.core.tests;
 
+
 import java.io.BufferedInputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -23,615 +24,605 @@
 import org.eclipse.core.runtime.CoreException;
 
 public class OptionTests extends AbstractAntTest {
-
+	
 	protected static final String UNKNOWN_ARG = "Unknown argument: "; //$NON-NLS-1$
 	protected static final String START_OF_HELP = "ant [options] [target [target2 [target3] ...]]"; //$NON-NLS-1$
-	protected static final String VERSION = "Apache Ant(TM) version 1.9.2 compiled on July 8 2013"; //$NON-NLS-1$
-	protected static final String PLUGIN_VERSION = "org.apache.ant_1.9.2"; //$NON-NLS-1$
-
+	protected static final String VERSION = "Apache Ant(TM) version 1.8.4 compiled on May 22 2012"; //$NON-NLS-1$
+	protected static final String PLUGIN_VERSION = "org.apache.ant_1.8.4"; //$NON-NLS-1$
+	 
 	public OptionTests(String name) {
 		super(name);
 	}
-
+	
 	/**
 	 * Tests the "-help" option
 	 */
 	public void testHelp() throws CoreException {
-		run("TestForEcho.xml", new String[] { "-help" }); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("incorrect message number logged", 34, AntTestChecker.getDefault().getMessagesLoggedCount()); //$NON-NLS-1$
+		run("TestForEcho.xml", new String[]{"-help"}); //$NON-NLS-1$ //$NON-NLS-2$
+		assertEquals("incorrect message number logged", 35, AntTestChecker.getDefault().getMessagesLoggedCount()); //$NON-NLS-1$
 		assertTrue("Help is incorrect", getLastMessageLogged() != null && AntTestChecker.getDefault().getMessages().get(0).startsWith(START_OF_HELP)); //$NON-NLS-1$
 	}
-
+	
 	/**
 	 * Tests the "-h" option (help)
 	 */
 	public void testMinusH() throws CoreException {
-		run("TestForEcho.xml", new String[] { "-h" }); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("incorrect message number logged", 34, AntTestChecker.getDefault().getMessagesLoggedCount()); //$NON-NLS-1$
+		run("TestForEcho.xml", new String[]{"-h"}); //$NON-NLS-1$ //$NON-NLS-2$
+		assertEquals("incorrect message number logged", 35, AntTestChecker.getDefault().getMessagesLoggedCount()); //$NON-NLS-1$
 		assertTrue("Help is incorrect", getLastMessageLogged() != null && AntTestChecker.getDefault().getMessages().get(0).startsWith(START_OF_HELP)); //$NON-NLS-1$
 	}
-
+	
 	/**
 	 * Tests the "-version" option
 	 */
 	public void testVersion() throws CoreException {
-		run("TestForEcho.xml", new String[] { "-version" }); //$NON-NLS-1$ //$NON-NLS-2$
+		run("TestForEcho.xml", new String[]{"-version"}); //$NON-NLS-1$ //$NON-NLS-2$
 		assertTrue("One message should have been logged", AntTestChecker.getDefault().getMessagesLoggedCount() == 1); //$NON-NLS-1$
 		assertEquals("Version is incorrect: ", VERSION, getLastMessageLogged()); //$NON-NLS-1$
 	}
-
+	
 	/**
 	 * Tests the "-projecthelp" option
 	 */
 	public void testProjecthelp() throws CoreException {
-		run("TestForEcho.xml", new String[] { "-projecthelp" }); //$NON-NLS-1$ //$NON-NLS-2$
+		run("TestForEcho.xml", new String[]{"-projecthelp"}); //$NON-NLS-1$ //$NON-NLS-2$
 		assertEquals("Incorrect number of messages", 4, AntTestChecker.getDefault().getMessagesLoggedCount()); //$NON-NLS-1$
 		assertTrue("Project help is incorrect", getLastMessageLogged().startsWith("Default target:")); //$NON-NLS-1$ //$NON-NLS-2$
 	}
-
+	
 	/**
 	 * Tests the "-p" option (project help)
 	 */
 	public void testMinusP() throws CoreException {
-		run("TestForEcho.xml", new String[] { "-p" }); //$NON-NLS-1$ //$NON-NLS-2$
+		run("TestForEcho.xml", new String[]{"-p"}); //$NON-NLS-1$ //$NON-NLS-2$
 		assertEquals("Incorrect number of messages", 4, AntTestChecker.getDefault().getMessagesLoggedCount()); //$NON-NLS-1$
 		assertTrue("Project help is incorrect", getLastMessageLogged().startsWith("Default target:")); //$NON-NLS-1$ //$NON-NLS-2$
 	}
-
+	
 	/**
 	 * Tests the "-projecthelp" option when it will not show as much (quite mode)
 	 */
 	public void testProjecthelpQuiet() throws CoreException {
-		run("TestForEcho.xml", new String[] { "-projecthelp", "-q" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		run("TestForEcho.xml", new String[]{"-projecthelp", "-q"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		assertEquals(1, AntTestChecker.getDefault().getMessagesLoggedCount());
 	}
-
+	
 	/**
 	 * Tests the "-listener" option with a listener that is not an instance of BuildListener
 	 */
 	public void testListenerBad() {
 		try {
-			run("TestForEcho.xml", new String[] { "-listener", "java.lang.String" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-		catch (CoreException ce) {
-			String msg = ce.getMessage();
+			run("TestForEcho.xml", new String[]{"-listener", "java.lang.String"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		} catch (CoreException ce) {
+			String msg= ce.getMessage();
 			assertTrue("Message incorrect!: " + msg, msg.equals("java.lang.String which was specified to be a build listener is not an instance of org.apache.tools.ant.BuildListener.")); //$NON-NLS-1$ //$NON-NLS-2$
 			return;
 		}
 		assertTrue("A core exception should have occurred wrappering a class cast exception", false); //$NON-NLS-1$
 	}
-
+	
 	/**
 	 * Tests passing an unrecognized argument
 	 */
-	public void testUnknownArg() throws CoreException {
-		run("TestForEcho.xml", new String[] { "-listenr" }); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue("Unrecognized option message should have been logged before successful build", //$NON-NLS-1$
-				(AntTestChecker.getDefault().getMessagesLoggedCount() == 6) && (getLoggedMessage(5).startsWith(UNKNOWN_ARG))
-						&& (getLastMessageLogged().startsWith(BUILD_SUCCESSFUL)));
+	public void testUnknownArg() throws CoreException {	
+		run("TestForEcho.xml", new String[]{"-listenr"}); //$NON-NLS-1$ //$NON-NLS-2$
+        assertTrue("Unrecognized option message should have been logged before successful build", //$NON-NLS-1$
+					(AntTestChecker.getDefault().getMessagesLoggedCount() == 6)
+					 && (getLoggedMessage(5).startsWith(UNKNOWN_ARG))
+                     && (getLastMessageLogged().startsWith(BUILD_SUCCESSFUL)));
 	}
-
+	
 	/**
 	 * Tests specifying the -logfile with no arg
 	 */
 	public void testLogFileWithNoArg() {
 		try {
-			run("TestForEcho.xml", new String[] { "-logfile" }); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		catch (CoreException ce) {
+			run("TestForEcho.xml", new String[]{"-logfile"}); //$NON-NLS-1$ //$NON-NLS-2$
+		} catch (CoreException ce) {
 			return;
 		}
 		assertTrue("You must specify a log file when using the -log argument", false); //$NON-NLS-1$
 	}
-
+	
 	/**
 	 * Tests specifying the -logfile
 	 */
 	public void testLogFile() throws CoreException, IOException {
-		run("TestForEcho.xml", new String[] { "-logfile", "TestLogFile.txt" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		IFile file = checkFileExists("TestLogFile.txt"); //$NON-NLS-1$
-		InputStream stream = file.getContents();
-
-		InputStreamReader in = null;
-		try {
-			in = new InputStreamReader(new BufferedInputStream(stream));
-			StringBuffer buffer = new StringBuffer();
-			char[] readBuffer = new char[2048];
-			int n = in.read(readBuffer);
+		run("TestForEcho.xml", new String[]{"-logfile", "TestLogFile.txt"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		IFile file= checkFileExists("TestLogFile.txt"); //$NON-NLS-1$
+		InputStream stream =file.getContents();
+		
+		InputStreamReader in= null;
+		try {		
+			in= new InputStreamReader(new BufferedInputStream(stream));
+			StringBuffer buffer= new StringBuffer();
+			char[] readBuffer= new char[2048];
+			int n= in.read(readBuffer);
 			while (n > 0) {
 				buffer.append(readBuffer, 0, n);
-				n = in.read(readBuffer);
+				n= in.read(readBuffer);
 			}
 			assertTrue("File should have started with Buildfile", buffer.toString().startsWith("Buildfile")); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		finally {
-			if (in != null) {
-				in.close();
-			}
+		} finally {
+            if (in != null) {
+                in.close();
+            }
 			stream.close();
 		}
-
+		
 	}
-
+	
 	/**
 	 * Tests specifying the -logger with no arg
 	 */
 	public void testLoggerWithNoArg() {
 		try {
-			run("TestForEcho.xml", new String[] { "-logger" }); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		catch (CoreException ce) {
+			run("TestForEcho.xml", new String[]{"-logger"}); //$NON-NLS-1$ //$NON-NLS-2$
+		} catch (CoreException ce) {
 			return;
 		}
 		assertTrue("You must specify a classname when using the -logger argument", false); //$NON-NLS-1$
 	}
-
+	
 	/**
 	 * Tests the "-logger" option with a logger that is not an instance of BuildLogger
 	 */
 	public void testLoggerBad() {
 		try {
-			run("TestForEcho.xml", new String[] { "-logger", "java.lang.String" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-		catch (CoreException ce) {
+			run("TestForEcho.xml", new String[]{"-logger", "java.lang.String"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		} catch (CoreException ce) {
 			return;
 		}
 		assertTrue("A core exception should have occurred wrappering a class cast exception", false); //$NON-NLS-1$
 	}
-
+	
 	/**
 	 * Tests the "-logger" option with two loggers specified...only one is allowed
 	 */
 	public void testTwoLoggers() {
 		try {
-			run("TestForEcho.xml", new String[] { "-logger", "java.lang.String", "-q", "-logger", "java.lang.String" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
-		}
-		catch (CoreException ce) {
+			run("TestForEcho.xml", new String[]{"-logger", "java.lang.String", "-q", "-logger", "java.lang.String"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
+		} catch (CoreException ce) {
 			return;
 		}
 		assertTrue("As only one logger can be specified", false); //$NON-NLS-1$
 	}
-
+	
 	/**
 	 * Tests specifying the -listener with no arg
 	 */
 	public void testListenerWithNoArg() {
 		try {
-			run("TestForEcho.xml", new String[] { "-listener" }); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		catch (CoreException ce) {
+			run("TestForEcho.xml", new String[]{"-listener"}); //$NON-NLS-1$ //$NON-NLS-2$
+		} catch (CoreException ce) {
 			return;
 		}
 		assertTrue("You must specify a listeners when using the -listener argument ", false); //$NON-NLS-1$
 	}
-
+	
 	/**
 	 * Tests specifying the -listener with a class that will not be found
 	 */
 	public void testListenerClassNotFound() {
 		try {
-			run("TestForEcho.xml", new String[] { "-listener", "TestBuildListener" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-		catch (CoreException e) {
-			String message = e.getStatus().getException().getMessage();
+			run("TestForEcho.xml", new String[]{"-listener", "TestBuildListener"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		} catch (CoreException e) {
+			String message= e.getStatus().getException().getMessage();
 			assertTrue("Should be ClassNotFoundException", "java.lang.ClassNotFoundException: TestBuildListener".equals(message)); //$NON-NLS-1$ //$NON-NLS-2$
 			return;
 		}
 		assertTrue("A CoreException should have occurred as the listener class will not be found", false); //$NON-NLS-1$
-
+		
 	}
-
+	
 	/**
 	 * Tests specifying the -listener option
 	 */
 	public void testListener() throws CoreException {
-		run("TestForEcho.xml", new String[] { "-listener", ANT_TEST_BUILD_LISTENER }); //$NON-NLS-1$ //$NON-NLS-2$
+		run("TestForEcho.xml", new String[]{"-listener", ANT_TEST_BUILD_LISTENER}); //$NON-NLS-1$ //$NON-NLS-2$
 		assertSuccessful();
 		assertTrue("A listener should have been added named: " + ANT_TEST_BUILD_LISTENER, ANT_TEST_BUILD_LISTENER.equals(AntTestChecker.getDefault().getLastListener())); //$NON-NLS-1$
 	}
-
+	
 	/**
 	 * Tests specifying the XmlLogger as a listener (bug 80435)
 	 */
 	public void testXmlLoggerListener() throws CoreException {
-		run("TestForEcho.xml", new String[] { "-listener", "org.apache.tools.ant.XmlLogger" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		run("TestForEcho.xml", new String[]{"-listener", "org.apache.tools.ant.XmlLogger"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		assertSuccessful();
-
-		// find the log file generated by the xml logger
-		IFile file = checkFileExists("log.xml"); //$NON-NLS-1$
-		InputStream stream = file.getContents();
+		
+		//find the log file generated by the xml logger
+		IFile file= checkFileExists("log.xml"); //$NON-NLS-1$
+		InputStream stream= file.getContents();
 		try {
 			assertTrue(stream.available() != 0);
-		}
-		catch (IOException e) {
+		} catch (IOException e) {
 			assertTrue(false);
 		}
 	}
-
+	
 	/**
 	 * Tests specifying the -listener option multiple times...which is allowed
 	 */
 	public void testListenerMultiple() throws CoreException {
-		run("TestForEcho.xml", new String[] { "-listener", ANT_TEST_BUILD_LISTENER, "-listener", ANT_TEST_BUILD_LISTENER }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		run("TestForEcho.xml", new String[]{"-listener", ANT_TEST_BUILD_LISTENER, "-listener", ANT_TEST_BUILD_LISTENER}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		assertSuccessful();
 		assertTrue("A listener should have been added named: " + ANT_TEST_BUILD_LISTENER, ANT_TEST_BUILD_LISTENER.equals(AntTestChecker.getDefault().getLastListener())); //$NON-NLS-1$
 		assertTrue("Two listeners should have been added", AntTestChecker.getDefault().getListeners().size() == 2); //$NON-NLS-1$
 	}
-
+	
 	/**
 	 * Tests specifying the -listener option multiple times, with one missing the arg
 	 */
 	public void testListenerMultipleWithBad() {
 		try {
-			run("TestForEcho.xml", new String[] { "-listener", ANT_TEST_BUILD_LISTENER, "-q", "-listener", "-verbose" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-		}
-		catch (CoreException e) {
-			// You must specify a listener for all -listener arguments
+			run("TestForEcho.xml", new String[]{"-listener", ANT_TEST_BUILD_LISTENER, "-q", "-listener", "-verbose"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
+		} catch(CoreException e) {
+			//You must specify a listener for all -listener arguments
 			return;
 		}
 		assertTrue("You must specify a listener for all -listener arguments ", false); //$NON-NLS-1$
 	}
-
+	
 	/**
 	 * Tests specifying the -buildfile with no arg
 	 */
 	public void testBuildFileWithNoArg() {
 		try {
-			run("TestForEcho.xml", new String[] { "-buildfile" }); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		catch (CoreException ce) {
-			// You must specify a buildfile when using the -buildfile argument
+			run("TestForEcho.xml", new String[]{"-buildfile"}); //$NON-NLS-1$ //$NON-NLS-2$
+		} catch (CoreException ce) {
+			//You must specify a buildfile when using the -buildfile argument
 			return;
 		}
 		assertTrue("You must specify a buildfile when using the -buildfile argument", false); //$NON-NLS-1$
 	}
-
+	
 	/**
 	 * Tests specifying the -buildfile
 	 */
 	public void testBuildFile() throws CoreException {
-		String buildFileName = getProject().getFolder("buildfiles").getFile("echoing.xml").getLocation().toFile().getAbsolutePath(); //$NON-NLS-1$ //$NON-NLS-2$
-		run("TestForEcho.xml", new String[] { "-buildfile", buildFileName }, false, "buildfiles"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
+		String buildFileName= getProject().getFolder("buildfiles").getFile("echoing.xml").getLocation().toFile().getAbsolutePath(); //$NON-NLS-1$ //$NON-NLS-2$
+		run("TestForEcho.xml", new String[]{"-buildfile", buildFileName}, false, "buildfiles"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		
 		assertTrue("Should have been 1 tasks, was: " + AntTestChecker.getDefault().getTaskStartedCount(), AntTestChecker.getDefault().getTaskStartedCount() == 1); //$NON-NLS-1$
 	}
-
+	
 	/**
 	 * Tests specifying a target at the command line that does not exist.
 	 * 
-	 * @since 3.6 this will not fail - the default target will be run instead
-	 * @since 3.8 this will fail as there are no more known targets
+	 * @since 3.6  this will not fail - the default target will be run instead
+	 * @since 3.8  this will fail as there are no more known targets
 	 */
 	public void testSpecifyBadTargetAsArg() throws CoreException {
-		run("TestForEcho.xml", new String[] { "echo2" }, false); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue("Should be an unknown target message", AntTestChecker.getDefault().getLoggedMessage(1).indexOf("Unknown target") >= 0); //$NON-NLS-1$//$NON-NLS-2$
+		run("TestForEcho.xml", new String[]{"echo2"}, false); //$NON-NLS-1$ //$NON-NLS-2$
+		assertTrue("Should be an unknown target message", AntTestChecker.getDefault().getLoggedMessage(1).indexOf("Unknown target") >= 0);  //$NON-NLS-1$//$NON-NLS-2$
 		assertTrue("Should be an unknown target message", AntTestChecker.getDefault().getLoggedMessage(1).indexOf("echo2") >= 0); //$NON-NLS-1$ //$NON-NLS-2$
 		assertTrue("Should be a no known target message", AntTestChecker.getDefault().getLoggedMessage(0).indexOf("No known target specified.") >= 0); //$NON-NLS-1$ //$NON-NLS-2$
 		assertEquals("Should not have run any targets", 0, AntTestChecker.getDefault().getTargetsStartedCount()); //$NON-NLS-1$
 	}
-
+	
 	/**
-	 * Tests specifying both a non-existent target and an existent target in the command line
+	 * Tests specifying both a non-existent target and an existent target in the command line 
 	 * 
 	 */
 	public void testSpecifyBothBadAndGoodTargetsAsArg() throws CoreException {
-		run("TestForEcho.xml", new String[] { "echo2", "Test for Echo" }, false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		run("TestForEcho.xml", new String[]{"echo2", "Test for Echo"}, false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		assertTrue("Should be an unknown target message", AntTestChecker.getDefault().getLoggedMessage(5).indexOf("Unknown target") >= 0); //$NON-NLS-1$ //$NON-NLS-2$
 		assertTrue("Should be an unknown target message", AntTestChecker.getDefault().getLoggedMessage(5).indexOf("echo2") >= 0); //$NON-NLS-1$ //$NON-NLS-2$
 		assertEquals("Should have run the Test for Echo target", 5, AntTestChecker.getDefault().getTargetsStartedCount()); //$NON-NLS-1$
 	}
-
+	
 	/**
 	 * Tests specifying a target at the command line
 	 */
 	public void testSpecifyTargetAsArg() throws CoreException {
-		run("echoing.xml", new String[] { "echo3" }, false); //$NON-NLS-1$ //$NON-NLS-2$
+		run("echoing.xml", new String[]{"echo3"}, false); //$NON-NLS-1$ //$NON-NLS-2$
 		assertTrue("3 messages should have been logged; was " + AntTestChecker.getDefault().getMessagesLoggedCount(), AntTestChecker.getDefault().getMessagesLoggedCount() == 3); //$NON-NLS-1$
 		assertSuccessful();
 	}
-
+	
 	/**
 	 * Tests specifying a target at the command line with other options
 	 */
 	public void testSpecifyTargetAsArgWithOtherOptions() throws CoreException {
-		run("echoing.xml", new String[] { "-logfile", "TestLogFile.txt", "echo3" }, false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+		run("echoing.xml", new String[]{"-logfile", "TestLogFile.txt", "echo3"}, false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
 		assertTrue("4 messages should have been logged; was " + AntTestChecker.getDefault().getMessagesLoggedCount(), AntTestChecker.getDefault().getMessagesLoggedCount() == 4); //$NON-NLS-1$
-		List<String> messages = AntTestChecker.getDefault().getMessages();
-		// ensure that echo3 target executed and only that target
+		List<String> messages= AntTestChecker.getDefault().getMessages();
+		//ensure that echo3 target executed and only that target
 		assertTrue("echo3 target not executed", messages.get(2).equals("echo3")); //$NON-NLS-1$ //$NON-NLS-2$
 		assertSuccessful();
 	}
-
+	
 	/**
 	 * Tests specifying targets at the command line with other options
 	 */
 	public void testSpecifyTargetsAsArgWithOtherOptions() throws CoreException {
-		run("echoing.xml", new String[] { "-logfile", "TestLogFile.txt", "echo2", "echo3" }, false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
+		run("echoing.xml", new String[]{"-logfile", "TestLogFile.txt", "echo2", "echo3"}, false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
 		assertTrue("5 messages should have been logged; was " + AntTestChecker.getDefault().getMessagesLoggedCount(), AntTestChecker.getDefault().getMessagesLoggedCount() == 5); //$NON-NLS-1$
-		List<String> messages = AntTestChecker.getDefault().getMessages();
-		// ensure that echo2 target executed
+		List<String> messages= AntTestChecker.getDefault().getMessages();
+		//ensure that echo2 target executed
 		assertTrue("echo2 target not executed", messages.get(2).equals("echo2")); //$NON-NLS-1$ //$NON-NLS-2$
 		assertSuccessful();
 	}
-
+	
 	/**
 	 * Tests specifying a target at the command line and quiet reporting
 	 */
 	public void testSpecifyTargetAsArgAndQuiet() throws CoreException {
-		run("echoing.xml", new String[] { "-logfile", "TestLogFile.txt", "echo3", "-quiet" }, false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
+		run("echoing.xml", new String[]{"-logfile", "TestLogFile.txt", "echo3", "-quiet"}, false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
 		assertTrue("2 messages should have been logged; was " + AntTestChecker.getDefault().getMessagesLoggedCount(), AntTestChecker.getDefault().getMessagesLoggedCount() == 2); //$NON-NLS-1$
 	}
-
+	
 	/**
 	 * Tests properties using "-D"
 	 */
 	public void testMinusD() throws CoreException {
-		run("echoing.xml", new String[] { "-DAntTests=testing", "-Declipse.is.cool=true" }, false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		run("echoing.xml", new String[]{"-DAntTests=testing", "-Declipse.is.cool=true"}, false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		assertSuccessful();
 		assertTrue("eclipse.is.cool should have been set as true", "true".equals(AntTestChecker.getDefault().getUserProperty("eclipse.is.cool"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		assertTrue("AntTests should have a value of testing", "testing".equals(AntTestChecker.getDefault().getUserProperty("AntTests"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		assertNull("my.name was not set and should be null", AntTestChecker.getDefault().getUserProperty("my.name")); //$NON-NLS-1$ //$NON-NLS-2$
-
+		
 	}
-
+	
 	/**
 	 * Tests properties using "-D" and "-d" to specify debug
 	 */
 	public void testMinusDMinusd() throws CoreException {
-		run("echoing.xml", new String[] { "-d", "-DAntTests=testing", "-Declipse.is.cool=true" }, false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+		run("echoing.xml", new String[]{"-d", "-DAntTests=testing", "-Declipse.is.cool=true"}, false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
 		assertSuccessful();
 		assertTrue("eclipse.is.cool should have been set as true", "true".equals(AntTestChecker.getDefault().getUserProperty("eclipse.is.cool"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		assertTrue("AntTests should have a value of testing", "testing".equals(AntTestChecker.getDefault().getUserProperty("AntTests"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		assertNull("my.name was not set and should be null", AntTestChecker.getDefault().getUserProperty("my.name")); //$NON-NLS-1$ //$NON-NLS-2$
-
+	
 	}
-
+	
 	public void testMinusDAndGlobalProperties() throws CoreException {
-		run("echoing.xml", new String[] { "-DAntTests=testing", "-Declipse.is.cool=true" }, false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		run("echoing.xml", new String[]{"-DAntTests=testing", "-Declipse.is.cool=true"}, false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		assertSuccessful();
 		assertTrue("eclipse.running should have been set as true", "true".equals(AntTestChecker.getDefault().getUserProperty("eclipse.running"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		assertNotNull("eclipse.home should have been set", AntTestChecker.getDefault().getUserProperty("eclipse.home")); //$NON-NLS-1$ //$NON-NLS-2$
 	}
-
+	
 	/**
-	 * Tests specifying a property such as "-D=emptyStringIsMyName Bug 37007
+	 * Tests specifying a property such as "-D=emptyStringIsMyName
+	 * Bug 37007
 	 */
 	public void testMinusDEmpty() throws CoreException {
-		run("echoing.xml", new String[] { "-D=emptyStringIsMyName", "-Declipse.is.cool=true" }, false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		run("echoing.xml", new String[]{"-D=emptyStringIsMyName", "-Declipse.is.cool=true"}, false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		assertSuccessful();
 		assertTrue("eclipse.is.cool should have been set as true", "true".equals(AntTestChecker.getDefault().getUserProperty("eclipse.is.cool"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		assertTrue("\"\" should have a value of emptyStringIsMyName", "emptyStringIsMyName".equals(AntTestChecker.getDefault().getUserProperty(""))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		assertNull("my.name was not set and should be null", AntTestChecker.getDefault().getUserProperty("my.name")); //$NON-NLS-1$ //$NON-NLS-2$
 	}
-
+	
 	/**
-	 * Tests specifying properties that contain spaces Bug 37094
+	 * Tests specifying properties that contain spaces
+	 * Bug 37094
 	 */
 	public void testMinusDWithSpaces() throws CoreException {
-		run("echoing.xml", new String[] { "-DAntTests= testing", "-Declipse.is.cool=    true" }, false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		run("echoing.xml", new String[]{"-DAntTests= testing", "-Declipse.is.cool=    true"}, false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		assertSuccessful();
 		assertTrue("eclipse.is.cool should have been set as true", "true".equals(AntTestChecker.getDefault().getUserProperty("eclipse.is.cool"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		assertTrue("AntTests should have a value of testing", "testing".equals(AntTestChecker.getDefault().getUserProperty("AntTests"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		assertNull("my.name was not set and should be null", AntTestChecker.getDefault().getUserProperty("my.name")); //$NON-NLS-1$ //$NON-NLS-2$
 	}
-
+	
 	/**
-	 * Tests specifying properties when the user has incorrectly specified "-Debug" Bug 40935
+	 * Tests specifying properties when the user has incorrectly specified "-Debug"
+	 * Bug 40935
 	 */
 	public void testPropertiesWithMinusDebug() throws CoreException {
-		run("echoing.xml", new String[] { "-Debug", "-DAntTests= testing", "-Declipse.is.cool=    true" }, false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+		run("echoing.xml", new String[]{"-Debug", "-DAntTests= testing", "-Declipse.is.cool=    true"}, false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
 		assertTrue("\"-Debug\" should be flagged as an unknown argument", "Unknown argument: -Debug".equals(AntTestChecker.getDefault().getMessages().get(0))); //$NON-NLS-1$ //$NON-NLS-2$
 		assertSuccessful();
 		assertTrue("eclipse.is.cool should have been set as true", "true".equals(AntTestChecker.getDefault().getUserProperty("eclipse.is.cool"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		assertTrue("AntTests should have a value of testing", "testing".equals(AntTestChecker.getDefault().getUserProperty("AntTests"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		assertNull("my.name was not set and should be null", AntTestChecker.getDefault().getUserProperty("my.name")); //$NON-NLS-1$ //$NON-NLS-2$
 	}
-
+	
 	/**
-	 * Tests when the user has incorrectly specified "-Debug" Bug 40935
+	 * Tests when the user has incorrectly specified "-Debug"
+	 * Bug 40935
 	 */
 	public void testMinusDebug() throws CoreException {
-		run("echoing.xml", new String[] { "-Debug" }); //$NON-NLS-1$ //$NON-NLS-2$
+		run("echoing.xml", new String[]{"-Debug"}); //$NON-NLS-1$ //$NON-NLS-2$
 		assertTrue("\"-Debug\" should be flagged as an unknown argument", "Unknown argument: -Debug".equals(AntTestChecker.getDefault().getMessages().get(0))); //$NON-NLS-1$ //$NON-NLS-2$
 		assertSuccessful();
 	}
-
+	
 	public void testPropertyFileWithNoArg() {
 		try {
-			run("TestForEcho.xml", new String[] { "-propertyfile" }); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		catch (CoreException ce) {
-			String msg = AntTestChecker.getDefault().getMessages().get(0);
+			run("TestForEcho.xml", new String[]{"-propertyfile"}); //$NON-NLS-1$ //$NON-NLS-2$
+		} catch (CoreException ce) {
+			String msg= AntTestChecker.getDefault().getMessages().get(0);
 			assertTrue("Message incorrect!: " + msg, msg.equals("You must specify a property filename when using the -propertyfile argument")); //$NON-NLS-1$ //$NON-NLS-2$
 			return;
 		}
 		assertTrue("You must specify a property filename when using the -propertyfile argument", false); //$NON-NLS-1$
 	}
-
+	
 	/**
-	 * A build should succeed when a property file is not found. The error is reported and the build continues.
+	 * A build should succeed when a property file is not found.
+	 * The error is reported and the build continues.
 	 */
 	public void testPropertyFileFileNotFound() throws CoreException {
-
-		run("TestForEcho.xml", new String[] { "-propertyfile", "qq.txt" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		
+		run("TestForEcho.xml", new String[]{"-propertyfile", "qq.txt"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		assertSuccessful();
-		String msg = AntTestChecker.getDefault().getMessages().get(0);
+		String msg= AntTestChecker.getDefault().getMessages().get(0);
 		assertTrue("Message incorrect!: " + msg, msg.startsWith("Could not load property file:")); //$NON-NLS-1$ //$NON-NLS-2$
 	}
-
+	
 	public void testPropertyFile() throws CoreException {
-		run("TestForEcho.xml", new String[] { "-propertyfile", getPropertyFileName() }); //$NON-NLS-1$ //$NON-NLS-2$
+		run("TestForEcho.xml", new String[]{"-propertyfile", getPropertyFileName()}); //$NON-NLS-1$ //$NON-NLS-2$
 		assertSuccessful();
 		assertTrue("eclipse.is.cool should have been set as Yep", "Yep".equals(AntTestChecker.getDefault().getUserProperty("eclipse.is.cool"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		assertTrue("AntTests should have a value of testing", "testing from properties file".equals(AntTestChecker.getDefault().getUserProperty("AntTests"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		assertNull("my.name was not set and should be null", AntTestChecker.getDefault().getUserProperty("my.name")); //$NON-NLS-1$ //$NON-NLS-2$
 	}
-
+	
 	public void testPropertyFileWithMinusDTakingPrecedence() throws CoreException {
-		run("echoing.xml", new String[] { "-propertyfile", getPropertyFileName(), "-DAntTests=testing", "-Declipse.is.cool=true" }, false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+		run("echoing.xml", new String[]{"-propertyfile", getPropertyFileName(), "-DAntTests=testing", "-Declipse.is.cool=true"}, false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
 		assertSuccessful();
 		assertTrue("eclipse.is.cool should have been set as true", "true".equals(AntTestChecker.getDefault().getUserProperty("eclipse.is.cool"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		assertTrue("AntTests should have a value of testing", "testing".equals(AntTestChecker.getDefault().getUserProperty("AntTests"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		assertNull("my.name was not set and should be null", AntTestChecker.getDefault().getUserProperty("my.name")); //$NON-NLS-1$ //$NON-NLS-2$
 	}
-
+	
 	public void testInputHandlerWithNoArg() {
 		try {
-			run("TestForEcho.xml", new String[] { "-inputhandler" }); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		catch (CoreException ce) {
-			String msg = ce.getMessage();
+			run("TestForEcho.xml", new String[]{"-inputhandler"}); //$NON-NLS-1$ //$NON-NLS-2$
+		} catch (CoreException ce) {
+			String msg= ce.getMessage();
 			assertTrue("Message incorrect!: " + msg, msg.equals("You must specify a classname when using the -inputhandler argument")); //$NON-NLS-1$ //$NON-NLS-2$
 			return;
 		}
 		assertTrue("You must specify a classname when using the -inputhandler argument", false); //$NON-NLS-1$
 	}
-
+	
 	/**
 	 * Tests the "-inputhandler" option with two handlers specified...only one is allowed
 	 */
 	public void testInputHandlerMultiple() {
 		try {
-			run("TestForEcho.xml", new String[] { "-inputhandler", "org.apache.tools.ant.input.DefaultInputHandler", "-q", "-inputhandler", "org.apache.tools.ant.input.DefaultInputHandler" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
-		}
-		catch (CoreException ce) {
-			String msg = ce.getMessage();
+			run("TestForEcho.xml", new String[]{"-inputhandler", "org.apache.tools.ant.input.DefaultInputHandler", "-q", "-inputhandler", "org.apache.tools.ant.input.DefaultInputHandler"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
+		} catch (CoreException ce) {
+			String msg= ce.getMessage();
 			assertTrue("Message incorrect!: " + msg, msg.equals("Only one input handler class may be specified.")); //$NON-NLS-1$ //$NON-NLS-2$
 			return;
 		}
 		assertTrue("As only one input handler can be specified", false); //$NON-NLS-1$
 	}
-
+	
 	/**
 	 * Tests the "-inputhandler" option with a input handler that is not an instance of InputHandler
 	 */
 	public void testInputHandlerBad() {
 		try {
-			run("TestForEcho.xml", new String[] { "-inputhandler", "java.lang.StringBuffer" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-		catch (CoreException ce) {
-			String msg = ce.getMessage();
+			run("TestForEcho.xml", new String[]{"-inputhandler", "java.lang.StringBuffer"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		} catch (CoreException ce) {
+			String msg= ce.getMessage();
 			assertTrue("Message incorrect!: " + msg, msg.equals("The specified input handler class java.lang.StringBuffer does not implement the org.apache.tools.ant.input.InputHandler interface")); //$NON-NLS-1$ //$NON-NLS-2$
 			return;
 		}
 		assertTrue("Incorrect inputhandler", false); //$NON-NLS-1$
 	}
-
+	
 	/**
 	 * Tests the "-inputhandler" option with a input handler that is not a defined class
 	 */
 	public void testInputHandlerBad2() {
 		try {
-			run("TestForEcho.xml", new String[] { "-inputhandler", "ja.lang.StringBuffer" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-		catch (CoreException ce) {
-			String msg = ce.getMessage();
+			run("TestForEcho.xml", new String[]{"-inputhandler", "ja.lang.StringBuffer"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		} catch (CoreException ce) {
+			String msg= ce.getMessage();
 			assertTrue("Message incorrect!: " + msg, msg.startsWith("Unable to instantiate specified input handler class ja.lang.StringBuffer")); //$NON-NLS-1$ //$NON-NLS-2$
 			return;
 		}
 		assertTrue("Incorrect inputhandler", false); //$NON-NLS-1$
 	}
-
+	
 	/**
 	 * Tests the "-inputhandler" option with a test input handler and the -noinput option
 	 */
 	public void testInputHandlerWithMinusNoInput() {
 		try {
-			run("input.xml", new String[] { "-inputhandler", "org.eclipse.ant.tests.core.support.inputHandlers.AntTestInputHandler", "-noinput" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		}
-		catch (CoreException ce) {
+			run("input.xml", new String[]{"-inputhandler", "org.eclipse.ant.tests.core.support.inputHandlers.AntTestInputHandler", "-noinput"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+		} catch (CoreException ce) {
 			assertTrue("Message incorrect: " + ce.getMessage(), ce.getMessage().endsWith("Unable to respond to input request likely as a result of specifying the -noinput command")); //$NON-NLS-1$ //$NON-NLS-2$
 			return;
 		}
-
+		
 		assertTrue("Build should have failed", false); //$NON-NLS-1$
 	}
-
+	
 	/**
 	 * Tests the -noinput option with the default input handler
 	 */
 	public void testMinusNoInput() {
 		try {
-			run("input.xml", new String[] { "-noinput" }); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		catch (CoreException ce) {
+			run("input.xml", new String[]{"-noinput"}); //$NON-NLS-1$ //$NON-NLS-2$
+		} catch (CoreException ce) {
 			assertTrue("Message incorrect: " + ce.getMessage(), ce.getMessage().endsWith("Failed to read input from Console.")); //$NON-NLS-1$ //$NON-NLS-2$
 			return;
 		}
-
+	
 		assertTrue("Build should have failed", false); //$NON-NLS-1$
 	}
-
+	
 	/**
-	 * Tests the "-inputhandler" option with a test input handler Order after the noinput tests so that we test we are resetting the system property
+	 * Tests the "-inputhandler" option with a test input handler
+	 * Order after the noinput tests so that we test we are resetting the system property
 	 */
 	public void testInputHandler() throws CoreException {
-
-		run("input.xml", new String[] { "-inputhandler", "org.eclipse.ant.tests.core.support.inputHandlers.AntTestInputHandler" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		
+		run("input.xml", new String[]{"-inputhandler", "org.eclipse.ant.tests.core.support.inputHandlers.AntTestInputHandler"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		assertSuccessful();
-		String msg = AntTestChecker.getDefault().getMessages().get(1);
+		String msg= AntTestChecker.getDefault().getMessages().get(1);
 		assertTrue("Message incorrect: " + msg, msg.equals("testing handling input requests")); //$NON-NLS-1$ //$NON-NLS-2$
-
+		
 	}
-
+	
 	/**
-	 * Tests the "-diagnostics" option with no ANT_HOME set bug 25693
+	 * Tests the "-diagnostics" option with no ANT_HOME set
+	 * bug 25693
 	 */
 	public void testDiagnosticsWithNoAntHome() throws CoreException {
 		try {
 			AntCorePlugin.getPlugin().getPreferences().setAntHome(null);
-			run("input.xml", new String[] { "-diagnostics" }); //$NON-NLS-1$ //$NON-NLS-2$
-
-			String msg = AntTestChecker.getDefault().getMessages().get(0);
+			run("input.xml", new String[]{"-diagnostics"}); //$NON-NLS-1$ //$NON-NLS-2$
+		
+			String msg= AntTestChecker.getDefault().getMessages().get(0);
 			assertTrue("Message incorrect: " + msg, msg.equals("------- Ant diagnostics report -------")); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		finally {
+		} finally {
 			restorePreferenceDefaults();
 		}
 	}
-
+		
 	/**
-	 * Tests the "-diagnostics" option with ANT_HOME set bug 25693
+	 * Tests the "-diagnostics" option with ANT_HOME set
+	 * bug 25693
 	 */
 	public void testDiagnostics() throws CoreException {
-
+	
 		try {
-			run("input.xml", new String[] { "-diagnostics" }); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		finally {
+			run("input.xml", new String[]{"-diagnostics"}); //$NON-NLS-1$ //$NON-NLS-2$
+		} finally {
 			restorePreferenceDefaults();
 		}
-		// we are looking for the ant.home entry
+		//we are looking for the ant.home entry
 		List<String> messages = AntTestChecker.getDefault().getMessages();
 		String msg = messages.get(17);
-		// msg depends on whether self hosting testing or build testing
+		//msg depends on whether self hosting testing or build testing
 		assertTrue("Message incorrect: " + msg, checkAntHomeMessage(msg)); //$NON-NLS-1$
 	}
-
+	
 	private boolean checkAntHomeMessage(String message) {
 		String msg = message;
 		if (msg.endsWith("org.apache.ant")) { //$NON-NLS-1$
 			return true;
 		}
-
+		
 		if (msg.endsWith(PLUGIN_VERSION)) {
 			return true;
 		}
-
-		// org.apache.ant_1.7.1.v200704241635
+		
+		//org.apache.ant_1.7.1.v200704241635
 		int index = msg.lastIndexOf('.');
 		if (index > 0) {
 			msg = msg.substring(0, index);
 		}
 		return msg.endsWith(PLUGIN_VERSION);
 	}
-
+	
 	/**
-	 * Tests the "-quiet" still reports build successful bug 34488
+	 * Tests the "-quiet" still reports build successful
+	 * bug 34488
 	 */
 	public void testMinusQuiet() throws CoreException {
-		run("TestForEcho.xml", new String[] { "-quiet" }); //$NON-NLS-1$ //$NON-NLS-2$
-		assertSuccessful();
+		run("TestForEcho.xml", new String[]{"-quiet"}); //$NON-NLS-1$ //$NON-NLS-2$
+		assertSuccessful();	
 	}
 
 	/**
@@ -639,30 +630,28 @@
 	 */
 	public void testMinusKeepGoing() {
 		try {
-			run("failingTarget.xml", new String[] { "-keep-going" }, false); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		catch (CoreException be) {
+			run("failingTarget.xml", new String[]{"-keep-going"}, false); //$NON-NLS-1$ //$NON-NLS-2$
+		} catch (CoreException be) {
 			assertTrue("4 messages should have been logged; was " + AntTestChecker.getDefault().getMessagesLoggedCount(), AntTestChecker.getDefault().getMessagesLoggedCount() == 4); //$NON-NLS-1$
-			assertTrue("Incorrect message:" + AntTestChecker.getDefault().getLoggedMessage(1), "Still echo on failure".equals(AntTestChecker.getDefault().getLoggedMessage(1))); //$NON-NLS-1$ //$NON-NLS-2$
+			assertTrue("Incorrect message:"  + AntTestChecker.getDefault().getLoggedMessage(1), "Still echo on failure".equals(AntTestChecker.getDefault().getLoggedMessage(1))); //$NON-NLS-1$ //$NON-NLS-2$
 			return;
 		}
-
+		
 		assertTrue("The build should have failed", false); //$NON-NLS-1$
 	}
-
+	
 	/**
 	 * Tests the "-k" option
 	 */
 	public void testMinusK() {
 		try {
-			run("failingTarget.xml", new String[] { "-k" }, false); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		catch (CoreException be) {
+			run("failingTarget.xml", new String[]{"-k"}, false); //$NON-NLS-1$ //$NON-NLS-2$
+		} catch (CoreException be) {
 			assertTrue("4 messages should have been logged; was " + AntTestChecker.getDefault().getMessagesLoggedCount(), AntTestChecker.getDefault().getMessagesLoggedCount() == 4); //$NON-NLS-1$
-			assertTrue("Incorrect message:" + AntTestChecker.getDefault().getLoggedMessage(1), "Still echo on failure".equals(AntTestChecker.getDefault().getLoggedMessage(1))); //$NON-NLS-1$ //$NON-NLS-2$
+			assertTrue("Incorrect message:"  + AntTestChecker.getDefault().getLoggedMessage(1), "Still echo on failure".equals(AntTestChecker.getDefault().getLoggedMessage(1))); //$NON-NLS-1$ //$NON-NLS-2$
 			return;
 		}
-
+		
 		assertTrue("The build should have failed", false); //$NON-NLS-1$
 	}
 }
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/PropertyTests.java b/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/PropertyTests.java
index 8141370..648eb8c 100644
--- a/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/PropertyTests.java
+++ b/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/PropertyTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2013 IBM Corporation and others.
+ * Copyright (c) 2005, 2012 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -23,10 +23,10 @@
 import org.eclipse.debug.core.model.IVariable;
 
 public class PropertyTests extends AbstractAntDebugTest {
+	
+	private static final String ANT_VERSION = "Apache Ant(TM) version 1.8.4 compiled on May 22 2012"; //$NON-NLS-1$
 
-	private static final String ANT_VERSION = "Apache Ant(TM) version 1.9.2 compiled on July 8 2013"; //$NON-NLS-1$
-
-	public PropertyTests(String name) {
+    public PropertyTests(String name) {
 		super(name);
 	}
 
@@ -41,115 +41,112 @@
 	private void systemProperties(boolean sepVM) throws Exception, CoreException {
 		String fileName = "breakpoints"; //$NON-NLS-1$
 		ILineBreakpoint bp = createLineBreakpoint(30, "breakpoints" + ".xml"); //$NON-NLS-1$ //$NON-NLS-2$
-		AntThread thread = null;
+		AntThread thread= null;
 		try {
 			if (sepVM) {
-				fileName += "SepVM"; //$NON-NLS-1$
+				fileName+= "SepVM"; //$NON-NLS-1$
 			}
-			ILaunchConfiguration config = getLaunchConfiguration(fileName);
-			ILaunchConfigurationWorkingCopy copy = config.getWorkingCopy();
+			ILaunchConfiguration config= getLaunchConfiguration(fileName);
+			ILaunchConfigurationWorkingCopy copy= config.getWorkingCopy();
 			copy.setAttribute(IAntLaunchConstants.ATTR_ANT_TARGETS, "properties"); //$NON-NLS-1$
-			thread = launchToLineBreakpoint(copy, bp);
+			thread= launchToLineBreakpoint(copy, bp);
 
-			AntStackFrame frame = (AntStackFrame) thread.getTopStackFrame();
+			AntStackFrame frame = (AntStackFrame)thread.getTopStackFrame();
 			IVariable[] vars = frame.getVariables();
 			assertTrue("Should be a bunch of properties", 0 < vars.length); //$NON-NLS-1$
-			AntProperty property = frame.findProperty("ant.library.dir"); //$NON-NLS-1$
+			AntProperty property= frame.findProperty("ant.library.dir"); //$NON-NLS-1$
 			assertNotNull(property);
-
+			
 			assertProperty(thread, "ant.project.name", "debugEcho"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		finally {
+		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 		}
 	}
-
+	
 	public void testUserProperties() throws Exception {
-		userProperties(false);
+		userProperties(false);		
 	}
-
+	
 	public void testUserPropertiesSepVM() throws Exception {
 		userProperties(true);
 	}
 
-	private void userProperties(boolean sepVM) throws Exception {
+	private void userProperties(boolean sepVM) throws Exception{
 		String fileName = "breakpoints"; //$NON-NLS-1$
 		ILineBreakpoint bp = createLineBreakpoint(30, "breakpoints" + ".xml"); //$NON-NLS-1$ //$NON-NLS-2$
-		AntThread thread = null;
+		AntThread thread= null;
 		try {
 			if (sepVM) {
-				fileName += "SepVM"; //$NON-NLS-1$
+				fileName+= "SepVM"; //$NON-NLS-1$
 			}
-			ILaunchConfiguration config = getLaunchConfiguration(fileName);
-			ILaunchConfigurationWorkingCopy copy = config.getWorkingCopy();
+			ILaunchConfiguration config= getLaunchConfiguration(fileName);
+			ILaunchConfigurationWorkingCopy copy= config.getWorkingCopy();
 			copy.setAttribute(IAntLaunchConstants.ATTR_ANT_TARGETS, "properties"); //$NON-NLS-1$
-			thread = launchToLineBreakpoint(copy, bp);
+			thread= launchToLineBreakpoint(copy, bp);
 
-			AntStackFrame frame = (AntStackFrame) thread.getTopStackFrame();
+			AntStackFrame frame = (AntStackFrame)thread.getTopStackFrame();
 			IVariable[] vars = frame.getVariables();
 			assertTrue("Should be a bunch of properties", 0 < vars.length); //$NON-NLS-1$
-			AntProperty property = frame.findProperty("ant.home"); //$NON-NLS-1$
+			AntProperty property= frame.findProperty("ant.home"); //$NON-NLS-1$
 			assertNotNull(property);
-
+			
 			assertProperty(thread, "ant.version", ANT_VERSION); //$NON-NLS-1$
 			assertProperty(thread, "ant.project.name", "debugEcho"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		finally {
+		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 		}
 	}
-
+	
 	public void testRuntimeProperties() throws Exception {
-		runtimeProperties(false);
+		runtimeProperties(false);		
 	}
 
-	// TODO timing issues with retrieving properties
-	// public void testRuntimePropertiesSepVM() throws Exception {
-	// runtimeProperties(true);
-	// }
+    //TODO timing issues with retrieving properties
+//	public void testRuntimePropertiesSepVM() throws Exception {
+//		runtimeProperties(true);		
+//	}
 
 	private void runtimeProperties(boolean sepVM) throws Exception, CoreException {
 		String fileName = "breakpoints"; //$NON-NLS-1$
 		ILineBreakpoint bp = createLineBreakpoint(30, fileName + ".xml"); //$NON-NLS-1$
-		AntThread thread = null;
+		AntThread thread= null;
 		try {
 			if (sepVM) {
-				fileName += "SepVM"; //$NON-NLS-1$
+				fileName+="SepVM"; //$NON-NLS-1$
 			}
-			ILaunchConfiguration config = getLaunchConfiguration(fileName);
-			ILaunchConfigurationWorkingCopy copy = config.getWorkingCopy();
+			ILaunchConfiguration config= getLaunchConfiguration(fileName);
+			ILaunchConfigurationWorkingCopy copy= config.getWorkingCopy();
 			copy.setAttribute(IAntLaunchConstants.ATTR_ANT_TARGETS, "properties"); //$NON-NLS-1$
-			thread = launchToLineBreakpoint(copy, bp);
+			thread= launchToLineBreakpoint(copy, bp);
 
-			AntStackFrame frame = (AntStackFrame) thread.getTopStackFrame();
+			AntStackFrame frame = (AntStackFrame)thread.getTopStackFrame();
 			IVariable[] vars = frame.getVariables();
 			assertTrue("Should be a bunch of properties", 0 < vars.length); //$NON-NLS-1$
-			AntProperty property = frame.findProperty("ant.home"); //$NON-NLS-1$
+			AntProperty property= frame.findProperty("ant.home"); //$NON-NLS-1$
 			assertNotNull(property);
-
+			
 			stepOver(frame);
 			frame = assertProperty(thread, "AAA", "aaa"); //$NON-NLS-1$ //$NON-NLS-2$
-
+			
 			stepOver(frame);
 			frame = assertProperty(thread, "BBB", "bbb"); //$NON-NLS-1$ //$NON-NLS-2$
-
+			
 			stepOver(frame);
 			assertProperty(thread, "CCC", "ccc"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		finally {
+		} finally {
 			terminateAndRemove(thread);
 			removeAllBreakpoints();
 		}
 	}
 
 	private AntStackFrame assertProperty(AntThread thread, String propertyName, String propertyValue) throws DebugException {
-		AntStackFrame frame = (AntStackFrame) thread.getTopStackFrame();
-		AntProperty property = frame.findProperty(propertyName);
+		AntStackFrame frame = (AntStackFrame)thread.getTopStackFrame();
+		AntProperty property= frame.findProperty(propertyName);
 		assertNotNull("Did not find property: " + propertyName, property); //$NON-NLS-1$
-		AntValue value = (AntValue) property.getValue();
-		assertEquals("Value of property " + propertyName + " incorrect", propertyValue, value.getValueString()); //$NON-NLS-1$ //$NON-NLS-2$
+		AntValue value= (AntValue) property.getValue();
+		assertEquals("Value of property "+propertyName+ " incorrect", propertyValue, value.getValueString()); //$NON-NLS-1$ //$NON-NLS-2$
 		return frame;
 	}
 }
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/CodeCompletionTest.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/CodeCompletionTest.java
index cf3c216..223ed07 100644
--- a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/CodeCompletionTest.java
+++ b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/CodeCompletionTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2002, 2013 GEBIT Gesellschaft fuer EDV-Beratung
+ * Copyright (c) 2002, 2011 GEBIT Gesellschaft fuer EDV-Beratung
  * und Informatik-Technologien mbH, 
  * Berlin, Duesseldorf, Frankfurt (Germany) and others.
  * All rights reserved. This program and the accompanying materials 
@@ -51,429 +51,427 @@
  */
 public class CodeCompletionTest extends AbstractAntUITest {
 
-	/**
-	 * Constructor for CodeCompletionTest.
-	 * 
-	 * @param name
-	 */
-	public CodeCompletionTest(String name) {
-		super(name);
-	}
-
+    /**
+     * Constructor for CodeCompletionTest.
+     * @param name
+     */
+    public CodeCompletionTest(String name) {
+        super(name);
+    }
+    
 	public static Test suite() {
 		return new TestSuite(CodeCompletionTest.class);
 	}
 
-	/**
-	 * Tests the code completion for attributes of tasks.
-	 */
-	public void testAttributeProposals() {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor();
+    /**
+     * Tests the code completion for attributes of tasks.
+     */
+    public void testAttributeProposals() {
+        TestTextCompletionProcessor processor = new TestTextCompletionProcessor();
 
-		ICompletionProposal[] proposals = processor.getAttributeProposals("contains", "ca"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals(1, proposals.length);
-		assertEquals("casesensitive - (true | false | on | off | yes | no)", proposals[0].getDisplayString()); //$NON-NLS-1$
+        ICompletionProposal[] proposals = processor.getAttributeProposals("contains", "ca"); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(1, proposals.length);
+        assertEquals("casesensitive - (true | false | on | off | yes | no)", proposals[0].getDisplayString()); //$NON-NLS-1$
 
-		proposals = processor.getAttributeProposals("move", ""); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals(17, proposals.length);
-		ICompletionProposal proposal = proposals[0];
-		String displayString = proposal.getDisplayString();
-		assertTrue(displayString.equals("id") //$NON-NLS-1$
-				|| displayString.equals("taskname") //$NON-NLS-1$
-				|| displayString.equals(IAntCoreConstants.DESCRIPTION)
-				|| displayString.equals(IAntCoreConstants.FILE)
-				|| displayString.equals("preservelastmodified - (true | false | on | off | yes | no)") //$NON-NLS-1$
-				|| displayString.equals("tofile") //$NON-NLS-1$
-				|| displayString.equals("todir") //$NON-NLS-1$
-				|| displayString.equals("overwrite - (true | false | on | off | yes | no)") //$NON-NLS-1$
-				|| displayString.equals("filtering - (true | false | on | off | yes | no)") //$NON-NLS-1$
-				|| displayString.equals("flatten - (true | false | on | off | yes | no)") //$NON-NLS-1$
-				|| displayString.equals("includeemptydirs") //$NON-NLS-1$
-				|| displayString.equals("failonerror - (true | false | on | off | yes | no)") //$NON-NLS-1$
-				|| displayString.equals("verbose - (true | false | on | off | yes | no)") //$NON-NLS-1$
-				|| displayString.equals("encoding") //$NON-NLS-1$
-				|| displayString.equals("outputencoding") //$NON-NLS-1$
-				|| displayString.equals("enablemultiplemapping - (true | false | on | off | yes | no)") //$NON-NLS-1$
-				|| displayString.equals("granularity")); //$NON-NLS-1$
+        proposals = processor.getAttributeProposals("move", ""); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(17, proposals.length);
+        ICompletionProposal proposal = proposals[0];
+        String displayString = proposal.getDisplayString();
+        assertTrue(displayString.equals("id")  //$NON-NLS-1$
+        || displayString.equals("taskname") //$NON-NLS-1$
+        || displayString.equals(IAntCoreConstants.DESCRIPTION)
+        || displayString.equals(IAntCoreConstants.FILE)
+        || displayString.equals("preservelastmodified - (true | false | on | off | yes | no)") //$NON-NLS-1$
+        || displayString.equals("tofile") //$NON-NLS-1$
+        || displayString.equals("todir") //$NON-NLS-1$
+        || displayString.equals("overwrite - (true | false | on | off | yes | no)") //$NON-NLS-1$
+        || displayString.equals("filtering - (true | false | on | off | yes | no)") //$NON-NLS-1$
+        || displayString.equals("flatten - (true | false | on | off | yes | no)") //$NON-NLS-1$
+        || displayString.equals("includeemptydirs") //$NON-NLS-1$
+        || displayString.equals("failonerror - (true | false | on | off | yes | no)") //$NON-NLS-1$
+        || displayString.equals("verbose - (true | false | on | off | yes | no)") //$NON-NLS-1$
+        || displayString.equals("encoding") //$NON-NLS-1$
+        || displayString.equals("outputencoding") //$NON-NLS-1$
+        || displayString.equals("enablemultiplemapping - (true | false | on | off | yes | no)") //$NON-NLS-1$
+		|| displayString.equals("granularity")); //$NON-NLS-1$
+        
+        proposals = processor.getAttributeProposals("move", "to"); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(2, proposals.length);
 
-		proposals = processor.getAttributeProposals("move", "to"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals(2, proposals.length);
+        proposals = processor.getAttributeProposals("reference", "idl"); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(0, proposals.length);
 
-		proposals = processor.getAttributeProposals("reference", "idl"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals(0, proposals.length);
+        proposals = processor.getAttributeProposals("reference", "id"); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(1, proposals.length);
+        assertEquals("id", proposals[0].getDisplayString()); //$NON-NLS-1$
 
-		proposals = processor.getAttributeProposals("reference", "id"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals(1, proposals.length);
-		assertEquals("id", proposals[0].getDisplayString()); //$NON-NLS-1$
-
-		proposals = processor.getAttributeProposals("reference", "i"); //$NON-NLS-1$ //$NON-NLS-2$
-		// id includesfile includes
-		assertEquals(3, proposals.length);
-		displayString = proposals[0].getDisplayString();
-		assertTrue(displayString.equals("id") //$NON-NLS-1$
-				|| displayString.equals("includesfile") //$NON-NLS-1$
+        proposals = processor.getAttributeProposals("reference", "i"); //$NON-NLS-1$ //$NON-NLS-2$
+        //id includesfile includes
+        assertEquals(3, proposals.length);
+        displayString= proposals[0].getDisplayString();
+        assertTrue(displayString.equals("id")  //$NON-NLS-1$
+        		||  displayString.equals("includesfile") //$NON-NLS-1$
 				|| displayString.equals("includes")); //$NON-NLS-1$
 
-		proposals = processor.getAttributeProposals("project", "de"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals(1, proposals.length);
-	}
+        proposals = processor.getAttributeProposals("project", "de"); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(1, proposals.length);
+    }
+    
+    /**
+     * Test the code completion for properties, including unquoted (bug 40871)
+     */
+    public void testPropertyProposals() throws BadLocationException {
+    	TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml")); //$NON-NLS-1$
 
-	/**
-	 * Test the code completion for properties, including unquoted (bug 40871)
-	 */
-	public void testPropertyProposals() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml")); //$NON-NLS-1$
-
-		int lineNumber = 7;
-		int columnNumber = 16;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getPropertyProposals(getCurrentDocument(), "", lineOffset + columnNumber); //$NON-NLS-1$
-		assertTrue(proposals.length >= 1);
-		assertContains("prop1", proposals); //$NON-NLS-1$
-
-		lineNumber = 18;
-		columnNumber = 25;
-		lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		proposals = processor.getPropertyProposals(getCurrentDocument(), "", lineOffset + columnNumber); //$NON-NLS-1$
-		assertTrue(proposals.length >= 1);
-		assertContains("prop2", proposals); //$NON-NLS-1$
-	}
-
-	/**
-	 * Tests the code completion for nested elements that no templates are presented Bug 76414
-	 */
+    	int lineNumber= 7;
+    	int columnNumber= 16;
+    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	ICompletionProposal[] proposals = processor.getPropertyProposals(getCurrentDocument(), "", lineOffset + columnNumber); //$NON-NLS-1$
+    	assertTrue(proposals.length >= 1);
+    	assertContains("prop1", proposals); //$NON-NLS-1$
+    	
+    	lineNumber= 18;
+    	columnNumber= 25;
+    	lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	proposals = processor.getPropertyProposals(getCurrentDocument(), "", lineOffset + columnNumber); //$NON-NLS-1$
+    	assertTrue(proposals.length >= 1);
+    	assertContains("prop2", proposals); //$NON-NLS-1$
+    }
+    
+    /**
+     * Tests the code completion for nested elements that no templates are presented
+     * Bug 76414
+     */
 	public void testPropertyTemplateProposals() throws BadLocationException, PartInitException {
 		try {
-			IFile file = getIFile("buildtest1.xml"); //$NON-NLS-1$
-			AntEditor editor = (AntEditor) EditorTestHelper.openInEditor(file, ANT_EDITOR_ID, true);
-			TestTextCompletionProcessor processor = new TestTextCompletionProcessor(editor);
-			int lineNumber = 7;
-			int columnNumber = 16;
-			int lineOffset = editor.getDocumentProvider().getDocument(editor.getEditorInput()).getLineOffset(lineNumber);
-			processor.setLineNumber(lineNumber);
-			processor.setColumnNumber(columnNumber);
-			processor.setCursorPosition(lineOffset + columnNumber);
-
-			ICompletionProposal[] proposals = processor.determineTemplateProposals();
-			assertTrue("No templates are relevant at the current position. Found: " + proposals.length, proposals.length == 0); //$NON-NLS-1$
-		}
-		finally {
+			IFile file= getIFile("buildtest1.xml"); //$NON-NLS-1$
+			AntEditor editor= (AntEditor)EditorTestHelper.openInEditor(file, ANT_EDITOR_ID, true);
+			TestTextCompletionProcessor processor= new TestTextCompletionProcessor(editor);
+			int lineNumber= 7;
+	    	int columnNumber= 16;
+	    	int lineOffset= editor.getDocumentProvider().getDocument(editor.getEditorInput()).getLineOffset(lineNumber);
+	    	processor.setLineNumber(lineNumber);
+	    	processor.setColumnNumber(columnNumber);
+	    	processor.setCursorPosition(lineOffset + columnNumber);
+	    	
+	    	ICompletionProposal[] proposals= processor.determineTemplateProposals();
+	    	assertTrue("No templates are relevant at the current position. Found: " + proposals.length, proposals.length == 0); //$NON-NLS-1$
+		} finally {
 			EditorTestHelper.closeAllEditors();
 		}
 	}
-
-	/**
-	 * Test the code completion for "system" properties
-	 */
-	public void testSystemPropertyProposals() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml")); //$NON-NLS-1$
-
-		int lineNumber = 18;
-		int columnNumber = 25;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getPropertyProposals(getCurrentDocument(), "", lineOffset + columnNumber); //$NON-NLS-1$
-		assertTrue(proposals.length >= 1);
-		assertContains("java.home", proposals); //$NON-NLS-1$
-	}
-
-	/**
-	 * Test the code completion for "built-in" properties
-	 */
-	public void testBuiltInPropertyProposals() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml")); //$NON-NLS-1$
-
-		int lineNumber = 18;
-		int columnNumber = 25;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getPropertyProposals(getCurrentDocument(), "", lineOffset + columnNumber); //$NON-NLS-1$
-		assertTrue(proposals.length >= 1);
-		assertContains("ant.file", proposals); //$NON-NLS-1$
-		assertContains("ant.version", proposals); //$NON-NLS-1$
-		assertContains("ant.project.name", proposals); //$NON-NLS-1$
-		assertContains("basedir", proposals); //$NON-NLS-1$
-		assertContains("ant.home", proposals); //$NON-NLS-1$
-		assertContains("ant.library.dir", proposals); //$NON-NLS-1$
-		processor.dispose();
-	}
-
-	/**
-	 * Test the code completion for extension point / preference properties
-	 */
-	public void testPreferencePropertyProposals() throws BadLocationException {
-		AntCorePreferences prefs = AntCorePlugin.getPlugin().getPreferences();
-		try {
-
-			prefs.setCustomProperties(new Property[] { new Property("test", "result") }); //$NON-NLS-1$ //$NON-NLS-2$
-			prefs.updatePluginPreferences();
-
-			TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml")); //$NON-NLS-1$
-
-			int lineNumber = 18;
-			int columnNumber = 25;
-			int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-			processor.setLineNumber(lineNumber);
-			processor.setColumnNumber(columnNumber);
-			processor.setCursorPosition(lineOffset + columnNumber);
-			ICompletionProposal[] proposals = processor.getPropertyProposals(getCurrentDocument(), "", lineOffset + columnNumber); //$NON-NLS-1$
-			assertTrue(proposals.length >= 3);
-			assertContains("eclipse.home", proposals); //contributed //$NON-NLS-1$
-			assertContains("property.ui.testing2", proposals); //contributed //$NON-NLS-1$
-			assertContains("test", proposals); //$NON-NLS-1$
-		}
-		finally {
-			prefs.setCustomProperties(new Property[] {});
-			prefs.updatePluginPreferences();
-		}
-	}
-
-	/**
-	 * Test the code completion for the depend attribute of a target.
-	 */
-	public void testTargetDependProposals() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml")); //$NON-NLS-1$
-		// simple depends
-		int lineNumber = 10;
-		int columnNumber = 34;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getTargetAttributeValueProposals(getCurrentDocument(), getCurrentDocument().get(0, lineOffset
-				+ columnNumber), "", "depends"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(proposals.length == 7);
-		assertContains("pretest", proposals); //$NON-NLS-1$
-		assertContains("testMoreDepends", proposals); //$NON-NLS-1$
-		// comma separated depends
-		lineNumber = 17;
-		columnNumber = 53;
-		lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		proposals = processor.getTargetAttributeValueProposals(getCurrentDocument(), getCurrentDocument().get(0, lineOffset + columnNumber), "", "depends"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(proposals.length == 7);
-		assertContains("main", proposals); //$NON-NLS-1$
-		// XXX why do we not want a valid proposal?
-		/* assertDoesNotContain("pretest", proposals); */
-	}
-
-	/**
-	 * Test the image for a code completion proposal for the depend attribute of a target.
-	 */
-	public void testTargetDependProposalImages() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest3.xml")); //$NON-NLS-1$
-		// simple depends
-		int lineNumber = 5;
-		int columnNumber = 34;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
-		assertEquals(3, proposals.length);
-		assertContains("main", proposals); //$NON-NLS-1$
-		assertContains("pretest", proposals); //$NON-NLS-1$
-		assertContains("test2", proposals); //$NON-NLS-1$
-
-		for (int i = 0; i < proposals.length; i++) {
-			String displayString = proposals[i].getDisplayString();
+    
+    /**
+     * Test the code completion for "system" properties
+     */
+    public void testSystemPropertyProposals() throws BadLocationException {
+    	TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml")); //$NON-NLS-1$
+    	
+    	int lineNumber= 18;
+    	int columnNumber= 25;
+    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	ICompletionProposal[] proposals = processor.getPropertyProposals(getCurrentDocument(), "", lineOffset + columnNumber); //$NON-NLS-1$
+    	assertTrue(proposals.length >= 1);
+    	assertContains("java.home", proposals); //$NON-NLS-1$
+    }
+    
+    /**
+     * Test the code completion for "built-in" properties
+     */
+    public void testBuiltInPropertyProposals() throws BadLocationException {
+    	TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml")); //$NON-NLS-1$
+    	
+    	int lineNumber= 18;
+    	int columnNumber= 25;
+    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	ICompletionProposal[] proposals = processor.getPropertyProposals(getCurrentDocument(), "", lineOffset + columnNumber); //$NON-NLS-1$
+    	assertTrue(proposals.length >= 1);
+    	assertContains("ant.file", proposals); //$NON-NLS-1$
+    	assertContains("ant.version", proposals); //$NON-NLS-1$
+    	assertContains("ant.project.name", proposals); //$NON-NLS-1$
+    	assertContains("basedir", proposals); //$NON-NLS-1$
+        assertContains("ant.home", proposals); //$NON-NLS-1$
+        assertContains("ant.library.dir", proposals); //$NON-NLS-1$
+        processor.dispose();
+    }
+    
+    /**
+     * Test the code completion for extension point / preference properties
+     */
+    public void testPreferencePropertyProposals() throws BadLocationException {
+    	AntCorePreferences prefs= AntCorePlugin.getPlugin().getPreferences();
+    	try {
+    		
+    		prefs.setCustomProperties(new Property[] {new Property("test", "result")}); //$NON-NLS-1$ //$NON-NLS-2$
+    		prefs.updatePluginPreferences();
+    		
+    		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml")); //$NON-NLS-1$
+    		
+    		int lineNumber= 18;
+    		int columnNumber= 25;
+    		int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    		processor.setLineNumber(lineNumber);
+    		processor.setColumnNumber(columnNumber);
+    		processor.setCursorPosition(lineOffset + columnNumber);
+    		ICompletionProposal[] proposals = processor.getPropertyProposals(getCurrentDocument(), "", lineOffset + columnNumber); //$NON-NLS-1$
+    		assertTrue(proposals.length >= 3);
+    		assertContains("eclipse.home", proposals); //contributed //$NON-NLS-1$
+    		assertContains("property.ui.testing2", proposals); //contributed //$NON-NLS-1$
+    		assertContains("test", proposals); //$NON-NLS-1$
+    	} finally {
+    		prefs.setCustomProperties(new Property[]{});
+    		prefs.updatePluginPreferences();
+    	}
+    }
+    
+    /**
+     * Test the code completion for the depend attribute of a target.
+     */
+    public void testTargetDependProposals() throws BadLocationException {
+    	TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml")); //$NON-NLS-1$
+    	//simple depends
+    	int lineNumber= 10;
+    	int columnNumber= 34;
+    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	ICompletionProposal[] proposals = processor.getTargetAttributeValueProposals(getCurrentDocument(), getCurrentDocument().get(0, lineOffset + columnNumber), "", "depends"); //$NON-NLS-1$ //$NON-NLS-2$
+    	assertTrue(proposals.length == 7);
+    	assertContains("pretest", proposals); //$NON-NLS-1$
+    	assertContains("testMoreDepends", proposals); //$NON-NLS-1$
+    	//comma separated depends
+    	lineNumber= 17;
+    	columnNumber= 53;
+    	lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	proposals = processor.getTargetAttributeValueProposals(getCurrentDocument(), getCurrentDocument().get(0, lineOffset + columnNumber), "", "depends"); //$NON-NLS-1$ //$NON-NLS-2$
+    	assertTrue(proposals.length == 7);
+    	assertContains("main", proposals); //$NON-NLS-1$
+    	//XXX why do we not want a valid proposal?
+    	/*assertDoesNotContain("pretest", proposals);*/
+    }
+    
+    /**
+     * Test the image for a code completion proposal for the depend attribute of a target.
+     */
+    public void testTargetDependProposalImages() throws BadLocationException {
+    	TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest3.xml")); //$NON-NLS-1$
+    	//simple depends
+    	int lineNumber= 5;
+    	int columnNumber= 34;
+    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
+    	assertEquals(3, proposals.length);
+    	assertContains("main", proposals); //$NON-NLS-1$
+    	assertContains("pretest", proposals); //$NON-NLS-1$
+    	assertContains("test2", proposals); //$NON-NLS-1$
+    	
+    	for (int i = 0; i <	 proposals.length; i++) {
+    		String displayString = proposals[i].getDisplayString();
 			if (displayString.equals("main")) { //$NON-NLS-1$
 				assertEquals(AntUIImages.getImage(IAntUIConstants.IMG_ANT_DEFAULT_TARGET), proposals[i].getImage());
 			} else if (displayString.equals("pretest")) { //$NON-NLS-1$
 				assertEquals(AntUIImages.getImage(IAntUIConstants.IMG_ANT_TARGET), proposals[i].getImage());
 			} else if (displayString.equals("test2")) { //$NON-NLS-1$
-				assertEquals(AntUIImages.getImage(IAntUIConstants.IMG_ANT_TARGET_INTERNAL), proposals[i].getImage());
+				assertEquals(AntUIImages.getImage(IAntUIConstants.IMG_ANT_TARGET_INTERNAL), proposals[i].getImage());				
 			} else {
 				fail("Unknown completion proposal detected: " + displayString); //$NON-NLS-1$
 			}
 		}
-	}
-
-	/**
-	 * Test the image for a code completion proposal for the default attribute of a project.
-	 */
-	public void testProjectDefaultProposalImages() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest4.xml")); //$NON-NLS-1$
-		// simple depends
-		int lineNumber = 1;
-		int columnNumber = 18;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
-		assertEquals(3, proposals.length);
-		assertContains("task", proposals); //$NON-NLS-1$
-		assertContains("task2", proposals); //$NON-NLS-1$
-		assertContains("task3", proposals); //$NON-NLS-1$
-
-		for (int i = 0; i < proposals.length; i++) {
-			String displayString = proposals[i].getDisplayString();
+    }
+    
+    /**
+     * Test the image for a code completion proposal for the default attribute of a project.
+     */
+    public void testProjectDefaultProposalImages() throws BadLocationException {
+    	TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest4.xml")); //$NON-NLS-1$
+    	//simple depends
+    	int lineNumber= 1;
+    	int columnNumber= 18;
+    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
+    	assertEquals(3, proposals.length);
+    	assertContains("task", proposals); //$NON-NLS-1$
+    	assertContains("task2", proposals); //$NON-NLS-1$
+    	assertContains("task3", proposals); //$NON-NLS-1$
+    	
+    	for (int i = 0; i <	 proposals.length; i++) {
+    		String displayString = proposals[i].getDisplayString();
 			if (displayString.equals("task3")) { //$NON-NLS-1$
 				assertEquals(AntUIImages.getImage(IAntUIConstants.IMG_ANT_DEFAULT_TARGET), proposals[i].getImage());
 			} else if (displayString.equals("task")) { //$NON-NLS-1$
 				assertEquals(AntUIImages.getImage(IAntUIConstants.IMG_ANT_TARGET), proposals[i].getImage());
 			} else if (displayString.equals("task2")) { //$NON-NLS-1$
-				assertEquals(AntUIImages.getImage(IAntUIConstants.IMG_ANT_TARGET_INTERNAL), proposals[i].getImage());
+				assertEquals(AntUIImages.getImage(IAntUIConstants.IMG_ANT_TARGET_INTERNAL), proposals[i].getImage());				
 			} else {
 				fail("Unknown completion proposal detected: " + displayString); //$NON-NLS-1$
 			}
 		}
-	}
-
-	/**
-	 * Test the image for a code completion proposal for the target attribute of an antcall task.
-	 */
-	public void testAntcallTargetProposalImages() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest4.xml")); //$NON-NLS-1$
-		int lineNumber = 4;
-		int columnNumber = 25;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
-		assertEquals(2, proposals.length);
-		assertContains("task", proposals); //$NON-NLS-1$
-		assertContains("task3", proposals); //$NON-NLS-1$
-
-		for (int i = 0; i < proposals.length; i++) {
-			String displayString = proposals[i].getDisplayString();
+    }
+    
+    /**
+     * Test the image for a code completion proposal for the target attribute of an antcall task.
+     */
+    public void testAntcallTargetProposalImages() throws BadLocationException {
+    	TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest4.xml")); //$NON-NLS-1$
+    	int lineNumber= 4;
+    	int columnNumber= 25;
+    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
+    	assertEquals(2, proposals.length);
+    	assertContains("task", proposals); //$NON-NLS-1$
+    	assertContains("task3", proposals); //$NON-NLS-1$
+    	
+    	for (int i = 0; i <	 proposals.length; i++) {
+    		String displayString = proposals[i].getDisplayString();
 			if (displayString.equals("task3")) { //$NON-NLS-1$
 				assertEquals(AntUIImages.getImage(IAntUIConstants.IMG_ANT_DEFAULT_TARGET), proposals[i].getImage());
 			} else if (displayString.equals("task")) { //$NON-NLS-1$
-				assertEquals(AntUIImages.getImage(IAntUIConstants.IMG_ANT_TARGET), proposals[i].getImage());
+				assertEquals(AntUIImages.getImage(IAntUIConstants.IMG_ANT_TARGET), proposals[i].getImage());				
 			} else {
 				fail("Unknown completion proposal detected: " + displayString); //$NON-NLS-1$
 			}
 		}
-	}
+    }
+    
+    /**
+     * Test the code completion for the if attribute of a target.
+     */
+    public void testTargetIfProposals() throws BadLocationException {
+    	TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml")); //$NON-NLS-1$
+
+    	int lineNumber= 15;
+    	int columnNumber= 31;
+    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	ICompletionProposal[] proposals = processor.getTargetAttributeValueProposals(getCurrentDocument(), getCurrentDocument().get(0, lineOffset + columnNumber), "", "if"); //$NON-NLS-1$ //$NON-NLS-2$
+    	assertTrue(proposals.length >= 1);
+    	assertContains("prop1", proposals); //$NON-NLS-1$
+    }
+    
+    /**
+     * Test the code completion for the unless attribute of a target.
+     */
+    public void testTargetUnlessProposals() throws BadLocationException {
+    	TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml")); //$NON-NLS-1$
+
+    	int lineNumber= 16;
+    	int columnNumber= 43;
+    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	ICompletionProposal[] proposals = processor.getTargetAttributeValueProposals(getCurrentDocument(), getCurrentDocument().get(0, lineOffset + columnNumber), "prop", "unless"); //$NON-NLS-1$ //$NON-NLS-2$
+    	assertTrue(proposals.length >= 1);
+    	assertContains("prop1", proposals); //$NON-NLS-1$
+
+    }
+    
+    /**
+     * Test the code completion for the target attribute of antcall.
+     */
+    public void testAntCallTargetProposals() throws BadLocationException {
+        TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("debugAntCall.xml")); //$NON-NLS-1$
+        int lineNumber= 4;
+        int columnNumber= 25;
+        int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+        processor.setLineNumber(lineNumber);
+        processor.setColumnNumber(columnNumber);
+        processor.setCursorPosition(lineOffset + columnNumber);
+        ICompletionProposal[] proposals = processor.getAntCallAttributeValueProposals(getCurrentDocument(), "", "target"); //$NON-NLS-1$ //$NON-NLS-2$
+        assertTrue(proposals.length == 2);
+        assertContains("call", proposals); //$NON-NLS-1$
+        assertContains("pre-call", proposals); //$NON-NLS-1$
+    }
+    
+ 	/**
+ 	 * Asserts that <code>displayString</code> is in one of the 
+ 	 * completion proposals.
+ 	 */
+    private void assertContains(String displayString, ICompletionProposal[] proposalArray) {
+        boolean found = false;
+        for (int i = 0; i < proposalArray.length; i++) {
+            ICompletionProposal proposal = proposalArray[i];
+            String proposalDisplayString = proposal.getDisplayString();
+            if(displayString.equals(proposalDisplayString)) {
+                found = true;
+                break;
+            }
+        }
+        assertTrue("Did not find displayString: " + displayString, found); //$NON-NLS-1$
+    }        
+    
+    /**
+ 	 * Asserts that <code>displayString</code> is not in one of the 
+ 	 * completion proposals.
+ 	 */
+    private void assertDoesNotContain(String displayString, ICompletionProposal[] proposalArray) {
+        boolean found = false;
+        for (int i = 0; i < proposalArray.length; i++) {
+            ICompletionProposal proposal = proposalArray[i];
+            String proposalDisplayString = proposal.getDisplayString();
+            if(displayString.equals(proposalDisplayString)) {
+                found = true;
+                break;
+            }
+        }
+        assertFalse("Found displayString: " + displayString, found); //$NON-NLS-1$
+    }        
 
 	/**
-	 * Test the code completion for the if attribute of a target.
+	 * Tests the property proposals for the case that they are defined in
+	 * a dependent targets.
 	 */
-	public void testTargetIfProposals() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml")); //$NON-NLS-1$
+    public void testPropertyProposalDefinedInDependantTargets() throws FileNotFoundException {
+        TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("dependencytest.xml")); //$NON-NLS-1$
 
-		int lineNumber = 15;
-		int columnNumber = 31;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getTargetAttributeValueProposals(getCurrentDocument(), getCurrentDocument().get(0, lineOffset
-				+ columnNumber), "", "if"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(proposals.length >= 1);
-		assertContains("prop1", proposals); //$NON-NLS-1$
-	}
-
-	/**
-	 * Test the code completion for the unless attribute of a target.
-	 */
-	public void testTargetUnlessProposals() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml")); //$NON-NLS-1$
-
-		int lineNumber = 16;
-		int columnNumber = 43;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getTargetAttributeValueProposals(getCurrentDocument(), getCurrentDocument().get(0, lineOffset
-				+ columnNumber), "prop", "unless"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(proposals.length >= 1);
-		assertContains("prop1", proposals); //$NON-NLS-1$
-
-	}
-
-	/**
-	 * Test the code completion for the target attribute of antcall.
-	 */
-	public void testAntCallTargetProposals() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("debugAntCall.xml")); //$NON-NLS-1$
-		int lineNumber = 4;
-		int columnNumber = 25;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getAntCallAttributeValueProposals(getCurrentDocument(), "", "target"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue(proposals.length == 2);
-		assertContains("call", proposals); //$NON-NLS-1$
-		assertContains("pre-call", proposals); //$NON-NLS-1$
-	}
-
-	/**
-	 * Asserts that <code>displayString</code> is in one of the completion proposals.
-	 */
-	private void assertContains(String displayString, ICompletionProposal[] proposalArray) {
-		boolean found = false;
-		for (int i = 0; i < proposalArray.length; i++) {
-			ICompletionProposal proposal = proposalArray[i];
-			String proposalDisplayString = proposal.getDisplayString();
-			if (displayString.equals(proposalDisplayString)) {
-				found = true;
-				break;
-			}
-		}
-		assertTrue("Did not find displayString: " + displayString, found); //$NON-NLS-1$
-	}
-
-	/**
-	 * Asserts that <code>displayString</code> is not in one of the completion proposals.
-	 */
-	private void assertDoesNotContain(String displayString, ICompletionProposal[] proposalArray) {
-		boolean found = false;
-		for (int i = 0; i < proposalArray.length; i++) {
-			ICompletionProposal proposal = proposalArray[i];
-			String proposalDisplayString = proposal.getDisplayString();
-			if (displayString.equals(proposalDisplayString)) {
-				found = true;
-				break;
-			}
-		}
-		assertFalse("Found displayString: " + displayString, found); //$NON-NLS-1$
-	}
-
-	/**
-	 * Tests the property proposals for the case that they are defined in a dependent targets.
-	 */
-	public void testPropertyProposalDefinedInDependantTargets() throws FileNotFoundException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("dependencytest.xml")); //$NON-NLS-1$
-
-		File file = getBuildFile("dependencytest.xml"); //$NON-NLS-1$
-		processor.setEditedFile(file);
+        File file= getBuildFile("dependencytest.xml"); //$NON-NLS-1$
+        processor.setEditedFile(file);
 		String documentText = getFileContentAsString(file);
 
 		processor.setLineNumber(35);
 		processor.setColumnNumber(41);
 		int cursorPosition = documentText.lastIndexOf("${"); //$NON-NLS-1$
 		assertTrue(cursorPosition != -1);
-		ICompletionProposal[] proposals = processor.getPropertyProposals(new org.eclipse.jface.text.Document(documentText), "", cursorPosition + 2); //$NON-NLS-1$
+        ICompletionProposal[] proposals = processor.getPropertyProposals(new org.eclipse.jface.text.Document(documentText), "", cursorPosition+2); //$NON-NLS-1$
 		assertContains("init_prop", proposals); //$NON-NLS-1$
 		assertContains("main_prop", proposals); //$NON-NLS-1$
 		assertContains("prop_prop", proposals); //$NON-NLS-1$
 		assertContains("do_not_compile", proposals); //$NON-NLS-1$
 		assertContains("adit_prop", proposals); //$NON-NLS-1$
 		assertContains("compile_prop", proposals); //$NON-NLS-1$
-		processor.dispose();
-	}
-
-	/**
-	 * Tests the code completion for tasks that have been defined in the buildfile
-	 */
+        processor.dispose();
+    }
+    
+    /**
+     * Tests the code completion for tasks that have been defined in the buildfile
+     */
 	public void testCustomTaskProposals() {
 		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("taskdef.xml")); //$NON-NLS-1$
 
@@ -481,23 +479,23 @@
 		assertEquals(1, proposals.length);
 		ICompletionProposal proposal = proposals[0];
 		assertEquals("mine", proposal.getDisplayString()); //$NON-NLS-1$
-		processor.dispose();
+        processor.dispose();
 	}
-
-	/**
-	 * Tests the code completion for tasks that have been defined via the task extension point
-	 */
+    
+    /**
+     * Tests the code completion for tasks that have been defined via the task extension point
+     */
 	public void testExtensionPointTaskProposals() {
 		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("taskdef.xml")); //$NON-NLS-1$
 		ICompletionProposal[] proposals = processor.getTaskProposals(getCurrentDocument(), "target", "cool"); //$NON-NLS-1$ //$NON-NLS-2$
 		assertContains("coolUITask", proposals); //$NON-NLS-1$
 		assertContains("coolUIType", proposals); //$NON-NLS-1$
-		processor.dispose();
+        processor.dispose();
 	}
-
-	/**
-	 * Tests the code completion for tasks that have been defined via macrodef in the buildfile
-	 */
+    
+    /**
+     * Tests the code completion for tasks that have been defined via macrodef in the buildfile
+     */
 	public void testMacrodefProposals() {
 		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("macrodef.xml")); //$NON-NLS-1$
 
@@ -505,277 +503,276 @@
 		assertEquals(1, proposals.length);
 		ICompletionProposal proposal = proposals[0];
 		assertEquals("eclipseMacro", proposal.getDisplayString()); //$NON-NLS-1$
-
+        
 	}
+    
+     /**
+     * Tests the code completion for tasks that have been defined via macrodef with uri in the buildfile
+     */
+    public void testNamespacedMacrodefProposals() {
+        TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("98853.xml")); //$NON-NLS-1$
 
+        ICompletionProposal[] proposals = processor.getTaskProposals(getCurrentDocument(), "target", "xyz"); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(2, proposals.length);
+        ICompletionProposal proposal= proposals[0];
+        assertEquals("xyz:echo-macro", proposal.getDisplayString()); //$NON-NLS-1$
+        processor.dispose();
+    }
+	
 	/**
-	 * Tests the code completion for tasks that have been defined via macrodef with uri in the buildfile
-	 */
-	public void testNamespacedMacrodefProposals() {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("98853.xml")); //$NON-NLS-1$
-
-		ICompletionProposal[] proposals = processor.getTaskProposals(getCurrentDocument(), "target", "xyz"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals(2, proposals.length);
-		ICompletionProposal proposal = proposals[0];
-		assertEquals("xyz:echo-macro", proposal.getDisplayString()); //$NON-NLS-1$
-		processor.dispose();
-	}
-
-	/**
-	 * Tests the code completion for nested element attributes
-	 */
+     * Tests the code completion for nested element attributes
+     */
 	public void testMacrodefNestedElementAttributeProposals() throws BadLocationException {
 		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("macrodef.xml")); //$NON-NLS-1$
-		int lineNumber = 5;
-		int columnNumber = 11;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
-		assertEquals(proposals.length, 5);
-		assertContains(IAntCoreConstants.DESCRIPTION, proposals);
-		assertContains("implicit - (true | false | on | off | yes | no)", proposals); //$NON-NLS-1$
-		assertContains(IAntCoreConstants.NAME, proposals);
-		processor.dispose();
+		int lineNumber= 5;
+    	int columnNumber= 11;
+    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
+        assertEquals(proposals.length, 5);
+    	assertContains(IAntCoreConstants.DESCRIPTION, proposals);
+    	assertContains("implicit - (true | false | on | off | yes | no)", proposals); //$NON-NLS-1$
+    	assertContains(IAntCoreConstants.NAME, proposals);
+        processor.dispose();
 	}
-
+	
 	/**
-	 * Tests the code completion for tasks that have been defined via macrodef in the buildfile
-	 */
+     * Tests the code completion for tasks that have been defined via macrodef in the buildfile
+     */
 	public void testMacrodefAttributeProposals() throws BadLocationException {
 		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("macrodef.xml")); //$NON-NLS-1$
-		int lineNumber = 12;
-		int columnNumber = 16;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
-		assertTrue(proposals.length == 2);
-		assertContains("v", proposals); //$NON-NLS-1$
-		assertContains("eclipse", proposals); //$NON-NLS-1$
-		assertTrue("Additional proposal information not correct", proposals[1].getAdditionalProposalInfo().startsWith("Testing Eclipse")); //$NON-NLS-1$ //$NON-NLS-2$
-		processor.dispose();
+		int lineNumber= 12;
+    	int columnNumber= 16;
+    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
+    	assertTrue(proposals.length == 2);
+    	assertContains("v", proposals); //$NON-NLS-1$
+    	assertContains("eclipse", proposals); //$NON-NLS-1$
+    	assertTrue("Additional proposal information not correct", proposals[1].getAdditionalProposalInfo().startsWith("Testing Eclipse")); //$NON-NLS-1$ //$NON-NLS-2$
+        processor.dispose();
 	}
-
+    
+    /**
+     * Tests the code completion for tasks that have been defined via macrodef in the buildfile
+     */
+    public void testNamespacedMacrodefAttributeProposals() throws BadLocationException {
+        TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("98853.xml")); //$NON-NLS-1$
+        int lineNumber= 16;
+        int columnNumber= 18;
+        int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+        processor.setLineNumber(lineNumber);
+        processor.setColumnNumber(columnNumber);
+        processor.setCursorPosition(lineOffset + columnNumber);
+        ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
+        assertEquals(proposals.length, 1);
+        assertContains("str", proposals); //$NON-NLS-1$
+        processor.dispose();
+    }
+	
 	/**
-	 * Tests the code completion for tasks that have been defined via macrodef in the buildfile
-	 */
-	public void testNamespacedMacrodefAttributeProposals() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("98853.xml")); //$NON-NLS-1$
-		int lineNumber = 16;
-		int columnNumber = 18;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
-		assertEquals("There should be one completion proposal", proposals.length, 1); //$NON-NLS-1$
-		assertContains("str", proposals); //$NON-NLS-1$
-		processor.dispose();
-	}
-
-	/**
-	 * Tests the code completion for elements that have been defined via macrodef in the buildfile
-	 */
+     * Tests the code completion for elements that have been defined via macrodef in the buildfile
+     */
 	public void testMacrodefElementProposals() throws BadLocationException {
 		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("macrodef.xml")); //$NON-NLS-1$
-		int lineNumber = 13;
-		int columnNumber = 3;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
-		assertEquals("There should be 1 completion proposal", proposals.length, 1); //$NON-NLS-1$
-		assertTrue("Proposal not correct", proposals[0].getDisplayString().equals("some-tasks")); //$NON-NLS-1$ //$NON-NLS-2$
-		assertTrue("Additional proposal information not correct", proposals[0].getAdditionalProposalInfo().endsWith("Not required")); //$NON-NLS-1$ //$NON-NLS-2$
-		processor.dispose();
+		int lineNumber= 13;
+    	int columnNumber= 3;
+    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
+    	assertTrue(proposals.length == 1);
+    	assertTrue("Proposal not correct", proposals[0].getDisplayString().equals("some-tasks")); //$NON-NLS-1$ //$NON-NLS-2$
+    	assertTrue("Additional proposal information not correct", proposals[0].getAdditionalProposalInfo().endsWith("Not required")); //$NON-NLS-1$ //$NON-NLS-2$
+        processor.dispose();
 	}
 
-	/**
-	 * Tests the code completion for tasks having parent tasks.
-	 */
-	public void testTaskProposals() {
+    /**
+     * Tests the code completion for tasks having parent tasks.
+     */
+    public void testTaskProposals() {
 		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml")); //$NON-NLS-1$
+       
+        ICompletionProposal[] proposals = processor.getTaskProposals("         <", "rename", ""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+        assertEquals(0, proposals.length);
 
-		ICompletionProposal[] proposals = processor.getTaskProposals("         <", "rename", ""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		assertEquals(0, proposals.length);
+        proposals = processor.getTaskProposals("       <cl", "property", "cl"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+        assertEquals(1, proposals.length);
+        ICompletionProposal proposal = proposals[0];
+        assertEquals("classpath", proposal.getDisplayString()); //$NON-NLS-1$
 
-		proposals = processor.getTaskProposals("       <cl", "property", "cl"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		assertEquals(1, proposals.length);
-		ICompletionProposal proposal = proposals[0];
-		assertEquals("classpath", proposal.getDisplayString()); //$NON-NLS-1$
-
-		proposals = processor.getTaskProposals("       <pr", "property", ""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		assertEquals(1, proposals.length);
-		proposal = proposals[0];
-		assertEquals("classpath", proposal.getDisplayString()); //$NON-NLS-1$
-
-		// "<project><target><mk"
-		proposals = processor.getTaskProposals("<project><target><mk", "target", "mk"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		assertEquals(1, proposals.length);
-		proposal = proposals[0];
-		assertEquals("mkdir", proposal.getDisplayString()); //$NON-NLS-1$
-		processor.dispose();
-	}
-
-	public void testTargetTemplateProposals() throws BadLocationException, PartInitException {
-		try {
-			IFile file = getIFile("buildtest1.xml"); //$NON-NLS-1$
-			AntEditor editor = (AntEditor) EditorTestHelper.openInEditor(file, ANT_EDITOR_ID, true);
-			TestTextCompletionProcessor processor = new TestTextCompletionProcessor(editor);
-			int lineNumber = 7;
-			int columnNumber = 6;
-			int lineOffset = editor.getDocumentProvider().getDocument(editor.getEditorInput()).getLineOffset(lineNumber);
-			processor.setLineNumber(lineNumber);
-			processor.setColumnNumber(columnNumber);
-			processor.setCursorPosition(lineOffset + columnNumber);
-
-			// complete inside a target
-			ICompletionProposal[] proposals = processor.determineTemplateProposals();
-			assertDoesNotContain("target - public target", proposals); //$NON-NLS-1$
-
-			// complete outside of a target
-			lineNumber = 8;
-			columnNumber = 13;
-			lineOffset = editor.getDocumentProvider().getDocument(editor.getEditorInput()).getLineOffset(lineNumber);
-			processor.setLineNumber(lineNumber);
-			processor.setColumnNumber(columnNumber);
-			processor.setCursorPosition(lineOffset + columnNumber);
-
-			proposals = processor.determineTemplateProposals();
-			assertContains("target - public target", proposals); //$NON-NLS-1$
-			// ensure all the tasks are still there
-			proposals = processor.getProposalsFromDocument(editor.getDocumentProvider().getDocument(editor.getEditorInput()), ""); //$NON-NLS-1$
-			assertContains("ant", proposals); //$NON-NLS-1$
-		}
-		finally {
+        proposals = processor.getTaskProposals("       <pr", "property", ""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+        assertEquals(1, proposals.length);
+        proposal = proposals[0];
+        assertEquals("classpath", proposal.getDisplayString()); //$NON-NLS-1$
+        
+        // "<project><target><mk"
+        proposals = processor.getTaskProposals("<project><target><mk", "target", "mk"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+        assertEquals(1, proposals.length);
+        proposal = proposals[0];
+        assertEquals("mkdir", proposal.getDisplayString()); //$NON-NLS-1$
+        processor.dispose();
+    }
+    
+    public void testTargetTemplateProposals() throws BadLocationException, PartInitException {
+    	try {
+			IFile file= getIFile("buildtest1.xml"); //$NON-NLS-1$
+			AntEditor editor= (AntEditor)EditorTestHelper.openInEditor(file, ANT_EDITOR_ID, true);
+			TestTextCompletionProcessor processor= new TestTextCompletionProcessor(editor);
+			int lineNumber= 7;
+	    	int columnNumber= 6;
+	    	int lineOffset= editor.getDocumentProvider().getDocument(editor.getEditorInput()).getLineOffset(lineNumber);
+	    	processor.setLineNumber(lineNumber);
+	    	processor.setColumnNumber(columnNumber);
+	    	processor.setCursorPosition(lineOffset + columnNumber);
+	    	
+	    	//complete inside a target
+	    	ICompletionProposal[] proposals= processor.determineTemplateProposals();
+	    	assertDoesNotContain("target - public target", proposals); //$NON-NLS-1$
+	    	
+	    	//complete outside of a target
+	    	lineNumber= 8;
+	    	columnNumber= 13;
+	    	lineOffset= editor.getDocumentProvider().getDocument(editor.getEditorInput()).getLineOffset(lineNumber);
+	    	processor.setLineNumber(lineNumber);
+	    	processor.setColumnNumber(columnNumber);
+	    	processor.setCursorPosition(lineOffset + columnNumber);
+	    	
+	    	proposals= processor.determineTemplateProposals();
+	    	assertContains("target - public target", proposals); //$NON-NLS-1$
+	    	//ensure all the tasks are still there
+	    	proposals = processor.getProposalsFromDocument(editor.getDocumentProvider().getDocument(editor.getEditorInput()), ""); //$NON-NLS-1$
+	    	assertContains("ant", proposals); //$NON-NLS-1$
+		} finally {
 			EditorTestHelper.closeAllEditors();
 		}
-
-	}
-
-	/**
-	 * Tests the code completion for the fail task bug 73637
-	 */
-	public void testFailProposals() {
+    	
+    }
+    /**
+     * Tests the code completion for the fail task
+     * bug 73637
+     */
+    public void testFailProposals() {
 		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml")); //$NON-NLS-1$
 
 		ICompletionProposal[] proposals = processor.getAttributeProposals("fail", ""); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals(6, proposals.length);
-
-		assertContains("message", proposals); //$NON-NLS-1$
-		assertContains("if", proposals); //$NON-NLS-1$
-		assertContains("unless", proposals); //$NON-NLS-1$
-		processor.dispose();
-	}
-
+        assertEquals(6, proposals.length);
+        
+        assertContains("message", proposals); //$NON-NLS-1$
+        assertContains("if", proposals); //$NON-NLS-1$
+        assertContains("unless", proposals); //$NON-NLS-1$
+        processor.dispose();
+    }
+    
 	/**
 	 * Test for bug 40951
 	 */
 	public void testMixedElements() {
 		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("mixed.xml")); //$NON-NLS-1$
-		// String string = "<project><target><sql driver=\"\" password=\"\" url=\"\" userid=\"\"></sql><concat></concat>";
+		//String string = "<project><target><sql driver=\"\" password=\"\" url=\"\" userid=\"\"></sql><concat></concat>";
 		ICompletionProposal[] proposals = processor.getTaskProposals(getCurrentDocument(), processor.getParentName(getCurrentDocument(), 0, 62), "t"); //$NON-NLS-1$
 		assertEquals(1, proposals.length);
 		ICompletionProposal proposal = proposals[0];
 		assertEquals("transaction", proposal.getDisplayString()); //$NON-NLS-1$
-
+		
 		proposals = processor.getTaskProposals(getCurrentDocument(), processor.getParentName(getCurrentDocument(), 0, 76), ""); //$NON-NLS-1$
-		// filelist fileset filterchain footer header path
+		//filelist fileset filterchain footer header path
 		assertEquals(6, proposals.length);
 		proposal = proposals[0];
 		assertEquals("filelist", proposal.getDisplayString()); //$NON-NLS-1$
-		processor.dispose();
+        processor.dispose();
 	}
-
+	
+    /**
+     * Tests the algorithm for finding a child as used by the processor.
+     */
+    public void testFindChildElement() throws ParserConfigurationException {
+        
+        // Create the test data
+        DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+        Document doc = docBuilder.newDocument();
+        Element parentElement = doc.createElement("parent"); //$NON-NLS-1$
+        Attr attribute = doc.createAttribute("att1"); //$NON-NLS-1$
+        parentElement.setAttributeNode(attribute);
+        Comment comment = doc.createComment("lakjjflsakdfj"); //$NON-NLS-1$
+        parentElement.appendChild(comment);
+        Element childElement = doc.createElement("child"); //$NON-NLS-1$
+        parentElement.appendChild(childElement);
+        childElement = doc.createElement("secondchild"); //$NON-NLS-1$
+        parentElement.appendChild(childElement);
+        
+        // Create the processor
+        TestTextCompletionProcessor processor = new TestTextCompletionProcessor();
+        
+        // Test it!
+        childElement = processor.findChildElementNamedOf(parentElement, "jkl"); //$NON-NLS-1$
+        assertNull(childElement);
+        childElement = processor.findChildElementNamedOf(parentElement, "secondchild"); //$NON-NLS-1$
+        assertNotNull(childElement);
+        assertEquals("secondchild", childElement.getTagName()); //$NON-NLS-1$
+    }
+    
+    /**
+     * Tests that the processor correctly determines the attribute proposal mode
+     */
+    public void testDeterminingAttributeProposalMode() {
+        TestTextCompletionProcessor processor = new TestTextCompletionProcessor();
+        int mode = processor.determineProposalMode("<project><property ta", 21, "ta"); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_PROPOSAL, mode);
+        mode = processor.determineProposalMode("<project><property ", 19, ""); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_PROPOSAL, mode);
+        mode = processor.determineProposalMode("<project><property   ", 21, ""); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_PROPOSAL, mode);
+        mode = processor.determineProposalMode("<property id=\"hu\" ", 18, ""); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_PROPOSAL, mode);
+        mode = processor.determineProposalMode("<property id=\"hu\" \r\n ", 21, ""); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_PROPOSAL, mode);
+        mode = processor.determineProposalMode("<property\n", 10, ""); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_PROPOSAL, mode);
+    }
+    
+    /**
+     * Tests that the processor correctly determines the attribute value proposal mode
+     */
+    public void testDeterminingAttributeValueProposalMode() {
+        TestTextCompletionProcessor processor = new TestTextCompletionProcessor();
+        int mode = processor.determineProposalMode("<project><property take=\"", 25, ""); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_VALUE_PROPOSAL, mode);
+        mode = processor.determineProposalMode("<property id=\"hu\" ", 14, ""); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_VALUE_PROPOSAL, mode);
+        mode = processor.determineProposalMode("<property id=\"hu\" \r\n ", 16, "hu"); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_VALUE_PROPOSAL, mode);
+        mode = processor.determineProposalMode("<property \n\t\tid=\"hu\" \r\n ", 19, "hu"); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_VALUE_PROPOSAL, mode);
+    }
+    
 	/**
-	 * Tests the algorithm for finding a child as used by the processor.
-	 */
-	public void testFindChildElement() throws ParserConfigurationException {
-
-		// Create the test data
-		DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
-		Document doc = docBuilder.newDocument();
-		Element parentElement = doc.createElement("parent"); //$NON-NLS-1$
-		Attr attribute = doc.createAttribute("att1"); //$NON-NLS-1$
-		parentElement.setAttributeNode(attribute);
-		Comment comment = doc.createComment("lakjjflsakdfj"); //$NON-NLS-1$
-		parentElement.appendChild(comment);
-		Element childElement = doc.createElement("child"); //$NON-NLS-1$
-		parentElement.appendChild(childElement);
-		childElement = doc.createElement("secondchild"); //$NON-NLS-1$
-		parentElement.appendChild(childElement);
-
-		// Create the processor
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor();
-
-		// Test it!
-		childElement = processor.findChildElementNamedOf(parentElement, "jkl"); //$NON-NLS-1$
-		assertNull(childElement);
-		childElement = processor.findChildElementNamedOf(parentElement, "secondchild"); //$NON-NLS-1$
-		assertNotNull(childElement);
-		assertEquals("secondchild", childElement.getTagName()); //$NON-NLS-1$
-	}
-
-	/**
-	 * Tests that the processor correctly determines the attribute proposal mode
-	 */
-	public void testDeterminingAttributeProposalMode() {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor();
-		int mode = processor.determineProposalMode("<project><property ta", 21, "ta"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_PROPOSAL, mode);
-		mode = processor.determineProposalMode("<project><property ", 19, ""); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_PROPOSAL, mode);
-		mode = processor.determineProposalMode("<project><property   ", 21, ""); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_PROPOSAL, mode);
-		mode = processor.determineProposalMode("<property id=\"hu\" ", 18, ""); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_PROPOSAL, mode);
-		mode = processor.determineProposalMode("<property id=\"hu\" \r\n ", 21, ""); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_PROPOSAL, mode);
-		mode = processor.determineProposalMode("<property\n", 10, ""); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_PROPOSAL, mode);
-	}
-
-	/**
-	 * Tests that the processor correctly determines the attribute value proposal mode
-	 */
-	public void testDeterminingAttributeValueProposalMode() {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor();
-		int mode = processor.determineProposalMode("<project><property take=\"", 25, ""); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_VALUE_PROPOSAL, mode);
-		mode = processor.determineProposalMode("<property id=\"hu\" ", 14, ""); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_VALUE_PROPOSAL, mode);
-		mode = processor.determineProposalMode("<property id=\"hu\" \r\n ", 16, "hu"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_VALUE_PROPOSAL, mode);
-		mode = processor.determineProposalMode("<property \n\t\tid=\"hu\" \r\n ", 19, "hu"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_ATTRIBUTE_VALUE_PROPOSAL, mode);
-	}
-
-	/**
-	 * Tests how the processor determines the proposal mode.
-	 */
-	public void testDeterminingPropertyProposalMode() {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor();
-		int mode = processor.determineProposalMode("<project><target name=\"$\"", 24, ""); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_PROPERTY_PROPOSAL, mode);
-		mode = processor.determineProposalMode("<project><target name=\"${\"", 25, ""); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_PROPERTY_PROPOSAL, mode);
-		mode = processor.determineProposalMode("<project><target name=\"${ja.bl\"", 30, "ja.bl"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_PROPERTY_PROPOSAL, mode);
-
+	* Tests how the processor determines the proposal mode.
+	*/
+   public void testDeterminingPropertyProposalMode() {
+	   TestTextCompletionProcessor processor = new TestTextCompletionProcessor();
+	   int mode =processor.determineProposalMode("<project><target name=\"$\"", 24, ""); //$NON-NLS-1$ //$NON-NLS-2$
+	   assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_PROPERTY_PROPOSAL, mode);
+	   mode = processor.determineProposalMode("<project><target name=\"${\"", 25, ""); //$NON-NLS-1$ //$NON-NLS-2$
+	   assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_PROPERTY_PROPOSAL, mode);
+	   mode = processor.determineProposalMode("<project><target name=\"${ja.bl\"", 30, "ja.bl"); //$NON-NLS-1$ //$NON-NLS-2$
+	   assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_PROPERTY_PROPOSAL, mode);
+	  
 		mode = processor.determineProposalMode("<project><target><echo>${", 25, ""); //$NON-NLS-1$ //$NON-NLS-2$
 		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_PROPERTY_PROPOSAL, mode);
-	}
-
+   }
+    
 	/**
 	 * Tests how the processor determines the proposal mode.
 	 */
 	public void testDeterminingTaskProposalMode() {
 		TestTextCompletionProcessor processor = new TestTextCompletionProcessor();
-
+    
 		int mode = processor.determineProposalMode("<project><prop", 14, "prop"); //$NON-NLS-1$ //$NON-NLS-2$
 		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_TASK_PROPOSAL, mode);
 		mode = processor.determineProposalMode("<project> hjk", 13, ""); //$NON-NLS-1$ //$NON-NLS-2$
@@ -800,429 +797,429 @@
 		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_TASK_PROPOSAL_CLOSING, mode);
 		mode = processor.determineProposalMode("", 0, ""); //$NON-NLS-1$ //$NON-NLS-2$
 		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_BUILDFILE, mode);
-		mode = processor.determineProposalMode("<project default=\"hey\"><target name=\"hey\"><javac>a</javac></target></project>", 51, "a"); //$NON-NLS-1$ //$NON-NLS-2$
+		mode= processor.determineProposalMode("<project default=\"hey\"><target name=\"hey\"><javac>a</javac></target></project>", 51, "a"); //$NON-NLS-1$ //$NON-NLS-2$
 		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_TASK_PROPOSAL, mode);
 		mode = processor.determineProposalMode("<project> hjk", 13, ""); //$NON-NLS-1$ //$NON-NLS-2$
 		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_TASK_PROPOSAL, mode);
 	}
-
+	
 	/**
 	 * Tests how the processor determines the proposal mode.
 	 */
 	public void testDeterminingTaskClosingProposalMode() {
 		TestTextCompletionProcessor processor = new TestTextCompletionProcessor();
-
+	
 		int mode = processor.determineProposalMode("<target name=\"main\"><zip><size></size></zip></", 46, ""); //$NON-NLS-1$ //$NON-NLS-2$
 		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_TASK_PROPOSAL_CLOSING, mode);
 	}
 
-	/**
-	 * Tests how the prefix will be determined.
-	 */
-	public void testDeterminingPrefix() {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor();
+    /**
+     * Tests how the prefix will be determined.
+     */
+    public void testDeterminingPrefix() {
+        TestTextCompletionProcessor processor = new TestTextCompletionProcessor();
 
-		// cursor after ${
-		String prefix = processor.getPrefixFromDocument("<project><target name=\"${}\"", 25); //$NON-NLS-1$
-		assertEquals("", prefix); //$NON-NLS-1$
+        // cursor after ${
+        String prefix = processor.getPrefixFromDocument("<project><target name=\"${}\"", 25); //$NON-NLS-1$
+        assertEquals("", prefix); //$NON-NLS-1$
 
-		// cursor after $
-		prefix = processor.getPrefixFromDocument("<project><target name=\"${\"", 24); //$NON-NLS-1$
-		assertEquals("", prefix); //$NON-NLS-1$
+        // cursor after $
+        prefix = processor.getPrefixFromDocument("<project><target name=\"${\"", 24); //$NON-NLS-1$
+        assertEquals("", prefix); //$NON-NLS-1$
 
-		// cursor after ${ja.
-		prefix = processor.getPrefixFromDocument("<project><target name=\"${ja.\"", 28); //$NON-NLS-1$
-		assertEquals("ja.", prefix); //$NON-NLS-1$
-
-		// cursor after <
+        // cursor after ${ja.
+        prefix = processor.getPrefixFromDocument("<project><target name=\"${ja.\"", 28); //$NON-NLS-1$
+        assertEquals("ja.", prefix); //$NON-NLS-1$
+        
+        // cursor after <
 		prefix = processor.getPrefixFromDocument("<project><", 10); //$NON-NLS-1$
 		assertEquals("", prefix); //$NON-NLS-1$
-
+		
 		prefix = processor.getPrefixFromDocument("<project name= \"test\"><tar", 26); //$NON-NLS-1$
 		assertEquals("tar", prefix); //$NON-NLS-1$
-
+		
 		prefix = processor.getPrefixFromDocument("pro", 3); //$NON-NLS-1$
 		assertEquals("pro", prefix); //$NON-NLS-1$
-	}
+    }    
+    
+    /**
+     * Tests how the processor determines the proposal mode.
+     */
+    public void testDeterminingNoneProposalMode() {
+        TestTextCompletionProcessor processor = new TestTextCompletionProcessor();
 
-	/**
-	 * Tests how the processor determines the proposal mode.
-	 */
-	public void testDeterminingNoneProposalMode() {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor();
-
-		int mode = processor.determineProposalMode("<project><prop bla", 18, "bla"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_NONE, mode);
-		mode = processor.determineProposalMode("<project default=\"hey\"><target name=", 37, "name="); //$NON-NLS-1$ //$NON-NLS-2$
+        int mode = processor.determineProposalMode("<project><prop bla", 18, "bla"); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_NONE, mode);
+		mode= processor.determineProposalMode("<project default=\"hey\"><target name=", 37, "name="); //$NON-NLS-1$ //$NON-NLS-2$
 		assertEquals(TestTextCompletionProcessor.TEST_PROPOSAL_MODE_NONE, mode);
 	}
-
-	/**
-	 * Tests the code completion for tasks in an empty build file (no parent).
-	 */
-	public void testTaskProposalsForEmptyBuildFile() {
+    
+    /**
+     * Tests the code completion for tasks in an empty build file (no parent).
+     */
+    public void testTaskProposalsForEmptyBuildFile() {
 		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("empty.xml")); //$NON-NLS-1$
 
-		ICompletionProposal[] proposals = processor.getBuildFileProposals("", ""); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals(1, proposals.length);
-		assertEquals("project", proposals[0].getDisplayString()); //$NON-NLS-1$
-
-		proposals = processor.getBuildFileProposals("            jl", "jl"); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals(0, proposals.length);
-
-		proposals = processor.getBuildFileProposals("    \n<project></project>", ""); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals(1, proposals.length);
-		processor.dispose();
-	}
-
-	/**
-	 * Tests the code completion for refids (Bug 49830)
-	 */
-	public void testRefidProposals() throws BadLocationException {
+        ICompletionProposal[] proposals = processor.getBuildFileProposals("", ""); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(1, proposals.length);
+        assertEquals("project", proposals[0].getDisplayString()); //$NON-NLS-1$
+        
+        proposals = processor.getBuildFileProposals("            jl", "jl"); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(0, proposals.length);
+        
+        proposals = processor.getBuildFileProposals("    \n<project></project>", ""); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(1, proposals.length);
+        processor.dispose();
+    }
+    
+    /**
+     * Tests the code completion for refids (Bug 49830)
+     */
+    public void testRefidProposals() throws BadLocationException {
 		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("refid.xml")); //$NON-NLS-1$
 
-		int lineNumber = 9;
-		int columnNumber = 16;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
-		// for sure should have project.class.path and project.class.path2 but project.class.path2
-		// should not present itself as a possible reference
-		assertTrue(proposals.length >= 2);
-		assertContains("project.class.path", proposals); //$NON-NLS-1$
-		assertDoesNotContain("project.class.path2", proposals); //$NON-NLS-1$
-		processor.dispose();
-	}
-
-	/**
-	 * Tests the code completion for custom task that has a boolean attribute
-	 */
-	public void testCustomBooleanProposals() throws BadLocationException {
+		int lineNumber= 9;
+    	int columnNumber= 16;
+    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
+    	//for sure should have project.class.path and project.class.path2 but project.class.path2 
+    	//should not present itself as a possible reference
+    	assertTrue(proposals.length >= 2);
+    	assertContains("project.class.path", proposals); //$NON-NLS-1$
+    	assertDoesNotContain("project.class.path2", proposals); //$NON-NLS-1$
+        processor.dispose();
+    }
+    
+    /**
+     * Tests the code completion for custom task that has a boolean attribute
+     */
+    public void testCustomBooleanProposals() throws BadLocationException {
 		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("customBoolean.xml")); //$NON-NLS-1$
 
-		int lineNumber = 2;
-		int columnNumber = 44;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
-		// true false yes no on off
-		assertTrue(proposals.length == 6);
-		assertContains("true", proposals); //$NON-NLS-1$
-		assertContains("no", proposals); //$NON-NLS-1$
-		processor.dispose();
-	}
-
-	/**
-	 * Tests the code completion for custom task that has an enumerated attribute
-	 */
-	public void testCustomEnumeratedProposals() throws BadLocationException {
+		int lineNumber= 2;
+    	int columnNumber= 44;
+    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
+    	//true false yes no on off
+    	assertTrue(proposals.length == 6);
+    	assertContains("true", proposals); //$NON-NLS-1$
+    	assertContains("no", proposals); //$NON-NLS-1$
+        processor.dispose();
+    }
+    
+     /**
+     * Tests the code completion for custom task that has an enumerated attribute
+     */
+    public void testCustomEnumeratedProposals() throws BadLocationException {
 		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("extensionPointTaskSepVM.xml")); //$NON-NLS-1$
-		int lineNumber = 2;
-		int columnNumber = 24;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), "c"); //$NON-NLS-1$
-		assertEquals("Incorrect number of proposals", 2, proposals.length); //$NON-NLS-1$
-		assertContains("cool", proposals); //$NON-NLS-1$
-		assertContains("chillin", proposals); //$NON-NLS-1$
-		assertDoesNotContain("awesome", proposals); //$NON-NLS-1$
-		processor.dispose();
-	}
-
-	/**
-	 * Tests the code completion for custom task that have a reference attribute
-	 */
-	public void testCustomReferenceProposals() throws BadLocationException {
+		int lineNumber= 2;
+    	int columnNumber= 24;
+    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), "c"); //$NON-NLS-1$
+    	assertEquals("Incorrect number of proposals", 2, proposals.length); //$NON-NLS-1$
+    	assertContains("cool", proposals); //$NON-NLS-1$
+    	assertContains("chillin", proposals); //$NON-NLS-1$
+    	assertDoesNotContain("awesome", proposals); //$NON-NLS-1$
+        processor.dispose();
+    }
+    
+    /**
+     * Tests the code completion for custom task that have a reference attribute
+     */
+    public void testCustomReferenceProposals() throws BadLocationException {
 		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("extensionPointTaskSepVM.xml")); //$NON-NLS-1$
-		int lineNumber = 2;
-		int columnNumber = 41;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), "e"); //$NON-NLS-1$
-		assertEquals("Incorrect number of proposals", 1, proposals.length); //$NON-NLS-1$
-		// the reference to the project by name
-		assertContains("Extension Point Task", proposals); //$NON-NLS-1$
-		processor.dispose();
-	}
-
-	/**
-	 * Tests the code completion for nested element attributes of custom tasks
-	 */
+		int lineNumber= 2;
+    	int columnNumber= 41;
+    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), "e"); //$NON-NLS-1$
+    	assertEquals("Incorrect number of proposals", 1, proposals.length); //$NON-NLS-1$
+    	//the reference to the project by name
+    	assertContains("Extension Point Task", proposals); //$NON-NLS-1$
+        processor.dispose();
+    }
+    
+    /**
+     * Tests the code completion for nested element attributes of custom tasks
+     */
 	public void testNestedElementAttributeProposals() throws BadLocationException {
 		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("nestedElementAttributes.xml")); //$NON-NLS-1$
-		int lineNumber = 4;
-		int columnNumber = 18;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
-		assertTrue(proposals.length == 1);
-		assertContains("works", proposals); //$NON-NLS-1$
-		processor.dispose();
+		int lineNumber= 4;
+    	int columnNumber= 18;
+    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
+    	assertTrue(proposals.length == 1);
+    	assertContains("works", proposals); //$NON-NLS-1$
+        processor.dispose();
 	}
-
+	
 	/**
-	 * Tests the code completion for nested elements
-	 */
+     * Tests the code completion for nested elements
+     */
 	public void testNestedElementProposals() throws BadLocationException {
 		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("nestedElementAttributes.xml")); //$NON-NLS-1$
-		int lineNumber = 4;
-		int columnNumber = 3;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
-		assertTrue(proposals.length == 1);
-		assertContains("nestedelement", proposals); //$NON-NLS-1$
-		processor.dispose();
+		int lineNumber= 4;
+    	int columnNumber= 3;
+    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
+    	assertTrue(proposals.length == 1);
+    	assertContains("nestedelement", proposals); //$NON-NLS-1$
+        processor.dispose();
 	}
-
+	
 	/**
-	 * Tests the code completion for nested elements that no templates are presented Bug 76414
-	 */
+     * Tests the code completion for nested elements that no templates are presented
+     * Bug 76414
+     */
 	public void testNestedElementTemplateProposals() throws BadLocationException, PartInitException {
 		try {
-			IFile file = getIFile("nestedElementAttributes.xml"); //$NON-NLS-1$
-			AntEditor editor = (AntEditor) EditorTestHelper.openInEditor(file, ANT_EDITOR_ID, true);
-			TestTextCompletionProcessor processor = new TestTextCompletionProcessor(editor);
-			int lineNumber = 4;
-			int lineOffset = editor.getDocumentProvider().getDocument(editor.getEditorInput()).getLineOffset(lineNumber);
-
-			editor.getSelectionProvider().setSelection(new TextSelection(lineOffset, 0));
-
-			ICompletionProposal[] proposals = processor.computeCompletionProposals(lineOffset);
-
-			assertTrue("No templates are relevant at the current position. Found: " + proposals.length, proposals.length == 1); //$NON-NLS-1$
-		}
-		finally {
+			IFile file= getIFile("nestedElementAttributes.xml"); //$NON-NLS-1$
+			AntEditor editor= (AntEditor)EditorTestHelper.openInEditor(file, ANT_EDITOR_ID, true);
+			TestTextCompletionProcessor processor= new TestTextCompletionProcessor(editor);
+			int lineNumber= 4;
+	    	int lineOffset= editor.getDocumentProvider().getDocument(editor.getEditorInput()).getLineOffset(lineNumber);
+	    	
+	    	editor.getSelectionProvider().setSelection(new TextSelection(lineOffset, 0));
+	    	
+	    	ICompletionProposal[] proposals= processor.computeCompletionProposals(lineOffset);
+	    	
+	    	assertTrue("No templates are relevant at the current position. Found: " + proposals.length, proposals.length == 1); //$NON-NLS-1$
+		} finally {
 			EditorTestHelper.closeAllEditors();
 		}
 	}
-
+	
 	/**
-	 * Tests the code completion for nested element attribute values of custom tasks
-	 */
+     * Tests the code completion for nested element attribute values of custom tasks
+     */
 	public void testNestedElementAttributeValueProposals() throws BadLocationException {
 		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("nestedElementAttributes.xml")); //$NON-NLS-1$
-		int lineNumber = 4;
-		int columnNumber = 25;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
-		assertEquals("There should be 6 completion proposals", proposals.length, 6); //$NON-NLS-1$
-		assertContains("true", proposals); //$NON-NLS-1$
-		processor.dispose();
+    	int lineNumber= 4;
+    	int columnNumber= 25;
+    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
+    	assertTrue(proposals.length == 6); //the boolean proposals
+    	assertContains("true", proposals); //$NON-NLS-1$
+        processor.dispose();
 	}
-
+	
 	/**
-	 * Tests the code completion when a parse error occurs in the project definition bug 63151
-	 */
+     * Tests the code completion when a parse error occurs in the project definition
+     * bug 63151
+     */
 	public void testBadProjectProposals() throws BadLocationException {
 		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("badproject.xml")); //$NON-NLS-1$
-		int lineNumber = 0;
-		int columnNumber = 10;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), "n"); //$NON-NLS-1$
-		assertTrue(proposals.length == 1);
-		assertContains(IAntCoreConstants.NAME, proposals);
-		processor.dispose();
+    	int lineNumber= 0;
+    	int columnNumber= 10;
+    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), "n"); //$NON-NLS-1$
+    	assertTrue(proposals.length == 1); 
+    	assertContains(IAntCoreConstants.NAME, proposals);
+        processor.dispose();
 	}
-
+	
 	/**
-	 * Tests the code completion for attribute value proposals both with and without leading whitespace
-	 */
+     * Tests the code completion for attribute value proposals both with and without leading whitespace
+     */
 	public void testAttributeValueProposals() throws BadLocationException {
 		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("javac.xml")); //$NON-NLS-1$
-		int lineNumber = 2;
-		int columnNumber = 29;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
-		assertTrue(proposals.length == 6); // boolean proposals
-		assertContains("false", proposals); //$NON-NLS-1$
-
-		lineNumber = 3;
-		columnNumber = 19;
-		lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
-		assertTrue(proposals.length == 6); // boolean proposals
-		assertContains("true", proposals); //$NON-NLS-1$
-
-		lineNumber = 4;
-		columnNumber = 22;
-		lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
-		assertTrue(proposals.length == 6); // boolean proposals
-		assertContains("no", proposals); //$NON-NLS-1$
-		processor.dispose();
+    	int lineNumber= 2;
+    	int columnNumber= 29;
+    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
+    	assertTrue(proposals.length == 6); //boolean proposals 
+    	assertContains("false", proposals); //$NON-NLS-1$
+    	
+    	lineNumber= 3;
+    	columnNumber= 19;
+    	lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
+    	assertTrue(proposals.length == 6); //boolean proposals 
+    	assertContains("true", proposals); //$NON-NLS-1$
+    	
+    	lineNumber= 4;
+    	columnNumber= 22;
+    	lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
+    	assertTrue(proposals.length == 6); //boolean proposals 
+    	assertContains("no", proposals); //$NON-NLS-1$
+        processor.dispose();
 	}
-
+	
 	/**
-	 * Tests the code completion for an empty buildfile
-	 */
+     * Tests the code completion for an empty buildfile
+     */
 	public void testEmptyBuildfileProposals() throws PartInitException {
 		try {
-			IFile file = getIFile("empty.xml"); //$NON-NLS-1$
-			AntEditor editor = (AntEditor) EditorTestHelper.openInEditor(file, ANT_EDITOR_ID, true);
-			TestTextCompletionProcessor processor = new TestTextCompletionProcessor(editor);
-
-			editor.getSelectionProvider().setSelection(TextSelection.emptySelection());
-
-			ICompletionProposal[] proposals = processor.computeCompletionProposals(0);
-			assertTrue("Four proposals are relevant at the current position. Found: " + proposals.length, proposals.length == 4); //$NON-NLS-1$
-			assertContains("project", proposals); //$NON-NLS-1$
-			assertContains("Buildfile template - simple buildfile with two targets", proposals); //$NON-NLS-1$
-			processor.dispose();
-		}
-		finally {
+			IFile file= getIFile("empty.xml"); //$NON-NLS-1$
+			AntEditor editor= (AntEditor)EditorTestHelper.openInEditor(file, ANT_EDITOR_ID, true);
+			TestTextCompletionProcessor processor= new TestTextCompletionProcessor(editor);
+			
+	    	editor.getSelectionProvider().setSelection(TextSelection.emptySelection());
+	    	
+	    	ICompletionProposal[] proposals= processor.computeCompletionProposals(0);
+	    	assertTrue("Four proposals are relevant at the current position. Found: " + proposals.length, proposals.length == 4); //$NON-NLS-1$
+	    	assertContains("project", proposals); //$NON-NLS-1$
+	    	assertContains("Buildfile template - simple buildfile with two targets", proposals); //$NON-NLS-1$
+            processor.dispose();
+		} finally {
 			EditorTestHelper.closeAllEditors();
 		}
 	}
-
-	/**
-	 * Tests the code completion for refids (Bug 65480)
-	 */
-	public void testJavacReferencesProposals() throws BadLocationException {
+	
+	 /**
+     * Tests the code completion for refids (Bug 65480)
+     */
+    public void testJavacReferencesProposals() throws BadLocationException {
 		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("refid.xml")); //$NON-NLS-1$
 
-		int lineNumber = 16;
-		int columnNumber = 24;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
-		// for sure should have project.class.path and project.class.path2
-		assertTrue(proposals.length >= 2);
-		assertContains("project.class.path", proposals); //$NON-NLS-1$
-		assertContains("project.class.path2", proposals); //$NON-NLS-1$
-
-		lineNumber = 17;
-		columnNumber = 25;
-		lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
-		// for sure should have project.class.path and project.class.path2
-		assertTrue(proposals.length >= 2);
-		assertContains("project.class.path", proposals); //$NON-NLS-1$
-		assertContains("project.class.path2", proposals); //$NON-NLS-1$
-
-		lineNumber = 18;
-		columnNumber = 26;
-		lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
-		// for sure should have project.class.path and project.class.path2
-		assertTrue(proposals.length >= 2);
-		assertContains("project.class.path", proposals); //$NON-NLS-1$
-		assertContains("project.class.path2", proposals); //$NON-NLS-1$
-		processor.dispose();
-	}
-
-	/**
-	 * Tests the code completion for the default target of a project (Bug 78030)
-	 */
-	public void testProjectDefaultProposals() throws BadLocationException {
+		int lineNumber= 16;
+    	int columnNumber= 24;
+    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
+    	//for sure should have project.class.path and project.class.path2
+    	assertTrue(proposals.length >= 2);
+    	assertContains("project.class.path", proposals); //$NON-NLS-1$
+    	assertContains("project.class.path2", proposals); //$NON-NLS-1$
+    	
+    	lineNumber= 17;
+    	columnNumber= 25;
+    	lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
+    	//for sure should have project.class.path and project.class.path2
+    	assertTrue(proposals.length >= 2);
+    	assertContains("project.class.path", proposals); //$NON-NLS-1$
+    	assertContains("project.class.path2", proposals); //$NON-NLS-1$
+    	
+    	lineNumber= 18;
+    	columnNumber= 26;
+    	lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
+    	//for sure should have project.class.path and project.class.path2
+    	assertTrue(proposals.length >= 2);
+    	assertContains("project.class.path", proposals); //$NON-NLS-1$
+    	assertContains("project.class.path2", proposals); //$NON-NLS-1$
+        processor.dispose();
+    }
+    
+	 /**
+     * Tests the code completion for the default target of a project (Bug 78030)
+     */
+    public void testProjectDefaultProposals() throws BadLocationException {
 		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml")); //$NON-NLS-1$
 
-		int lineNumber = 1;
-		int columnNumber = 49;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
-		// includes all the public targets
-		assertTrue(proposals.length == 8);
-		assertContains("main", proposals); //$NON-NLS-1$
-		assertContains("testUnless", proposals); //$NON-NLS-1$
-		processor.dispose();
-	}
-
-	/**
-	 * Tests the code completion for project attributes (bug 82031)
-	 */
-	public void testProjectAttributeProposals() throws BadLocationException {
+		int lineNumber= 1;
+    	int columnNumber= 49;
+    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
+    	//includes all the public targets
+    	assertTrue(proposals.length == 8);
+    	assertContains("main", proposals); //$NON-NLS-1$
+    	assertContains("testUnless", proposals); //$NON-NLS-1$
+        processor.dispose();
+    }
+    
+    /**
+     * Tests the code completion for project attributes (bug 82031)
+     */
+    public void testProjectAttributeProposals() throws BadLocationException {
 		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("buildtest1.xml")); //$NON-NLS-1$
 
-		int lineNumber = 1;
-		int columnNumber = 9;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
-		// includes all the project attributes
-		assertTrue(proposals.length == 3);
-		assertContains(IAntCoreConstants.NAME, proposals);
-		assertContains("default", proposals); //$NON-NLS-1$
-		assertContains("basedir", proposals); //$NON-NLS-1$
+		int lineNumber= 1;
+    	int columnNumber= 9;
+    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
+    	//includes all the project attributes
+    	assertTrue(proposals.length == 3);
+    	assertContains(IAntCoreConstants.NAME, proposals);
+    	assertContains("default", proposals); //$NON-NLS-1$
+    	assertContains("basedir", proposals); //$NON-NLS-1$
+    	
+    	columnNumber= 10;
+    	lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	proposals = processor.getProposalsFromDocument(getCurrentDocument(), "n"); //$NON-NLS-1$
+    	assertTrue(proposals.length == 1);
+    	assertContains(IAntCoreConstants.NAME, proposals);
+        processor.dispose();
+    }
+    
+    public void testExtensionPoint() throws BadLocationException {
+    	TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("antextpoint1.xml")); //$NON-NLS-1$
 
-		columnNumber = 10;
-		lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		proposals = processor.getProposalsFromDocument(getCurrentDocument(), "n"); //$NON-NLS-1$
-		assertTrue(proposals.length == 1);
-		assertContains(IAntCoreConstants.NAME, proposals);
-		processor.dispose();
-	}
+		int lineNumber= 2;
+    	int columnNumber= 3;
+    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), "ext"); //$NON-NLS-1$
+    	assertTrue(proposals.length == 3);
+    	assertContains("extension-point", proposals); //$NON-NLS-1$
+    	processor.dispose();
+    }
 
-	public void testExtensionPoint() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("antextpoint1.xml")); //$NON-NLS-1$
+    public void testExtensionOf() throws BadLocationException {
+    	TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("antextpoint2.xml")); //$NON-NLS-1$
 
-		int lineNumber = 2;
-		int columnNumber = 3;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), "ext"); //$NON-NLS-1$
-		assertTrue(proposals.length == 3);
-		assertContains("extension-point", proposals); //$NON-NLS-1$
-		processor.dispose();
-	}
-
-	public void testExtensionOf() throws BadLocationException {
-		TestTextCompletionProcessor processor = new TestTextCompletionProcessor(getAntModel("antextpoint2.xml")); //$NON-NLS-1$
-
-		int lineNumber = 3;
-		int columnNumber = 38;
-		int lineOffset = getCurrentDocument().getLineOffset(lineNumber);
-		processor.setLineNumber(lineNumber);
-		processor.setColumnNumber(columnNumber);
-		processor.setCursorPosition(lineOffset + columnNumber);
-		ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
-		assertTrue(proposals.length == 1);
-		assertContains("ep-B", proposals); //$NON-NLS-1$
-		processor.dispose();
-	}
+		int lineNumber= 3;
+    	int columnNumber= 38;
+    	int lineOffset= getCurrentDocument().getLineOffset(lineNumber);
+    	processor.setLineNumber(lineNumber);
+    	processor.setColumnNumber(columnNumber);
+    	processor.setCursorPosition(lineOffset + columnNumber);
+    	ICompletionProposal[] proposals = processor.getProposalsFromDocument(getCurrentDocument(), ""); //$NON-NLS-1$
+    	assertTrue(proposals.length == 1);
+    	assertContains("ep-B", proposals); //$NON-NLS-1$
+    	processor.dispose();
+    }
 }
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlTagFormatterTest.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlTagFormatterTest.java
index 3d30dd4..85ed28e 100644
--- a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlTagFormatterTest.java
+++ b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlTagFormatterTest.java
@@ -13,334 +13,363 @@
 
 import java.util.List;
 
-import org.eclipse.ant.internal.ui.editor.formatter.FormattingPreferences;
 import org.eclipse.ant.internal.ui.editor.formatter.XmlTagFormatter;
+import org.eclipse.ant.internal.ui.editor.formatter.FormattingPreferences;
 import org.eclipse.ant.internal.ui.editor.formatter.XmlTagFormatter.AttributePair;
 import org.eclipse.ant.tests.ui.testplugin.AbstractAntUITest;
 
 public class XmlTagFormatterTest extends AbstractAntUITest {
 
-	// TODO This test is too low level and too tightly coupled to internals.
+    // TODO This test is too low level and too tightly coupled to internals.
 
-	/* ---------------- Test Fixture ---------------- */
-	// In case anyone wonders why many people recommend against testing
-	// privates, I produce this example...
-	private static class InnerClassFactory extends XmlTagFormatter {
+    /* ---------------- Test Fixture ---------------- */
+    // In case anyone wonders why many people recommend against testing
+    // privates, I produce this example...
+    private static class InnerClassFactory extends XmlTagFormatter {
 
-		public static class ParseException extends XmlTagFormatter.ParseException {
+        public static class ParseException extends XmlTagFormatter.ParseException {
 
 			private static final long serialVersionUID = 1L;
 
 			public ParseException(String message) {
-				super(message);
-			}
-		}
+                super(message);
+            }
+        }
 
-		public static class Tag extends XmlTagFormatter.Tag {
-			// do nothing
-		}
+        public static class Tag extends XmlTagFormatter.Tag {
+        	//do nothing
+        }
 
-		public static class TagFormatter extends XmlTagFormatter.TagFormatter {
+        public static class TagFormatter extends XmlTagFormatter.TagFormatter {
 
-			@Override
-			public boolean lineRequiresWrap(String line, int lineWidth, int tabWidth) {
-				return super.lineRequiresWrap(line, lineWidth, tabWidth);
-			}
+            public boolean lineRequiresWrap(String line, int lineWidth,
+                    int tabWidth) {
+                return super.lineRequiresWrap(line, lineWidth, tabWidth);
+            }
 
-			@Override
-			public int tabExpandedLineWidth(String line, int tabWidth) {
-				return super.tabExpandedLineWidth(line, tabWidth);
-			}
+            public int tabExpandedLineWidth(String line, int tabWidth) {
+                return super.tabExpandedLineWidth(line, tabWidth);
+            }
 
-			public String wrapTag(Tag tag, FormattingPreferences prefs, String indent, String lineDelimiter) {
-				return super.wrapTag(tag, prefs, indent, lineDelimiter);
-			}
-		}
+            public String wrapTag(Tag tag, FormattingPreferences prefs,
+                    String indent, String lineDelimiter) {
+                return super.wrapTag(tag, prefs, indent, lineDelimiter);
+            }
+        }
 
-		public static class TagParser extends XmlTagFormatter.TagParser {
+        public static class TagParser extends XmlTagFormatter.TagParser {
 
-			@Override
-			public String getElementName(String tagText) throws XmlTagFormatter.ParseException {
-				return super.getElementName(tagText);
-			}
+            public String getElementName(String tagText)
+                    throws XmlTagFormatter.ParseException {
+                return super.getElementName(tagText);
+            }
 
-			@Override
-			public List<AttributePair> getAttibutes(String elementText) throws XmlTagFormatter.ParseException {
-				return super.getAttibutes(elementText);
-			}
-		}
+            public List<AttributePair> getAttibutes(String elementText)
+                    throws XmlTagFormatter.ParseException {
+                return super.getAttibutes(elementText);
+            }
+        }
 
-		public static Tag createTag() {
-			return new Tag();
-		}
+        public static Tag createTag() {
+            return new Tag();
+        }
 
-		public static TagFormatter createTagFormatter() {
-			return new TagFormatter();
-		}
+        public static TagFormatter createTagFormatter() {
+            return new TagFormatter();
+        }
 
-		public static TagParser createTagParser() {
-			return new TagParser();
-		}
+        public static TagParser createTagParser() {
+            return new TagParser();
+        }
 
-		public static void validateAttributePair(Object attributePair, String attribute, String value) {
-			XmlTagFormatter.AttributePair pair = (XmlTagFormatter.AttributePair) attributePair;
-			assertEquals(attribute, pair.getAttribute());
-			assertEquals(value, pair.getValue());
-		}
-	}
+        public static void validateAttributePair(Object attributePair, String attribute, String value) {
+            XmlTagFormatter.AttributePair pair = (XmlTagFormatter.AttributePair) attributePair;
+            assertEquals(attribute, pair.getAttribute());
+            assertEquals(value, pair.getValue());
+        }
+    }
 
-	public XmlTagFormatterTest(String name) {
-		super(name);
-	}
+    public XmlTagFormatterTest(String name) {
+        super(name);
+    }
 
-	private FormattingPreferences getPreferences(final boolean wrapLongTags, final boolean alignCloseChar, final int maxLineWidth) {
+    private FormattingPreferences getPreferences(final boolean wrapLongTags,
+            final boolean alignCloseChar, final int maxLineWidth) {
 
-		return new FormattingPreferences() {
+        return new FormattingPreferences() {
 
-			@Override
-			public boolean alignElementCloseChar() {
-				return alignCloseChar;
-			}
+            public boolean alignElementCloseChar() {
+                return alignCloseChar;
+            }
 
-			@Override
-			public boolean wrapLongTags() {
-				return wrapLongTags;
-			}
+            public boolean wrapLongTags() {
+                return wrapLongTags;
+            }
 
-			@Override
-			public int getMaximumLineWidth() {
-				return maxLineWidth;
-			}
-		};
-	}
+            public int getMaximumLineWidth() {
+                return maxLineWidth;
+            }
+        };
+    }
 
-	private void simpleTest(String source, String target, FormattingPreferences prefs, String indent, String lineDelimiter) throws Exception {
+    private void simpleTest(String source, String target,
+            FormattingPreferences prefs, String indent, String lineDelimiter) throws Exception {
+    	
+        String result = XmlTagFormatter.format(source, prefs, indent, lineDelimiter);
+        assertEquals(target, result);
+    }
 
-		String result = XmlTagFormatter.format(source, prefs, indent, lineDelimiter);
-		assertEquals(target, result);
-	}
+    /* ---------------- Test Methods ---------------- */
 
-	/* ---------------- Test Methods ---------------- */
+    public void testParserGetElementName() throws Exception {
 
-	public void testParserGetElementName() throws Exception {
+        InnerClassFactory.TagParser tagParser = InnerClassFactory
+                .createTagParser();
 
-		InnerClassFactory.TagParser tagParser = InnerClassFactory.createTagParser();
+        String elementFixture1 = "<myElement attribute1=\"value1\" attribute2=\"value2\" />"; //$NON-NLS-1$
+        assertEquals("myElement", tagParser.getElementName(elementFixture1)); //$NON-NLS-1$
 
-		String elementFixture1 = "<myElement attribute1=\"value1\" attribute2=\"value2\" />"; //$NON-NLS-1$
-		assertEquals("myElement", tagParser.getElementName(elementFixture1)); //$NON-NLS-1$
+        String elementFixture2 = "<myElement\t\nattribute1=\"value1\" attribute2=\"value2\" />"; //$NON-NLS-1$
+        assertEquals("myElement", tagParser.getElementName(elementFixture2)); //$NON-NLS-1$
 
-		String elementFixture2 = "<myElement\t\nattribute1=\"value1\" attribute2=\"value2\" />"; //$NON-NLS-1$
-		assertEquals("myElement", tagParser.getElementName(elementFixture2)); //$NON-NLS-1$
+        assertEquals("x", tagParser.getElementName("<x/>")); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals("x", tagParser.getElementName("<x>")); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals("x:y", tagParser.getElementName("<x:y/>")); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals("x:y", tagParser.getElementName("<x:y abc/>")); //$NON-NLS-1$ //$NON-NLS-2$
 
-		assertEquals("x", tagParser.getElementName("<x/>")); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("x", tagParser.getElementName("<x>")); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("x:y", tagParser.getElementName("<x:y/>")); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("x:y", tagParser.getElementName("<x:y abc/>")); //$NON-NLS-1$ //$NON-NLS-2$
+        Exception e1 = null;
+        try {
+            tagParser.getElementName("<>"); //$NON-NLS-1$
+        } catch (Exception e) {
+            e1 = e;
+        }
+        assertNotNull(e1);
+        assertTrue(e1.getClass().isAssignableFrom(
+                InnerClassFactory.ParseException.class));
 
-		Exception e1 = null;
-		try {
-			tagParser.getElementName("<>"); //$NON-NLS-1$
-		}
-		catch (Exception e) {
-			e1 = e;
-		}
-		assertNotNull(e1);
-		assertTrue(e1.getClass().isAssignableFrom(InnerClassFactory.ParseException.class));
+        Exception e2 = null;
+        try {
+            tagParser.getElementName("<>"); //$NON-NLS-1$
+        } catch (Exception e) {
+            e2 = e;
+        }
+        assertNotNull(e2);
+        assertTrue(e2.getClass().isAssignableFrom(
+                InnerClassFactory.ParseException.class));
 
-		Exception e2 = null;
-		try {
-			tagParser.getElementName("<>"); //$NON-NLS-1$
-		}
-		catch (Exception e) {
-			e2 = e;
-		}
-		assertNotNull(e2);
-		assertTrue(e2.getClass().isAssignableFrom(InnerClassFactory.ParseException.class));
+    }
 
-	}
+    public void testParserGetAttributes() throws Exception {
+        InnerClassFactory.TagParser tagParser = InnerClassFactory.createTagParser();
 
-	public void testParserGetAttributes() throws Exception {
-		InnerClassFactory.TagParser tagParser = InnerClassFactory.createTagParser();
+        List<AttributePair> attributePairs;
 
-		List<AttributePair> attributePairs;
+        // test normal situation
+        attributePairs = tagParser.getAttibutes("<myElement attribute1=\"value1\" attribute2=\"value2\" />"); //$NON-NLS-1$
 
-		// test normal situation
-		attributePairs = tagParser.getAttibutes("<myElement attribute1=\"value1\" attribute2=\"value2\" />"); //$NON-NLS-1$
+        assertEquals(2, attributePairs.size());
+        InnerClassFactory.validateAttributePair(attributePairs.get(0),
+                "attribute1", "value1"); //$NON-NLS-1$ //$NON-NLS-2$
+        InnerClassFactory.validateAttributePair(attributePairs.get(1),
+                "attribute2", "value2"); //$NON-NLS-1$ //$NON-NLS-2$
 
-		assertEquals(2, attributePairs.size());
-		InnerClassFactory.validateAttributePair(attributePairs.get(0), "attribute1", "value1"); //$NON-NLS-1$ //$NON-NLS-2$
-		InnerClassFactory.validateAttributePair(attributePairs.get(1), "attribute2", "value2"); //$NON-NLS-1$ //$NON-NLS-2$
+        
+        // test with extra whitespace and funny quotes
+        attributePairs = tagParser.getAttibutes("<myElement \nattribute1 =  'value1\"'\nattribute2\t=\"value2'\" />"); //$NON-NLS-1$
 
-		// test with extra whitespace and funny quotes
-		attributePairs = tagParser.getAttibutes("<myElement \nattribute1 =  'value1\"'\nattribute2\t=\"value2'\" />"); //$NON-NLS-1$
+        assertEquals(2, attributePairs.size());
+        InnerClassFactory.validateAttributePair(attributePairs.get(0),
+                "attribute1", "value1\""); //$NON-NLS-1$ //$NON-NLS-2$
+        InnerClassFactory.validateAttributePair(attributePairs.get(1),
+                "attribute2", "value2'"); //$NON-NLS-1$ //$NON-NLS-2$
 
-		assertEquals(2, attributePairs.size());
-		InnerClassFactory.validateAttributePair(attributePairs.get(0), "attribute1", "value1\""); //$NON-NLS-1$ //$NON-NLS-2$
-		InnerClassFactory.validateAttributePair(attributePairs.get(1), "attribute2", "value2'"); //$NON-NLS-1$ //$NON-NLS-2$
-
-		// test parse errors - equals in the wrong place
-		Exception e2 = null;
-		try {
-			attributePairs = tagParser.getAttibutes("<myElement attribute1=\"value1\" = attribute2=\"value2\" />"); //$NON-NLS-1$
-		}
-		catch (Exception e) {
-			e2 = e;
-		}
-		assertNotNull(e2);
-		assertTrue(e2.getClass().isAssignableFrom(InnerClassFactory.ParseException.class));
-
-		// test parse errors - quotes in the wrong place
-		Exception e3 = null;
-		try {
-			attributePairs = tagParser.getAttibutes("<myElement attribute1=\"\"value1\"  attribute2=\"value2\" />"); //$NON-NLS-1$
-		}
-		catch (Exception e) {
-			e3 = e;
-		}
-		assertNotNull(e3);
-		assertTrue(e3.getClass().isAssignableFrom(InnerClassFactory.ParseException.class));
-	}
-
-	public void testFormat01() throws Exception {
-		String lineSep = System.getProperty("line.separator"); //$NON-NLS-1$
-		String indent = "\t"; //$NON-NLS-1$
-		String source = "<target name=\"myTargetName\" depends=\"a,b,c,d,e,f,g\" description=\"This is a very long element which ought to be wrapped.\">"; //$NON-NLS-1$
-		String target = "<target name=\"myTargetName\"" + lineSep //$NON-NLS-1$
-				+ indent + "        depends=\"a,b,c,d,e,f,g\"" + lineSep //$NON-NLS-1$
-				+ indent + "        description=\"This is a very long element which ought to be wrapped.\">"; //$NON-NLS-1$
-
-		simpleTest(source, target, getPreferences(true, false, 60), indent, lineSep);
-	}
+// TODO attributes which contain whitespace should throw a parse error
+//       
+//        // test parse errors - whitespace in attribute name
+//        Exception e1 = null;
+//        try {
+//            attributePairs = tagParser
+//                    .getAttibutes("<myElement at tribute1 = \"value1\" attribute2=\"value2\" />");
+//        } catch (Exception e) {
+//            e1 = e;
+//        }
+//        assertNotNull(e1);
+//        assertTrue(e1.getClass().isAssignableFrom(
+//                InnerClassFactory.ParseException.class));
+        
+        
+        // test parse errors - equals in the wrong place
+        Exception e2 = null;
+        try {
+            attributePairs = tagParser.getAttibutes("<myElement attribute1=\"value1\" = attribute2=\"value2\" />"); //$NON-NLS-1$
+        } catch (Exception e) {
+            e2 = e;
+        }
+        assertNotNull(e2);
+        assertTrue(e2.getClass().isAssignableFrom(
+                InnerClassFactory.ParseException.class));
+        
+        
+        // test parse errors - quotes in the wrong place
+        Exception e3 = null;
+        try {
+            attributePairs = tagParser
+                    .getAttibutes("<myElement attribute1=\"\"value1\"  attribute2=\"value2\" />"); //$NON-NLS-1$
+        } catch (Exception e) {
+            e3 = e;
+        }
+        assertNotNull(e3);
+        assertTrue(e3.getClass().isAssignableFrom(InnerClassFactory.ParseException.class));
+    }
 
-	public void testFormat02() throws Exception {
-		String lineSep = System.getProperty("line.separator"); //$NON-NLS-1$
-		String indent = "\t"; //$NON-NLS-1$
-		String source = "<target name=\"myTargetName\" depends=\"a,b,c,d,e,f,g\" description=\"This is a very long element which ought to be wrapped.\">"; //$NON-NLS-1$
-		String target = "<target name=\"myTargetName\"" + lineSep //$NON-NLS-1$
-				+ indent + "        depends=\"a,b,c,d,e,f,g\"" + lineSep //$NON-NLS-1$
-				+ indent + "        description=\"This is a very long element which ought to be wrapped.\"" + lineSep //$NON-NLS-1$
-				+ indent + ">"; //$NON-NLS-1$
+    public void testFormat01() throws Exception {
+    	String lineSep= System.getProperty("line.separator"); //$NON-NLS-1$
+        String indent = "\t"; //$NON-NLS-1$
+        String source = "<target name=\"myTargetName\" depends=\"a,b,c,d,e,f,g\" description=\"This is a very long element which ought to be wrapped.\">"; //$NON-NLS-1$
+        String target = "<target name=\"myTargetName\"" + lineSep //$NON-NLS-1$
+                + indent
+                + "        depends=\"a,b,c,d,e,f,g\"" + lineSep //$NON-NLS-1$
+                + indent
+                + "        description=\"This is a very long element which ought to be wrapped.\">"; //$NON-NLS-1$
 
-		simpleTest(source, target, getPreferences(true, true, 60), indent, lineSep);
-	}
+        simpleTest(source, target, getPreferences(true, false, 60), indent, lineSep);
+    }
 
-	public void testBug73411() throws Exception {
-		String lineSep = System.getProperty("line.separator"); //$NON-NLS-1$
-		String indent = "\t"; //$NON-NLS-1$
-		String source = "<target name='myTargetName' depends=\"a,b,c,d,e,f,g\" description=\'This is a very long element which ought to be \"wrapped\".'>"; //$NON-NLS-1$
-		String target = "<target name='myTargetName'" + lineSep //$NON-NLS-1$
-				+ indent + "        depends=\"a,b,c,d,e,f,g\"" + lineSep //$NON-NLS-1$
-				+ indent + "        description='This is a very long element which ought to be \"wrapped\".'" + lineSep //$NON-NLS-1$
-				+ indent + ">"; //$NON-NLS-1$
+    public void testFormat02() throws Exception {
+    	String lineSep= System.getProperty("line.separator"); //$NON-NLS-1$
+        String indent = "\t"; //$NON-NLS-1$
+        String source = "<target name=\"myTargetName\" depends=\"a,b,c,d,e,f,g\" description=\"This is a very long element which ought to be wrapped.\">"; //$NON-NLS-1$
+        String target = "<target name=\"myTargetName\"" + lineSep //$NON-NLS-1$
+                + indent
+                + "        depends=\"a,b,c,d,e,f,g\"" + lineSep //$NON-NLS-1$
+                + indent
+                + "        description=\"This is a very long element which ought to be wrapped.\"" + lineSep //$NON-NLS-1$
+                + indent + ">"; //$NON-NLS-1$
 
-		simpleTest(source, target, getPreferences(true, true, 60), indent, lineSep);
-	}
+        simpleTest(source, target, getPreferences(true, true, 60), indent, lineSep);
+    }
+    
+    public void testBug73411() throws Exception {
+    	String lineSep= System.getProperty("line.separator"); //$NON-NLS-1$
+        String indent = "\t"; //$NON-NLS-1$
+        String source = "<target name='myTargetName' depends=\"a,b,c,d,e,f,g\" description=\'This is a very long element which ought to be \"wrapped\".'>"; //$NON-NLS-1$
+        String target = "<target name='myTargetName'" + lineSep //$NON-NLS-1$
+                + indent
+                + "        depends=\"a,b,c,d,e,f,g\"" + lineSep //$NON-NLS-1$
+                + indent
+                + "        description='This is a very long element which ought to be \"wrapped\".'" + lineSep //$NON-NLS-1$
+                + indent + ">"; //$NON-NLS-1$
 
-	public void testLineRequiresWrap() throws Exception {
+        simpleTest(source, target, getPreferences(true, true, 60), indent, lineSep);
+    }
 
-		InnerClassFactory.TagFormatter tagFormatter = InnerClassFactory.createTagFormatter();
+    public void testLineRequiresWrap() throws Exception {
 
-		boolean shouldWrap = tagFormatter.lineRequiresWrap("\t\t  <myElement attribute1=\"value1\" attribute2=\"value2\" />", //$NON-NLS-1$
-				70, 8);
-		boolean shouldNotWrap = tagFormatter.lineRequiresWrap("\t\t <myElement attribute1=\"value1\" attribute2=\"value2\" />", //$NON-NLS-1$
-				70, 8);
-		assertTrue(shouldWrap);
-		assertTrue(!shouldNotWrap);
+        InnerClassFactory.TagFormatter tagFormatter = InnerClassFactory.createTagFormatter();
 
-	}
+        boolean shouldWrap = tagFormatter.lineRequiresWrap(
+                        "\t\t  <myElement attribute1=\"value1\" attribute2=\"value2\" />", //$NON-NLS-1$
+                        70, 8);
+        boolean shouldNotWrap = tagFormatter.lineRequiresWrap(
+                        "\t\t <myElement attribute1=\"value1\" attribute2=\"value2\" />", //$NON-NLS-1$
+                        70, 8);
+        assertTrue(shouldWrap);
+        assertTrue(!shouldNotWrap);
 
-	public void testTabExpandedLineWidth() throws Exception {
+    }
 
-		InnerClassFactory.TagFormatter tagFormatter = InnerClassFactory.createTagFormatter();
+    public void testTabExpandedLineWidth() throws Exception {
 
-		assertEquals(20, tagFormatter.tabExpandedLineWidth("\t  1234567890", 8)); //$NON-NLS-1$
-		assertEquals(10, tagFormatter.tabExpandedLineWidth("1234567890", 8)); //$NON-NLS-1$
-		assertEquals(19, tagFormatter.tabExpandedLineWidth("\t1\t2	34567890", 3)); //$NON-NLS-1$
-	}
+        InnerClassFactory.TagFormatter tagFormatter = InnerClassFactory.createTagFormatter();
 
-	public void testTabToStringAndMinimumLength() throws Exception {
-		InnerClassFactory.Tag tag = InnerClassFactory.createTag();
+        assertEquals(20, tagFormatter.tabExpandedLineWidth("\t  1234567890", 8)); //$NON-NLS-1$
+        assertEquals(10, tagFormatter.tabExpandedLineWidth("1234567890", 8)); //$NON-NLS-1$
+        assertEquals(19, tagFormatter.tabExpandedLineWidth("\t1\t2	34567890", 3)); //$NON-NLS-1$
+    }
 
-		tag.setElementName("myElement"); //$NON-NLS-1$
-		tag.setClosed(false);
-		assertEquals("<myElement>", tag.toString()); //$NON-NLS-1$
-		assertEquals(tag.toString().length(), tag.minimumLength());
+    public void testTabToStringAndMinimumLength() throws Exception {
+        InnerClassFactory.Tag tag = InnerClassFactory.createTag();
 
-		tag.setClosed(true);
-		assertEquals("<myElement />", tag.toString()); //$NON-NLS-1$
-		assertEquals(tag.toString().length(), tag.minimumLength());
+        tag.setElementName("myElement"); //$NON-NLS-1$
+        tag.setClosed(false);
+        assertEquals("<myElement>", tag.toString()); //$NON-NLS-1$
+        assertEquals(tag.toString().length(), tag.minimumLength());
 
-		tag.addAttribute("attribute1", "value1", '"'); //$NON-NLS-1$ //$NON-NLS-2$
-		tag.addAttribute("attribute2", "value2", '"'); //$NON-NLS-1$ //$NON-NLS-2$
-		assertEquals("<myElement attribute1=\"value1\" attribute2=\"value2\" />", //$NON-NLS-1$
-				tag.toString());
-		assertEquals(tag.toString().length(), tag.minimumLength());
+        tag.setClosed(true);
+        assertEquals("<myElement />", tag.toString()); //$NON-NLS-1$
+        assertEquals(tag.toString().length(), tag.minimumLength());
 
-		tag.setClosed(false);
-		assertEquals("<myElement attribute1=\"value1\" attribute2=\"value2\">", //$NON-NLS-1$
-				tag.toString());
-		assertEquals(tag.toString().length(), tag.minimumLength());
-	}
+        tag.addAttribute("attribute1", "value1", '"'); //$NON-NLS-1$ //$NON-NLS-2$
+        tag.addAttribute("attribute2", "value2", '"'); //$NON-NLS-1$ //$NON-NLS-2$
+        assertEquals(
+                "<myElement attribute1=\"value1\" attribute2=\"value2\" />", //$NON-NLS-1$
+                tag.toString());
+        assertEquals(tag.toString().length(), tag.minimumLength());
 
-	public void testWrapTag() throws Exception {
+        tag.setClosed(false);
+        assertEquals("<myElement attribute1=\"value1\" attribute2=\"value2\">", //$NON-NLS-1$
+                tag.toString());
+        assertEquals(tag.toString().length(), tag.minimumLength());
+    }
 
-		InnerClassFactory.Tag tag = InnerClassFactory.createTag();
+    public void testWrapTag() throws Exception {
 
-		InnerClassFactory.TagFormatter tagFormatter = InnerClassFactory.createTagFormatter();
+        InnerClassFactory.Tag tag = InnerClassFactory.createTag();
 
-		FormattingPreferences dontAlignCloseChar = new FormattingPreferences() {
+        InnerClassFactory.TagFormatter tagFormatter = InnerClassFactory
+                .createTagFormatter();
 
-			@Override
-			public boolean alignElementCloseChar() {
-				return false;
-			}
-		};
-		FormattingPreferences doAlignCloseChar = new FormattingPreferences() {
+        FormattingPreferences dontAlignCloseChar = new FormattingPreferences() {
 
-			@Override
-			public boolean alignElementCloseChar() {
-				return true;
-			}
-		};
+            public boolean alignElementCloseChar() {
+                return false;
+            }
+        };
+        FormattingPreferences doAlignCloseChar = new FormattingPreferences() {
 
-		tag.setElementName("myElement"); //$NON-NLS-1$
-		tag.addAttribute("attribute1", "value1", '"'); //$NON-NLS-1$ //$NON-NLS-2$
-		tag.addAttribute("attribute2", "value2", '"'); //$NON-NLS-1$ //$NON-NLS-2$
+            public boolean alignElementCloseChar() {
+                return true;
+            }
+        };
 
-		tag.setClosed(true);
+        tag.setElementName("myElement"); //$NON-NLS-1$
+        tag.addAttribute("attribute1", "value1", '"'); //$NON-NLS-1$ //$NON-NLS-2$
+        tag.addAttribute("attribute2", "value2", '"'); //$NON-NLS-1$ //$NON-NLS-2$
 
-		String lineSep = System.getProperty("line.separator"); //$NON-NLS-1$
-		assertEquals("<myElement attribute1=\"value1\"" + lineSep //$NON-NLS-1$
-				+ "\t\t             attribute2=\"value2\" />", tagFormatter //$NON-NLS-1$
-		.wrapTag(tag, dontAlignCloseChar, "\t\t  ", lineSep)); //$NON-NLS-1$
+        tag.setClosed(true);
 
-		assertEquals("<myElement attribute1=\"value1\"" + lineSep //$NON-NLS-1$
-				+ "\t\t             attribute2=\"value2\"" + lineSep + "\t\t  />", //$NON-NLS-1$ //$NON-NLS-2$
-				tagFormatter.wrapTag(tag, doAlignCloseChar, "\t\t  ", lineSep)); //$NON-NLS-1$
+        String lineSep= System.getProperty("line.separator"); //$NON-NLS-1$
+        assertEquals("<myElement attribute1=\"value1\"" + lineSep //$NON-NLS-1$
+                + "\t\t             attribute2=\"value2\" />", tagFormatter //$NON-NLS-1$
+                .wrapTag(tag, dontAlignCloseChar, "\t\t  ", lineSep)); //$NON-NLS-1$
 
-		tag.setClosed(false);
+        assertEquals("<myElement attribute1=\"value1\"" + lineSep //$NON-NLS-1$
+                + "\t\t             attribute2=\"value2\"" + lineSep + "\t\t  />", //$NON-NLS-1$ //$NON-NLS-2$
+                tagFormatter.wrapTag(tag, doAlignCloseChar, "\t\t  ", lineSep)); //$NON-NLS-1$
 
-		assertEquals("<myElement attribute1=\"value1\"" + lineSep //$NON-NLS-1$
-				+ "\t\t             attribute2=\"value2\">", tagFormatter //$NON-NLS-1$
-		.wrapTag(tag, dontAlignCloseChar, "\t\t  ", lineSep)); //$NON-NLS-1$
+        tag.setClosed(false);
 
-		assertEquals("<myElement attribute1=\"value1\"" + lineSep //$NON-NLS-1$
-				+ "\t\t             attribute2=\"value2\"" + lineSep + "\t\t  >", //$NON-NLS-1$ //$NON-NLS-2$
-				tagFormatter.wrapTag(tag, doAlignCloseChar, "\t\t  ", lineSep)); //$NON-NLS-1$
+        assertEquals("<myElement attribute1=\"value1\"" + lineSep //$NON-NLS-1$
+                + "\t\t             attribute2=\"value2\">", tagFormatter //$NON-NLS-1$
+                .wrapTag(tag, dontAlignCloseChar, "\t\t  ", lineSep)); //$NON-NLS-1$
 
-	}
+        assertEquals("<myElement attribute1=\"value1\"" + lineSep //$NON-NLS-1$
+                + "\t\t             attribute2=\"value2\"" + lineSep + "\t\t  >", //$NON-NLS-1$ //$NON-NLS-2$
+                tagFormatter.wrapTag(tag, doAlignCloseChar, "\t\t  ", lineSep)); //$NON-NLS-1$
 
-	public void testBug63558() throws Exception {
+    }
 
+    public void testBug63558() throws Exception {
+		
 		// Ordinarily the double space after the element name would be repaired
 		// but if the formatter is working correctly these examples will be
 		// considered malformed and will be passed through untouched.
-		String lineSep = System.getProperty("line.separator"); //$NON-NLS-1$
+    	 String lineSep= System.getProperty("line.separator"); //$NON-NLS-1$
 		String source1 = "<echo  file=\"foo\">" + lineSep + "&lt;html>&lt;body>&lt;pre>" //$NON-NLS-1$ //$NON-NLS-2$
 				+ "${compilelog}&lt;/pre>&lt;/body>&lt;/html>"; //$NON-NLS-1$
-		FormattingPreferences prefs = getPreferences(true, false, 60);
+		FormattingPreferences prefs = getPreferences(true, false, 60); 
 		simpleTest(source1, source1, prefs, "\t", lineSep); //$NON-NLS-1$
-
+	
 		String source2 = "<echo  file=\"foo\"/bar/baz></echo>"; //$NON-NLS-1$		
 		simpleTest(source2, source2, prefs, "\t", lineSep); //$NON-NLS-1$
 	}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/ModelProjectTests.java b/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/ModelProjectTests.java
index 4479a12..914b9a6 100644
--- a/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/ModelProjectTests.java
+++ b/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/ModelProjectTests.java
@@ -42,7 +42,7 @@
 		assertNotNull("getProperty() did not return 'p1'", p.getProperty("p1")); //$NON-NLS-1$ //$NON-NLS-2$
 		assertNotNull("the property help must have 'p1'", PropertyHelper.getProperty(p, "p1")); //$NON-NLS-1$ //$NON-NLS-2$
 	}
-
+	
 	/**
 	 * Tests {@link AntModelProject#reset()}
 	 * 
@@ -60,9 +60,9 @@
 		assertNull("the description must be null", p.getDescription()); //$NON-NLS-1$
 		assertEquals("The target list must be of size zero", p.getTargets().size(), 0); //$NON-NLS-1$
 	}
-
+	
 	/**
-	 * Tests {@link AntModelProject#getProperty(String)} where the property we want has been set using
+	 * Tests {@link AntModelProject#getProperty(String)} where the property we want has been set using 
 	 * {@link AntModelProject#setNewProperty(String, String)}
 	 * 
 	 * @throws Exception
@@ -72,7 +72,7 @@
 		p.setNewProperty("testGetProprty1", "p1_value"); //$NON-NLS-1$ //$NON-NLS-2$
 		assertNotNull("getProperty() did not return 'testGetProprty1'", p.getProperty("testGetProprty1")); //$NON-NLS-1$ //$NON-NLS-2$
 	}
-
+	
 	/**
 	 * Tests {@link AntModelProject#getProperty(String)} where the property has been set into the user properties
 	 * 
@@ -83,10 +83,10 @@
 		p.setUserProperty("testGetProprty2", "p2_value"); //$NON-NLS-1$ //$NON-NLS-2$
 		assertNotNull("getProperty() did not return 'testGetProprty2'", p.getProperty("testGetProprty2")); //$NON-NLS-1$ //$NON-NLS-2$
 	}
-
+	
 	/**
-	 * Tests {@link AntModelProject#getReference(String)} where the desired ref has been placed in the primary reference map using
-	 * {@link AntModelProject#addReference(String, Object)}
+	 * Tests {@link AntModelProject#getReference(String)} where the desired ref has been placed in the primary reference map
+	 * using {@link AntModelProject#addReference(String, Object)}
 	 * 
 	 * @throws Exception
 	 */
@@ -95,10 +95,10 @@
 		p.addReference("testGetReference1", new Object()); //$NON-NLS-1$
 		assertNotNull("The reference 'testGetReference1' must exist", p.getReference("testGetReference1")); //$NON-NLS-1$ //$NON-NLS-2$
 	}
-
+	
 	/**
-	 * Tests {@link AntModelProject#getReference(String)} where the desired ref has been placed in the secondary 'idrefs' map using
-	 * {@link AntModelProject#addIdReference(String, Object)}
+	 * Tests {@link AntModelProject#getReference(String)} where the desired ref has been placed in the 
+	 * secondary 'idrefs' map using {@link AntModelProject#addIdReference(String, Object)}
 	 * 
 	 * @throws Exception
 	 */
@@ -107,10 +107,11 @@
 		p.addIdReference("testGetReference2", new Object()); //$NON-NLS-1$
 		assertNotNull("the reference 'testGetReference2' must exist", p.getReference("testGetReference2")); //$NON-NLS-1$ //$NON-NLS-2$
 	}
-
+	
 	/**
-	 * Tests {@link AntModelProject#getReference(String)} where the desired ref is in the secondary 'idrefs' map and is an {@link UnknownElement}
-	 * 
+	 * Tests {@link AntModelProject#getReference(String)} where the desired ref is in the secondary 'idrefs' map 
+	 * and is an {@link UnknownElement}
+	 *  
 	 * @throws Exception
 	 */
 	public void testGetReference3() throws Exception {
@@ -124,10 +125,10 @@
 		assertNotNull("the reference 'testGetReference3' must exist", ref); //$NON-NLS-1$
 		assertTrue("the reference must be a String", ref instanceof String); //$NON-NLS-1$
 	}
-
+	
 	/**
-	 * Tests {@link AntModelProject#getProperties()} such that all properties (user and 'normal') are returned in one call to
-	 * {@link AntModelProject#getProperties()}
+	 * Tests {@link AntModelProject#getProperties()} such that all properties (user and 'normal') are returned
+	 * in one call to {@link AntModelProject#getProperties()}
 	 * 
 	 * @throws Exception
 	 */
@@ -136,13 +137,13 @@
 		p.setProperty("p1", "p1v"); //$NON-NLS-1$ //$NON-NLS-2$
 		p.setProperty("p2", "p2v"); //$NON-NLS-1$ //$NON-NLS-2$
 		p.setUserProperty("p3", "p3v"); //$NON-NLS-1$ //$NON-NLS-2$
-		// 3 above and 'basedir'
+		//3 above and 'basedir'
 		assertEquals("there must be 4 properties returned", p.getProperties().size(), 4); //$NON-NLS-1$
 	}
-
+	
 	/**
-	 * Tests {@link AntModelProject#createClassLoader(org.apache.tools.ant.types.Path)} such that only one classloader is created for a given path -
-	 * classloaders are cached per-Path
+	 * Tests {@link AntModelProject#createClassLoader(org.apache.tools.ant.types.Path)} such that only one 
+	 * classloader is created for a given path - classloaders are cached per-Path
 	 * 
 	 * @throws Exception
 	 */
@@ -151,38 +152,39 @@
 		Path path = new Path(p);
 		AntClassLoader loader = p.createClassLoader(path);
 		assertNotNull("A classloader should have been created", loader); //$NON-NLS-1$
-		// create a 'new' one, where passing null causes the classloader for the project path to be returned
+		//create a 'new' one, where passing null causes the classloader for the project path to be returned
 		AntClassLoader loader2 = p.createClassLoader(null);
 		assertNotNull("A classloader for a null path should return the project classloader", loader2); //$NON-NLS-1$
-		// pointer compare, they should reference the same class loader
+		//pointer compare, they should reference the same class loader
 		assertTrue("The class loaders should be the same object", loader == loader2); //$NON-NLS-1$
 	}
-
+	
 	/**
-	 * Tests {@link AntModelProject#getReferences()} to ensure the map returned is the live map https://bugs.eclipse.org/bugs/show_bug.cgi?id=336936
-	 * 
+	 * Tests {@link AntModelProject#getReferences()} to ensure the map returned is the live map
+	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=336936
 	 * @throws Exception
 	 */
-	public void testGetReferences1() throws Exception {
+	public void testGetReferences1() throws Exception { 
 		AntModelProject p = new AntModelProject();
 		p.addReference("testGetReferences1", new Object()); //$NON-NLS-1$
-		// 2 refs, ant.propertyHelper is auto-added
+		//2 refs, ant.propertyHelper is auto-added
 		assertEquals("there should be one reference", p.getReferences().size(), 2); //$NON-NLS-1$
+		//TODO ANT-1.9.1 API USE
 		Hashtable<String, Object> ht = p.getReferences();
 		ht.clear();
 		assertEquals("The references table should be empty", p.getReferences().size(), 0); //$NON-NLS-1$
 	}
-
+	
 	/**
 	 * Tests {@link AntModelProject#getCopyOfReferences()}
-	 * 
 	 * @throws Exception
 	 */
 	public void testGetCopyOfReferences1() throws Exception {
 		AntModelProject p = new AntModelProject();
-		// 2 refs, ant.propertyHelper is auto-added
+		//2 refs, ant.propertyHelper is auto-added
 		p.addReference("testGetCopyOfReferences1", new Object()); //$NON-NLS-1$
 		assertEquals("there should be one reference", p.getReferences().size(), 2); //$NON-NLS-1$
+		//TODO ANT-1.9.1 API USE
 		Map<String, Object> ht = p.getCopyOfReferences();
 		ht.clear();
 		assertEquals("There should be one reference", p.getReferences().size(), 2); //$NON-NLS-1$
diff --git a/ant/org.eclipse.ant.tests.ui/META-INF/MANIFEST.MF b/ant/org.eclipse.ant.tests.ui/META-INF/MANIFEST.MF
index 15ead11..4f0e679 100644
--- a/ant/org.eclipse.ant.tests.ui/META-INF/MANIFEST.MF
+++ b/ant/org.eclipse.ant.tests.ui/META-INF/MANIFEST.MF
@@ -22,7 +22,7 @@
  org.eclipse.jface.text;resolution:=optional,
  org.eclipse.ui.workbench.texteditor;resolution:=optional,
  org.eclipse.ui.editors;resolution:=optional,
- org.apache.ant;bundle-version="1.9.2",
+ org.apache.ant;bundle-version="1.8.4",
  org.junit,
  org.eclipse.core.resources,
  org.eclipse.jdt.core,
diff --git a/ant/org.eclipse.ant.tests.ui/buildfiles/buildAntTestsSupportJAR.xml b/ant/org.eclipse.ant.tests.ui/buildfiles/buildAntTestsSupportJAR.xml
index 7080733..bde5127 100644
--- a/ant/org.eclipse.ant.tests.ui/buildfiles/buildAntTestsSupportJAR.xml
+++ b/ant/org.eclipse.ant.tests.ui/buildfiles/buildAntTestsSupportJAR.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
<!--
-     Copyright (c) 2005, 2013 IBM Corporation and others.
+     Copyright (c) 2005, 2006 IBM Corporation and others.
      All rights reserved. This program and the accompanying materials
      are made available under the terms of the Eclipse Public License v1.0
      which accompanies this distribution, and is available at
@@ -13,15 +13,30 @@
 
 	<target name="build" description="Removes all build artifacts, recreates the support jar, and refreshes this plugin's resources" depends="clean, lib/antUITestsSupport.jar"/>
 
-	<target name="init">
+	<target name="init" depends="properties">
+		<property name="version.suffix" value="_3.1.0"/>
 		<property name="temp.folder" value="${basedir}/temp.folder"/>
+		<property name="plugin.destination" value="${basedir}"/>
 		<property name="build.result.folder" value="${basedir}"/>
 	</target>
 
+	<target name="properties" if="eclipse.running">
+		<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
+	</target>
+
 	<target name="lib/antUITestsSupport.jar" depends="init" description= "Builds the support JAR">
 		<property name="destdir" value="${temp.folder}/lib/antUITestsSupport.jar.bin"/>
 		<delete dir="${destdir}"/>
-		<mkdir dir="${destdir}"/>
		<!-- copy necessary resources -->
		<copy todir="${destdir}">
			<fileset dir="${basedir}/test_support_bin/"/>
		</copy>
+		<mkdir dir="${destdir}"/>
+		<!-- compile the source code -->
+		<javac target="1.1" destdir="${destdir}" failonerror="false" verbose="false" debug="on" includeAntRuntime="yes" 
+			classpath="${basedir}/bin;
+			${eclipse.home}/plugins/org.eclipse.ant.core${version.suffix}.jar;
+			${basedir}/../org.eclipse.ant.core/bin
+			${eclipse.home}/plugins/org.eclipse.ant.core${version.suffix}.jar/lib/remoteAnt.jar;
+			${basedir}/../org.eclipse.ant.ui/lib/remoteAnt.jar">
+			<src path="test support/"/>
+		</javac>
 		<mkdir dir="${build.result.folder}/lib"/>
 		<jar destfile="${build.result.folder}/lib/antUITestsSupport.jar" basedir="${destdir}"/>
 		<delete dir="${temp.folder}"/>
diff --git a/ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/AntEditorCompletionProcessor.java b/ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/AntEditorCompletionProcessor.java
index 798835c..99f608f 100644
--- a/ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/AntEditorCompletionProcessor.java
+++ b/ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/AntEditorCompletionProcessor.java
@@ -35,7 +35,6 @@
 import java.util.Map.Entry;
 import java.util.Set;
 
-import org.apache.tools.ant.AntTypeDefinition;
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.ComponentHelper;
 import org.apache.tools.ant.ExtensionPoint;
@@ -155,13 +154,6 @@
 	private final static ICompletionProposal[] NO_PROPOSALS = new ICompletionProposal[0];
 
 	/**
-	 * The fully qualified name of the {@link MacroInstance} class
-	 * 
-	 * @since 3.5.500
-	 */
-	private static final String MACROINSTANCE_NAME = "org.apache.tools.ant.taskdefs.MacroInstance"; //$NON-NLS-1$
-
-	/**
 	 * The line where the cursor sits now.
 	 * <P>
 	 * The first line has index '1'.
@@ -722,9 +714,9 @@
 				}
 			}
 		} else { // possibly a user defined task or type
-			AntTypeDefinition taskClass = getTaskClass(taskName);
+			Class<?> taskClass = getTaskClass(taskName);
 			if (taskClass != null) {
-				if (MACROINSTANCE_NAME.equals(taskClass.getClassName())) {
+				if (taskClass == MacroInstance.class) {
 					addMacroDefAttributeProposals(taskName, prefix, proposals);
 				} else {
 					IntrospectionHelper helper = getIntrospectionHelper(taskClass);
@@ -733,7 +725,7 @@
 					}
 				}
 			} else { // nested user defined element
-				AntTypeDefinition nestedType = getNestedType();
+				Class<?> nestedType = getNestedType();
 				if (nestedType != null) {
 					IntrospectionHelper helper = getIntrospectionHelper(nestedType);
 					if (helper != null) {
@@ -756,7 +748,7 @@
 		}
 	}
 
-	private AntTypeDefinition getNestedType() {
+	private Class<?> getNestedType() {
 		AntElementNode currentNode = antModel.getNode(cursorPosition, false);
 		if (currentNode == null) {
 			return null;
@@ -765,21 +757,18 @@
 		if (parent instanceof AntTaskNode) {
 			String parentName = parent.getName();
 			if (hasNestedElements(parentName)) {
-				AntTypeDefinition taskClass = getTaskClass(parentName);
+				Class<?> taskClass = getTaskClass(parentName);
 				if (taskClass != null) {
 					IntrospectionHelper helper = getIntrospectionHelper(taskClass);
 					if (helper != null) {
+						Class<?> nestedType = null;
 						try {
-							Class<?> nestedType = helper.getElementType(currentNode.getName());
-							// TODO probably a much better way to find the definition of a nested type than this
-							AntTypeDefinition def = new AntTypeDefinition();
-							def.setClass(nestedType);
-							def.setClassName(nestedType.getName());
-							return def;
+							nestedType = helper.getElementType(currentNode.getName());
 						}
 						catch (BuildException be) {
 							// do nothing
 						}
+						return nestedType;
 					}
 				}
 			}
@@ -787,20 +776,15 @@
 		return null;
 	}
 
-	private IntrospectionHelper getIntrospectionHelper(AntTypeDefinition taskClass) {
-		Project p = antModel.getProjectNode().getProject();
-		Class<?> clazz = taskClass.getExposedClass(p);
-		if (clazz != null) {
-			IntrospectionHelper helper = null;
-			try {
-				helper = IntrospectionHelper.getHelper(antModel.getProjectNode().getProject(), clazz);
-			}
-			catch (NoClassDefFoundError e) {
-				// ignore as a task may require additional classpath components
-			}
-			return helper;
+	private IntrospectionHelper getIntrospectionHelper(Class<?> taskClass) {
+		IntrospectionHelper helper = null;
+		try {
+			helper = IntrospectionHelper.getHelper(antModel.getProjectNode().getProject(), taskClass);
 		}
-		return null;
+		catch (NoClassDefFoundError e) {
+			// ignore as a task may require additional classpath components
+		}
+		return helper;
 	}
 
 	private void addMacroDefAttributeProposals(String taskName, String prefix, List<ICompletionProposal> proposals) {
@@ -922,14 +906,14 @@
 				}
 			}
 		} else { // possibly a user defined task or type
-			AntTypeDefinition taskClass = getTaskClass(taskName);
+			Class<?> taskClass = getTaskClass(taskName);
 			if (taskClass != null) {
 				IntrospectionHelper helper = getIntrospectionHelper(taskClass);
 				if (helper != null) {
 					addAttributeValueProposals(helper, attributeName, prefix, proposals);
 				}
 			} else { // nested user defined element
-				AntTypeDefinition nestedType = getNestedType();
+				Class<?> nestedType = getNestedType();
 				if (nestedType != null) {
 					IntrospectionHelper helper = getIntrospectionHelper(nestedType);
 					if (helper != null) {
@@ -1002,7 +986,8 @@
 	protected ICompletionProposal[] getPropertyProposals(IDocument document, String prefix, int aCursorPosition) {
 		List<ICompletionProposal> proposals = new ArrayList<ICompletionProposal>();
 		Map<String, ICompletionProposal> displayStringToProposals = new HashMap<String, ICompletionProposal>();
-		Map<String, Object> properties = findPropertiesFromDocument();
+		// TODO ANT-1.9.1 API USE
+		Map<String, ?> properties = findPropertiesFromDocument();
 
 		Image image = AntUIImages.getImage(IAntUIConstants.IMG_PROPERTY);
 		// Determine replacement length and offset
@@ -1072,7 +1057,7 @@
 		if (areTasksOrTypesValidChildren(parentName)) {
 			// use the definitions in the project as that includes more than what is defined in the DTD
 			Project project = antModel.getProjectNode().getProject();
-			Map<String, AntTypeDefinition> tasksAndTypes = ComponentHelper.getComponentHelper(project).getAntTypeTable();
+			Map<String, Class<?>> tasksAndTypes = ComponentHelper.getComponentHelper(project).getAntTypeTable();
 			createProposals(document, prefix, proposals, tasksAndTypes);
 			if (parentName.equals("project")) { //$NON-NLS-1$
 				if ("target".startsWith(prefix)) { //$NON-NLS-1$
@@ -1100,9 +1085,9 @@
 				}
 			} else {
 				// a nested element of a user defined task/type?
-				AntTypeDefinition taskClass = getTaskClass(parentName);
+				Class<?> taskClass = getTaskClass(parentName);
 				if (taskClass != null) {
-					if (MACROINSTANCE_NAME.equals(taskClass.getClassName())) {
+					if (taskClass == MacroInstance.class) {
 						currentProposalMode = PROPOSAL_MODE_ATTRIBUTE_PROPOSAL;
 						addMacroDefElementProposals(parentName, prefix, proposals);
 					} else {
@@ -1160,7 +1145,7 @@
 		return NO_PROPOSALS;
 	}
 
-	private void createProposals(IDocument document, String prefix, List<ICompletionProposal> proposals, Map<String, AntTypeDefinition> tasks) {
+	private void createProposals(IDocument document, String prefix, List<ICompletionProposal> proposals, Map<String, Class<?>> tasks) {
 		Iterator<String> keys = tasks.keySet().iterator();
 		ICompletionProposal proposal;
 		String key;
@@ -1296,7 +1281,7 @@
 		if (element != null) {
 			return !element.isEmpty();
 		}
-		AntTypeDefinition taskClass = getTaskClass(elementName);
+		Class<?> taskClass = getTaskClass(elementName);
 		if (taskClass != null) {
 			IntrospectionHelper helper = getIntrospectionHelper(taskClass);
 			if (helper != null) {
@@ -1574,12 +1559,12 @@
 		return false;
 	}
 
-	private AntTypeDefinition getTaskClass(String taskName) {
-		AntTypeDefinition clss = null;
+	private Class<?> getTaskClass(String taskName) {
+		Class<?> clss = null;
 		AntProjectNode node = antModel.getProjectNode();
 		if (node != null) {
 			Project antProject = node.getProject();
-			Map<String, AntTypeDefinition> tasksAndTypes = ComponentHelper.getComponentHelper(antProject).getAntTypeTable();
+			Map<String, Class<?>> tasksAndTypes = ComponentHelper.getComponentHelper(antProject).getAntTypeTable();
 			clss = tasksAndTypes.get(taskName);
 			if (clss == null) {
 				clss = tasksAndTypes.get(antModel.getNamespaceCorrectName(taskName));
@@ -1634,7 +1619,7 @@
 	 * 
 	 * @return a map with all the found properties
 	 */
-	private Map<String, Object> findPropertiesFromDocument() {
+	private Map<String, String> findPropertiesFromDocument() {
 		Project project = antModel.getProjectNode().getProject();
 		return project.getProperties();
 	}
diff --git a/ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/formatter/XmlDocumentFormattingStrategy.java b/ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/formatter/XmlDocumentFormattingStrategy.java
index 8248e37..4a75fe9 100644
--- a/ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/formatter/XmlDocumentFormattingStrategy.java
+++ b/ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/formatter/XmlDocumentFormattingStrategy.java
@@ -22,66 +22,61 @@
 import org.eclipse.jface.text.formatter.IFormattingContext;
 
 public class XmlDocumentFormattingStrategy extends ContextBasedFormattingStrategy {
-
+ 
 	/** Documents to be formatted by this strategy */
-	private final LinkedList<IDocument> fDocuments = new LinkedList<IDocument>();
-
+	private final LinkedList<IDocument> fDocuments= new LinkedList<IDocument>();
+    
 	/** access to the preferences store * */
-	private FormattingPreferences prefs;
-
-	private int indent = -1;
-
+	private FormattingPreferences prefs; 
+	
+	private int indent= -1;
+	
 	public XmlDocumentFormattingStrategy() {
-		this.prefs = new FormattingPreferences();
-	}
-
+	    this.prefs = new FormattingPreferences();
+    }
+ 
 	public XmlDocumentFormattingStrategy(FormattingPreferences prefs, int indent) {
-		Assert.isNotNull(prefs);
-		this.prefs = prefs;
-		this.indent = indent;
+	    Assert.isNotNull(prefs);
+	    this.prefs = prefs;
+	    this.indent= indent;
 	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
+	
+	/* (non-Javadoc)
 	 * @see org.eclipse.jface.text.formatter.IFormattingStrategyExtension#format()
 	 */
-	@Override
 	public void format() {
-
-		super.format();
-		final IDocument document = fDocuments.removeFirst();
+ 
+        super.format();
+     	final IDocument document= fDocuments.removeFirst();
 		if (document != null) {
-			// allow formatting of regions, not just the entire document; bug 75611
-			String documentText = document.get();
-			XmlDocumentFormatter formatter = new XmlDocumentFormatter();
-			if (indent != -1) {
-				formatter.setInitialIndent(indent);
-			}
-			formatter.setDefaultLineDelimiter(TextUtilities.getDefaultLineDelimiter(document));
-			String formattedText = formatter.format(documentText, this.prefs);
-			if (formattedText != null && !formattedText.equals(documentText)) {
-				document.set(formattedText);
-			}
+	        // TODO allow formatting of regions, not just the entire document; bug 75611
+	        String documentText = document.get();
+	        XmlDocumentFormatter formatter = new XmlDocumentFormatter();
+	        if (indent != -1) {
+	        	formatter.setInitialIndent(indent);
+	        }
+            formatter.setDefaultLineDelimiter(TextUtilities.getDefaultLineDelimiter(document));
+	        String formattedText = formatter.format(documentText, this.prefs);
+	        if (formattedText != null && !formattedText.equals(documentText)) {
+	        	document.set(formattedText);
+	        }
 		}
-	}
+     }
+     
+     /*
+ 	 * @see org.eclipse.jface.text.formatter.ContextBasedFormattingStrategy#formatterStarts(org.eclipse.jface.text.formatter.IFormattingContext)
+ 	 */
+ 	public void formatterStarts(final IFormattingContext context) {
+ 		super.formatterStarts(context);
+ 		fDocuments.addLast((IDocument) context.getProperty(FormattingContextProperties.CONTEXT_MEDIUM));
+ 	}
 
-	/*
-	 * @see org.eclipse.jface.text.formatter.ContextBasedFormattingStrategy#formatterStarts(org.eclipse.jface.text.formatter.IFormattingContext)
-	 */
-	@Override
-	public void formatterStarts(final IFormattingContext context) {
-		super.formatterStarts(context);
-		fDocuments.addLast((IDocument) context.getProperty(FormattingContextProperties.CONTEXT_MEDIUM));
-	}
+ 	/*
+ 	 * @see org.eclipse.jface.text.formatter.ContextBasedFormattingStrategy#formatterStops()
+ 	 */
+ 	public void formatterStops() {
+ 		super.formatterStops();
 
-	/*
-	 * @see org.eclipse.jface.text.formatter.ContextBasedFormattingStrategy#formatterStops()
-	 */
-	@Override
-	public void formatterStops() {
-		super.formatterStops();
-
-		fDocuments.clear();
-	}
+ 		fDocuments.clear();
+ 	}
 }
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/launchConfigurations/AntPropertiesTab.java b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/launchConfigurations/AntPropertiesTab.java
index aeb2b34..f78f74b 100644
--- a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/launchConfigurations/AntPropertiesTab.java
+++ b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/launchConfigurations/AntPropertiesTab.java
@@ -160,7 +160,7 @@
 
 	private void initializeAsGlobal(boolean separateVM) {
 		AntCorePreferences prefs = AntCorePlugin.getPlugin().getPreferences();
-		List<Property> prefProperties;
+		List<?> prefProperties;
 		if (separateVM) {
 			prefProperties = prefs.getRemoteAntProperties();
 		} else {
diff --git a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntDefiningTaskNode.java b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntDefiningTaskNode.java
index 1ee42d2..4ac466a 100644
--- a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntDefiningTaskNode.java
+++ b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntDefiningTaskNode.java
@@ -19,7 +19,6 @@
 import java.util.Iterator;
 import java.util.List;
 
-import org.apache.tools.ant.AntTypeDefinition;
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.ComponentHelper;
 import org.apache.tools.ant.Task;
@@ -38,163 +37,155 @@
 import org.xml.sax.Attributes;
 
 public class AntDefiningTaskNode extends AntTaskNode {
-	private String fIdentifier = null;
-
-	public AntDefiningTaskNode(Task task, Attributes attributes) {
-		super(task);
-		String label = attributes.getValue(IAntCoreConstants.NAME);
-		if (label == null) {
-			label = task.getTaskName();
-
-			String file = attributes.getValue(IAntCoreConstants.FILE);
-			if (file != null) {
-				label = label + " " + file; //$NON-NLS-1$
-				fIdentifier = file;
-			} else {
-				String resource = attributes.getValue(IAntModelConstants.ATTR_RESOURCE);
-				if (resource != null) {
-					label = label + " " + resource; //$NON-NLS-1$
-					fIdentifier = resource;
-				}
-			}
-		} else {
-			fIdentifier = label;
-		}
-
-		setBaseLabel(label);
-	}
-
-	@Override
+    private String fIdentifier= null;
+    
+    public AntDefiningTaskNode(Task task, Attributes attributes) {
+        super(task);
+        String label= attributes.getValue(IAntCoreConstants.NAME);
+        if (label == null) {
+            label= task.getTaskName();
+        
+            String file= attributes.getValue(IAntCoreConstants.FILE);
+            if(file != null) {
+                label=  label + " " + file; //$NON-NLS-1$
+                fIdentifier= file;
+            } else {    
+                String resource=  attributes.getValue(IAntModelConstants.ATTR_RESOURCE);
+                if (resource != null) {
+                    label= label + " " + resource; //$NON-NLS-1$
+                    fIdentifier= resource;
+                } 
+            }
+        } else {
+            fIdentifier= label;
+        }
+        
+        setBaseLabel(label);
+    }
+	
 	protected ImageDescriptor getBaseImageDescriptor() {
-		String taskName = getTask().getTaskName();
-		if ("taskdef".equalsIgnoreCase(taskName) || "typedef".equalsIgnoreCase(taskName)) { //$NON-NLS-1$//$NON-NLS-2$
-			return AntUIImages.getImageDescriptor(IAntUIConstants.IMG_ANT_TASKDEF);
+		String taskName= getTask().getTaskName();
+		if ("taskdef".equalsIgnoreCase(taskName) || "typedef".equalsIgnoreCase(taskName)) {  //$NON-NLS-1$//$NON-NLS-2$
+			return AntUIImages.getImageDescriptor(IAntUIConstants.IMG_ANT_TASKDEF);	
 		}
-		return AntUIImages.getImageDescriptor(IAntUIConstants.IMG_ANT_MACRODEF);
+		return AntUIImages.getImageDescriptor(IAntUIConstants.IMG_ANT_MACRODEF);	
 	}
-
+	
 	/**
 	 * Execute the defining task.
 	 */
-	@Override
 	public boolean configure(boolean validateFully) {
-		if (fConfigured) {
-			return false;
-		}
+        if (fConfigured) {
+            return false;
+        }
 		if (shouldConfigure()) {
 			try {
-				ComponentHelper helper = ComponentHelper.getComponentHelper(getProjectNode().getProject());
-				((AntModel) getAntModel()).removeDefinerTasks(getIdentifier(), helper.getAntTypeTable());
-				Hashtable<String, AntTypeDefinition> old = new Hashtable<String, AntTypeDefinition>(helper.getAntTypeTable());
+                ComponentHelper helper= ComponentHelper.getComponentHelper(getProjectNode().getProject());
+                ((AntModel) getAntModel()).removeDefinerTasks(getIdentifier(), helper.getAntTypeTable());
+                Hashtable<String, Class<?>> old= new Hashtable<String, Class<?>>(helper.getAntTypeTable());
 				getTask().maybeConfigure();
 				getTask().execute();
-				Iterator<String> newNames = helper.getAntTypeTable().keySet().iterator();
-				List<String> defined = new ArrayList<String>();
-				while (newNames.hasNext()) {
-					String name = newNames.next();
-					if (old.get(name) == null) {
-						defined.add(name);
-					}
-				}
-				((AntModel) getAntModel()).addDefinedTasks(defined, this);
+                Iterator<String> newNames= helper.getAntTypeTable().keySet().iterator();
+                List<String> defined= new ArrayList<String>();
+                while (newNames.hasNext()) {
+                    String name = newNames.next();
+                    if (old.get(name) == null) {
+                        defined.add(name);
+                    }    
+                }
+                ((AntModel) getAntModel()).addDefinedTasks(defined, this);
 				return false;
-			}
-			catch (BuildException be) {
-				((AntModel) getAntModel()).removeDefiningTaskNodeInfo(this);
+			} catch (BuildException be) {
+                ((AntModel)getAntModel()).removeDefiningTaskNodeInfo(this);
 				handleBuildException(be, AntEditorPreferenceConstants.PROBLEM_CLASSPATH);
-			}
-			catch (LinkageError e) {
-				// A classpath problem with the definer. Possible causes are having multiple
-				// versions of the same JAR on the Ant runtime classpath (either explicitly or via the plugin
-				// classloaders. See bug 71888
-				((AntModel) getAntModel()).removeDefiningTaskNodeInfo(this);
-				handleBuildException(new BuildException(AntModelMessages.AntDefiningTaskNode_0), AntEditorPreferenceConstants.PROBLEM_CLASSPATH);
-			}
-			catch (AntSecurityException se) {
-				// either a system exit or setting of system property was attempted
-				((AntModel) getAntModel()).removeDefiningTaskNodeInfo(this);
-				handleBuildException(new BuildException(AntModelMessages.AntDefiningTaskNode_1), AntEditorPreferenceConstants.PROBLEM_SECURITY);
+			} catch (LinkageError e) {
+                //A classpath problem with the definer. Possible causes are having multiple
+                //versions of the same JAR on the Ant runtime classpath (either explicitly or via the plugin 
+                //classloaders. See bug 71888
+                ((AntModel)getAntModel()).removeDefiningTaskNodeInfo(this);
+                handleBuildException(new BuildException(AntModelMessages.AntDefiningTaskNode_0), AntEditorPreferenceConstants.PROBLEM_CLASSPATH);
+            } catch (AntSecurityException se) {
+				//either a system exit or setting of system property was attempted
+            	((AntModel)getAntModel()).removeDefiningTaskNodeInfo(this);
+                handleBuildException(new BuildException(AntModelMessages.AntDefiningTaskNode_1), AntEditorPreferenceConstants.PROBLEM_SECURITY);
 			}
 		}
 		return false;
 	}
-
+	
 	public Object getRealTask() {
-		Task task = getTask();
+		Task task= getTask();
 		if (task instanceof UnknownElement) {
 			task.maybeConfigure();
-			return ((UnknownElement) task).getRealThing();
+			return ((UnknownElement)task).getRealThing();
 		}
 		return task;
 	}
-
-	protected String getIdentifier() {
-		return fIdentifier;
-	}
-
+    
+    protected String getIdentifier() {
+        return fIdentifier;
+    }
+	
 	/*
-	 * Sets the Java class path in org.apache.tools.ant.types.Path so that the classloaders defined by these "definer" tasks will have the correct
-	 * classpath.
+	 * Sets the Java class path in org.apache.tools.ant.types.Path
+	 * so that the classloaders defined by these "definer" tasks will have the 
+	 * correct classpath.
 	 */
 	public static void setJavaClassPath() {
-
-		AntCorePreferences prefs = AntCorePlugin.getPlugin().getPreferences();
-		URL[] antClasspath = prefs.getURLs();
-
+		
+		AntCorePreferences prefs= AntCorePlugin.getPlugin().getPreferences();
+		URL[] antClasspath= prefs.getURLs();
+		
 		setJavaClassPath(antClasspath);
 	}
-
+	
 	/*
-	 * Sets the Java class path in org.apache.tools.ant.types.Path so that the classloaders defined by these "definer" tasks will have the correct
-	 * classpath.
+	 * Sets the Java class path in org.apache.tools.ant.types.Path
+	 * so that the classloaders defined by these "definer" tasks will have the 
+	 * correct classpath.
 	 */
 	public static void setJavaClassPath(URL[] antClasspath) {
-
-		StringBuffer buff = new StringBuffer();
-		File file = null;
+		
+		StringBuffer buff= new StringBuffer();
+		File file= null;
 		for (int i = 0; i < antClasspath.length; i++) {
 			try {
 				file = new File(FileLocator.toFileURL(antClasspath[i]).getPath());
-			}
-			catch (IOException e) {
+			} catch (IOException e) {
 				continue;
 			}
 			buff.append(file.getAbsolutePath());
 			buff.append("; "); //$NON-NLS-1$
 		}
 
-		org.apache.tools.ant.types.Path systemClasspath = new org.apache.tools.ant.types.Path(null, buff.substring(0, buff.length() - 2));
-		org.apache.tools.ant.types.Path.systemClasspath = systemClasspath;
+		org.apache.tools.ant.types.Path systemClasspath= new org.apache.tools.ant.types.Path(null, buff.substring(0, buff.length() - 2));
+		org.apache.tools.ant.types.Path.systemClasspath= systemClasspath;
 	}
-
-	@Override
+	
 	public boolean collapseProjection() {
-		IPreferenceStore store = AntUIPlugin.getDefault().getPreferenceStore();
+		IPreferenceStore store= AntUIPlugin.getDefault().getPreferenceStore();		
 		if (store.getBoolean(AntEditorPreferenceConstants.EDITOR_FOLDING_DEFINING)) {
 			return true;
 		}
 		return false;
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ant.internal.ui.model.AntElementNode#setLength(int)
-	 */
-	@Override
-	public void setLength(int length) {
-		super.setLength(length);
-		if (shouldConfigure()) {
-			getAntModel().setDefiningTaskNodeText(this);
-		}
-	}
+    /* (non-Javadoc)
+     * @see org.eclipse.ant.internal.ui.model.AntElementNode#setLength(int)
+     */
+    public void setLength(int length) {
+        super.setLength(length);
+        if (shouldConfigure()) {
+            getAntModel().setDefiningTaskNodeText(this);
+        }
+    }
 
-	private boolean shouldConfigure() {
-		IPreferenceStore store = AntUIPlugin.getDefault().getPreferenceStore();
-		return store.getBoolean(AntEditorPreferenceConstants.CODEASSIST_USER_DEFINED_TASKS);
-	}
+    private boolean shouldConfigure() {
+        IPreferenceStore store= AntUIPlugin.getDefault().getPreferenceStore();
+        return store.getBoolean(AntEditorPreferenceConstants.CODEASSIST_USER_DEFINED_TASKS);
+    }
 
-	protected void setNeedsToBeConfigured(boolean configure) {
-		fConfigured = !configure;
-	}
+    protected void setNeedsToBeConfigured(boolean configure) {
+       fConfigured= !configure;
+    }
 }
diff --git a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntModel.java b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntModel.java
index dfbf9f9..b75d9fe 100644
--- a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntModel.java
+++ b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntModel.java
@@ -507,7 +507,9 @@
 	}
 
 	private void setPropertiesFromFiles(Project project, List<Properties> allProperties) {
-		for (Properties props : allProperties) {
+		Iterator<Properties> iter = allProperties.iterator();
+		while (iter.hasNext()) {
+			Properties props = iter.next();
 			Enumeration<?> propertyNames = props.propertyNames();
 			while (propertyNames.hasMoreElements()) {
 				String name = (String) propertyNames.nextElement();
@@ -1550,7 +1552,7 @@
 		}
 	}
 
-	protected void removeDefinerTasks(String definerIdentifier, Hashtable<String, AntTypeDefinition> typeTable) {
+	protected void removeDefinerTasks(String definerIdentifier, Hashtable<String, Class<?>> typeTable) {
 		if (fDefinerNodeIdentifierToDefinedTasks == null) {
 			return;
 		}
diff --git a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntModelProject.java b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntModelProject.java
index 0d11caf..3e5a311 100644
--- a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntModelProject.java
+++ b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntModelProject.java
@@ -46,7 +46,6 @@
 		 * 
 		 * @see org.apache.tools.ant.PropertyHelper.PropertySetter#setNew(java.lang.String, java.lang.Object, org.apache.tools.ant.PropertyHelper)
 		 */
-		@Override
 		public boolean setNew(String property, Object value, PropertyHelper propertyHelper) {
 			setNewProperty(property, value.toString());
 			return false;
@@ -57,7 +56,6 @@
 		 * 
 		 * @see org.apache.tools.ant.PropertyHelper.PropertySetter#set(java.lang.String, java.lang.Object, org.apache.tools.ant.PropertyHelper)
 		 */
-		@Override
 		public boolean set(String property, Object value, PropertyHelper propertyHelper) {
 			return false;
 		}
@@ -169,14 +167,14 @@
 	 * @see org.apache.tools.ant.Project#getReference(java.lang.String)
 	 */
 	@Override
-	public <T> T getReference(String key) {
-		T ref = super.getReference(key);/* references.get(key); */
+	public Object getReference(String key) {
+		Object ref = super.getReference(key);/* references.get(key); */
 		if (ref == null) {
-			ref = (T) idrefs.get(key);
+			ref = idrefs.get(key);
 			if (ref instanceof UnknownElement) {
 				UnknownElement ue = (UnknownElement) ref;
 				ue.maybeConfigure();
-				return (T) ue.getRealThing();
+				return ue.getRealThing();
 			}
 		}
 		return ref;
@@ -188,9 +186,9 @@
 	 * @see org.apache.tools.ant.Project#getProperties()
 	 */
 	@Override
-	public Hashtable<String, Object> getProperties() {
+	public Hashtable getProperties() {
 		// override as we cannot remove properties from the Apache Ant project
-		Hashtable<String, Object> allProps = super.getProperties();
+		Hashtable<String, String> allProps = super.getProperties();
 		allProps.putAll(getUserProperties());
 		allProps.put("basedir", getBaseDir().getPath()); //$NON-NLS-1$
 		return allProps;
diff --git a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntTargetNode.java b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntTargetNode.java
index 4106554..f7de446 100644
--- a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntTargetNode.java
+++ b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntTargetNode.java
@@ -116,7 +116,7 @@
 	@Override
 	public void reset() {
 		super.reset();
-		Map<String, Target> currentTargets = fTarget.getProject().getTargets();
+		Map<String, Object> currentTargets = fTarget.getProject().getTargets();
 		if (currentTargets.get(fTarget.getName()) != null) {
 			currentTargets.remove(fTarget.getName());
 		}
diff --git a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntTaskNode.java b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntTaskNode.java
index 41fb0c9..5f5efeb 100644
--- a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntTaskNode.java
+++ b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntTaskNode.java
@@ -155,12 +155,12 @@
 	@Override
 	public boolean containsOccurrence(String identifier) {
 		RuntimeConfigurable wrapper = getTask().getRuntimeConfigurableWrapper();
-		Map<String, Object> attributeMap = wrapper.getAttributeMap();
+		Map<String, String> attributeMap = wrapper.getAttributeMap();
 		Set<String> keys = attributeMap.keySet();
 		boolean lookingForProperty = identifier.startsWith("${") && identifier.endsWith("}"); //$NON-NLS-1$ //$NON-NLS-2$
 		for (Iterator<String> iter = keys.iterator(); iter.hasNext();) {
 			String key = iter.next();
-			String value = (String) attributeMap.get(key);
+			String value = attributeMap.get(key);
 			if (lookingForProperty && (key.equals("if") || key.equals("unless"))) { //$NON-NLS-1$ //$NON-NLS-2$
 				if (value.indexOf(identifier.substring(2, identifier.length() - 1)) != -1) {
 					return true;
@@ -187,12 +187,12 @@
 		}
 		List<Integer> results = new ArrayList<Integer>();
 		RuntimeConfigurable wrapper = getTask().getRuntimeConfigurableWrapper();
-		Map<String, Object> attributeMap = wrapper.getAttributeMap();
+		Map<String, String> attributeMap = wrapper.getAttributeMap();
 		Set<String> keys = attributeMap.keySet();
 		String lineSep = System.getProperty("line.separator"); //$NON-NLS-1$
 		for (Iterator<String> iter = keys.iterator(); iter.hasNext();) {
 			String key = iter.next();
-			String value = (String) attributeMap.get(key);
+			String value = attributeMap.get(key);
 			int identifierCorrection = 1;
 			if (value.indexOf(identifier) != -1) {
 				int keyOffset = textToSearch.indexOf(key);
diff --git a/ant/org.eclipse.ant.ui/META-INF/MANIFEST.MF b/ant/org.eclipse.ant.ui/META-INF/MANIFEST.MF
index 7e04a28..d829059 100644
--- a/ant/org.eclipse.ant.ui/META-INF/MANIFEST.MF
+++ b/ant/org.eclipse.ant.ui/META-INF/MANIFEST.MF
@@ -32,7 +32,7 @@
  org.eclipse.jface.text;bundle-version="[3.5.0,4.0.0)";resolution:=optional,
  org.eclipse.ui.workbench.texteditor;bundle-version="[3.5.0,4.0.0)";resolution:=optional,
  org.eclipse.ui.editors;bundle-version="[3.2.0,4.0.0)";resolution:=optional,
- org.apache.ant;bundle-version="1.9.2",
+ org.apache.ant;bundle-version="1.8.4",
  org.eclipse.ant.core;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.core.filesystem;bundle-version="[1.0.0,2.0.0)",
  org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
diff --git a/ant/org.eclipse.ant.ui/Remote Ant Support/org/eclipse/ant/internal/ui/antsupport/inputhandler/SWTInputHandler.java b/ant/org.eclipse.ant.ui/Remote Ant Support/org/eclipse/ant/internal/ui/antsupport/inputhandler/SWTInputHandler.java
index feacb86..650fe6d 100644
--- a/ant/org.eclipse.ant.ui/Remote Ant Support/org/eclipse/ant/internal/ui/antsupport/inputhandler/SWTInputHandler.java
+++ b/ant/org.eclipse.ant.ui/Remote Ant Support/org/eclipse/ant/internal/ui/antsupport/inputhandler/SWTInputHandler.java
@@ -12,6 +12,8 @@
 
 package org.eclipse.ant.internal.ui.antsupport.inputhandler;
 
+import java.util.Iterator;
+
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.input.DefaultInputHandler;
 import org.apache.tools.ant.input.InputRequest;
@@ -123,8 +125,9 @@
 		if (fRequest instanceof MultipleChoiceInputRequest) {
 			fCombo = new Combo(fDialog, SWT.BORDER | SWT.READ_ONLY);
 			fCombo.add(""); //$NON-NLS-1$
-			for (String text : ((MultipleChoiceInputRequest) fRequest).getChoices()) {
-				fCombo.add(text);
+			// TODO ANT-1.9.1 API USE
+			for (Iterator<?> i = ((MultipleChoiceInputRequest) fRequest).getChoices().iterator(); i.hasNext();) {
+				fCombo.add((String) i.next());
 				fCombo.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL));
 				fCombo.addSelectionListener(new SelectionAdapter() {
 					@Override