This commit was manufactured by cvs2svn to create tag
'v20020327_ce_intermediate'.

Sprout from master 2002-03-27 15:50:35 UTC Christopher Elek <celek> '*** empty log message ***'
Cherrypick from master 2002-03-17 22:13:16 UTC Dejan Glozic <dejan> '*** empty log message ***':
    update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/Locator.java
Delete:
    ant/org.eclipse.ant.core/.classpath
    ant/org.eclipse.ant.core/.cvsignore
    ant/org.eclipse.ant.core/.vcm_meta
    ant/org.eclipse.ant.core/about.html
    ant/org.eclipse.ant.core/build.properties
    ant/org.eclipse.ant.core/buildnotes_platform-ant.html
    ant/org.eclipse.ant.core/doc/hglegal.htm
    ant/org.eclipse.ant.core/doc/ngibmcpy.gif
    ant/org.eclipse.ant.core/doc/org_eclipse_ant_core.html
    ant/org.eclipse.ant.core/doc/org_eclipse_ant_core_antObjects.html
    ant/org.eclipse.ant.core/doc/org_eclipse_ant_core_antTasks.html
    ant/org.eclipse.ant.core/doc/org_eclipse_ant_core_antTypes.html
    ant/org.eclipse.ant.core/os/linux/libcore_2_0_5.so
    ant/org.eclipse.ant.core/os/win32/core_2_0_5.dll
    ant/org.eclipse.ant.core/plugin.properties
    ant/org.eclipse.ant.core/plugin.xml
    ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntNotificationManager.java
    ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntPlugin.java
    ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntRunner.java
    ant/org.eclipse.ant.core/src/org/eclipse/ant/core/CommaPatternSet.java
    ant/org.eclipse.ant.core/src/org/eclipse/ant/core/CommandDataType.java
    ant/org.eclipse.ant.core/src/org/eclipse/ant/core/ConvertPath.java
    ant/org.eclipse.ant.core/src/org/eclipse/ant/core/CopyProject.java
    ant/org.eclipse.ant.core/src/org/eclipse/ant/core/CreateProject.java
    ant/org.eclipse.ant.core/src/org/eclipse/ant/core/DeleteProject.java
    ant/org.eclipse.ant.core/src/org/eclipse/ant/core/EclipseAnt.java
    ant/org.eclipse.ant.core/src/org/eclipse/ant/core/EclipseCompilerAdapterFactory.java
    ant/org.eclipse.ant.core/src/org/eclipse/ant/core/EclipseCopy.java
    ant/org.eclipse.ant.core/src/org/eclipse/ant/core/EclipseFileUtils.java
    ant/org.eclipse.ant.core/src/org/eclipse/ant/core/EclipseJavac.java
    ant/org.eclipse.ant.core/src/org/eclipse/ant/core/EclipseProject.java
    ant/org.eclipse.ant.core/src/org/eclipse/ant/core/IAntRunnerListener.java
    ant/org.eclipse.ant.core/src/org/eclipse/ant/core/IncrementalBuild.java
    ant/org.eclipse.ant.core/src/org/eclipse/ant/core/MoveProject.java
    ant/org.eclipse.ant.core/src/org/eclipse/ant/core/Policy.java
    ant/org.eclipse.ant.core/src/org/eclipse/ant/core/RefreshLocal.java
    ant/org.eclipse.ant.core/src/org/eclipse/ant/core/XercesRegexpMatcher.java
    ant/org.eclipse.ant.core/src/org/eclipse/ant/core/messages.properties
    ant/org.eclipse.ant.core/src/org/eclipse/ant/core/package.html
    ant/org.eclipse.ant.ui/.classpath
    ant/org.eclipse.ant.ui/.cvsignore
    ant/org.eclipse.ant.ui/.vcm_meta
    ant/org.eclipse.ant.ui/about.html
    ant/org.eclipse.ant.ui/build.properties
    ant/org.eclipse.ant.ui/icons/basic/clcl16/clear.gif
    ant/org.eclipse.ant.ui/icons/basic/clcl16/hideOrShowTree.gif
    ant/org.eclipse.ant.ui/icons/basic/clcl16/showOnlySelectedText.gif
    ant/org.eclipse.ant.ui/icons/basic/cview16/ant_view.gif
    ant/org.eclipse.ant.ui/icons/basic/eview16/ant_view.gif
    ant/org.eclipse.ant.ui/icons/basic/wizban/ant_wiz.gif
    ant/org.eclipse.ant.ui/icons/full/clcl16/clear.gif
    ant/org.eclipse.ant.ui/icons/full/clcl16/hideOrShowTree.gif
    ant/org.eclipse.ant.ui/icons/full/clcl16/showOnlySelectedText.gif
    ant/org.eclipse.ant.ui/icons/full/cview16/ant_view.gif
    ant/org.eclipse.ant.ui/icons/full/eview16/ant_view.gif
    ant/org.eclipse.ant.ui/icons/full/eview16/build_exec.gif
    ant/org.eclipse.ant.ui/icons/full/wizban/ant_wiz.gif
    ant/org.eclipse.ant.ui/plugin.properties
    ant/org.eclipse.ant.ui/plugin.xml
    ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntAction.java
    ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntConsole.java
    ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntConsolePreferencePage.java
    ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntLaunchDropDownAction.java
    ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntLaunchWizard.java
    ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntLaunchWizardPage.java
    ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntPreferencesPage.java
    ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntPropertyChangeListener.java
    ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntTreeContentProvider.java
    ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntTreeLabelProvider.java
    ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntUIPlugin.java
    ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/BuildCanceledException.java
    ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/IAntPreferenceConstants.java
    ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/OutputStructureElement.java
    ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/Policy.java
    ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/RunAntActionDelegate.java
    ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/TargetsListContentProvider.java
    ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/TargetsListLabelProvider.java
    ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/UIBuildListener.java
    ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/messages.properties
    platform/org.eclipse.sdk/.vcm_meta
    platform/org.eclipse.sdk/about.html
    platform/org.eclipse.sdk/about_prod.gif
    platform/org.eclipse.sdk/build.properties
    platform/org.eclipse.sdk/platform.ini
    platform/org.eclipse.sdk/platform.properties
    platform/org.eclipse.sdk/plugin.properties
    platform/org.eclipse.sdk/plugin.xml
    platform/org.eclipse.sdk/prod.gif
    platform/org.eclipse.sdk/product.ini
    platform/org.eclipse.sdk/product.properties
    platform/org.eclipse.sdk/welcome.xml
    update/org.eclipse.update.examples/bin/org/eclipse/update/examples/buildzip/java.page.jpage
    update/org.eclipse.update/.classpath
    update/org.eclipse.update/.cvsignore
    update/org.eclipse.update/.vcm_meta
    update/org.eclipse.update/about.html
    update/org.eclipse.update/build.properties
    update/org.eclipse.update/icons/full/ctool16/new.gif
    update/org.eclipse.update/icons/full/ctool16/update.gif
    update/org.eclipse.update/icons/full/wizban/new.gif
    update/org.eclipse.update/icons/full/wizban/revert.gif
    update/org.eclipse.update/icons/full/wizban/update.gif
    update/org.eclipse.update/plugin.properties
    update/org.eclipse.update/plugin.xml
    update/org.eclipse.update/plugin.xml.off
    update/org.eclipse.update/src/org/eclipse/update/internal/core/ISessionDefiner.java
    update/org.eclipse.update/src/org/eclipse/update/internal/core/IUMLock.java
    update/org.eclipse.update/src/org/eclipse/update/internal/core/UMLock.java
    update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionDefinerReferenceUpdate.java
    update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionManager.java
    update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionManagerEntry.java
    update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionManagerMessage.java
    update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionManagerOperation.java
    update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionManagerParcel.java
    update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionManagerSession.java
    update/org.eclipse.update/src/org/eclipse/update/internal/core/URLHandler.java
    update/org.eclipse.update/src/org/eclipse/update/internal/core/UpdateManager.java
    update/org.eclipse.update/src/org/eclipse/update/internal/core/UpdateManagerException.java
    update/org.eclipse.update/src/org/eclipse/update/internal/core/UpdateManagerPlugin.java
    update/org.eclipse.update/src/org/eclipse/update/internal/core/UpdateManagerStrings.java
    update/org.eclipse.update/src/org/eclipse/update/internal/core/UpdateManagerURLComparator.java
    update/org.eclipse.update/src/org/eclipse/update/internal/core/updatemanagerstrings.properties
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/AuthorizationDatabase.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/Installation.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/JarVerificationDialog.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/JarVerificationResult.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/JarVerificationService.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/JarVerifier.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/KeyStores.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/Main.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMApplication.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMApplicationUserInterface.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMApplicationUserInterfaceProperties.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMApplicationWindow.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMDialog.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMDialogAction.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMPreferencePageSettings.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMWizard.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMWizardPageComplete.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMWizardPageInstallable.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMWizardPageInstalling.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMWizardPageLaunchHistory.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMWizardPageLaunchHistoryComplete.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMWizardPageLocations.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMWizardPageURLComplete.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMWizardPageURLInstall.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMWizardPageURLInstallable.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMWizardPageURLInstalling.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMWizardPersistentProperties.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMWizardProductComponentNew.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMWizardProductComponentRevert.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMWizardProductComponentURLInstall.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMWizardProductComponentUpdate.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMWizardTreeItem.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMWizardTreeItemComparator.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMWizardURLNamePairComparator.java
    update/org.eclipse.update/src/org/eclipse/update/internal/ui/UserValidationDialog.java
diff --git a/ant/org.eclipse.ant.core/.classpath b/ant/org.eclipse.ant.core/.classpath
deleted file mode 100644
index eeb713f..0000000
--- a/ant/org.eclipse.ant.core/.classpath
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="src" path="/org.apache.xerces"/>
-    <classpathentry kind="src" path="/org.eclipse.core.resources"/>
-    <classpathentry kind="src" path="/org.apache.ant"/>
-    <classpathentry kind="src" path="/org.eclipse.core.runtime"/>
-    <classpathentry kind="src" path="/org.eclipse.core.boot"/>
-    <classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT" sourcepath="JRE_SRC"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/ant/org.eclipse.ant.core/.cvsignore b/ant/org.eclipse.ant.core/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/ant/org.eclipse.ant.core/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.core/.vcm_meta b/ant/org.eclipse.ant.core/.vcm_meta
deleted file mode 100644
index d9a7fb3..0000000
--- a/ant/org.eclipse.ant.core/.vcm_meta
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project-description>

-	<nature id="org.eclipse.jdt.core.javanature"/>

-	<reference project-name="org.apache.ant"/>

-	<reference project-name="org.apache.xerces"/>

-	<reference project-name="org.eclipse.core.boot"/>

-	<reference project-name="org.eclipse.core.resources"/>

-	<reference project-name="org.eclipse.core.runtime"/>

-	<builder name="org.eclipse.jdt.core.javabuilder">

-	</builder>

-</project-description>

diff --git a/ant/org.eclipse.ant.core/about.html b/ant/org.eclipse.ant.core/about.html
deleted file mode 100644
index 9df5d4f..0000000
--- a/ant/org.eclipse.ant.core/about.html
+++ /dev/null
@@ -1,101 +0,0 @@
-<html>

-<head>

-<title>About</title>

-<style type="text/css">

-p, table, td, th { font-family: arial, helvetica, geneva; font-size: 10pt}

-pre { font-family: "Courier New", Courier, mono; font-size: 10pt}

-h2 { font-family: arial, helvetica, geneva; font-size: 18pt; font-weight: bold ; line-height: 14px}

-code { font-family: "Courier New", Courier, mono; font-size: 10pt}

-sup { font-family: arial,helvetica,geneva; font-size: 10px}

-h3 { font-family: arial, helvetica, geneva; font-size: 14pt; font-weight: bold}

-li { font-family: arial, helvetica, geneva; font-size: 10pt}

-h1 { font-family: arial, helvetica, geneva; font-size: 28px; font-weight: bold}

-body { font-family: arial, helvetica, geneva; font-size: 10pt; clip: rect(   ); margin-top: 5mm; margin-left: 3mm}

-</style>

-</head>

-<body lang="EN-US" link="blue" vlink="purple">

-<table border="0" cellspacing="5" cellpadding="2" width="100%" >

-  <tr> 

-    <td align="LEFT" valign="TOP" colspan="2" bgcolor="#0080C0"><b><font color="#FFFFFF">About This Content</font></b></td>

-  </tr>

-  <tr> 

-    <td> 

-<p>11th December, 2001</p>	

-<h3>License</h3>

-<p>Eclipse.org makes available all content in this plug-in &quot;Content&quot;.  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the

-<a href="http://www.eclipse.org/legal/cpl-v05.html">Common Public License Version 0.5</a> &quot;CPL&quot;.  For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>

-

-<h3>Third Party Content</h3>

-

-<p>The Content includes items that have been sourced from third parties as follows:</p>

-

-<p><b>Ant 1.4.1</b></p>

-<p>The plug-in is based on software developed by The Apache Software Foundation as part of the Jakarta project.

-The following classes contained in antsupport.jar and antsupportsrc.zip &quot;Ant Derivative Work&quot; are based on Ant code:</p>

-

-<ul>

-	<li>AntRunner</li>

-	<li>CommaPatternSet</li>

-	<li>EclipseAnt</li>

-	<li>EclipseCopy</li>

-	<li>EclipseProject</li>

-	<li>EclipseJavac</li>

-</ul>

-

-<p>The Ant Derivative Work is:</p>

-

-<blockquote>Copyright (c) 1999 The Apache Software Foundation. All rights reserved.</blockquote>

-

-<p>Your use of the Ant Derivative Work is subject to the terms and conditions of the

-<a href="http://jakarta.apache.org/ant/manual/LICENSE">Apache Software License 1.1</a>.

-More specifically:</p>

-<blockquote>

-	1. Redistributions of source code must retain the above copyright notice, this list of<br />

-	conditions and the following disclaimer.<br />

-<br />

-	2. Redistributions in binary form must reproduce the above copyright notice, this list of<br />

-	conditions and the following disclaimer in the documentation and/or other materials<br />

-	provided with the distribution.<br />

-<br />

-	3. The end-user documentation included with the redistribution, if any, must include the<br />

-	following acknowledgment:<br />

-	<blockquote>

-		&quot;This product includes software developed by the Apache Software Foundation<br />

-		(<a href="http://www.apache.org/">http://www.apache.org/</a>).&quot;

-	</blockquote>

-	Alternately, this acknowledgment may appear in the software itself, if and wherever such<br />

-	third-party acknowledgments normally appear.<br />

-<br />

-	4. The names &quot;Ant&quot; and &quot;Apache Software Foundation&quot; must not be used to endorse or<br />

-	promote products derived from this software without prior written permission. For written<br />

-	permission, please contact <a href="mailto:apache@apache.org">apache@apache.org</a>.<br />

-<br />

-	5. Products derived from this software may not be called &quot;Apache&quot;, nor may &quot;Apache&quot; appear<br />

-	in their name, without prior written permission of the Apache Software Foundation.<br />

-<br />

-	THIS SOFTWARE IS PROVIDED &quot;AS IS&quot; AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT<br />

-	LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR<br />

-	PURPOSE ARE	DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ITS<br />

-	CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR<br />

-	CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR<br />

-	SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON<br />

-	ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,	OR TORT (INCLUDING<br />

-	NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT	OF THE USE OF THIS SOFTWARE, EVEN IF<br />

-	ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-</blockquote>

-

-<h3>Contributions</h3>

-

-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise

-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such

-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>

-

-<p>If this Content is licensed to you under license terms and conditions other than the CPL &quot;Other License&quot;, any modifications, enhancements and/or

-other code and/or documentation &quot;Modifications&quot; uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the

-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available

-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also

-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of

-the CPL.</p>

-</td></tr></table>

-</body>

-</html>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.core/build.properties b/ant/org.eclipse.ant.core/build.properties
deleted file mode 100644
index 248b94b..0000000
--- a/ant/org.eclipse.ant.core/build.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-source.antsupport.jar=src/

-bin.includes=os/,plugin.xml,*.jar,plugin.properties,about.html

-javadoc.packages=org.eclipse.*
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.core/buildnotes_platform-ant.html b/ant/org.eclipse.ant.core/buildnotes_platform-ant.html
deleted file mode 100644
index ca9979d..0000000
--- a/ant/org.eclipse.ant.core/buildnotes_platform-ant.html
+++ /dev/null
@@ -1,165 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">

-<html>

-<head>

-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-   <meta name="GENERATOR" content="Mozilla/4.7 [en] (Win98; I) [Netscape]">

-   <title>Eclipse Platform Release Notes Core</title>

-<!-- saved from url=(0079)http://home.ott.oti.com/hubba/drops/sdk/latest-javadoc/doc/buildnotes_core.html -->

-<!-- saved from url=(0079)http://home.ott.oti.com/hubba/drops/sdk/latest-javadoc/doc/buildnotes_core.html -->

-</head>

-<body>

-

-<h1>

-Eclipse Platform Build Notes<br>

-Ant</h1>

-Eclipse SDK Build 20020129

-<h2>

-What's new in this drop</h2>

-

-<h3>

-API changes</h3>

-

-<ul>

-<li>

-None.</li>

-</ul>

-

-<h3>

-Other highlights</h3>

-

-<ul>

-<li>

-None.</li>

-</ul>

-

-<h3>

-Resolved Bugs</h3>

-

-<ul>

-<li>

-<a href="http://dev.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&bugidtype=include&bug_id=&changedin=&votes=&chfield=bug_status&chfieldfrom=2001%2F12%2F17&chfieldto=2002%2F01%2F29&chfieldvalue=&product=Platform&component=Ant&short_desc=&short_desc_type=allwordssubstr&long_desc=&long_desc_type=allwordssubstr&keywords=&keywords_type=anywords&field0-0-0=noop&type0-0-0=noop&value0-0-0=&cmdtype=doit&namedcmd=ant&newqueryname=&order=Bug+Number">Click

-here</a> to see PRs which have been marked as RESOLVED, VERIFIED or CLOSED

-since the last integration build.</li>

-</ul>

-

-<h1>

-

-<hr WIDTH="100%">Eclipse Platform Build Notes<br>

-Ant</h1>

-Eclipse SDK Build 20011218

-<h2>

-What's new in this drop</h2>

-

-<h3>

-API changes</h3>

-

-<ul>

-<li>

-None.</li>

-</ul>

-

-<h3>

-Other highlights</h3>

-

-<ul>

-<li>

-None.</li>

-</ul>

-

-<h3>

-Resolved Bugs</h3>

-

-<ul>

-<li>

-<a href="http://dev.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&bugidtype=include&bug_id=&changedin=&votes=&chfield=bug_status&chfieldfrom=2001%2F12%2F11&chfieldto=2001%2F12%2F17&chfieldvalue=&product=Platform&component=Ant&short_desc=&short_desc_type=allwordssubstr&long_desc=&long_desc_type=allwordssubstr&keywords=&keywords_type=anywords&field0-0-0=noop&type0-0-0=noop&value0-0-0=&cmdtype=doit&namedcmd=ant&newqueryname=&order=Bug+Number">Click

-here</a> to see PRs which have been marked as RESOLVED, VERIFIED or CLOSED

-since the last integration build.</li>

-</ul>

-

-<h1>

-

-<hr WIDTH="100%">Eclipse Platform Build Notes<br>

-Ant</h1>

-Eclipse SDK Build 20011211

-<h2>

-What's new in this drop</h2>

-

-<h3>

-API changes</h3>

-

-<ul>

-<li>

-None.</li>

-</ul>

-

-<h3>

-Other highlights</h3>

-

-<ul>

-<li>

-Ant code from Apache has moved to a new plug-in called org.apache.ant..</li>

-</ul>

-

-<h3>

-Resolved Bugs</h3>

-

-<ul>

-<li>

-<a href="http://dev.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&bugidtype=include&bug_id=&changedin=&votes=&chfield=bug_status&chfieldfrom=2001%2F11%2F27&chfieldto=2001%2F12%2F10&chfieldvalue=&product=Platform&component=Ant&short_desc=&short_desc_type=allwordssubstr&long_desc=&long_desc_type=allwordssubstr&keywords=&keywords_type=anywords&field0-0-0=noop&type0-0-0=noop&value0-0-0=&cmdtype=doit&namedcmd=Active&newqueryname=&order=Bug+Number">Click

-here</a> to see PRs which have been marked as RESOLVED, VERIFIED or CLOSED

-since the last integration build.</li>

-</ul>

-

-<h1>

-

-<hr WIDTH="100%">Eclipse Platform Build Notes<br>

-Ant</h1>

-Eclipse SDK Build 20011127 (v213)

-<h2>

-What's new in this drop</h2>

-

-<h3>

-API changes</h3>

-

-<ul>

-<li>

-None.</li>

-</ul>

-

-<h3>

-Other highlights</h3>

-

-<ul>

-<li>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5391">5391</a>&nbsp;

-Upgrade to Ant 1.4.1</li>

-</ul>

-

-<h1>

-

-<hr WIDTH="100%">Eclipse Platform Build Notes<br>

-Ant</h1>

-Eclipse SDK Build 20011120 (v211)

-<h2>

-What's new in this drop</h2>

-

-<h3>

-API changes</h3>

-

-<ul>

-<li>

-None.</li>

-</ul>

-

-<h3>

-Other highlights</h3>

-

-<ul>

-<li>

-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=5331">5331</a>&nbsp;

-Ant does not override optional tasks with org.eclipse.ant.core.antTasks

-extension point</li>

-</ul>

-

-</body>

-</html>

diff --git a/ant/org.eclipse.ant.core/doc/hglegal.htm b/ant/org.eclipse.ant.core/doc/hglegal.htm
deleted file mode 100644
index b071dbd..0000000
--- a/ant/org.eclipse.ant.core/doc/hglegal.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">

-<html>

-<head>

-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-   <meta name="GENERATOR" content="Mozilla/4.73 [en] (Win98; U) [Netscape]">

-   <title>Legal Notices</title>

-</head>

-<body>

-

-<h3>

-<a NAME="Notices"></a>Notices</h3>

-(c) Copyright IBM Corp. 2000, 2001. All Rights Reserved.

-</body>

-</html>

diff --git a/ant/org.eclipse.ant.core/doc/ngibmcpy.gif b/ant/org.eclipse.ant.core/doc/ngibmcpy.gif
deleted file mode 100644
index 360f8e9..0000000
--- a/ant/org.eclipse.ant.core/doc/ngibmcpy.gif
+++ /dev/null
Binary files differ
diff --git a/ant/org.eclipse.ant.core/doc/org_eclipse_ant_core.html b/ant/org.eclipse.ant.core/doc/org_eclipse_ant_core.html
deleted file mode 100644
index a82e148..0000000
--- a/ant/org.eclipse.ant.core/doc/org_eclipse_ant_core.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">

-<html>

-<head>

-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-   <title>Ant Build Tool Core extension-points</title>

-</head>

-<body link="#0000FF" vlink="#800080">

-

-<center>

-<h1>

-Ant Build Tool Core Plug-in</h1></center>

-This document lists all of the extension points that the Ant Build Tool Core

-plug-in makes available to tool developers.

-<p>

-<hr WIDTH="100%">

-<h1>

-General Extension Points</h1>

-The following extension points can be used to extend the fundamental capabilities

-of the Ant core plug-in:

-<ul>

-<li>

-<a href="org_eclipse_ant_core_antObjects.html">org.eclipse.ant.core.antObjects</a></li>

-

-<li>

-<a href="org_eclipse_ant_core_antTasks.html">org.eclipse.ant.core.antTasks</a></li>

-

-<li>

-<a href="org_eclipse_ant_core_antTypes.html">org.eclipse.ant.core.antTypes</a></li>

-</ul>

-<a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corp. 2000, 2001.  All Rights Reserved." BORDER=0 height=12 width=195></a>

-</body>

-</html>

diff --git a/ant/org.eclipse.ant.core/doc/org_eclipse_ant_core_antObjects.html b/ant/org.eclipse.ant.core/doc/org_eclipse_ant_core_antObjects.html
deleted file mode 100644
index 2bec323..0000000
--- a/ant/org.eclipse.ant.core/doc/org_eclipse_ant_core_antObjects.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">

-<html>

-<head>

-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-   <title>AntObjects</title>

-</head>

-<body link="#0000FF" vlink="#800080">

-

-<center>

-<h1>

-AntObjects</h1></center>

-<b><i>Identifier: </i></b>org.eclipse.ant.core.antObjects<p><b><i>Description: </i></b>Allows

-plug-ins to define arbitrary classes for use by the Ant infrastructure.&nbsp;

-For example, in the case of a Javac compiler adapter, the compiler adapter

-factory can be supplied, via a property setting, with the name of an adapter

-class to use.&nbsp; Unfortunately, it is unlikely that the Ant Core plug-in

-would have this class on its classpath (or that of any of its

-prerequisites).&nbsp; To address this, clients should define an extension which

-plugs into this extension-point and maps a name onto a class.&nbsp; The Ant

-plug-in can then request that the declaring plug-in load the specified class.

-<p><b><i>Configuration Markup:&nbsp; </i></b>

-<p><tt>&nbsp;&nbsp; &lt;!ELEMENT antObject EMPTY&gt;</tt>

-<br><tt>&nbsp;&nbsp; &lt;!ATTLIST antObject</tt>

-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

-CDATA #REQUIRED</tt>

-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

-CDATA #REQUIRED</tt>

-<br><tt>&nbsp;&nbsp; ></tt>

-<ul>

-<li>

-<b>name -</b> name of the class to be defined</li>

-

-<li>

-<b>class</b> - the fully qualified name of a Java class</li>

-</ul>

-<p><i><b>Examples: </b> </i>The following is an example of an object

-declaration:

-<p><tt>&nbsp;&nbsp; &lt;extension point=&quot;org.eclipse.ant.core.antObject&quot;&gt;</tt><br>

-<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;antObject name=&quot;com.example.Foo&quot;

-class=&quot;com.example.Foo&quot;/&gt;</tt><br>

-<tt>&nbsp;&nbsp; &lt;/extension&gt;</tt>

-<p><b><i>API Information</i>:</b><i> </i>The objects declared via this

-extension-point are accessible though the following API:<p><tt>&nbsp;&nbsp;

-org.eclipse.core.ant.AntPlugin.getObjectExtensions</tt>

-<p><b><i>Supplied Implementation:</i></b>  The platform itself does not supply

-any object extension.

-<p><a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corp. 2000, 2001.  All Rights Reserved." BORDER=0 height=12 width=195></a>

-</body>

-</html>

diff --git a/ant/org.eclipse.ant.core/doc/org_eclipse_ant_core_antTasks.html b/ant/org.eclipse.ant.core/doc/org_eclipse_ant_core_antTasks.html
deleted file mode 100644
index c7b84e8..0000000
--- a/ant/org.eclipse.ant.core/doc/org_eclipse_ant_core_antTasks.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">

-<html>

-<head>

-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-   <title>AntTasks</title>

-</head>

-<body link="#0000FF" vlink="#800080">

-

-<center>

-<h1>

-AntTasks</h1></center>

-<b><i>Identifier: </i></b>org.eclipse.ant.core.antTasks<p><b><i>Description: </i></b>Allows

-plug-ins to define arbitrary Ant tasks for use by the Ant infrastructure.&nbsp;

-The standard Ant infrastructure allows for the addition of arbitrary

-tasks.&nbsp; Unfortunately, it is unlikely that the Ant Core plug-in

-would have the classes required by these tasks on its classpath (or that of any of its

-prerequisites).&nbsp; To address this, clients should define an extension which

-plugs into this extension-point and maps a task name onto a class.&nbsp; The Ant

-plug-in can then request that the declaring plug-in load the specified class.

-<p><b><i>Configuration Markup:&nbsp; </i></b>

-<p><tt>&nbsp;&nbsp; &lt;!ELEMENT antTask EMPTY&gt;</tt>

-<br><tt>&nbsp;&nbsp; &lt;!ATTLIST antTask</tt>

-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

-CDATA #REQUIRED</tt>

-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

-CDATA #REQUIRED</tt>

-<br><tt>&nbsp;&nbsp; ></tt>

-<ul>

-<li>

-<b>name -</b> name of the task to be defined</li>

-

-<li>

-<b>class</b> - the fully qualified name of a Java class implementing the

-task.&nbsp; Generally this class must be a subclass of&nbsp; <tt>org.apache.tools.ant.Task</tt>.</li>

-</ul>

-<p><i><b>Examples: </b> </i>The following is an example of an object

-declaration:

-<p><tt>&nbsp;&nbsp; &lt;extension point=&quot;org.eclipse.ant.core.antTask&quot;&gt;</tt><br>

-<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;antTask name=&quot;coolTask&quot;

-class=&quot;com.example.CoolTask&quot;/&gt;</tt><br>

-<tt>&nbsp;&nbsp; &lt;/extension&gt;</tt>

-<p><b><i>API Information</i>:</b><i> </i>The objects declared via this

-extension-point are accessible though the following API:<p><tt>&nbsp;&nbsp;

-org.eclipse.core.ant.AntPlugin.getTaskExtensions</tt>

-<p><b><i>Supplied Implementation:</i></b>  The platform itself supplies a number

-of tasks including <tt>incremental, javac and refreshLocal</tt>.

-<p><a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corp. 2000, 2001.  All Rights Reserved." BORDER=0 height=12 width=195></a>

-</body>

-</html>

diff --git a/ant/org.eclipse.ant.core/doc/org_eclipse_ant_core_antTypes.html b/ant/org.eclipse.ant.core/doc/org_eclipse_ant_core_antTypes.html
deleted file mode 100644
index 143fee1..0000000
--- a/ant/org.eclipse.ant.core/doc/org_eclipse_ant_core_antTypes.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">

-<html>

-<head>

-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

-   <title>AntObjects</title>

-</head>

-<body link="#0000FF" vlink="#800080">

-

-<center>

-<h1>

-AntTypes</h1></center>

-<b><i>Identifier: </i></b>org.eclipse.ant.core.antTypes<p><b><i>Description: </i></b>Allows

-plug-ins to define arbitrary Ant datatypes for use by the Ant infrastructure.&nbsp;

-The standard Ant infrastructure allows for the addition of arbitrary datatypes.&nbsp; Unfortunately, it is unlikely that the Ant Core plug-in

-would have the classes required by these datatypes on its classpath (or that of any of its

-prerequisites).&nbsp; To address this, clients should define an extension which

-plugs into this extension-point and maps a datatype name onto a class.&nbsp; The Ant

-plug-in can then request that the declaring plug-in load the specified class.

-<p><b><i>Configuration Markup:&nbsp; </i></b>

-<p><tt>&nbsp;&nbsp; &lt;!ELEMENT antType EMPTY&gt;</tt>

-<br><tt>&nbsp;&nbsp; &lt;!ATTLIST antType</tt>

-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

-CDATA #REQUIRED</tt>

-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

-CDATA #REQUIRED</tt>

-<br><tt>&nbsp;&nbsp; ></tt>

-<ul>

-<li>

-<b>name -</b> name of the task to be defined</li>

-

-<li>

-<b>class</b> - the fully qualified name of a Java class implementing the

-datatype.&nbsp; Generally this class must be a subclass of&nbsp; <tt>org.apache.tools.ant.types.DataType</tt>.</li>

-</ul>

-<p><i><b>Examples: </b> </i>The following is an example of an object

-declaration:

-<p><tt>&nbsp;&nbsp; &lt;extension point=&quot;org.eclipse.ant.core.antType&quot;&gt;</tt><br>

-<tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;antTask name=&quot;coolType&quot;

-class=&quot;com.example.CoolType&quot;/&gt;</tt><br>

-<tt>&nbsp;&nbsp; &lt;/extension&gt;</tt>

-<p><b><i>API Information</i>:</b><i> </i>The objects declared via this

-extension-point are accessible though the following API:<p><tt>&nbsp;&nbsp;

-org.eclipse.core.ant.AntPlugin.getTypeExtensions</tt>

-<p><b><i>Supplied Implementation:</i></b>  The platform itself supplies a number

-of datatypes including <tt>commaPatternSet</tt>.

-<p><a href="hglegal.htm"><img SRC="ngibmcpy.gif" ALT="Copyright IBM Corp. 2000, 2001.  All Rights Reserved." BORDER=0 height=12 width=195></a>

-</body>

-</html>

diff --git a/ant/org.eclipse.ant.core/os/linux/libcore_2_0_5.so b/ant/org.eclipse.ant.core/os/linux/libcore_2_0_5.so
deleted file mode 100644
index f28dcf6..0000000
--- a/ant/org.eclipse.ant.core/os/linux/libcore_2_0_5.so
+++ /dev/null
Binary files differ
diff --git a/ant/org.eclipse.ant.core/os/win32/core_2_0_5.dll b/ant/org.eclipse.ant.core/os/win32/core_2_0_5.dll
deleted file mode 100644
index 8395c07..0000000
--- a/ant/org.eclipse.ant.core/os/win32/core_2_0_5.dll
+++ /dev/null
Binary files differ
diff --git a/ant/org.eclipse.ant.core/plugin.properties b/ant/org.eclipse.ant.core/plugin.properties
deleted file mode 100644
index c3fe97e..0000000
--- a/ant/org.eclipse.ant.core/plugin.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-pluginName = Ant Build Tool Core

-objectsName = Ant Object Definitions

-tasksName = Ant Task Definitions

-typesName = Ant Type Definitions

diff --git a/ant/org.eclipse.ant.core/plugin.xml b/ant/org.eclipse.ant.core/plugin.xml
deleted file mode 100644
index 1d1bd4b..0000000
--- a/ant/org.eclipse.ant.core/plugin.xml
+++ /dev/null
@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<plugin

-   id="org.eclipse.ant.core"

-   name="%pluginName"

-   version="2.2.1"

-   provider-name="Object Technology International, Inc."

-   class="org.eclipse.ant.core.AntPlugin">

-<requires>

-   <import plugin="org.apache.xerces"/>

-   <import plugin="org.eclipse.core.resources"/>

-   <import plugin="org.apache.ant" export="true"/>

-</requires>

-

-<runtime>

-   <library name="antsupport.jar">

-      <export name="*"/>

-   </library>

-</runtime>

-

-<extension-point id="antObjects" name="%objectsName"/>

-<extension-point id="antTasks" name="%tasksName"/>

-<extension-point id="antTypes" name="%typesName"/>

-

-<extension

-      id="antRunner"

-      point="org.eclipse.core.runtime.applications">

-   <application>

-      <run

-            class="org.eclipse.ant.core.AntRunner">

-      </run>

-   </application>

-</extension>

-<extension

-      point="org.eclipse.ant.core.antTypes">

-   <antType

-         name="commapatternset"

-         class="org.eclipse.ant.core.CommaPatternSet">

-   </antType>

-   <antType

-         name="command"

-         class="org.eclipse.ant.core.CommandDataType">

-   </antType>

-</extension>

-<extension

-      point="org.eclipse.ant.core.antTasks">

-   <antTask

-         name="incremental"

-         class="org.eclipse.ant.core.IncrementalBuild">

-   </antTask>

-   <antTask

-         name="eclipse.incremental"

-         class="org.eclipse.ant.core.IncrementalBuild">

-   </antTask>

-   <antTask

-         name="javac"

-         class="org.eclipse.ant.core.EclipseJavac">

-   </antTask>

-   <antTask

-         name="copy"

-         class="org.eclipse.ant.core.EclipseCopy">

-   </antTask>

-   <antTask

-         name="refreshLocal"

-         class="org.eclipse.ant.core.RefreshLocal">

-   </antTask>

-   <antTask

-         name="eclipse.refreshLocal"

-         class="org.eclipse.ant.core.RefreshLocal">

-   </antTask>

-   <antTask

-         name="eclipse.createProject"

-         class="org.eclipse.ant.core.CreateProject">

-   </antTask>

-   <antTask

-         name="eclipse.deleteProject"

-         class="org.eclipse.ant.core.DeleteProject">

-   </antTask>

-   <antTask

-         name="eclipse.moveProject"

-         class="org.eclipse.ant.core.MoveProject">

-   </antTask>

-   <antTask

-         name="eclipse.copyProject"

-         class="org.eclipse.ant.core.CopyProject">

-   </antTask>

-   <antTask

-         name="eclipse.convertPath"

-         class="org.eclipse.ant.core.ConvertPath">

-   </antTask>

-</extension>

-</plugin>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntNotificationManager.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntNotificationManager.java
deleted file mode 100644
index 89ba5dd..0000000
--- a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntNotificationManager.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * (c) Copyright 2001 MyCorporation.
- * All Rights Reserved.
- */
-package org.eclipse.ant.core;
-
-import java.util.*;
-
-import org.apache.tools.ant.BuildEvent;
-
-/**
- * Proxy class for providing updates to several ant listeners.
- */
-public class AntNotificationManager implements IAntRunnerListener {
-	protected List listeners = Collections.synchronizedList(new ArrayList());
-
-/**
- * Registers an ant build listener for notification.
- */
-public void addListener(IAntRunnerListener listener) {
-	listeners.add(listener);
-}
-protected IAntRunnerListener[] getListeners() {
-	return (IAntRunnerListener[]) listeners.toArray(new IAntRunnerListener[listeners.size()]);
-}
-/**
- * @see IAntRunnerListener#messageLogged(String, int)
- */
-public void messageLogged(String message, int priority) {
-	IAntRunnerListener[] list = getListeners();
-	for (int i = 0; i < list.length; i++) {
-		list[i].messageLogged(message, priority);
-	}
-}
-/**
- * @see IAntRunnerListener#executeTargetStarted(BuildEvent)
- */
-public void executeTargetStarted(BuildEvent event) {
-	IAntRunnerListener[] list = getListeners();
-	for (int i = 0; i < list.length; i++) {
-		list[i].executeTargetStarted(event);
-	}
-}
-/**
- * @see IAntRunnerListener#executeTargetFinished(BuildEvent)
- */
-public void executeTargetFinished(BuildEvent event) {
-	IAntRunnerListener[] list = getListeners();
-	for (int i = 0; i < list.length; i++) {
-		list[i].executeTargetFinished(event);
-	}
-}
-/**
- * @see BuildListener#buildStarted(BuildEvent)
- */
-public void buildStarted(BuildEvent event) {
-	IAntRunnerListener[] list = getListeners();
-	for (int i = 0; i < list.length; i++) {
-		list[i].buildStarted(event);
-	}
-}
-/**
- * @see BuildListener#buildFinished(BuildEvent)
- */
-public void buildFinished(BuildEvent event) {
-	IAntRunnerListener[] list = getListeners();
-	for (int i = 0; i < list.length; i++) {
-		list[i].buildFinished(event);
-	}
-}
-/**
- * Removes an ant listener from the list.
- */
-public void removeListener(IAntRunnerListener listener) {
-	listeners.remove(listener);
-}
-/**
- * @see BuildListener#targetStarted(BuildEvent)
- */
-public void targetStarted(BuildEvent event) {
-	IAntRunnerListener[] list = getListeners();
-	for (int i = 0; i < list.length; i++) {
-		list[i].targetStarted(event);
-	}
-}
-/**
- * @see BuildListener#targetFinished(BuildEvent)
- */
-public void targetFinished(BuildEvent event) {
-	IAntRunnerListener[] list = getListeners();
-	for (int i = 0; i < list.length; i++) {
-		list[i].targetFinished(event);
-	}
-}
-/**
- * @see BuildListener#taskStarted(BuildEvent)
- */
-public void taskStarted(BuildEvent event) {
-	IAntRunnerListener[] list = getListeners();
-	for (int i = 0; i < list.length; i++) {
-		list[i].taskStarted(event);
-	}
-}
-/**
- * @see BuildListener#taskFinished(BuildEvent)
- */
-public void taskFinished(BuildEvent event) {
-	IAntRunnerListener[] list = getListeners();
-	for (int i = 0; i < list.length; i++) {
-		list[i].taskFinished(event);
-	}
-}
-/**
- * @see BuildListener#messageLogged(BuildEvent)
- */
-public void messageLogged(BuildEvent event) {
-	IAntRunnerListener[] list = getListeners();
-	for (int i = 0; i < list.length; i++) {
-		list[i].messageLogged(event);
-	}
-}
-}
diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntPlugin.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntPlugin.java
deleted file mode 100644
index ed8daad..0000000
--- a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntPlugin.java
+++ /dev/null
@@ -1,187 +0,0 @@
-package org.eclipse.ant.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.core.runtime.*;

-import java.util.HashMap;

-import java.util.Map;

-import org.apache.tools.ant.Task;

-

-/**

- * The plug-in runtime class for the Ant Core plug-in.

- * <p>

- * <b>Note:</b> This class/interface is part of an interim API that is still under 

- * development and expected to change significantly before reaching stability. 

- * It is being made available at this early stage to solicit feedback from pioneering 

- * adopters on the understanding that any code that uses this API will almost 

- * certainly be broken (repeatedly) as the API evolves.

- * </p>

- */

-

-public final class AntPlugin extends Plugin {

-	/**

-	 * The single instance of this plug-in runtime class.

-	 */

-	private static AntPlugin plugin;

-

-	/**

-	 * Table of Ant tasks added through the antTasks extension point

-	 */

-	private Map taskExtensions;

-

-	/**

-	 * Table of Ant objects added through the antObjects extension point

-	 */

-	private Map objectExtensions;

-

-	/**

-	 * Table of Ant types added through the antTypes extension point

-	 */

-	private Map typeExtensions;

-	

-	/**

-	 * The notification manager for registering build listeners.

-	 */

-	private AntNotificationManager notificationManager = new AntNotificationManager();

-

-	/**

-	 * Unique identifier constant (value <code>"org.eclipse.ant.core"</code>)

-	 * for the Ant plug-in.

-	 */

-	public static final String PI_ANT= "org.eclipse.ant.core";

-

-	/**

-	 * Simple identifier constant (value <code>"antTasks"</code>)

-	 * for the Ant tasks extension point.

-	 */

-	public static final String PT_ANTTASKS = "antTasks";

-

-	/**

-	 * Simple identifier constant (value <code>"antTypes"</code>)

-	 * for the Ant types extension point.

-	 */

-	public static final String PT_ANTTYPES = "antTypes";

-

-	/**

-	 * Simple identifier constant (value <code>"antObjects"</code>)

-	 * for the Ant objects extension point.

-	 */

-	public static final String PT_ANTOBJECTS = "antObjects";

-

-	/**

-	 * Simple identifier constant (value <code>"class"</code>)

-	 * of a tag that appears in Ant extensions.

-	 */

-	public static final String CLASS = "class";

-

-	/**

-	 * Simple identifier constant (value <code>"class"</code>)

-	 * of a tag that appears in Ant extensions.

-	 */

-	public static final String NAME = "name";

-

-/** 

- * Constructs an instance of this plug-in runtime class.

- * <p>

- * Instances of plug-in runtime classes are automatically created 

- * by the platform in the course of plug-in activation.

- * <b>No client or plug-in should ever explicitly instantiate

- * a plug-in runtime class</b>.

- * </p>

- * 

- * @param pluginDescriptor the plug-in descriptor for the

- *   Resources plug-in

- */

-public AntPlugin(IPluginDescriptor pluginDescriptor) {

-	super(pluginDescriptor);

-	plugin = this;

-}

-/**

- * Gets the notificationManager.

- * @return Returns the AntNotificationManager

- */

-public AntNotificationManager getNotificationManager() {

-	return notificationManager;

-}

-/**

- * Returns the internal collection of object extensions.

- * 

- * @return the internal collection of object extensions

- */	

-public Map getObjectExtensions() {

-	return objectExtensions;

-}

-

-/**

- * Returns this plug-in.

- *

- * @return the single instance of this plug-in runtime class

- */

-public static AntPlugin getPlugin() {

-	return plugin;

-}

-

-/**

- * Returns the internal collection of task extensions.

- * 

- * @return the internal collection of task extensions

- */	

-public Map getTaskExtensions() {

-	return taskExtensions;

-}

-

-/**

- * Returns the internal collection of type extensions.

- * 

- * @return the internal collection of type extensions

- */	

-public Map getTypeExtensions() {

-	return typeExtensions;

-}

-

-/**

- * This implementation of the corresponding <code>Plugin</code> method

- * 

- * @exception CoreException if this method fails to shut down this plug-in

- */

-public void shutdown() throws CoreException {

-}

-

-/**

- * This implementation of the corresponding <code>Plugin</code> method

- * 

- * @exception CoreException if this plug-in did not start up properly

- */

-public void startup() throws CoreException {

-	IExtensionPoint extensionPoint = getDescriptor().getExtensionPoint(PT_ANTTASKS);

-	if (extensionPoint != null) {

-		IConfigurationElement[] extensions = extensionPoint.getConfigurationElements();

-		taskExtensions = new HashMap(extensions.length);

-		for (int i = 0; i < extensions.length; i++) {

-			String name = extensions[i].getAttribute(NAME);

-			taskExtensions.put(name, extensions[i]);

-		}

-	}

-	extensionPoint = getDescriptor().getExtensionPoint(PT_ANTTYPES);

-	if (extensionPoint != null) {

-		IConfigurationElement[] extensions = extensionPoint.getConfigurationElements();

-		typeExtensions = new HashMap(extensions.length);

-		for (int i = 0; i < extensions.length; i++) {

-			String name = extensions[i].getAttribute(NAME);

-			typeExtensions.put(name, extensions[i]);

-		}

-	}

-	extensionPoint = getDescriptor().getExtensionPoint(PT_ANTOBJECTS);

-	if (extensionPoint != null) {

-		IConfigurationElement[] extensions = extensionPoint.getConfigurationElements();

-		objectExtensions = new HashMap(extensions.length);

-		for (int i = 0; i < extensions.length; i++) {

-			String name = extensions[i].getAttribute(NAME);

-			objectExtensions.put(name, extensions[i]);

-		}

-	}

-}

-}

diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntRunner.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntRunner.java
deleted file mode 100644
index 8ac9cdd..0000000
--- a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntRunner.java
+++ /dev/null
@@ -1,720 +0,0 @@
-package org.eclipse.ant.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-/*

- * The Apache Software License, Version 1.1

- *

- * Copyright (c) 1999, 2000 The Apache Software Foundation.  All rights

- * reserved.

- *

- * Redistribution and use in source and binary forms, with or without

- * modification, are permitted provided that the following conditions

- * are met:

- *

- * 1. Redistributions of source code must retain the above copyright

- *    notice, this list of conditions and the following disclaimer.

- *

- * 2. Redistributions in binary form must reproduce the above copyright

- *    notice, this list of conditions and the following disclaimer in

- *    the documentation and/or other materials provided with the

- *    distribution.

- *

- * 3. The end-user documentation included with the redistribution, if

- *    any, must include the following acknowlegement:

- *       "This product includes software developed by the

- *        Apache Software Foundation (http://www.apache.org/)."

- *    Alternately, this acknowlegement may appear in the software itself,

- *    if and wherever such third-party acknowlegements normally appear.

- *

- * 4. The names "The Jakarta Project", "Ant", and "Apache Software

- *    Foundation" must not be used to endorse or promote products derived

- *    from this software without prior written permission. For written

- *    permission, please contact apache@apache.org.

- *

- * 5. Products derived from this software may not be called "Apache"

- *    nor may "Apache" appear in their names without prior written

- *    permission of the Apache Group.

- *

- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED

- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES

- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE

- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR

- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,

- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT

- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF

- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND

- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,

- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT

- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF

- * SUCH DAMAGE.

- * ====================================================================

- *

- * This software consists of voluntary contributions made by many

- * individuals on behalf of the Apache Software Foundation.  For more

- * information on the Apache Software Foundation, please see

- * <http://www.apache.org/>.

- */

-import org.eclipse.core.boot.IPlatformRunnable;

-import java.io.*;

-import java.util.*;

-import org.apache.tools.ant.*;

-

-/**

- * Eclipse application entry point into Ant. Derived from the original Ant Main class

- * to ensure that the functionality was equivalent when running in the platform.

- * <p>

- * <b>Note:</b> This class/interface is part of an interim API that is still under 

- * development and expected to change significantly before reaching stability. 

- * It is being made available at this early stage to solicit feedback from pioneering 

- * adopters on the understanding that any code that uses this API will almost 

- * certainly be broken (repeatedly) as the API evolves.

- * </p>

- */

-

-public class AntRunner implements IPlatformRunnable {

-

-	/** The default build file name */

-	public static final String DEFAULT_BUILD_FILENAME = "build.xml";

-

-	/** Our current message output status. Follows Project.MSG_XXX */

-	private int msgOutputLevel = Project.MSG_INFO;

-

-	/** File that we are using for configuration */

-	private File buildFile; /** null */

-

-	/** Stream that we are using for logging */

-	private PrintStream out = System.out;

-

-	/** Stream that we are using for logging error messages */

-	private PrintStream err = System.err;

-

-	/** The build targets */

-	private Vector targets = new Vector(5);

-

-	/** Set of properties that can be used by tasks */

-	private Properties definedProps = new Properties();

-

-	/** Names of classes to add as listeners to project */

-	private Vector listeners = new Vector(5);

-

-	/** Names of classes to add as listeners to project */

-	private IAntRunnerListener clientListener;

-

-	/**

-	 * The Ant logger class. There may be only one logger. It will have the

-	 * right to use the 'out' PrintStream. The class must implements the BuildLogger

-	 * interface

-	 */

-	private String loggerClassname = null;

-

-	/**

-	 * Indicates whether output to the log is to be unadorned.

-	 */

-	private boolean emacsMode = false;

-

-	/**

-	 * Indicates if this ant should be run.

-	 */

-	private boolean readyToRun = false;

-

-	/**

-	 * Indicates we should only parse and display the project help information

-	 */

-	private boolean projectHelp = false;

-	

-    private static String antVersion = null;

-    

-    /**

-	 * Adds a logger and all registered build listeners to an ant project.

-	 * 

-	 * @param project the project to add listeners to

-	 */

-protected void addBuildListeners(Project project) {

-	// If we have a client listener then use that.  Otherwise add the default listener

-	if (clientListener != null)

-		project.addBuildListener(clientListener);

-	else

-		project.addBuildListener(createLogger());

-	for (int i= 0; i < listeners.size(); i++) {

-		String className = (String) listeners.elementAt(i);

-		try {

-			BuildListener listener = (BuildListener) Class.forName(className).newInstance();

-			project.addBuildListener(listener);

-		} catch (Exception exc) {

-			throw new BuildException(Policy.bind("exception.cannotCreateListener",className), exc);

-		}

-	}

-}

-

-/**

- * 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

- */

-private BuildLogger createLogger() {

-	BuildLogger logger = null;

-	if (loggerClassname != null) {

-		try {

-			logger = (BuildLogger) (Class.forName(loggerClassname).newInstance());

-		} catch (ClassCastException e) {

-			System.err.println(Policy.bind("exception.loggerDoesNotImplementInterface",loggerClassname));

-			throw new RuntimeException();

-		} catch (Exception e) {

-			System.err.println(Policy.bind("exception.cannotCreateLogger",loggerClassname));

-			throw new RuntimeException();

-		}

-	} else {

-		logger = new DefaultLogger();

-	}

-	logger.setMessageOutputLevel(msgOutputLevel);

-	logger.setOutputPrintStream(out);

-	logger.setErrorPrintStream(err);

-	logger.setEmacsMode(emacsMode);

-	return logger;

-}

-

-/**

- * Search parent directories for the build file.

- *

- * <p>Takes the given target as a suffix to append to each

- * parent directory in seach of a build file.  Once the

- * root of the file-system has been reached an exception

- * is thrown.

- * </p>

- * @param suffix Suffix filename to look for in parents.

- * @return A handle to the build file

- * @exception BuildException Failed to locate a build file

- */

-private File findBuildFile(String start, String suffix) throws BuildException {

-	logMessage(Policy.bind("info.searchingFor",suffix), Project.MSG_INFO);

-	File parent = new File(new File(start).getAbsolutePath());

-	File file = new File(parent, suffix);

-	// check if the target file exists in the current directory

-	while (!file.exists()) {

-		// change to parent directory

-		parent = getParentFile(parent);

-		// if parent is null, then we are at the root of the fs,

-		// complain that we can't find the build file.

-		if (parent == null)

-			throw new BuildException(Policy.bind("exception.noBuildFile"));

-		// refresh our file handle

-		file = new File(parent, suffix);

-	}

-	return file;

-}

-

-/**

- * Returns the appropriate insertion index for a given string into a sorted collection.

- * 

- * @return the insertion index

- * @param names the initial collection of sorted strings

- * @param name the string whose insertion index into <code>names</code> is to be determined

- */

-private int findTargetPosition(Vector names, String name) {

-	int result = names.size();

-	for (int i = 0; i < names.size() && result == names.size(); i++) {

-		if (name.compareTo((String) names.elementAt(i)) < 0)

-			result = i;

-	}

-	return result;

-}

-

-/**

- * Helper to get the parent file for a given file.

- * <p>Added to simulate File.getParentFile() from JDK 1.2.</p>

- *

- * @param file File

- * @return Parent file or null if none

- */

-private File getParentFile(File file) {

-	String filename = file.getAbsolutePath();

-	file = new File(filename);

-	filename = file.getParent();

-	logMessage(Policy.bind("info.searchingIn",filename), Project.MSG_VERBOSE);

-	return (filename == null) ? null : new File(filename);

-}

-private void logMessage(String message, int severity) {

-	if (clientListener != null)

-		clientListener.messageLogged(message, severity);

-}

-/**

- * Command-line invocation method.

- * 

- * @param args the string arguments present on the command line

- */

-public static void main(String[] args) throws Exception {

-	new AntRunner().run(args);

-}

-

-/**

- * Equivalent to the standard command-line invocation method except

- * that command-line arguments are provided in the form of a string

- * instead of an array.

- * 

- * @param argString the string arguments present on the command line

- */

-public static void main(String argString) throws Exception {

-	main(tokenizeArgs(argString));

-}

-

-/**

- * Returns the output message level that has been requested by the

- * client.  This value will be one of <code>Project.MSG_ERR</code>,

- * <code>Project.MSG_WARN</code>, <code>Project.MSG_INFO</code>,

- * <code>Project.MSG_VERBOSE</code> or <code>Project.MSG_DEBUG</code>.

- * 

- * @see org.apache.tools.ant.Project

- * @return the output message level that has been requested by the client

- */

-public int getOutputMessageLevel() {

-	return msgOutputLevel;

-}

-

-/**

- * Prints the message of the Throwable if it is not null.

- * 

- * @param t the throwable whose message is to be displayed

- */

-private void printMessage(Throwable t) {

-	String message= t.getMessage();

-	if (message != null)

-		System.err.println(message);

-}

-

-/**

- * Logs a message with the client that lists the target names and optional descriptions

- * 

- * @param names the targets names

- * @param descriptions the corresponding descriptions

- * @param heading the message heading

- * @param maxlen maximum length that can be allocated for a name

- */

-private void printTargets(Vector names, Vector descriptions, String heading, int maxlen) {

-	// now, start printing the targets and their descriptions

-	String lSep = System.getProperty("line.separator");

-	// got a bit annoyed that I couldn't find a pad function

-	String spaces = "    ";

-	while (spaces.length() < maxlen) {

-		spaces += spaces;

-	}

-	StringBuffer msg = new StringBuffer();

-	msg.append(heading + lSep + lSep);

-	for (int i= 0; i < names.size(); i++) {

-		msg.append(" ");

-		msg.append(names.elementAt(i));

-		if (descriptions != null) {

-			msg.append(spaces.substring(0, maxlen - ((String) names.elementAt(i)).length() + 2));

-			msg.append(descriptions.elementAt(i));

-		}

-		msg.append(lSep);

-	}

-	logMessage(msg.toString(), Project.MSG_INFO);

-}

-

-/**

- * Logs a message with the client that lists the targets

- * in a project

- * 

- * @param project the project to list targets from

- */

-private void printTargets(Project project) {

-    // find the target with the longest name

-    int maxLength = 0;

-    Enumeration ptargets = project.getTargets().elements();

-    String targetName;

-    String targetDescription;

-    Target currentTarget;

-    // split the targets in top-level and sub-targets depending

-    // on the presence of a description

-    Vector topNames = new Vector();

-    Vector topDescriptions = new Vector();

-    Vector subNames = new Vector();

-

-    while (ptargets.hasMoreElements()) {

-        currentTarget = (Target)ptargets.nextElement();

-        targetName = currentTarget.getName();

-        targetDescription = currentTarget.getDescription();

-        // maintain a sorted list of targets

-        if (targetDescription == null) {

-            int pos = findTargetPosition(subNames, targetName);

-            subNames.insertElementAt(targetName, pos);

-        } else {

-            int pos = findTargetPosition(topNames, targetName);

-            topNames.insertElementAt(targetName, pos);

-            topDescriptions.insertElementAt(targetDescription, pos);

-            if (targetName.length() > maxLength) {

-                maxLength = targetName.length();

-            }

-        }

-    }

-

-    String defaultTarget = project.getDefaultTarget();

-    if (defaultTarget != null && !"".equals(defaultTarget)) { // shouldn't need to check but...

-        Vector defaultName = new Vector();

-        Vector defaultDesc = null;

-        defaultName.addElement(defaultTarget);

-

-        int indexOfDefDesc = topNames.indexOf(defaultTarget);

-        if (indexOfDefDesc >= 0) {

-            defaultDesc = new Vector();

-            defaultDesc.addElement(topDescriptions.elementAt(indexOfDefDesc));

-        }

-        printTargets(defaultName, defaultDesc, Policy.bind("label.defaultTarget"), maxLength);

-

-    }

-

-    printTargets(topNames, topDescriptions, Policy.bind("label.mainTargets"), maxLength);

-    printTargets(subNames, null, Policy.bind("label.subTargets"), 0);

-}

-

-/**

- * Logs a message with the client outlining the usage of <b>Ant</b>.

- */

-private void printUsage() {

-	String lSep = System.getProperty("line.separator");

-	StringBuffer msg = new StringBuffer();

-	msg.append("ant [" + Policy.bind("usage.options") + "] [" 

-				+ Policy.bind("usage.target") + " ["

-				+ Policy.bind("usage.target") + "2 ["

-				+ Policy.bind("usage.target") + "3] ...]]" + lSep);

-	msg.append(Policy.bind("usage.Options") + ": " + lSep);

-	msg.append("  -help                  " + Policy.bind("usage.printMessage") + lSep);

-	msg.append("  -projecthelp           " + Policy.bind("usage.projectHelp") + lSep);

-	msg.append("  -version               " + Policy.bind("usage.versionInfo") + lSep);

-	msg.append("  -quiet                 " + Policy.bind("usage.beQuiet") + lSep);

-	msg.append("  -verbose               " + Policy.bind("usage.beVerbose") + lSep);

-	msg.append("  -debug                 " + Policy.bind("usage.printDebugInfo") + lSep);

-	msg.append("  -emacs                 " + Policy.bind("usage.emacsLog") + lSep);

-	msg.append("  -logfile <file>        " + Policy.bind("usage.useFile") + lSep);

-	msg.append("  -logger <classname>    " + Policy.bind("usage.logClass") + lSep);

-	msg.append("  -listener <classname>  " + Policy.bind("usage.listenerClass") + lSep);

-	msg.append("  -buildfile <file>      " + Policy.bind("usage.fileToBuild") + lSep);

-	msg.append("  -D<property>=<value>   " + Policy.bind("usage.propertiesValues") + lSep);

-	msg.append("  -find <file>           " + Policy.bind("usage.findFileToBuild") + lSep);

-	

-	logMessage(msg.toString(), Project.MSG_INFO);

-}

-

-/**

- * Logs a message with the client indicating the version of <b>Ant</b> that this class

- * fronts.

- */

-private void printVersion() {

- 	logMessage(getAntVersion(), Project.MSG_INFO);

-}

-

-public synchronized static String getAntVersion() throws BuildException {

-    if (antVersion == null) {

-        try {

-            Properties props = new Properties();

-            InputStream in =

-                Main.class.getResourceAsStream("/org/apache/tools/ant/version.txt");

-            props.load(in);

-            in.close();

-            

-            String lSep = System.getProperty("line.separator");

-            StringBuffer msg = new StringBuffer();

-            msg.append(Policy.bind("usage.antVersion"));

-            msg.append(props.getProperty("VERSION") + " ");

-            msg.append(Policy.bind("usage.compiledOn"));

-            msg.append(props.getProperty("DATE"));

-            antVersion = msg.toString();

-        } catch (IOException ioe) {

-            throw new BuildException(Policy.bind("exception.cannotLoadVersionInfo", ioe.getMessage()));

-        } catch (NullPointerException npe) {

-            throw new BuildException(Policy.bind("exception.cannotLoadVersionInfo", ""));

-        }

-    }

-    return antVersion;

-}

-

-/**

- * Processes the command line passed in by the client.

- * 

- * @execption BuildException occurs if the build file is not properly specified

- * @param args the collection of arguments

- */

-protected void processCommandLine(String[] args) throws BuildException {

-	String searchForThis = null;

-	// cycle through given args

-	boolean canBeTarget = false;

-	for (int i= 0; i < args.length; i++) {

-		String arg = args[i];

-		if (arg.equals("-help")) {

-			printUsage();

-			return;

-		} 

-		if (arg.equals("-version")) {

-			printVersion();

-			return;

-		}

-		if (arg.equals("-quiet") || arg.equals("-q")) {

-			msgOutputLevel = Project.MSG_WARN;

-			canBeTarget = false;

-		} else if (arg.equals("-verbose") || arg.equals("-v")) {

-			printVersion();

-			msgOutputLevel = Project.MSG_VERBOSE;

-			canBeTarget = false;

-		} else if (arg.equals("-debug")) {

-			printVersion();

-			msgOutputLevel = Project.MSG_DEBUG;

-			canBeTarget = false;

-		} else if (arg.equals("-logfile") || arg.equals("-l")) {

-			try {

-				File logFile = new File(args[i + 1]);

-				i++;

-				out= new PrintStream(new FileOutputStream(logFile));

-				err = out;

-				System.setOut(out);

-				System.setErr(out);

-				canBeTarget = false;

-			} catch (IOException ioe) {

-				logMessage(Policy.bind("exception.cannotWriteToLog"), Project.MSG_INFO);

-				return;

-			} catch (ArrayIndexOutOfBoundsException aioobe) {

-				logMessage(Policy.bind("exception.missingLogFile"), Project.MSG_INFO);

-				return;

-			}

-		} else if (arg.equals("-buildfile") || arg.equals("-file") || arg.equals("-f")) {

-			try {

-				buildFile = new File(args[i + 1]);

-				i++;

-				canBeTarget = true;

-			} catch (ArrayIndexOutOfBoundsException aioobe) {

-				logMessage(Policy.bind("exception.missingBuildFile"), Project.MSG_INFO);

-				return;

-			}

-		} else if (arg.equals("-listener")) {

-			try {

-				listeners.addElement(args[i + 1]);

-				i++;

-				canBeTarget = false;

-			} catch (ArrayIndexOutOfBoundsException aioobe) {

-				logMessage(Policy.bind("exception.missingClassName"), Project.MSG_INFO);

-				return;

-			}

-		} else if (arg.startsWith("-D")) {

-

-			/* Interestingly enough, we get to here when a user

-			 * uses -Dname=value. However, in some cases, the JDK

-			 * goes ahead * and parses this out to args

-			 *   {"-Dname", "value"}

-			 * so instead of parsing on "=", we just make the "-D"

-			 * characters go away and skip one argument forward.

-			 *

-			 * I don't know how to predict when the JDK is going

-			 * to help or not, so we simply look for the equals sign.

-			 */

-

-			String name = arg.substring(2, arg.length());

-			String value = null;

-			int posEq = name.indexOf("=");

-			if (posEq > 0) {

-				value = name.substring(posEq + 1);

-				name = name.substring(0, posEq);

-			} else if (i < args.length - 1)

-				value = args[++i];

-

-			definedProps.put(name, value);

-			canBeTarget = false;

-		} else if (arg.equals("-logger")) {

-			if (loggerClassname != null) {

-				logMessage(Policy.bind("exception.multipleLoggers"), Project.MSG_INFO);

-				return;

-			}

-			loggerClassname = args[++i];

-			canBeTarget = false;

-		} else if (arg.equals("-emacs")) {

-			emacsMode = true;

-			canBeTarget = false;

-		} else if (arg.equals("-projecthelp")) {

-			projectHelp = true; // set the flag to display the targets and quit

-			canBeTarget = false;

-		} else if (arg.equals("-find")) {

-			// eat up next arg if present, default to build.xml

-			if (i < args.length - 1)

-				searchForThis = args[++i];

-			else

-				searchForThis = DEFAULT_BUILD_FILENAME;

-			canBeTarget = false;

-		} else if (arg.startsWith("-")) {

-			// we don't have any more args to recognize!

-			logMessage(Policy.bind("exception.unknownArgument",arg), Project.MSG_INFO);

-//			printUsage();

-//			return;

-			canBeTarget = false;

-		} else {

-			if (canBeTarget)

-				targets.addElement(arg);

-		}

-	}

-	// if buildFile was not specified on the command line,

-	if (buildFile == null) {

-		// but -find then search for it

-		if (searchForThis != null)

-			buildFile = findBuildFile(".", searchForThis);

-		else

-			buildFile = new File(DEFAULT_BUILD_FILENAME);

-	}

-	// make sure buildfile exists

-	if (!buildFile.getAbsoluteFile().exists()) {

-		logMessage(Policy.bind("exception.buildFileNotFound",buildFile.toString()), Project.MSG_INFO);

-		throw new BuildException(Policy.bind("error.buildFailed"));

-	}

-	// make sure it's not a directory (this falls into the ultra

-	// paranoid lets check everything catagory

-	if (buildFile.isDirectory()) {

-		logMessage(Policy.bind("exception.buildFileIsDirectory",buildFile.toString()), Project.MSG_INFO);

-		throw new BuildException(Policy.bind("error.buildFailed"));

-	}

-	readyToRun= true;

-}

-

-/**

- * Invokes the building of a project object and executes a build using either a given

- * target or the default target.

- *

- * @param argArray the command line arguments

- * @exception execution exceptions

- */

-public Object run(Object argArray) throws Exception {

-	String[] args = (String[]) argArray;

-	processCommandLine(args);

-	try {

-		runBuild(null);

-	} catch (BuildException e) {

-		if (err != System.err)

-			printMessage(e);

-		throw e;

-	} catch (ThreadDeath e) {

-		throw e;

-	} catch (Throwable e) {

-		printMessage(e);

-	}

-	return null;

-}

-

-/**

- * Invokes the building of a project object and executes a build using either a given

- * target or the default target.

- *

- * @param argArray the command line arguments

- * @param listener the client listener

- * @exception execution exceptions

- */

-public Object run(Object argArray, IAntRunnerListener listener) throws Exception {

-	clientListener = listener;

-	return run(argArray);

-}

-

-/**

- * Executes the build.

- * 

- * @exception BuildException thrown if there is a problem during building.

- */

-private void runBuild(ClassLoader coreLoader) throws BuildException {

-

-    if (!readyToRun) {

-        return;

-    }

-

-	logMessage(Policy.bind("label.buildFile",buildFile.toString()),Project.MSG_INFO);

-

-    final EclipseProject project = new EclipseProject();

-    project.setCoreLoader(coreLoader);

-    

-    Throwable error = null;

-

-    try {

-        addBuildListeners(project);

-

-        PrintStream err = System.err;

-        PrintStream out = System.out;

-        SecurityManager oldsm = System.getSecurityManager();

-

-        try {

-            System.setOut(new PrintStream(new DemuxOutputStream(project, false)));

-            System.setErr(new PrintStream(new DemuxOutputStream(project, true)));

-            project.fireBuildStarted();

-            project.init();

-            project.setUserProperty("ant.version", getAntVersion());

-

-            // set user-define properties

-            Enumeration e = definedProps.keys();

-            while (e.hasMoreElements()) {

-                String arg = (String)e.nextElement();

-                String value = (String)definedProps.get(arg);

-                project.setUserProperty(arg, value);

-            }

-            

-            project.setUserProperty("ant.file" , buildFile.getAbsolutePath() );

-            

-            // first use the ProjectHelper to create the project object

-            // from the given build file.

-            try {

-                Class.forName("javax.xml.parsers.SAXParserFactory");

-                ProjectHelper.configureProject(project, buildFile);

-            } catch (NoClassDefFoundError ncdfe) {

-                throw new BuildException(Policy.bind("exception.noParser"), ncdfe);

-            } catch (ClassNotFoundException cnfe) {

-                throw new BuildException(Policy.bind("exception.noParser"), cnfe);

-            } catch (NullPointerException npe) {

-                throw new BuildException(Policy.bind("exception.noParser"), npe);

-            }

-            

-            // make sure that we have a target to execute

-            if (targets.size() == 0) {

-                targets.addElement(project.getDefaultTarget());

-            }

-            

-            if (!projectHelp) {

-                project.executeTargets(targets);

-            }

-        }

-        finally {

-            System.setOut(out);

-            System.setErr(err);

-        }

-        if (projectHelp) {

-            printDescription(project);

-            printTargets(project);

-        }

-    }

-    catch(RuntimeException exc) {

-        error = exc;

-        throw exc;

-    }

-    catch(Error err) {

-        error = err;

-        throw err;

-    }

-    finally {

-        project.fireBuildFinished(error);

-    }

-}

-/**

- * Print the project description, if any

- */

-private static void printDescription(Project project) {

-   if (project.getDescription() != null) {

-      System.out.println(project.getDescription());

-   }

-}

-

-/**

- * Returns a tokenized version of a string.

- * 

- * @return a tokenized version of a string

- * @param argString the original argument string

- */

-public static String[] tokenizeArgs(String argString) throws Exception {

-	Vector list = new Vector(5);

-	for (StringTokenizer tokens = new StringTokenizer(argString, " "); tokens.hasMoreElements();)

-		list.addElement((String) tokens.nextElement());

-	return (String[]) list.toArray(new String[list.size()]);

-}

-}

diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/CommaPatternSet.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/CommaPatternSet.java
deleted file mode 100644
index 87d08cc..0000000
--- a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/CommaPatternSet.java
+++ /dev/null
@@ -1,429 +0,0 @@
-package org.eclipse.ant.core;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-/*

- * The Apache Software License, Version 1.1

- *

- * Copyright (c) 2000 The Apache Software Foundation.  All rights 

- * reserved.

- *

- * Redistribution and use in source and binary forms, with or without

- * modification, are permitted provided that the following conditions

- * are met:

- *

- * 1. Redistributions of source code must retain the above copyright

- *    notice, this list of conditions and the following disclaimer. 

- *

- * 2. Redistributions in binary form must reproduce the above copyright

- *    notice, this list of conditions and the following disclaimer in

- *    the documentation and/or other materials provided with the

- *    distribution.

- *

- * 3. The end-user documentation included with the redistribution, if

- *    any, must include the following acknowlegement:  

- *       "This product includes software developed by the 

- *        Apache Software Foundation (http://www.apache.org/)."

- *    Alternately, this acknowlegement may appear in the software itself,

- *    if and wherever such third-party acknowlegements normally appear.

- *

- * 4. The names "The Jakarta Project", "Ant", and "Apache Software

- *    Foundation" must not be used to endorse or promote products derived

- *    from this software without prior written permission. For written 

- *    permission, please contact apache@apache.org.

- *

- * 5. Products derived from this software may not be called "Apache"

- *    nor may "Apache" appear in their names without prior written

- *    permission of the Apache Group.

- *

- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED

- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES

- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE

- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR

- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,

- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT

- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF

- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND

- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,

- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT

- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF

- * SUCH DAMAGE.

- * ====================================================================

- *

- * This software consists of voluntary contributions made by many

- * individuals on behalf of the Apache Software Foundation.  For more

- * information on the Apache Software Foundation, please see

- * <http://www.apache.org/>.

- */

-

-import org.apache.tools.ant.Project;

-import org.apache.tools.ant.ProjectHelper;

-import org.apache.tools.ant.BuildException;

-import org.apache.tools.ant.types.PatternSet;

-import org.apache.tools.ant.types.Reference;

-

-import java.io.*;

-import java.util.Enumeration;

-import java.util.Stack;

-import java.util.StringTokenizer;

-import java.util.Vector;

-

-/**

- * Named collection of include/exclude tags.  This is largely a copy of the original

- * Ant PatternSet data type.  Unfortunately, that datatype used both the comma and

- * the space character as a token to delimit pattern entries.  This makes it virtually

- * impossible to use for files which have spaces in their names.  The <code>CommaPatternSet</code>

- * is not particularly usable but it is easier than trying to deal with the original.

- * <p>

- * A complete copy was done to ensure that the behavior is correct.  Otherwise there is a

- * risk of getting some values from the private slots of the superclass and some from this

- * class.  Unfortunately, there is no way to link this support into <code>FileSet</code>.

- * </p>

- * <p>

- * <b>Note:</b> This class/interface is part of an interim API that is still under 

- * development and expected to change significantly before reaching stability. 

- * It is being made available at this early stage to solicit feedback from pioneering 

- * adopters on the understanding that any code that uses this API will almost 

- * certainly be broken (repeatedly) as the API evolves.

- * </p>

- * @see PatternSet

- */

-

-public class CommaPatternSet extends PatternSet {

-    private Vector includeList = new Vector();

-    private Vector excludeList = new Vector();

-    private Vector includesFileList = new Vector();

-    private Vector excludesFileList = new Vector();

-

-    public CommaPatternSet() {

-        super();

-    }

-

-	/**

-	 * Makes the receiver effectively a reference to another <code>PatternSet</code>

-	 * instance.

-	 *

-	 * <p>Once this element becomes a reference its internal attributes and nested elements

-	 * must not be modified.</p>

-	 * 

-	 * @param r the other <code>PatternSet</code>

-	 * @exception BuildException

-	 */

-    public void setRefid(Reference r) throws BuildException {

-        if (!includeList.isEmpty() || !excludeList.isEmpty()) {

-            throw tooManyAttributes();

-        }

-        super.setRefid(r);

-    }

-

-	/**

-	 * Adds a name entry to the receiver's include list.

-	 * 

-	 * @return the new name entry

-	 */

-    public NameEntry createInclude() {

-        if (isReference()) {

-            throw noChildrenAllowed();

-        }

-        return addPatternToList(includeList);

-    }

-

-    /**

-     * add a name entry on the include files list

-     */

-    public NameEntry createIncludesFile() {

-        if (isReference()) {

-            throw noChildrenAllowed();

-        }

-        return addPatternToList(includesFileList);

-    }

-    

-	/**

-	 * Adds a name entry to the receiver's exclude list.

-	 * 

-	 * @return the new name entry

-	 */

-    public NameEntry createExclude() {

-        if (isReference()) {

-            throw noChildrenAllowed();

-        }

-        return addPatternToList(excludeList);

-    }

-    

-    /**

-     * add a name entry on the exclude files list

-     */

-    public NameEntry createExcludesFile() {

-        if (isReference()) {

-            throw noChildrenAllowed();

-        }

-        return addPatternToList(excludesFileList);

-    }

-

-	/**

-	 * Sets the receiver's set of include patterns. Patterns can only be separated

-	 * by a comma and by not a space (unlike PatternSet).

-	 *

-	 * @param includes the include patterns

-	 */

-    public void setIncludes(String includes) {

-        if (isReference()) {

-            throw tooManyAttributes();

-        }

-        if (includes != null && includes.length() > 0) {

-            StringTokenizer tok = new StringTokenizer(includes, ",", false);

-            while (tok.hasMoreTokens()) {

-                createInclude().setName(tok.nextToken());

-            }

-        }

-    }

-

-	/**

-	 * Sets the receiver's set of exclude patterns. Patterns can only be separated

-	 * by a comma and by not a space (unlike PatternSet).

-	 *

-	 * @param excludes the exclude patterns

-	 */

-    public void setExcludes(String excludes) {

-        if (isReference()) {

-            throw tooManyAttributes();

-        }

-        if (excludes != null && excludes.length() > 0) {

-            StringTokenizer tok = new StringTokenizer(excludes, ",", false);

-            while (tok.hasMoreTokens()) {

-                createExclude().setName(tok.nextToken());

-            }

-        }

-    }

-

-	/**

-	 * Adds a name entry to the given list.

-	 * 

-	 * @return the new name entry

-	 * @param list the target list

-	 */

-    private NameEntry addPatternToList(Vector list) {

-        NameEntry result = new NameEntry();

-        list.addElement(result);

-        return result;

-    }

-

-	/**

-	 * Sets the name of the file containing the includes patterns.

-	 *

-	 * @param incl the file to retrieve the include patterns from

-	 */

-     public void setIncludesfile(File includesFile) throws BuildException {

-         if (isReference()) {

-             throw tooManyAttributes();

-         }

-         createIncludesFile().setName(includesFile.getAbsolutePath());

-     }

-

-	/**

-	 * Sets the name of the file containing the excludes patterns.

-	 *

-	 * @param excl the file to retrieve the exclude patterns from

-	 */

-     public void setExcludesfile(File excludesFile) throws BuildException {

-         if (isReference()) {

-             throw tooManyAttributes();

-         }

-         createExcludesFile().setName(excludesFile.getAbsolutePath());

-     }

-    

-	/**

-	 * Reads path matching patterns from a file and adds them to the

-	 * includes or excludes list as appropriate.

-	 * 

-	 * @param patternfile the source file

-	 * @param patternlist the list of patterns

-	 * @param p the target project

-	 * @exception BuildException thrown if the file cannot be read

-	 */

-    private void readPatterns(File patternfile, Vector patternlist, Project p)

-        throws BuildException {

-        

-        try {

-            // Get a FileReader

-            BufferedReader patternReader = 

-                new BufferedReader(new FileReader(patternfile)); 

-        

-            // Create one NameEntry in the appropriate pattern list for each 

-            // line in the file.

-            String line = patternReader.readLine();

-            while (line != null) {

-                if (line.length() > 0) {

-                    line = ProjectHelper.replaceProperties(p, line,

-                                                           p.getProperties());

-                    addPatternToList(patternlist).setName(line);

-                }

-                line = patternReader.readLine();

-            }

-        } catch(IOException ioe)  {

-			throw new BuildException(Policy.bind("exception.patternFile",patternfile.toString()),ioe);

-        }

-    }

-

-	/**

-	 * Adds the patterns of another <code>PatternSet</code> to the receiver.

-	 * 

-	 * @param other the other <code>PatternSet</code>

-	 * @param p the target project

-	 */

-    public void append(PatternSet other, Project p) {

-        if (isReference()) {

-            throw new BuildException(Policy.bind("exception.cannotAppendToReference"));

-        }

-

-        String[] incl = other.getIncludePatterns(p);

-        if (incl != null) {

-            for (int i=0; i<incl.length; i++) {

-                createInclude().setName(incl[i]);

-            }

-        }

-        

-        String[] excl = other.getExcludePatterns(p);

-        if (excl != null) {

-            for (int i=0; i<excl.length; i++) {

-                createExclude().setName(excl[i]);

-            }

-        }

-    }

-

-	/**

-	 * Returns the receiver's filtered include patterns.

-	 * 

-	 * @return the receiver's filtered include patterns.

-	 * @param the target project

-	 */

-    public String[] getIncludePatterns(Project p) {

-        if (isReference()) {

-            return getRef(p).getIncludePatterns(p);

-        } else {

-            readFiles(p);

-            return makeArray(includeList, p);

-        }

-    }

-

-	/**

-	 * Returns the receiver's filtered exclude patterns.

-	 * 

-	 * @return the receiver's filtered exclude patterns.

-	 * @param the target project

-	 */

-    public String[] getExcludePatterns(Project p) {

-        if (isReference()) {

-            return getRef(p).getExcludePatterns(p);

-        } else {

-            readFiles(p);

-            return makeArray(excludeList, p);

-        }

-    }

-

-	/**

-	 * Returns a boolean indicating whether this instance has any patterns.

-	 * 

-	 * @return a boolean indicating whether this instance has any patterns

-	 */

-    boolean hasPatterns() {

-        return includesFileList.size() > 0 || excludesFileList.size() > 0 

-            || includeList.size() > 0 || excludeList.size() > 0;

-    }

-

-	/**

-	 * Performs a check for circular references and returns the

-	 * referenced <code>PatternSet</code>.

-	 * 

-	 * @return the referenced <code>PatternSet</code>

-	 * @param the target project

-	 */

-    private PatternSet getRef(Project p) {

-        if (!checked) {

-            Stack stk = new Stack();

-            stk.push(this);

-            dieOnCircularReference(stk, p);

-        }

-        

-        Object o = ref.getReferencedObject(p);

-        if (!(o instanceof PatternSet)) {

-			throw new BuildException(Policy.bind("exception.notAPatternSet",ref.getRefId()));

-    	} else {

-            return (PatternSet) o;

-        }

-    }

-

-	/**

-	 * Returns a given vector of name entries as an array of strings.

-	 * 

-	 * @return a string array of name entries

-	 * @param list the original vector of name entries

-	 * @param p the target project

-	 */

-    private String[] makeArray(Vector list, Project p) {

-        if (list.size() == 0) return null;

-

-        Vector tmpNames = new Vector();

-        for (Enumeration e = list.elements() ; e.hasMoreElements() ;) {

-            NameEntry ne = (NameEntry)e.nextElement();

-            String pattern = ne.evalName(p);

-            if (pattern != null && pattern.length() > 0) {

-                tmpNames.addElement(pattern);

-            }

-        }

-

-        String result[] = new String[tmpNames.size()];

-        tmpNames.copyInto(result);

-        return result;

-    }

-        

-	/**

-	 * Reads includefile and excludefile if not already done.

-	 * 

-	 * @param p the target project

-	 */

-    private void readFiles(Project p) {

-        if (includesFileList.size() > 0) {

-            Enumeration e = includesFileList.elements();

-            while (e.hasMoreElements()) {

-                NameEntry ne = (NameEntry)e.nextElement();

-                String fileName = ne.evalName(p);

-                if (fileName != null) {

-                    File inclFile = p.resolveFile(fileName);

-                    if (!inclFile.exists())

-                        throw new BuildException("Includesfile "

-                                                 + inclFile.getAbsolutePath()

-                                                 + " not found.");

-                    readPatterns(inclFile, includeList, p);

-                }

-            }

-            includesFileList.removeAllElements();

-        }

-

-        if (excludesFileList.size() > 0) {

-            Enumeration e = excludesFileList.elements();

-            while (e.hasMoreElements()) {

-                NameEntry ne = (NameEntry)e.nextElement();

-                String fileName = ne.evalName(p);

-                if (fileName != null) {

-                    File exclFile = p.resolveFile(fileName);

-                    if (!exclFile.exists())

-                        throw new BuildException("Excludesfile "

-                                                 + exclFile.getAbsolutePath()

-                                                 + " not found.");

-                    readPatterns(exclFile, excludeList, p);

-                }

-            }

-            excludesFileList.removeAllElements();

-        }

-    }

-

-    public String toString()

-    {

-        return "patternSet{ includes: " + includeList + 

-            " excludes: " + excludeList + " }";

-    }

-}

-

diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/CommandDataType.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/CommandDataType.java
deleted file mode 100644
index 76542fc..0000000
--- a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/CommandDataType.java
+++ /dev/null
@@ -1,161 +0,0 @@
-package org.eclipse.ant.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.util.*;

-import org.apache.tools.ant.*;

-import org.apache.tools.ant.types.*;

-

-/**

- * An Ant data type used to specify commands (builder name and arguments for this builder)

- * while working on projects.

- * <p>

- * The name of the builder must be specified.<br>

- * It is posible to specify arguments with nested elements. It is also 

- * possible to reference this command using a reference id.

- * <p><p>

- * Example:<p>

- *	&lt;command name="Main Builder" id="mainBuilder"&gt;

- * 		&lt;eclipse.argument name="arg1" value="value1"/&gt;

- *  &lt;/command&gt;

- * <p>

- * <b>Note:</b> This class/interface is part of an interim API that is still under 

- * development and expected to change significantly before reaching stability. 

- * It is being made available at this early stage to solicit feedback from pioneering 

- * adopters on the understanding that any code that uses this API will almost 

- * certainly be broken (repeatedly) as the API evolves.

- * </p>

- * @see CreateProject, MoveProject, CopyProject

- */

-public class CommandDataType extends DataType {

-	

-	/**

-	 * The name of the builder. It is an identifier defined in the extension points of Eclipse.

-	 */

-	private String name = null;

-	

-	/**

-	 * A vector of Argument objects.

-	 */

-	private HashMap args = null;

-

-	/**

-	 * Inner class that represents a name-value pair.

-	 */

-	public class Argument {

-		private String name;

-

-		/**

-		 * Sets the name of this argument. 

-		 * @param name the name of this argument

-		 */

-		public void setName(String value) {

-			name= value;

-		}

-

-		/**

-		 * Sets the value of this argument. 

-		 * @param value the value of this argument

-		 */

-		public void setValue(String value) {

-			if (value == null)

-				args.remove(name);

-			else

-				args.put(name, value);

-		}

-	}

-	

-	

-/**

- * Constructs a new <code>CommandDataType</code> instance.

- */	

-public CommandDataType() {

-	super();

-	args= new HashMap(5);

-}

-

-public Argument createArgument() {

-	if (isReference())

-		throw new BuildException(Policy.bind("exception.noNestedElements"));

-    return new Argument();

-}

-

-/**

- * Makes this instance in effect a reference to another CommandDataType

- * instance.

- *

- * <p>You must not set attributes, just the reference ID.</p> 

- */

-public void setRefid(Reference r) throws BuildException {

-    if (name != null || !args.isEmpty())

-        throw new BuildException(Policy.bind("exception.noAttributes"));

-    super.setRefid(r);

-}

-

-/**

- * Sets the name of the builder.

- * 

- * @param the name of the builder		

- */

-public void setName(String name) {

-	if (isReference())

-		throw new BuildException(Policy.bind("exception.tooManyAttributes"));

-	this.name = name;

-}

-

-/**

- * Returns the name of the command builer, or the one of the command that is refered to 

- * via the "refid" attribute.

- * 

- * @param the project to which the CommandDataType belongs

- * @return the name of the builder	

- */

-public String getName(Project p) {

-	if (isReference())

-		return getRef(p).getName(p);

-	if (name == null)

-		throw new BuildException(Policy.bind("exception.commandMustHaveName"));

-	return name;

-}

-

-/**

- * Returns the arguments of the command, or the one of the command that is refered to 

- * via the "refid" attribute.<br>

- * The arguments are returned in a <code>HashMap</code> where the names of the arguments

- * are the keys and the values are the actual values in the hashMap.

- * 

- * @param the project to which the CommandDataType belongs

- * @return the hashMap containing the arguments

- */

-public HashMap getArguments(Project p) {

-	if (isReference())

-		return getRef(p).getArguments(p);

-	return args;

-}

-

-/**

- * Performs the check for circular references and returns the

- * referenced PatternSet.

- * 

- * @param the project to which the CommandDataType belongs

- */

-private CommandDataType getRef(Project p) {

-    if (!checked) {

-        Stack stk = new Stack();

-        stk.push(this);

-        dieOnCircularReference(stk, p);

-    }

-    

-    Object o = ref.getReferencedObject(p);

-    if (!(o instanceof CommandDataType)) {

-        throw new BuildException(Policy.bind("exception.doesntDenoteACommand", ref.getRefId()));

-    } else {

-        return (CommandDataType) o;

-    }

-}

-

-}

-

diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/ConvertPath.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/ConvertPath.java
deleted file mode 100644
index 9663275..0000000
--- a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/ConvertPath.java
+++ /dev/null
@@ -1,167 +0,0 @@
-package org.eclipse.ant.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.core.resources.*;

-import org.eclipse.core.runtime.*;

-import java.io.File;

-import org.apache.tools.ant.*;

-import org.apache.tools.ant.types.Path;

-

-/**

- * An Ant task which allows to switch from a file system path to a resource path, 

- * and vice versa, and store the result in a user property which name is set by the user. If the 

- * resource does not exist, the property is set to "false".

- * <p>

- * The attribute "property" must be specified, as well as only one of "fileSystemPath" or "resourcePath".

- * <p><p>

- * Example:<p>

- *	&lt;eclipse.convertPath fileSystemPath="D:\MyWork\MyProject" property="myProject.resourcePath"/&gt;

- * <p>

- * <b>Note:</b> This class/interface is part of an interim API that is still under 

- * development and expected to change significantly before reaching stability. 

- * It is being made available at this early stage to solicit feedback from pioneering 

- * adopters on the understanding that any code that uses this API will almost 

- * certainly be broken (repeatedly) as the API evolves.

- */

-public class ConvertPath extends Task {

-	

-	/**

-	 * The file system path.

-	 */

-	private IPath fileSystemPath = null;

-	

-	/**

-	 * The resource path.

-	 */

-	private IPath resourcePath = null;

-	

-	/**

-	 * The name of the property where the result may be stored.

-	 */

-	private String property = null;

-	

-	/**

-	 * The id of the new Path object that may be created.

-	 */

-	private String pathID = null;

-

-

-/**

- * Constructs a new <code>ConvertPath</code> instance.

- */

-public ConvertPath() {

-	super();

-}

-

-/**

- * Performs the project copy operation.

- * 

- * @exception BuildException thrown if a problem occurs during execution.

- */

-public void execute() throws BuildException {

-	

-	validateAttributes();

-	

-	if (fileSystemPath == null) 

-		// here, resourcePath is not null

-		convertResourcePathToFileSystemPath(resourcePath);

-	else

-		convertFileSystemPathToResourcePath(fileSystemPath);

-}

-

-protected void convertFileSystemPathToResourcePath(IPath path) {

-	IResource resource = ResourcesPlugin.getWorkspace().getRoot().getContainerForLocation(path);

-	if (resource == null)

-		throw new BuildException(Policy.bind("exception.noProjectMatchThePath", fileSystemPath.toOSString()));

-	

-	if (property != null)

-		project.setUserProperty(property, resource.getFullPath().toString());

-	if (pathID != null) {

-		Path newPath = new Path(project, resource.getFullPath().toString());

-		project.addReference(pathID, newPath);

-	}

-}

-

-protected void convertResourcePathToFileSystemPath(IPath path) {

-	IResource resource = null;

-	if (path.segmentCount() == 1)

-		resource = ResourcesPlugin.getWorkspace().getRoot().getProject(path.lastSegment());

-	else

-		resource = ResourcesPlugin.getWorkspace().getRoot().getFile(path);

-		

-	if (resource.getLocation() == null)

-		// can occur if the first segment is not a project

-		throw new BuildException(Policy.bind("exception.pathNotValid", path.toString()));

-	

-	if (property != null)

-		project.setUserProperty(property, resource.getLocation().toOSString());

-	if (pathID != null) {

-		Path newPath = new Path(project, resource.getLocation().toOSString());

-		project.addReference(pathID, newPath);

-	}

-}

-

-/**

- * Sets the file system path.

- * 

- * @param the file corresponding to the path supplied by the user

- */

-public void setFileSystemPath(File value) {

-	if (resourcePath != null)

-		throw new BuildException(Policy.bind("exception.cantUseBoth"));

-	fileSystemPath = new org.eclipse.core.runtime.Path(value.toString());

-}

-

-/**

- * Sets the resource path.

- * 

- * @param the path	

- */

-public void setResourcePath(String value) {

-	if (fileSystemPath != null)

-		throw new BuildException(Policy.bind("exception.cantUseBoth"));

-	resourcePath = new org.eclipse.core.runtime.Path(value);

-}

-

-/**

- * Sets the name of the property where the result may stored.

- * 

- * @param the name of the property		

- */

-public void setProperty(String value) {

-	property = value;

-

-}

-

-/**

- * Sets the id for the path where the result may be stored

- * 

- * @param the id of the path

- */

-public void setPathId(String value) {

-	pathID = value;

-}

-

-/**

- * Performs a validation of the receiver.

- * 

- * @exception BuildException thrown if a problem occurs during validation.

- */

-protected void validateAttributes() throws BuildException {

-	if (property == null && pathID == null) 

-		throw new BuildException(Policy.bind("exception.propertyAndPathIdNotSpecified"));

-

-	if (resourcePath != null && (!resourcePath.isValidPath(resourcePath.toString()) || resourcePath.isEmpty())) 

-		throw new BuildException(Policy.bind("exception.invalidPath", resourcePath.toOSString()));

-	else if (fileSystemPath != null && !fileSystemPath.isValidPath(fileSystemPath.toOSString())) 

-		throw new BuildException(Policy.bind("exception.invalidPath", fileSystemPath.toOSString()));

-		

-	if (resourcePath == null && fileSystemPath == null)

-		throw new BuildException(Policy.bind("exception.mustHaveOneAttribute"));

-}

-

-}

diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/CopyProject.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/CopyProject.java
deleted file mode 100644
index aedbcb5..0000000
--- a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/CopyProject.java
+++ /dev/null
@@ -1,286 +0,0 @@
-package org.eclipse.ant.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.io.File;

-import java.util.*;

-import org.eclipse.core.resources.*;

-import org.eclipse.core.runtime.*;

-import org.apache.tools.ant.*;

-

-/**

- * An Ant task which copies an existing Eclipse project.

- * <p>

- * The name of the project to copy (source), its new name (destination) and the "force" attribute 

- * must be specified.<br>

- * The comment, the nature(s) and the referenced projects are optional.<br>

- * Concerning the location attribute (the directory where the project will be copied on the file system),

- * there are several cases:<br>

- * <ul>

- * 	<li>If "location" is specified, the project will be copied to the given directory. 

- * 		To specify the default workspace directory, location should be set to "null".

- * 		However, it is not possible to copy the project in the same directory.</li>

- * 	<li>If "location" is not specified, the copy of the project will be located in the

- * 		default worksapce directory.</li>

- * </ul>

- * <br>

- * It is also possible to define commands with nested elements.

- * <p><p>

- * Example:<p>

- *	&lt;eclipse.copyProject source="Foo" destination="Bar" location="D:\MyWork\My Project"/&gt;

- * <p>

- * <b>Note:</b> This class/interface is part of an interim API that is still under 

- * development and expected to change significantly before reaching stability. 

- * It is being made available at this early stage to solicit feedback from pioneering 

- * adopters on the understanding that any code that uses this API will almost 

- * certainly be broken (repeatedly) as the API evolves.

- * </p>

- * @see IProject#copy

- * @see CommandDataType

- */

-public class CopyProject extends Task {

-	

-	/**

-	 * The name of the source project.

-	 */

-	private String source = null;

-	

-	/**

-	 * The name of the project after it has been copied.

-	 */

-	private String destination = null;

-

-	/**

-	 * The force attribute.

-	 */

-	private boolean force;

-	// variable used to know if the user has actually set the "force" attribute

-	private boolean isForceSet = false;

-	

-	/**

-	 * The folder where the user wants to move the project.

-	 */

-	private IPath location = null;

-	// variable used to know if the user has specified "null" or not

-	private boolean isLocationSet = false;

-	

-	/**

-	 * The natures, if the user wants to modify them.

-	 */

-	private String[] natures = null;

-	

-	/**

-	 * The comment, if the user wants to modify it

-	 */

-	private String comment = null;

-	

-	/**

-	 * The projects that the project references, if the user wants to modify them

-	 */

-	private IProject[] referencedProjects = null;

-

-	/**

-	 * The builders and their arguments (commands), if the user wants to modify them

-	 */

-	private Vector commands;

-	

-

-/**

- * Constructs a new <code>CopyProject</code> instance.

- */

-public CopyProject() {

-	super();

-	commands = new Vector();

-}

-

-/**

- * Performs the project copy operation.

- * 

- * @exception BuildException thrown if a problem occurs during execution.

- */

-public void execute() throws BuildException {

-	

-	validateAttributes();

-	

-	IProject newProject = ResourcesPlugin.getWorkspace().getRoot().getProject(source);

-	

-	try {

-		if (!newProject.exists()) 

-			throw new BuildException(Policy.bind("exception.projectDoesntExist", source));

-			

-		IProject temp = ResourcesPlugin.getWorkspace().getRoot().getProject(destination);

-		if (temp.exists())

-			throw new BuildException(Policy.bind("exception.nameAlreadyUsed", destination));

-			

-		if (!newProject.isOpen())

-			newProject.open(null);

-		

-		IProjectDescription desc = newProject.getDescription();

-		desc.setName(destination);

-		setLocationToDescription(newProject, desc);

-		

-		if (natures != null)

-			desc.setNatureIds(natures);

-		if (comment != null)

-			desc.setComment(comment);

-		if (referencedProjects != null)

-			desc.setReferencedProjects(referencedProjects);

-		if (!commands.isEmpty())

-			desc.setBuildSpec(createCommands(desc));

-			

-		newProject.copy(desc, force, null);

-		

-	} catch (CoreException e) {

-		throw new BuildException(e);

-	}

-}

-

-protected void setLocationToDescription(IProject newProject, IProjectDescription desc) {

-	if (isLocationSet) {

-		// the user wants to change the location.

-		// location can be null if the user set the attribute to "null" in order to copy the folder in the default workspace directory

-		if (location!= null && !ResourcesPlugin.getWorkspace().validateProjectLocation(newProject, location).isOK())

-			throw new BuildException(Policy.bind("exception.folderAlreadyUsedForAnotherProject"));

-	}

-	desc.setLocation(location);

-}

-

-protected ICommand[] createCommands(IProjectDescription description) {

-	ICommand[] commandArray = new ICommand[commands.size()];

-	int index = 0;

-	for (Iterator i = commands.iterator(); i.hasNext();) {

-		CommandDataType b = (CommandDataType) i.next();

-		commandArray[index] = description.newCommand();

-		// needs the project of this target to be able to get the name and the arguments

-		commandArray[index].setBuilderName(b.getName(project));

-		commandArray[index].setArguments(b.getArguments(project));

-		index++;

-	}

-	return commandArray;

-}

-

-/**

- * Sets the name of the source project that the user wants to copy.

- * 

- * @param the name of the project		

- */

-public void setSource(String value) {

-	source = value;

-}

-

-/**

- * Sets the new name for the project.

- * 

- * @param the new name	

- */

-public void setDestination(String value) {

-	destination = value;

-}

-

-/**

- * Sets the force attribute.

- * 

- * @param true/false		

- */

-public void setForce(boolean value) {

-	force = value;

-	isForceSet = true;

-}

-

-/**

- * Sets the directory where the project will be copied. The parameter is a String

- * and not a File because the user can specify "null" if he wants to refer to the

- * default workspace directory.

- * 

- * @param the name of the folder or "null" for the default workspace directory

- */

-public void setLocation(String value) {

-	isLocationSet = true;

-	if (value.equals("null"))

-		// we leave the location as it currently is (i.e. null)

-		return;

-	location = new Path(value);

-	if (!location.isAbsolute()) {

-		// the location can be relative if the user used a period in the path

-		org.eclipse.core.runtime.Path defaultPath = new org.eclipse.core.runtime.Path(project.getBaseDir().toString());

-		location = defaultPath.append(location);

-	}

-}

-

-/**

- * Sets the natures for the project. They are given as a list of nature identifers

- * separated by a coma.

- * 

- * @param the natures specified by the user

- */

-public void setNatures(String value) {

-	StringTokenizer tokenizer = new StringTokenizer(value, ",");

-	Vector vect = new Vector(1);

-	while (tokenizer.hasMoreTokens())

-		vect.add(((String)tokenizer.nextToken()).trim());

-	natures = new String[vect.size()];

-	vect.toArray(natures);

-}

-

-/**

- * Sets the comment for the project.

- * 

- * @param the comment

- */

-public void setComment(String value) {

-	comment = value;

-}

-

-/**

- * Sets the projects that the project references. They are given as a list of project names

- * separated by a coma.

- * 

- * @param the natures specified by the user

- */

-public void setReferencedProjects(String value) {

-	StringTokenizer tokenizer = new StringTokenizer(value, ",");

-	Vector vect = new Vector(1);

-	while (tokenizer.hasMoreTokens()) {

-		IProject currentProject = ResourcesPlugin.getWorkspace().getRoot().getProject(((String) tokenizer.nextToken()).trim());

-		if (currentProject.exists())

-			vect.add(currentProject);

-		else

-			throw new BuildException(Policy.bind("exception.unknownProject", currentProject.getName()));

-	}

-		

-	referencedProjects = new IProject[vect.size()];

-	vect.toArray(referencedProjects);

-}

-

-/**

- * Adds a CommandDataType object to the set of commands specified for this project.

- * 

- * @param the command

- */

-public void addCommand(CommandDataType command) {

-	commands.add(command);

-}

-

-/**

- * Performs a validation of the receiver.

- * 

- * @exception BuildException thrown if a problem occurs during validation.

- */

-protected void validateAttributes() throws BuildException {

-	if (source == null) 

-		throw new BuildException(Policy.bind("exception.sourceNotSpecified"));

-

-	if (destination == null) 

-		throw new BuildException(Policy.bind("exception.destinationNotSpecified"));

-

-	if (location!= null && !location.isValidPath(location.toOSString()))

-		throw new BuildException(Policy.bind("exception.invalidPath", location.toOSString()));

-	

-	if (!isForceSet)

-		throw new BuildException(Policy.bind("exception.forceNotSpecified"));

-}

-

-}

diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/CreateProject.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/CreateProject.java
deleted file mode 100644
index 089d5b9..0000000
--- a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/CreateProject.java
+++ /dev/null
@@ -1,220 +0,0 @@
-package org.eclipse.ant.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.core.resources.*;

-import org.eclipse.core.runtime.*;

-import java.io.File;

-import java.util.*;

-import org.apache.tools.ant.*;

-

-/**

- * An Ant task which creates an Eclipse project.

- * <p>

- * The name of the project to create must be specified.<br>

- * The directory where the project is located on the file system, the comment, the nature(s)

- * and the referenced projects are optional. If the directory is not specified, the project will be

- * located in the default workspace folder.<br>

- * It is also possible to define commands with nested elements.

- * <p><p>

- * Example:<p>

- *	&lt;eclipse.createProject name="My Project" location="D:\MyWork\FirstProject" 

- *  natures="org.eclipse.jdt.core.javanature"/&gt;

- * <p>

- * <b>Note:</b> This class/interface is part of an interim API that is still under 

- * development and expected to change significantly before reaching stability. 

- * It is being made available at this early stage to solicit feedback from pioneering 

- * adopters on the understanding that any code that uses this API will almost 

- * certainly be broken (repeatedly) as the API evolves.

- * </p>

- * @see IProject#create

- * @see CommandDataType

- */

-public class CreateProject extends Task {

-	

-	/**

-	 * The name of the project.

-	 */

-	private String name = null;

-	

-	/**

-	 * The location of the project.

-	 */

-	private IPath location = null;

-	

-	/**

-	 * The nature of the project.

-	 */

-	private String[] natures = null;

-	

-	/**

-	 * The comment for this project

-	 */

-	private String comment = null;

-	

-	/**

-	 * The projects that the project references

-	 */

-	private IProject[] referencedProjects = null;

-

-	/**

-	 * The builders and their arguments (commands)

-	 */

-	private Vector commands;

-

-

-/**

- * Constructs a new <code>CreateProject</code> instance.

- */

-public CreateProject() {

-	super();

-	commands = new Vector();

-}

-

-/**

- * Performs the project creation operation.

- * 

- * @exception BuildException thrown if a problem occurs during execution.

- */

-public void execute() throws BuildException {

-	

-	validateAttributes();

-	

-	IProject newProject = ResourcesPlugin.getWorkspace().getRoot().getProject(name);

-	

-	try {

-		if (newProject.exists())

-			throw new BuildException(Policy.bind("exception.nameAlreadyUsed", name));

-			

-		IProjectDescription description = ResourcesPlugin.getWorkspace().newProjectDescription(project.getName());

-		description.setName(name);

-		description.setLocation(location);

-		if (comment != null)

-			description.setComment(comment);

-		if (referencedProjects != null)

-			description.setReferencedProjects(referencedProjects);

-		if (!commands.isEmpty())

-			description.setBuildSpec(createCommands(description));

-		

-		newProject.create(description, null);

-		newProject.open(null);

-		

-		if (natures!=null) {

-			// should be able to do that while creating the project, but it doesn't seem to work until the project is opened.

-			// see Project#checkAccessible while JavaNature tries to configure the project.

-			IProjectDescription desc = newProject.getDescription();

-			description.setNatureIds(natures);

-			newProject.setDescription(desc, null);

-		}

-		

-	} catch (CoreException e) {

-		if (newProject.exists())

-			try {

-				newProject.delete(true, true, null);

-			} catch (CoreException ce) {

-			}

-		throw new BuildException(e);

-	}

-}

-

-protected ICommand[] createCommands(IProjectDescription description) {

-	ICommand[] commandArray = new ICommand[commands.size()];

-	int index = 0;

-	for (Iterator i = commands.iterator(); i.hasNext();) {

-		CommandDataType b = (CommandDataType) i.next();

-		commandArray[index] = description.newCommand();

-		// needs the project of this target to be able to get the name and the arguments

-		commandArray[index].setBuilderName(b.getName(project));

-		commandArray[index].setArguments(b.getArguments(project));

-		index++;

-	}

-	return commandArray;

-}

-

-/**

- * Sets the name of the project that the user wants to create.

- * 

- * @param the name of the project		

- */

-public void setName(String value) {

-	name = value;

-}

-

-/**

- * Sets the folder where the project should be created.

- * 

- * @param the file corresponding to the folder specified by the user

- */

-public void setLocation(File value) {

-	 location = new Path(value.toString());

-}

-

-/**

- * Sets the natures for the project. They are given as a list of nature identifers

- * separated by a coma.

- * 

- * @param the natures specified by the user

- */

-public void setNatures(String value) {

-	StringTokenizer tokenizer = new StringTokenizer(value, ",");

-	Vector vect = new Vector(1);

-	while (tokenizer.hasMoreTokens())

-		vect.add(((String)tokenizer.nextToken()).trim());

-	natures = new String[vect.size()];

-	vect.toArray(natures);

-}

-

-/**

- * Sets the comment for the project.

- * 

- * @param the comment

- */

-public void setComment(String value) {

-	comment = value;

-}

-

-/**

- * Sets the projects that the project references. They are given as a list of project names

- * separated by a coma.

- * 

- * @param the natures specified by the user

- */

-public void setReferencedProjects(String value) {

-	StringTokenizer tokenizer = new StringTokenizer(value, ",");

-	Vector vect = new Vector(1);

-	IWorkspaceRoot root =  ResourcesPlugin.getWorkspace().getRoot();

-	while (tokenizer.hasMoreTokens()) {

-		IProject currentProject = root.getProject(((String) tokenizer.nextToken()).trim());

-		vect.add(currentProject);

-	}

-		

-	referencedProjects = new IProject[vect.size()];

-	vect.toArray(referencedProjects);

-}

-

-/**

- * Adds a CommandDataType object to the set of commands specified for this project.

- * 

- * @param the command

- */

-public void addCommand(CommandDataType command) {

-	commands.add(command);

-}

-

-/**

- * Performs a validation of the receiver.

- * 

- * @exception BuildException thrown if a problem occurs during validation.

- */

-protected void validateAttributes() throws BuildException {

-	if (name == null) 

-		throw new BuildException(Policy.bind("exception.nameNotSpecified"));

-	

-	if (location!=null && !location.isValidPath(location.toOSString()))

-		throw new BuildException(Policy.bind("exception.invalidPath", location.toOSString()));

-}

-

-}

diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/DeleteProject.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/DeleteProject.java
deleted file mode 100644
index 8d87cdc..0000000
--- a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/DeleteProject.java
+++ /dev/null
@@ -1,128 +0,0 @@
-package org.eclipse.ant.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.core.resources.*;

-import org.eclipse.core.runtime.*;

-import org.apache.tools.ant.*;

-

-/**

- * An Ant task which deletes an existing Eclipse project.

- * <p>

- * The name of the project to delete, as well as the force and 

- * the deleteContent attributes, must be specified.

- * <p><p>

- * Example:<p>

- *	&lt;eclipse.deleteProject name="My Project" force="true" deleteContent="true"/&gt;

- * <p>

- * <b>Note:</b> This class/interface is part of an interim API that is still under 

- * development and expected to change significantly before reaching stability. 

- * It is being made available at this early stage to solicit feedback from pioneering 

- * adopters on the understanding that any code that uses this API will almost 

- * certainly be broken (repeatedly) as the API evolves.

- * </p>

- * @see IProject#delete

- */

-public class DeleteProject extends Task {

-	

-	/**

-	 * The name of the project.

-	 */

-	private String name = null;

-	

-	/**

-	 * The force attribute for the deletion.

-	 */

-	private boolean force;

-	// isForceSet is used to know if the user has actually set this attribute

-	private boolean isForceSet = false;

-	

-	/**

-	 * The deleteContent attribute for the deletion.

-	 */

-	private boolean deleteContent;

-	// same as for Force

-	private boolean isDeleteContentSet = false;

-	

-

-/**

- * Constructs a new <code>DeleteProject</code> instance.

- */

-public DeleteProject() {

-	super();

-}

-

-/**

- * Performs the project deletion operation.

- * 

- * @exception BuildException thrown if a problem occurs during execution.

- */

-public void execute() throws BuildException {

-	

-	validateAttributes();

-	

-	IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(name);

-	

-	try {

-		if (!project.exists())

-			throw new BuildException(Policy.bind("exception.projectDoesntExist", name));

-			

-		if (!project.isOpen())

-			project.open(null);

-		

-		project.delete(deleteContent, force, null);

-			

-	} catch (CoreException e) {

-		throw new BuildException(e);

-	}

-}

-

-/**

- * Sets the name of the project that the user wants to delete.

- * 

- * @param the name of the project		

- */

-public void setName(String value) {

-	name = value;

-}

-

-/**

- * Sets the force attribute.

- * 

- * @param true/false		

- */

-public void setForce(boolean value) {

-	force = value;

-	isForceSet = true;

-}

-

-/**

- * Sets the deleteContent attribute.

- * 

- * @param true/false		

- */

-public void setDeleteContent(boolean value) {

-	deleteContent = value;

-	isDeleteContentSet = true;

-}

-

-/**

- * Performs a validation of the receiver.

- * 

- * @exception BuildException thrown if a problem occurs during validation.

- */

-protected void validateAttributes() throws BuildException {

-	if (name == null) 

-		throw new BuildException(Policy.bind("exception.nameNotSpecified"));

-		

-	if (!isForceSet)

-		throw new BuildException(Policy.bind("exception.forceNotSpecified"));

-		

-	if (!isDeleteContentSet)

-		throw new BuildException(Policy.bind("exception.deleteContentNotSpecified"));

-}

-

-}

diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/EclipseAnt.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/EclipseAnt.java
deleted file mode 100644
index abc4694..0000000
--- a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/EclipseAnt.java
+++ /dev/null
@@ -1,346 +0,0 @@
-package org.eclipse.ant.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-/*

- * The Apache Software License, Version 1.1

- *

- * Copyright (c) 1999 The Apache Software Foundation.  All rights

- * reserved.

- *

- * Redistribution and use in source and binary forms, with or without

- * modification, are permitted provided that the following conditions

- * are met:

- *

- * 1. Redistributions of source code must retain the above copyright

- *    notice, this list of conditions and the following disclaimer.

- *

- * 2. Redistributions in binary form must reproduce the above copyright

- *    notice, this list of conditions and the following disclaimer in

- *    the documentation and/or other materials provided with the

- *    distribution.

- *

- * 3. The end-user documentation included with the redistribution, if

- *    any, must include the following acknowlegement:

- *       "This product includes software developed by the

- *        Apache Software Foundation (http://www.apache.org/)."

- *    Alternately, this acknowlegement may appear in the software itself,

- *    if and wherever such third-party acknowlegements normally appear.

- *

- * 4. The names "The Jakarta Project", "Ant", and "Apache Software

- *    Foundation" must not be used to endorse or promote products derived

- *    from this software without prior written permission. For written

- *    permission, please contact apache@apache.org.

- *

- * 5. Products derived from this software may not be called "Apache"

- *    nor may "Apache" appear in their names without prior written

- *    permission of the Apache Group.

- *

- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED

- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES

- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE

- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR

- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,

- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT

- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF

- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND

- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,

- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT

- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF

- * SUCH DAMAGE.

- * ====================================================================

- *

- * This software consists of voluntary contributions made by many

- * individuals on behalf of the Apache Software Foundation.  For more

- * information on the Apache Software Foundation, please see

- * <http://www.apache.org/>.

- */

-

-import org.apache.tools.ant.*;

-import org.apache.tools.ant.taskdefs.Property;

-import org.apache.tools.ant.taskdefs.Ant;

-import org.apache.tools.ant.util.FileUtils;

-import java.io.*;

-import java.util.*;

-

-/**

- * Call Ant in a sub-project.

- * This is a bulk copy of the original Ant task.  Unfortunately the original

- * created a new Project in which to run Ant.  This prevents people from

- * providing their own kind of Project and having that propogate into

- * the subprojects.

- * <p>

- * <b>Note:</b> This class/interface is part of an interim API that is still under 

- * development and expected to change significantly before reaching stability. 

- * It is being made available at this early stage to solicit feedback from pioneering 

- * adopters on the understanding that any code that uses this API will almost 

- * certainly be broken (repeatedly) as the API evolves.

- * </p>

- */

-public class EclipseAnt extends Ant {

-

-    /** the basedir where is executed the build file */

-    private File dir = null;

-    

-    /** the build.xml file (can be absolute) in this case dir will be ignored */

-    private String antFile = null;

-    

-    /** the target to call if any */

-    private String target = null;

-    

-    /** the output */

-    private String output = null;

-    

-    /** should we inherit properties from the parent ? */

-    private boolean inheritAll = true;

-    

-    /** the properties to pass to the new project */

-    private Vector properties = new Vector();

-    

-    /** the temporary project created to run the build file */

-    private Project newProject;

-

-	private final static String DEFAULT_ANTFILE = "build.xml";

-

-/**

- * Creates and returns a new <code>Property</code> for the receiver's

- * target project.

- * 

- * @return the new property

- */

-public Property createProperty() {

-    if (newProject == null) {

-        reinit();

-    }

-    Property p=(Property)newProject.createTask("property");

-    p.setUserProperty(true);

-    properties.addElement( p );

-    return p;

-}

-

-/**

- * Performs the execution.

- * 

- * @exception BuildException thrown if an execution problem occurs

- */

-public void execute() throws BuildException {

-    try {

-        if (newProject == null) {

-            reinit();

-        }

-    

-        if (dir == null) {

-            dir = project.getBaseDir();

-        }

-

-        initializeProject();

-

-        newProject.setBaseDir(dir);

-        newProject.setUserProperty("basedir" , dir.getAbsolutePath());

-        

-        // Override with local-defined properties

-        Enumeration e = properties.elements();

-        while (e.hasMoreElements()) {

-            Property p=(Property) e.nextElement();

-            p.execute();

-        }

-        

-        if (antFile == null){

-            antFile = DEFAULT_ANTFILE;

-        }

-

-        File file = FileUtils.newFileUtils().resolveFile(dir, antFile);

-        antFile = file.getAbsolutePath();

-

-        newProject.setUserProperty( "ant.file" , antFile );

-        ProjectHelper.configureProject(newProject, new File(antFile));

-        

-        if (target == null) {

-            target = newProject.getDefaultTarget();

-        }

-

-        // Are we trying to call the target in which we are defined?

-        if (newProject.getBaseDir().equals(project.getBaseDir()) &&

-            newProject.getProperty("ant.file").equals(project.getProperty("ant.file")) &&

-            getOwningTarget() != null &&

-            target.equals(this.getOwningTarget().getName())) { 

-

-            throw new BuildException(Policy.bind("exception.antTaskCallingParentTarget"));

-        }

-

-        newProject.executeTarget(target);

-    } finally {

-        // help the gc

-        newProject = null;

-    }

-}

-

-/**

- * Initializes the receiver.

- */

-public void init() {

-	// This method used to create a Project, not an EclipseProject.

-	// It has been changed so that it is possible to use Eclipse Ant tasks (such as eclipse.refreshLocal)

-	// in Ant scripts called by through an "ant" task. Indeed, only an EclipseProject knows how to find them.

-	// We need to check that it doesn't introduce new bugs.

-	newProject = new EclipseProject();

-	newProject.setJavaVersionProperty();

-	newProject.addTaskDefinition("property", 

-                         (Class)project.getTaskDefinitions().get("property"));

-}

-

-/**

- * Initializes the target project.

- */

-private void initializeProject() {

-    Vector listeners = project.getBuildListeners();

-    for (int i = 0; i < listeners.size(); i++) {

-        newProject.addBuildListener((BuildListener)listeners.elementAt(i));

-    }

-

-    if (output != null) {

-        try {

-            PrintStream out = new PrintStream(new FileOutputStream(output));

-            DefaultLogger logger = new DefaultLogger();

-            logger.setMessageOutputLevel(Project.MSG_INFO);

-            logger.setOutputPrintStream(out);

-            logger.setErrorPrintStream(out);

-            newProject.addBuildListener(logger);

-        }

-        catch( IOException ex ) {

-            log(Policy.bind("exception.cannotSetOutput",output));

-        }

-    }

-

-    Hashtable taskdefs = project.getTaskDefinitions();

-    Enumeration et = taskdefs.keys();

-    while (et.hasMoreElements()) {

-        String taskName = (String) et.nextElement();

-        Class taskClass = (Class) taskdefs.get(taskName);

-        newProject.addTaskDefinition(taskName, taskClass);

-    }

-

-    Hashtable typedefs = project.getDataTypeDefinitions();

-    Enumeration e = typedefs.keys();

-    while (e.hasMoreElements()) {

-        String typeName = (String) e.nextElement();

-        Class typeClass = (Class) typedefs.get(typeName);

-        newProject.addDataTypeDefinition(typeName, typeClass);

-    }

-

-    // set user-defined or all properties from calling project

-    Hashtable prop1;

-    if (inheritAll == true) {

-       prop1 = project.getProperties();

-    }

-    else {

-       prop1 = project.getUserProperties();

-

-       // set Java built-in properties separately,

-       // b/c we won't inherit them.

-       newProject.setSystemProperties();

-    }

-    

-    e = prop1.keys();

-    while (e.hasMoreElements()) {

-        String arg = (String) e.nextElement();

-        String value = (String) prop1.get(arg);

-        if (inheritAll == true){

-           newProject.setProperty(arg, value);

-        } else {

-           newProject.setUserProperty(arg, value);

-        }

-    }

-}

-

-/**

- * Reinitializes the receiver.

- */

-private void reinit() {

-    init();

-    for (int i=0; i<properties.size(); i++) {

-        Property p = (Property) properties.elementAt(i);

-        Property newP = (Property) newProject.createTask("property");

-        newP.setName(p.getName());

-        if (p.getValue() != null) {

-            newP.setValue(p.getValue());

-        }

-        if (p.getFile() != null) {

-            newP.setFile(p.getFile());

-        } 

-        if (p.getResource() != null) {

-            newP.setResource(p.getResource());

-        }

-        properties.setElementAt(newP, i);

-    }

-}

-

-/**

- * set the build file, it can be either absolute or relative.

- * If it is absolute, <tt>dir</tt> will be ignored, if it is

- * relative it will be resolved relative to <tt>dir</tt>.

- * 

- * @param s the <b>Ant</b> file location

- */

-public void setAntfile(String s) {

-    // @note: it is a string and not a file to handle relative/absolute

-    // otherwise a relative file will be resolved based on the current

-    // basedir.

-    this.antFile = s;

-}

-

-/**

- * Sets the receiver's target directory.

- * 

- * @param s the target directory

- */

-public void setDir(File d) {

-	this.dir = d;

-}

-

-/**

- * Sets the receiver's output destination.

- * 

- * @param s the output destination

- */

-public void setOutput(String s) {

-	this.output = s;

-}

-

-/**

- * set the target to execute. If none is defined it will

- * execute the default target of the build file

- * 

- * @param s the <b>Ant</b> target to execute

- */

-public void setTarget(String s) {

-	this.target = s;

-}

-protected void handleErrorOutput(String line) {

-    if (newProject != null) {

-        newProject.demuxOutput(line, true);

-    }

-    else {

-        super.handleErrorOutput(line);

-    }

-}

-protected void handleOutput(String line) {

-    if (newProject != null) {

-        newProject.demuxOutput(line, false);

-    }

-    else {

-        super.handleOutput(line);

-    }

-}

-/**

- * If true, inherit all properties from parent Project

- * If false, inherit only userProperties and those defined

- * inside the ant call itself

- */

-public void setInheritAll(boolean value) {

-   inheritAll = value;

-}

-}

diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/EclipseCompilerAdapterFactory.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/EclipseCompilerAdapterFactory.java
deleted file mode 100644
index bef6722..0000000
--- a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/EclipseCompilerAdapterFactory.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package org.eclipse.ant.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.core.runtime.IConfigurationElement;

-

-import org.apache.tools.ant.*;

-import org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory;

-import org.apache.tools.ant.taskdefs.compilers.CompilerAdapter;

-import java.util.Map;

-

-/**

- * Static helper functionality for finding the correct compiler adapter to use for the current

- * Javac task.  This class logically wrappers the standard Ant 

- * <code>CompilerAdapterFactory</code>.  It changes the behavior to use the

- * Ant plug-ins object class registry to find the compiler adapter class.  This is needed

- * because of the platform's class loading strategy (otherwise the Ant plug-in would likely not

- * be able to see the other classes).

- * <p>

- * <b>Note:</b> This class/interface is part of an interim API that is still under 

- * development and expected to change significantly before reaching stability. 

- * It is being made available at this early stage to solicit feedback from pioneering 

- * adopters on the understanding that any code that uses this API will almost 

- * certainly be broken (repeatedly) as the API evolves.

- * </p>

- */

-

-public class EclipseCompilerAdapterFactory {

-

-private EclipseCompilerAdapterFactory() {

-}

-/**

- * Returns the <code>CompilerAdapter</code> to use given a compiler type and task.

- * 

- * @return the compiler adapter to use

- * @param compilerType the type of compiler

- * @param task the task

- * @exception BuildException thrown if a problem occurs while returning the adapter

- */

-public static CompilerAdapter getCompiler(String compilerType, Task task) throws BuildException {

-	try {

-		return CompilerAdapterFactory.getCompiler(compilerType, task);

-	} catch (BuildException be) {

-		if (AntPlugin.getPlugin() == null)

-			throw be;

-		Map objects = AntPlugin.getPlugin().getObjectExtensions();

-		if (objects == null)

-			throw be;

-		IConfigurationElement declaration = (IConfigurationElement) objects.get(compilerType);

-		if (declaration == null)

-			throw be;

-		String className = declaration.getAttribute(AntPlugin.CLASS);

-		try {

-			Class clazz = declaration.getDeclaringExtension().getDeclaringPluginDescriptor().getPluginClassLoader().loadClass(className);

-			return (CompilerAdapter) clazz.newInstance();

-		} catch (ClassNotFoundException e) {

-			throw new BuildException(Policy.bind("exception.classNotFound",className), e);

-		} catch (ClassCastException e) {

-			throw new BuildException(Policy.bind("exception.classNotCompiler",className), e);

-		} catch (Exception e) {

-			throw new BuildException(Policy.bind("exception.creationProblem",className), e);

-		}

-	}

-}

-}

diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/EclipseCopy.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/EclipseCopy.java
deleted file mode 100644
index 0990d25..0000000
--- a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/EclipseCopy.java
+++ /dev/null
@@ -1,413 +0,0 @@
-package org.eclipse.ant.core;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-/*

- * The Apache Software License, Version 1.1

- *

- * Copyright (c) 1999 The Apache Software Foundation.  All rights

- * reserved.

- *

- * Redistribution and use in source and binary forms, with or without

- * modification, are permitted provided that the following conditions

- * are met:

- *

- * 1. Redistributions of source code must retain the above copyright

- *    notice, this list of conditions and the following disclaimer.

- *

- * 2. Redistributions in binary form must reproduce the above copyright

- *    notice, this list of conditions and the following disclaimer in

- *    the documentation and/or other materials provided with the

- *    distribution.

- *

- * 3. The end-user documentation included with the redistribution, if

- *    any, must include the following acknowlegement:

- *       "This product includes software developed by the

- *        Apache Software Foundation (http://www.apache.org/)."

- *    Alternately, this acknowlegement may appear in the software itself,

- *    if and wherever such third-party acknowlegements normally appear.

- *

- * 4. The names "The Jakarta Project", "Ant", and "Apache Software

- *    Foundation" must not be used to endorse or promote products derived

- *    from this software without prior written permission. For written

- *    permission, please contact apache@apache.org.

- *

- * 5. Products derived from this software may not be called "Apache"

- *    nor may "Apache" appear in their names without prior written

- *    permission of the Apache Group.

- *

- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED

- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES

- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE

- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR

- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,

- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT

- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF

- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND

- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,

- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT

- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF

- * SUCH DAMAGE.

- * ====================================================================

- *

- * This software consists of voluntary contributions made by many

- * individuals on behalf of the Apache Software Foundation.  For more

- * information on the Apache Software Foundation, please see

- * <http://www.apache.org/>.

- */

-

-import org.apache.tools.ant.*;

-import org.apache.tools.ant.taskdefs.Copy;

-import org.apache.tools.ant.types.*;

-import org.apache.tools.ant.util.*;

-

-import java.io.*;

-import java.util.*;

-/**

- * Ant task which replaces the standard Ant Copy task.  This version of the task

- * is necessary in order to copy permissions of files as well.

- * <p>

- * This task can be used as a direct replacement for the original Copy task

- * </p>

- * <p>

- * <b>Note:</b> This class/interface is part of an interim API that is still under 

- * development and expected to change significantly before reaching stability. 

- * It is being made available at this early stage to solicit feedback from pioneering 

- * adopters on the understanding that any code that uses this API will almost 

- * certainly be broken (repeatedly) as the API evolves.

- * </p>

- */

-public class EclipseCopy extends Copy {

-    protected File file = null;     // the source file 

-    protected File destFile = null; // the destination file 

-    protected File destDir = null;  // the destination directory

-    protected Vector filesets = new Vector();

-

-    protected boolean filtering = false;

-    protected boolean preserveLastModified = false;

-    protected boolean forceOverwrite = false;

-    protected boolean flatten = false;

-    protected int verbosity = Project.MSG_VERBOSE;

-    protected boolean includeEmpty = true;

-

-    protected Hashtable fileCopyMap = new Hashtable();

-    protected Hashtable dirCopyMap = new Hashtable();

-

-    protected Mapper mapperElement = null;

-    private Vector filterSets = new Vector();

-    private FileUtils fileUtils;

-    

-    public EclipseCopy() {

-    	super();

-        fileUtils = new EclipseFileUtils();

-    }

-

-    protected FileUtils getFileUtils() {return fileUtils;}

-

-    /**

-     * Sets a single source file to copy.

-     */

-    public void setFile(File file) {

-        this.file = file;

-    }

-

-    /**

-     * Sets the destination file.

-     */

-    public void setTofile(File destFile) {

-        this.destFile = destFile;

-    }

-

-    /**

-     * Sets the destination directory.

-     */

-    public void setTodir(File destDir) {

-        this.destDir = destDir;

-    }

-

-    /**

-     * Create a nested filterset

-     */

-    public FilterSet createFilterSet() {

-        FilterSet filterSet = new FilterSet();

-        filterSets.addElement(filterSet);

-        return filterSet;

-    }

-    

-    /**

-     * Give the copied files the same last modified time as the original files.

-     */

-    public void setPreserveLastModified(String preserve) {

-        preserveLastModified = Project.toBoolean(preserve);

-    }

-

-    /**

-     * Get the filtersets being applied to this operation.

-     *

-     * @return a vector of FilterSet objects

-     */

-    protected Vector getFilterSets() {

-        return filterSets;

-    }

-    

-    /**

-     * Sets filtering.

-     */

-    public void setFiltering(boolean filtering) {

-        this.filtering = filtering;

-    }

-

-    /**

-     * Overwrite any existing destination file(s).

-     */

-    public void setOverwrite(boolean overwrite) {

-        this.forceOverwrite = overwrite;

-    }

-

-    /**

-     * When copying directory trees, the files can be "flattened"

-     * into a single directory.  If there are multiple files with

-     * the same name in the source directory tree, only the first

-     * file will be copied into the "flattened" directory, unless

-     * the forceoverwrite attribute is true.

-     */

-    public void setFlatten(boolean flatten) {

-        this.flatten = flatten;

-    }

-

-    /**

-     * Used to force listing of all names of copied files.

-     */

-    public void setVerbose(boolean verbose) {

-        if (verbose) {

-            this.verbosity = Project.MSG_INFO;

-        } else {

-            this.verbosity = Project.MSG_VERBOSE;

-        } 

-    } 

-

-    /**

-     * Used to copy empty directories.

-     */

-    public void setIncludeEmptyDirs(boolean includeEmpty) {

-        this.includeEmpty = includeEmpty;

-    }

-

-    /**

-     * Adds a set of files (nested fileset attribute).

-     */

-    public void addFileset(FileSet set) {

-        filesets.addElement(set);

-    }

-

-    /**

-     * Defines the FileNameMapper to use (nested mapper element).

-     */

-    public Mapper createMapper() throws BuildException {

-        if (mapperElement != null) {

-            throw new BuildException("Cannot define more than one mapper",

-                                     location);

-        }

-        mapperElement = new Mapper(project);

-        return mapperElement;

-    }

-

-    /**

-     * Performs the copy operation.

-     */

-    public void execute() throws BuildException {

-        // make sure we don't have an illegal set of options

-        validateAttributes();   

-

-        // deal with the single file

-        if (file != null) {

-            if (file.exists()) {

-                if (destFile == null) {

-                    destFile = new File(destDir, file.getName());

-                }

-                

-                if (forceOverwrite || 

-                    (file.lastModified() > destFile.lastModified())) {

-                    fileCopyMap.put(file.getAbsolutePath(), destFile.getAbsolutePath());

-                } else {

-                    log(file + " omitted as " + destFile + " is up to date.",

-                        Project.MSG_VERBOSE);

-                }

-            } else {

-                String message = "Could not find file " 

-                                 + file.getAbsolutePath() + " to copy.";

-                log(message);

-                throw new BuildException(message);

-            }

-        }

-

-        // deal with the filesets

-        for (int i=0; i<filesets.size(); i++) {

-            FileSet fs = (FileSet) filesets.elementAt(i);

-            DirectoryScanner ds = fs.getDirectoryScanner(project);

-            File fromDir = fs.getDir(project);

-

-            String[] srcFiles = ds.getIncludedFiles();

-            String[] srcDirs = ds.getIncludedDirectories();

-

-            scan(fromDir, destDir, srcFiles, srcDirs);

-        }

-

-        // do all the copy operations now...

-        doFileOperations();

-

-        // clean up destDir again - so this instance can be used a second

-        // time without throwing an exception

-        if (destFile != null) {

-            destDir = null;

-        }

-    }

-

-//************************************************************************

-//  protected and private methods

-//************************************************************************

-

-    /**

-     * Ensure we have a consistent and legal set of attributes, and set

-     * any internal flags necessary based on different combinations 

-     * of attributes.

-     */

-    protected void validateAttributes() throws BuildException {

-        if (file == null && filesets.size() == 0) {

-            throw new BuildException("Specify at least one source - a file or a fileset.");

-        }

-

-        if (destFile != null && destDir != null) {

-            throw new BuildException("Only one of destfile and destdir may be set.");

-        }

-

-        if (destFile == null && destDir == null) {

-            throw new BuildException("One of destfile or destdir must be set.");

-        }

-

-        if (file != null && file.exists() && file.isDirectory()) {

-            throw new BuildException("Use a fileset to copy directories.");

-        }

-           

-        if (destFile != null && filesets.size() > 0) {

-            throw new BuildException("Cannot concatenate multple files into a single file.");

-        }

-

-        if (destFile != null) {

-            destDir = new File(destFile.getParent());   // be 1.1 friendly

-        }

-

-    }

-

-    /**

-     * Compares source files to destination files to see if they should be

-     * copied.

-     */

-    protected void scan(File fromDir, File toDir, String[] files, String[] dirs) {

-        FileNameMapper mapper = null;

-        if (mapperElement != null) {

-            mapper = mapperElement.getImplementation();

-        } else if (flatten) {

-            mapper = new FlatFileNameMapper();

-        } else {

-            mapper = new IdentityMapper();

-        }

-

-        buildMap(fromDir, toDir, files, mapper, fileCopyMap);

-

-        if (includeEmpty) {

-            buildMap(fromDir, toDir, dirs, mapper, dirCopyMap);

-        }

-    }

-

-    protected void buildMap(File fromDir, File toDir, String[] names,

-                            FileNameMapper mapper, Hashtable map) {

-

-        String[] toCopy = null;

-        if (forceOverwrite) {

-            Vector v = new Vector();

-            for (int i=0; i<names.length; i++) {

-                if (mapper.mapFileName(names[i]) != null) {

-                    v.addElement(names[i]);

-                }

-            }

-            toCopy = new String[v.size()];

-            v.copyInto(toCopy);

-        } else {

-            SourceFileScanner ds = new SourceFileScanner(this);

-            toCopy = ds.restrict(names, fromDir, toDir, mapper);

-        }

-        

-        for (int i = 0; i < toCopy.length; i++) {

-            File src = new File(fromDir, toCopy[i]);

-            File dest = new File(toDir, mapper.mapFileName(toCopy[i])[0]);

-            map.put( src.getAbsolutePath(), dest.getAbsolutePath() );

-        }

-    }

-

-    /**

-     * Actually does the file (and possibly empty directory) copies.

-     * This is a good method for subclasses to override.

-     */

-    protected void doFileOperations() {

-        if (fileCopyMap.size() > 0) {

-            log("Copying " + fileCopyMap.size() + 

-                " file" + (fileCopyMap.size() == 1 ? "" : "s") + 

-                " to " + destDir.getAbsolutePath() );

-

-            Enumeration e = fileCopyMap.keys();

-            while (e.hasMoreElements()) {

-                String fromFile = (String) e.nextElement();

-                String toFile = (String) fileCopyMap.get(fromFile);

-

-                if( fromFile.equals( toFile ) ) {

-                    log("Skipping self-copy of " + fromFile, verbosity);

-                    continue;

-                }

-

-                try {

-                    log("Copying " + fromFile + " to " + toFile, verbosity);

-                    

-                    FilterSetCollection executionFilters = new FilterSetCollection();

-                    if (filtering) {

-                        executionFilters.addFilterSet(project.getGlobalFilterSet());

-                    }

-                    for (Enumeration filterEnum = filterSets.elements(); filterEnum.hasMoreElements();) {

-                        executionFilters.addFilterSet((FilterSet)filterEnum.nextElement());

-                    }

-                    fileUtils.copyFile(fromFile, toFile, executionFilters,

-                                       forceOverwrite, preserveLastModified);

-                } catch (IOException ioe) {

-                    String msg = "Failed to copy " + fromFile + " to " + toFile

-                        + " due to " + ioe.getMessage();

-                    throw new BuildException(msg, ioe, location);

-                }

-            }

-        }

-

-        if (includeEmpty) {

-            Enumeration e = dirCopyMap.elements();

-            int count = 0;

-            while (e.hasMoreElements()) {

-                File d = new File((String)e.nextElement());

-                if (!d.exists()) {

-                    if (!d.mkdirs()) {

-                        log("Unable to create directory " + d.getAbsolutePath(), Project.MSG_ERR);

-                    } else {

-                        count++;

-                    }

-                }

-            }

-

-            if (count > 0) {

-                log("Copied " + count + 

-                    " empty director" + 

-                    (count==1?"y":"ies") + 

-                    " to " + destDir.getAbsolutePath());

-            }

-        }

-    }

-

-}

diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/EclipseFileUtils.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/EclipseFileUtils.java
deleted file mode 100644
index 48d73c0..0000000
--- a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/EclipseFileUtils.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package org.eclipse.ant.core;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-import java.io.File;

-import java.io.IOException;

-import java.io.UnsupportedEncodingException;

-

-import org.apache.tools.ant.types.FilterSetCollection;

-import org.apache.tools.ant.util.FileUtils;

-import org.eclipse.core.runtime.IStatus;

-import org.eclipse.core.runtime.Status;

-/**

- * Subclasses FileUtiles from Ant to extend its

- * funtionalities.

- */

-public class EclipseFileUtils extends FileUtils {

-

-	/** Indicates the default string encoding on this platform */

-	private static String defaultEncoding = new java.io.InputStreamReader(new java.io.ByteArrayInputStream(new byte[0])).getEncoding();

-

-	/** instance of this library */

-	private static final String LIBRARY_NAME = "core_2_0_5";

-	private static boolean hasNatives = false;

-	

-	static {

-		try {

-			System.loadLibrary(LIBRARY_NAME);

-			hasNatives = true;

-		} catch (UnsatisfiedLinkError e) {

-			logMissingNativeLibrary(e);

-		}

-	}

-	

-public void copyFile(File sourceFile, File destFile, FilterSetCollection filters, boolean overwrite, boolean preserveLastModified) throws IOException {

-	super.copyFile(sourceFile, destFile, filters, overwrite, preserveLastModified);

-	if (hasNatives)

-		internalCopyAttributes(toPlatformBytes(sourceFile.getAbsolutePath()), toPlatformBytes(destFile.getAbsolutePath()), preserveLastModified);

-}

-/**

- * Copies file attributes from source to destination. The copyLastModified attribute

- * indicates whether the lastModified attribute should be copied.

- */

-protected static boolean copyAttributes(String source, String destination, boolean copyLastModified) {

-	if (hasNatives)

-		return internalCopyAttributes(toPlatformBytes(source), toPlatformBytes(destination), false);

-	return false; // not supported

-}

-/**

- * Copies file attributes from source to destination. The copyLastModified attribute

- * indicates whether the lastModified attribute should be copied.

- */

-private static final native boolean internalCopyAttributes(byte[] source, byte[] destination, boolean copyLastModified);

-

-private static void logMissingNativeLibrary(UnsatisfiedLinkError e) {

-	String libName = System.mapLibraryName(LIBRARY_NAME);

-	String message = Policy.bind("info.couldNotLoadLibrary", libName);

-	IStatus status = new Status(IStatus.INFO, AntPlugin.PI_ANT, IStatus.INFO, message, e);

-	AntPlugin.getPlugin().getLog().log(status);

-}

-/**

- * Calling String.getBytes() creates a new encoding object and other garbage.

- * This can be avoided by calling String.getBytes(String encoding) instead.

- */

-protected static byte[] toPlatformBytes(String target) {

-	if (defaultEncoding == null)

-		return target.getBytes();

-	// try to use the default encoding

-	try {

-		return target.getBytes(defaultEncoding);

-	} catch (UnsupportedEncodingException e) {

-		// null the default encoding so we don't try it again

-		defaultEncoding = null;

-		return target.getBytes();

-	}

-}

-}
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/EclipseJavac.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/EclipseJavac.java
deleted file mode 100644
index 0b3f29a..0000000
--- a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/EclipseJavac.java
+++ /dev/null
@@ -1,153 +0,0 @@
-package org.eclipse.ant.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-/*

- * The Apache Software License, Version 1.1

- *

- * Copyright (c) 1999 The Apache Software Foundation.  All rights

- * reserved.

- *

- * Redistribution and use in source and binary forms, with or without

- * modification, are permitted provided that the following conditions

- * are met:

- *

- * 1. Redistributions of source code must retain the above copyright

- *    notice, this list of conditions and the following disclaimer.

- *

- * 2. Redistributions in binary form must reproduce the above copyright

- *    notice, this list of conditions and the following disclaimer in

- *    the documentation and/or other materials provided with the

- *    distribution.

- *

- * 3. The end-user documentation included with the redistribution, if

- *    any, must include the following acknowlegement:

- *       "This product includes software developed by the

- *        Apache Software Foundation (http://www.apache.org/)."

- *    Alternately, this acknowlegement may appear in the software itself,

- *    if and wherever such third-party acknowlegements normally appear.

- *

- * 4. The names "The Jakarta Project", "Ant", and "Apache Software

- *    Foundation" must not be used to endorse or promote products derived

- *    from this software without prior written permission. For written

- *    permission, please contact apache@apache.org.

- *

- * 5. Products derived from this software may not be called "Apache"

- *    nor may "Apache" appear in their names without prior written

- *    permission of the Apache Group.

- *

- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED

- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES

- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE

- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR

- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,

- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT

- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF

- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND

- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,

- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT

- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF

- * SUCH DAMAGE.

- * ====================================================================

- *

- * This software consists of voluntary contributions made by many

- * individuals on behalf of the Apache Software Foundation.  For more

- * information on the Apache Software Foundation, please see

- * <http://www.apache.org/>.

- */

-

-import org.apache.tools.ant.taskdefs.Javac;

-import org.apache.tools.ant.BuildException;

-import org.apache.tools.ant.types.Path;

-import java.io.File;

-import org.apache.tools.ant.DirectoryScanner;

-import org.apache.tools.ant.Project;

-import org.apache.tools.ant.taskdefs.compilers.CompilerAdapter;

-

-/**

- * Ant task which replaces the standard Ant Javac task.  This version of the task

- * uses a special compiler adapter factory which in turn uses the Ant plug-in's

- * object class registry to find the class to use for compiler adapters.  This is required

- * because of the platform's classloading strategy.

- * <p>

- * This task can be used as a direct replacement for the original Javac task

- * </p>

- * <p>

- * <b>Note:</b> This class/interface is part of an interim API that is still under 

- * development and expected to change significantly before reaching stability. 

- * It is being made available at this early stage to solicit feedback from pioneering 

- * adopters on the understanding that any code that uses this API will almost 

- * certainly be broken (repeatedly) as the API evolves.

- * </p>

- */

-

-public class EclipseJavac extends Javac {

-	

-/**

- * Executes the task.

- * 

- * @exception BuildException thrown if a problem occurs during execution

- */

-public void execute() throws BuildException {

-	// first off, make sure that we've got a srcdir

-

-	Path src = getSrcdir();

-	if (src == null)

-		throw new BuildException(Policy.bind("exception.missingSrcAttribute"), location);

-	String[] list = src.list();

-	if (list.length == 0)

-		throw new BuildException(Policy.bind("exception.missingSrcAttribute"), location);

-

-	File destDir = getDestdir();

-	if (destDir != null && !destDir.isDirectory())

-		throw new BuildException(Policy.bind("exception.missingDestinationDir",destDir.toString()), location);

-

-	// scan source directories and dest directory to build up 

-	// compile lists

-	resetFileLists();

-	for (int i = 0; i < list.length; i++) {

-		File srcDir = (File) project.resolveFile(list[i]);

-		if (!srcDir.exists()) {

-			throw new BuildException(Policy.bind("exception.missingSourceDir",srcDir.getPath()), location);

-		}

-

-		DirectoryScanner ds = this.getDirectoryScanner(srcDir);

-

-		String[] files = ds.getIncludedFiles();

-

-		scanDir(srcDir, destDir != null ? destDir : srcDir, files);

-	}

-

-	// compile the source files

-

-	String compiler = project.getProperty("build.compiler");

-	if (compiler == null) {

-		if (Project.getJavaVersion().startsWith("1.3")) {

-			compiler = "modern";

-		} else {

-			compiler = "classic";

-		}

-	}

-

-	if (compileList.length > 0) {

-

-		CompilerAdapter adapter = EclipseCompilerAdapterFactory.getCompiler(compiler, this);

-		log(Policy.bind("info.compiling"));

-

-		// now we need to populate the compiler adapter

-		adapter.setJavac(this);

-

-		// finally, lets execute the compiler!!

-		if (!adapter.execute()) {

-			if (failOnError) {

-				throw new BuildException(Policy.bind("error.compileFailed"), location);

-			} else {

-				log(Policy.bind("error.compileFailed"), Project.MSG_ERR);

-			}

-		}

-	}

-}

-}

diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/EclipseProject.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/EclipseProject.java
deleted file mode 100644
index 5143345..0000000
--- a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/EclipseProject.java
+++ /dev/null
@@ -1,288 +0,0 @@
-package org.eclipse.ant.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-/*

- * The Apache Software License, Version 1.1

- *

- * Copyright (c) 1999 The Apache Software Foundation.  All rights

- * reserved.

- *

- * Redistribution and use in source and binary forms, with or without

- * modification, are permitted provided that the following conditions

- * are met:

- *

- * 1. Redistributions of source code must retain the above copyright

- *    notice, this list of conditions and the following disclaimer.

- *

- * 2. Redistributions in binary form must reproduce the above copyright

- *    notice, this list of conditions and the following disclaimer in

- *    the documentation and/or other materials provided with the

- *    distribution.

- *

- * 3. The end-user documentation included with the redistribution, if

- *    any, must include the following acknowlegement:

- *       "This product includes software developed by the

- *        Apache Software Foundation (http://www.apache.org/)."

- *    Alternately, this acknowlegement may appear in the software itself,

- *    if and wherever such third-party acknowlegements normally appear.

- *

- * 4. The names "The Jakarta Project", "Ant", and "Apache Software

- *    Foundation" must not be used to endorse or promote products derived

- *    from this software without prior written permission. For written

- *    permission, please contact apache@apache.org.

- *

- * 5. Products derived from this software may not be called "Apache"

- *    nor may "Apache" appear in their names without prior written

- *    permission of the Apache Group.

- *

- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED

- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES

- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE

- * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR

- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,

- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT

- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF

- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND

- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,

- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT

- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF

- * SUCH DAMAGE.

- * ====================================================================

- *

- * This software consists of voluntary contributions made by many

- * individuals on behalf of the Apache Software Foundation.  For more

- * information on the Apache Software Foundation, please see

- * <http://www.apache.org/>.

- */

-

-import org.eclipse.core.resources.*;

-import org.eclipse.core.runtime.*;

-import org.apache.tools.ant.*;

-import java.io.*;

-import java.io.File;

-import java.io.IOException;

-import java.util.*;

-

-/**

- * An Ant project adapted to running inside the Eclipse Platform.  Because of the class

- * loading structure of the Eclipse platform, the standard techniques for creating instances 

- * of tasks and datatypes needs to be adapted.

- * <p>

- * <b>Note:</b> This class/interface is part of an interim API that is still under 

- * development and expected to change significantly before reaching stability. 

- * It is being made available at this early stage to solicit feedback from pioneering 

- * adopters on the understanding that any code that uses this API will almost 

- * certainly be broken (repeatedly) as the API evolves.

- * </p>

- */

-

-public class EclipseProject extends Project {

-/**

- * Creates a new project for use in running Ant inside the Eclipse Platform.

- */

-public EclipseProject() {

-	super();

-}

-/**

- * Creates and returns a new instance of the identified data type.

- * 

- * @return the new data type instance

- * @param typeName the name of the type to create

- * @exception BuildException thrown if a problem occurs during data type creation

- */

-public Object createDataType(String typeName) throws BuildException {

-	// First look in the types defined in the plugin extension points. If not

-	// found, do the super behaviour.

-	// check to see if the ant plugin is available.  If we are running from

-	// the command line (i.e., no platform) it will not be.

-	if (AntPlugin.getPlugin() == null)

-		return internalCreateDataType(typeName);

-	Map types = AntPlugin.getPlugin().getTypeExtensions();

-	if (types == null)

-		return internalCreateDataType(typeName);

-	IConfigurationElement declaration = (IConfigurationElement) types.get(typeName);

-	if (declaration == null)

-		return internalCreateDataType(typeName);

-	String className = declaration.getAttribute(AntPlugin.CLASS);

-	try {

-		Class typeClass = declaration.getDeclaringExtension().getDeclaringPluginDescriptor().getPluginClassLoader().loadClass(className);

-		addDataTypeDefinition(typeName, typeClass);

-	} catch (ClassNotFoundException e) {

-		return internalCreateDataType(typeName);

-	}

-	return internalCreateDataType(typeName);

-}

-/**

- * Creates and returns a new instance of the identified task.

- * 

- * @return the new task

- * @param taskName the name of the task to create

- * @exception BuildException thrown if a problem occurs during task creation

- */

-public Task createTask(String taskName) throws BuildException {

-	// First try to find if the task is defined in a plug-in. If not, call

-	// the super method.

-	// check to see if the ant plugin is available.  If we are running from

-	// the command line (i.e., no platform) it will not be.

-	if (AntPlugin.getPlugin() == null)

-		return super.createTask(taskName);

-	Map tasks = AntPlugin.getPlugin().getTaskExtensions();

-	if (tasks == null)

-		return super.createTask(taskName);

-	IConfigurationElement declaration = (IConfigurationElement) tasks.get(taskName);

-	if (declaration == null)

-		return super.createTask(taskName);

-	String className = declaration.getAttribute(AntPlugin.CLASS);

-	try {

-		Class taskClass = declaration.getDeclaringExtension().getDeclaringPluginDescriptor().getPluginClassLoader().loadClass(className);

-		addTaskDefinition(taskName, taskClass);

-	} catch (ClassNotFoundException e) {

-		return super.createTask(taskName);

-	}

-	return super.createTask(taskName);

-}

-/**

- * Sends a build finished notification to all registered listeners along with

- * the exception that caused the termination.

- * 

- * @param exception the exception to include with the notification

- */

-protected void fireBuildFinished(Throwable exception) {

-	super.fireBuildFinished(exception);

-}

-/**

- * Sends a build started notification to all registered listeners.

- */

-protected void fireBuildStarted() {

-	super.fireBuildStarted();

-}

-/**

- * Sends a target started notification to all the listeners when an execute target 

- * has just been started.

- */

-protected void fireExecuteTargetStarted(Target target) {

-    BuildEvent event = new BuildEvent(target);

-    Vector buildListeners = getBuildListeners();

-    for (int i = 0; i < buildListeners.size(); i++) {

-		if (buildListeners.elementAt(i) instanceof IAntRunnerListener) {

-			IAntRunnerListener listener = (IAntRunnerListener) buildListeners.elementAt(i);

-			listener.executeTargetStarted(event);

-		}

-	}

-}

-/**

- * Sends a target finished notification to all the listeners when an execute target

- * has just been finished.

- */

-protected void fireExecuteTargetFinished(Target target, Throwable exception) {

-    BuildEvent event = new BuildEvent(target);

-    event.setException(exception);

-    Vector buildListeners = getBuildListeners();

-    for (int i = 0; i < buildListeners.size(); i++) {

-		if (buildListeners.elementAt(i) instanceof IAntRunnerListener) {

-			IAntRunnerListener listener = (IAntRunnerListener) buildListeners.elementAt(i);

-			listener.executeTargetFinished(event);

-		}

-	}

-}

-/**

- * Initializes the receiver.

- * 

- * @exception BuildException thrown if a problem occurs during initialization.

- */

-public void init() throws BuildException {

-	super.init();

-	// add some additional tasks and datatypes.  Normally they would be found

-	// in the plugin.xml markup for the Ant Support plugin but if we are not running 

-	// the platform we need to add them here.  

-	addTaskDefinition("ant", EclipseAnt.class);

-	addTaskDefinition("javac", EclipseJavac.class);

-	addDataTypeDefinition("commapatternset", CommaPatternSet.class);

-	addDataTypeDefinition("command", CommandDataType.class);

-	System.setProperty("ant.regexp.matcherimpl", "org.eclipse.ant.core.XercesRegexpMatcher");

-	// initialize the datatype table with marker values so that the table contains

-	// the keys (needed while parsing) but don't load the classes to prevent plugin activation.

-	if (AntPlugin.getPlugin() == null)

-		return;

-	Map types = AntPlugin.getPlugin().getTypeExtensions();

-	if (types == null)

-		return;

-	for (Iterator i = types.keySet().iterator(); i.hasNext();) {

-		String typeName = (String)i.next();

-		if (getDataTypeDefinitions().get(typeName) == null)

-			addDataTypeDefinition(typeName, EclipseProject.class);

-	}

-}

-

-protected Object internalCreateDataType(String typeName) throws BuildException {

-    Class c = (Class) getDataTypeDefinitions().get(typeName);

-

-    if (c == null)

-        return null;

-

-    try {

-        java.lang.reflect.Constructor ctor = null;

-        boolean noArg = false;

-        // DataType can have a "no arg" constructor or take a single 

-        // Project argument.

-        try {

-            ctor = c.getConstructor(new Class[0]);

-            noArg = true;

-        } catch (NoSuchMethodException nse) {

-            ctor = c.getConstructor(new Class[] {Project.class});

-            noArg = false;

-        }

-

-        Object o = null;

-        if (noArg) {

-             o = ctor.newInstance(new Object[0]);

-        } else {

-             o = ctor.newInstance(new Object[] {this});

-        }

-        if (o instanceof ProjectComponent) {

-            ((ProjectComponent)o).setProject(this);

-        }

-        String msg = "   +DataType: " + typeName;

-        log (msg, MSG_DEBUG);

-        return o;

-    } catch (java.lang.reflect.InvocationTargetException ite) {

-        Throwable t = ite.getTargetException();

-        String msg = "Could not create datatype of type: "

-             + typeName + " due to " + t;

-        throw new BuildException(msg, t);

-    } catch (Throwable t) {

-        String msg = "Could not create datatype of type: "

-             + typeName + " due to " + t;

-        throw new BuildException(msg, t);

-    }

-}

-/**

- * Executes a target. Notification has been added: the build listener knows that a top level

- * target is being executed and when it is finished.

- * 

- * @see Project#executeTarget(String targetName)

- */

-public void executeTarget(String targetName) throws BuildException {

-	Target targetToExecute = (Target) getTargets().get(targetName);

-	if (targetToExecute == null)

-		// can happen if the user has specified a target name that is not valid

-		throw new BuildException(Policy.bind("exception.targetDoesNotExist", targetName));

-    try {

-        fireExecuteTargetStarted(targetToExecute);

-        super.executeTarget(targetName);

-        fireExecuteTargetFinished(targetToExecute, null);

-    } catch(RuntimeException exc) {

-        fireExecuteTargetFinished(targetToExecute, exc);

-        throw exc;

-    }

-}

-

-

-

-

-

-}

diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/IAntRunnerListener.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/IAntRunnerListener.java
deleted file mode 100644
index 4c064bc..0000000
--- a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/IAntRunnerListener.java
+++ /dev/null
@@ -1,3 +0,0 @@
-package org.eclipse.ant.core;

/*
 * (c) Copyright IBM Corp. 2000, 2001.
 * All Rights Reserved.
 */
 
import org.apache.tools.ant.BuildEvent;
import org.apache.tools.ant.BuildListener;

/**
 * Interface that must be implemented by clients wishing to be notified by
 * <code>AntRunner</code> of build events as they occur.
 * <p>
 * <b>Note:</b> This class/interface is part of an interim API that is still under 
 * development and expected to change significantly before reaching stability. 
 * It is being made available at this early stage to solicit feedback from pioneering 
 * adopters on the understanding that any code that uses this API will almost 
 * certainly be broken (repeatedly) as the API evolves.
 * </p>
 */

-public interface IAntRunnerListener extends BuildListener {
	
/**
 * Logs a message appropriately if its priority indicates that
 * logging is warranted.  The priority will be one of 
 * <code>Project.MSG_ERR</code>, <code>Project.MSG_WARN</code>,
 * <code>Project.MSG_INFO</code>, <code>Project.MSG_VERBOSE</code>
 * or <code>Project.MSG_DEBUG</code>.
 * 
 * @see org.apache.tools.ant.Project
 * @param message the message to be logged
 * @param priority the priority of the message
 */
public void messageLogged(String message,int priority);

/**
 * Fired when a target selected by the user (i.e. given as a parameter in the command line 
 * or selected in the Ant UI) is being executed.
 *
 *  @see BuildEvent#getTarget() 
 */
public void executeTargetStarted(BuildEvent event);

/**
 * Fired when a target selected by the user (i.e. given as a parameter in the command line 
 * or selected in the Ant UI) is finished.
 *
 *  @see BuildEvent#getTarget()
 */
public void executeTargetFinished(BuildEvent event);


-}
diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/IncrementalBuild.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/IncrementalBuild.java
deleted file mode 100644
index 7060357..0000000
--- a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/IncrementalBuild.java
+++ /dev/null
@@ -1,140 +0,0 @@
-package org.eclipse.ant.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.core.resources.*;

-import org.eclipse.core.runtime.CoreException;

-import java.util.HashMap;

-import org.apache.tools.ant.BuildException;

-import org.apache.tools.ant.Task;

-

-/**

- * Ant task which runs the platform's incremental build facilities.

- * <p>

- * <b>Note:</b> This class/interface is part of an interim API that is still under 

- * development and expected to change significantly before reaching stability. 

- * It is being made available at this early stage to solicit feedback from pioneering 

- * adopters on the understanding that any code that uses this API will almost 

- * certainly be broken (repeatedly) as the API evolves.

- * </p>

- */

-

-public class IncrementalBuild extends Task {

-	private String builder;

-	private String project;

-	private int kind= IncrementalProjectBuilder.INCREMENTAL_BUILD;

-	private HashMap args= new HashMap(5);

-

-	/**

-	 * Unique identifier constant (value <code>"KIND_INCR"</code>)

-	 * indicating that an incremental build should be performed.

-	 */

-	public final static String KIND_INCR = "incr";

-	

-	/**

-	 * Unique identifier constant (value <code>"KIND_FULL"</code>)

-	 * indicating that a full build should be performed.

-	 */

-	public final static String KIND_FULL = "full";

-	

-	/**

-	 * Unique identifier constant (value <code>"KIND_AUTO"</code>)

-	 * indicating that an auto build should be performed.

-	 */

-	public final static String KIND_AUTO = "auto";

-	

-	/**

-	 * Inner class that represents a name-value pair.

-	 */

-	public class Argument {

-		private String name;

-

-		/**

-		 * Sets the name of this argument. 

-		 * @param name the name of this argument

-		 */

-		public void setName(String value) {

-			name= value;

-		}

-

-		/**

-		 * Sets the value of this argument. 

-		 * @param value the value of this argument

-		 */

-		public void setValue(String value) {

-			if (value == null)

-				args.remove(name);

-			else

-				args.put(name, value);

-		}

-	}

-

-/**

- * Constructs an <code>IncrementalBuild</code> instance.

- */

-public IncrementalBuild() {

-	super();

-}

-/**

- * Creates and returns a new <code>Argument</code>.

- * 

- * @return the new argument

- */

-public Argument createArgument() {

-	return new Argument();

-}

-/**

- * Executes this task.

- * 

- * @exception BuildException thrown if a problem occurs during execution

- */

-public void execute() throws BuildException {

-	try {

-		if (project == null) {

-			ResourcesPlugin.getWorkspace().build(kind, null);

-		} else {

-			IProject target= ResourcesPlugin.getWorkspace().getRoot().getProject(project);

-			if (builder == null)

-				target.build(kind, null);

-			else

-				target.build(kind, builder, args, null);

-		}

-	} catch (CoreException e) {

-		throw new BuildException(e);

-	}

-}

-/**

- * Sets the name of the receiver's builder.

- * 

- * @param value the name of the receiver's builder

- */

-public void setBuilder(String value) {

-	builder= value;

-}

-/**

- * Sets the receiver's kind> attribute.  This value must be one

- * of <code>IncrementalBuild.KIND_FULL</code>, <code>IncrementalBuild.KIND_AUTO</code>,

- * <code>IncrementalBuild.KIND_INCR</code>.

- * 

- * @param kind the receiver's kind attribute

- */

-public void setKind(String value) {

-	if (IncrementalBuild.KIND_FULL.equalsIgnoreCase(value))

-		kind= IncrementalProjectBuilder.FULL_BUILD;

-	else if (IncrementalBuild.KIND_AUTO.equalsIgnoreCase(value))

-		kind= IncrementalProjectBuilder.AUTO_BUILD;

-	else if (IncrementalBuild.KIND_INCR.equalsIgnoreCase(value))

-		kind= IncrementalProjectBuilder.INCREMENTAL_BUILD;

-}

-/**

- * Sets the receiver's target project.

- * 

- * @param value the receiver's target project

- */

-public void setProject(String value) {

-	project= value;

-}

-}

diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/MoveProject.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/MoveProject.java
deleted file mode 100644
index f5c4240..0000000
--- a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/MoveProject.java
+++ /dev/null
@@ -1,276 +0,0 @@
-package org.eclipse.ant.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.util.*;

-import org.eclipse.core.resources.*;

-import org.eclipse.core.runtime.*;

-import org.apache.tools.ant.*;

-

-/**

- * An Ant task which moves an existing Eclipse project.

- * <p>

- * The name of the project to move (source), its new name (destination) and the "force" attribute 

- * must be specified.<br>

- * The directory where the project is located on the file system, the comment, the nature(s)

- * and the referenced projects are optional. If the directory is not specified, the project 

- * will just be renamed after the new name. The user can specify "null" for the location if he wants

- * the project to be moved in the default workspace directory.<br>

- * It is also possible to define commands with nested elements.

- * <p><p>

- * Example:<p>

- *	&lt;eclipse.moveProject source="Foo" destination="Bar" location="D:\MyWork\My Project"/&gt;

- * <p>

- * <b>Note:</b> This class/interface is part of an interim API that is still under 

- * development and expected to change significantly before reaching stability. 

- * It is being made available at this early stage to solicit feedback from pioneering 

- * adopters on the understanding that any code that uses this API will almost 

- * certainly be broken (repeatedly) as the API evolves.

- * </p>

- * @see IProject#move

- */

-public class MoveProject extends Task {

-	

-	/**

-	 * The name of the source project.

-	 */

-	private String source = null;

-	

-	/**

-	 * The name of the project after it has been moved.

-	 */

-	private String destination = null;

-	

-	/**

-	 * The force attribute.

-	 */

-	private boolean force;

-	// variable used to know if the user has actually set the "force" attribute

-	private boolean isForceSet = false;

-

-	/**

-	 * The folder where the user wants to move the project.

-	 */

-	private IPath location = null;

-	// variable used to know if the user has specified "null" or not

-	private boolean isLocationSet = false;

-	

-	/**

-	 * The natures, if the user wants to modify them.

-	 */

-	private String[] natures = null;

-	

-	/**

-	 * The comment, if the user wants to modify it

-	 */

-	private String comment = null;

-	

-	/**

-	 * The projects that the project references, if the user wants to modify them

-	 */

-	private IProject[] referencedProjects = null;

-

-	/**

-	 * The builders and their arguments (commands), if the user wants to modify them

-	 */

-	private Vector commands;

-	

-

-/**

- * Constructs a new <code>MoveProject</code> instance.

- */

-public MoveProject() {

-	super();

-	commands = new Vector();

-}

-

-/**

- * Performs the project move operation.

- * 

- * @exception BuildException thrown if a problem occurs during execution.

- */

-public void execute() throws BuildException {

-	

-	validateAttributes();

-	

-	IProject newProject = ResourcesPlugin.getWorkspace().getRoot().getProject(source);

-	

-	try {

-		if (!newProject.exists()) 

-			throw new BuildException(Policy.bind("exception.projectDoesntExist", source));

-			

-		IProject temp = ResourcesPlugin.getWorkspace().getRoot().getProject(destination);

-		if (temp.exists())

-			throw new BuildException(Policy.bind("exception.nameAlreadyUsed", destination));		

-			

-		if (!newProject.isOpen())

-			newProject.open(null);

-		

-		IProjectDescription desc = newProject.getDescription();

-		desc.setName(destination);

-		setLocationToDescription(newProject, desc);

-

-		if (natures != null)

-			desc.setNatureIds(natures);

-		if (comment != null)

-			desc.setComment(comment);

-		if (referencedProjects != null)

-			desc.setReferencedProjects(referencedProjects);

-		if (!commands.isEmpty())

-			desc.setBuildSpec(createCommands(desc));

-			

-		newProject.move(desc, force, null);

-		

-	} catch (CoreException e) {

-		throw new BuildException(e);

-	}

-}

-

-protected void setLocationToDescription(IProject newProject, IProjectDescription desc) {

-	if (isLocationSet && location!= null && !ResourcesPlugin.getWorkspace().validateProjectLocation(newProject, location).isOK())

-		// the user wants to change the location.

-		// location can be null if the user set the attribute to "null" in order to copy the folder in the default workspace directory

-		throw new BuildException(Policy.bind("exception.folderAlreadyUsedForAnotherProject"));

-

-	desc.setLocation(location);			

-}

-

-protected ICommand[] createCommands(IProjectDescription description) {

-	ICommand[] commandArray = new ICommand[commands.size()];

-	int index = 0;

-	for (Iterator i = commands.iterator(); i.hasNext();) {

-		CommandDataType b = (CommandDataType) i.next();

-		commandArray[index] = description.newCommand();

-		// needs the project of this target to be able to get the name and the arguments

-		commandArray[index].setBuilderName(b.getName(project));

-		commandArray[index].setArguments(b.getArguments(project));

-		index++;

-	}

-	return commandArray;

-}

-

-/**

- * Sets the name of the project that the user wants to move.

- * 

- * @param the name of the project		

- */

-public void setSource(String value) {

-	source = value;

-}

-

-/**

- * Sets the new name for the project.

- * 

- * @param the new name	

- */

-public void setDestination(String value) {

-	destination = value;

-}

-

-/**

- * Sets the directory where the project will be moved. The parameter is a String

- * and not a File because the user can specify "null" if he wants to refer to the

- * default workspace directory.

- * 

- * @param the name of the folder or "null" for the default workspace directory

- */

-public void setLocation(String value) {

-	isLocationSet = true;

-	if (value.equals("null"))

-		// we leave the location as it currently is (i.e. null)

-		return;

-	location = new Path(value);

-	if (!location.isAbsolute()) {

-		// the location can be relative if the user used a period in the path

-		org.eclipse.core.runtime.Path defaultPath = new org.eclipse.core.runtime.Path(project.getBaseDir().toString());

-		location = defaultPath.append(location);

-	}

-}

-

-/**

- * Sets the force attribute.

- * 

- * @param true/false		

- */

-public void setForce(boolean value) {

-	force = value;

-	isForceSet = true;

-}

-

-/**

- * Sets the natures for the project. They are given as a list of nature identifers

- * separated by a coma.

- * 

- * @param the natures specified by the user

- */

-public void setNatures(String value) {

-	StringTokenizer tokenizer = new StringTokenizer(value, ",");

-	Vector vect = new Vector(1);

-	while (tokenizer.hasMoreTokens())

-		vect.add(((String)tokenizer.nextToken()).trim());

-	natures = new String[vect.size()];

-	vect.toArray(natures);

-}

-

-/**

- * Sets the comment for the project.

- * 

- * @param the comment

- */

-public void setComment(String value) {

-	comment = value;

-}

-

-/**

- * Sets the projects that the project references. They are given as a list of project names

- * separated by a coma.

- * 

- * @param the natures specified by the user

- */

-public void setReferencedProjects(String value) {

-	StringTokenizer tokenizer = new StringTokenizer(value, ",");

-	Vector vect = new Vector(1);

-	while (tokenizer.hasMoreTokens()) {

-		IProject currentProject = ResourcesPlugin.getWorkspace().getRoot().getProject(((String) tokenizer.nextToken()).trim());

-		if (currentProject.exists())

-			vect.add(currentProject);

-		else

-			throw new BuildException(Policy.bind("exception.unknownProject", currentProject.getName()));

-	}

-		

-	referencedProjects = new IProject[vect.size()];

-	vect.toArray(referencedProjects);

-}

-

-/**

- * Adds a CommandDataType object to the set of commands specified for this project.

- * 

- * @param the command

- */

-public void addCommand(CommandDataType command) {

-	commands.add(command);

-}

-

-/**

- * Performs a validation of the receiver.

- * 

- * @exception BuildException thrown if a problem occurs during validation.

- */

-protected void validateAttributes() throws BuildException {

-	if (source == null) 

-		throw new BuildException(Policy.bind("exception.sourceNotSpecified"));

-

-	if (destination == null) 

-		throw new BuildException(Policy.bind("exception.destinationNotSpecified"));

-		

-	if (location!= null && !location.isValidPath(location.toOSString()))

-		throw new BuildException(Policy.bind("exception.invalidPath", location.toOSString()));

-	

-	if (!isForceSet)

-		throw new BuildException(Policy.bind("exception.forceNotSpecified"));

-}

-

-}

diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/Policy.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/Policy.java
deleted file mode 100644
index 44f46e1..0000000
--- a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/Policy.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package org.eclipse.ant.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-
import java.util.*;

-

-import org.eclipse.core.runtime.IProgressMonitor;

-import org.eclipse.core.runtime.NullProgressMonitor;

-

-public class Policy {

-	private static ResourceBundle bundle;

-	private static final String bundleName = "org.eclipse.ant.core.messages";

-

-	static {

-		relocalize();

-	}

-	

-/**

- * Lookup the message with the given ID in this catalog 

- */

-public static String bind(String id) {

-	return bind(id, (String[])null);

-}

-public static IProgressMonitor monitorFor(IProgressMonitor monitor) {

-	if (monitor == null)

-		return new NullProgressMonitor();

-	return monitor;

-}

-/**

- * Lookup the message with the given ID in this catalog and bind its

- * substitution locations with the given string.

- */

-public static String bind(String id, String binding) {

-	return bind(id, new String[] {binding});

-}

-/**

- * Lookup the message with the given ID in this catalog and bind its

- * substitution locations with the given strings.

- */

-public static String bind(String id, String binding1, String binding2) {

-	return bind(id, new String[] {binding1, binding2});

-}

-

-/**

- * Lookup the message with the given ID in this catalog and bind its

- * substitution locations with the given string values.

- */

-public static String bind(String id, String[] bindings) {

-	if (id == null)

-		return "No message available";

-	String message = null;

-	try {

-		message = bundle.getString(id);

-	} catch (MissingResourceException e) {

-		// If we got an exception looking for the message, fail gracefully by just returning

-		// the id we were looking for.  In most cases this is semi-informative so is not too bad.

-		return "Missing message: " + id + " in: " + bundleName;

-	}

-	if (bindings == null)

-		return message;

-	int length = message.length();

-	int start = -1;

-	int end = length;

-	StringBuffer output = new StringBuffer(80);

-	while (true) {

-		if ((end = message.indexOf('{', start)) > -1) {

-			output.append(message.substring(start + 1, end));

-			if ((start = message.indexOf('}', end)) > -1) {

-				int index = -1;

-				try {

-					index = Integer.parseInt(message.substring(end + 1, start));

-					output.append(bindings[index]);

-				} catch (NumberFormatException nfe) {

-					output.append(message.substring(end + 1, start + 1));

-				} catch (ArrayIndexOutOfBoundsException e) {

-					output.append("{missing " + Integer.toString(index) + "}");

-				}

-			} else {

-				output.append(message.substring(end, length));

-				break;

-			}

-		} else {

-			output.append(message.substring(start + 1, length));

-			break;

-		}

-	}

-	return output.toString();

-}

-/**

- * Creates a NLS catalog for the given locale.

- */

-public static void relocalize() {

-	bundle = ResourceBundle.getBundle(bundleName, Locale.getDefault());

-}

-}

diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/RefreshLocal.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/RefreshLocal.java
deleted file mode 100644
index 8995f69..0000000
--- a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/RefreshLocal.java
+++ /dev/null
@@ -1,142 +0,0 @@
-package org.eclipse.ant.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.core.resources.*;

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.core.runtime.Path;

-import java.util.Vector;

-import org.apache.tools.ant.*;

-import org.apache.tools.ant.types.PatternSet;

-

-/**

- * An Ant task which refreshes the Eclipse Platform's view of the local filesystem.

- * <p>

- * <b>Note:</b> This class/interface is part of an interim API that is still under 

- * development and expected to change significantly before reaching stability. 

- * It is being made available at this early stage to solicit feedback from pioneering 

- * adopters on the understanding that any code that uses this API will almost 

- * certainly be broken (repeatedly) as the API evolves.

- * </p>

- * @see IResource#refreshLocal

- */

-public class RefreshLocal extends Task {

-	/**

-	 * Unique identifier constant (value <code>"DEPTH_ZERO"</code>)

-	 * indicating that refreshes should be performed only on the target

-	 * resource itself

-	 */

-	public static final String DEPTH_ZERO = "zero";

-	

-	/**

-	 * Unique identifier constant (value <code>"DEPTH_ONE"</code>)

-	 * indicating that refreshes should be performed on the target

-	 * resource and its children

-	 */

-	public static final String DEPTH_ONE = "one";

-	

-	/**

-	 * Unique identifier constant (value <code>"DEPTH_INFINITE"</code>)

-	 * indicating that refreshes should be performed on the target

-	 * resource and all of its recursive children

-	 */

-	public static final String DEPTH_INFINITE = "infinite";

-	

-	/**

-	 * The resource to refresh.

-	 */

-	protected IResource resource;

-	

-	/**

-	 * The depth to refresh to.

-	 */

-	protected int depth = IResource.DEPTH_INFINITE;

-	

-	private IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();

-

-/**

- * Constructs a new <code>RefreshLocal</code> instance.

- */

-public RefreshLocal() {

-	super();

-}

-

-/**

- * Performs the refresh operation.

- * 

- * @exception BuildException thrown if a problem occurs during execution.

- */

-public void execute() throws BuildException {

-	// make sure we don't have an illegal set of options

-	validateAttributes();

-

-	// deal with the single resource

-	if (resource != null) {

-		if (!resource.exists())

-			throw new BuildException(Policy.bind("exception.resourceNotFound",resource.toString()));

-		try {

-			resource.refreshLocal(depth, null);

-			return;

-		} catch (CoreException e) {

-			throw new BuildException(e);

-		}

-	} else

-		throw new BuildException(Policy.bind("exception.resourceNotSpecified"));

-}

-/**

- * Refreshes a collection of resources.

- * 

- * @param resources the names of the resources to refresh

- * @exception BuildException thrown if a problem occurs during refresh

- */

-protected void refreshResources(String[] resources) throws BuildException {

-	for (int i = 0; i < resources.length; i++) {

-		IResource target = root.findMember(resources[i]);

-		if (target == null)

-			throw new BuildException(Policy.bind("exception.resourceNotFound",resources[i].toString()));

-		try {

-			target.refreshLocal(depth, null);

-		} catch (CoreException e) {

-			throw new BuildException(e);

-		}

-	}

-}

-

-/**

- * Sets the depth of this task appropriately.  The specified argument must

- * by one of <code>RefreshLocal.DEPTH_ZERO</code>, <code>RefreshLocal.DEPTH_ONE</code>

- * or <code>RefreshLocal.DEPTH_INFINITE</code>.

- * 

- * @param value the depth to refresh to		

- */

-public void setDepth(String value) {

-	if (DEPTH_ZERO.equalsIgnoreCase(value))

-		depth = IResource.DEPTH_ZERO;

-	else

-		if (DEPTH_ONE.equalsIgnoreCase(value))

-			depth = IResource.DEPTH_ONE;

-		else

-			if (DEPTH_INFINITE.equalsIgnoreCase(value))

-				depth = IResource.DEPTH_INFINITE;

-}

-

-/**

- * Sets the root of the workspace resource tree to refresh.

- * 

- * @param value the root value

- */

-public void setResource(String value) {

-	resource = ResourcesPlugin.getWorkspace().getRoot().findMember(new Path(value));

-}

-

-/**

- * Performs a validation of the receiver.

- * 

- * @exception BuildException thrown if a problem occurs during validation.

- */

-protected void validateAttributes() throws BuildException {

-}

-}

diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/XercesRegexpMatcher.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/XercesRegexpMatcher.java
deleted file mode 100644
index 4b670e3..0000000
--- a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/XercesRegexpMatcher.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package org.eclipse.ant.core;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.apache.tools.ant.util.regexp.RegexpMatcher;

-import org.apache.xerces.utils.regex.RegularExpression;

-import org.apache.xerces.utils.regex.Match;

-import java.util.Vector;

-import org.apache.tools.ant.BuildException;

-

-/**

- * An Ant regular expression matcher adapted to use the Xerces XML parser.

- * This implementation is the standard one used when running Ant inside the

- * Eclipse platform using the <code>AntRunner</code>.

- * <p>

- * <b>Note:</b> This class/interface is part of an interim API that is still under 

- * development and expected to change significantly before reaching stability. 

- * It is being made available at this early stage to solicit feedback from pioneering 

- * adopters on the understanding that any code that uses this API will almost 

- * certainly be broken (repeatedly) as the API evolves.

- * </p>

- */

-

-public class XercesRegexpMatcher implements RegexpMatcher {

-	private RegularExpression regexp;

-

-/**

- * Creates a new Xerces based regular expression matcher.

- */

-public XercesRegexpMatcher() {

-	super();

-}

-/**

- * Returns a collection of matched groups found in an argument.

- *

- * <p>Group 0 will be the full match, the rest are the

- * parenthesized subexpressions</p>.

- * 

- * @return the collection of matched groups found in the argument.

- * @param argument the argument

- */

-public Vector getGroups(String argument) {

-	Match match = new Match();

-	if (!regexp.matches(argument, match))

-		return null;

-	int count = match.getNumberOfGroups();

-	Vector result = new Vector(count);

-	for (int i = 0; i < count; i++) {

-		result.add(match.getCapturedText(i));

-	}

-	return result;

-}

-/**

- * Returns a string representation of the receiver

- * 

- * @return a string representation of the receiver

- */

-public String getPattern() {

-	return regexp.getPattern();

-}

-/**

- * Returns a <code>boolean</code> indicating whether an argument

- * matches with the receiver.

- * 

- * @return a <code>boolean</code> indicating whether an argument

- * matches with the receiver.

- * @param argument the argument to match with the receiver

- */

-public boolean matches(String argument) {

-	return regexp.matches(argument);

-}

-

-/**

- * Sets the receiver's pattern.

- * 

- * @param pattern the pattern value

- * @exception BuildException thrown if a problem occurs setting the pattern

- */

-public void setPattern(String pattern) throws BuildException {

-	if (regexp == null)

-		regexp = new RegularExpression(pattern);

-	else

-		regexp.setPattern(pattern);

-}

-}

diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/messages.properties b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/messages.properties
deleted file mode 100644
index 44c1e55..0000000
--- a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/messages.properties
+++ /dev/null
@@ -1,90 +0,0 @@
-### Ant Core plugin message catalog

-

-### labels

-label.buildFile = Build file: {0}

-label.mainTargets = Main targets:

-label.subTargets = Subtargets:

-label.defaultTarget = Default target:

-

-### usage

-usage.options = options

-usage.target = target

-usage.Options = Options

-usage.printMessage = print this message

-usage.projectHelp = print project help information

-usage.versionInfo = print the version information and exit

-usage.beQuiet = be extra quiet

-usage.beVerbose = be extra verbose

-usage.printDebugInfo = print debugging information

-usage.emacsLog = produce logging information without adornments

-usage.useFile = use given file for log

-usage.logClass = the class which is to perform logging

-usage.listenerClass = add an instance of class as a project listener

-usage.fileToBuild = use given buildfile

-usage.propertiesValues = use value for given property

-usage.findFileToBuild = search for buildfile towards the root of the filesystem and use it

-usage.antVersion = Ant version 

-usage.compiledOn =  compiled on 

-

-

-

-### info

-info.compiling = Compiling source files

-info.searchingFor = Searching for: {0} ...

-info.searchingIn = Searching in: {0} ...

-info.couldNotLoadLibrary = Could not load library: {0}.

-

-### error

-error.compileFailed = Compile failed; messages should have been provided.

-error.buildFailed = Build Failed.

-

-### exception

-exception.antTaskCallingParentTarget = Ant task calling its own parent target.

-exception.buildFileIsDirectory = Build file is a directory: {0}

-exception.buildFileNotFound = Build file not found: {0}

-exception.cannotAppendToReference = Cannot append to a reference.

-exception.cannotCreateListener = Unable to instantiate listener: {0}

-exception.cannotCreateLogger = Unable to instantiate logger: {0}

-exception.cannotLoadVersionInfo = Could not load the version information. {0}

-exception.cannotSetOutput = Ant cannot set output to: {0}

-exception.cannotWriteToLog = Cannot write on the specified log file.  Make sure the path exists and you have write permissions.

-exception.classNotFound = Class not found: {0}

-exception.classNotCompiler = Class is not a compiler adapter: {0}

-exception.creationProblem = Exception creating: {0}

-exception.loggerDoesNotImplementInterface = The specified logger class does not implement the BuildLogger interface: {0}

-exception.missingBuildFile = You must specify a build file when using the -buildfile argument.

-exception.missingClassName = You must specify a class name when using the -listener argument.

-exception.missingDestinationDir = Destination directory does not exist or is not a directory: {0}

-exception.missingExcludesFile = Excludes file not found: {0}

-exception.missingIncludesFile = Includes file not found: {0}

-exception.missingLogFile = You must specify a log file when using the -log argument.

-exception.missingSrcAttribute = srcdir attribute must be set.

-exception.missingSourceDir = srcdir does not exist: {0}

-exception.multipleLoggers = Only one logger class may be specified.

-exception.noBuildFile = Could not locate a build file.

-exception.noParser = No JAXP compliant XML parser found. See http://java.sun.com/xml for the reference implementation.

-exception.notAPatternSet = Not a patternset: {0}

-exception.patternFile = An error occured while reading pattern file: {0}

-exception.resourceNotFound = Resource not found: {0}

-exception.unknownArgument = Unknown argument: {0}

-exception.sourceNotSpecified = The attribute "source" must be specified.

-exception.forceNotSpecified = The attribute "force" must be specified.

-exception.deleteContentNotSpecified = The attribute "deleteContent" must be specified.

-exception.projectDoesntExist = The project "{0}" does not exist.

-exception.nameAlreadyUsed = The name "{0}" is already used for another project.

-exception.destinationNotSpecified = The attribute destination must be specified.

-exception.invalidPath = Invalid path: {0}.

-exception.propertyAndPathIdNotSpecified = At least one of the "property" or "pathId" attributes must be specified.

-exception.cantUseBoth = "fileSystemPath" and "resourcePath" can't be used at the same time.

-exception.mustHaveOneAttribute = "fileSystemPath" or "resourcePath" must be specified.

-exception.pathNotValid = The path "{0}" for the resource is not a valid path as the first segment does not represent a project.

-exception.noProjectMatchThePath = The path "{0}" doesn't match any existing project.

-exception.unknownProject = The project "{0}" does not exist.

-exception.commandMustHaveName = The attribute "name" must be set for the command.

-exception.doesntDenoteACommand = {0} doesn't denote a command.

-exception.noAttributes = You must not specify any attribute when using refid.

-exception.noNestedElements = You must not define nested elements when using refid.

-exception.folderAlreadyUsedForAnotherProject = Project content location overlaps with an existing project's content location.

-exception.cantCopyProjectInSameFolder = You must specify a location for the project to copy because it is already located in a specific folder ("{0}").

-exception.resourceNotSpecified = The resource attribute must be specified with a valid existing resource name.

-exception.targetDoesNotExist = The target "{0}" does not exist.
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/package.html b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/package.html
deleted file mode 100644
index d737de8..0000000
--- a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/package.html
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">

-<html>

-<head>

-   <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

-   <title>Package-level Javadoc</title>

-</head>

-<body>

-Provides support for running the Ant build tool in the platform.

-<h2>

-Package Specification</h2>

-This package defines a number of task and data types and various infrastructure

-pieces which make Ant in the platform easier and more powerful.

-</body>

-</html>

diff --git a/ant/org.eclipse.ant.ui/.classpath b/ant/org.eclipse.ant.ui/.classpath
deleted file mode 100644
index b07cb74..0000000
--- a/ant/org.eclipse.ant.ui/.classpath
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT" sourcepath="JRE_SRC"/>
-    <classpathentry kind="src" path="/org.eclipse.core.boot"/>
-    <classpathentry kind="src" path="/org.eclipse.core.runtime"/>
-    <classpathentry kind="src" path="/org.eclipse.core.resources"/>
-    <classpathentry kind="src" path="/org.eclipse.ant.core"/>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="src" path="/org.eclipse.swt"/>
-    <classpathentry kind="src" path="/org.eclipse.ui"/>
-    <classpathentry kind="src" path="/org.apache.ant"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/ant/org.eclipse.ant.ui/.cvsignore b/ant/org.eclipse.ant.ui/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/ant/org.eclipse.ant.ui/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.ui/.vcm_meta b/ant/org.eclipse.ant.ui/.vcm_meta
deleted file mode 100644
index b877ca5..0000000
--- a/ant/org.eclipse.ant.ui/.vcm_meta
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project-description>

-	<nature id="org.eclipse.jdt.core.javanature"/>

-	<reference project-name="org.apache.ant"/>

-	<reference project-name="org.eclipse.ant.core"/>

-	<reference project-name="org.eclipse.core.boot"/>

-	<reference project-name="org.eclipse.core.resources"/>

-	<reference project-name="org.eclipse.core.runtime"/>

-	<reference project-name="org.eclipse.swt"/>

-	<reference project-name="org.eclipse.ui"/>

-	<builder name="org.eclipse.jdt.core.javabuilder">

-	</builder>

-</project-description>

diff --git a/ant/org.eclipse.ant.ui/about.html b/ant/org.eclipse.ant.ui/about.html
deleted file mode 100644
index 768324e..0000000
--- a/ant/org.eclipse.ant.ui/about.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<html>

-<head>

-<title>About</title>

-<style type="text/css">

-p, table, td, th { font-family: arial, helvetica, geneva; font-size: 10pt}

-pre { font-family: "Courier New", Courier, mono; font-size: 10pt}

-h2 { font-family: arial, helvetica, geneva; font-size: 18pt; font-weight: bold ; line-height: 14px}

-code { font-family: "Courier New", Courier, mono; font-size: 10pt}

-sup { font-family: arial,helvetica,geneva; font-size: 10px}

-h3 { font-family: arial, helvetica, geneva; font-size: 14pt; font-weight: bold}

-li { font-family: arial, helvetica, geneva; font-size: 10pt}

-h1 { font-family: arial, helvetica, geneva; font-size: 28px; font-weight: bold}

-body { font-family: arial, helvetica, geneva; font-size: 10pt; clip: rect(   ); margin-top: 5mm; margin-left: 3mm}

-</style>

-</head>

-<body lang="EN-US" link="blue" vlink="purple">

-<table border="0" cellspacing="5" cellpadding="2" width="100%" >

-  <tr> 

-    <td align="LEFT" valign="TOP" colspan="2" bgcolor="#0080C0"><b><font color="#FFFFFF">About This Content</font></b></td>

-  </tr>

-  <tr> 

-    <td> 

-<p>11th December, 2001</p>	

-<h3>License</h3>

-<p>Eclipse.org makes available all content in this plug-in &quot;Content&quot;.  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the

-<a href="http://www.eclipse.org/legal/cpl-v05.html">Common Public License Version 0.5</a> &quot;CPL&quot;.  For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>

-

-<h3>Contributions</h3>

-

-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise

-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such

-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>

-

-<p>If this Content is licensed to you under license terms and conditions other than the CPL &quot;Other License&quot;, any modifications, enhancements and/or

-other code and/or documentation &quot;Modifications&quot; uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the

-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available

-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also

-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of

-the CPL.</p>

-</td></tr></table>

-</body>

-</html>
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.ui/build.properties b/ant/org.eclipse.ant.ui/build.properties
deleted file mode 100644
index 4b8a87b..0000000
--- a/ant/org.eclipse.ant.ui/build.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-source.antui.jar=src/

-bin.includes=icons/,plugin.xml,*.jar,plugin.properties,about.html

-javadoc.packages=org.eclipse.*

diff --git a/ant/org.eclipse.ant.ui/icons/basic/clcl16/clear.gif b/ant/org.eclipse.ant.ui/icons/basic/clcl16/clear.gif
deleted file mode 100644
index 2558326..0000000
--- a/ant/org.eclipse.ant.ui/icons/basic/clcl16/clear.gif
+++ /dev/null
Binary files differ
diff --git a/ant/org.eclipse.ant.ui/icons/basic/clcl16/hideOrShowTree.gif b/ant/org.eclipse.ant.ui/icons/basic/clcl16/hideOrShowTree.gif
deleted file mode 100644
index 5a8c7ea..0000000
--- a/ant/org.eclipse.ant.ui/icons/basic/clcl16/hideOrShowTree.gif
+++ /dev/null
Binary files differ
diff --git a/ant/org.eclipse.ant.ui/icons/basic/clcl16/showOnlySelectedText.gif b/ant/org.eclipse.ant.ui/icons/basic/clcl16/showOnlySelectedText.gif
deleted file mode 100644
index be9eb92..0000000
--- a/ant/org.eclipse.ant.ui/icons/basic/clcl16/showOnlySelectedText.gif
+++ /dev/null
Binary files differ
diff --git a/ant/org.eclipse.ant.ui/icons/basic/cview16/ant_view.gif b/ant/org.eclipse.ant.ui/icons/basic/cview16/ant_view.gif
deleted file mode 100644
index 0165a50..0000000
--- a/ant/org.eclipse.ant.ui/icons/basic/cview16/ant_view.gif
+++ /dev/null
Binary files differ
diff --git a/ant/org.eclipse.ant.ui/icons/basic/eview16/ant_view.gif b/ant/org.eclipse.ant.ui/icons/basic/eview16/ant_view.gif
deleted file mode 100644
index 76be436..0000000
--- a/ant/org.eclipse.ant.ui/icons/basic/eview16/ant_view.gif
+++ /dev/null
Binary files differ
diff --git a/ant/org.eclipse.ant.ui/icons/basic/wizban/ant_wiz.gif b/ant/org.eclipse.ant.ui/icons/basic/wizban/ant_wiz.gif
deleted file mode 100644
index c4aaf15..0000000
--- a/ant/org.eclipse.ant.ui/icons/basic/wizban/ant_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/ant/org.eclipse.ant.ui/icons/full/clcl16/clear.gif b/ant/org.eclipse.ant.ui/icons/full/clcl16/clear.gif
deleted file mode 100644
index 2558326..0000000
--- a/ant/org.eclipse.ant.ui/icons/full/clcl16/clear.gif
+++ /dev/null
Binary files differ
diff --git a/ant/org.eclipse.ant.ui/icons/full/clcl16/hideOrShowTree.gif b/ant/org.eclipse.ant.ui/icons/full/clcl16/hideOrShowTree.gif
deleted file mode 100644
index 5a8c7ea..0000000
--- a/ant/org.eclipse.ant.ui/icons/full/clcl16/hideOrShowTree.gif
+++ /dev/null
Binary files differ
diff --git a/ant/org.eclipse.ant.ui/icons/full/clcl16/showOnlySelectedText.gif b/ant/org.eclipse.ant.ui/icons/full/clcl16/showOnlySelectedText.gif
deleted file mode 100644
index be9eb92..0000000
--- a/ant/org.eclipse.ant.ui/icons/full/clcl16/showOnlySelectedText.gif
+++ /dev/null
Binary files differ
diff --git a/ant/org.eclipse.ant.ui/icons/full/cview16/ant_view.gif b/ant/org.eclipse.ant.ui/icons/full/cview16/ant_view.gif
deleted file mode 100644
index 03e30a2..0000000
--- a/ant/org.eclipse.ant.ui/icons/full/cview16/ant_view.gif
+++ /dev/null
Binary files differ
diff --git a/ant/org.eclipse.ant.ui/icons/full/eview16/ant_view.gif b/ant/org.eclipse.ant.ui/icons/full/eview16/ant_view.gif
deleted file mode 100644
index eba5891..0000000
--- a/ant/org.eclipse.ant.ui/icons/full/eview16/ant_view.gif
+++ /dev/null
Binary files differ
diff --git a/ant/org.eclipse.ant.ui/icons/full/eview16/build_exec.gif b/ant/org.eclipse.ant.ui/icons/full/eview16/build_exec.gif
deleted file mode 100644
index 20e7bae..0000000
--- a/ant/org.eclipse.ant.ui/icons/full/eview16/build_exec.gif
+++ /dev/null
Binary files differ
diff --git a/ant/org.eclipse.ant.ui/icons/full/wizban/ant_wiz.gif b/ant/org.eclipse.ant.ui/icons/full/wizban/ant_wiz.gif
deleted file mode 100644
index 42754e5..0000000
--- a/ant/org.eclipse.ant.ui/icons/full/wizban/ant_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/ant/org.eclipse.ant.ui/plugin.properties b/ant/org.eclipse.ant.ui/plugin.properties
deleted file mode 100644
index 249f8bf..0000000
--- a/ant/org.eclipse.ant.ui/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-antActionSetLabel = Ant

-antBuilderPropertyName=Tool Script Builders

-antConsole = Ant Console

-antConsolePreferences = Console

-antLauncher = Ant Targets

-antPreferences = Ant Preferences

-executeAntLabel = Run Ant Script

-executeAntTooltip =  Run Ant script

-executeToolScriptLabel = Run Tool &Script...

-pluginName = Ant Build Tool UI

-runAnt = Run &Ant...

-runAntTip = Run Ant with the selected build file

diff --git a/ant/org.eclipse.ant.ui/plugin.xml b/ant/org.eclipse.ant.ui/plugin.xml
deleted file mode 100644
index ceb49e4..0000000
--- a/ant/org.eclipse.ant.ui/plugin.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-

-<plugin

-  name = "%pluginName"

-  id="org.eclipse.ant.ui"

-  version = "2.0.2"

-  provider-name = "Object Technology International, Inc."

-  class="org.eclipse.ant.internal.ui.AntUIPlugin">

-

-  <requires>

-    <import plugin="org.eclipse.ui"/>

-    <import plugin="org.eclipse.core.resources"/>

-    <import plugin="org.eclipse.ant.core"/>

-  </requires>

-

-  <runtime>

-    <library name="antui.jar">  

-      <export name = "*"/>

-    </library> 

-  </runtime>

-

-  <extension point="org.eclipse.ui.popupMenus">

-	<objectContribution

-		id="org.eclipse.ant.ui.RunAnt"

-		objectClass="org.eclipse.core.resources.IResource"

-		nameFilter="*.xml">

-		<action

-			id="RunAnt"

-			label="%runAnt"

-			tooltip="%runAntTip"

-			menubarPath="additions"

-			enablesFor="1"

-			class="org.eclipse.ant.internal.ui.RunAntActionDelegate">

-		</action>

-	</objectContribution>			

-  </extension>

-  

-  <extension point="org.eclipse.ui.views">

-	<category 

-		id="org.eclipse.ant.ui"

-		name="&amp;Ant">

-	</category>

-	<view

-		id="org.eclipse.ant.ui.antconsole"

-		name="%antConsole"

-		icon="icons/full/cview16/ant_view.gif"

-		category="org.eclipse.ant.ui"

-		class="org.eclipse.ant.internal.ui.AntConsole">

-	</view>

-  </extension>

-  

-  <extension point="org.eclipse.ui.preferencePages">

-  	<page 

-  		id="org.eclipse.ant.ui.AntPreferences" 

-  		name="%antPreferences"

-  		class="org.eclipse.ant.internal.ui.AntPreferencesPage">

-  	</page>

-  	<page 

-  		id="org.eclipse.ant.ui.AntConsolePreferences" 

-  		name="%antConsolePreferences"

-  		class="org.eclipse.ant.internal.ui.AntConsolePreferencePage"

-  		category="org.eclipse.ant.ui.AntPreferences">

-  	</page>

-  </extension>

-  

-  <extension point="org.eclipse.ui.actionSets">

-	<actionSet label="%antActionSetLabel" 

-		visible="false" 

-		id="org.eclipse.ant.ui.antActionSet">

-	  	<action label="%executeAntLabel" 

-	  		pulldown="true" 

-	  		icon="icons/full/eview16/ant_view.gif" 

-	  		tooltip="%executeAntTooltip" 

-	  		class="org.eclipse.ant.internal.ui.AntLaunchDropDownAction" 

-	  		toolbarPath="ant" 

-	  		id="org.eclipse.ant.ui.antDropDownAction" /> 

-	</actionSet>

-  </extension>

-  

-</plugin>

diff --git a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntAction.java b/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntAction.java
deleted file mode 100644
index 6f25b52..0000000
--- a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntAction.java
+++ /dev/null
@@ -1,85 +0,0 @@
-package org.eclipse.ant.internal.ui;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.io.File;

-

-import org.apache.tools.ant.ProjectHelper;

-import org.eclipse.ant.core.EclipseProject;

-import org.eclipse.core.resources.IFile;

-import org.eclipse.core.runtime.*;

-import org.eclipse.jface.action.Action;

-import org.eclipse.jface.dialogs.ErrorDialog;

-import org.eclipse.jface.wizard.WizardDialog;

-import org.eclipse.ui.*;

-

-public class AntAction extends Action {

-	

-	private IFile file;

-	

-public AntAction(IFile file) {

-	super();

-	this.file = file;

-	if (file != null) {

-		setText(file.getName());

-		setToolTipText(file.getFullPath().toOSString());

-	}

-	else

-		setText(Policy.bind("launcher.noFile"));

-}

-

-public void run() {

-	if (file == null)

-		return;

-	

-	// save the modified files if required by the user

-	if (AntUIPlugin.getPlugin().getPreferenceStore().getBoolean(IAntPreferenceConstants.AUTO_SAVE)) {

-		IEditorPart[] editors = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getEditors();

-		for (int i=0; i<editors.length; i++) {

-			if (editors[i].isDirty()) {

-				editors[i].getSite().getPage().saveEditor(editors[i],false);

-			}

-		}

-	}

-	

-	EclipseProject project = extractProject(file);

-	if (project == null)

-		return;

-		

-	AntLaunchWizard wizard = new AntLaunchWizard(project,file);

-	wizard.setNeedsProgressMonitor(true);

-	WizardDialog dialog = new WizardDialog(AntUIPlugin.getPlugin().getWorkbench().getActiveWorkbenchWindow().getShell(),wizard);

-	dialog.create();

-	dialog.open();

-}

-

-protected EclipseProject extractProject(IFile sourceFile) {

-	// create a project and initialize it

-	EclipseProject antProject = new EclipseProject();

-	antProject.init();

-	antProject.setProperty("ant.file",sourceFile.getLocation().toOSString());

-	

-	try {

-		ProjectHelper.configureProject(antProject,new File(sourceFile.getLocation().toOSString()));

-	} catch (Exception e) {

-		// If the document is not well-formated for example

-		String message = e.getMessage();

-		if (message == null)

-			message = Policy.bind("error.antParsingError");

-		IStatus status = new Status(IStatus.ERROR,AntUIPlugin.PI_ANTUI,IStatus.ERROR,message,e);

-		ErrorDialog.openError(

-			AntUIPlugin.getPlugin().getWorkbench().getActiveWorkbenchWindow().getShell(),

-			Policy.bind("error.antScriptError"),

-			Policy.bind("error.antParsingError"),

-			status);

-			

-		return null;

-	}

-	return antProject;

-}

-

-}

-

diff --git a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntConsole.java b/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntConsole.java
deleted file mode 100644
index d43d131..0000000
--- a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntConsole.java
+++ /dev/null
@@ -1 +0,0 @@
-package org.eclipse.ant.internal.ui;

/*
 * (c) Copyright IBM Corp. 2000, 2001.
 * All Rights Reserved.
 */

import java.net.*;
import java.util.*;
import org.apache.tools.ant.Project;
import org.eclipse.jface.action.*;
import org.eclipse.jface.preference.PreferenceConverter;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.text.*;
import org.eclipse.jface.util.*;
import org.eclipse.jface.viewers.*;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.*;
import org.eclipse.swt.events.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.ui.*;
import org.eclipse.ui.part.ViewPart;
import org.eclipse.ui.texteditor.FindReplaceAction;
import org.eclipse.ui.texteditor.ITextEditorActionConstants;

public class AntConsole extends ViewPart {

	public final static String CONSOLE_ID = "org.eclipse.ant.ui.antconsole";
	public final static String PROPERTY_PREFIX_FIND = "find_action.";
	private final static int SASH_WIDTH = 3; // regular width for a sash
	
	// strings for the memento
	private final static String TREE_WIDTH_PROPERTY = "tree_width";
	private final static String SHOW_ONLY_SELECTED_ITEM_PROPERTY = "wasShowOnlySelectedTreeItemsTurnedOn";
	private final static String SHOW_TREE_PROPERTY = "hideOrShowTreeAction";
	
	// UI objects
	private SashForm sash;
	private TreeViewer tree;
	private TextViewer viewer;
	private Action copyAction;
	private Action selectAllAction;
	private Action clearOutputAction;
	private Action findAction;
	private Action expandTreeItemAction;
	private Action showTreeAction;
	private Action showSelectedItemAction;
	private IDocument document;
	private Vector styleRangeVector;
	private AntTreeLabelProvider labelprovider;
	private AntTreeContentProvider contentProvider;
	
	// Structure to store the textwidget index information
	OutputStructureElement root = null;	
	OutputStructureElement currentElement = null;
	
	// class variables that handle the colors and the font
	static Color ERROR_COLOR;
	static Color WARN_COLOR;
	static Color INFO_COLOR;
	static Color VERBOSE_COLOR;
	static Color DEBUG_COLOR;
	static Font ANT_FONT;
	private static AntPropertyChangeListener changeListener = AntPropertyChangeListener.getInstance();
	// a Vector that keeps track of al the instances of this class so that they can share the Colors and the Font
	public static Vector instances = new Vector();

	// lastWidth is used to store the width of the tree that the user set
	private int lastTreeWidth = 30;
	private boolean showOnlySelectedItems = false;
	private boolean showTree = false;

/**
 * Constructor for AntConsole
 */
public AntConsole() {
	super();
	if (instances.size() == 0) {
		// first time there is an instance of this class: intantiate the colors and register the listener
		ERROR_COLOR = new Color(null, PreferenceConverter.getColor(AntUIPlugin.getPlugin().getPreferenceStore(),IAntPreferenceConstants.CONSOLE_ERROR_RGB));
		WARN_COLOR = new Color(null, PreferenceConverter.getColor(AntUIPlugin.getPlugin().getPreferenceStore(),IAntPreferenceConstants.CONSOLE_WARNING_RGB));
		INFO_COLOR = new Color(null, PreferenceConverter.getColor(AntUIPlugin.getPlugin().getPreferenceStore(),IAntPreferenceConstants.CONSOLE_INFO_RGB));
		VERBOSE_COLOR = new Color(null, PreferenceConverter.getColor(AntUIPlugin.getPlugin().getPreferenceStore(),IAntPreferenceConstants.CONSOLE_VERBOSE_RGB));
		DEBUG_COLOR = new Color(null, PreferenceConverter.getColor(AntUIPlugin.getPlugin().getPreferenceStore(),IAntPreferenceConstants.CONSOLE_DEBUG_RGB));
		ANT_FONT = new Font(null, PreferenceConverter.getFontData(AntUIPlugin.getPlugin().getPreferenceStore(),IAntPreferenceConstants.CONSOLE_FONT));
	
		AntUIPlugin.getPlugin().getPreferenceStore().addPropertyChangeListener(changeListener);
	}
	
	instances.add(this);
	document = new Document();
	styleRangeVector = new Vector(5);
	labelprovider = new AntTreeLabelProvider(this);
	contentProvider = new AntTreeContentProvider(this);
	initializeOutputStructure();
}

/**
 * @see IViewPart
 */
public void init(IViewSite site, IMemento memento) throws PartInitException {
	super.init(site,memento);
	if (memento != null) {
		// retrieve the values of the previous session
		lastTreeWidth = memento.getInteger(TREE_WIDTH_PROPERTY).intValue();
		showOnlySelectedItems = memento.getInteger(SHOW_ONLY_SELECTED_ITEM_PROPERTY).intValue() != 0;
		showTree = memento.getInteger(SHOW_TREE_PROPERTY).intValue() != 0;
	}
}

protected void addContributions() {

	// In order for the clipboard actions to be accessible via their shortcuts
	// (e.g., Ctrl-C, Ctrl-V), we *must* set a global action handler for
	// each action
	IActionBars actionBars= getViewSite().getActionBars();
	actionBars.setGlobalActionHandler(ITextEditorActionConstants.COPY, copyAction);
	actionBars.setGlobalActionHandler(ITextEditorActionConstants.FIND, findAction);
	actionBars.setGlobalActionHandler(ITextEditorActionConstants.SELECT_ALL, selectAllAction);
		
	MenuManager textViewerMgr = new MenuManager();
	textViewerMgr.setRemoveAllWhenShown(true);
	textViewerMgr.addMenuListener(new IMenuListener() {
		public void menuAboutToShow(IMenuManager textViewerMgr) {
			fillTextViewerContextMenu(textViewerMgr);
		}
	});
	Menu textViewerMenu = textViewerMgr.createContextMenu(viewer.getControl());
	viewer.getControl().setMenu(textViewerMenu);
	
	MenuManager treeViewerMgr = new MenuManager();
	treeViewerMgr.setRemoveAllWhenShown(true);
	treeViewerMgr.addMenuListener(new IMenuListener() {
		public void menuAboutToShow(IMenuManager treeViewerMgr) {
			fillTreeViewerContextMenu(treeViewerMgr);
		}
	});
	Menu treeViewerMenu = treeViewerMgr.createContextMenu(tree.getControl());
	tree.getControl().setMenu(treeViewerMenu);
	
	//add toolbar actions
	IToolBarManager tbm= getViewSite().getActionBars().getToolBarManager();
	tbm.add(showTreeAction);
	tbm.add(showSelectedItemAction);
	tbm.add(clearOutputAction);
	getViewSite().getActionBars().updateActionBars();
}

private void createHideOrShowTreeAction() {
	showTreeAction = new Action() {
		public void run() {
			showTree = isChecked();
			if (showTree) {
				// the tree is hidden, let's show it
				sash.SASH_WIDTH = SASH_WIDTH;
				sash.setWeights(new int[] {lastTreeWidth, 100-lastTreeWidth});
				setToolTipText(Policy.bind("console.hideOutputStructureTree"));
				// the "ShowOnlySelectedElement" functionality can be turned on
				showSelectedItemAction.setEnabled(true);
				showSelectedItemAction.setChecked(showOnlySelectedItems);
				showSelectedItemAction.run();
			}
			else {
				// let's hide the tree
				sash.SASH_WIDTH = 0;
				sash.setWeights(new int[] {0,100});
				setToolTipText(Policy.bind("console.showOutputStructureTree"));
				// show the whole document
				showCompleteOutput();
				// disable the show selected item action
				showSelectedItemAction.setEnabled(false);
			}
		}
	};
	
	showTreeAction.setImageDescriptor(getImageDescriptor("icons/full/clcl16/hideOrShowTree.gif"));
	showTreeAction.setChecked(showTree);
	showTreeAction.setText(Policy.bind("console.showTree"));
	String tooltip = showTree ? "console.hideOutputStructureTree" : "console.showOutputStructureTree";
	showTreeAction.setToolTipText(Policy.bind(tooltip));
}


private boolean isTreeHidden() {
	return sash.getWeights()[0] == 0;
}

public void append(String value) {
	append(value, Project.MSG_INFO);
}

public void append(final String value, final int ouputLevel) {
	getViewSite().getShell().getDisplay().syncExec(new Runnable() {
		public void run() {
			int start = document.get().length();
			document.set(document.get() + value);
			setOutputLevelColor(ouputLevel, start, value.length());
			if (value.length() > 0 && viewer != null)
				viewer.revealRange(document.get().length() - 1, 1);
		}
	});
}

private void setOutputLevelColor(int level, int start, int end) {
	switch (level) {
		case Project.MSG_ERR: 
			addRangeStyle(start, end, ERROR_COLOR); 
			break;
		case Project.MSG_WARN: 
			addRangeStyle(start, end, WARN_COLOR); 
			break;
		case Project.MSG_INFO: 
			addRangeStyle(start, end, INFO_COLOR); 
			break;
		case Project.MSG_VERBOSE: 
			addRangeStyle(start, end, VERBOSE_COLOR); 
			break;
		case Project.MSG_DEBUG: 
			addRangeStyle(start, end, DEBUG_COLOR); 
			break;
		default: 
			addRangeStyle(start, end, INFO_COLOR);
	}
}

private void addRangeStyle(int start, int length, Color color) {
	if (styleRangeVector.size() != 0) {
		StyleRange lastStyle = (StyleRange) styleRangeVector.lastElement();
		if (color.equals(lastStyle.foreground))
			lastStyle.length += length;
		else
			styleRangeVector.add(new StyleRange(start, length, color, null));
	} else
		styleRangeVector.add(new StyleRange(start, length, color, null));

	StyleRange[] styleArray = (StyleRange[]) styleRangeVector.toArray(new StyleRange[styleRangeVector.size()]);			
	if (viewer != null)
		viewer.getTextWidget().setStyleRanges(styleArray);
}

protected void copySelectionToClipboard() {
	viewer.doOperation(viewer.COPY);
}
/**
 * Creates the actions that will appear in this view's toolbar and popup menus.
 */
protected void createActions() {
	// Create the actions for the text viewer.
	copyAction = new Action(Policy.bind("console.copy")) {
		public void run() {
			copySelectionToClipboard();
		}
	};
	selectAllAction = new Action(Policy.bind("console.selectAll")) {
		public void run() {
			selectAllText();
		}
	};
	clearOutputAction = new Action(Policy.bind("console.clearOutput")) {
		public void run() {
			clearOutput();
		}
	};
	clearOutputAction.setImageDescriptor(getImageDescriptor("icons/full/clcl16/clear.gif"));
	clearOutputAction.setToolTipText(Policy.bind("console.clearOutput"));
	
	findAction = new FindReplaceAction(
		AntUIPlugin.getResourceBundle(),
		PROPERTY_PREFIX_FIND,
		this);
	findAction.setEnabled(true);
	
	// Create the actions for the tree viewer.
	createHideOrShowTreeAction();
	expandTreeItemAction = new Action(Policy.bind("console.expandAll")) {
		public void run() {
			OutputStructureElement selectedElement = (OutputStructureElement) ((IStructuredSelection) tree.getSelection()).getFirstElement();
			tree.expandToLevel(selectedElement, tree.ALL_LEVELS);
		}
	};
	
	//create the toolbar actions
	showSelectedItemAction = new Action() {
		public void run() {
			showOnlySelectedItems = isChecked();
			if (showOnlySelectedItems) {
				// we want to show only the selected tree items
				showSelectedElementOnly();
				// changes the labels
				setToolTipText(Policy.bind("console.showCompleteOutput"));
			}
			else {
				// we want to show the whole document now
				showCompleteOutput();
				// changes the labels
				setToolTipText(Policy.bind("console.showSelectedElementOnly"));
			}
		}
	};
	showSelectedItemAction.setImageDescriptor(getImageDescriptor("icons/full/clcl16/showOnlySelectedText.gif"));
	showSelectedItemAction.setChecked(showOnlySelectedItems);
	showSelectedItemAction.setText(Policy.bind("console.showSelectedElementOnly"));		
	String tooltip = showOnlySelectedItems ? "console.showCompleteOutput" : "console.showSelectedElementOnly";
	showSelectedItemAction.setToolTipText(Policy.bind(tooltip));
}

public void clearOutput() {
	document.set("");
	styleRangeVector.removeAllElements();
	// the tree can be null if #createPartControl has not called yet, 
	// i.e. if the console exists but has never been shown so far
	if (tree != null) {
		initializeOutputStructure();
		refreshTree();
	}
}

/*
 * Shows the output of the selected item only
 */
protected void showSelectedElementOnly() {
	IStructuredSelection selection = (IStructuredSelection) tree.getSelection();
	if (selection.isEmpty())
		viewer.setVisibleRegion(0,0);
	else {
		OutputStructureElement selectedElement = (OutputStructureElement) selection.getFirstElement();
		// XXX NOTE: #setVisibleRegion doesn't keep the color information... See "1GHQC7Q: ITPUI:WIN2000 - TextViewer#setVisibleRegion doesn't take into account the colors"
		viewer.setVisibleRegion(selectedElement.getStartIndex(), selectedElement.getLength());
	}
}

/*
 * Shows the output of the whole docuent, and reveals the range of the selected item
 */
protected void showCompleteOutput() {
	// show all the document
	viewer.setVisibleRegion(0, document.get().length());
	// XXX should I have to do that? If this is not done, then the colors don't appear --> bug of #setVisibleRegion ? --> See "1GHQC7Q: ITPUI:WIN2000 - TextViewer#setVisibleRegion doesn't take into account the colors"
	viewer.getTextWidget().setStyleRanges((StyleRange[]) styleRangeVector.toArray(new StyleRange[styleRangeVector.size()]));
	// and then reveal the range of the selected item
	revealRangeOfSelectedItem();
}

private void revealRangeOfSelectedItem() {
	IStructuredSelection selection = (IStructuredSelection) tree.getSelection();
	if (!selection.isEmpty()) {
		// then show the reveal the range of the output accordingly
		OutputStructureElement selectedElement = (OutputStructureElement) selection.getFirstElement();
		viewer.revealRange(selectedElement.getStartIndex(), selectedElement.getLength());
		viewer.setSelectedRange(selectedElement.getStartIndex(), selectedElement.getLength());
	}	
}

public void initializeOutputStructure() {
	// root is the first element of the structure: it is a fake so it doesn't need a real name
	root = new OutputStructureElement("-- root --");
	currentElement = new OutputStructureElement(Policy.bind("console.antScript"), root, 0);
	
	if (tree != null)
		initializeTreeInput();
}

public void initializeTreeInput() {
	getSite().getShell().getDisplay().syncExec(new Runnable(){
		public void run() {
			if (tree != null)
				tree.setInput(root);
		}
	});
}

public void refreshTree() {
	// if the tree is null, it means that the view hasn't been shown yet, so we don't need to refresh it.
	if (tree != null) {
		getSite().getShell().getDisplay().syncExec(new Runnable(){
			public void run() {
					tree.refresh();
					tree.expandAll();
				}
		});
	}
}

public void updateFont() {
	if (viewer != null)
		viewer.getTextWidget().setFont(ANT_FONT);
}

protected void fillTextViewerContextMenu(IMenuManager manager) {
	copyAction.setEnabled(viewer.canDoOperation(viewer.COPY));
	selectAllAction.setEnabled(viewer.canDoOperation(viewer.SELECT_ALL));
	manager.add(copyAction);
	manager.add(findAction);
	manager.add(selectAllAction);
	manager.add(new Separator());
	manager.add(showTreeAction);
	manager.add(clearOutputAction);
}

protected void fillTreeViewerContextMenu(IMenuManager manager) {
	manager.add(showSelectedItemAction);
	manager.add(expandTreeItemAction);
	manager.add(new Separator());
	manager.add(showTreeAction);
	manager.add(clearOutputAction);
}

public Object getAdapter(Class required) {
	if (IFindReplaceTarget.class.equals(required))
		return viewer.getFindReplaceTarget();
	return super.getAdapter(required);
}

protected ImageDescriptor getImageDescriptor(String relativePath) {
	try {
		URL installURL = AntUIPlugin.getPlugin().getDescriptor().getInstallURL();
		URL url = new URL(installURL,relativePath);
		return ImageDescriptor.createFromURL(url);
	} catch (MalformedURLException e) {
		return null;
	}
}
protected void selectAllText() {
	viewer.doOperation(viewer.SELECT_ALL);
}

/**
 * @see WorkbenchPart#setFocus()
 */
public void setFocus() {
	sash.setFocus();
}

/**
 * @see WorkbenchPart#createPartControl(Composite)
 */
public void createPartControl(Composite parent) {
	sash = new SashForm(parent, SWT.HORIZONTAL);
	GridLayout sashLayout = new GridLayout();
	sashLayout.marginHeight = 0;
	sashLayout.marginWidth = 0;
	sash.setLayout(sashLayout);
	sash.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_FILL | GridData.HORIZONTAL_ALIGN_FILL));

	tree = new TreeViewer(sash, SWT.V_SCROLL | SWT.H_SCROLL);
	GridData treeData = new GridData(GridData.FILL_BOTH);
	tree.getControl().setLayoutData(treeData);
	tree.setContentProvider(contentProvider);
	tree.setLabelProvider(labelprovider);
	tree.setInput(root);
	tree.expandAll();
	addTreeViewerListeners();

	viewer = new TextViewer(sash,SWT.WRAP | SWT.V_SCROLL | SWT.H_SCROLL);
	GridData viewerData = new GridData(GridData.FILL_BOTH);
	viewer.getControl().setLayoutData(viewerData);
	viewer.setEditable(false);
	viewer.setDocument(document);
	viewer.getTextWidget().setFont(ANT_FONT);
	viewer.getTextWidget().setStyleRanges((StyleRange[]) styleRangeVector.toArray(new StyleRange[styleRangeVector.size()]));
	addTextViewerListeners();
	
	// sets the ratio tree/textViewer for the sashForm
	if (showTree)
		sash.setWeights(new int[] {lastTreeWidth, 100-lastTreeWidth});
	else
		// the "hideOrShowTree" action wasn't checked: this means that the user didn't want to have the tree
		sash.setWeights(new int[] {0, 100});

	createActions();
	addContributions();
}

protected void addTreeViewerListeners() {
	tree.addSelectionChangedListener(new ISelectionChangedListener() {
		public void selectionChanged(SelectionChangedEvent e) {
			if (viewer != null)
				if (showSelectedItemAction.isChecked())
					showSelectedElementOnly();
				else
					revealRangeOfSelectedItem();
		}
	});
	// to remember the place of the sash when we hide the tree
	tree.getControl().addControlListener(new ControlAdapter() {
		public void controlResized(ControlEvent e) {
			if (tree.getControl().getSize().x != 0)
				// we don't want the width to be stored when the tree is getting hidden 
				// (because it equals zero and we want to have the previous value)
				lastTreeWidth = new Float( (float) tree.getControl().getSize().x / sash.getSize().x * 100).intValue();
		}
	});
}

protected void addTextViewerListeners() {
	viewer.getTextWidget().addMouseListener(new MouseAdapter() {
		public void mouseDown(MouseEvent e) {
			if (!showSelectedItemAction.isChecked())
				selectTreeItem(viewer.getTextWidget().getCaretOffset());
		}
	});
	viewer.getTextWidget().addKeyListener(new KeyAdapter(){
 		public void keyReleased(KeyEvent e) {
			if (!showSelectedItemAction.isChecked())
				selectTreeItem(viewer.getTextWidget().getCaretOffset());
 		}
	});
}

protected void selectTreeItem(int caretPosition) {
	// tree.getTree().getItems()[1] returns the root of the tree that contains the project
	// it may not exist if there is no output (in this case, there is only one item: the "Ant Script" one)
	if (tree.getTree().getItems().length != 1) {
		TreeItem itemToSelect = null;
		if (findItem(tree.getTree().getItems()[0], caretPosition) != null)
			// the first item is the good one
			itemToSelect = tree.getTree().getItems()[0];
		else
			// the first item is not the good one, let's check the second one and its children
			itemToSelect = findItem(tree.getTree().getItems()[1], caretPosition);

		tree.getTree().setSelection(new TreeItem[] {itemToSelect});
	}
}

private TreeItem findItem(TreeItem item, int position) {
	if (!( ((OutputStructureElement) item.getData()).getStartIndex() <= position 
			&& ((OutputStructureElement) item.getData()).getEndIndex() > position))
		return null;
	for (int i=0; i<item.getItems().length; i++) {
		TreeItem child = findItem (item.getItems()[i], position);
		if (child != null)
			return child;
	}
	return item;
}


/**
 * @see IViewPart
 */
public void saveState(IMemento memento) {
	memento.putInteger(TREE_WIDTH_PROPERTY, lastTreeWidth);
	// it is not possible to put a boolean in a memento, so we use integers
	memento.putInteger(SHOW_ONLY_SELECTED_ITEM_PROPERTY, showOnlySelectedItems ? 1 : 0);
	memento.putInteger(SHOW_TREE_PROPERTY, showTree ? 1 : 0);
}

public void dispose() {
	if (instances.size() == 1) {
		// all the consoles are diposed: we can dispose the colors as well and remove the property listener
		ERROR_COLOR.dispose();
		WARN_COLOR.dispose();
		INFO_COLOR.dispose();
		VERBOSE_COLOR.dispose();
		DEBUG_COLOR.dispose();
		ANT_FONT.dispose();
		
		AntUIPlugin.getPlugin().getPreferenceStore().removePropertyChangeListener(changeListener);
	}

	instances.remove(this);
	super.dispose();
}

}
\ No newline at end of file
diff --git a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntConsolePreferencePage.java b/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntConsolePreferencePage.java
deleted file mode 100644
index 749f936..0000000
--- a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntConsolePreferencePage.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package org.eclipse.ant.internal.ui;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.jface.preference.*;

-import org.eclipse.swt.graphics.*;

-import org.eclipse.swt.widgets.*;

-import org.eclipse.ui.*;

-import org.eclipse.ui.help.WorkbenchHelp;

-

-/**

- * A page to set the preferences for the console

- */

-public class AntConsolePreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {

-		

-

-/**

- * Create the console page.

- */

-public AntConsolePreferencePage() {

-	super(GRID);

-	

-	setDescription(Policy.bind("preferences.description"));

-	

-	IPreferenceStore store= AntUIPlugin.getPlugin().getPreferenceStore();

-	setPreferenceStore(store);

-}

-public void createControl(Composite parent) {

-	super.createControl(parent);

-	

-	// should do something here with the help..	

-	/*

-	WorkbenchHelp.setHelp(

-		parent,

-		new Object[] { IAntHelpContextIds.ANT_CONSOLE_PREFERENCE_PAGE });

-	*/

-}

-/**

- * Create all field editors for this page

- */

-public void createFieldEditors() {

-

-	ColorFieldEditor errOut= new ColorFieldEditor(IAntPreferenceConstants.CONSOLE_ERROR_RGB, Policy.bind("preferences.errorColor"), getFieldEditorParent());

-	ColorFieldEditor warnOut= new ColorFieldEditor(IAntPreferenceConstants.CONSOLE_WARNING_RGB, Policy.bind("preferences.warningColor"), getFieldEditorParent());

-	ColorFieldEditor infoOut= new ColorFieldEditor(IAntPreferenceConstants.CONSOLE_INFO_RGB, Policy.bind("preferences.infoColor"), getFieldEditorParent());

-	ColorFieldEditor verbOut= new ColorFieldEditor(IAntPreferenceConstants.CONSOLE_VERBOSE_RGB, Policy.bind("preferences.verboseColor"), getFieldEditorParent());

-	ColorFieldEditor debugOut= new ColorFieldEditor(IAntPreferenceConstants.CONSOLE_DEBUG_RGB, Policy.bind("preferences.debugColor"), getFieldEditorParent());

-	

-	FontFieldEditor font= new FontFieldEditor(IAntPreferenceConstants.CONSOLE_FONT, Policy.bind("preferences.font"), getFieldEditorParent());

-

-	addField(errOut);

-	addField(warnOut);

-	addField(infoOut);

-	addField(verbOut);

-	addField(debugOut);

-	addField(font);

-}

-/**

- * Returns the font data that describes the font to use for the console

- */

-protected static FontData getConsoleFontData() {

-	IPreferenceStore pstore= AntUIPlugin.getPlugin().getPreferenceStore();

-	FontData fontData= PreferenceConverter.getFontData(pstore, IAntPreferenceConstants.CONSOLE_FONT);

-	return fontData;

-}

-/**

- * Returns the a color based on the type.

- */

-protected static Color getPreferenceColor(String type) {

-	IPreferenceStore pstore= AntUIPlugin.getPlugin().getPreferenceStore();

-	RGB outRGB= PreferenceConverter.getColor(pstore, type);

-	return new Color(Display.getCurrent() ,outRGB);

-}

-/**

- * @see IWorkbenchPreferencePage#init

- */

-public void init(IWorkbench workbench) {

-}

-

-}

diff --git a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntLaunchDropDownAction.java b/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntLaunchDropDownAction.java
deleted file mode 100644
index a75050d..0000000
--- a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntLaunchDropDownAction.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package org.eclipse.ant.internal.ui;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

- 

-import java.io.File;

-import org.apache.tools.ant.ProjectHelper;

-import org.eclipse.ant.core.EclipseProject;

-import org.eclipse.core.resources.IFile;

-import org.eclipse.core.runtime.*;

-import org.eclipse.ui.*;

-import org.eclipse.ui.part.FileEditorInput;

-import org.eclipse.jface.action.*;

-import org.eclipse.jface.dialogs.ErrorDialog;

-import org.eclipse.jface.viewers.*;

-import org.eclipse.jface.wizard.WizardDialog;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.widgets.*;

-

-/**

- * Superclass of run & debug pulldown actions.

- */

-public class AntLaunchDropDownAction implements IWorkbenchWindowPulldownDelegate {

-	

-

-/**

- * @see IWorkbenchWindowActionDelegate

- */

-public void dispose() {

-}

-

-private void createMenuForAction(Menu parent, Action action) {

-	ActionContributionItem item= new ActionContributionItem(action);

-	item.fill(parent, -1);

-}

-

-/**

- * @see IWorkbenchWindowPulldownDelegate

- */

-public Menu getMenu(Control parent) {

-	Menu menu= new Menu(parent);

-	IFile[] historyList= AntUIPlugin.getPlugin().getHistory();

-	int count= 0;

-	for (int i = 0; i < historyList.length; i++) {

-		IFile file = historyList[i];

-		if (file == null) 

-			break;

-		AntAction newAction= new AntAction(file);

-		createMenuForAction(menu, newAction);

-		count++;

-	}

-	if (count == 0)

-		createMenuForAction(menu, new AntAction(null));

-

-	return menu;

-}

-

-/**

- * @see IWorkbenchWindowActionDelegate

- */

-public void init(IWorkbenchWindow window){

-}

-

-/**

- * @see IActionDelegate

- */

-public void run(IAction action) {

-	IWorkbenchWindow window= PlatformUI.getWorkbench().getActiveWorkbenchWindow();

-	IStructuredSelection selection= resolveSelection(window);

-	

-	if (selection != null) {

-		Object selectedObject = selection.getFirstElement();

-		if (selectedObject instanceof IFile) {

-			if (((IFile) selectedObject).getFileExtension().equals("xml"))

-				new AntAction((IFile) selectedObject).run();

-		}

-		else if (selectedObject instanceof FileEditorInput) {

-			if ((((FileEditorInput) selectedObject).getFile()).getFileExtension().equals("xml"))

-				new AntAction(((FileEditorInput) selectedObject).getFile()).run();

-		}

-	}

-}

-

-/**

- * Determines and returns the selection that provides context for the launch,

- * or <code>null</code> if there is no selection.

- */

-protected IStructuredSelection resolveSelection(IWorkbenchWindow window) {

-	if (window == null) {

-		return null;

-	}

-	ISelection selection= window.getSelectionService().getSelection();

-	if (selection == null || selection.isEmpty() || !(selection instanceof IStructuredSelection)) {

-		// there is no obvious selection - go fishing

-		selection= null;

-		IWorkbenchPage page= window.getActivePage();

-		if (page == null) {

-			//workspace is closed

-			return null;

-		}

-

-		// first, see if there is an active editor, and try its input element

-		IEditorPart editor= page.getActiveEditor();

-		Object element= null;

-		if (editor != null) {

-			element= editor.getEditorInput();

-		}

-

-		if (selection == null && element != null) {

-			selection= new StructuredSelection(element);

-		}

-	}

-	return (IStructuredSelection)selection;

-}

-

-/**

- * @see IActionDelegate

- */

-public void selectionChanged(IAction action, ISelection selection){

-}

-

-}

diff --git a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntLaunchWizard.java b/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntLaunchWizard.java
deleted file mode 100644
index a88950f..0000000
--- a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntLaunchWizard.java
+++ /dev/null
@@ -1,2 +0,0 @@
-package org.eclipse.ant.internal.ui;

/*
 * (c) Copyright IBM Corp. 2000, 2001.
 * All Rights Reserved.
 */

import java.lang.reflect.InvocationTargetException;
import java.util.*;
import org.apache.tools.ant.Target;
import org.eclipse.ant.core.*;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.*;
import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.ui.IPageService;
import org.eclipse.ui.IViewPart;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;

/**
 * The wizard used to run an Ant script file written in xml.
 * <p>
 * Note: Currently there is only one page in this wizard.
 */
-public class AntLaunchWizard extends Wizard {

	/**
	 * The project described in the xml file.
	 */	
	private EclipseProject project = null;

	/**
	 * The view that receives output logs from this plugin.
	 */	
	private AntConsole console = null;
	
	/**
	 * The first page of the wizard.
	 */
	private AntLaunchWizardPage page1 = null;
	
	/**
	 * The file that contains the Ant script.
	 */
	private IFile antFile = null;
	
	/**
	 * The string used to separate the previously selected target names in the persistent properties of the file.
	 */
	private final static String SEPARATOR_TARGETS = "\"";
	
	/**
	 * The identifier of the target property.
	 */
	private final static String PROPERTY_SELECTEDTARGETS = "selectedTargets";
	
	/**
	 * The identifier of the log property.
	 */
	private final static String PROPERTY_LOG = "ShowLogs";

	/**
	 * The identifier of the arguments property.
	 */
	private final static String PROPERTY_ARGUMENTS = "Arguments";

	/**
	 * The code indicating an exception during ant script execution.
	 */
	private final static int EXCEPTION_ANT_EXECUTION = 0x01;
	
/**
 * Creates a new wizard, given the project described in the file and the file itself.
 * 
 * @param project
 * @param antFile
 */
public AntLaunchWizard(EclipseProject project,IFile antFile) {
	super();
	this.project = project;
	this.antFile = antFile;
	setWindowTitle(Policy.bind("wizard.title"));
}

/**
 * Adds pages to the wizard and initialize them.
 * 
 */	
public void addPages() {
	page1 = new AntLaunchWizardPage(project);
	addPage(page1);
	page1.setInitialTargetSelections(getTargetNamesToPreselect());
	page1.setInitialArguments(getInitialArguments());
	page1.setDisplayLog(getShouldLogMessages());
}

/**
 * Retrieves (from the persistent properties of the file) the targets selected
 * during the last build of the file.
 * 
 * @return String[] the name of the targets
 */	
public String[] getTargetNamesToPreselect() {
	String propertyString = null;
	try {
		propertyString = antFile.getPersistentProperty(new QualifiedName(AntUIPlugin.PI_ANTUI,PROPERTY_SELECTEDTARGETS));
	} catch (CoreException e) {
		new Status(
			IStatus.WARNING,
			AntUIPlugin.PI_ANTUI,
			IStatus.WARNING,
			Policy.bind("status.targetPropertyNotRead", antFile.getFullPath().toString()),
			e);
	}
	
	if (propertyString == null)
		return new String[0];

	StringTokenizer tokenizer = new StringTokenizer(propertyString,SEPARATOR_TARGETS);
	String result[] = new String[tokenizer.countTokens()];
	int index = 0;
	while (tokenizer.hasMoreTokens())
		result[index++] = tokenizer.nextToken();

	return result;
}

/**
 * Retrieves (from the persistent properties of the file) the arguments specified
 * during the last build of the file.
 * 
 * @return String the arguments string
 */	
public String getInitialArguments() {
	String propertyString = null;
	
	try {
		propertyString = antFile.getPersistentProperty(new QualifiedName(AntUIPlugin.PI_ANTUI,PROPERTY_ARGUMENTS));
	} catch (CoreException e) {
		new Status(
			IStatus.WARNING,
			AntUIPlugin.PI_ANTUI,
			IStatus.WARNING,
			Policy.bind("status.argumentPropertyNotRead", antFile.getFullPath().toString()),
			e);
	}
	
	return propertyString;
}

/**
 * Retrieves (from the persistent properties of the file) the choice of the user
 * to show or not the output log.
 * 
 * @return boolean true if the user wants to show it, false if not
 */	
public boolean getShouldLogMessages() {
	boolean result = true;
	try {
		String resultString = antFile.getPersistentProperty(new QualifiedName(AntUIPlugin.PI_ANTUI,PROPERTY_LOG));
		if (resultString != null )
			result = (resultString.equals("true")) ? true : false;
	} catch (CoreException e) {
		new Status(
			IStatus.WARNING,
			AntUIPlugin.PI_ANTUI,
			IStatus.WARNING,
			Policy.bind("status.logPropertyNotRead", antFile.getFullPath().toString()),
			e);
	}

	return result;
}
		
/**
 * Builds the Ant file according to the selected targets and the arguments given in the command line.
 *
 * @return boolean
 */			
public boolean performFinish() {
	
	AntUIPlugin.getPlugin().addToHistory(antFile);
	
	final Vector targetVect = page1.getSelectedTargets();
	final String[] args = createArgumentsArray(targetVect);
	AntConsole[] consoles = null;

	if (page1.shouldLogMessages()) {
		try {
			IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
			page.showView(AntConsole.CONSOLE_ID);
			console = (AntConsole)page.findView(AntConsole.CONSOLE_ID);
			
			// Gets all the consoles
			consoles = new AntConsole[AntConsole.instances.size()];
			AntConsole.instances.toArray(consoles);
			
			// And clears the ouput for all of them
			for (int i = 0; i<consoles.length; i++)
				consoles[i].clearOutput();
		} catch (PartInitException e) {
			AntUIPlugin.getPlugin().getLog().log(
				new Status(
					IStatus.ERROR,
					AntUIPlugin.PI_ANTUI,
					0,
					Policy.bind("status.consoleNotInitialized"),
					e));
		}
	}
	
	// trick to be able to define the buildListener later in the inner class
	final UIBuildListener[] buildListener = new UIBuildListener[1];
	// the array of consoles need to be final to be passed to the UIBuildListener
	final AntConsole[] antConsoles = consoles;
	
	IRunnableWithProgress runnable = new IRunnableWithProgress() {
		public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
			
			monitor.beginTask(Policy.bind("monitor.runningAnt"), targetVect.size());

			try {
				AntRunner runner = new AntRunner();
				buildListener[0] = new UIBuildListener(runner, monitor, antFile, antConsoles);
				runner.run(args, buildListener[0]);
			} catch (BuildCanceledException e) {
				throw new InterruptedException();
			} catch (Exception e) {
				throw new InvocationTargetException(e,e.getMessage());
			}
			finally {
				monitor.done();
			}
		};
	};
	
	try {
		this.getContainer().run(true,true,runnable);
	} catch (InterruptedException e) {
		return false;			
	} catch (InvocationTargetException e) {
		String message = e.getMessage();
		IStatus status = new Status(IStatus.ERROR,AntUIPlugin.PI_ANTUI,EXCEPTION_ANT_EXECUTION,message == null ? Policy.bind("error.antExecutionErrorGeneral") : message,e);
		ErrorDialog.openError(
			getShell(),
			Policy.bind("error.antExecutionErrorTitle"),
			Policy.bind("error.antExecutionError"),
			status);
		return false;
	}
	
	storeTargetsOnFile(targetVect);
	storeShouldLogMessages();
	storeArguments();
	
	return true;
}

/**
 * Creates an array that contains all the arguments needed to run AntRunner: 
 * 	- the name of the file to build
 *  - the arguments such as "-verbose", ...
 *  - target names
 * 
 * @param targets the vector that contains the targets built during the parsing
 * @return String[] the tokenized arguments
 */
protected String[] createArgumentsArray(Vector targets) {

	Vector argsVector = new Vector();
	Vector targetVect = targets;
	String argString = page1.getArguments().trim();
	
	// if there are arguments, then we have to tokenize them
	if (argString.length() != 0) {
		// boolean used to know if a token is a name written into quotes or not
		boolean isAQuotedName;
		
		// Checks if the string starts with a quote or not so that we know where the composed arguments start
		if (argString.charAt(0)=='"') 
			isAQuotedName = true;
		else
			isAQuotedName = false;
	
		// First tokenize the command line with the separator quote
		StringTokenizer tokenizer1 = new StringTokenizer(argString,"\"");
	
		while (tokenizer1.hasMoreTokens()) {
			if (isAQuotedName) {
				// is it a user property or a target ?
				if (!argsVector.isEmpty() && ((String) argsVector.lastElement()).endsWith("=")) {
					// we are in the case where the user specifies a string with space in it, for instance
					// a property:
					//   -DmyProperty="Hello World"
					// So we have to paste the next token at the end of the previous one: we do that by 
					// replacing the last element by itself concatenated with the current one.
					String newString = ((String) argsVector.lastElement()).concat((String) tokenizer1.nextToken());
					argsVector.setElementAt( newString, argsVector.size()-1);
				} else
					// we just add the token
					argsVector.add(tokenizer1.nextToken());
			} else {
				// this string is not a quoted name: it needs to be tokenized with the separator space
				StringTokenizer tokenizer2 = new StringTokenizer(tokenizer1.nextToken()," ");
				while (tokenizer2.hasMoreTokens())
					argsVector.add(tokenizer2.nextToken());
			}
			isAQuotedName = !isAQuotedName;
		}		
	}
		
	// Look in the preferences which level the user prefers
	String outputLevel = AntUIPlugin.getPlugin().getPreferenceStore().getString(IAntPreferenceConstants.OUPUT_LEVEL);
	String userLevel = null;
	if (outputLevel.equals(IAntPreferenceConstants.VERBOSE_LEVEL))
		userLevel = new String("-verbose");
	else if (outputLevel.equals(IAntPreferenceConstants.DEBUG_LEVEL))
		userLevel = new String("-debug");	
	
	
	// Finally create the array of String for AntRunner
	Vector args = new Vector();
	// First, add the default output level if specified: it is important that it is in first position
	// so that if the user specifies another outputlevel, then the default one is overriden
	if (userLevel != null)
		args.add(userLevel);
	// then adds the name of the file to build
	args.add("-buildfile");
	args.add(antFile.getLocation().toOSString());
	// adds the selected target names
	Iterator argsIterator = targetVect.iterator();
	while (argsIterator.hasNext())
		args.add(((Target) argsIterator.next()).getName());
	// then adds the arguments supplied by the user
	args.addAll(argsVector);

	// Now create a String array to return
	String[] argumentsArray = new String[args.size()];
	args.toArray(argumentsArray);
	return argumentsArray;
}

/**
 * Stores the name of the selected targets in the persistent properties of the file,
 * so that next time the user wants to build this file, those targets are pre-selected.
 * 
 * @param targets the vector that contains the targets built during the parsing
 */
protected void storeTargetsOnFile(Vector targets) {
	StringBuffer targetString = new StringBuffer();
	Iterator targetsIt = targets.iterator();
	
	while (targetsIt.hasNext()) {
		targetString.append(((Target)targetsIt.next()).getName());
		targetString.append(SEPARATOR_TARGETS);
	}
	
	try {
		antFile.setPersistentProperty(
			new QualifiedName(AntUIPlugin.PI_ANTUI,PROPERTY_SELECTEDTARGETS), targetString.toString());
	} catch (CoreException e) {
		AntUIPlugin.getPlugin().getLog().log(
			new Status(
				IStatus.WARNING,
				AntUIPlugin.PI_ANTUI,
				IStatus.WARNING,
				Policy.bind("status.targetPropertyNotWritten", antFile.getFullPath().toString()),
				e));
	}
}

/**
 * Stores the user's will concerning the log that shows on success.
 */
protected void storeShouldLogMessages() {
	
	try {
		antFile.setPersistentProperty(
			new QualifiedName(AntUIPlugin.PI_ANTUI,PROPERTY_LOG), page1.shouldLogMessages() ? "true" : "false");
	} catch (CoreException e) {
		AntUIPlugin.getPlugin().getLog().log(
			new Status(
				IStatus.WARNING,
				AntUIPlugin.PI_ANTUI,
				IStatus.WARNING,
				Policy.bind("status.logPropertyNotWritten", antFile.getFullPath().toString()),
				e));
	}
}

/**
 * Stores the user's specified execution arguments
 */
protected void storeArguments() {
	try {
		antFile.setPersistentProperty(new QualifiedName(AntUIPlugin.PI_ANTUI,PROPERTY_ARGUMENTS), page1.getArguments());
	} catch (CoreException e) {
		AntUIPlugin.getPlugin().getLog().log(
			new Status(
				IStatus.WARNING,
				AntUIPlugin.PI_ANTUI,
				IStatus.WARNING,
				Policy.bind("status.argumentPropertyNotWritten", antFile.getFullPath().toString()),
				e));
	}
}

/**
 * Returns true if the wizard can finish, i.e. if a target is selected or if an argument 
 * has benn entered in the command line.
 * 
 * @return boolean true if the wizard can finish, false if not
 */	
public boolean canFinish() {
	return (page1.getSelectedTargets().size() != 0) || (page1.getArguments().trim() != "");
}

}
diff --git a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntLaunchWizardPage.java b/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntLaunchWizardPage.java
deleted file mode 100644
index b081040..0000000
--- a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntLaunchWizardPage.java
+++ /dev/null
@@ -1 +0,0 @@
-package org.eclipse.ant.internal.ui;

/*
 * (c) Copyright IBM Corp. 2000, 2001.
 * All Rights Reserved.
 */

import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.jface.viewers.*;
import org.eclipse.jface.resource.ImageDescriptor;
import java.net.*;
import java.util.*;
import org.apache.tools.ant.Target;
import org.eclipse.ant.core.EclipseProject;
import org.eclipse.core.resources.IFile;
import org.eclipse.swt.*;
import org.eclipse.swt.events.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;

public class AntLaunchWizardPage extends WizardPage implements ICheckStateListener {
	private Vector selectedTargets = new Vector();
	private CheckboxTableViewer listViewer;
	private EclipseProject project;
	private TargetsListLabelProvider labelProvider = new TargetsListLabelProvider();
	private String initialTargetSelections[];
	private Button showLog;
	private Text argumentsField;
	private String initialArguments;
	private boolean initialDisplayLog = true;
	
	private final static int SIZING_SELECTION_WIDGET_HEIGHT = 200;
	private final static int SIZING_SELECTION_WIDGET_WIDTH = 200;
	
public AntLaunchWizardPage(EclipseProject project) {
	super("execute ant script",Policy.bind("wizard.executeAntScriptTitle"),null);
	this.project = project;
	setImageDescriptor(getImageDescriptor("icons/full/wizban/ant_wiz.gif"));
	setDescription(Policy.bind("wizard.executeAntScriptDescription"));
}

protected ImageDescriptor getImageDescriptor(String relativePath) {
	try {
		URL installURL = AntUIPlugin.getPlugin().getDescriptor().getInstallURL();
		URL url = new URL(installURL,relativePath);
		return ImageDescriptor.createFromURL(url);
	} catch (MalformedURLException e) {
		return null;
	}
}

public void checkStateChanged(CheckStateChangedEvent e) {
	Target checkedTarget = (Target)e.getElement();
	if (e.getChecked())
		selectedTargets.addElement(checkedTarget);
	else
		selectedTargets.removeElement(checkedTarget);
		
	labelProvider.setSelectedTargets(selectedTargets);
	listViewer.refresh();
	
	// need to tell the wizard container to refresh his buttons
	getWizard().getContainer().updateButtons();
}

public void createControl(Composite parent) {
	Composite composite = new Composite(parent, SWT.NULL);
	composite.setLayout(new GridLayout());
	composite.setLayoutData(new GridData(
	GridData.VERTICAL_ALIGN_FILL | GridData.HORIZONTAL_ALIGN_FILL));
	
	new Label(composite,SWT.NONE).setText(Policy.bind("wizard.availableTargetsLabel"));
	
	listViewer = new CheckboxTableViewer(composite,SWT.BORDER | SWT.CHECK);
	GridData data = new GridData(GridData.FILL_BOTH);
	data.heightHint = SIZING_SELECTION_WIDGET_HEIGHT;
	data.widthHint = SIZING_SELECTION_WIDGET_WIDTH;
	listViewer.setSorter(new ViewerSorter() {
		public int compare(Viewer viewer,Object o1,Object o2) {
			return ((Target)o1).getName().compareTo(((Target)o2).getName());
		}
	});
	
	listViewer.getTable().setLayoutData(data);
	if (project.getDefaultTarget() != null)
		labelProvider.setDefaultTargetName(project.getDefaultTarget());
	listViewer.setLabelProvider(labelProvider);
	listViewer.setContentProvider(TargetsListContentProvider.getInstance());
	listViewer.setInput(project);
	
	new Label(composite,SWT.NONE).setText(Policy.bind("wizard.argumentsLabel"));
	argumentsField = new Text(composite,SWT.BORDER);
	argumentsField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
	// adds a listener to tell the wizard when it can tell its container to refresh the buttons
	argumentsField.addModifyListener( new ModifyListener() {
		public void modifyText(ModifyEvent e) {
			AntLaunchWizardPage.this.getWizard().getContainer().updateButtons();
		}
	});
	
	showLog = new Button(composite, SWT.CHECK);
	showLog.setText(Policy.bind("wizard.displayLogLabel"));
	showLog.setSelection(initialDisplayLog);

	restorePreviousSelectedTargets();
	listViewer.addCheckStateListener(this);
	listViewer.refresh();
	
	if (initialArguments != null)
		argumentsField.setText(initialArguments);

	argumentsField.setFocus();
	setControl(composite);
}

/**
 * Returns the arguments that the user may have entered to run the ant file.
 * 
 * @return String the arguments
 */
public String getArguments() {
	return argumentsField.getText();
}

public Vector getSelectedTargets() {
	return (Vector)selectedTargets.clone();
}

protected void restorePreviousSelectedTargets() {
	if (initialTargetSelections == null)
		return;

	Vector result = new Vector();
	Object availableTargets[] = TargetsListContentProvider.getInstance().getElements(project);

	if (initialTargetSelections.length == 0) {
		boolean found = false;
		for (int j = 0; !found && (j < availableTargets.length); j++) {
			if (((Target)availableTargets[j]).getName().equals(project.getDefaultTarget())) {
				result.addElement(availableTargets[j]);
				listViewer.setChecked(availableTargets[j],true);
				found = true;
			}
		}
	} else {
		for (int i = 0; i < initialTargetSelections.length; i++) {
			String currentTargetName = initialTargetSelections[i];
			for (int j = 0; j < availableTargets.length; j++) {
				if (((Target)availableTargets[j]).getName().equals(currentTargetName)) {
					result.addElement(availableTargets[j]);
					listViewer.setChecked(availableTargets[j],true);
					continue;
				}
			}
		}
	}
	
	selectedTargets = result;
	labelProvider.setSelectedTargets(selectedTargets);
}

public void setInitialTargetSelections(String value[]) {
	initialTargetSelections = value;
}

/**
 * Sets the initial contents of the arguments text field.
 */
public void setInitialArguments(String value) {
	if (argumentsField != null)
		argumentsField.setText(value);
	initialArguments = value;
}

public void setDisplayLog(boolean value) {
	if (showLog != null)
		showLog.setSelection(value);
	initialDisplayLog = value;
}

/**
 * 
 */
public boolean shouldLogMessages() {
	return showLog.getSelection();
}

}

\ No newline at end of file
diff --git a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntPreferencesPage.java b/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntPreferencesPage.java
deleted file mode 100644
index 1ae0135..0000000
--- a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntPreferencesPage.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package org.eclipse.ant.internal.ui;

/*
 * (c) Copyright IBM Corp. 2000, 2001.
 * All Rights Reserved.
 */

import org.eclipse.ant.core.AntPlugin;
import org.eclipse.jface.preference.*;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.ui.*;


-public class AntPreferencesPage

-	extends FieldEditorPreferencePage

-	implements IWorkbenchPreferencePage {

-

-public AntPreferencesPage() {
	super(GRID);

	IPreferenceStore store= AntUIPlugin.getPlugin().getPreferenceStore();
	setPreferenceStore(store);
}

public void createControl(Composite parent) {
	super.createControl(parent);

	// should do something here with the help..	
	/*
	WorkbenchHelp.setHelp(
		parent,
		new Object[] { IAntHelpContextIds.ANT_PREFERENCE_PAGE });
	*/
}

/**
 * @see FieldEditorPreferencePage#createFieldEditors
 */
protected void createFieldEditors() {

	BooleanFieldEditor autoSave = new BooleanFieldEditor(IAntPreferenceConstants.AUTO_SAVE, Policy.bind("preferences.savePriorToBuilding"), SWT.NONE, getFieldEditorParent());
	RadioGroupFieldEditor outputLevel = new RadioGroupFieldEditor(
												IAntPreferenceConstants.OUPUT_LEVEL, 
												Policy.bind("preferences.preferedOutputLevel"),
												1, 
												new String[][] {
													{Policy.bind("preferences.info"), IAntPreferenceConstants.INFO_LEVEL},
													{Policy.bind("preferences.verbose"), IAntPreferenceConstants.VERBOSE_LEVEL},
													{Policy.bind("preferences.debug"), IAntPreferenceConstants.DEBUG_LEVEL}
												},
												getFieldEditorParent());

	addField(autoSave);
	addField(outputLevel);
}

/**
 * @see IWorkbenchPreferencePage#init
 */
public void init(IWorkbench workbench) {
}

-

-}

diff --git a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntPropertyChangeListener.java b/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntPropertyChangeListener.java
deleted file mode 100644
index bf82ea5..0000000
--- a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntPropertyChangeListener.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.eclipse.ant.internal.ui;

/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-
import java.util.*;

-import org.eclipse.jface.util.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.widgets.Display;


-public class AntPropertyChangeListener implements IPropertyChangeListener {

-	
	// unique instance
	private static AntPropertyChangeListener instance = new AntPropertyChangeListener();
	
// private constructor to ensure the singleton
private AntPropertyChangeListener() {
}

// access to the singleton
public static AntPropertyChangeListener getInstance() {
	return instance;
}


-/**

- * @see IPropertyChangeListener#propertyChange(PropertyChangeEvent)

- */

-public void propertyChange(PropertyChangeEvent event) {

-	String propertyName= event.getProperty();

-

-	if (propertyName.equals(IAntPreferenceConstants.CONSOLE_ERROR_RGB)) {

-		Color temp = AntConsole.ERROR_COLOR;

-		AntConsole.ERROR_COLOR = AntConsolePreferencePage.getPreferenceColor(IAntPreferenceConstants.CONSOLE_ERROR_RGB);

-		temp.dispose();
		clearOutput();

-	} else if (propertyName.equals(IAntPreferenceConstants.CONSOLE_WARNING_RGB)) {

-		Color temp = AntConsole.WARN_COLOR;

-		AntConsole.WARN_COLOR = AntConsolePreferencePage.getPreferenceColor(IAntPreferenceConstants.CONSOLE_WARNING_RGB);

-		temp.dispose();
		clearOutput();

-	} else if (propertyName.equals(IAntPreferenceConstants.CONSOLE_INFO_RGB)) {

-		Color temp = AntConsole.INFO_COLOR;

-		AntConsole.INFO_COLOR = AntConsolePreferencePage.getPreferenceColor(IAntPreferenceConstants.CONSOLE_INFO_RGB);

-		temp.dispose();
		clearOutput();

-	} else if (propertyName.equals(IAntPreferenceConstants.CONSOLE_VERBOSE_RGB)) {

-		Color temp = AntConsole.VERBOSE_COLOR;

-		AntConsole.VERBOSE_COLOR = AntConsolePreferencePage.getPreferenceColor(IAntPreferenceConstants.CONSOLE_VERBOSE_RGB);

-		temp.dispose();
		clearOutput();

-	} else if (propertyName.equals(IAntPreferenceConstants.CONSOLE_DEBUG_RGB)) {

-		Color temp = AntConsole.DEBUG_COLOR;

-		AntConsole.DEBUG_COLOR = AntConsolePreferencePage.getPreferenceColor(IAntPreferenceConstants.CONSOLE_DEBUG_RGB);

-		temp.dispose();
		clearOutput();

-	} else if (propertyName.equals(IAntPreferenceConstants.CONSOLE_FONT)) {
		FontData data= AntConsolePreferencePage.getConsoleFontData();
		Font temp= AntConsole.ANT_FONT;
		AntConsole.ANT_FONT = new Font(Display.getCurrent(), data);
		temp.dispose();
		updateFont();	
	} else

-		return;

-}

-
/**
 * Clears the output of all the consoles
 */
private void clearOutput(){
	for (Iterator iterator = AntConsole.instances.iterator(); iterator.hasNext();)
		((AntConsole) iterator.next()).clearOutput();
}

/**
 * Updates teh font in all the consoles
 */
private void updateFont() {
	for (Iterator iterator = AntConsole.instances.iterator(); iterator.hasNext();)
		((AntConsole) iterator.next()).updateFont();	
}


-}

diff --git a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntTreeContentProvider.java b/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntTreeContentProvider.java
deleted file mode 100644
index 796547c..0000000
--- a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntTreeContentProvider.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package org.eclipse.ant.internal.ui;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.jface.viewers.*;

-

-/**

- * Content provider for the tree viewer of the Ant Console.

- */

-

-public class AntTreeContentProvider implements ITreeContentProvider {

-	

-	private AntConsole console;

-	

-public AntTreeContentProvider(AntConsole console) {

-	this.console = console;

-}

-

-/**

- * @see ITreeContentProvider#getChildren(Object)

- */

-public Object[] getChildren(Object parent) {

-		return ((OutputStructureElement) parent).getChildren();

-}

-

-/**

- * @see ITreeContentProvider#getParent(Object)

- */

-public Object getParent(Object element) {

-	return ((OutputStructureElement) element).getParent();

-}

-

-/**

- * @see ITreeContentProvider#hasChildren(Object)

- */

-public boolean hasChildren(Object element) {

-		return ((OutputStructureElement) element).hasChildren();

-}

-

-/**

- * @see IStructuredContentProvider#getElements(Object)

- */

-public Object[] getElements(Object parent) {

-	return ((OutputStructureElement) parent).getChildren();

-}

-

-/**

- * @see IContentProvider#dispose()

- */

-public void dispose() {

-}

-

-/**

- * @see IContentProvider#inputChanged(Viewer, Object, Object)

- */

-public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {

-}

-

-}

-

diff --git a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntTreeLabelProvider.java b/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntTreeLabelProvider.java
deleted file mode 100644
index a6cbbed..0000000
--- a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntTreeLabelProvider.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package org.eclipse.ant.internal.ui;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.jface.viewers.*;

-import org.eclipse.swt.graphics.Image;

-

-/**

- * Label provider for the tree viewer of the Ant Console.

- */

-

-public class AntTreeLabelProvider implements ILabelProvider {

-	

-	private AntConsole console;

-	

-public AntTreeLabelProvider(AntConsole console) {

-	this.console = console;

-}

-

-

-/**

- * @see ILabelProvider#getImage(Object)

- */

-public Image getImage(Object element) {

-	return null;

-}

-

-/**

- * @see ILabelProvider#getText(Object)

- */

-public String getText(Object element) {

-	String text = ((OutputStructureElement) element).getName();

-	if ( text == null)

-		// this can happen if the userwrites a task name that doesn't exist => the #taskStarted will be triggered

-		// but null will be given as a name to the current task, and then only, the exception will be raised

-		return Policy.bind("antTreeLabelProvider.invalidTaskName");

-	return text;

-}

-

-/**

- * @see IBaseLabelProvider#addListener(ILabelProviderListener)

- */

-public void addListener(ILabelProviderListener listener) {

-}

-

-/**

- * @see IBaseLabelProvider#dispose()

- */

-public void dispose() {

-}

-

-/**

- * @see IBaseLabelProvider#isLabelProperty(Object, String)

- */

-public boolean isLabelProperty(Object arg0, String arg1) {

-	return false;

-}

-

-/**

- * @see IBaseLabelProvider#removeListener(ILabelProviderListener)

- */

-public void removeListener(ILabelProviderListener listener) {

-}

-

-}

-

diff --git a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntUIPlugin.java b/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntUIPlugin.java
deleted file mode 100644
index 1dd8018..0000000
--- a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/AntUIPlugin.java
+++ /dev/null
@@ -1,189 +0,0 @@
-package org.eclipse.ant.internal.ui;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.net.*;

-import java.util.*;

-import org.eclipse.core.resources.IFile;

-import org.eclipse.core.runtime.*;

-import org.eclipse.jface.dialogs.ErrorDialog;

-import org.eclipse.jface.dialogs.IDialogSettings;

-import org.eclipse.jface.preference.IPreferenceStore;

-import org.eclipse.jface.preference.PreferenceConverter;

-import org.eclipse.jface.resource.ImageDescriptor;

-import org.eclipse.swt.graphics.Font;

-import org.eclipse.swt.graphics.RGB;

-import org.eclipse.ui.plugin.AbstractUIPlugin;

-

-/**

- * The plug-in runtime class for the AntUI plug-in.

- */

-public final class AntUIPlugin extends AbstractUIPlugin{

-

-	/**

-	 * Unique identifier constant (value <code>"org.eclipse.ant.ui"</code>)

-	 * for the Ant UI plug-in.

-	 */

-	public static final String PI_ANTUI= "org.eclipse.ant.ui";

-	

-	public static final String PROPERTIES_MESSAGES = "org.eclipse.ant.internal.ui.messages";

-	

-	public static final String IMG_ANT_SCRIPT= "icons/full/eview16/ant_view.gif";

-	public static final String IMG_BUILDER= "icons/full/eview16/build_exec.gif";

-	

-	private static final String SETTINGS_COMMAND_HISTORY = "CommandHistory";

-	private static final int MAX_COMMAND_HISTORY = 15;

-	

-	

-	/**

-	 * The single instance of this plug-in runtime class.

-	 */

-	private static AntUIPlugin plugin;

-	

-	private final static int MAX_HISTORY_SIZE= 5;

-	/**

-	 * The most recent debug launches

-	 */

-	private IFile[] antHistory = new IFile[MAX_HISTORY_SIZE];

-	

-

-public AntUIPlugin(IPluginDescriptor desc) {

-	super(desc);

-	plugin= this;

-}

-

-public static AntUIPlugin getPlugin() {

-	return plugin;

-}

-

-public static ResourceBundle getResourceBundle() {

-	try {

-		return ResourceBundle.getBundle(PROPERTIES_MESSAGES);

-	} catch (MissingResourceException e) {

-		ErrorDialog.openError(

-			plugin.getWorkbench().getActiveWorkbenchWindow().getShell(),

-			Policy.bind("exception.missingResourceBundle"),

-			Policy.bind("exception.missingResourceBundle.message"),

-			new Status(IStatus.ERROR,PI_ANTUI,0,Policy.bind("exception.missingResourceBundle.message"),e));

-		return null;

-	}

-}

-

-/**

- * Adds the given command to the command history.

- * - if the command doesn't exist: put it at the first place

- * - if it exists and is already at the first place: does nothing

- * - if it exists and is not at the first place: move it to the first place

-

- */

-public void addToCommandHistory(String command) {

-	IDialogSettings settings = getDialogSettings();

-	String[] oldHistory = settings.getArray(SETTINGS_COMMAND_HISTORY);

-	if (oldHistory == null || oldHistory.length == 0) {

-		settings.put(SETTINGS_COMMAND_HISTORY, new String[] {command});

-		return;

-	}

-	if (command.equals(oldHistory[0])) {

-		return;

-	}

-	//search for existing command and move to top if found

-	int index;

-	for (index=1; index<oldHistory.length; index++)

-		if (command.equals(oldHistory[index]))

-			break;

-	if (index < oldHistory.length) {

-		//it was found, so replace it

-		for (int i=index; i>0; i--)

-			oldHistory[i] = oldHistory[i-1];

-		oldHistory[0] = command;

-		settings.put(SETTINGS_COMMAND_HISTORY, oldHistory);

-	}

-	//not found -- add it to the history

-	String[] newHistory;

-	if (oldHistory.length == MAX_COMMAND_HISTORY) {

-		//shift other commands down and add new one

-		System.arraycopy(oldHistory, 0, oldHistory, 1, oldHistory.length-1);

-		oldHistory[0] = command;

-		newHistory = oldHistory;

-	} else {

-		// grow the history array

-		newHistory = new String[oldHistory.length+1];

-		System.arraycopy(oldHistory, 0, newHistory, 1, oldHistory.length);

-		newHistory[0] = command;

-	}

-	settings.put(SETTINGS_COMMAND_HISTORY, newHistory);

-}

-/**

- * Adds the given file to the history: 

- * - if the file doesn't exist: put it at the first place

- * - if it exists and is already at the first place: does nothing

- * - if it exists and is not at the first place: move it to the first place

- * 

- * @param the file

- */

-public void addToHistory(IFile file) {

-	if (file.equals(antHistory[0]))

-		return;

-		

-	int index;

-	for (index=1; index<MAX_HISTORY_SIZE; index++)

-		if (file.equals(antHistory[index]))

-			break;

-	if (index == MAX_HISTORY_SIZE)

-		index--;

-	for (int i=index; i>0; i--)

-		antHistory[i] = antHistory[i-1];

-	antHistory[0] = file;	

-}

-

-/**

- * Returns the history of tool script command that have been run.

- */

-public String[] getCommandHistory() {

-	return getDialogSettings().getArray(SETTINGS_COMMAND_HISTORY);

-}

-/**

- * Returns the history of the AntPlugin, i.e. the files that were executed previously

- * 

- * @return an array containing the files

- */

-public IFile[] getHistory() {

-	return antHistory;	

-}

-

-/**

- * Returns the ImageDescriptor for the icon with the given path

- * 

- * @return the ImageDescriptor object

- */

-public ImageDescriptor getImageDescriptor(String path) {

-	try {

-		URL installURL = getDescriptor().getInstallURL();

-		URL url = new URL(installURL,path);

-		return ImageDescriptor.createFromURL(url);

-	} catch (MalformedURLException e) {

-		return null;

-	}

-}

-

-/**

- * @see AbstractUIPlugin#initializeDefaultPreferences

- */

-protected void initializeDefaultPreferences(IPreferenceStore prefs) {

-	prefs.setDefault(IAntPreferenceConstants.AUTO_SAVE, false);

-	prefs.setDefault(IAntPreferenceConstants.INFO_LEVEL, true);

-	prefs.setDefault(IAntPreferenceConstants.VERBOSE_LEVEL, false);

-	prefs.setDefault(IAntPreferenceConstants.DEBUG_LEVEL, false);

-

-	PreferenceConverter.setDefault(prefs, IAntPreferenceConstants.CONSOLE_ERROR_RGB, new RGB(255, 0, 0)); 		// red - exactly the same as debug Consol

-	PreferenceConverter.setDefault(prefs, IAntPreferenceConstants.CONSOLE_WARNING_RGB, new RGB(255, 100, 0)); 	// orange

-	PreferenceConverter.setDefault(prefs, IAntPreferenceConstants.CONSOLE_INFO_RGB, new RGB(0, 0, 255)); 		// blue

-	PreferenceConverter.setDefault(prefs, IAntPreferenceConstants.CONSOLE_VERBOSE_RGB, new RGB(0, 200, 125));	// green

-	PreferenceConverter.setDefault(prefs, IAntPreferenceConstants.CONSOLE_DEBUG_RGB, new RGB(0, 0, 0));			// black

-	

-}

-

-}

diff --git a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/BuildCanceledException.java b/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/BuildCanceledException.java
deleted file mode 100644
index 60e7e6b..0000000
--- a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/BuildCanceledException.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.eclipse.ant.internal.ui;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.apache.tools.ant.BuildException;

-

-public class BuildCanceledException extends BuildException {

-

-public BuildCanceledException() {

-	super(Policy.bind("exception.canceled"));

-}

-

-}

diff --git a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/IAntPreferenceConstants.java b/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/IAntPreferenceConstants.java
deleted file mode 100644
index abec6e3..0000000
--- a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/IAntPreferenceConstants.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.eclipse.ant.internal.ui;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-public interface IAntPreferenceConstants {

-	

-	// for the Ant preference page

-

-	public static final String AUTO_SAVE = "Ant.autoSave";

-	

-	public static final String OUPUT_LEVEL = "Ant.outputLevel";

-

- 	public static final String INFO_LEVEL = "Ant.infoLevel";

- 	

- 	public static final String VERBOSE_LEVEL = "Ant.verboseLevel";

- 	

- 	public static final String DEBUG_LEVEL = "Ant.levelLevel";

- 	

- 	

- 	// Colors and police for the Ant Console

- 	

-	public static final String CONSOLE_ERROR_RGB = "Ant.Console.errorColor";

-	

-	public static final String CONSOLE_WARNING_RGB = "Ant.Console.warningColor";

-

- 	public static final String CONSOLE_INFO_RGB = "Ant.Console.infoColor";

- 	

- 	public static final String CONSOLE_VERBOSE_RGB = "Ant.Console.verboseColor";

- 	

- 	public static final String CONSOLE_DEBUG_RGB = "Ant.Console.debugColor";

- 	

- 	public static final String CONSOLE_FONT = "Ant.Console.font";

-

-}

diff --git a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/OutputStructureElement.java b/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/OutputStructureElement.java
deleted file mode 100644
index f77f80f..0000000
--- a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/OutputStructureElement.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package org.eclipse.ant.internal.ui;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.util.Vector;

-

-/**

- * Object which stores the index and the length of the output for a given

- * target or task (represented by a string)

- */

-

-public class OutputStructureElement {

-

-	private OutputStructureElement parent = null;

-	private Vector children;

-	private String name;

-	private int startIndex = 0;

-	private int length = 0;

-

-

-/**

- * This constructor is intended to be used only by the first element of the structure (the root element)

- */

-public OutputStructureElement(String name) {

-	// there's at least one target as it is the root which may be instantiated via this constructor

-	children = new Vector(1);

-	this.name = name;

-}

-

-/**

- * This constructor is used for any element but the first element of the structure (the root element)

- */	

-public OutputStructureElement(String name, OutputStructureElement parent, int startIndex) {

-	children = new Vector(0);

-	this.name = name;

-	this.startIndex = startIndex;

-	parent.addChild(this);

-}

-

-public void addChild(OutputStructureElement child) {

-	children.add(child);

-	child.setParent(this);

-}

-

-public boolean hasChildren() {

-	return !children.isEmpty();

-}

-

-public String getName() {

-	return name;

-}

-

-public void setName(String name) {

-	this.name = name;

-}

-

-public void setParent(OutputStructureElement parent) {

-	this.parent = parent;

-}

-

-public OutputStructureElement getParent() {

-	return parent;

-}

-

-public OutputStructureElement[] getChildren() {

-	return (OutputStructureElement[]) children.toArray(new OutputStructureElement[children.size()]);

-}

-

-public void setStartIndex(int index) {

-	startIndex = index;

-}

-

-public void setEndIndex(int index) {

-	length = index - startIndex;

-}

-

-public int getStartIndex() {

-	return startIndex;

-}

-

-public int getEndIndex() {

-	return startIndex + length;

-}

-

-public int getLength() {

-	return length;

-}

-

-public String toString() {

-	return name;

-}

-

-}

-

diff --git a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/Policy.java b/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/Policy.java
deleted file mode 100644
index 145fcd8..0000000
--- a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/Policy.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package org.eclipse.ant.internal.ui;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.core.runtime.*;

-import java.util.*;

-

-public class Policy {

-	private static ResourceBundle bundle;

-	static {

-		relocalize();

-	}

-/**

- * Lookup the message with the given ID in this catalog 

- */

-public static String bind(String id) {

-	return bind(id, (String[])null);

-}

-/**

- * Lookup the message with the given ID in this catalog and bind its

- * substitution locations with the given string.

- */

-public static String bind(String id, String binding) {

-	return bind(id, new String[] {binding});

-}

-/**

- * Lookup the message with the given ID in this catalog and bind its

- * substitution locations with the given strings.

- */

-public static String bind(String id, String binding1, String binding2) {

-	return bind(id, new String[] {binding1, binding2});

-}

-

-/**

- * Lookup the message with the given ID in this catalog and bind its

- * substitution locations with the given string values.

- */

-public static String bind(String id, String[] bindings) {

-	if (id == null)

-		return "No message available";

-	String message = null;

-	try {

-		message = bundle.getString(id);

-	} catch (MissingResourceException e) {

-		// If we got an exception looking for the message, fail gracefully by just returning

-		// the id we were looking for.  In most cases this is semi-informative so is not too bad.

-		return "Missing message: " + id + "in: " + AntUIPlugin.PROPERTIES_MESSAGES;

-	}

-	if (bindings == null)

-		return message;

-	int length = message.length();

-	int start = -1;

-	int end = length;

-	StringBuffer output = new StringBuffer(80);

-	while (true) {

-		if ((end = message.indexOf('{', start)) > -1) {

-			output.append(message.substring(start + 1, end));

-			if ((start = message.indexOf('}', end)) > -1) {

-				int index = -1;

-				try {

-					index = Integer.parseInt(message.substring(end + 1, start));

-					output.append(bindings[index]);

-				} catch (NumberFormatException nfe) {

-					output.append(message.substring(end + 1, start + 1));

-				} catch (ArrayIndexOutOfBoundsException e) {

-					output.append("{missing " + Integer.toString(index) + "}");

-				}

-			} else {

-				output.append(message.substring(end, length));

-				break;

-			}

-		} else {

-			output.append(message.substring(start + 1, length));

-			break;

-		}

-	}

-	return output.toString();

-}

-public static IProgressMonitor monitorFor(IProgressMonitor monitor) {

-	if (monitor == null)

-		return new NullProgressMonitor();

-	return monitor;

-}

-/**

- * Creates a NLS catalog for the given locale.

- */

-public static void relocalize() {

-	bundle = ResourceBundle.getBundle(AntUIPlugin.PROPERTIES_MESSAGES, Locale.getDefault());

-}

-public static IProgressMonitor subMonitorFor(IProgressMonitor monitor, int ticks) {

-	if (monitor == null)

-		return new NullProgressMonitor();

-	if (monitor instanceof NullProgressMonitor)

-		return monitor;

-	return new SubProgressMonitor(monitor, ticks);

-}

-public static IProgressMonitor subMonitorFor(IProgressMonitor monitor, int ticks, int style) {

-	if (monitor == null)

-		return new NullProgressMonitor();

-	if (monitor instanceof NullProgressMonitor)

-		return monitor;

-	return new SubProgressMonitor(monitor, ticks, style);

-}

-}

diff --git a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/RunAntActionDelegate.java b/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/RunAntActionDelegate.java
deleted file mode 100644
index 6ecf21e..0000000
--- a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/RunAntActionDelegate.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package org.eclipse.ant.internal.ui;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.io.File;

-import java.lang.reflect.InvocationTargetException;

-import org.apache.tools.ant.*;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.ant.core.*;

-import org.eclipse.core.resources.IFile;

-import org.eclipse.core.runtime.*;

-import org.eclipse.ui.*;

-import org.eclipse.jface.action.IAction;

-import org.eclipse.jface.dialogs.*;

-import org.eclipse.jface.operation.IRunnableWithProgress;

-import org.eclipse.jface.viewers.*;
import org.eclipse.jface.wizard.WizardDialog;

-

-

-public class RunAntActionDelegate implements IWorkbenchWindowActionDelegate {

-

-	private IFile selection;

-

-/*

- * @see IWorkbenchWindowActionDelegate

- */

-public void dispose() {

-}

-

-/*

- * @see IWorkbenchWindowActionDelegate

- */

-public void init(IWorkbenchWindow window) {

-}

-/*

- * @see IActionDelegate

- */

-public void run(IAction action) {

-	

-	new AntAction(selection).run();

-}

-/*

- * @see IWorkbenchActionDelegate

- */

-public void selectionChanged(IAction action, ISelection selection) {

-	this.selection = null;

-	if (selection instanceof IStructuredSelection) {

-		IStructuredSelection structuredSelection = (IStructuredSelection)selection;

-		if (structuredSelection.size() == 1) {

-			Object selectedResource = structuredSelection.getFirstElement();

-			if (selectedResource instanceof IFile)

-				this.selection = (IFile)selectedResource;

-		}

-	}

-}

-

-/**

- * Sets the file for the wizard.

- * 

- * @param the file to parse

- */

-public void setFile(IFile file) {

-	selection = file;

-}

-

-}

diff --git a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/TargetsListContentProvider.java b/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/TargetsListContentProvider.java
deleted file mode 100644
index a70f07c..0000000
--- a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/TargetsListContentProvider.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.eclipse.ant.internal.ui;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.io.File;
import org.apache.tools.ant.ProjectHelper;
import org.eclipse.ant.core.EclipseProject;
import org.eclipse.core.resources.IFile;

-import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.jface.viewers.*;

-

-/**

- * Content provider for the Ant dialog: it provides the ListViewer with the targets defined in the xml file.

- */

-

-public class TargetsListContentProvider implements IStructuredContentProvider {

-	

-	private static TargetsListContentProvider instance;

-	

-	static {

-		instance = new TargetsListContentProvider();

-	}

-	

-// private to ensure that it remains a singleton

-private TargetsListContentProvider() {

-	super();

-}

-

-public static TargetsListContentProvider getInstance() {

-	return instance;

-}

-

-/**

- * Returns the targets found in the xml file after parsing.

- * 

- * @param groupName the name of the group

- * @return the array of the targets found

- */

-public Object[] getElements(Object inputElement) {

-	EclipseProject project = (EclipseProject)inputElement;

-	return project.getTargets().values().toArray();

-}

-

-public void dispose() {

-}

-

-public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {

-}

-

-}

diff --git a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/TargetsListLabelProvider.java b/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/TargetsListLabelProvider.java
deleted file mode 100644
index 50ed423..0000000
--- a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/TargetsListLabelProvider.java
+++ /dev/null
@@ -1 +0,0 @@
-package org.eclipse.ant.internal.ui;

/*
 * (c) Copyright IBM Corp. 2000, 2001.
 * All Rights Reserved.
 */

import java.util.Vector;
import org.apache.tools.ant.Target;
import org.eclipse.jface.viewers.LabelProvider;

public class TargetsListLabelProvider extends LabelProvider {
	
	private Vector selectedTargets = null;
	private String defaultTargetName = null;

/**
 * Takes an object and returns a string which will stand for this object.
 * 
 * @param model the object that has to be displayed
 * @return the string representing the object
 */	
public String getText(Object model) {
	Target targetToDisplay = (Target) model;
	// Could it be null ?
	if (targetToDisplay != null) {
		StringBuffer result = new StringBuffer(targetToDisplay.getName());
		if (targetToDisplay.getName().equals(defaultTargetName))
			result.append(" (" + Policy.bind("labelprovider.defaultTarget") + ")");
		if (selectedTargets != null) {
			int targetIndex = selectedTargets.indexOf(model);
			if (targetIndex >= 0) {
				result.append(" [");
				result.append(targetIndex + 1);
				result.append("]");
			}
		}
		return result.toString();
	} else
		return "";
}

public void setSelectedTargets(Vector value) {
	selectedTargets = value;
}

public void setDefaultTargetName(String name) {
	defaultTargetName = name;
}
	
}

\ No newline at end of file
diff --git a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/UIBuildListener.java b/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/UIBuildListener.java
deleted file mode 100644
index 4f15da6..0000000
--- a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/UIBuildListener.java
+++ /dev/null
@@ -1,278 +0,0 @@
-package org.eclipse.ant.internal.ui;

-

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.util.*;

-import org.apache.tools.ant.*;

-import org.eclipse.ant.core.AntRunner;
import org.eclipse.ant.core.EclipseProject;

-import org.eclipse.ant.core.IAntRunnerListener;
import org.eclipse.core.resources.*;

-import org.eclipse.core.runtime.*;

-import org.eclipse.swt.widgets.Display;

-

-// TBD

-// * Marker mechanism doesn't work for Locations other than

-//   the original build file. This could pose problems for

-//   ant tasks.

-// * incremental task shows minimal feedback

-

-public class UIBuildListener implements IAntRunnerListener {

-	

-	private AntRunner runner;

-	private IProgressMonitor fMonitor;

-	private Target fTarget;

-	private Task fTask;

-	private IFile fBuildFile;

-	private int msgOutputLevel = Project.MSG_INFO;

-	private AntConsole[] consoles;

-	private int logLength = 0;

-	// index of the last target end

-	private int lastTargetEndIndex = 0;

-	private boolean isTargetWithDependencies = false;

-

-

-public UIBuildListener(AntRunner runner, IProgressMonitor monitor, IFile file, AntConsole[] consoles) {

-	super();

-	this.consoles = consoles;

-	this.runner = runner;

-	fMonitor = Policy.monitorFor(monitor);

-	fBuildFile = file;

-	if (consoles != null)

-    	for (int i=0; i < consoles.length; i++) {

-			consoles[i].initializeOutputStructure();

-			consoles[i].initializeTreeInput();

-    	}

-}

-/**

- * @deprecated

- */

-public UIBuildListener(AntRunner runner, IProgressMonitor monitor, IFile file) {

-	super();

-	

-	this.runner = runner;

-	fMonitor = monitor;

-	fBuildFile = file;

-}

-

-public void buildFinished(BuildEvent be){

-	fMonitor.done();

-	if (be.getException() != null)

-		handleBuildException(be.getException());

-	

-	// We must give the name of the project here because when the build starts, the name has not been parsed yet.

-	setProjectNameForOutputStructures(be.getProject().getName());

-	

-	// and we finish the curent element

-	finishCurrentOutputStructureElement();

-	

-	// And finaly tell the consoles to update

-	refreshConsoleTrees();

-}

-

-private void setProjectNameForOutputStructures(String name) {

-	if (consoles != null)

-		for (int i=0; i < consoles.length; i++)

-			consoles[i].currentElement.setName(name);

-}

-

-protected void refreshConsoleTrees() {

-    if (consoles != null)

-    	// create a new thread for synchronizing all the refresh operations

-    	// we get the display from the console #0 (that exists for sure because consoles!=null)

-    	consoles[0].getSite().getShell().getDisplay().syncExec(new Runnable() {

-    		public void run() {

-   				for (int i=0; i < consoles.length; i++)

-					consoles[i].refreshTree();

-    		}

-    	});

-}

-

-public void buildStarted(BuildEvent be) {

-	fMonitor.subTask(Policy.bind("monitor.buildStarted"));

-	msgOutputLevel = runner.getOutputMessageLevel();

-	removeMarkers();

-	

-	// the current (first) output element is the one for the script, so we have to set the end index for it

-	finishCurrentOutputStructureElement();

-	

-	// we create the second element which represents the project.

-	// Unfortunately, the name has not been parsed yet, so we'll have to catch it at the very end.

-	// We give a default name ("Project") till we can actually set the real name.

-	createNewOutputStructureElement(Policy.bind("console.project"));

-}

-private void checkCanceled() {

-	if (fMonitor.isCanceled())

-		throw new BuildCanceledException();

-}

-private void createMarker(IFile file, BuildException be) {

-	try {

-		int lineNumber= getLineFromLocation(be.getLocation());

-		IMarker marker= file.createMarker(IMarker.PROBLEM);

-		Map map= new HashMap();

-		map.put(IMarker.LINE_NUMBER, new Integer(lineNumber));

-		map.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_ERROR));

-		map.put(IMarker.MESSAGE, be.getMessage());

-		map.put(IMarker.LOCATION, Integer.toString(lineNumber));

-		marker.setAttributes(map);

-	} catch (CoreException e) {

-		e.printStackTrace();

-	}

-}

-private int getLineFromLocation(Location l) {

-	String locstr= l.toString();

-	int end= locstr.lastIndexOf(':');

-	int start= locstr.lastIndexOf(':', end-1);

-	String lstr= locstr.substring(start+1, end);

-	try {

-		return Integer.parseInt(lstr);

-	} catch (NumberFormatException e) {

-		return -1;

-	}

-}

-private void handleBuildException(Throwable t) {

-	logMessage(Policy.bind("exception.buildException", t.toString()) + "\n", Project.MSG_ERR);

-

-	if (t instanceof BuildException) {

-		BuildException bex= (BuildException)t;

-		// the build exception has a location that

-		// refers to a build file

-		if (bex.getLocation() != Location.UNKNOWN_LOCATION)

-			createMarker(fBuildFile, bex);

-	}

-}

-public void messageLogged(BuildEvent event) {

-	checkCanceled();

-   	logMessage(event.getMessage() + "\n", event.getPriority());

-}

-public void messageLogged(String message,int priority) {

-	checkCanceled();

-   	logMessage(message + "\n", priority);

-}

-private void logMessage(String message, int priority) {

-    if (consoles != null && priority <= msgOutputLevel) {

-		for (int i=0; i < consoles.length; i++)

-			consoles[i].append(message, priority);

-		logLength += message.length();

-    }

-}

-private void removeMarkers() {

-	try {

-		fBuildFile.deleteMarkers(IMarker.PROBLEM, true, IResource.DEPTH_ZERO);

-	} catch (CoreException e) {

-		e.printStackTrace();

-	}

-}

-public void targetStarted(BuildEvent be) {

-	checkCanceled();

-	fTarget= be.getTarget();

-	fMonitor.subTask(Policy.bind("monitor.targetColumn")+"\""+fTarget.getName()+"\" "+Policy.bind("monitor.started"));

-

-	int startIndex = logLength;

-	// the targets that need to look for the last target end index are targets that have no dependency and that

-	// are in an EclipseProject (if they are in an standard Project, this means that they were executed with the 'ant'

-	// task, and therefore have no ouput to look for)

-	if (!isTargetWithDependencies && (be.getProject() instanceof EclipseProject))

-		startIndex = lastTargetEndIndex;

-

-	createNewOutputStructureElement(fTarget.getName(), startIndex);	

-}

-public void targetFinished(BuildEvent be) {

-	checkCanceled();

-	if (be.getException() != null)

-		handleBuildException(be.getException());

-	 

-	//	one task is done: say it to the monitor

-	fMonitor.worked(1);

-	

-	finishCurrentOutputStructureElement();

-	

-	// store the end index of this target's log (so that we can use it later)

-	lastTargetEndIndex = logLength;

-	

-	refreshConsoleTrees();

-}

-public void executeTargetStarted(BuildEvent be){

-	checkCanceled();

-	fTarget= be.getTarget();

-	fMonitor.subTask(Policy.bind("monitor.targetColumn")+"\""+fTarget.getName()+"\" "+Policy.bind("monitor.started"));

-	

-	// store the end index of the last target's log (so that we can use it later)

-	// Usually, this is done at the #targetFinished, but when the first target is executed, no #targetFinished

-	// has been triggered before so lastTargetEndIndex equals 0.

-	lastTargetEndIndex = logLength;

-	

-	if (be.getTarget().getDependencies().hasMoreElements()) {

-		// this target has dependencies

-		// create a nested element for that purpose

-		createNewOutputStructureElement(fTarget.getName(), logLength);

-		isTargetWithDependencies = true;

-	}

-		

-}

-public void executeTargetFinished(BuildEvent be){

-	checkCanceled();

-	if (be.getException() != null)

-		handleBuildException(be.getException());

-

-	if (isTargetWithDependencies) {

-		// we have the nested element to finish (the one that gathers all the target of the dependency)

-		finishCurrentOutputStructureElement();

-		isTargetWithDependencies = false;

-	}

-	

-	refreshConsoleTrees();

-}

-public void taskStarted(BuildEvent be) {

-	checkCanceled();

-	fTask= be.getTask();

-	fMonitor.subTask(Policy.bind("monitor.targetColumn")+"\""+fTarget.getName()+"\" - "+fTask.getTaskName());

-	if (be.getException() != null)

-		handleBuildException(be.getException());

-

-	createNewOutputStructureElement(fTask.getTaskName());

-}

-public void taskFinished(BuildEvent be) {

-	checkCanceled();

-	

-	finishCurrentOutputStructureElement();

-	

-	refreshConsoleTrees();

-}

-

-/*

- * Used to create output structure elements for targets.

- * 

- * Note: we need to have two different #createNewOutputStructureElement methods because

- * when we create a target, we need to take the two-last line index as the start index, not

- * the current index (this is because the Ant output is not well structured)

- */

-protected void createNewOutputStructureElement(String name, int index) {

-	if (consoles != null)

-    	for (int i=0; i < consoles.length; i++) {

-		    // creates a new OutputStructureElement with the current element as a parameter for the parent of this object

-			OutputStructureElement newElement = new OutputStructureElement(name, consoles[i].currentElement, index);

-			// and sets the current element to the one that has just been created

-			consoles[i].currentElement = newElement;

-    	}

-}

-

-/*

- * Used to create output structure elements for projects and tasks

- */

-protected void createNewOutputStructureElement(String name) {

-	createNewOutputStructureElement(name, logLength);

-}

-

-protected void finishCurrentOutputStructureElement() {

-	if (consoles != null)

-    	for (int i=0; i < consoles.length; i++) {

-		    // sets the index that indicates the end of the log part linked to this element

-			consoles[i].currentElement.setEndIndex(logLength);

-			// and sets the current element to the parent of the element

-			consoles[i].currentElement = consoles[i].currentElement.getParent();

-    	}

-}

-

-}

diff --git a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/messages.properties b/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/messages.properties
deleted file mode 100644
index d00d44f..0000000
--- a/ant/org.eclipse.ant.ui/src/org/eclipse/ant/internal/ui/messages.properties
+++ /dev/null
@@ -1,91 +0,0 @@
-### Ant UI plugin message catalog

-

-

-### wizard

-wizard.title = Run Ant

-wizard.executeAntScriptTitle = Execute Ant Script

-wizard.executeAntScriptDescription = Select the targets to execute.

-wizard.availableTargetsLabel = Available Targets:

-wizard.argumentsLabel = Arguments:

-wizard.displayLogLabel = &Display execution log to Ant console

-

-

-### label provider

-labelprovider.defaultTarget = Default target

-antTreeLabelProvider.invalidTaskName = Invalid task name

-

-

-### preferences page

-preferences.savePriorToBuilding = Save all &modified resources automatically prior to manual execution of an Ant script

-preferences.preferedOutputLevel = Preferred output level

-preferences.info = &Information (normal)

-preferences.verbose = &Verbose

-preferences.debug = De&bug

-preferences.description = Console text color settings.

-preferences.errorColor = &Error:

-preferences.warningColor = &Warning:

-preferences.infoColor = &Information:

-preferences.verboseColor = &Verbose:

-preferences.debugColor = &Debug:

-preferences.font = Console font setting:

-

-

-### console labels

-find_action.label=&Find...@Ctrl+F

-find_action.tooltip=Find

-find_action.image=

-find_action.description=Find

-

-

-### monitor

-monitor.runningAnt = Running Ant.

-monitor.buildStarted = Build started...

-monitor.targetColumn = Target: 

-monitor.started = started.

-

-

-### console

-console.copy = &Copy@Ctrl+C

-console.selectAll = Select &All@Ctrl+A

-console.clearOutput = Clear &Output

-console.expandAll = &Expand All

-console.hideOutputStructureTree = Hide Output Structure Tree

-console.showOutputStructureTree = Show Output Structure Tree

-console.hideTree = &Hide Tree

-console.showTree = &Show Tree

-console.showSelectedElementOnly = S&how Output of Selected Element Only

-console.showCompleteOutput = Show &Complete Output

-console.antScript = Ant Script

-console.project = Project

-

-### launcher

-launcher.noFile = No file recently executed.

-

-### Ant builder property page

-builderProperties.description= Tool scripts and external commands can be configured to run as part of the \n\

-incremental build process.  Use this page to add, remove, and configure tool \n\

-scripts to run when this project is built.

-

-### status

-status.targetPropertyNotRead = Could not read ant targets property from resource: {0}.

-status.targetPropertyNotWritten = Could not write ant targets property to resource: {0}.

-status.logPropertyNotRead = Could not read log property from resource: {0}.

-status.logPropertyNotWritten = Could not write log property to resource: {0}.

-status.consoleNotInitialized = Could not initialize Ant console view

-status.argumentPropertyNotRead = Could not read argument property from resource: {0}.

-status.argumentPropertyNotWritten = Could not write argument property to resource: {0}.

-

-

-### error

-error.antScriptError = Ant script error.

-error.antParsingError = A problem occurred parsing the Ant file.

-error.antExecutionErrorTitle = Ant Execution Problems.

-error.antExecutionError = A problem occurred executing the Ant file.

-error.antExecutionErrorGeneral = See the output console for details.

-

-

-### exception

-exception.canceled = Canceled.

-exception.buildException = BuildException: {0}

-exception.missingResourceBundle = Missing Resource Bundle

-exception.missingResourceBundle.message = The resource properties for the Ant UI plugin could not be found.

diff --git a/platform/org.eclipse.sdk/.vcm_meta b/platform/org.eclipse.sdk/.vcm_meta
deleted file mode 100644
index 3f788a5..0000000
--- a/platform/org.eclipse.sdk/.vcm_meta
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project-description>

-	<comment></comment>

-</project-description>

diff --git a/platform/org.eclipse.sdk/about.html b/platform/org.eclipse.sdk/about.html
deleted file mode 100644
index 768324e..0000000
--- a/platform/org.eclipse.sdk/about.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<html>

-<head>

-<title>About</title>

-<style type="text/css">

-p, table, td, th { font-family: arial, helvetica, geneva; font-size: 10pt}

-pre { font-family: "Courier New", Courier, mono; font-size: 10pt}

-h2 { font-family: arial, helvetica, geneva; font-size: 18pt; font-weight: bold ; line-height: 14px}

-code { font-family: "Courier New", Courier, mono; font-size: 10pt}

-sup { font-family: arial,helvetica,geneva; font-size: 10px}

-h3 { font-family: arial, helvetica, geneva; font-size: 14pt; font-weight: bold}

-li { font-family: arial, helvetica, geneva; font-size: 10pt}

-h1 { font-family: arial, helvetica, geneva; font-size: 28px; font-weight: bold}

-body { font-family: arial, helvetica, geneva; font-size: 10pt; clip: rect(   ); margin-top: 5mm; margin-left: 3mm}

-</style>

-</head>

-<body lang="EN-US" link="blue" vlink="purple">

-<table border="0" cellspacing="5" cellpadding="2" width="100%" >

-  <tr> 

-    <td align="LEFT" valign="TOP" colspan="2" bgcolor="#0080C0"><b><font color="#FFFFFF">About This Content</font></b></td>

-  </tr>

-  <tr> 

-    <td> 

-<p>11th December, 2001</p>	

-<h3>License</h3>

-<p>Eclipse.org makes available all content in this plug-in &quot;Content&quot;.  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the

-<a href="http://www.eclipse.org/legal/cpl-v05.html">Common Public License Version 0.5</a> &quot;CPL&quot;.  For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>

-

-<h3>Contributions</h3>

-

-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise

-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such

-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>

-

-<p>If this Content is licensed to you under license terms and conditions other than the CPL &quot;Other License&quot;, any modifications, enhancements and/or

-other code and/or documentation &quot;Modifications&quot; uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the

-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available

-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also

-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of

-the CPL.</p>

-</td></tr></table>

-</body>

-</html>
\ No newline at end of file
diff --git a/platform/org.eclipse.sdk/about_prod.gif b/platform/org.eclipse.sdk/about_prod.gif
deleted file mode 100644
index 262c524..0000000
--- a/platform/org.eclipse.sdk/about_prod.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.sdk/build.properties b/platform/org.eclipse.sdk/build.properties
deleted file mode 100644
index 220b667..0000000
--- a/platform/org.eclipse.sdk/build.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-# Eclipse build contribution

-bin.includes=*.gif,platform.ini,platform.properties,plugin.xml,plugin.properties,product.properties,welcome.xml,product.ini,about.html

diff --git a/platform/org.eclipse.sdk/platform.ini b/platform/org.eclipse.sdk/platform.ini
deleted file mode 100644
index 0d3adeb..0000000
--- a/platform/org.eclipse.sdk/platform.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-name = Eclipse Platform

-detailedName = %detailedName 

-version = 2.0 (pre-release)

-buildID = @build@

-platformURL = http://www.eclipse.org

-copyright = %copyright 

-

diff --git a/platform/org.eclipse.sdk/platform.properties b/platform/org.eclipse.sdk/platform.properties
deleted file mode 100644
index 5c5ebe3..0000000
--- a/platform/org.eclipse.sdk/platform.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-copyright = (c) Copyright IBM Corp. 2000, 2002.  All rights reserved.\n\

-\n\

-     This offering is based on technology from the Eclipse Project.\n\

-     http://www.eclipse.org\n\

-\n\

-     Third party code may be provided with, included in, or accompany this product.\n\

-     See the license and plugin info for details.\n\

-

-detailedName = Eclipse Platform
\ No newline at end of file
diff --git a/platform/org.eclipse.sdk/plugin.properties b/platform/org.eclipse.sdk/plugin.properties
deleted file mode 100644
index e698ba3..0000000
--- a/platform/org.eclipse.sdk/plugin.properties
+++ /dev/null
@@ -1 +0,0 @@
-pluginName = Eclipse SDK Configuration Plug-In

diff --git a/platform/org.eclipse.sdk/plugin.xml b/platform/org.eclipse.sdk/plugin.xml
deleted file mode 100644
index 69ed2d5..0000000
--- a/platform/org.eclipse.sdk/plugin.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<plugin

-   id="org.eclipse.sdk"

-   name="%pluginName"

-   version="2.0"

-   provider-name="Object Technology International, Inc.">

-</plugin>

diff --git a/platform/org.eclipse.sdk/prod.gif b/platform/org.eclipse.sdk/prod.gif
deleted file mode 100644
index 6ca37e0..0000000
--- a/platform/org.eclipse.sdk/prod.gif
+++ /dev/null
Binary files differ
diff --git a/platform/org.eclipse.sdk/product.ini b/platform/org.eclipse.sdk/product.ini
deleted file mode 100644
index 48c2ef5..0000000
--- a/platform/org.eclipse.sdk/product.ini
+++ /dev/null
@@ -1,17 +0,0 @@
-name = Eclipse Project SDK

-detailedName = %detailedName

-image = prod.gif

-version = 2.0 (pre-release)

-application = org.eclipse.ui.workbench

-appName = Eclipse

-productURL = http://www.eclipse.org

-aboutImage = about_prod.gif

-welcomePage = welcome.xml

-baseInfosets = /org.eclipse.platform.doc.user/toc.xml,\

-                              /org.eclipse.jdt.doc.user/toc.xml,\

-                              /org.eclipse.platform.doc.isv/toc.xml,\

-                              /org.eclipse.jdt.doc.isv/toc.xml,\

-                              /org.eclipse.pde.doc.user/toc.xml

-defaultPerspectiveId = org.eclipse.ui.resourcePerspective

-copyright = %copyright

-buildID = @build@
\ No newline at end of file
diff --git a/platform/org.eclipse.sdk/product.properties b/platform/org.eclipse.sdk/product.properties
deleted file mode 100644
index 2c63923..0000000
--- a/platform/org.eclipse.sdk/product.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-copyright = (c) Copyright IBM Corp. 2000, 2002.  All rights reserved.\n\

-\n\

-     Visit the website at http://www.eclipse.org\n\

-

-detailedName = Eclipse Project SDK

-

diff --git a/platform/org.eclipse.sdk/welcome.xml b/platform/org.eclipse.sdk/welcome.xml
deleted file mode 100644
index 124f33c..0000000
--- a/platform/org.eclipse.sdk/welcome.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?> 

-<welcomePage 

-	title="Welcome to the Workbench">

-	<intro>This page will help familiarize you with the Workbench.

-To get started, read the sections below and click on the related links. </intro>

-

-	<item><b>Create Java components </b>

-To begin Java development, create a <action pluginId="org.eclipse.jdt.ui"  class="org.eclipse.jdt.internal.ui.wizards.OpenProjectWizardAction">Java project</action>.  Select the newly created project

-and choose File > New > Other.... In the left column of the wizard, select Java and double

-click on Java Package in the right column. Fill in the name of your package and click Finish. 

-

-To create a Java class, select the package in the navigator view and click on the 

-"Open the New Wizard" toolbar button (on the far left of the toolbar). This toolbar button

-provides us with a quick alternative to File > New > Other... .  Choose Java Class in the right column of

-the category Java, and click Next. In the class wizard fill in the name of your class and 

-click Finish to create the class and start editing it.</item>

-

-	<item><b>Perspectives, views and editors </b>

-A window contains one or more perspectives. A perspective consists of views (e.g. Navigator) 

-and editors for working with your resources.

-

-The shortcut bar at the far left of the window allows you to open new perspectives and move

-between perspectives that are already open. You can also use Alt+Up and Alt+Down to

-move between the open perspectives. The perspective you are currently working with is shown 

-in the title of the window and in the shortcut bar as a pushed-in icon.

-

-When opening perspectives you can hold down Ctrl (on Linux use Alt+Shift) or Shift to

-optionally open each perspective in its own window, or to replace the current perspective 

-with a new perspective. The behavior of Ctrl and Shift is configurable from <action pluginId="org.eclipse.ui"  class="org.eclipse.ui.internal.OpenPreferencesAction">Workbench > Preferences</action>.

-

-To open the Java perspective choose Perspective > Open > Java. </item>

-

-

-<item><b>Configuring your perspectives</b>

-You can move views and editors around the workbench by dragging their titlebars. You can

-also add more views to your current perspective by using Perspective > Show View. 

-To reset the perspective to its original state, choose <action pluginId="org.eclipse.ui"  class="org.eclipse.ui.internal.ResetPerspectiveAction">Perspective > Reset</action>. 

-

-Once you have arranged your perspective, you can save it using Perspective > Save As.... 

-You can customize the views, perspectives and New menu operations that show up for 

-your perspective. To do this choose <action pluginId="org.eclipse.ui"  class="org.eclipse.ui.internal.EditActionSetsAction">Perspective > Customize...</action>. A view can

-additionally be converted into a Fast View by dragging it to the shortcut bar (at the 

-far left of the window). </item> 

-

-<item><b>Join a CVS team</b>

-To join a CVS development team, open the <action pluginId="org.eclipse.vcm.ui"  class="org.eclipse.vcm.internal.ui.actions.OpenRepositoriesViewAction">Repositories view</action>. Next, specify the location

-of your CVS repository. To do this choose <action pluginId="org.eclipse.vcm.ui.cvs"  class="org.eclipse.vcm.internal.ui.ccvs.NewRepositoryConnectionAction">New > CVS Repository Location...</action> from the

-Repositories view popup menu. When the location wizard opens, fill in the details of your 

-CVS repository and click Finish. 

-

-In the Repositories view expand the location entry and expand Streams. Choose the HEAD

-stream and expand it to view any ongoing work. Select the projects you want to work with

-and choose "Add to Workspace" from the project's popup menu.</item>

-

-

-	<item><b>Learn more </b>

-To learn more you can browse the <topic id="/org.eclipse.platform.doc.user/toc.xml">Workbench User Guide</topic> or the <topic id="/org.eclipse.jdt.doc.user/toc.xml">Java Development User Guide</topic>.</item>

-

-

-</welcomePage>
\ No newline at end of file
diff --git a/update/org.eclipse.update.examples/bin/org/eclipse/update/examples/buildzip/java.page.jpage b/update/org.eclipse.update.examples/bin/org/eclipse/update/examples/buildzip/java.page.jpage
deleted file mode 100644
index 8b3ca30..0000000
--- a/update/org.eclipse.update.examples/bin/org/eclipse/update/examples/buildzip/java.page.jpage
+++ /dev/null
@@ -1,43 +0,0 @@
-

-

-java.util.Properties p = System.getProperties();

-java.util.Enumeration keys = p.keys();

-while (keys.hasMoreElements()) {

-	String key = (String)keys.nextElement();

-	System.out.println(key + " = " + (String)p.get(key));

-}

-

-

-



-String fileName = "d:\\downloads\\eclipse 2.0\\integration-eclipse-SDK-20020109-win32.zip";

-java.io.File archiveFile = new java.io.File(fileName);

-java.util.jar.JarFile jarArchive = new java.util.jar.JarFile(archiveFile);

-java.util.jar.JarEntry entry;

-java.util.Enumeration entries = jarArchive.entries();

-while(entries.hasMoreElements()) {

-	entry = (java.util.jar.JarEntry) entries.nextElement();

-	System.out.println(entry.getName());

-}

-

-

-String a = "223";

-String b = "123";

-a.compareTo(b);

-

-

-org.eclipse.update.core.Version v1 = 

-	new org.eclipse.update.core.Version(1,2,3,"build 127J");

-org.eclipse.update.core.Version v2 = 

-	new org.eclipse.update.core.Version(1,2,3,"build 127J");

-v1.compare(v2);

-

-

-java.io.File f = new java.io.File("d:\\downloads\\eclipse 2.0\\x\\");

-f.isDirectory();

-

-

-String s = "hello";

-Object a = java.lang.reflect.Array.newInstance(s.getClass(),0);

-System.out.println(a.getClass().getName());

-

-

diff --git a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/Locator.java b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/Locator.java
index fb46567..fbd75d3 100644
--- a/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/Locator.java
+++ b/update/org.eclipse.update.ui.forms/src/org/eclipse/update/ui/forms/internal/engine/Locator.java
@@ -8,7 +8,7 @@
  * @version 	1.0

  * @author

  */

-public class Locator { 
+public class Locator {
 	public int indent;
 	public int x, y;
 	public int width, height;
diff --git a/update/org.eclipse.update/.classpath b/update/org.eclipse.update/.classpath
deleted file mode 100644
index f12531d..0000000
--- a/update/org.eclipse.update/.classpath
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src"/>
-    <classpathentry kind="var" path="JRE_LIB" rootpath="JRE_SRCROOT" sourcepath="JRE_SRC"/>
-    <classpathentry kind="var"
-        path="ECLIPSE_HOME/plugins/org.eclipse.core.boot/boot.jar" sourcepath="ECLIPSE_HOME/plugins/org.eclipse.core.boot/bootsrc.zip"/>
-    <classpathentry kind="var"
-        path="ECLIPSE_HOME/plugins/org.eclipse.core.runtime/runtime.jar" sourcepath="ECLIPSE_HOME/plugins/org.eclipse.core.runtime/runtimesrc.zip"/>
-    <classpathentry kind="var"
-        path="ECLIPSE_HOME/plugins/org.eclipse.swt/swt.jar" sourcepath="ECLIPSE_HOME/plugins/org.eclipse.swt/swtsrc.zip"/>
-    <classpathentry kind="var"
-        path="ECLIPSE_HOME/plugins/org.eclipse.ui/workbench.jar" sourcepath="ECLIPSE_HOME/plugins/org.eclipse.ui/workbenchsrc.zip"/>
-    <classpathentry kind="var" path="ECLIPSE_HOME/plugins/org.eclipse.webdav/webdav.jar"/>
-    <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/update/org.eclipse.update/.cvsignore b/update/org.eclipse.update/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/update/org.eclipse.update/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/update/org.eclipse.update/.vcm_meta b/update/org.eclipse.update/.vcm_meta
deleted file mode 100644
index 7655f8d..0000000
--- a/update/org.eclipse.update/.vcm_meta
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<project-description>

-	<comment></comment>

-	<nature id="org.eclipse.jdt.core.javanature"/>

-	<builder name="org.eclipse.jdt.core.javabuilder">

-	</builder>

-</project-description>

diff --git a/update/org.eclipse.update/about.html b/update/org.eclipse.update/about.html
deleted file mode 100644
index 9a15e5c..0000000
--- a/update/org.eclipse.update/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<html>

-<head>

-<title>About</title>

-<style type="text/css">

-p, table, td, th { font-family: arial, helvetica, geneva; font-size: 10pt}

-pre { font-family: "Courier New", Courier, mono; font-size: 10pt}

-h2 { font-family: arial, helvetica, geneva; font-size: 18pt; font-weight: bold ; line-height: 14px}

-code { font-family: "Courier New", Courier, mono; font-size: 10pt}

-sup { font-family: arial,helvetica,geneva; font-size: 10px}

-h3 { font-family: arial, helvetica, geneva; font-size: 14pt; font-weight: bold}

-li { font-family: arial, helvetica, geneva; font-size: 10pt}

-h1 { font-family: arial, helvetica, geneva; font-size: 28px; font-weight: bold}

-body { font-family: arial, helvetica, geneva; font-size: 10pt; clip: rect(   ); margin-top: 5mm; margin-left: 3mm}

-</style>

-</head>

-<body>

-<body lang=EN-US link=blue vlink=purple>

-<table border=0 cellspacing=5 cellpadding=2 width="100%" >

-  <tr> 

-    <td align=LEFT valign=TOP colspan="2" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">About This Plug-in</font></b></td>

-  </tr>

-  <tr> 

-    <td> 

-<p>1st November, 2001</p>	

-<h3>License</h3>

-<p>Eclipse.org makes available all content in this plug-in.  The plug-in is provided to you under the terms and conditions of the

-<a href="http://www.eclipse.org/legal/cpl-v05.html">Common Public License Version 0.5</a>.  For purposes of the Common Public License, &quot;Program&quot; will mean the plug-in.</p>

-</td></tr></table>

-</body>

-</html>
\ No newline at end of file
diff --git a/update/org.eclipse.update/build.properties b/update/org.eclipse.update/build.properties
deleted file mode 100644
index ac7da03..0000000
--- a/update/org.eclipse.update/build.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-source.update.jar=src/

-bin.includes=plugin.xml,icons/,plugin.properties,*.jar,about.html

diff --git a/update/org.eclipse.update/icons/full/ctool16/new.gif b/update/org.eclipse.update/icons/full/ctool16/new.gif
deleted file mode 100644
index d16d5b0..0000000
--- a/update/org.eclipse.update/icons/full/ctool16/new.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update/icons/full/ctool16/update.gif b/update/org.eclipse.update/icons/full/ctool16/update.gif
deleted file mode 100644
index f011d8a..0000000
--- a/update/org.eclipse.update/icons/full/ctool16/update.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update/icons/full/wizban/new.gif b/update/org.eclipse.update/icons/full/wizban/new.gif
deleted file mode 100644
index 2a0c793..0000000
--- a/update/org.eclipse.update/icons/full/wizban/new.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update/icons/full/wizban/revert.gif b/update/org.eclipse.update/icons/full/wizban/revert.gif
deleted file mode 100644
index d7402a2..0000000
--- a/update/org.eclipse.update/icons/full/wizban/revert.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update/icons/full/wizban/update.gif b/update/org.eclipse.update/icons/full/wizban/update.gif
deleted file mode 100644
index 4ff15da..0000000
--- a/update/org.eclipse.update/icons/full/wizban/update.gif
+++ /dev/null
Binary files differ
diff --git a/update/org.eclipse.update/plugin.properties b/update/org.eclipse.update/plugin.properties
deleted file mode 100644
index 9c052ee..0000000
--- a/update/org.eclipse.update/plugin.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-S_Eclipse_Update_Manager_Plugin = Install/Update Manager

-S_Software_Updates = &Software Updates

-S_Software_Updates_Preferences = Software Updates

diff --git a/update/org.eclipse.update/plugin.xml b/update/org.eclipse.update/plugin.xml
deleted file mode 100644
index 87f8787..0000000
--- a/update/org.eclipse.update/plugin.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<!-- File written by PDE 1.0 -->

-<plugin

-   id="org.eclipse.update"

-   name="%S_Eclipse_Update_Manager_Plugin"

-   version="1.0"

-   provider-name="International Business Machines Corp."

-   class="org.eclipse.update.internal.core.UpdateManagerPlugin">

-<requires>

-   <import plugin="org.eclipse.core.runtime"/>

-   <import plugin="org.eclipse.ui"/>

-   <import plugin="org.eclipse.webdav"/>

-</requires>

-

-<runtime>

-   <library name="update.jar"/>

-</runtime>

-

-<!-- ================================================================================= -->

-<!--                                                                                   -->

-<!-- Update Manager Help Menu Action Set                                               -->

-<!--                                                                                   -->

-<!-- ================================================================================= -->

-<extension

-      point="org.eclipse.ui.actionSets">

-   <actionSet

-         label="%S_Software_Updates"

-         visible="false"

-         id="org.eclipse.update.internal.ui.UpdateManagerActionSet">

-      <action

-            label="%S_Software_Updates"

-            class="org.eclipse.update.internal.ui.UMDialogAction"

-            menubarPath="help/helpEnd"

-            id="org.eclipse.update.internal.ui.UpdateManagerAction">

-      </action>

-   </actionSet>

-</extension>

-<!-- ============================================================================================ -->

-<!--                                                                                              -->

-<!-- Update Manager Application                                                                   -->

-<!--                                                                                              -->

-<!-- ============================================================================================ -->

-<extension

-      id="updateManager"

-      point="org.eclipse.core.runtime.applications">

-   <application>

-      <run

-            class="org.eclipse.update.internal.ui.UMApplicationUserInterface">

-      </run>

-   </application>

-</extension>

-</plugin>

diff --git a/update/org.eclipse.update/plugin.xml.off b/update/org.eclipse.update/plugin.xml.off
deleted file mode 100644
index 8a83831..0000000
--- a/update/org.eclipse.update/plugin.xml.off
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-

-<!-- Eclipse Update Manager Plugin -->

-

-<plugin

-    id          = "org.eclipse.update"

-    name        = "%S_Eclipse_Update_Manager_Plugin"

-    version     = "1.0"

-    provider-name = "International Business Machines Corp."

-    class       = "org.eclipse.update.internal.core.UpdateManagerPlugin">

-

-    <requires>

-        <import plugin="org.eclipse.core.runtime"/>

-        <import plugin="org.eclipse.ui"/>

-        <import plugin="org.eclipse.webdav"/>

-    </requires>

-

-    <runtime>

-        <library name="update.jar" />

-    </runtime>

-

-    <!-- ================================================================================= -->

-    <!--                                                                                   -->

-    <!-- Update Manager Preference Page Settings                                           -->

-    <!--                                                                                   -->

-    <!-- ================================================================================= -->

-    <extension point="org.eclipse.ui.preferencePages">

-        <page id       = "UMPreferencePageSettings"

-              name     = "%S_Software_Updates_Preferences"

-              class    = "org.eclipse.update.internal.ui.UMPreferencePageSettings">

-        </page>

-    </extension>

-

-    <!-- ================================================================================= -->

-    <!--                                                                                   -->

-    <!-- Update Manager Help Menu Action Set                                               -->

-    <!--                                                                                   -->

-    <!-- ================================================================================= -->

-    <extension point="org.eclipse.ui.actionSets">

-        <actionSet

-            id      = "org.eclipse.update.internal.ui.UpdateManagerActionSet"

-            label   = "%S_Software_Updates"

-            visible = "true">

-            <action id          = "org.eclipse.update.internal.ui.UpdateManagerAction"

-                    menubarPath = "help/helpEnd"

-                    label       = "%S_Software_Updates"

-                    class       = "org.eclipse.update.internal.ui.UMDialogAction"/>

-        </actionSet>

-    </extension>

-

-    <!-- ============================================================================================ -->

-    <!--                                                                                              -->

-    <!-- Update Manager Application                                                                   -->

-    <!--                                                                                              -->

-    <!-- ============================================================================================ -->

-    <extension id="updateManager" point="org.eclipse.core.runtime.applications">

-        <application>

-            <run class="org.eclipse.update.internal.ui.UMApplicationUserInterface">

-            </run>

-        </application>

-    </extension>

-</plugin>

diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/core/ISessionDefiner.java b/update/org.eclipse.update/src/org/eclipse/update/internal/core/ISessionDefiner.java
deleted file mode 100644
index 626ca05..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/core/ISessionDefiner.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.eclipse.update.internal.core;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-/**

- */

-import org.eclipse.core.internal.boot.update.*;

-

-public interface ISessionDefiner {

-/**

- * Creates one or more operations for the current session.

- */

-void defineOperations( UMSessionManagerSession session, IInstallable[] descriptors, boolean bVerifyJars );

-}

diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/core/IUMLock.java b/update/org.eclipse.update/src/org/eclipse/update/internal/core/IUMLock.java
deleted file mode 100644
index c25c907..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/core/IUMLock.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.eclipse.update.internal.core;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-/**

- */

-public interface IUMLock {

-/**

- * Checks to see if the UMLock file is there.  If yes, returns true

- */

-public boolean exists();

-/**

- */

-void remove();

-/**

- */

-void set();

-/**

- */

-void set(String msg);

-}

diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/core/UMLock.java b/update/org.eclipse.update/src/org/eclipse/update/internal/core/UMLock.java
deleted file mode 100644
index 5c08d9a..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/core/UMLock.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package org.eclipse.update.internal.core;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-/**

- */

-import org.eclipse.core.internal.boot.update.*;

-import java.io.*;

-import java.net.*;

-public class UMLock implements IUMLock {

-	File file = null;

-/**

- * UMLock constructor comment.

- */

-public UMLock() {

-	super();

-	URL lockfileURL = null;

-	try {

-		lockfileURL = new URL(UMEclipseTree.getInstallTreeURL(), IManifestAttributes.UM_LOCK);

-	} catch (MalformedURLException ex) {

-	}

-	file = getFile(lockfileURL);

-}

-/**

- * Checks to see if the UMLock file is there.  If yes, returns true

- */

-public boolean exists() {

-	

-	if (file != null) {

-		if (file.exists() == true) {

-			return true;

-		}

-	}

-	return false;

-}

-/**

- */

-public static File getFile(URL url) {

-	File file = null;

-	if (url != null) {

-

-		// Convert the URL to a string

-		//----------------------------

-		String strFilespec = UMEclipseTree.getFileInPlatformString(url);

-

-		file = new File(strFilespec);

-	}

-	return file;

-}

-/**

- */

-public void remove() {

-	if (exists())

-		file.delete();

-		

-}

-/**

- */

-public void set() {

-	set("");

-}

-/**

- */

-public void set(String msg) {

-	URL lockfileURL = null;

-	try {

-		lockfileURL = new URL(UMEclipseTree.getInstallTreeURL(), IManifestAttributes.UM_LOCK);

-	} catch (MalformedURLException ex) {

-	}

-	

-	// Create a lock file

-	//-------------------

-	Log lockfile = new Log();

-

-	try {

-		lockfile.load(lockfileURL);		// creates file if it doesn't exist

-	}

-	catch (LogStoreException ex) {

-		return;

-	}

-

-	// Add an entry

-	//-------------

-	LogEntry lockEntry = new LogEntry( lockfile, msg );

-	lockfile.addChildEntry( lockEntry );

-

-

-	try {

-		lockfile.save(lockfileURL);

-	}

-	catch (LogStoreException ex) {

-		return;

-	}

-}

-}

diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionDefinerReferenceUpdate.java b/update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionDefinerReferenceUpdate.java
deleted file mode 100644
index 240091b..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionDefinerReferenceUpdate.java
+++ /dev/null
@@ -1,216 +0,0 @@
-package org.eclipse.update.internal.core;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-/**

- */

-import org.eclipse.core.internal.boot.update.*;

-import org.eclipse.core.internal.boot.LaunchInfo;

-

-public class UMSessionDefinerReferenceUpdate implements ISessionDefiner {

-/**

- * UMUpdaterCached constructor comment.

- */

-public UMSessionDefinerReferenceUpdate() {

-	super();

-}

-/**

- * Creates one or more operations for the current parcel.

- */

-public void defineComponentOperation(UMSessionManagerParcel parcel, IInstallable descriptor, boolean bVerifyJars) {

-

-	IComponentDescriptor componentDescriptor = null;

-

-	if (descriptor instanceof IComponentDescriptor) {

-		componentDescriptor = (IComponentDescriptor) descriptor;

-	}

-	else if (descriptor instanceof IComponentEntryDescriptor) {

-		componentDescriptor = ((IComponentEntryDescriptor) descriptor).getComponentDescriptor();

-	}

-	if (componentDescriptor == null)

-		return; 

-

-	UMSessionManagerOperation operation = null;

-

-	// Create download operation

-	//--------------------------

-	operation = parcel.createOperation();

-	operation.setAction(UpdateManagerConstants.OPERATION_COPY);

-	operation.setId(componentDescriptor.getUniqueIdentifier());

-	operation.setSource(componentDescriptor.getDownloadURL().toExternalForm());

-	String downloadTarget = UMEclipseTree.getStagingArea().toExternalForm() + componentDescriptor.getDirName() + ".jar";

-	operation.setTarget(downloadTarget);

-	operation.setData(descriptor);

-

-	// Create jar verification operation

-	//----------------------------------

-	if (bVerifyJars == true) {

-		operation = parcel.createOperation();

-		operation.setAction(UpdateManagerConstants.OPERATION_VERIFY_JAR);

-		operation.setId(componentDescriptor.getUniqueIdentifier());

-		operation.setSource(downloadTarget);

-		operation.setTarget(null);

-		operation.setData(descriptor);

-	}

-

-	// Create apply operation for component files (files not in plugins/ dir structure)

-	//---------------------------------------------------------------------------------

-	operation = parcel.createOperation();

-	operation.setAction(UpdateManagerConstants.OPERATION_UNZIP_INSTALL);

-	operation.setId(componentDescriptor.getUniqueIdentifier());

-	operation.setSource(downloadTarget);

-	String applyTarget = UMEclipseTree.getBaseInstallURL().toExternalForm();

-	//	String applyTarget = "file:///c:/temp/x/" ;

-	operation.setTarget(applyTarget);

-	operation.setData(descriptor);

-

-	// Create apply operation for plug-ins		

-	//------------------------------------

-	IPluginEntryDescriptor[] plugins = componentDescriptor.getPluginEntries();

-	IFragmentEntryDescriptor[] fragments = componentDescriptor.getFragmentEntries();

-	if ((plugins.length > 0) || (fragments.length >0)) {

-		operation = parcel.createOperation();

-		operation.setAction(UpdateManagerConstants.OPERATION_UNZIP_PLUGINS);

-		operation.setId(componentDescriptor.getUniqueIdentifier());

-		operation.setSource(downloadTarget);

-		// by specifiying the install dir with a trailing slash, the unzip method

-		// will just unzip the contents of the jar into the dir

-		applyTarget = UMEclipseTree.getBaseInstallURL().toExternalForm();

-		//	applyTarget = "file:///c:/temp/x/" ;

-		operation.setTarget(applyTarget);

-		operation.setData(descriptor);

-	}

-

-}

-/**

- * Creates one or more operations for the current session.

- */

-public void defineOperations(UMSessionManagerSession session, IInstallable[] descriptors, boolean bVerifyJars) {

-

-	for (int i = 0; i < descriptors.length; ++i) {

-

-		// Products

-		//---------

-		if (descriptors[i] instanceof IProductDescriptor) {

-

-			UMSessionManagerParcel parcel = null;

-

-			// Create parcel

-			//--------------

-			parcel = session.createParcel();

-			parcel.setType(IManifestAttributes.PRODUCT);

-			parcel.setAction(UpdateManagerConstants.OPERATION_ACTION_INSTALL);

-			parcel.setId(((IProductDescriptor) descriptors[i]).getUniqueIdentifier());

-			parcel.setData((IProductDescriptor) descriptors[i]);

-

-			defineProductOperation(parcel, descriptors[i], bVerifyJars);

-		}

-

-		// Components

-		//-----------

-		else if (descriptors[i] instanceof IComponentDescriptor) {

-

-			UMSessionManagerParcel parcel = null;

-

-			// Create parcel

-			//--------------

-			parcel = session.createParcel();

-			parcel.setType(IManifestAttributes.COMPONENT);

-			parcel.setAction(UpdateManagerConstants.OPERATION_ACTION_INSTALL);

-			parcel.setId(((IComponentDescriptor) descriptors[i]).getUniqueIdentifier());

-			parcel.setData((IComponentDescriptor) descriptors[i]);

-

-			defineComponentOperation(parcel, descriptors[i], bVerifyJars);

-		}

-

-		// Component Entries

-		//------------------

-		else if (descriptors[i] instanceof IComponentEntryDescriptor) {

-

-			UMSessionManagerParcel parcel = null;

-

-			// Create parcel

-			//--------------

-			parcel = session.createParcel();

-			parcel.setType(IManifestAttributes.COMPONENT);

-			parcel.setAction(UpdateManagerConstants.OPERATION_ACTION_INSTALL);

-			parcel.setId(((IComponentEntryDescriptor) descriptors[i]).getUniqueIdentifier());

-			parcel.setData((IComponentEntryDescriptor) descriptors[i]);

-

-			defineComponentOperation(parcel, descriptors[i], bVerifyJars);

-		}

-	}

-}

-/**

- * Creates one or more operations for the current parcel.

- */

-public void defineProductOperation(UMSessionManagerParcel parcel, IInstallable descriptor, boolean bVerifyJars) {

-

-	IProductDescriptor productDescriptor = (IProductDescriptor) descriptor;

-	UMSessionManagerOperation operation = null;

-

-	// Create download operation

-	//--------------------------

-	operation = parcel.createOperation();

-	operation.setAction(UpdateManagerConstants.OPERATION_COPY);

-	operation.setId(productDescriptor.getUniqueIdentifier());

-	operation.setSource(productDescriptor.getDownloadURL().toExternalForm());

-	String downloadTarget = UMEclipseTree.getStagingArea().toString() + productDescriptor.getDirName() + ".jar";

-	operation.setTarget(downloadTarget);

-	operation.setData(productDescriptor);

-

-	// Create jar verification operation

-	//----------------------------------

-	if (bVerifyJars == true) {

-		operation = parcel.createOperation();

-		operation.setAction(UpdateManagerConstants.OPERATION_VERIFY_JAR);

-		operation.setId(productDescriptor.getUniqueIdentifier());

-		operation.setSource(downloadTarget);

-		operation.setTarget(null);

-		operation.setData(productDescriptor);

-	}

-

-	// Create apply operation for product files     

-	//-----------------------------------------

-	operation = parcel.createOperation();

-	operation.setAction(UpdateManagerConstants.OPERATION_UNZIP_INSTALL);

-	operation.setId(productDescriptor.getUniqueIdentifier());

-	operation.setSource(downloadTarget);

-	String applyTarget = UMEclipseTree.getBaseInstallURL().toExternalForm();

-	operation.setTarget(applyTarget);

-	operation.setData(productDescriptor);

-

-	// Create component sub-parcels

-	//-----------------------------

-	IComponentEntryDescriptor[] entries = productDescriptor.getComponentEntries();

-	for (int j = 0; j < entries.length; ++j) {

-		if (entries[j].isSelected()) {

-

-			UMSessionManagerParcel subparcel = null;

-			// Create parcel for each component

-			//---------------------------------

-			subparcel = parcel.createParcel();

-			subparcel.setType(IManifestAttributes.COMPONENT);

-			subparcel.setAction(UpdateManagerConstants.OPERATION_ACTION_INSTALL);

-			subparcel.setId(entries[j].getUniqueIdentifier());

-			subparcel.setData(entries[j]);

-

-			defineComponentOperation(subparcel, entries[j], bVerifyJars);

-		}

-	}

-

-	// Create apply operation for product files     

-	//-----------------------------------------

-	String app = LaunchInfo.getCurrent().getApplicationConfigurationIdentifier();

-	if ((app != null) && (app.equals(productDescriptor.getUniqueIdentifier()))) { 	// dominant app?

-		operation = parcel.createOperation();

-		operation.setAction(UpdateManagerConstants.OPERATION_UNZIP_BINDIR);

-		operation.setId(productDescriptor.getUniqueIdentifier());

-		operation.setSource(downloadTarget);

-		operation.setTarget(applyTarget);

-		operation.setData(productDescriptor);

-	}

-}

-}

diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionManager.java b/update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionManager.java
deleted file mode 100644
index ab379b5..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionManager.java
+++ /dev/null
@@ -1,351 +0,0 @@
-package org.eclipse.update.internal.core;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.core.runtime.IProgressMonitor;

-import org.eclipse.core.internal.boot.update.*;

-import java.io.*;

-import java.net.*;

-import java.util.*;

-

-/**

- * Session Manager executes defined sessions, and manages the update and update history logs.

- * Logs look like this:

- *

- * <session timestamp="xxxx" status="complete" attempts="1">

- *   <operation action="urltocache" status="complete" attempts="1">

- *      <parcel type="component" id="xxx" action="add" status="complete" attempts="1">

- *         <item id="xxx" source="file:///C:/temp/sample_in.java" target="file:///C:/temp/sample_out.java" status="complete" attempts="1">

- *            <message text="successful" timestamp="Thu Mar 01 09:56:49 EST 2001" />

- *         </item>

- *      </parcel>

- *   </operation>

- * </session>

- *

- *

- *  Each element is represented by an UpdateManagerXyz class and have specific

- * member functions for accessing domain specific attributes and child elements.

- * The "status" attribute can be one of "pending", "failed", or "complete".

- */

-

-public class UMSessionManager {

-	

-	protected Log _logUpdate  = null;

-	protected Log _logHistory = null;

-	

-	protected URL _urlUpdate  = null;

-	protected URL _urlHistory = null;

-

-	protected ArrayList _alUpdateSessions = new ArrayList();

-/**

- * Constructs an UpdateManager with the update log and history log URLs.

- * The boolean specifies whether an exception should be thrown if one of

- * the logs is not found.

- */

-public UMSessionManager(URL urlUpdateLog, URL urlHistoryLog, boolean notifyIfLogNotFound) throws LogStoreException {

-

-	_urlUpdate = urlUpdateLog;

-	_urlHistory = urlHistoryLog;

-

-	// Attempt to open the two logs

-	//-----------------------------

-	_logUpdate = new Log();

-	_logHistory = new Log();

-

-	// If the files do not exist

-	// notify if required.  Otherwise assume new files

-	//------------------------------------------------

-	try {

-		_logUpdate.load(_urlUpdate);

-	}

-	catch (LogStoreException ex) {

-//		_logUpdate.printEntryTree(0);

-		if (notifyIfLogNotFound == true) {

-			throw ex;

-		}

-	}

-

-	// Create the update session structure from the log

-	//-------------------------------------------------

-	buildTreeFromLog( _logUpdate );

-

-/*	

-	try {

-		_logHistory.load(_urlUpdate);

-	}

-	catch (LogStoreException ex) {

-		

-		if (notifyIfLogNotFound == true) {

-			throw ex;

-		}

-	}

-

-	_logHistory.printEntryTree(0);

-*/

-}

-/**

- * Creates a tree of sessions from the given log.

- * @param logUpdate org.eclipse.update.internal.core.Log

- * @param alUpdate java.util.ArrayList

- */

-private void buildTreeFromLog(Log logUpdate ) {

-	

-	ILogEntry[] entryChildren = logUpdate.getChildEntries();

-

-	UMSessionManagerSession session = null;

-	

-	for( int i=0; i<entryChildren.length; ++i )

-	{

-		session = new UMSessionManagerSession( entryChildren[i] );

-

-		_alUpdateSessions.add( session );

-		

-		session.buildTreeFromLog( entryChildren[i] );

-	}

-	

-	return;

-}

-/**

- * Creates a new update session where pending operations may be defined for

- * completion.

- * @return org.eclipse.update.internal.core.UMSessionManagerSession

- */

-public UMSessionManagerSession createUpdateSession() {

-

-	UMSessionManagerSession umSession = null;

-	

-	if( _logUpdate != null )

-	{

-		ILogEntry entrySession = new LogEntry( _logUpdate, UpdateManagerConstants.STRING_SESSION );

-		

-		_logUpdate.addChildEntry( entrySession );

-

-		umSession = new UMSessionManagerSession( entrySession );

-

-		umSession.buildTreeFromLog( entrySession );

-

-		_alUpdateSessions.add( umSession );

-	}

-	

-	return umSession;

-}

-/**

- * Runs all sessions

- */

-public boolean executePendingSessions(IProgressMonitor progressMonitor) {

-

-	// Run each of the failed sessions

-	//--------------------------------

-	boolean bSuccess = true;

-

-	UMSessionManagerSession session = null;

-

-	Iterator iter = _alUpdateSessions.iterator();

-

-	while (iter.hasNext() == true) {

-

-		session = (UMSessionManagerSession) iter.next();

-

-		if (session.getStatus().equals(UpdateManagerConstants.STATUS_PENDING) == true) {

-			if (session.execute(progressMonitor) == false) {

-				bSuccess = false;

-			}

-		}

-	}

-

-	return bSuccess;

-}

-/**

- * Runs one session

- */

-public boolean executeSession(UMSessionManagerSession session, IProgressMonitor progressMonitor) {

-

-	if (session == null)

-		return false;

-

-	// Run the session

-	//----------------

-	return session.execute(progressMonitor);

-}

-/**

- * Runs one session

- */

-public boolean executeSessionUndo(UMSessionManagerSession session, IProgressMonitor progressMonitor) {

-

-	if (session == null)

-		return false;

-

-	// Run the session

-	//----------------

-	return session.executeUndo(progressMonitor);

-}

-/**

- * Returns an array of sessions that are complete.

- * @return org.eclipse.update.internal.core.UMSessionManagerSession[]

- */

-private UMSessionManagerSession[] getUpdateSessionsCompleted() {

-

-	// Obtain the successfully completed sessions

-	//-------------------------------------------

-	UMSessionManagerSession session = null;

-

-	ArrayList alSessionsCompleted = new ArrayList();

-

-	Iterator iter = _alUpdateSessions.iterator();

-

-	while (iter.hasNext() == true) {

-

-		session = (UMSessionManagerSession) iter.next();

-

-		if (session.isComplete() == true) {

-			alSessionsCompleted.add(session);

-		}

-	}

-

-	Object[] objArray = alSessionsCompleted.toArray();

-	UMSessionManagerSession[] sessions = new UMSessionManagerSession[objArray.length];

-	System.arraycopy(objArray, 0, sessions, 0, objArray.length);

-

-	return sessions;

-}

-/**

- * Removes an existing update session

- *

- */

-private boolean removeUpdateSession(UMSessionManagerSession session) {

-

-	if (session != null && _logUpdate != null) {

-

-	    // Ensure session exists

-	    //----------------------

-		if (_alUpdateSessions.contains(session) == false) {

-			return false;

-		}

-

-		// Remove the log entry

-		//---------------------

-		if (session.getLogEntry() != null) {

-

-			if (_logUpdate.removeChildEntry(session.getLogEntry()) == false) {

-				return false;

-			}

-

-			// Remove the session

-			//-------------------

-			_alUpdateSessions.remove(session);

-		}

-	}

-

-	return true;

-}

-/**

- * Saves the current state of the update log.

- */

-public void saveUpdateLog() throws LogStoreException {

-	_logUpdate.save( _urlUpdate );

-}

-/**

- * Moves all completed sessions in the update log to the history log.

- * This method does not parse the history file.  Sessions are written to

- * the end of the history log and removed from the update log tree, and update

- * session tree.  The update log is saved.

- */

-public void updateAndSaveLogs() throws LogStoreException {

-

-	// Check for history log URL

-	// If none, save the update log

-	//-----------------------------

-	if (_urlHistory == null) {

-		saveUpdateLog();

-		return;

-	}

-

-	// Obtain a list of completed update sessions

-	//-------------------------------------------

-	UMSessionManagerSession[] sessionsCompleted = getUpdateSessionsCompleted();

-

-	// If there are none, save the update log

-	//---------------------------------------

-	if (sessionsCompleted.length <= 0) {

-		saveUpdateLog();

-		return;

-	}

-

-	// Attempt to open the output log

-	//-------------------------------

-	String strFilespec = UMEclipseTree.getFileInPlatformString(_urlHistory);

-	

-

-	File file = new File(strFilespec);

-

-	boolean bExists = file.exists();

-

-	if (bExists == false) {

-		try {

-			bExists = file.createNewFile();

-		}

-		catch (IOException ex) {

-			return;

-		}

-	}

-

-	// Create a file writer and seek to the end of the file

-	//-----------------------------------------------------

-	RandomAccessFile fileWriter = null;

-

-	if (bExists == true) {

-		try {

-			fileWriter = new RandomAccessFile(file, "rw");

-			long lLength = fileWriter.length();

-			fileWriter.seek(lLength);

-		}

-		catch (IOException ex) {

-			fileWriter = null;

-		}

-	}

-

-	// Write out each session log to the history log

-	// Remove the session log from the update log

-	// Save both logs

-	//----------------------------------------------

-	StringBuffer strb = new StringBuffer();

-

-	if (fileWriter != null) {

-

-		ILogEntry logEntry = null;

-

-		for (int i = 0; i < sessionsCompleted.length; ++i) {

-

-			logEntry = sessionsCompleted[i].getLogEntry();

-

-			if (logEntry != null) {

-				logEntry.printPersistentEntryString(strb, 0);

-			}

-		}

-	}

-

-	// Write the buffer to the end of the history file

-	//------------------------------------------------

-	if (strb.length() > 0) {

-		try {

-			fileWriter.write(strb.toString().getBytes());

-			fileWriter.close();

-		}

-		catch (IOException ex) {

-

-		}

-	}

-

-	// Remove the update sessions from the update log

-	//-----------------------------------------------

-	for (int i = 0; i < sessionsCompleted.length; ++i) {

-		removeUpdateSession(sessionsCompleted[i]);

-	}

-

-	// Save the update log to keep logs in sync

-	//-----------------------------------------

-	saveUpdateLog();

-}

-}

diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionManagerEntry.java b/update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionManagerEntry.java
deleted file mode 100644
index 9d616c8..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionManagerEntry.java
+++ /dev/null
@@ -1,171 +0,0 @@
-package org.eclipse.update.internal.core;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.core.runtime.IProgressMonitor;

-import org.eclipse.core.internal.boot.update.*;

-/**

- * Abstract class for update manager objects that have an ILogEntry

- */

-public abstract class UMSessionManagerEntry {

-	protected ILogEntry _logEntry = null;

-	protected ILogEntryProperty _propertyStatus = null;

-	protected ILogEntryProperty _propertyAttempts = null;

-	protected Object            _objData = null;

-/**

- * UpdateManagerEntry constructor comment.

- */

-public UMSessionManagerEntry( ILogEntry logEntry ) {

-	_logEntry = logEntry;

-

-	// Status

-	//-------

-	_propertyStatus = _logEntry.getProperty(UpdateManagerConstants.STRING_STATUS);

-

-	if (_propertyStatus == null) {

-		_propertyStatus = new LogEntryProperty(logEntry, UpdateManagerConstants.STRING_STATUS, UpdateManagerConstants.STATUS_PENDING );

-		logEntry.addProperty( _propertyStatus );

-	}

-

-	// Attempts

-	//---------

-	_propertyAttempts = _logEntry.getProperty(UpdateManagerConstants.STRING_ATTEMPTS);

-

-	if (_propertyAttempts == null) {

-		_propertyAttempts = new LogEntryProperty(logEntry, UpdateManagerConstants.STRING_ATTEMPTS, UpdateManagerConstants.STRING_0 );

-		logEntry.addProperty( _propertyAttempts );

-	}

-

-}

-/**

- * @param logEntry org.eclipse.update.internal.core.ILogEntry

- */

-public void buildTreeFromLog(ILogEntry logEntry) {

-	

-	// Attempts

-	//---------

-	ILogEntryProperty property = _logEntry.getProperty(UpdateManagerConstants.STRING_ATTEMPTS);

-

-	if (property != null) {

-		_propertyAttempts = property;

-	}

-	

-	// Status

-	//-------

-	property = _logEntry.getProperty(UpdateManagerConstants.STRING_STATUS);

-

-	if (property != null) {

-		_propertyStatus = property;

-	}

-}

-/**

- * 

- * @return java.lang.String

- * @param strPrefix java.lang.String

- * @param ex java.lang.Exception

- */

-public String createMessageString(String strPrefix, Exception ex) {

-

-	StringBuffer strb = new StringBuffer(strPrefix);

-

-	if (ex != null) {

-		if (ex.getLocalizedMessage() != null) {

-			strb.append(": " + ex.getLocalizedMessage());

-		}

-

-		else if (ex.toString() != null && ex.toString().length() > 0) {

-			strb.append(": " + ex.toString());

-		}

-	}

-

-	return strb.toString();

-}

-/**

- * Execute any pending or failed updates.

- */

-public abstract boolean execute( IProgressMonitor progressMonitor );

-/**

- * Execute any pending or failed updates.

- */

-public abstract boolean executeUndo( IProgressMonitor progressMonitor );

-/**

- * @return java.lang.Object

- */

-public java.lang.Object getData() {

-	return _objData;

-}

-/**

- * Returns the log entry associated with this session object.

- * @return org.eclipse.update.internal.core.ILogEntry

- */

-public ILogEntry getLogEntry() {

-	return _logEntry;

-}

-/**

- *

- * @return java.lang.String

- */

-public String getStatus() {

-

-	return _propertyStatus.getValue();

-}

-/**

- * @param strb java.lang.StringBuffer

- * @param iIndentation int

- */

-public abstract void getStatusString(StringBuffer strb, int iIndentation);

-/**

- * Increments the value of the number of attempts

- */

-public void incrementAttemptCount() {

-

-	int iAttempts = 0;

-

-	try {

-		iAttempts = new Integer(_propertyAttempts.getValue()).intValue();

-	}

-	catch (Exception ex) {

-	}

-

-	_propertyAttempts.setValue( Integer.toString( ++iAttempts ) );

-}

-/**

- * @param strb java.lang.StringBuffer

- * @param iIndentation int

- */

-public void indent(StringBuffer strb, int iIndentation) {

-

-	// Line feed

-	//----------

-	strb.append( "\n" );

-

-	// Indentation spaces

-	//-------------------

-	for( int i=0; i<iIndentation; ++i ){

-		strb.append( " " );

-	}

-}

-/**

- */

-public void resetAttemptCount() {

-	_propertyAttempts.setValue( UpdateManagerConstants.STRING_0 );

-}

-/**

- * Stores IManifestDescriptor

- * @param newData java.lang.Object

- */

-public void setData(java.lang.Object objData) {

-	_objData = objData;

-}

-/**

- * Every entry has a status property.

- * @return java.lang.String

- * @param status java.lang.String

- */

-public void setStatus(String strStatus) {

-

-	_propertyStatus.setValue( strStatus != null ? strStatus : UpdateManagerConstants.STRING_EMPTY );

-}

-}

diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionManagerMessage.java b/update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionManagerMessage.java
deleted file mode 100644
index 3a9c9b9..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionManagerMessage.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package org.eclipse.update.internal.core;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.core.internal.boot.update.*;

-import java.util.Date;

-

-/**

- * This class represents a failure message and consists of a timestamp and text.

- *

- */

-

-public class UMSessionManagerMessage {

-	protected ILogEntry _logEntry = null;

-	protected ILogEntryProperty _propertyTimestamp = null;

-	protected ILogEntryProperty _propertyText      = null;

-/**

- *

- * @param logEntry org.eclipse.update.internal.core.ILogEntry

- */

-public UMSessionManagerMessage(ILogEntry logEntry) {

-

-	_logEntry = logEntry;

-	

-	// Text

-	//-----

-	_propertyText = _logEntry.getProperty(UpdateManagerConstants.STRING_TEXT);

-

-	if (_propertyText == null) {

-		_propertyText = new LogEntryProperty(logEntry, UpdateManagerConstants.STRING_TEXT, UpdateManagerConstants.STRING_EMPTY );

-		logEntry.addProperty( _propertyText );

-	}

-

-	// Timestamp

-	//----------

-	_propertyTimestamp = _logEntry.getProperty(UpdateManagerConstants.STRING_TIMESTAMP);

-

-	if (_propertyTimestamp == null) {

-		_propertyTimestamp = new LogEntryProperty(logEntry, UpdateManagerConstants.STRING_TIMESTAMP, new Date().toString() );

-		logEntry.addProperty( _propertyTimestamp );

-	}

-}

-/**

- * @param logEntry org.eclipse.update.internal.core.LogEntry

- */

-public void buildTreeFromLog(ILogEntry logEntry) {

-		

-	// Text

-	//-----

-	ILogEntryProperty property = _logEntry.getProperty(UpdateManagerConstants.STRING_TEXT);

-

-	if (property != null) {

-		_propertyText = property;

-	}

-

-	// Source

-	//-------

-	property = _logEntry.getProperty(UpdateManagerConstants.STRING_TIMESTAMP);

-

-	if (property != null) {

-		_propertyTimestamp = property;

-	}

-}

-/**

- * @return java.lang.String

- */

-public String getText() {

-	

-	return _propertyText.getValue();

-}

-/**

- *

- */

-public void setText( String strID ) {

-	_propertyText.setValue( strID != null ? strID : UpdateManagerConstants.STRING_EMPTY );

-}

-}

diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionManagerOperation.java b/update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionManagerOperation.java
deleted file mode 100644
index f6aadd5..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionManagerOperation.java
+++ /dev/null
@@ -1,1189 +0,0 @@
-package org.eclipse.update.internal.core;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.webdav.http.client.Response;

-import java.util.jar.*;

-import org.eclipse.core.runtime.IProgressMonitor;

-import org.eclipse.core.internal.boot.LaunchInfo;

-import org.eclipse.update.internal.ui.*;

-import org.eclipse.core.internal.boot.update.*;

-import java.io.*;

-import java.net.*;

-import java.util.*;

-

-/**

- * This class represents an operation such as "copy" or "unzip".

- * Attributes are id, status (pending/complete), action,

- * source, target.  Children are messages.

- */

-

-public class UMSessionManagerOperation extends UMSessionManagerEntry {

-		

-	protected ArrayList         _alMessages     = new ArrayList();

-	protected ILogEntryProperty _propertyAction = null;

-	protected ILogEntryProperty _propertyID     = null;

-	protected ILogEntryProperty _propertySource = null;

-	protected ILogEntryProperty _propertyTarget = null;

-/**

- * UpdateManagerOperation constructor comment.

- */

-public UMSessionManagerOperation( ILogEntry logEntry ) {

-	super( logEntry );

-

-	// Action

-	//-------

-	_propertyAction = _logEntry.getProperty(UpdateManagerConstants.STRING_ACTION);

-

-	if (_propertyAction == null) {

-		_propertyAction = new LogEntryProperty(logEntry, UpdateManagerConstants.STRING_ACTION, UpdateManagerConstants.STRING_EMPTY );

-		logEntry.addProperty( _propertyAction );

-	}

-

-	// Id

-	//---

-	_propertyID = _logEntry.getProperty(UpdateManagerConstants.STRING_ID);

-

-	if (_propertyID == null) {

-		_propertyID = new LogEntryProperty(logEntry, UpdateManagerConstants.STRING_ID, UpdateManagerConstants.STRING_EMPTY );

-		logEntry.addProperty( _propertyID );

-	}

-

-	// Source

-	//-------

-	_propertySource = _logEntry.getProperty(UpdateManagerConstants.STRING_SOURCE);

-

-	if (_propertySource == null) {

-		_propertySource = new LogEntryProperty(logEntry, UpdateManagerConstants.STRING_SOURCE, UpdateManagerConstants.STRING_EMPTY );

-		logEntry.addProperty( _propertySource );

-	}

-

-	// Target

-	//-------

-	_propertyTarget = _logEntry.getProperty(UpdateManagerConstants.STRING_TARGET);

-

-	if (_propertyTarget == null) {

-		_propertyTarget = new LogEntryProperty(logEntry, UpdateManagerConstants.STRING_TARGET, UpdateManagerConstants.STRING_EMPTY );

-		logEntry.addProperty( _propertyTarget);

-	}

-}

-/**

- * @param logEntry org.eclipse.update.internal.core.LogEntry

- */

-public void buildTreeFromLog(ILogEntry logEntry) {

-	

-	super.buildTreeFromLog( logEntry );

-	

-	// Action

-	//-------

-	ILogEntryProperty property = _logEntry.getProperty(UpdateManagerConstants.STRING_ACTION);

-

-	if (property != null) {

-		_propertyAction = property;

-	}

-	

-

-	// Id

-	//---

-	property = _logEntry.getProperty(UpdateManagerConstants.STRING_ID);

-

-	if (property != null) {

-		_propertyID = property;

-	}

-

-	// Source

-	//-------

-	property = _logEntry.getProperty(UpdateManagerConstants.STRING_SOURCE);

-

-	if (property != null) {

-		_propertySource = property;

-	}

-

-	// Target

-	//-------

-	property = _logEntry.getProperty(UpdateManagerConstants.STRING_TARGET);

-

-	if (property != null) {

-		_propertyTarget = property;

-	}

-

-

-	ILogEntry[] entries = logEntry.getChildEntries();

-

-	// Messages

-	//---------

-	int iIndex = 0;

-	UMSessionManagerMessage message = null;

-	

-	for( int i = 0; i < entries.length; ++i) {

-		if (entries[i] != null && entries[i].getName().equals(UpdateManagerConstants.STRING_MESSAGE) == true) {

-			message = new UMSessionManagerMessage( entries[i] );			

-	        _alMessages.add( message );

-

-	        message.buildTreeFromLog( entries[i] );

-		}

-	}

-}

-/**

- * Copies all data from input stream to output stream.

- * @param inputStream java.io.InputStream

- * @param outputStream java.io.OutputStream

- */

-public String copyStream(InputStream streamInput, OutputStream streamOutput, long lContentLength, String strTaskName, IProgressMonitor progressMonitor, boolean bSubtask) {

-

-	String strErrorMessage = null;

-

-	// Allocate buffer

-	//---------------- 

-	byte[] byteArray = null;

-

-	if (streamInput != null && streamOutput != null) {

-		byteArray = new byte[64000];

-	}

-

-	if (byteArray != null) {

-

-		// Copy

-		//-----

-		if (progressMonitor != null) {

-			if (bSubtask == false) {

-				if (lContentLength > 0 && lContentLength < Integer.MAX_VALUE)

-					progressMonitor.beginTask(UpdateManagerStrings.getString("S_Copy") + ": " +strTaskName, (int) lContentLength);

-				else

-					progressMonitor.beginTask(UpdateManagerStrings.getString("S_Copy") + ": "  + strTaskName, IProgressMonitor.UNKNOWN);

-			}

-			else {

-				progressMonitor.subTask(UpdateManagerStrings.getString("S_Copy") + ": "  + strTaskName);

-			}

-		}

-

-		int iBytesReceived = 0;

-

-		do {

-			// Read

-			//-----

-			try {

-				iBytesReceived = streamInput.read(byteArray);

-			}

-			catch (Exception ex) {

-				iBytesReceived = 0;

-				strErrorMessage = UpdateManagerStrings.getString("S_Error_reading_from_input_stream") + ": " + ex.getMessage();

-			}

-

-			// Write

-			//------

-			if (iBytesReceived > 0) {

-				try {

-					streamOutput.write(byteArray, 0, iBytesReceived);

-

-					if (progressMonitor != null && bSubtask == false)

-						progressMonitor.worked(iBytesReceived);

-				}

-				catch (IOException ex) {

-					iBytesReceived = 0;

-					strErrorMessage = UpdateManagerStrings.getString("S_Error_writing_to_output_stream") + ": " + ex.getMessage();

-				}

-			}

-		}

-		while (iBytesReceived > 0);

-

-		if (progressMonitor != null && bSubtask == false) {

-			progressMonitor.done();

-		}

-	}

-

-	return strErrorMessage;

-}

-/**

- *

- * @return org.eclipse.update.internal.core.UMSessionManagerMessage

- * @param actionType java.lang.String

- */

-public UMSessionManagerMessage createMessage() {

-

-	// Create a new log entry

-	//-----------------------

-	ILogEntry logEntryChild = new LogEntry( _logEntry, UpdateManagerConstants.STRING_MESSAGE );

-	_logEntry.addChildEntry( logEntryChild );

-

-	// Create the operation object

-	//----------------------------

-	UMSessionManagerMessage message = new UMSessionManagerMessage( logEntryChild );

-	

-	message.buildTreeFromLog( logEntryChild );

-	

-	_alMessages.add( message );

-	

-	return message;

-}

-/**

- *

- * 

- */

-public boolean doCopy(IProgressMonitor progressMonitor) {

-

-	String strErrorMessage = null;

-

-	// Input URL

-	//----------

-	URL urlInput = null;

-

-	try {

-		urlInput = new URL(getSource());

-	}

-	catch (MalformedURLException ex) {

-		strErrorMessage = createMessageString(UpdateManagerStrings.getString("S_Source_URL_is_malformed"), ex);

-	}

-

-	URL urlOutput = null;

-

-	// Output URL

-	//-----------

-	try {

-		urlOutput = new URL(getTarget());

-	}

-	catch (MalformedURLException ex) {

-		strErrorMessage = createMessageString(UpdateManagerStrings.getString("S_Target_URL_is_malformed"), ex);

-	}

-

-	// Input

-	//-------

-	InputStream streamInput = null;

-

-	long lContentLength = 0;

-

-	if (urlInput != null && urlOutput != null) {

-

-		// Input stream

-		//-------------

-		try {

-			URLHandler.Response response = (URLHandler.Response)URLHandler.open(urlInput);

-			lContentLength = response.getContentLength();

-			if( response.getResponseCode() == HttpURLConnection.HTTP_OK )

-				streamInput = response.getInputStream();

-		}

-		catch (IOException ex) {

-			strErrorMessage = createMessageString(UpdateManagerStrings.getString("S_Unable_to_obtain_source_input_stream"), ex);

-		}

-

-	}

-

-	// Output

-	//-------

-	OutputStream streamOutput = null;

-

-	if (streamInput != null) {

-

-		// Output connection

-		//------------------

-		URLConnection urlConnectionOutput = null;

-		

-		try {

-			urlConnectionOutput = urlOutput.openConnection();

-			urlConnectionOutput.setDoOutput(true);

-		}

-		catch (IOException ex) {

-			strErrorMessage = createMessageString( UpdateManagerStrings.getString("S_Unable_to_connect"), ex );

-		}

-

-		// Output stream

-		//--------------

-		if (urlConnectionOutput != null) {

-			try {

-				streamOutput = urlConnectionOutput.getOutputStream();

-			}

-			catch (IOException ex) {

-				strErrorMessage = createMessageString( UpdateManagerStrings.getString("S_Unable_to_obtain_target_output_stream"), ex );

-			}

-		}

-

-		// Attempt to create a file output stream

-		// This is used when protocol is file: or valoader:

-		// thus our local writes are all file I/O currently

-		//-------------------------------------------------

-		if (streamOutput == null) {

-	        try

-	        {

-		 		streamOutput = getFileOutputStream(urlOutput);

-	        }

-	        catch( IOException ex){

-				strErrorMessage = createMessageString( UpdateManagerStrings.getString("S_Unable_to_create_file"), ex );

-			}

-		}

-	}

-

-	if( streamInput != null && streamOutput != null )

-	{

-	    strErrorMessage = copyStream( streamInput, streamOutput, lContentLength, urlInput.toExternalForm(), progressMonitor, false );

-	}    

-

-	// Close input stream

-	//-------------------

-	if (streamInput != null) {

-		try {

-			streamInput.close();

-		}

-		catch (IOException ex) {

-		}

-	}

-

-	// Close output stream

-	//--------------------

-	if (streamOutput != null) {

-		try {

-			streamOutput.flush();

-			streamOutput.close();

-		}

-		catch (IOException ex) {

-			strErrorMessage = createMessageString( UpdateManagerStrings.getString("S_Error_closing_output_stream"), ex );

-		}

-	}

-	

-	// Increment the number of attempts

-	//---------------------------------

-	incrementAttemptCount();

-

-	// Error return

-	//-------------

-	if (strErrorMessage != null) {

-		UMSessionManagerMessage message = createMessage();

-		message.setText(strErrorMessage);

-		setStatus(UpdateManagerConstants.STATUS_FAILED);

-		return false;

-	}

-

-	// Successful return

-	//------------------

-	setStatus(UpdateManagerConstants.STATUS_SUCCEEDED);

-

-	return true;

-}

-/**

- *

- * 

- */

-public boolean doUnzip(IProgressMonitor progressMonitor) {

-

-	String strErrorMessage = null;

-	int rc = UpdateManagerConstants.UNDEFINED_CONTENTS;

-

-	// Input URL

-	//----------

-	URL urlInput = null;

-	try {

-		urlInput = new URL(getSource());

-	}

-	catch (MalformedURLException ex) {

-		strErrorMessage = createMessageString(UpdateManagerStrings.getString("S_Source_URL_is_malformed"), ex);

-	}

-

-	// Output URL

-	//-----------

-	URL urlOutput = null;

-	try {

-		urlOutput = new URL(getTarget());

-	}

-	catch (MalformedURLException ex) {

-		strErrorMessage = createMessageString(UpdateManagerStrings.getString("S_Target_URL_is_malformed"), ex);

-	}

-

-	// For unzipping plugins or component/configuration jar, 

-	// set up the list of directories to look for, also call

-	// LaunchInfo.installPending

-	//-----------------------------------------------------

-	Vector dirNames = new Vector();

-	Vector dirNamesInstalled = new Vector();// keep track of plugins/fragments unzipped

-	Vector dirNamesUnexpected = new Vector();	// keep track of unexpected plugins/fragments dir

-	ArrayList productVIDs = new ArrayList();

-	ArrayList componentVIDs = new ArrayList();

-	ArrayList pluginVIDs = new ArrayList();

-	ArrayList fragmentVIDs = new ArrayList();

-

-	if (getAction() == UpdateManagerConstants.OPERATION_UNZIP_PLUGINS ) {

-		IComponentDescriptor comp = null;

-		if (getData() instanceof IComponentEntryDescriptor) {

-			comp = ((IComponentEntryDescriptor) getData()).getComponentDescriptor();

-		} else {

-			comp = (IComponentDescriptor) getData();

-		}

-		if (comp != null) {

-			IPluginEntryDescriptor[] plugins = comp.getPluginEntries();

-			for (int i=0; i<plugins.length; i++) {

-				dirNames.addElement( UMEclipseTree.PLUGINS_DIR + "/" + plugins[i].getDirName());

-				pluginVIDs.add(new LaunchInfo.VersionedIdentifier(plugins[i].getUniqueIdentifier(), plugins[i].getVersionStr()));

-			}

-			IFragmentEntryDescriptor[] fragments = comp.getFragmentEntries();

-			for (int i=0; i<fragments.length; i++) {

-				dirNames.addElement( UMEclipseTree.FRAGMENTS_DIR + "/" + fragments[i].getDirName());	

-				fragmentVIDs.add(new LaunchInfo.VersionedIdentifier(plugins[i].getUniqueIdentifier(), plugins[i].getVersionStr()));

-			}

-		} else {

-			strErrorMessage = UpdateManagerStrings.getString("S_Error_in_registry");

-		}

-	} else if (getAction() == UpdateManagerConstants.OPERATION_UNZIP_INSTALL) {

-		rc = UpdateManagerConstants.INSTALL_XML_MISSING;

-		if (getData() instanceof IProductDescriptor) {

-			IProductDescriptor desc = (IProductDescriptor) getData();

-			dirNames.addElement(UMEclipseTree.INSTALL_DIR + "/" + UMEclipseTree.PRODUCTS_DIR + "/" + desc.getDirName());

-			productVIDs.add(new LaunchInfo.VersionedIdentifier(desc.getUniqueIdentifier(), desc.getVersionStr()));

-		} else { 

-			IComponentDescriptor desc = null;

-			if (getData() instanceof IComponentEntryDescriptor) {

-				desc = ((IComponentEntryDescriptor) getData()).getComponentDescriptor();

-			} else {

-				desc = (IComponentDescriptor) getData();

-			}

-			dirNames.addElement(UMEclipseTree.INSTALL_DIR + "/" + UMEclipseTree.COMPONENTS_DIR + "/" + desc.getDirName());

-			componentVIDs.add(new LaunchInfo.VersionedIdentifier(desc.getUniqueIdentifier(), desc.getVersionStr()));

-		}

-	}

-	if (!LaunchInfo.getCurrent().installPending(productVIDs, componentVIDs, pluginVIDs, fragmentVIDs)) {

-		strErrorMessage = UpdateManagerStrings.getString("S_Error_occurred_during_installation_setup");

-	}

-	

-	

-	// Create a file specification from the input URL

-	//-----------------------------------------------

-	String strFilespec = UMEclipseTree.getFileInPlatformString(urlInput);

-

-	JarFile jarFile = null;

-

-	try {

-		jarFile = new JarFile(strFilespec);

-	}

-	catch (IOException ex) {

-		strErrorMessage = createMessageString(UpdateManagerStrings.getString("S_Unable_to_open_Jar_file"), ex);

-	}

-

-	if ((jarFile != null) && (strErrorMessage == null)) {

-

-		JarEntry entry = null;

-		InputStream streamInputEntry = null;

-

-		int iCount = jarFile.size();

-		

-		// Set up progress monitor

-		// Compute the filename without the path information

-		//--------------------------------------------------

-		String strFilename = strFilespec;

-		int iIndex = strFilespec.lastIndexOf(File.separatorChar);

-		

-		if (iIndex >= 0 && iIndex < strFilespec.length() - 1) {

-			strFilename = strFilespec.substring(iIndex + 1);

-		}

-

-		if (progressMonitor != null) {

-			progressMonitor.beginTask(UpdateManagerStrings.getString("S_Install") + ": " + strFilename, iCount);

-		}

-

-

-		// Do each jar file entry

-		//-----------------------

-		Enumeration enum = jarFile.entries();

-		while (enum.hasMoreElements() == true) {

-			entry = (JarEntry) enum.nextElement();

-			String entryName = entry.getName();

-			

-			if (getAction() == UpdateManagerConstants.OPERATION_UNZIP_PLUGINS ) {

-				// Unzip plugins and fragments.  Skip entries not under plugins/  or fragments/ trees

-				//-----------------------------------------------------------------------------------

-				if ((!entryName.startsWith(UMEclipseTree.PLUGINS_DIR) &&

-					!entryName.startsWith(UMEclipseTree.FRAGMENTS_DIR)) 

-					|| entryName.endsWith("/")) {

-					if (progressMonitor != null) progressMonitor.worked(1);

-					continue;

-				}

-				String prefix = entryName;

-				int second_slash = entryName.indexOf("/", (entryName.indexOf("/")+1));

-				if (second_slash > 0) 

-					prefix = entryName.substring(0,second_slash);

-				int match = dirNames.indexOf(prefix);

-				if (match < 0) {   // not a valid plugin

-					if (!dirNamesUnexpected.contains(prefix))

-						dirNamesUnexpected.addElement(prefix);

-					continue;

-				}

-				// got an entry with matching directory 

-				// keep track of which ones they are

-				if (!dirNamesInstalled.contains(prefix))

-					dirNamesInstalled.addElement(prefix);

-			} else if (getAction() == UpdateManagerConstants.OPERATION_UNZIP_INSTALL) {

-				// Skip over entries that don't start with the right dir naming convention (id_version)

-				//-------------------------------------------------------------------------------------

-				if (!entryName.startsWith((String)dirNames.firstElement()) || entryName.endsWith("/")) {

-					if (progressMonitor != null) progressMonitor.worked(1);

-					continue;

-				}

-				// got an entry - as long as we have install.xml we're happy

-				if (entryName.equals((String)dirNames.firstElement()+"/"+IManifestAttributes.INSTALL_MANIFEST))

-					rc = UpdateManagerConstants.OK;

-			} else if (getAction() == UpdateManagerConstants.OPERATION_UNZIP_BINDIR) {

-				// Unzip the bin directory, if it exists

-				//--------------------------------------

-				if (!entryName.startsWith(UMEclipseTree.BIN_DIR) || entryName.endsWith("/")) {

-					if (progressMonitor != null) progressMonitor.worked(1);

-					continue;

-				}

-				// got bin dir

-				rc = UpdateManagerConstants.OK;

-			}

-			try {

-				streamInputEntry = jarFile.getInputStream(entry);

-			}

-			catch (IOException ex) {

-				streamInputEntry = null;

-				strErrorMessage = createMessageString(UpdateManagerStrings.getString("S_Unable_to_open_jar_entry_input_stream"), ex);

-				break;

-			}

-			catch (SecurityException ex) {

-				streamInputEntry = null;

-				strErrorMessage = createMessageString(UpdateManagerStrings.getString("S_Encountered_jar_entry_security_exception"), ex);

-				break;

-			}

-

-

-			// Create an output URL

-			//---------------------

-			URL urlOutputFile = null;

-

-			if (streamInputEntry != null) {

-				try {

-					// Ensure file separator between target directory, and source file path

-					//---------------------------------------------------------------------

-					StringBuffer strbTarget = new StringBuffer(getTarget());

-					if (getTarget().endsWith("/") == false) {

-						strbTarget.append('/');

-					}

-					strbTarget.append(entryName);

-					urlOutputFile = new URL(strbTarget.toString());

-					File fTarget = new File(UMEclipseTree.getFileInPlatformString(urlOutputFile));

-					if (fTarget.exists() &&

-						(getAction() != UpdateManagerConstants.OPERATION_UNZIP_BINDIR)) {		

-						// we will not override existing files, except in bin/

-						if (progressMonitor != null) progressMonitor.worked(1);

-						continue;

-					}

-				}

-				catch (MalformedURLException ex) {

-					strErrorMessage = createMessageString(UpdateManagerStrings.getString("S_Unable_to_create_jar_entry_URL"), ex);

-					break;

-				}

-			}

-

-

-			// Create a file output stream

-			//----------------------------

-			OutputStream streamOutputFile = null;

-

-			if (urlOutputFile != null) {

-				try {

-					streamOutputFile = getFileOutputStream(urlOutputFile);

-				}

-				catch (IOException ex) {

-					strErrorMessage = createMessageString(UpdateManagerStrings.getString("S_Unable_to_create_output_file_for_Jar_entry") + ": " + urlOutputFile.toExternalForm(), ex);

-					break;

-				}

-			}

-

-			// Copy from input to output stream

-			//---------------------------------

-			if (streamInputEntry != null && streamOutputFile != null) {

-

-	            // Do not alter progress monitor

-	            //------------------------------

-				strErrorMessage = copyStream(streamInputEntry, streamOutputFile, 0, entryName, null, true );

-				if (strErrorMessage != null) {

-					break;

-				}

-			}

-			try {

-				if (streamInputEntry != null) 	streamInputEntry.close();

-				if (streamOutputFile != null) 	streamOutputFile.close();

-			} catch (java.io.IOException ex) {

-				// unchecked

-			}

-			if (progressMonitor != null) progressMonitor.worked(1);

-		}	// while

-//		strErrorMessage = "Error Injected!";

-		try {

-			jarFile.close();

-		} catch (java.io.IOException ex) {

-			// unchecked

-		}		

-	}	// if jarFile is not null

-

-	// tally up what's unzipped and what's not

-	//---------------------------------

-	if (strErrorMessage == null) {

-		if (getAction() == UpdateManagerConstants.OPERATION_UNZIP_PLUGINS ) {

-			if (dirNamesUnexpected.size() > 0) {

-				rc = UpdateManagerConstants.UNDEFINED_CONTENTS;

-				strErrorMessage = UpdateManagerStrings.getString("S_Undefined_contents_found_in_Jar");

-			}

-			else if (!dirNamesInstalled.containsAll(dirNames)) {

-				rc = UpdateManagerConstants.MISSING_CONTENTS;

-				strErrorMessage = UpdateManagerStrings.getString("S_Unable_to_find_defined_contents_in_Jar");

-			} 

-		} else if (getAction() == UpdateManagerConstants.OPERATION_UNZIP_INSTALL) {

-			if (rc != UpdateManagerConstants.OK)

-				strErrorMessage = UpdateManagerStrings.getString("S_Unable_to_find_install_manifest_file_in_Jar");

-		}

-	}		

-	

-	// Call LaunchInfo.installConfirmed if all clean

-	// Otherwise, call after we've cleaned up (undo*)

-	//-----------------------------------------------

-	if (strErrorMessage == null) {

-		if (!LaunchInfo.getCurrent().installConfirmed(productVIDs, componentVIDs, pluginVIDs, fragmentVIDs)) {

-			strErrorMessage = UpdateManagerStrings.getString("S_Error_occurred_during_installation_completion");

-		}

-	}

-	

-	if (progressMonitor != null) progressMonitor.done();

-

-	// Increment the number of attempts

-	//---------------------------------

-	incrementAttemptCount();

-

-	// Error return

-	//-------------

-	if (strErrorMessage != null) {

-		UMSessionManagerMessage message = createMessage();

-		message.setText(strErrorMessage);

-		setStatus(UpdateManagerConstants.STATUS_FAILED);

-		return false;

-	}

-

-	// Successful return

-	//------------------

-	setStatus(UpdateManagerConstants.STATUS_SUCCEEDED);

-

-	return true;

-}

-/**

- *

- * 

- */

-public boolean doVerify(IProgressMonitor progressMonitor) {

-

-	String strErrorMessage = null;

-

-	// Input URL

-	//----------

-	URL urlInput = null;

-

-	try {

-		urlInput = new URL(getSource());

-	}

-	catch (MalformedURLException ex) {

-		strErrorMessage = createMessageString(UpdateManagerStrings.getString("S_Source_URL_is_malformed"), ex);

-	}

-

-	IInstallable installable = (IInstallable) getData();

-

-	String strName = installable.getLabel();

-	String strId = null;

-	String strProviderName = null;

-

-	if (installable instanceof IProductDescriptor) {

-		strId = ((IProductDescriptor) installable).getUniqueIdentifier();

-		strProviderName = ((IProductDescriptor) installable).getProviderName();

-	}

-	else if (installable instanceof IComponentDescriptor) {

-		strId = ((IComponentDescriptor) installable).getUniqueIdentifier();

-		strProviderName = ((IComponentDescriptor) installable).getProviderName();

-	}

-	else if (installable instanceof IComponentEntryDescriptor) {

-		strId = ((IComponentEntryDescriptor) installable).getUniqueIdentifier();

-	}

-	else if (installable instanceof IPluginEntryDescriptor) {

-		strId = ((IPluginEntryDescriptor) installable).getUniqueIdentifier();

-	}

-	else if (installable instanceof IFragmentEntryDescriptor) {

-		strId = ((IFragmentEntryDescriptor) installable).getUniqueIdentifier();

-	}

-

-	JarVerificationService verifier = UpdateManager.getCurrentInstance().getJarVerifier();

-

-	JarVerificationResult result = verifier.okToInstall(new File(urlInput.getFile()), strId, strName, strProviderName, progressMonitor);

-

-	if (result.getResultCode() == JarVerificationResult.CANCEL_INSTALL) {

-		Exception ex = result.getResultException();

-		strErrorMessage = createMessageString(UpdateManagerStrings.getString("S_Installation_cancelled_by_user"), ex);

-	}

-

-	// Increment the number of attempts

-	//---------------------------------

-	incrementAttemptCount();

-

-	// Error return

-	//-------------

-	if (strErrorMessage != null) {

-		UMSessionManagerMessage message = createMessage();

-		message.setText(strErrorMessage);

-		setStatus(UpdateManagerConstants.STATUS_FAILED);

-		return false;

-	}

-

-	// Successful return

-	//------------------

-	setStatus(UpdateManagerConstants.STATUS_SUCCEEDED);

-

-	return true;

-}

-/**

- * Execute copy from source URL to target URL.

- */

-public boolean execute(IProgressMonitor progressMonitor) {

-

-	if (getAction() == UpdateManagerConstants.OPERATION_UNZIP_INSTALL ||

-		getAction() == UpdateManagerConstants.OPERATION_UNZIP_PLUGINS ||

-		getAction() == UpdateManagerConstants.OPERATION_UNZIP_BINDIR) {

-		return doUnzip(progressMonitor);

-	}

-	

-	else if (getAction() == UpdateManagerConstants.OPERATION_COPY) {

-		return doCopy(progressMonitor);

-	}

-	else if (getAction() == UpdateManagerConstants.OPERATION_VERIFY_JAR) {

-		return doVerify(progressMonitor);

-	}

-	return false;

-}

-/**

- * Execute any pending or failed updates.

- */

-public boolean executeUndo(IProgressMonitor progressMonitor) {

-

-	// Undo all successful and failed operations

-	//------------------------------------------

-	if (getStatus().equals(UpdateManagerConstants.STATUS_PENDING) == false) {

-		if (getAction() == UpdateManagerConstants.OPERATION_UNZIP_INSTALL ||

-			getAction() == UpdateManagerConstants.OPERATION_UNZIP_PLUGINS) {

-			return undoUnzip(progressMonitor);

-		}

-		else if (getAction() == UpdateManagerConstants.OPERATION_COPY) {

-			return undoCopy(progressMonitor);

-		}

-		else if (getAction() == UpdateManagerConstants.OPERATION_VERIFY_JAR){

-			return undoVerify(progressMonitor);

-		}

-	}

-

-	return true;

-}

-/**

- * 

- * @return java.lang.String

- */

-public String getAction() {

-	

-	return _propertyAction.getValue();

-}

-/**

- * Creates a file output stream from the URL.

- * @param url java.net.URL

- */

-private FileOutputStream getFileOutputStream(URL url) throws IOException {

-

-	// Convert the URL to a string

-	//----------------------------

-	String strFilespec = UMEclipseTree.getFileInPlatformString(url);

-

-

-	// Create directory structure

-	//---------------------------

-	int iIndex = strFilespec.lastIndexOf(File.separator);

-	if (iIndex >= 0) {

-		String strPath = strFilespec.substring(0, iIndex+1);

-

-		File fileDirectory = new File(strPath);

-		if (fileDirectory.exists() == false) {

-			fileDirectory.mkdirs();

-		}

-	}

-

-	// Open / create the file

-	//-----------------------

-	File file = new File(strFilespec);

-	boolean bExists = file.exists();

-

-	if (bExists == false) {

-		bExists = file.createNewFile();

-	}

-

-	// Create the output stream

-	//-------------------------

-	return new FileOutputStream(file);

-}

-/**

- * @return java.lang.String

- */

-public String getId() {

-	

-	return _propertyID.getValue();

-}

-/**

- *

- * @return java.lang.String

- */

-public String getSource() {

-	

-	return _propertySource.getValue();

-}

-/**

- * @param strb java.lang.StringBuffer

- * @param iIndentation int

- */

-public void getStatusString(java.lang.StringBuffer strb, int iIndentation) {

-

-	if (getStatus().equals(UpdateManagerConstants.STATUS_SUCCEEDED) == true) {

-		return;

-	}

-	else if (getStatus().equals(UpdateManagerConstants.STATUS_PENDING) == true) {

-		return;

-	}

-

-	else {

-		if (getAction().equals(UpdateManagerConstants.OPERATION_COPY) == true) {

-			indent(strb, iIndentation);

-			strb.append(UpdateManagerStrings.getString("S_Copy") + ": " + getSource());

-		}

-		else if (getAction().equals(UpdateManagerConstants.OPERATION_UNZIP_INSTALL) ||

-				getAction().equals(UpdateManagerConstants.OPERATION_UNZIP_PLUGINS) == true) {

-			indent(strb, iIndentation);

-			strb.append(UpdateManagerStrings.getString("S_Install") + ": " + getSource());

-		}

-

-		// Obtain messages

-		//----------------

-		for (int i = 0; i < _alMessages.size(); ++i) {

-			indent(strb, iIndentation + 2);

-			strb.append(((UMSessionManagerMessage) _alMessages.get(i)).getText());

-		}

-	}

-}

-/**

- *

- * @return java.lang.String

- */

-public String getTarget() {

-	

-	return _propertyTarget.getValue();

-}

-/**

- *

- * @param actionType java.lang.String

- */

-public void setAction(String strAction) {

-	_propertyAction.setValue( strAction != null ? strAction : UpdateManagerConstants.STRING_EMPTY );

-}

-/**

- *

- */

-public void setId( String strID ) {

-	_propertyID.setValue( strID != null ? strID : UpdateManagerConstants.STRING_EMPTY );

-}

-/**

- *

- */

-public void setSource( String strSource ) {

-	_propertySource.setValue( strSource != null ? strSource : UpdateManagerConstants.STRING_EMPTY );

-}

-/**

- *

- */

-public void setTarget( String strTarget ) {

-	_propertyTarget.setValue( strTarget != null ? strTarget : UpdateManagerConstants.STRING_EMPTY );

-}

-/**

- *

- * 

- */

-public boolean undoCopy(IProgressMonitor progressMonitor) {

-

-	String strErrorMessage = null;

-

-	// Output URL

-	//-----------

-	URL urlOutput = null;

-

-	try {

-		urlOutput = new URL(getTarget());

-	}

-	catch (MalformedURLException ex) {

-		strErrorMessage = createMessageString(UpdateManagerStrings.getString("S_Target_URL_is_malformed"), ex);

-	}

-

-	if (urlOutput != null) {

-

-		// Convert the URL to a string

-		//----------------------------

-		String strFilespec = UMEclipseTree.getFileInPlatformString(urlOutput);

-

-		// Delete the file

-		//----------------

-		File file = new File(strFilespec);

-		if (file.exists() == true) {

-			if (file.delete() == false) {

-				strErrorMessage = UpdateManagerStrings.getString("S_Unable_to_delete_file") + ": " + strFilespec;

-			}

-		}

-	}

-

-	// Reset the number of attempts

-	//-----------------------------

-	resetAttemptCount();

-

-	// Error return

-	//-------------

-	if (strErrorMessage != null) {

-		if (getStatus().equals(UpdateManagerConstants.STATUS_SUCCEEDED) == true)

-			setStatus(UpdateManagerConstants.STATUS_SUCCEEDED_UNDO_FAILED);

-		else

-			setStatus(UpdateManagerConstants.STATUS_FAILED_UNDO_FAILED);

-

-		return false;

-	}

-

-	// Successful return

-	//------------------

-	if (getStatus().equals(UpdateManagerConstants.STATUS_SUCCEEDED) == true)

-		setStatus(UpdateManagerConstants.STATUS_SUCCEEDED_UNDO_SUCCEEDED);

-	else

-		setStatus(UpdateManagerConstants.STATUS_FAILED_UNDO_SUCCEEDED);

-

-	return true;

-}

-/**

- *

- * 

- */

-public boolean undoUnzip(IProgressMonitor progressMonitor) {

-

-	String strErrorMessage = null;

-

-	// Input URL

-	//----------

-	URL urlInput = null;

-	try {

-		urlInput = new URL(getSource());

-	}

-	catch (MalformedURLException ex) {

-		strErrorMessage = createMessageString(UpdateManagerStrings.getString("S_Source_URL_is_malformed"), ex);

-	}

-

-	// Output URL

-	//-----------

-	URL urlOutput = null;

-	try {

-		urlOutput = new URL(getTarget());

-	}

-	catch (MalformedURLException ex) {

-		strErrorMessage = createMessageString(UpdateManagerStrings.getString("S_Target_URL_is_malformed"), ex);

-	}

-

-	// For plugins or component/configuration jar, 

-	// set up the list of directories to look for

-	// This section contains subtle differences from doUnzip()

-	//--------------------------------------------------------

-	Vector dirNames = new Vector();

-	ArrayList productVIDs = new ArrayList();

-	ArrayList componentVIDs = new ArrayList();

-	ArrayList pluginVIDs = new ArrayList();

-	ArrayList fragmentVIDs = new ArrayList();

-	if (getAction() == UpdateManagerConstants.OPERATION_UNZIP_PLUGINS ) {

-		IComponentDescriptor comp = null;

-		if (getData() instanceof IComponentEntryDescriptor) {

-			comp = ((IComponentEntryDescriptor) getData()).getComponentDescriptor();

-		} else {

-			comp = (IComponentDescriptor) getData();

-		}

-		if (comp != null) {

-			IPluginEntryDescriptor[] plugins = comp.getPluginEntries();

-			for (int i=0; i<plugins.length; i++) {

-				dirNames.addElement( UMEclipseTree.PLUGINS_DIR + "/" + plugins[i].getDirName());

-				pluginVIDs.add(new LaunchInfo.VersionedIdentifier(plugins[i].getUniqueIdentifier(), plugins[i].getVersionStr()));

-			}

-			IFragmentEntryDescriptor[] fragments = comp.getFragmentEntries();

-			for (int i=0; i<fragments.length; i++) {

-				dirNames.addElement( UMEclipseTree.FRAGMENTS_DIR + "/" + fragments[i].getDirName());	

-				fragmentVIDs.add(new LaunchInfo.VersionedIdentifier(plugins[i].getUniqueIdentifier(), plugins[i].getVersionStr()));

-			}

-		} else {

-			strErrorMessage = UpdateManagerStrings.getString("S_Error_in_registry");

-		}

-	} else if (getAction() == UpdateManagerConstants.OPERATION_UNZIP_INSTALL) {

-		// rc = UpdateManagerConstants.INSTALL_XML_MISSING;

-		if (getData() instanceof IProductDescriptor) {

-			IProductDescriptor desc = (IProductDescriptor) getData();

-			dirNames.addElement(UMEclipseTree.INSTALL_DIR + "/" + UMEclipseTree.PRODUCTS_DIR + "/" + desc.getDirName() + "/");

-			productVIDs.add(new LaunchInfo.VersionedIdentifier(desc.getUniqueIdentifier(), desc.getVersionStr()));

-		} else { 

-			IComponentDescriptor desc = (IComponentDescriptor) getData();

-			dirNames.addElement(UMEclipseTree.INSTALL_DIR + "/" + UMEclipseTree.COMPONENTS_DIR + "/" + desc.getDirName() + "/");

-			componentVIDs.add(new LaunchInfo.VersionedIdentifier(desc.getUniqueIdentifier(), desc.getVersionStr()));

-		}

-	}

-

-		

-	// Create a file specification from the input URL

-	//-----------------------------------------------

-	String strFilespec = UMEclipseTree.getFileInPlatformString(urlInput);

-

-	JarFile jarFile = null;

-	

-	try {

-		jarFile = new JarFile(strFilespec);

-	}

-	catch (IOException ex) {

-		strErrorMessage = createMessageString(UpdateManagerStrings.getString("S_Unable_to_open_Jar_file"), ex);

-	}

-

-	if (jarFile != null) {

-

-		JarEntry entry = null;

-

-		int iCount = jarFile.size();

-

-		// Set up progress monitor

-		// Compute the filename without the path information

-		//--------------------------------------------------

-		String strFilename = strFilespec;

-		int iIndex = strFilespec.lastIndexOf(File.separatorChar);

-		

-		if (iIndex >= 0 && iIndex < strFilespec.length() - 1) {

-			strFilename = strFilespec.substring(iIndex + 1);

-		}

-		

-		if (progressMonitor != null) progressMonitor.beginTask(UpdateManagerStrings.getString("S_Undo") + ": " + strFilename, iCount);

-

-		// Do each jar file entry

-		//-----------------------

-		Enumeration enum = jarFile.entries();

-

-		while (enum.hasMoreElements() == true) {

-			entry = (JarEntry) enum.nextElement();

-			String entryName = entry.getName();

-			

-			if (getAction().equals(UpdateManagerConstants.OPERATION_UNZIP_PLUGINS)) {

-				// Remove the plugins and fragments.  Skip entries not under plugins/ or fragments/ trees

-				//----------------------------------------------------------------------------------------

-				if ((!entryName.startsWith(UMEclipseTree.PLUGINS_DIR)) &&

-					(!entryName.startsWith(UMEclipseTree.FRAGMENTS_DIR))) {

-					if (progressMonitor != null) progressMonitor.worked(1);

-					continue;

-				}												

-				if ((entryName.equals(UMEclipseTree.PLUGINS_DIR + "/")) ||

-					(entryName.equals(UMEclipseTree.FRAGMENTS_DIR + "/"))) {

-					if (progressMonitor != null) progressMonitor.worked(1);

-					continue;

-				}

-				// Don't bother cleaning up the entries not matching the expected list

-				// They weren't unzipped in the first place

-				//--------------------------------------------------------------------

-				String prefix = entryName;

-				int second_slash = entryName.indexOf("/", (entryName.indexOf("/")+1));

-				if (second_slash > 0) 

-					prefix = entryName.substring(0,second_slash);

-				int match = dirNames.indexOf(prefix);

-				if (match < 0) {   // not a valid plugin

-					continue;

-				}

-			} else if (getAction().equals(UpdateManagerConstants.OPERATION_UNZIP_INSTALL)) {

-				// Remove the component/product items.  Skip over entries that don't match the dirname

-				//------------------------------------------------------------------------------------

-				if (!entryName.startsWith((String)dirNames.firstElement())) {

-					if (progressMonitor != null) progressMonitor.worked(1);

-					continue;

-				}

-			} else if (getAction().equals(UpdateManagerConstants.OPERATION_UNZIP_BINDIR)) {

-				// No-op.   The bin directory contents cannot be undone

-				//-----------------------------------------------------

-				break;

-			}

-

-			if (urlOutput != null) {

-				// Build pathname to actual install location

-				//------------------------------------------

-				strFilespec = urlOutput.getFile() + "/" + entryName;

-				strFilespec = strFilespec.replace('/',File.separatorChar);

-				int k = strFilespec.indexOf(UMEclipseTree.DEVICE_SEPARATOR);

-				if (k != -1 && strFilespec.startsWith(File.separator)) {

-					strFilespec = strFilespec.substring(1);

-				}

-

-				// Delete the file or directory

-				//-----------------------------

-				File file = new File(strFilespec);

-				if (file.exists() == true) {

-					if (file.isDirectory())

-						UpdateManager.cleanupDirectory(file);

-					if (file.delete() == false) {

-						strErrorMessage = UpdateManagerStrings.getString("S_Unable_to_delete_file") + ": " + strFilespec;

-					}

-				}

-			}

-		if (progressMonitor != null) progressMonitor.worked(1);		

-		} // while

-

-		try {

-			jarFile.close();

-		} catch (java.io.IOException ex) {

-			// unchecked

-		}

-	} // if jarFile is not null

-

-	// Call LaunchInfo.installConfirmed if all clean

-	//-----------------------------------------------

-	if (strErrorMessage == null) {

-		if (!LaunchInfo.getCurrent().installConfirmed(productVIDs, componentVIDs, pluginVIDs, fragmentVIDs)) {

-			strErrorMessage = UpdateManagerStrings.getString("S_Error_occurred_during_installation_completion");

-		}

-	}

-	

-	if (progressMonitor != null) progressMonitor.done();

-	

-	// Reset the number of attempts

-	//-----------------------------

-	resetAttemptCount();

-

-	// Error return

-	//-------------

-	if (strErrorMessage != null) {

-		if (getStatus().equals(UpdateManagerConstants.STATUS_SUCCEEDED) == true)

-			setStatus(UpdateManagerConstants.STATUS_SUCCEEDED_UNDO_FAILED);

-		else

-			setStatus(UpdateManagerConstants.STATUS_FAILED_UNDO_FAILED);

-

-		return false;

-	}

-

-	// Successful return

-	//------------------

-	if (getStatus().equals(UpdateManagerConstants.STATUS_SUCCEEDED) == true)

-		setStatus(UpdateManagerConstants.STATUS_SUCCEEDED_UNDO_SUCCEEDED);

-	else

-		setStatus(UpdateManagerConstants.STATUS_FAILED_UNDO_SUCCEEDED);

-

-	return true;

-}

-/**

- *

- * 

- */

-public boolean undoVerify(IProgressMonitor progressMonitor) {

-	

-	resetAttemptCount();

-	

-	if (getStatus().equals(UpdateManagerConstants.STATUS_SUCCEEDED) == true)

-		setStatus(UpdateManagerConstants.STATUS_SUCCEEDED_UNDO_SUCCEEDED);

-	else

-		setStatus(UpdateManagerConstants.STATUS_FAILED_UNDO_SUCCEEDED);

-

-	return true;

-}

-}

diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionManagerParcel.java b/update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionManagerParcel.java
deleted file mode 100644
index b0c7d97..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionManagerParcel.java
+++ /dev/null
@@ -1,327 +0,0 @@
-package org.eclipse.update.internal.core;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.core.runtime.IProgressMonitor;

-import org.eclipse.core.internal.boot.update.*;

-import java.util.*;

-

-/**

- * This class represents either a component or a product.  A parcel can

- * have sub parcels, and copy objects.  Attributes are action (add, fix), id, status (pending, complete),

- * type (component / product).

- */

-

-public class UMSessionManagerParcel extends UMSessionManagerEntry {

-	

-	protected ArrayList _alParcels = new ArrayList();

-	protected ArrayList _alOperations   = new ArrayList();

-	

-	protected ILogEntryProperty _propertyAction = null;

-	protected ILogEntryProperty _propertyID     = null;

-	protected ILogEntryProperty _propertyType   = null;

-/**

- * UpdateManagerParcel constructor comment.

- */

-public UMSessionManagerParcel( ILogEntry logEntry ) {

-	super( logEntry );

-

-	// Action

-	//-------

-	_propertyAction = _logEntry.getProperty(UpdateManagerConstants.STRING_ACTION);

-

-	if (_propertyAction == null) {

-		_propertyAction = new LogEntryProperty(logEntry, UpdateManagerConstants.STRING_ACTION, UpdateManagerConstants.STRING_EMPTY );

-		logEntry.addProperty( _propertyAction );

-	}

-

-	// Id

-	//---

-	_propertyID = _logEntry.getProperty(UpdateManagerConstants.STRING_ID);

-

-	if (_propertyID == null) {

-		_propertyID = new LogEntryProperty(logEntry, UpdateManagerConstants.STRING_ID, UpdateManagerConstants.STRING_EMPTY );

-		logEntry.addProperty( _propertyID );

-	}

-

-	// Type

-	//-----

-	_propertyType = _logEntry.getProperty(UpdateManagerConstants.STRING_TYPE);

-

-	if (_propertyType == null) {

-		_propertyType = new LogEntryProperty(logEntry, UpdateManagerConstants.STRING_TYPE, UpdateManagerConstants.STRING_EMPTY );

-		logEntry.addProperty( _propertyType );

-	}

-}

-/**

- * @param logEntry org.eclipse.update.internal.core.LogEntry

- */

-public void buildTreeFromLog(ILogEntry logEntry) {

-

-	super.buildTreeFromLog( logEntry );

-	

-	// Action

-	//-------

-	ILogEntryProperty property = _logEntry.getProperty(UpdateManagerConstants.STRING_ACTION);

-

-	if (property != null) {

-		_propertyAction = property;

-	}

-

-	// Id

-	//---

-	property = _logEntry.getProperty(UpdateManagerConstants.STRING_ID);

-

-	if (property != null) {

-		_propertyID = property;

-	}

-

-	// Type  

-	//-----

-	property = _logEntry.getProperty(UpdateManagerConstants.STRING_TYPE);

-

-	if (property != null) {

-		_propertyType = property;

-	}

-		

-	ILogEntry[] entries = logEntry.getChildEntries();

-

-	// Parcels

-	//--------	

-	int iIndex = 0;

-	UMSessionManagerParcel parcel = null;

-	

-	for( int i = 0; i < entries.length; ++i) {

-		if (entries[i] != null && entries[i].getName().equals(UpdateManagerConstants.STRING_PARCEL) == true) {

-			parcel = new UMSessionManagerParcel( entries[i] );			

-	        _alParcels.add( parcel );

-

-	        parcel.buildTreeFromLog( entries[i] );

-		}

-	}

-

-	// Operations

-	//-----------

-	iIndex = 0;

-	UMSessionManagerOperation operation = null;

-	

-	for( int i = 0; i < entries.length; ++i) {

-		if (entries[i] != null && entries[i].getName().equals(UpdateManagerConstants.STRING_OPERATION) == true) {

-			operation = new UMSessionManagerOperation( entries[i] );			

-	        _alOperations.add( operation );

-

-	        operation.buildTreeFromLog( entries[i] );

-		}

-	}

-}

-/**

- * @return org.eclipse.update.internal.core.UMSessionManagerOperation

- * @param actionType java.lang.String

- */

-public UMSessionManagerOperation createOperation() {

-

-	// Create a new log entry

-	//-----------------------

-	ILogEntry logEntryChild = new LogEntry( _logEntry, UpdateManagerConstants.STRING_OPERATION );

-	_logEntry.addChildEntry( logEntryChild );

-

-	// Create the operation object

-	//----------------------------

-	UMSessionManagerOperation operation = new UMSessionManagerOperation( logEntryChild );

-	_alOperations.add( operation );

-	

-	return operation;

-}

-/**

- * Creates a sub-parcel

- * @return org.eclipse.update.internal.core.UpdateManagerParcel

- * @param actionType java.lang.String

- */

-public UMSessionManagerParcel createParcel() {

-

-	// Create a new log entry

-	//-----------------------

-	ILogEntry logEntryChild = new LogEntry( _logEntry, UpdateManagerConstants.STRING_PARCEL );

-	_logEntry.addChildEntry( logEntryChild );

-

-	// Create the parcel object

-	//-------------------------

-	UMSessionManagerParcel parcel = new UMSessionManagerParcel( logEntryChild );

-	_alParcels.add( parcel );

-	

-	return parcel;

-}

-/**

- * Execute any pending or failed updates.

- */

-public boolean execute(IProgressMonitor progressMonitor) {

-

-	// Stop if any failure occurs

-	//---------------------------

-	boolean bSuccess = true;

-

-	// Parcels may be sequential, do in forward order

-	//-----------------------------------------------

-	for (int i = 0; i < _alParcels.size(); ++i) {

-

-		if (((UMSessionManagerParcel) _alParcels.get(i)).execute(progressMonitor) == false) {

-			bSuccess = false;

-			break;

-		}

-	}

-

-	// Operations may be sequential, do in forward order

-	//--------------------------------------------------

-	if (bSuccess == true) {

-		for (int i = 0; i < _alOperations.size(); ++i) {

-

-			if (((UMSessionManagerOperation) _alOperations.get(i)).execute(progressMonitor) == false) {

-				bSuccess = false;

-				break;

-			}

-		}

-	}

-

-	// Status

-	//-------

-	setStatus(bSuccess == true ? UpdateManagerConstants.STATUS_SUCCEEDED : UpdateManagerConstants.STATUS_FAILED);

-

-	incrementAttemptCount();

-

-	return bSuccess;

-}

-/**

- * Execute any pending or failed updates.

- */

-public boolean executeUndo(org.eclipse.core.runtime.IProgressMonitor progressMonitor) {

-

-	// Undo only failed attempts

-	//--------------------------

-	if (getStatus().equals(UpdateManagerConstants.STATUS_FAILED) == false) {

-		return true;

-	}

-

-	// Attempt all even if failure occurs

-	//-----------------------------------	

-	boolean bSuccess = true;

-

-	// Parcels may be sequential, undo in reverse order

-	//-------------------------------------------------

-	for (int i = _alParcels.size() - 1; i >= 0; --i) {

-

-		if (((UMSessionManagerParcel) _alParcels.get(i)).executeUndo(progressMonitor) == false) {

-			bSuccess = false;

-		}

-	}

-

-	// Operations may be sequential, undo in reverse order

-	//----------------------------------------------------

-	for (int i = _alOperations.size() - 1; i >= 0; --i) {

-

-		if (((UMSessionManagerOperation) _alOperations.get(i)).executeUndo(progressMonitor) == false) {

-			bSuccess = false;

-		}

-	}

-

-	// Status

-	//-------

-	setStatus(bSuccess == true ? UpdateManagerConstants.STATUS_FAILED_UNDO_SUCCEEDED : UpdateManagerConstants.STATUS_FAILED_UNDO_FAILED);

-

-	resetAttemptCount();

-

-	return bSuccess;

-}

-/**

- * @return java.lang.String

- */

-public String getAction() {

-	

-	return _propertyAction.getValue();

-}

-/**

- * @return java.lang.String

- */

-public String getId() {

-	

-	return _propertyID.getValue();

-}

-/**

- * Returns all operations

- * @return org.eclipse.update.internal.core.UMSessionManagerOperation[]

- */

-public UMSessionManagerOperation[] getOperations() {

-

-	UMSessionManagerOperation[] operations = new UMSessionManagerOperation[_alOperations.size()];

-	return (UMSessionManagerOperation[])_alOperations.toArray( operations );

-}

-/**

- * Returns all sub-parcels

- * @return org.eclipse.update.internal.core.UpdateManagerParcel[]

- */

-public UMSessionManagerParcel[] getParcels() {

-

-	UMSessionManagerParcel[] parcels = new UMSessionManagerParcel[_alParcels.size()];

-	return (UMSessionManagerParcel[])_alParcels.toArray( parcels );

-}

-/**

- * @param strb java.lang.StringBuffer

- * @param iIndentation int

- */

-public void getStatusString(java.lang.StringBuffer strb, int iIndentation) {

-

-	if (getStatus().equals(UpdateManagerConstants.STATUS_SUCCEEDED) == true) {

-		return;

-	}

-

-	else {

-		// Parcel label

-		//-------------

-		IInstallable descriptor = (IInstallable) getData();

-

-		indent(strb, iIndentation);

-		strb.append( descriptor.getLabel());

-

-

-		// Parcels may be sequential, do in forward order

-		//-----------------------------------------------

-		for (int i = 0; i < _alParcels.size(); ++i) {

-

-			((UMSessionManagerParcel) _alParcels.get(i)).getStatusString(strb, iIndentation + 2);

-		}

-

-		// Operations may be sequential, do in forward order

-		//--------------------------------------------------

-		for (int i = 0; i < _alOperations.size(); ++i) {

-

-			((UMSessionManagerOperation) _alOperations.get(i)).getStatusString(strb, iIndentation + 2);

-		}

-	}

-}

-/**

- * @return java.lang.String

- */

-public String getType() {

-	

-	return _propertyType.getValue();

-}

-/**

- *

- */

-public void setAction( String strAction ) {

-	_propertyAction.setValue( strAction != null ? strAction : UpdateManagerConstants.STRING_EMPTY );

-}

-/**

- *

- */

-public void setId( String strID ) {

-	_propertyID.setValue( strID != null ? strID : UpdateManagerConstants.STRING_EMPTY );

-}

-/**

- *

- */

-public void setType( String strType ) {

-	_propertyType.setValue( strType != null ? strType : UpdateManagerConstants.STRING_EMPTY );

-}

-}

diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionManagerSession.java b/update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionManagerSession.java
deleted file mode 100644
index 369855a..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/core/UMSessionManagerSession.java
+++ /dev/null
@@ -1,207 +0,0 @@
-package org.eclipse.update.internal.core;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.core.runtime.IProgressMonitor;

-import org.eclipse.core.internal.boot.update.*;

-import java.util.Date;

-import java.util.*;

-

-/**

- * This class represents a session in which update manager operations are

- * executed.  This class contains parcel objects and has status and timestamp

- * as its attributes.  The timestamp attribute is automatically set when the session

- * is created for the first time.

- */

-

-public class UMSessionManagerSession extends UMSessionManagerEntry {

-	protected ArrayList _alParcels = new ArrayList();

-	protected ILogEntryProperty _propertyTimestamp = null;

-/**

- * UpdateManagerSession constructor comment.

- */

-public UMSessionManagerSession(ILogEntry logEntry) {

-	super( logEntry );

-

-	// Timestamp

-	//----------

-	_propertyTimestamp = _logEntry.getProperty(UpdateManagerConstants.STRING_TIMESTAMP);

-

-	if (_propertyTimestamp == null) {

-		_propertyTimestamp = new LogEntryProperty(logEntry, UpdateManagerConstants.STRING_TIMESTAMP, new Date().toString() );

-		logEntry.addProperty( _propertyTimestamp );

-	}

-}

-/**

- * @param logEntry org.eclipse.update.internal.core.LogEntry

- */

-public void buildTreeFromLog(ILogEntry logEntry) {

-	

-	super.buildTreeFromLog( logEntry );

-	

-	// Timestamp

-	//----------

-	ILogEntryProperty property = _logEntry.getProperty(UpdateManagerConstants.STRING_TIMESTAMP);

-

-	if (property != null) {

-		_propertyTimestamp = property;

-	}

-

-	

-	ILogEntry[] entries = logEntry.getChildEntries();

-	

-	// Parcels

-	//--------

-	int iIndex = 0;

-	UMSessionManagerParcel parcel = null;

-	

-	for( int i = 0; i < entries.length; ++i) {

-		if (entries[i] != null && entries[i].getName().equals(UpdateManagerConstants.STRING_PARCEL) == true) {

-			parcel = new UMSessionManagerParcel( entries[i] );			

-	        _alParcels.add( parcel );

-

-	        parcel.buildTreeFromLog( entries[i] );

-		}

-	}

-}

-/**

- *

- * @return org.eclipse.update.internal.core.UMTaskManagerParcel

- * @param actionType java.lang.String

- */

-public UMSessionManagerParcel createParcel() {

-

-	// Create a new log entry

-	//-----------------------

-	ILogEntry logEntryChild = new LogEntry( _logEntry, UpdateManagerConstants.STRING_PARCEL );

-	_logEntry.addChildEntry( logEntryChild );

-

-	// Create the copy object

-	//-----------------------

-	UMSessionManagerParcel parcel = new UMSessionManagerParcel( logEntryChild );

-	_alParcels.add( parcel );

-	

-	return parcel;

-}

-/**

- * Execute any pending or failed updates.

- */

-public boolean execute(IProgressMonitor progressMonitor) {

-

-	// Attempt all even if failure occurs

-	//-----------------------------------	

-	boolean bSuccess = true;

-

-	// Parcels may be sequential, do in forward order

-	//-----------------------------------------------

-	for (int i = 0; i < _alParcels.size(); ++i) {

-

-		if (((UMSessionManagerParcel) _alParcels.get(i)).execute(progressMonitor) == false) {

-			bSuccess = false;

-		}

-	}

-

-	// Status

-	//-------

-	setStatus(bSuccess == true ? UpdateManagerConstants.STATUS_SUCCEEDED : UpdateManagerConstants.STATUS_FAILED);

-

-	incrementAttemptCount();

-

-	return bSuccess;

-}

-/**

- * Execute any pending or failed updates.

- */

-public boolean executeUndo(org.eclipse.core.runtime.IProgressMonitor progressMonitor) {

-

-	// Undo only failed attempts

-	//--------------------------

-	if (getStatus().equals(UpdateManagerConstants.STATUS_FAILED) == false) {

-		return true;

-	}

-	

-	// Attempt all even if failure occurs

-	//-----------------------------------	

-	boolean bSuccess = true;

-

-	// Parcels may be sequential, undo in reverse order

-	//-------------------------------------------------

-	for (int i = _alParcels.size() - 1; i >= 0; --i) {

-

-		if (((UMSessionManagerParcel) _alParcels.get(i)).executeUndo(progressMonitor) == false) {

-			bSuccess = false;

-		}

-	}

-

-	// Status

-	//-------

-	setStatus(bSuccess == true ? UpdateManagerConstants.STATUS_FAILED_UNDO_SUCCEEDED : UpdateManagerConstants.STATUS_FAILED_UNDO_FAILED);

-

-	resetAttemptCount();

-	

-	return bSuccess;

-}

-/**

- * Returns all parcels

- * @return org.eclipse.update.internal.core.UMSessionManagerParcel[]

- */

-public UMSessionManagerParcel[] getParcels() {

-

-	UMSessionManagerParcel[] parcels = new UMSessionManagerParcel[_alParcels.size()];

-	return (UMSessionManagerParcel[])_alParcels.toArray( parcels );

-}

-/**

- * @return java.lang.String

- */

-public String getStatusString() {

-	

-	StringBuffer strb = new StringBuffer();

-

-	getStatusString( strb, 0 );

-	

-	return strb.toString();

-}

-/**

- * @param strb java.lang.StringBuffer

- * @param iIndentation int

- */

-public void getStatusString(java.lang.StringBuffer strb, int iIndentation) {

-

-	String strStatus = getStatus();

-

-	if (strStatus.equals(UpdateManagerConstants.STATUS_SUCCEEDED) == true) {

-		strb.append(UpdateManagerStrings.getString("S_Installations_have_completed_successfully"));

-		strb.append("\n");

-		strb.append(UpdateManagerStrings.getString("S_You_must_restart_the_workbench_to_activate_any_changes"));

-	}

-

-	else {

-		strb.append(UpdateManagerStrings.getString("S_An_installation_error_or_cancellation_has_occurred"));

-

-		// Parcels may be sequential, do in forward order

-		//-----------------------------------------------

-		for (int i = 0; i < _alParcels.size(); ++i) {

-

-			((UMSessionManagerParcel) _alParcels.get(i)).getStatusString(strb, 2);

-		}

-	}

-}

-/**

- * @return java.lang.String

- */

-public String getTimestamp() {

-	

-	return _propertyTimestamp.getValue();

-}

-/**

- * Returns whether this session is complete

- * @return boolean

- */

-public boolean isComplete() {

-

-	return _propertyStatus.getValue().equals(UpdateManagerConstants.STATUS_SUCCEEDED) ||

-		   _propertyStatus.getValue().equals(UpdateManagerConstants.STATUS_FAILED_UNDO_SUCCEEDED);

-}

-}

diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/core/URLHandler.java b/update/org.eclipse.update/src/org/eclipse/update/internal/core/URLHandler.java
deleted file mode 100644
index 50eed69..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/core/URLHandler.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package org.eclipse.update.internal.core;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.core.internal.boot.update.*;

-import org.eclipse.webdav.http.client.*;

-import org.eclipse.webdav.client.WebDAVFactory;

-import org.eclipse.webdav.Context;

-import java.io.*;

-import java.net.*;

-

-public class URLHandler extends BaseURLHandler {

-

-	private static HttpClient http = null;

-	private static WebDAVFactory factory = null;

-	

-	private static final String HTTP = "http";

-	

-	static class Response extends BaseURLHandler.Response {

-		private org.eclipse.webdav.http.client.Response r = null;

-		private Response(org.eclipse.webdav.http.client.Response r) {

-			this.r = r;

-		}

-		public InputStream getInputStream() throws IOException {

-			return r.getInputStream();

-		}

-		public long getContentLength() {

-			return r.getContentLength();

-		}

-		public int getResponseCode() {

-			return r.getStatusCode();

-		}

-		public String getResponseMessage() {

-			return r.getStatusMessage();

-		}

-	}

-

-private URLHandler() {}

-public static BaseURLHandler.Response open(URL url) throws IOException {

-

-	if (url==null) return null;

-

-	if (!url.getProtocol().equals(HTTP)) {

-		URLConnection c = url.openConnection();

-		Context ctx = factory.newContext();

-		int i = 1;

-		String name = null;

-		while ((name = c.getHeaderFieldKey(i)) != null) {

-			ctx.put(name.toLowerCase(), c.getHeaderField(i));

-			i++;

-		}	

-		InputStream is = c.getInputStream();	

-		return new Response(new org.eclipse.webdav.http.client.Response(UNKNOWN_STATUS,UNKNOWN_MSG,ctx,is));

-	}

-	else {

-		if (http==null) throw new IllegalStateException(UpdateManagerStrings.getString("S_HTTP_client_not_set"));	

-		Request request = new Request("GET", url, null);

-		return new Response(http.invoke(request));

-	}	

-}

-protected BaseURLHandler.Response openURL(URL url) throws IOException {

-	return URLHandler.open(url);

-}

-public static void setHttpClient(HttpClient c) {

-

-	if (http==null) {

-		http = c;

-		factory = new WebDAVFactory();

-

-		// setup this handler as the handler for boot portion of update manager

-		BaseURLHandler.setURLHandler(new URLHandler());

-	}

-}

-}

diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/core/UpdateManager.java b/update/org.eclipse.update/src/org/eclipse/update/internal/core/UpdateManager.java
deleted file mode 100644
index e456884..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/core/UpdateManager.java
+++ /dev/null
@@ -1,640 +0,0 @@
-package org.eclipse.update.internal.core;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.io.File;

-import java.net.MalformedURLException;

-import java.net.URL;

-import java.util.TreeSet;

-

-import org.eclipse.core.internal.boot.LaunchInfo;

-import org.eclipse.core.internal.boot.LaunchInfo.VersionedIdentifier;

-import org.eclipse.core.internal.boot.update.IComponentDescriptor;

-import org.eclipse.core.internal.boot.update.IComponentEntryDescriptor;

-import org.eclipse.core.internal.boot.update.IFragmentEntryDescriptor;

-import org.eclipse.core.internal.boot.update.IInstallable;

-import org.eclipse.core.internal.boot.update.IPluginEntryDescriptor;

-import org.eclipse.core.internal.boot.update.IProductDescriptor;

-import org.eclipse.core.internal.boot.update.IUMRegistry;

-import org.eclipse.core.internal.boot.update.IURLNamePair;

-import org.eclipse.core.internal.boot.update.LogStoreException;

-import org.eclipse.core.internal.boot.update.UMEclipseTree;

-import org.eclipse.core.internal.boot.update.UMRegistryManager;

-import org.eclipse.core.internal.boot.update.UpdateManagerConstants;

-import org.eclipse.core.runtime.IProgressMonitor;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.update.internal.ui.JarVerificationService;

-

-/**

- * Update Manager updates a workstation in one of three modes:

- * <ol>

- * <li>local</li>

- * <li>remote</li>

- * <li>remote cached</li>

- * </ol>

- * Usage:

- * <ol>

- * <li>Create an instance of this class</li>

- * <li>Set persistent properties as required</li>

- * <ul>

- * <li>mode</li>

- * <li>update log URL</li>

- * <li>history log URL</li>

- * </ul>

- * <li>Call the initialize function</li>

- * <li>Call the update function</li>

- * </ol>

- * Persistent properties are loaded before any are changed, and saved after any

- * are changed.

- */

-

-public class UpdateManager {

-

-	// Package name for this class

-	// Used by UpdateManagerStrings to obtain its resource bundle properties file

-	//---------------------------------------------------------------------------

-	public static final String _strPackageName = "org.eclipse.update.internal.core";

-	public static UpdateManager _updateManagerInstance = null;

-	

-	// Persistent properties

-	//----------------------

-	protected int    _iMode         = UpdateManagerConstants.MODE_LOCAL;

-	protected String _strUpdateLogURL  = null;

-	protected String _strHistoryLogURL = null;

-

-	// Instance state data

-	//--------------------

-	protected UMRegistryManager _registryManager = null;

-	protected UMSessionManager  _sessionManager  = null;

-	protected Shell             _shell           = null;

-	

-	protected JarVerificationService _jarVerifier = null;

-/**

- * Constructs an instance of this class, then initializes by loading its persistent properties

- */

-public UpdateManager() {

-}

-/**

- * Constructs an instance of this class, then initializes by loading its persistent properties

- */

-public UpdateManager( Shell shell ) {

-	_updateManagerInstance = this;

-	_shell = shell;

-}

-/**

- * Deletes all files in the staging area.

- */

-public void cleanup() {

-	String strStagingDirectory = UMEclipseTree.getFileInPlatformString(UMEclipseTree.getStagingArea());

-

-	File fileStagingDirectory = new File(strStagingDirectory);

-

-	if (fileStagingDirectory.exists() == true) {

-		File[] files = fileStagingDirectory.listFiles();

-		for (int i = 0; i < files.length; ++i) {

-			if (files[i].isDirectory() == true) {

-				cleanupDirectory(files[i]);

-			}

-			boolean bSuccessful = files[i].delete();

-			

-		}

-	}

-}

-/**

- */

-public static void cleanupDirectory(File fileDirectory) {

-

-	File[] files = fileDirectory.listFiles();

-	

-	for (int i = 0; i < files.length; ++i) {

-		if (files[i].isDirectory() == true) {

-			cleanupDirectory(files[i]);

-		}

-

-		boolean bSuccessful = files[i].delete();

-//		if (!bSuccessful)

-//			System.out.println("ooops!" + files[i]);

-	}

-}

-/**

- */

-public UMSessionManagerSession createSession(IInstallable[] descriptors, boolean bVerifyJars) throws UpdateManagerException {

-

-	// FOR NOW DO NOT DO JAR VERIFICATION

-	//-----------------------------------

-	bVerifyJars = false;

-

-	// Create a new update session

-	//----------------------------

-	UMSessionManagerSession session = _sessionManager.createUpdateSession();

-

-	// Create a definer that can define the operations required

-	//---------------------------------------------------------

-	ISessionDefiner sessionDefiner = new UMSessionDefinerReferenceUpdate();

-	

-	// Define a set of operations

-	//---------------------------

-	sessionDefiner.defineOperations(session, descriptors, bVerifyJars);

-

-	// Save the update log

-	//--------------------

-	try {

-		_sessionManager.saveUpdateLog();

-	}

-	catch (LogStoreException ex) {

-		throw new UpdateManagerException(ex.getMessage());

-	}

-

-	return session;

-}

-/**

- * Updates the local machine by:

- * <ol>

- * <li>defining the operations</li>

- * <li>downloading any new objects</li>

- * <li>applying any downloaded updates</li>

- * <li>displaying a progress monitor</li>

- * </ol>

- */

-public UMSessionManagerSession executeSession( UMSessionManagerSession session, IProgressMonitor progressMonitor ) throws UpdateManagerException {

-

-	// Throw any exception when complete

-	//----------------------------------

-	UpdateManagerException umException = null;

-	

-	// Execute the session

-	//--------------------

-	_sessionManager.executeSession( session, progressMonitor );

-

-	// Move successful sessions from update log to history log

-	//--------------------------------------------------------

-	try {

-		_sessionManager.updateAndSaveLogs();

-	}

-	catch (LogStoreException ex) {

-		if (umException != null) {

-			umException = new UpdateManagerException("S_Unable_to_save_update_logs");

-		}

-	}

-

-	// Throw any exceptions found

-	//---------------------------

-	if (umException != null) {

-		throw umException;

-	}

-

-	return session;

-}

-/**

- * Updates the local machine by:

- * <ol>

- * <li>defining the operations</li>

- * <li>downloading any new objects</li>

- * <li>applying any downloaded updates</li>

- * <li>displaying a progress monitor</li>

- * </ol>

- */

-public UMSessionManagerSession executeSessionUndo( UMSessionManagerSession session, IProgressMonitor progressMonitor ) throws UpdateManagerException {

-

-	// Throw any exception when complete

-	//----------------------------------

-	UpdateManagerException umException = null;

-	

-	// Execute the session

-	//--------------------

-	_sessionManager.executeSessionUndo( session, progressMonitor );

-

-	// Move successful sessions from update log to history log

-	//--------------------------------------------------------

-	try {

-		_sessionManager.updateAndSaveLogs();

-	}

-	catch (LogStoreException ex) {

-		if (umException != null) {

-			umException = new UpdateManagerException("S Unable to save update logs");

-		}

-	}

-

-	// Throw any exceptions found

-	//---------------------------

-	if (umException != null) {

-		throw umException;

-	}

-

-	return session;

-}

-/**

- */

-public static UpdateManager getCurrentInstance() {

-	return _updateManagerInstance;

-}

-/**

- * Takes a string with an Id + '_' + Version, and returns the Id.

- */

-private String getIdFromInfoString(String strInfo) {

-

-	String strId = null;

-

-	int iIndex = strInfo.lastIndexOf('_');

-	

-	if (iIndex >= 0) {

-		strId = strInfo.substring(0, iIndex);

-	}

-

-	else {

-		strId = strInfo;

-	}

-

-	return strId;

-}

-// return the jar verifier

-

-public JarVerificationService getJarVerifier() {

-	if (_jarVerifier == null)	

-		_jarVerifier = new JarVerificationService( _shell );

-	return _jarVerifier;

-}

-/**

- * Returns a list of components that require updating by:

- *<ol>

- *<li>Loading all product/component manifests from .install/tree </li>

- *<li>Determining which components require updating by:</li>

- *<ol>

- *<li>Collecting update URLs from each component</li>

- *<li>Collecting update URLs from products that components are a part of</li>

- *</ol>

- *<li>Determining what updates are available by:</li>

- *<ol>

- *<li>Accessing the update URL</li>

- *<li>Determining if the component is a newer version of the existing one</li>

- *</ol>

- *<li>

- *</ol>

- */

-public IURLNamePair[] getLocalDiscoveryURLs() {

-

-	IURLNamePair[] urlNPs = null;

-	

-	// Obtain the local registry

-	//--------------------------

-	IUMRegistry registry = _registryManager.getLocalRegistry();

-

-	// Create a list of all URLs

-	//--------------------------

-	TreeSet setURLs = new TreeSet( new UpdateManagerURLComparator() );

-

-	// Obtain a list of all installed components

-	//------------------------------------------

-	IComponentDescriptor[] componentDescriptors = registry.getComponentDescriptors();

-

-	// Obtain a list of discovery URLs

-	//--------------------------------

-	for (int i = 0; i < componentDescriptors.length; ++i) {

-		urlNPs = componentDescriptors[i].getDiscoveryURLs();

-

-		for (int j = 0; j < urlNPs.length; ++j) {

-			setURLs.add(urlNPs[j]);

-		}

-	}

-

-	// Obtain a list of all installed products

-	//----------------------------------------

-	IProductDescriptor[] productDescriptors = registry.getProductDescriptors();

-

-	// Obtain a list of discovery URLs

-	//--------------------------------

-	for (int i = 0; i < productDescriptors.length; ++i) {

-		urlNPs = productDescriptors[i].getDiscoveryURLs();

-

-		for (int j = 0; j < urlNPs.length; ++j) {

-			setURLs.add(urlNPs[j]);

-		}

-	}

-

-	urlNPs = new IURLNamePair[ setURLs.size() ];

-	System.arraycopy(setURLs.toArray(), 0, urlNPs, 0, setURLs.size() );

-	

-	return urlNPs;

-}

-/**

- * Returns a list of components that require updating by:

- *<ol>

- *<li>Loading all product/component manifests from .install/tree </li>

- *<li>Determining which components require updating by:</li>

- *<ol>

- *<li>Collecting update URLs from each component</li>

- *<li>Collecting update URLs from products that components are a part of</li>

- *</ol>

- *<li>Determining what updates are available by:</li>

- *<ol>

- *<li>Accessing the update URL</li>

- *<li>Determining if the component is a newer version of the existing one</li>

- *</ol>

- *<li>

- *</ol>

- */

-public IURLNamePair[] getLocalUpdateURLs() {

-

-	IURLNamePair[] urlNPs = null;

-	

-	// Obtain the local registry

-	//--------------------------

-	IUMRegistry registry = _registryManager.getLocalRegistry();

-

-	// Create a list of all URLs

-	//--------------------------

-	TreeSet setURLs = new TreeSet( new UpdateManagerURLComparator() );

-

-	// Obtain a list of all installed components

-	//------------------------------------------

-	IComponentDescriptor[] componentDescriptors = registry.getComponentDescriptors();

-

-	// Obtain a list of discovery URLs

-	//--------------------------------

-	for (int i = 0; i < componentDescriptors.length; ++i) {

-		urlNPs = componentDescriptors[i].getUpdateURLs();

-

-		for (int j = 0; j < urlNPs.length; ++j) {

-			setURLs.add(urlNPs[j]);

-		}

-	}

-

-	// Obtain a list of all installed products

-	//----------------------------------------

-	IProductDescriptor[] productDescriptors = registry.getProductDescriptors();

-

-	// Obtain a list of discovery URLs

-	//--------------------------------

-	for (int i = 0; i < productDescriptors.length; ++i) {

-		urlNPs = productDescriptors[i].getUpdateURLs();

-

-		for (int j = 0; j < urlNPs.length; ++j) {

-			setURLs.add(urlNPs[j]);

-		}

-	}

-

-	urlNPs = new IURLNamePair[ setURLs.size() ];

-	System.arraycopy(setURLs.toArray(), 0, urlNPs, 0, setURLs.size() );

-	

-	return urlNPs;

-}

-// return the local (current) registry

-

-public IUMRegistry getRegistryAt(URL url) {

-	

-	return _registryManager.getRegistryAt( url );

-}

-/**

- */

-public UMRegistryManager getRegistryManager() {

-	return _registryManager;

-}

-/**

- * Initializes the update and history log URLs,creates a session manager,

- * and creates a registry manager.

- */

-public void initialize() throws UpdateManagerException{

-

-	// Obtain install URL

-	//-------------------

-	URL urlBase = UMEclipseTree.getBaseInstallURL();

-	String strUrlBase = urlBase.toExternalForm();

-	String strUrlInstall = strUrlBase + "install/";

-

-	String strUrlUpdateLog = strUrlInstall + "update.log";

-	String strUrlHistoryLog = strUrlInstall + "history.log";

-

-	setUpdateLogURL(strUrlUpdateLog);

-	setHistoryLogURL(strUrlHistoryLog);

-

-	// Create a session manager

-	//-------------------------

-	try {

-		_sessionManager = new UMSessionManager(new URL(_strUpdateLogURL), new URL(_strHistoryLogURL), true);

-	}

-	catch (MalformedURLException ex) {

-		throw new UpdateManagerException("Invalid log URL specification");

-	}

-	catch (LogStoreException ex) {

-		throw new UpdateManagerException(ex.getMessage());

-	}

-

-	// Registry Manager

-	//-----------------

-	_registryManager = new UMRegistryManager(urlBase);

-}

-/**

- * 

- */

-public void removeComponent(IComponentDescriptor componentDescriptor) {

-	removeComponent(componentDescriptor, null);

-}

-/**

- * 

- */

-public void removeComponent(IComponentDescriptor componentDescriptor, IProductDescriptor productDescriptor) {

-

-	if( componentDescriptor == null )

-		return;

-		

-	LaunchInfo launchInfo = LaunchInfo.getCurrent();

-	LaunchInfo.VersionedIdentifier vid = null;

-

-	// Plugins

-	//--------

-	IPluginEntryDescriptor[] pluginEntries = componentDescriptor.getPluginEntries();

-

-	for (int i = 0; i < pluginEntries.length; ++i) {

-		vid = new LaunchInfo.VersionedIdentifier(pluginEntries[i].getUniqueIdentifier(), pluginEntries[i].getVersionStr());

-		launchInfo.removePlugin(vid);

-	}

-

-	// Fragments

-	//----------

-	IFragmentEntryDescriptor[] fragmentEntries = componentDescriptor.getFragmentEntries();

-

-	for (int i = 0; i < fragmentEntries.length; ++i) {

-		vid = new LaunchInfo.VersionedIdentifier(fragmentEntries[i].getUniqueIdentifier(), pluginEntries[i].getVersionStr());

-		launchInfo.removeFragment(vid);

-	}

-

-	// Component

-	//----------

-	vid = new LaunchInfo.VersionedIdentifier(componentDescriptor.getUniqueIdentifier(), componentDescriptor.getVersionStr());

-	launchInfo.removeComponent(vid);

-	_registryManager.removeComponentDescriptorFromLocal(componentDescriptor, productDescriptor);

-	

-	return;

-}

-/**

- * 

- */

-public void removeProduct(IProductDescriptor productDescriptor) {

-

-	if( productDescriptor == null )

-		return;

-		

-	// Components

-	//-----------

-	IComponentEntryDescriptor[] componentEntries = productDescriptor.getComponentEntries();

-

-	for (int i = 0; i < componentEntries.length; ++i) {

-		IComponentDescriptor componentDescriptor = componentEntries[i].getComponentDescriptor();

-		if (componentDescriptor.isRemovable(productDescriptor))

-			removeComponent(componentDescriptor, productDescriptor);

-	}

-

-	// Product

-	//--------

-	LaunchInfo.VersionedIdentifier vid = new LaunchInfo.VersionedIdentifier(productDescriptor.getUniqueIdentifier(), productDescriptor.getVersionStr());

-	LaunchInfo.getCurrent().removeConfiguration(vid);

-	_registryManager.removeProductDescriptorFromLocal(productDescriptor);

-}

-/**

- * Sets the URL for the history log.  This property is persistent.

- */

-public void setHistoryLogURL(String strURL) throws UpdateManagerException {

-

-	// Check for valid URL

-	//--------------------

-	try {

-		new URL(strURL);

-	}

-	catch (MalformedURLException ex) {

-		throw new UpdateManagerException("Invalid log URL specification");

-	}

-

-	// Change the property

-	//--------------------

-	_strHistoryLogURL = strURL;

-}

-/**

- * Sets the URL for the update log.  This property is persistent.

- */

-public void setUpdateLogURL(String strURL) throws UpdateManagerException {

-	

-	// Check for valid URL

-	//--------------------

-	try {

-		new URL(strURL);

-	}

-	catch (MalformedURLException ex) {

-		throw new UpdateManagerException("Invalid log URL specification");

-	}

-

-	// Change the property

-	//--------------------

-	_strUpdateLogURL = strURL;

-}

-/**

- * Updates the boot loader's launch information with what is currently installed.

- */

-public void updateLaunchInfoAndRegistry(UMSessionManagerSession session) {

-

-	// Update launch info even if this session had a failure

-	// One or more parcels could have succeeded

-	//------------------------------------------------------

-	if (session != null) {

-		

-		LaunchInfo launchInfo = LaunchInfo.getCurrent();

-

-		// Obtain product/component information

-		//-------------------------------------

-		UMSessionManagerParcel[] parcels = session.getParcels();

-

-		for (int i = 0; i < parcels.length; ++i) {

-			updateLaunchInfoAndRegistryParcel( parcels[i], launchInfo );

-		}

-	}

-}

-/**

- * Recursively updates the boot loader's information for this parcel and sub-parcels.

- */

-protected void updateLaunchInfoAndRegistryParcel(UMSessionManagerParcel parcel, LaunchInfo launchInfo) {

-

-	// Update the profile only if the install was successful

-	//------------------------------------------------------

-	if (parcel != null && parcel.getStatus().equals(UpdateManagerConstants.STATUS_SUCCEEDED) == true) {

-

-		Object objData = parcel.getData();

-

-		// Product

-		//--------

-		if (objData instanceof IProductDescriptor) {

-			updateLaunchInfoProduct((IProductDescriptor) objData, launchInfo);

-			_registryManager.addProductDescriptorToLocal((IProductDescriptor) objData);

-		}

-

-		// Component

-		//----------

-		else if (objData instanceof IComponentDescriptor) {

-			updateLaunchInfoComponent((IComponentDescriptor) objData, launchInfo);

-			_registryManager.addComponentDescriptorToLocal((IComponentDescriptor) objData, true);

-		}

-			

-		// Component Entry

-		//----------------

-		else if (objData instanceof IComponentEntryDescriptor) {

-			IComponentDescriptor comp = ((IComponentEntryDescriptor)objData).getComponentDescriptor();

-			updateLaunchInfoComponent(comp, launchInfo);

-			_registryManager.addComponentDescriptorToLocal(comp, false);

-		}

-

-		// Do child parcels

-		//-----------------

-		UMSessionManagerParcel[] parcelChildren = parcel.getParcels();

-

-		for (int i = 0; i < parcelChildren.length; ++i) {

-			updateLaunchInfoAndRegistryParcel(parcelChildren[i], launchInfo);

-		}

-	}

-}

-/**

- * Updates the boot loader's launch information with what is currently installed.

- */

-public void updateLaunchInfoComponent(IComponentDescriptor descriptor, LaunchInfo launchInfo) {

-

-	// Component

-	//----------

-	launchInfo.setComponent(new LaunchInfo.VersionedIdentifier(descriptor.getUniqueIdentifier(), descriptor.getVersionStr()));

-

-	// Plugins

-	//--------

-	IPluginEntryDescriptor[] pluginDescriptors = descriptor.getPluginEntries();

-

-	for (int i = 0; i < pluginDescriptors.length; ++i) {

-		updateLaunchInfoPlugin(pluginDescriptors[i], launchInfo);

-	}

-

-	// Fragments

-	//----------

-	IFragmentEntryDescriptor[] fragmentDescriptors = descriptor.getFragmentEntries();

-

-	for (int i = 0; i < fragmentDescriptors.length; ++i) {

-		updateLaunchInfoFragment(fragmentDescriptors[i], launchInfo);

-	}

-}

-/**

- * Updates the boot loader's launch information with what is currently installed.

- */

-public void updateLaunchInfoFragment(IFragmentEntryDescriptor descriptor, LaunchInfo launchInfo) {

-

-	launchInfo.setFragment(new LaunchInfo.VersionedIdentifier(descriptor.getUniqueIdentifier(),descriptor.getVersionStr()));

-}

-/**

- * Updates the boot loader's launch information with what is currently installed.

- */

-public void updateLaunchInfoPlugin(IPluginEntryDescriptor descriptor, LaunchInfo launchInfo) {

-

-	launchInfo.setPlugin(new LaunchInfo.VersionedIdentifier(descriptor.getUniqueIdentifier(),descriptor.getVersionStr()));

-}

-/**

- * Updates the boot loader's launch information with what is currently installed.

- */

-public void updateLaunchInfoProduct(IProductDescriptor descriptor, LaunchInfo launchInfo) {

-

-	launchInfo.setConfiguration(new LaunchInfo.VersionedIdentifier(descriptor.getUniqueIdentifier(),descriptor.getVersionStr()), descriptor.getApplication());

-}

-}

diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/core/UpdateManagerException.java b/update/org.eclipse.update/src/org/eclipse/update/internal/core/UpdateManagerException.java
deleted file mode 100644
index e25de36..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/core/UpdateManagerException.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.eclipse.update.internal.core;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-/**

- * 

- */

-public class UpdateManagerException  extends Exception {

-/**

- * UpdateManagerException constructor comment.

- */

-public UpdateManagerException( String strMessage ) {

-	super( strMessage );

-}

-}

diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/core/UpdateManagerPlugin.java b/update/org.eclipse.update/src/org/eclipse/update/internal/core/UpdateManagerPlugin.java
deleted file mode 100644
index e05d25d..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/core/UpdateManagerPlugin.java
+++ /dev/null
@@ -1,135 +0,0 @@
-package org.eclipse.update.internal.core;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.net.MalformedURLException;

-import java.net.URL;

-/**

- */

-import org.eclipse.core.runtime.*;

-import org.eclipse.update.internal.ui.*;

-import org.eclipse.jface.resource.ImageDescriptor;

-import org.eclipse.webdav.http.client.HttpClient;

-

-public class UpdateManagerPlugin extends Plugin {

-	private static UpdateManagerPlugin _pluginInstance = null;

-	private	HttpClient client =null;

-/**

- * UpdateManagerPlugin constructor comment.

- */

-public UpdateManagerPlugin( IPluginDescriptor pluginDescriptor ) {

-	super( pluginDescriptor );

-

-	_pluginInstance = this;

-}

-/**

- * Returns the image descriptor of an image file relative to this plugin

- * @return org.eclipse.jface.resource.ImageDescriptor

- * @param strImage java.lang.String

- */

-public static ImageDescriptor getImageDescriptor(String strImage) {

-

-	UpdateManagerPlugin plugin = getPluginInstance();

-

-	if (plugin != null) {

-

-		// Obtain my plugin descriptor

-		//----------------------------

-		IPluginDescriptor pluginDescriptor = plugin.getDescriptor();

-

-		// Determine where I am installed

-		//-------------------------------

-		URL path = pluginDescriptor.getInstallURL();

-

-		// Add the relative file location to the install location

-		// Create the image descriptor

-		//-------------------------------------------------------

-		URL urlFullPathString = null;

-

-		try {

-			urlFullPathString = new URL(path, strImage);

-			return ImageDescriptor.createFromURL(urlFullPathString);

-		}

-

-		catch (MalformedURLException e) {

-		}

-	}

-	return null;

-}

-/**

- * @return org.eclipse.update.internal.core.UpdateManagerPlugin

- */

-public static UpdateManagerPlugin getPluginInstance() {

-	return _pluginInstance;

-}

-/**

- * Shuts down this plug-in and discards all plug-in state.

- * <p>

- * This method should be re-implemented in subclasses that need to do something

- * when the plug-in is shut down.  Implementors should call the inherited method

- * to ensure that any system requirements can be met.

- * </p>

- * <p>

- * Plug-in shutdown code should be robust. In particular, this method

- * should always make an effort to shut down the plug-in. Furthermore,

- * the code should not assume that the plug-in was started successfully,

- * as this method will be invoked in the event of a failure during startup.

- * </p>

- * <p>

- * Note 1: If a plug-in has been started, this method will be automatically

- * invoked by the platform when the platform is shut down.

- * </p>

- * <p>

- * Note 2: This method is intended to perform simple termination

- * of the plug-in environment. The platform may terminate invocations

- * that do not complete in a timely fashion.

- * </p>

- * <b>Cliens must never explicitly call this method.</b>

- *

- * @exception CoreException if this method fails to shut down

- *   this plug-in 

- */

-public void shutdown() throws CoreException {

-	if(client!=null) client.close(); 

-}

-/**

- * Starts up this plug-in.

- * <p>

- * This method should be overridden in subclasses that need to do something

- * when this plug-in is started.  Implementors should call the inherited method

- * to ensure that any system requirements can be met.

- * </p>

- * <p>

- * If this method throws an exception, it is taken as an indication that

- * plug-in initialization has failed; as a result, the plug-in will not

- * be activated; moreover, the plug-in will be marked as disabled and 

- * ineligible for activation for the duration.

- * </p>

- * <p>

- * Plug-in startup code should be robust. In the event of a startup failure,

- * the plug-in's <code>shutdown</code> method will be invoked automatically,

- * in an attempt to close open files, etc.

- * </p>

- * <p>

- * Note 1: This method is automatically invoked by the platform 

- * the first time any code in the plug-in is executed.

- * </p>

- * <p>

- * Note 2: This method is intended to perform simple initialization 

- * of the plug-in environment. The platform may terminate initializers 

- * that do not complete in a timely fashion.

- * </p>

- * <b>Cliens must never explicitly call this method.</b>

- *

- * @exception CoreException if this plug-in did not start up properly

- */

-public void startup() throws CoreException {

-	// Setup HTTP client

-	//------------------

-	client = new HttpClient();

-	client.setAuthenticator(new AuthorizationDatabase());

-	URLHandler.setHttpClient(client);

-}

-}

diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/core/UpdateManagerStrings.java b/update/org.eclipse.update/src/org/eclipse/update/internal/core/UpdateManagerStrings.java
deleted file mode 100644
index 21b7ecd..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/core/UpdateManagerStrings.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package org.eclipse.update.internal.core;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-/**

- * This class loads translatable strings from a resource bundle properties file.

- */

-import java.util.ResourceBundle;

-import java.util.MissingResourceException;

-

-public class UpdateManagerStrings

-{

-	private static ResourceBundle _resourceBundle = null;

-/**

- * Obtains a NL translated string from a resource bundle

- * @param strKey java.lang.String

- */

-public static String getString( String strKey ) 

-{

-	String strTranslated = strKey;

-

-	// Obtain the set of translated strings

-	//-------------------------------------

-	if( _resourceBundle == null )

-	{

-		try

-		{

-			_resourceBundle = ResourceBundle.getBundle( UpdateManager._strPackageName + ".updatemanagerstrings" );

-		}

-		catch( MissingResourceException ex )

-		{

-			_resourceBundle = null;

-		}

-	}

-

-	// Obtain the translated string

-	//-----------------------------

-	if( _resourceBundle != null )

-	{

-		try

-		{

-			strTranslated = _resourceBundle.getString( strKey );

-		}

-		catch( MissingResourceException ex )

-		{

-			strTranslated = strKey;

-		}

-	}

-

-	return strTranslated;

-}

-}

diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/core/UpdateManagerURLComparator.java b/update/org.eclipse.update/src/org/eclipse/update/internal/core/UpdateManagerURLComparator.java
deleted file mode 100644
index ede4744..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/core/UpdateManagerURLComparator.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.eclipse.update.internal.core;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.core.internal.boot.update.*;

-import java.net.*;

-/**

- * 

- */

-import java.util.Comparator;

-public class UpdateManagerURLComparator implements Comparator{

-/**

- * UpdateManagerTreeItemComparator constructor comment.

- */

-public UpdateManagerURLComparator() {

-	super();

-}

-/**

- * Compares two strings independent of case.

- * 

- * @return a negative integer, zero, or a positive integer as the

- *         first argument is less than, equal to, or greater than the

- *         second. 

- * @throws ClassCastException if the arguments' types prevent them from

- *         being compared by this Comparator.

- */

-public int compare(java.lang.Object o1, java.lang.Object o2) {

-

-	if (o1 instanceof URLNamePair && o2 instanceof URLNamePair) {

-		return ((URLNamePair) o1).getURL().toExternalForm().toLowerCase().compareTo(((URLNamePair) o2).getURL().toExternalForm().toLowerCase());

-	}

-

-	return 0;

-}

-}

diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/core/updatemanagerstrings.properties b/update/org.eclipse.update/src/org/eclipse/update/internal/core/updatemanagerstrings.properties
deleted file mode 100644
index 5cec005..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/core/updatemanagerstrings.properties
+++ /dev/null
@@ -1,112 +0,0 @@
-S_Add                                                     = Add

-S_Additional_Locations                                    = Additional Locations

-S_An_installation_error_or_cancellation_has_occurred      = An installation error or cancellation has occurred

-S_At_the_following_domain                                 = At the following domain

-S_Available                                               = Available

-S_Cancel_component_installation                           = Cancel component installation

-S_Component                                               = Component

-S_Component_identifier                                    = Component identifier

-S_Component_name                                          = Component name

-S_Configuration_Change                                    = Configuration Change

-S_Copy                                                    = Copy

-S_Current_installation                                    = Current installation

-S_Description                                             = Description

-S_Encountered_jar_entry_security_exception                = Encountered jar entry security exception

-S_Enter_a_user_name_and_password_for                      = Enter a user name and password for

-S_Error_closing_output_stream                             = Error closing output stream

-S_Error_in_registry                                       = Error in registry

-S_Error_occurred_during_installation_completion           = Error occurred during installation completion

-S_Error_occurred_during_installation_setup                = Error occurred during installation setup

-S_Error_occurred_during_verification                      = Error occurred during verification

-S_Error_reading_from_input_stream                         = Error reading from input stream

-S_Error_writing_to_output_stream                          = Error writing to output stream

-S_Examining                                               = Examining

-S_File_is_not_a_valid_JAR_file                            = File is not a valid JAR file

-S_File_name                                               = File name

-S_HTTP_client_not_set                                     = HTTP client not set

-S_Identifier                                              = Identifier

-S_Information                                             = Information

-S_Install                                                 = Install

-S_Install_component                                       = Install component

-S_Install_Components                                      = Install Components

-S_Installation                                            = Installation

-S_Installation_cancelled_by_user                          = Installation cancelled by user

-S_Installation_completed                                  = Installation completed

-S_Installations_have_completed_successfully               = Installations have completed successfully

-S_Installed                                               = Installed

-S_Installed_Components                                    = Installed Components

-S_Installing_this_component_may_corrupt_your_installation = Installing this component may corrupt your installation

-S_Location                                                = Location

-S_New_Component_Updates                                   = New Component Updates

-S_New_Components                                          = New Components

-S_No_installable_items_were_found                         = No installable items were found

-S_not_available                                           = not available

-S_not_compatible                                          = not compatible

-S_not_newer                                               = not newer

-S_not_updatable                                           = not updatable

-S_Number_of_installation_histories_to_keep                = Number of installation histories to keep

-S_Obtaining_information                                   = Obtaining information

-S_OK                                                      = OK

-S_optional                                                = optional

-S_Password                                                = Password

-S_Password_Required                                       = Password Required

-S_Predefined_Locations                                    = Predefined Locations

-S_Provider                                                = Provider

-S_Reading                                                 = Reading

-S_Remove                                                  = Remove

-S_Remove_selected_components                              = Remove selected components

-S_Revert                                                  = Revert

-S_Revert_to_a_Previous_Installation                       = Revert to a Previous Installation

-S_Revert_to_another_installation                          = Revert to another installation

-S_Search_for_more_recent_versions_to_install              = Search for more recent versions to install

-S_Search_for_new_components                               = Search for new components

-S_Search_for_updates_for_all_components                   = Search for updates for all components

-S_Search_for_updates_for_selected_components              = Search for updates for selected components

-S_Select_a_previous_installation_to_revert_to             = Select a previous installation to revert to

-S_Select_any_optional_components_to_install               = Select any optional components to install

-S_Select_available_versions_to_install                    = Select available versions to install

-S_Select_components_to_install                            = Select components to install

-S_Select_locations_to_update_from                         = Select locations to update from

-S_Show_only_most_recent_versions                          = Show only most recent versions

-S_Software_Updates                                        = Software Updates

-S_Source_location                                         = Source location

-S_Source_URL_is_malformed                                 = Source URL is malformed

-S_Specify_search_locations_for_new_components             = Specify search locations for new components

-S_Status                                                  = Status

-S_Target_URL_is_malformed                                 = Target URL is malformed

-S_The_certificates_used_to_authenticate_this_component_are_not_recognized = The certificates used to authenticate this component are not recognized

-S_The_content_of_this_component_has_been_corrupted        = The content of this component has been corrupted

-S_The_following_installation_will_become_active_when_the_workbench_is_restarted = The following installation will become active when the workbench is restarted

-S_The_following_items_will_be_installed                   = The following items will be installed

-S_The_following_items_will_be_updated                     = The following items will be updated

-S_The_installation_process_will_be_aborted                = The installation process will be aborted

-S_The_provider_of_this_component_cannot_be_verified       = The provider of this component cannot be verified

-S_This_component_has_not_been_digitally_signed            = This component has not been digitally signed

-S_This_component_will_not_be_installed                    = This component will not be installed

-S_Update                                                  = Update

-S_Update_All                                              = Update All

-S_Updates_completed                                       = Updates completed

-S_Unable_to_access_the_following_locations                = Unable to access the following locations

-S_Unable_to_connect                                       = Unable to connect

-S_Unable_to_create_file                                   = Unable to create file

-S_Unable_to_create_jar_entry_URL                          = Unable to create jar entry URL

-S_Unable_to_create_output_file_for_Jar_entry              = Unable to create output file for Jar entry

-S_Unable_to_delete_file                                   = Unable to delete file

-S_Unable_to_find_install_manifest_file_in_Jar             = Unable to find install manifest file in Jar

-S_Unable_to_find_defined_contents_in_Jar                  = Unable to find defined contents in Jar

-S_Unable_to_obtain_source_input_stream                    = Unable to obtain source input stream

-S_Unable_to_obtain_target_output_stream                   = Unable to obtain target output stream

-S_Unable_to_open_error_logs                               = Unable to open error_logs

-S_Unable_to_open_jar_entry_input_stream                   = Unable to open jar entry input stream

-S_Unable_to_open_Jar_file                                 = Unable to open Jar file

-S_Undefined_contents_found_in_Jar                         = Undefined contents found in Jar

-S_Undo                                                    = Undo

-S_User_name                                               = User name

-S_Verification                                            = Verification

-S_Verification_cancelled                                  = Verification cancelled

-S_Verify                                                  = Verify

-S_Version                                                 = Version

-S_You_are_about_to_install_a_signed_component             = You are about to install a signed component

-S_You_are_about_to_install_an_unsigned_component          = You are about to install an unsigned component

-S_You_may_choose_to_install_the_component_or_cancel_its_installation = You may choose to install the component or cancel its installation

-S_You_must_restart_the_workbench_to_activate_any_changes  = You must restart the workbench to activate any changes

diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/ui/AuthorizationDatabase.java b/update/org.eclipse.update/src/org/eclipse/update/internal/ui/AuthorizationDatabase.java
deleted file mode 100644
index 8d2af15..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/ui/AuthorizationDatabase.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package org.eclipse.update.internal.ui;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.net.URL;

-import java.util.Hashtable;

-import java.util.Map;

-

-import org.eclipse.core.runtime.CoreException;

-import org.eclipse.core.runtime.Platform;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.update.internal.core.UpdateManagerPlugin;

-import org.eclipse.webdav.http.client.IAuthenticator;

-

-/**

- * A transient database that remembers information, such as usernames and

- * passwords.  The information is stored in memory only and is discarted

- * when the Plaform shuts down.

- */

-public class AuthorizationDatabase implements IAuthenticator {

-

-	/**

-	 * The Map containing the userid and password

-	 */

-	private Map result = new Hashtable();

-

-	/**

-	 * 

-	 */

-	public void addAuthenticationInfo(URL serverUrl, String realm, String scheme, Map info) {

-		try {

-			Platform.addAuthorizationInfo(serverUrl, realm, scheme, info);

-		}

-		catch (CoreException e) {

-			UpdateManagerPlugin.getPluginInstance().getLog().log(e.getStatus());

-		}

-	}

-

-	/**

-	 * 

-	 */

-	public void addProtectionSpace(URL resourceUrl, String realm) {

-		try {

-			Platform.addProtectionSpace(resourceUrl, realm);

-		}

-		catch (CoreException e) {

-			UpdateManagerPlugin.getPluginInstance().getLog().log(e.getStatus());

-		}

-

-	}

-	/**

-	 *

-	 */

-	public Map getAuthenticationInfo(URL serverUrl, String realm, String scheme) {

-

-		return Platform.getAuthorizationInfo(serverUrl, realm, scheme);

-	}

-	/**

-	 * 

-	 */

-	public String getProtectionSpace(URL resourceUrl) {

-		return Platform.getProtectionSpace(resourceUrl);

-	}

-	/**

-	 * 

-	 */

-	public Map requestAuthenticationInfo(final URL resourceUrl, final String realm, final String scheme) {

-

-		result = new Hashtable();

-		if (scheme.equalsIgnoreCase("Basic")) {

-

-			Display disp = Display.getCurrent();

-			if (disp != null) {

-				promptForPassword(resourceUrl, realm, result);

-			}

-			else {

-				Display.getDefault().syncExec(new Runnable() {

-					public void run() {

-						promptForPassword(resourceUrl, realm, result);

-					}

-				});

-			};

-		}

-		return result;

-	}

-

-	/**

-	 *

-	 */

-	private void promptForPassword(URL resourceUrl, String realm, Map info) {

-

-		Shell shell = new Shell();

-		UserValidationDialog ui = new UserValidationDialog(shell, resourceUrl, realm, "");

-		ui.setUsernameMutable(true);

-		ui.setBlockOnOpen(true);

-		ui.open();

-

-		if (ui.getReturnCode() != ui.CANCEL) {

-			info.put("username", ui.getUserid());

-			info.put("password", ui.getPassword());

-		}

-		shell.dispose();

-

-	}

-}
\ No newline at end of file
diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/ui/Installation.java b/update/org.eclipse.update/src/org/eclipse/update/internal/ui/Installation.java
deleted file mode 100644
index 056f820..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/ui/Installation.java
+++ /dev/null
@@ -1,221 +0,0 @@
-package org.eclipse.update.internal.ui;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.net.MalformedURLException;

-import java.net.URL;

-import java.util.Date;

-import org.eclipse.core.internal.boot.LaunchInfo;

-import org.eclipse.core.internal.boot.LaunchInfo.History;

-/**

- */

-public class Installation {

-	private static final String STRING_ID = "-id";

-	private static final String STRING_LIST = "-list";

-	private static final String STRING_LOCATION = "-location";

-	private static final String STRING_SET = "-set";

-

-	private boolean _bList = false;

-	private boolean _bSet = false;

-	private String _strLocation = null;

-	private String _strId = null;

-	private int _iId = -1;

-	private LaunchInfo _launchInfo = null;

-	/**

-	 * Installation constructor comment.

-	 */

-	public Installation() {

-		super();

-	}

-	/**

-	 * 

-	 */

-	private String checkCommandLineOptions() {

-

-		// Command

-		//--------

-		if (_bList == true) {

-			if (_bSet == true) {

-				return "Invalid option syntax";

-			}

-		}

-

-		else if (_bSet == true) {

-			if (_bList == true) {

-				return "Invalid option syntax";

-			}

-		}

-

-		else {

-			return "Command missing";

-		}

-

-		// Location

-		//---------

-		if (_strLocation == null || _strLocation.length() == 0) {

-			return "Location missing";

-		}

-

-		URL urlLocation = null;

-

-		try {

-			urlLocation = new URL(_strLocation);

-		}

-		catch (MalformedURLException ex) {

-			return "Invalid location syntax";

-		}

-

-		// Set the location of the installation directory

-		//-----------------------------------------------

-		//	LaunchInfo.startup(urlLocation);

-		_launchInfo = LaunchInfo.getCurrent();

-

-		// Set

-		//----

-		if (_bSet == true) {

-			if (_strId == null || _strId.length() == 0) {

-				return "Installation identifier number missing";

-			}

-

-			try {

-				_iId = new Integer(_strId).intValue();

-			}

-			catch (NumberFormatException ex) {

-				return "Invalid identifier syntax";

-			}

-		}

-

-		return null;

-	}

-	/**

-	 */

-	public String doList() {

-

-		LaunchInfo launchInfoFormer = null;

-

-		LaunchInfo.History[] histories = _launchInfo.getLaunchInfoHistory();

-

-		if (histories.length == 0)

-			return "No histories found";

-

-		if (histories.length == 1 && histories[0].getLaunchInfoDate() == null)

-			return "No histories found";

-

-		// Same order as doSet()

-		// Most recent to oldest order

-		//----------------------------

-		int iIndex = 1;

-

-		for (int i = histories.length - 1; i >= 0; --i) {

-

-			Date date = histories[i].getLaunchInfoDate();

-

-			// Older profile

-			//--------------

-			if (date != null) {

-				System.out.println(Integer.toString(iIndex++) + " " + histories[i].getLaunchInfoDate().toString());

-			}

-		}

-

-		return null;

-	}

-	/**

-	 * 

-	 */

-	public String doSet() {

-

-		LaunchInfo.History[] histories = _launchInfo.getLaunchInfoHistory();

-

-		if (_iId < histories.length) {

-

-			int iIndex = 1;

-

-			// Same algorithm as doList()

-			// Most recent to oldest order

-			//----------------------------

-			for (int i = histories.length - 1; i >= 0; --i) {

-

-				Date date = histories[i].getLaunchInfoDate();

-

-				// Older profile

-				//--------------

-				if (date != null) {

-					if (iIndex == _iId) {

-						_launchInfo.revertTo(histories[i]);

-						System.out.println(date.toString());

-						return null;

-					}

-					else {

-						iIndex++;

-					}

-				}

-			}

-		}

-

-		return "Identifier not found";

-	}

-	/**

-	 */

-	public static void main(String[] args) {

-

-		Installation installation = new Installation();

-

-		installation.parseCommandLineOptions(args);

-

-		String strError = installation.checkCommandLineOptions();

-

-		if (strError == null) {

-			if (installation._bList == true)

-				strError = installation.doList();

-

-			else if (installation._bSet == true)

-				strError = installation.doSet();

-		}

-

-		if (strError != null) {

-			System.out.println(strError);

-			printUsage();

-			System.exit(-1);

-		}

-	}

-	/**

-	 */

-	public void parseCommandLineOptions(String[] straArgs) {

-

-		for (int i = 0; i < straArgs.length; ++i) {

-

-			// Command: List

-			//--------------

-			if (straArgs[i].equalsIgnoreCase(STRING_LIST) == true) {

-				_bList = true;

-			}

-

-			// Command: Set

-			//-------------

-			else if (straArgs[i].equalsIgnoreCase(STRING_SET) == true) {

-				_bSet = true;

-			}

-

-			// Location to install from

-			//-------------------------

-			else if (straArgs[i].equalsIgnoreCase(STRING_LOCATION) == true && i < straArgs.length - 1) {

-				_strLocation = straArgs[++i];

-			}

-

-			// Identifier

-			//-----------

-			else if (straArgs[i].equalsIgnoreCase(STRING_ID) == true && i < straArgs.length - 1) {

-				_strId = straArgs[++i];

-			}

-		}

-	}

-	/**

-	 */

-	public static void printUsage() {

-		System.out.println("");

-		System.out.println("-list -location urlPath");

-		System.out.println("-set  -location urlPath -id number");

-	}

-}
\ No newline at end of file
diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/ui/JarVerificationDialog.java b/update/org.eclipse.update/src/org/eclipse/update/internal/ui/JarVerificationDialog.java
deleted file mode 100644
index 6d5389d..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/ui/JarVerificationDialog.java
+++ /dev/null
@@ -1,180 +0,0 @@
-package org.eclipse.update.internal.ui;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.io.File;

import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.update.internal.core.UpdateManagerStrings;

-

-public class JarVerificationDialog extends Dialog {

-

-	protected int _iVerificationResult = 0;

-	protected File _file = null;

-	protected String _strComponentName = null;

-	protected String _strId = null;

-	protected String _strProviderName = null;

-

-	protected Button _buttonInstall;

-	protected Button _buttonCancel;

-

-	public static boolean COMPONENT_TO_INSTALL = false;

-	/**

-	 *

-	 */

-	public JarVerificationDialog(Shell shell, String strId, String strComponentName, String strProviderName, File file, int iVerificationResult) {

-		super(shell);

-

-		_iVerificationResult = iVerificationResult;

-		_file = file;

-		_strId = strId;

-		_strComponentName = strComponentName;

-		_strProviderName = strProviderName;

-	}

-	public boolean close() {

-		COMPONENT_TO_INSTALL = okToInstall();

-		return super.close();

-	}

-	/**

-	 * Add buttons to the dialog's button bar.

-	 */

-	protected void createButtonsForButtonBar(Composite parent) {

-		createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);

-	}

-	/**

-	 * Creates and returns the contents of the upper part 

-	 * of the dialog (above the button bar).

-	 */

-	protected Control createDialogArea(Composite compositeParent) {

-

-		getShell().setText(UpdateManagerStrings.getString("S_Verification"));

-

-		// Composite: Client

-		//------------------

-		Composite compositeClient = new Composite(compositeParent, SWT.NULL);

-		GridLayout grid = new GridLayout();

-		compositeClient.setLayout(grid);

-		compositeClient.setLayoutData(new GridData(GridData.FILL_BOTH));

-

-		// Text: Information

-		//------------------

-		Text textInformation = new Text(compositeClient, SWT.WRAP | SWT.READ_ONLY | SWT.MULTI);

-		textInformation.setLayoutData(new GridData(GridData.GRAB_VERTICAL | GridData.FILL_HORIZONTAL));

-

-		StringBuffer strb = new StringBuffer();

-

-		switch (_iVerificationResult) {

-

-			case JarVerifier.NOT_SIGNED :

-				strb.append(UpdateManagerStrings.getString("S_You_are_about_to_install_an_unsigned_component") + ".");

-				strb.append("\n\n");

-				strb.append(UpdateManagerStrings.getString("S_This_component_has_not_been_digitally_signed") + ".");

-				strb.append("\n");

-				strb.append(UpdateManagerStrings.getString("S_The_provider_of_this_component_cannot_be_verified") + ".");

-				strb.append("\n");

-				strb.append(UpdateManagerStrings.getString("S_Installing_this_component_may_corrupt_your_installation") + ".");

-				textInformation.setText(strb.toString());

-				break;

-

-			case JarVerifier.CORRUPTED :

-				strb.append(UpdateManagerStrings.getString("S_The_content_of_this_component_has_been_corrupted") + ".");

-				strb.append("\n\n");

-				strb.append(UpdateManagerStrings.getString("S_This_component_will_not_be_installed") + ".");

-				textInformation.setText(strb.toString());

-				break;

-

-			case JarVerifier.INTEGRITY_VERIFIED :

-				strb.append(UpdateManagerStrings.getString("S_You_are_about_to_install_a_signed_component") + ".");

-				strb.append("\n\n");

-				strb.append(UpdateManagerStrings.getString("S_The_certificates_used_to_authenticate_this_component_are_not_recognized") + ".");

-				strb.append("\n");

-				strb.append(UpdateManagerStrings.getString("S_The_provider_of_this_component_cannot_be_verified") + ".");

-				strb.append("\n");

-				strb.append(UpdateManagerStrings.getString("S_Installing_this_component_may_corrupt_your_installation") + ".");

-				textInformation.setText(strb.toString());

-				break;

-		}

-

-		// Composite: Information labels

-		//------------------------------

-		Composite compositeInformation = new Composite(compositeClient, SWT.NULL);

-		GridLayout layout = new GridLayout();

-		layout.numColumns = 2;

-		layout.verticalSpacing = 0;

-		compositeInformation.setLayout(layout);

-		compositeInformation.setLayoutData(new GridData(GridData.FILL_BOTH));

-

-		// Label: File name

-		//-----------------

-		Label label = new Label(compositeInformation, SWT.NULL);

-		label.setText(UpdateManagerStrings.getString("S_File_name") + ": ");

-

-		label = new Label(compositeInformation, SWT.NULL);

-		label.setText(_file.getName());

-

-		// Component name

-		//---------------

-		if (_strComponentName != null && _strComponentName.length() > 0) {

-			label = new Label(compositeInformation, SWT.NULL);

-			label.setText(UpdateManagerStrings.getString("S_Component_name") + ": ");

-

-			label = new Label(compositeInformation, SWT.NULL);

-			label.setText(_strComponentName);

-		}

-

-		// Component identifier

-		//---------------------

-		if (_strId != null && _strId.length() > 0) {

-			label = new Label(compositeInformation, SWT.NULL);

-			label.setText(UpdateManagerStrings.getString("S_Component_identifier") + ": ");

-

-			label = new Label(compositeInformation, SWT.NULL);

-			label.setText(_strId);

-		}

-

-		// Provider name

-		//--------------

-		if (_strProviderName != null && _strProviderName.length() > 0) {

-			label = new Label(compositeInformation, SWT.NULL);

-			label.setText(UpdateManagerStrings.getString("S_Provider") + ": ");

-

-			label = new Label(compositeInformation, SWT.NULL);

-			label.setText(_strProviderName);

-		}

-

-		if (_iVerificationResult != JarVerifier.CORRUPTED) {

-

-			// Group box

-			//----------

-			Group group = new Group(compositeClient, SWT.NONE);

-			group.setLayout(new GridLayout());

-			group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_VERTICAL));

-

-			// Text: Instruction

-			//------------------

-			Text textInstruction = new Text(group, SWT.MULTI | SWT.READ_ONLY);

-			textInstruction.setText(UpdateManagerStrings.getString("S_You_may_choose_to_install_the_component_or_cancel_its_installation"));

-

-			// Radio button: Install

-			//----------------------

-			_buttonInstall = new Button(group, SWT.RADIO);

-			_buttonInstall.setText(UpdateManagerStrings.getString("S_Install_component"));

-			_buttonInstall.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

-

-			// Radio button: Cancel installation

-			//----------------------------------

-			_buttonCancel = new Button(group, SWT.RADIO);

-			_buttonCancel.setText(UpdateManagerStrings.getString("S_Cancel_component_installation"));

-			_buttonCancel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

-			_buttonCancel.setSelection(true);

-		}

-

-		return compositeClient;

-	}

-	/**

-	 * Returns true if the component is to be installed

-	 * called by the Wizard when Finish is executed.

-	 */

-	public boolean okToInstall() {

-		return _buttonInstall != null ? _buttonInstall.getSelection() : false;

-	}

-}
\ No newline at end of file
diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/ui/JarVerificationResult.java b/update/org.eclipse.update/src/org/eclipse/update/internal/ui/JarVerificationResult.java
deleted file mode 100644
index 1711181..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/ui/JarVerificationResult.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package org.eclipse.update.internal.ui;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-/**

- * Result of the service

- */

-public class JarVerificationResult {

-

-	public static final int CANCEL_INSTALL = 0;

-	public static final int OK_TO_INSTALL = 1;

-

-	private int resultCode;

-	private Exception resultException;

-	/**

-	 */

-	public int getResultCode() {

-		return resultCode;

-	}

-	/**

-	 */

-	public Exception getResultException() {

-		return resultException;

-	}

-	/**

-	 */

-	public void setResultCode(int newResultCode) {

-		resultCode = newResultCode;

-	}

-	/**

-	 * called by JarVerificationService only

-	 */

-	void setResultException(Exception newResultException) {

-		resultException = newResultException;

-	}

-}
\ No newline at end of file
diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/ui/JarVerificationService.java b/update/org.eclipse.update/src/org/eclipse/update/internal/ui/JarVerificationService.java
deleted file mode 100644
index 69b4339..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/ui/JarVerificationService.java
+++ /dev/null
@@ -1,167 +0,0 @@
-package org.eclipse.update.internal.ui;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.io.File;

import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.update.internal.core.UpdateManagerStrings;

-/**

- * The class will verify the Component and return a JarVerifierResult object

- * to the sender. The result contains a returnCode.

- * The return code is one of the VerifyComponent static values.

- *

- * If the component is signed and trusted by one of the keystore

- * the user will not be prompted, and we'll consider the component

- * to be installed.

- *

- * Call example:

- * JarVerificationService verifier = new JarVerificationService();

- * JarVerificationResult result = verifier.okToInstall(File jarFileToVerify,String nameOfTheComponent, IProgressMonitor monitor);

- * if (result.getResultCode()==result.OK_TO_INSTALL){

- *    // install component

- * }

- */

-public class JarVerificationService {

-

-	/**

-	 * The result object

-	 */

-	private JarVerificationResult result;

-

-	/**

-	 * The JarVerifier is a instance variable

-	 * bacause we want to reuse it upon multiple calls

-	 */

-	private JarVerifier jarVerifier;

-

-	/**

-	 * the Shell

-	 */

-	private Shell shell;

-	/**

-	 * If no shell, create a new shell 

-	 */

-	public JarVerificationService() {

-		this(null);

-	}

-	/**

-	 * 

-	 */

-	public JarVerificationService(Shell aShell) {

-		jarVerifier = new JarVerifier();

-		shell = aShell;

-

-		// find the default display and get the active shell

-		if (shell == null) {

-			final Display disp = Display.getDefault();

-			if (disp == null) {

-				shell = new Shell(new Display());

-			}

-			else {

-				disp.syncExec(new Runnable() {

-					public void run() {

-						shell = disp.getActiveShell();

-					}

-				});

-			}

-

-		}

-	}

-	/**

-	 */

-	public JarVerificationResult getResult() {

-		if (result == null) {

-			result = new JarVerificationResult();

-		}

-

-		return result;

-	}

-	/**

-	 * 

-	 */

-	private void jarVerifierError(final String errorMessage) {

-		/*

-			shell.getDisplay().syncExec(new Runnable() {

-				public void run() {

-					MessageDialog diag =

-						new MessageDialog(

-							shell,

-							errorMessage + ": " + UpdateManagerStrings.getString("S_The_installation_process_will_be_aborted"),

-							null,

-							jarVerifier.getResultException().getMessage(),

-							MessageDialog.ERROR,

-							new String[] { UpdateManagerStrings.getString("S_OK") },

-							0);

-		

-					diag.open();

-		

-		

-				}

-			});

-		*/

-		MessageDialog.openError(shell, UpdateManagerStrings.getString("S_Verification"), errorMessage + "\n" + UpdateManagerStrings.getString("S_The_installation_process_will_be_aborted"));

-		getResult().setResultCode(JarVerificationResult.CANCEL_INSTALL);

-		getResult().setResultException(jarVerifier.getResultException());

-	}

-	/**

-	 * returns an JarVerificationResult

-	 * The monitor can be null.

-	 */

-	public JarVerificationResult okToInstall(final File jarFile, final String id, final String componentName, final String providerName, IProgressMonitor monitor) {

-

-		jarVerifier.setMonitor(monitor);

-		final int verificationResult = jarVerifier.verify(jarFile);

-

-		switch (verificationResult) {

-			case JarVerifier.UNKNOWN_ERROR :

-				{

-					jarVerifierError(UpdateManagerStrings.getString("S_Error_occurred_during_verification"));

-					break;

-				}

-			case JarVerifier.VERIFICATION_CANCELLED :

-				{

-					jarVerifierError(UpdateManagerStrings.getString("S_Verification_cancelled"));

-					break;

-				}

-			case JarVerifier.SOURCE_VERIFIED :

-				{

-					getResult().setResultCode(JarVerificationResult.OK_TO_INSTALL);

-					getResult().setResultException(null);

-					break;

-				}

-				// if the JAR is not signed, corrupted or not validated

-				// ask the user for confirmation.

-			default :

-				{

-					shell.getDisplay().syncExec(new Runnable() {

-						public void run() {

-							getResult().setResultCode(openWizard(jarFile, id, componentName, providerName, verificationResult));

-							getResult().setResultException(null);

-						}

-					});

-				}

-		}

-

-		return getResult();

-	}

-	/**

-	 * 

-	 */

-	private int openWizard(File jarFile, String id, String componentName, String providerName, int verificationResult) {

-

-		int code;

-

-		//	JarVerifierWizard wizard = new JarVerifierWizard(jarFile, componentName, verificationResult);

-		//	WizardDialog dialog = new WizardDialog(shell, wizard);

-

-		JarVerificationDialog dialog = new JarVerificationDialog(shell, id, componentName, providerName, jarFile, verificationResult);

-		dialog.open();

-

-		if (JarVerificationDialog.COMPONENT_TO_INSTALL)

-			code = JarVerificationResult.OK_TO_INSTALL;

-		else

-			code = JarVerificationResult.CANCEL_INSTALL;

-

-		return code;

-	}

-}
\ No newline at end of file
diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/ui/JarVerifier.java b/update/org.eclipse.update/src/org/eclipse/update/internal/ui/JarVerifier.java
deleted file mode 100644
index dda11d7..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/ui/JarVerifier.java
+++ /dev/null
@@ -1,360 +0,0 @@
-package org.eclipse.update.internal.ui;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.InvocationTargetException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
import java.util.jar.JarInputStream;

import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.update.internal.core.UpdateManagerStrings;

-

-/**

- * The JarVerifier will check the integrity of the JAR.

- * If the Jar is signed and the integrity is validated,

- * it will check if one of the certificate of each file

- * is in one of the keystore.

- *

- */

-

-public class JarVerifier {

-

-	/**

-	 * Set of certificates of the JAR file

-	 */

-	private Collection certificateEntries;

-

-	/**

-	 * List of certificates of the KeyStores

-	 */

-	private List listOfKeystoreCertifcates;

-

-	/**

-	 * check validity of keystore

-	 * default == FALSE 

-	 */

-	private boolean shouldVerifyKeystore = false;

-

-	/**

-	 * check validity of keystore

-	 * default == FALSE 

-	 */

-	private boolean shouldRetrieveKeystoreCertificates = false;

-

-	/**

-	 * Number of files in the JarFile

-	 */

-	private int entries;

-

-	/**

-	 * ProgressMonitor during integrity validation

-	 */

-	private IProgressMonitor monitor;

-

-	/**

-	 * JAR File Name: used in the readJarFile.

-	 */

-	private String jarFileName;

-

-	/**

-	 * ResultCode

-	 */

-	private int resultCode;

-

-	/**

-	 * Result Error

-	 */

-	private Exception resultException;

-

-	//RESULT VALUES

-	public static final int NOT_SIGNED = 0;

-	public static final int CORRUPTED = 1;

-	public static final int INTEGRITY_VERIFIED = 2;

-	public static final int SOURCE_VERIFIED = 3;

-	public static final int UNKNOWN_ERROR = 4;

-	public static final int VERIFICATION_CANCELLED = 5;

-

-	/**

-	 * Default Constructor

-	 */

-	public JarVerifier() {

-	}

-	/**

-	 * 

-	 */

-	public JarVerifier(IProgressMonitor monitor) {

-		this.monitor = monitor;

-	}

-	/**

-	 * Returns the list of certificates of the keystore.

-	 *

-	 * Can be optimize, within an operation, we only need to get the

-	 * list of certificate once.

-	 */

-	private List getKeyStoreCertificates() {

-		if (listOfKeystoreCertifcates == null || shouldRetrieveKeystoreCertificates) {

-			listOfKeystoreCertifcates = new ArrayList(0);

-			KeyStores listOfKeystores = new KeyStores();

-			InputStream in = null;

-

-			try {

-				KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());

-				while (listOfKeystores.hasNext()) {

-					try {

-						in = listOfKeystores.next().openStream();

-						keystore.load(in, null); // no password

-					}

-					catch (NoSuchAlgorithmException e) {

-					}

-					catch (CertificateException e) {

-					}

-					catch (IOException e) {

-						// open error message, the keystore is not valid

-					}

-					finally {

-						if (in != null) {

-							try {

-								in.close();

-							}

-							catch (IOException e) {

-							} // nothing

-						}

-					} // try loading a keyStore

-

-					// keystore was loaded

-					Enumeration enum = keystore.aliases();

-					if (enum != null) {

-						while (enum.hasMoreElements()) {

-							listOfKeystoreCertifcates.add(keystore.getCertificate((String) enum.nextElement()));

-						}

-					}

-				} // while all key stores

-

-			}

-			catch (KeyStoreException e) {

-				// cannot instanciate a default keystore...

-			}

-		}

-

-		return listOfKeystoreCertifcates;

-	}

-	/**

-	 */

-	public Exception getResultException() {

-		return resultException;

-	}

-	/**

-	 * initialize instance variables

-	 */

-	private void initializeVariables(File jarFile) throws IOException {

-		resultCode = UNKNOWN_ERROR;

-		resultException = new Exception(UpdateManagerStrings.getString("S_File_is_not_a_valid_JAR_file"));

-		JarFile jar = new JarFile(jarFile);

-		entries = jar.size();

-		try {

-			jar.close();

-		}

-		catch (java.io.IOException ex) {

-			// unchecked

-		}

-		jarFileName = jarFile.getName();

-		certificateEntries = new HashSet();

-	}

-	/**

-	 * Returns true if the 2 collections

-	 * have an intersection

-	 */

-	private boolean intersect(Collection c1, Collection c2) {

-		Iterator e = c1.iterator();

-		while (e.hasNext())

-			if (c2.contains(e.next()))

-				return true;

-

-		return false;

-	}

-	/**

-	 * Throws exception or set the resultcode to UNKNOWN_ERROR

-	 */

-	private List readJarFile(final JarInputStream jis) throws IOException, InterruptedException, InvocationTargetException {

-		final List list = new ArrayList(0);

-

-		IRunnableWithProgress op = new IRunnableWithProgress() {

-			public void run(IProgressMonitor monitor) {

-				byte[] buffer = new byte[4096];

-				JarEntry ent;

-

-				if (monitor != null)

-					monitor.beginTask(UpdateManagerStrings.getString("S_Verify") + ": " + jarFileName, entries);

-				try {

-					while ((ent = jis.getNextJarEntry()) != null) {

-						list.add(ent);

-						int n = 0;

-						if (monitor != null)

-							monitor.worked(1);

-						while ((n = jis.read(buffer, 0, buffer.length)) != -1) {

-						}

-					}

-				}

-				catch (IOException e) {

-					resultCode = UNKNOWN_ERROR;

-					resultException = e;

-				}

-				finally {

-					if (monitor != null)

-						monitor.done();

-				}

-			}

-		};

-

-		op.run(monitor);

-

-		return list;

-	}

-	/**

-	 * 

-	 * @param newMonitor org.eclipse.core.runtime.IProgressMonitor

-	 */

-	public void setMonitor(IProgressMonitor newMonitor) {

-		monitor = newMonitor;

-	}

-	/**

-	 * 

-	 */

-	public void shouldRetrieveCertificate(boolean value) {

-		shouldRetrieveKeystoreCertificates = value;

-	}

-	/**

-	 * 

-	 */

-	public void shouldVerifyKeystore(boolean value) {

-		shouldVerifyKeystore = value;

-	}

-	/**

-	 * Verifies integrity and the validity of a valid

-	 * URL representing a JAR file

-	 * the possible results are:

-	 *

-	 * result == NOT_SIGNED	 				if the jar file is not signed.

-	 * result == INTEGRITY_VERIFIED		 	if the Jar file has not been

-	 *										modified since it has been

-	 *										signed

-	 * result == CORRUPTED 					if the Jar file has been changed

-	 * 										since it has been signed.

-	 * result == SOURCE_VERIFIED	 		if all the files in the Jar

-	 *										have a certificate that is

-	 * 										present in the keystore

-	 * result == UNKNOWN_ERROR		 		an occured during process, do

-	 *                                      not install.

-	 * result == VERIFICATION.CANCELLED     if process was cancelled, do

-	 *										not install.

-	 * @return int

-	 */

-	public int verify(File jarFile) {

-

-		try {

-			// new verification, clean instance variables

-			initializeVariables(jarFile);

-

-			// verify integrity

-			verifyIntegrity(jarFile);

-

-			// do not close input stream

-			// as verifyIntegrity already did it

-

-			// verify source certificate

-			if (resultCode == INTEGRITY_VERIFIED)

-				verifyAuthentication();

-

-		}

-		catch (Exception e) {

-			resultCode = UNKNOWN_ERROR;

-			resultException = e;

-		}

-

-		return resultCode;

-	}

-	/**

-	 * Verifies that each file has at least one certificate

-	 * valid in the keystore

-	 *

-	 * At least one certificate from each Certificate Array

-	 * of the Jar file must be found in the known Certificates

-	 */

-	private void verifyAuthentication() {

-

-		if (!getKeyStoreCertificates().isEmpty()) {

-			Iterator entries = certificateEntries.iterator();

-			boolean certificateFound = true;

-

-			// If all the cartificate of an entry are

-			// not found in the list of known certifcate

-			// we exit the loop.

-			while (entries.hasNext() && certificateFound) {

-				List certs = (List) entries.next();

-				certificateFound = intersect(getKeyStoreCertificates(), certs);

-			}

-			if (certificateFound)

-				resultCode = SOURCE_VERIFIED;

-			// else installCertificates()[future] 

-		}

-

-	}

-	/**

-	 * Verifies the integrity of the JAR

-	 */

-	private void verifyIntegrity(File jarFile) {

-

-		JarInputStream jis = null;

-

-		try {

-			// If the JAR is signed and not valid

-			// a security exception will be thrown

-			// while reading it

-			jis = new JarInputStream(new FileInputStream(jarFile), true);

-			List filesInJar = readJarFile(jis);

-

-			// you have to read all the files once

-			// before getting the certificates 

-			if (jis.getManifest() != null) {

-				Iterator iter = filesInJar.iterator();

-				boolean certificateFound = false;

-				while (iter.hasNext()) {

-					Certificate[] certs = ((JarEntry) iter.next()).getCertificates();

-					if ((certs != null) && (certs.length != 0)) {

-						certificateFound = true;

-						certificateEntries.add(Arrays.asList(certs));

-					};

-				}

-

-				if (certificateFound)

-					resultCode = INTEGRITY_VERIFIED;

-				else

-					resultCode = NOT_SIGNED;

-			}

-		}

-		catch (SecurityException e) {

-			// Jar file is signed

-			// but content has changed since signed

-			resultCode = CORRUPTED;

-		}

-		catch (InterruptedException e) {

-			resultCode = VERIFICATION_CANCELLED;

-		}

-		catch (Exception e) {

-			resultCode = UNKNOWN_ERROR;

-			resultException = e;

-		}

-		finally {

-			if (jis != null) {

-				try {

-					jis.close();

-				}

-				catch (IOException e) {

-				} // nothing

-			}

-		}

-

-	}

-	/**

-	 */

-	private boolean verifyIntegrityOfKeyStore() {

-		return shouldVerifyKeystore;

-	}

-}
\ No newline at end of file
diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/ui/KeyStores.java b/update/org.eclipse.update/src/org/eclipse/update/internal/ui/KeyStores.java
deleted file mode 100644
index 7284e0a..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/ui/KeyStores.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package org.eclipse.update.internal.ui;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

-/**

- * Class to manage the different KeyStores we should

- * check for certificates of Signed JAR

- */

-public class KeyStores {

-

-	/**

-	 * true if check default and user keystore at each startup

-	 */

-	public static boolean ALWAYS_INITIALIZE = true;

-

-	/**

-	 * java.policy files properties of the java.security file

-	 */

-	public static final String JAVA_POLICY = "policy.url";

-

-	/**

-	 * List of URL pointing of valid KeyStores

-	 * the URL is not tested yet...

-	 */

-	private List listOfKeyStores;

-

-	/**

-	 * Iterator

-	 */

-	private Iterator iterator;

-	/**

-	 * KeyStores constructor comment.

-	 */

-	public KeyStores() {

-		super();

-		// If the user always wnat to initialize.

-		// this may take some time if some keystore

-		// are remote or if the connection to the keystore

-		// is down. 

-		if (ALWAYS_INITIALIZE) {

-			initializeDefaultKeyStores();

-		}

-		else {

-			readKeystoresFromPersistent();

-		}

-	}

-	/**

-	 * 

-	 */

-	private Iterator getIterator() {

-		if (iterator == null)

-			iterator = listOfKeyStores.iterator();

-		return iterator;

-	}

-	/**

-	 * returns trus if there is more Keystores in the list

-	 */

-	public boolean hasNext() {

-		return getIterator().hasNext();

-	}

-	/**

-	 * populate the list of Keystores

-	 * should be done with Dialog with Cancel/Skip button if

-	 * the connection to the URL is down...

-	 */

-	private void initializeDefaultKeyStores() {

-

-		listOfKeyStores = new ArrayList(5);

-

-		// get JRE cacerts

-		try {

-			listOfKeyStores.add(new URL("file", null, 0, System.getProperty("java.home") + File.separator + "lib" + File.separator + "security" + File.separator + "cacerts"));

-		}

-		catch (MalformedURLException e) {

-			// should not happen, hardcoded...

-		}

-

-		// get java.home .keystore

-		try {

-			listOfKeyStores.add(new URL("file", null, 0, System.getProperty("user.home") + File.separator + ".keystore"));

-		}

-		catch (MalformedURLException e) {

-			// should not happen, hardcoded...

-		}

-

-		// get KeyStores from policy files...

-		//Security.getProperty(JAVA_POLICY);

-

-	}

-	/**

-	 * returns the URL for the Next Keystore

-	 */

-	public URL next() {

-		return (URL) getIterator().next();

-	}

-	/**

-	 * populate the list of Keystores from the previously saved list

-	 * if there is no list, initialize with default...

-	 * [future]

-	 */

-	private void readKeystoresFromPersistent() {

-		// not implemented

-	}

-}
\ No newline at end of file
diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/ui/Main.java b/update/org.eclipse.update/src/org/eclipse/update/internal/ui/Main.java
deleted file mode 100644
index e0f0367..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/ui/Main.java
+++ /dev/null
@@ -1,181 +0,0 @@
-package org.eclipse.update.internal.ui;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.net.*;

-import java.lang.reflect.*;

-import java.io.PrintWriter;

-import java.util.StringTokenizer;

-import java.util.Vector;

-/**

- * Startup class for Eclipse. Creates a class loader using

- * supplied URL of platform installation, loads and calls

- * the Eclipse Boot Loader

- */

-public class Main {

-	protected boolean debug = false;

-	protected boolean usage = false;

-	protected String bootLocation = null;

-	protected String application;

-	protected URL pluginPathLocation;

-	protected String location;

-

-	// constants

-	private static final String APPLICATION = "-application";

-	private static final String BOOT = "-boot";

-	private static final String DEBUG = "-debug";

-	private static final String USAGE = "-?";

-	private static final String BOOTLOADER = "org.eclipse.core.boot.BootLoader";

-

-	// The project containing the boot loader code.  This is used to construct

-	// the correct class path for running in VAJ and VAME.

-	private static final String PROJECT_NAME = "Eclipse Core Boot";

-

-	private static boolean inVAJ;

-	static {

-		try {

-			Class.forName("com.ibm.uvm.lang.ProjectClassLoader");

-			inVAJ = true;

-		} catch (Exception e) {

-			inVAJ = false;

-		}

-	}

-	private static boolean inVAME;

-	static {

-		try {

-			Class.forName("com.ibm.eclipse.VAME");

-			inVAME = true;

-		} catch (Exception e) {

-			inVAME = false;

-		}

-	}

-

-protected void basicRun(String[] args) throws Exception {

-	Class clazz = getBootLoader(bootLocation);

-	Method method = clazz.getDeclaredMethod("run", new Class[] { String.class, URL.class, String.class, String[].class });

-	try {

-		method.invoke(clazz, new Object[] { application, pluginPathLocation, location, args });

-	} catch (InvocationTargetException e) {

-		if (e.getTargetException() instanceof Error)

-			throw (Error) e.getTargetException();

-		else

-			throw e;

-	}

-}

-public Class getBootLoader(String base) throws Exception {

-	URLClassLoader loader = new URLClassLoader(new URL[] { getBootURL(base)}, null);

-	return loader.loadClass(BOOTLOADER);

-}

-/**

- * Returns the <code>URL</code> where the boot classes are located.

- */

-protected URL getBootURL(String base) throws MalformedURLException {

-	URL url = null;

-	if (base != null) 

-		return new URL(base);

-	// Create a URL based on the location of this class' code.

-	// strip off jar file and/or last directory to get 

-	// to the directory containing projects.

-	url = getClass().getProtectionDomain().getCodeSource().getLocation();

-	String path = url.getFile();

-	if (path.endsWith(".jar"))

-		path = path.substring(0, path.lastIndexOf("/"));

-	if (path.endsWith("/"))

-		path = path.substring(0, path.length() - 1);

-	if (inVAJ || inVAME) {

-		int ix = path.lastIndexOf("/");

-		path = path.substring(0, ix + 1);

-		path = path + PROJECT_NAME + "/";

-	} else

-		path = path + "/plugins/org.eclipse.core.boot/boot.jar";

-	return new URL(url.getProtocol(), url.getHost(), url.getPort(), path);

-}

-/**

- * Print the usage of this launcher on the system console

- */

-protected void printUsage(PrintWriter out) {

-	out.println("The general form of using the Platform bootstrap main is:");

-	out.println("      java <main class> -application <name> [option list]");

-	out.println("where the required arguments are:");

-	out.println("      -application <name> : the application to run ");

-	out.println("and where the option list can be any number of the following:");

-	out.println("      -platform <location> : run in the given location");

-	out.println("      -debug [debug options file] : turn on debug mode.  Read debug options from ");

-	out.println("          the specified file or from ./.options if not specified.");

-	out.println("      -? : print this message");

-	out.flush();

-}

-protected String[] processCommandLine(String[] args) throws Exception {

-	int[] configArgs = new int[100];

-	configArgs[0] = -1; // need to initialize the first element to something that could not be an index.

-	int configArgIndex = 0;

-	for (int i = 0; i < args.length; i++) {

-		boolean found = false;

-		// check for args without parameters (i.e., a flag arg)

-		// check if debug should be enabled for the entire platform

-		if (args[i].equalsIgnoreCase(DEBUG)) {

-			debug = true;

-			// passed thru this arg (i.e., do not set found = true

-		}

-

-		// look for the usage flag

-		if (args[i].equalsIgnoreCase(USAGE)) {

-			usage = true;

-			// passed thru this arg (i.e., do not set found = true

-		}

-

-		if (found) {

-			configArgs[configArgIndex++] = i;

-			continue;

-		}

-		// check for args with parameters. If we are at the last argument or if the next one

-		// has a '-' as the first character, then we can't have an arg with a parm so continue.

-		if (i == args.length - 1 || args[i + 1].startsWith("-")) {

-			continue;

-		}

-		String arg = args[++i];

-

-		// look for the laucher to run

-		if (args[i - 1].equalsIgnoreCase(BOOT)) {

-			found = true;

-			bootLocation = arg;

-		}

-

-		// look for the application to run

-		if (args[i - 1].equalsIgnoreCase(APPLICATION)) {

-			found = true;

-			application = arg;

-		}

-

-		// done checking for args.  Remember where an arg was found 

-		if (found) {

-			configArgs[configArgIndex++] = i - 1;

-			configArgs[configArgIndex++] = i;

-		}

-	}

-

-	// remove all the arguments consumed by this argument parsing

-	if (configArgIndex == 0)

-		return args;

-	String[] passThruArgs = new String[args.length - configArgIndex];

-	configArgIndex = 0;

-	int j = 0;

-	for (int i = 0; i < args.length; i++) {

-		if (i == configArgs[configArgIndex])

-			configArgIndex++;

-		else

-			passThruArgs[j++] = args[i];

-	}

-	return passThruArgs;

-}

-public void run(String[] args) throws Exception {

-	String[] passThruArgs = processCommandLine(args);

-	if (usage) {

-		printUsage(new PrintWriter(System.out));

-		return;

-	}

-	basicRun(passThruArgs);

-}

-}

diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMApplication.java b/update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMApplication.java
deleted file mode 100644
index 3bb792a..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMApplication.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package org.eclipse.update.internal.ui;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-/* 

- * Update Manager Install Application

- *

- * Command to run from command line:

- *

- *.\jre\bin\java -verify -cp startup.jar org.eclipse.core.launcher.UIMain -application org.eclipse.update.internal.ui.updateManager -install -url http://klicnik.torolab.ibm.com/eclipse/site/ -id org.eclipse.sdk %*

- *

- *

- * Arguments are:

- *   -install   Install command

- *   -url [url] Location from which to install from

- *   -id  [id]  Identifier of the manifest to install

- *

- * Sample:

- *   -install -url file:/c:/temp/updatesite/ -id org.eclipse.sdk

- */

-import java.util.StringTokenizer;

-import java.util.Vector;

-

-public class UMApplication extends Main {

-	private static final String DEFAULT_APPLICATION = "org.eclipse.update.internal.ui.updateManager";

-	public UMApplication() {

-		super();

-		application = DEFAULT_APPLICATION;

-	}

-	public static void main(String[] args) {

-

-		int iReturnCode = 0;

-

-		try {

-			new UMApplication().run(args);

-		}

-

-		catch (Exception e) {

-		}

-

-		System.exit(0);

-	}

-}
\ No newline at end of file
diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMApplicationUserInterface.java b/update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMApplicationUserInterface.java
deleted file mode 100644
index 2543bc2..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMApplicationUserInterface.java
+++ /dev/null
@@ -1,253 +0,0 @@
-package org.eclipse.update.internal.ui;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-/**

- * 

- */

-import java.net.URL;

import org.eclipse.core.boot.IPlatformRunnable;
import org.eclipse.core.internal.boot.update.IInstallable;
import org.eclipse.core.internal.boot.update.IUMRegistry;
import org.eclipse.core.internal.boot.update.UpdateManagerConstants;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.update.internal.core.UMSessionManagerSession;
import org.eclipse.update.internal.core.UpdateManager;
import org.eclipse.update.internal.core.UpdateManagerException;

-

-public class UMApplicationUserInterface implements IPlatformRunnable {

-	boolean _bRunEventLoop = true;

-

-	// Command line options

-	//---------------------

-	boolean _bInstall = false;

-	boolean _bSilent = false;

-	String _strManifestId = null;

-	String _strInstall = null;

-	URL _urlInstall = null;

-

-	// Command line option string constants

-	//-------------------------------------

-	private static final String STRING_ID = "-id";

-	private static final String STRING_INSTALL = "-install";

-	private static final String STRING_SILENT = "-silent";

-	private static final String STRING_URL = "-url";

-	/**

-	 * UpdateManagerUI constructor comment.

-	 */

-	public UMApplicationUserInterface() {

-		super();

-	}

-	/**

-	 * 

-	 */

-	private int checkCommandLineOptions() {

-

-		// Command

-		//--------

-		if (_bInstall == false) {

-			return UpdateManagerConstants.COMMAND_MISSING;

-		}

-

-		// Id

-		//---

-		if (_strManifestId == null || _strManifestId.length() == 0) {

-			return UpdateManagerConstants.ID_MISSING;

-		}

-

-		// URL

-		//----

-		if (_bInstall == true) {

-			if (_strInstall == null || _strInstall.length() == 0) {

-				return UpdateManagerConstants.URL_MISSING;

-			}

-

-			try {

-				_urlInstall = new URL(_strInstall);

-

-			}

-			catch (Exception ex) {

-				return UpdateManagerConstants.URL_INVALID;

-			}

-		}

-

-		return UpdateManagerConstants.OK_TO_INSTALL;

-	}

-	/**

-	 * Installs the given component or configuration by displaying the

-	 * install wizard.

-	 */

-	private void doInstall() {

-

-		Display display = new Display();

-		Shell shell = new Shell(display);

-		UMWizardProductComponentURLInstall wizard = new UMWizardProductComponentURLInstall(this);

-		wizard.setInstallURL(_urlInstall);

-		wizard.setInstallID(_strManifestId);

-

-		WizardDialog dialog = new WizardDialog(shell, wizard);

-		dialog.create();

-		dialog.open();

-

-		runEventLoop();

-

-		return;

-	}

-	/**

-	 * Installs the given component or configuration without displaying any user interface.

-	 */

-	private void doInstallSilent() {

-

-		UpdateManager updateManager = new UpdateManager();

-

-		try {

-			updateManager.initialize();

-

-			IUMRegistry registry = updateManager.getRegistryAt(_urlInstall);

-			IInstallable[] installables = new IInstallable[1];

-

-			// Product

-			//--------

-			installables[0] = registry.getProductDescriptor(_strManifestId);

-

-			// Component

-			//----------

-			if (installables[0] == null) {

-				installables[0] = registry.getComponentDescriptor(_strInstall);

-			}

-

-			// Install it

-			//-----------

-			if (installables[0] != null) {

-				UMSessionManagerSession session = updateManager.createSession(installables, false);

-				updateManager.executeSession(session, null);

-

-				// Undo

-				//-----

-				if (session.getStatus().equals(UpdateManagerConstants.STATUS_FAILED) == true) {

-					updateManager.executeSessionUndo(session, null);

-				}

-			}

-		}

-

-		catch (UpdateManagerException ex) {

-		}

-

-		return;

-	}

-	/**

-	 * Handles a runtime exception or error which was caught in runEventLoop().

-	 */

-	private void handleExceptionInEventLoop(Throwable e) {

-		// For the status object, use the exception's message, or the exception name if no message.

-		/*	

-			String msg = e.getMessage() == null ? e.toString() : e.getMessage();

-			WorkbenchPlugin.log("Unhandled exception caught in event loop.", new Status(IStatus.ERROR, IWorkbenchConstants.PLUGIN_ID, 0, msg, e));

-			if (WorkbenchPlugin.DEBUG) {

-				e.printStackTrace();

-			}

-			// Open an error dialog, but don't reveal the internal exception name.

-			String msg2 = "An internal error has occurred";

-			if (e.getMessage() != null)

-				msg2 += ": " + e.getMessage();

-			if (!msg2.endsWith("."))

-				msg2 += ".";

-			msg2 += "  See error log for more details.";

-			MessageDialog.openError(null, "Internal error", msg2);

-		*/

-	}

-	/**

-	 * 

-	 */

-	private void parseCommandLineOptions(String[] straArgs) {

-

-		for (int i = 0; i < straArgs.length; ++i) {

-

-			// Command: Install

-			//-----------------

-			if (straArgs[i].equalsIgnoreCase(STRING_INSTALL) == true) {

-				_bInstall = true;

-			}

-

-			// Option: Silent

-			//---------------

-			if (straArgs[i].equalsIgnoreCase(STRING_SILENT) == true) {

-				_bSilent = true;

-			}

-

-			// Location to install from

-			//-------------------------

-			else if (straArgs[i].equalsIgnoreCase(STRING_URL) == true) {

-				_strInstall = straArgs[++i];

-			}

-

-			// Manifest Identifier

-			//--------------------

-			else if (straArgs[i].equalsIgnoreCase(STRING_ID) == true) {

-				_strManifestId = straArgs[++i];

-			}

-		}

-	}

-	/**

-	 * Runs the application given a URL input string.  This is called

-	 * by the Eclipse platform.

-	 */

-	public Object run(Object args) throws Exception {

-

-		int iRC = UpdateManagerConstants.OK;

-

-		try {

-			String[] straArgs = (String[]) args;

-

-			if (straArgs.length > 0) {

-

-				parseCommandLineOptions(straArgs);

-

-				iRC = checkCommandLineOptions();

-

-				if (iRC == UpdateManagerConstants.OK) {

-

-					// Install

-					//--------	

-					if (_bInstall == true) {

-						if (_bSilent == false) {

-							doInstall();

-						}

-						else {

-							doInstallSilent();

-						}

-					}

-				}

-			}

-		}

-		catch (Exception ex) {

-			return new Integer(UpdateManagerConstants.OTHER_ERROR);

-		}

-

-		return new Integer(iRC);

-	}

-	/**

-	 * run an event loop for the workbench.

-	 */

-	private void runEventLoop() {

-		Display display = Display.getCurrent();

-

-		while (_bRunEventLoop == true) {

-			try {

-				if (!display.readAndDispatch())

-					display.sleep();

-			}

-			catch (RuntimeException e) {

-				handleExceptionInEventLoop(e);

-			}

-			catch (ThreadDeath e) {

-				// Don't catch ThreadDeath as this is a normal occurrence when the thread dies

-				throw e;

-			}

-			catch (Error e) {

-				handleExceptionInEventLoop(e);

-			}

-		}

-	}

-	/**

-	 * Turns off the run event loop flag.  This is only called by the

-	 * URL install wizard.

-	 */

-	protected void stopEventLoop() {

-		_bRunEventLoop = false;

-	}

-}
\ No newline at end of file
diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMApplicationUserInterfaceProperties.java b/update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMApplicationUserInterfaceProperties.java
deleted file mode 100644
index ac84b0b..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMApplicationUserInterfaceProperties.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package org.eclipse.update.internal.ui;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.Vector;

import org.eclipse.core.runtime.IPath;
import org.eclipse.update.internal.core.UpdateManagerPlugin;

-

-public class UMApplicationUserInterfaceProperties implements Serializable {

-	Vector _vectorBookmarkURLStrings = new Vector();

-	/**

-	 * UpdateManagerProperties constructor comment.

-	 */

-	public UMApplicationUserInterfaceProperties() {

-

-		load();

-	}

-	/**

-	 *

-	 */

-	public void addBookmarkURL(String strURL) {

-		_vectorBookmarkURLStrings.addElement(strURL);

-	}

-	/**

-	 */

-	public String[] getBookmarkStrings() {

-

-		Object objArray[] = _vectorBookmarkURLStrings.toArray();

-

-		String[] straBookmarks = new String[objArray.length];

-		System.arraycopy(objArray, 0, straBookmarks, 0, objArray.length);

-

-		return straBookmarks;

-	}

-	/**

-	 *

-	 */

-	public void load() {

-

-		UpdateManagerPlugin plugin = UpdateManagerPlugin.getPluginInstance();

-		IPath pathPlugin = plugin.getStateLocation();

-

-		pathPlugin = pathPlugin.addTrailingSeparator();

-		pathPlugin = pathPlugin.append("updateManager.ser");

-

-		try {

-			FileInputStream fileInputStream = new FileInputStream(pathPlugin.toOSString());

-			ObjectInputStream objInputStream = new ObjectInputStream(fileInputStream);

-			Object obj = objInputStream.readObject();

-			if (obj instanceof UMApplicationUserInterfaceProperties) {

-				UMApplicationUserInterfaceProperties properties = (UMApplicationUserInterfaceProperties) obj;

-

-				_vectorBookmarkURLStrings = properties._vectorBookmarkURLStrings;

-			}

-		}

-		catch (IOException ex) {

-		}

-		catch (ClassNotFoundException ex) {

-		}

-	}

-	/**

-	 *

-	 */

-	public void removeBookmarkURL(String strURL) {

-		_vectorBookmarkURLStrings.removeElement(strURL);

-	}

-	/**

-	 *

-	 */

-	public void save() {

-

-		UpdateManagerPlugin plugin = UpdateManagerPlugin.getPluginInstance();

-		IPath pathPlugin = plugin.getStateLocation();

-

-		pathPlugin = pathPlugin.addTrailingSeparator();

-		pathPlugin = pathPlugin.append("updateManager.ser");

-

-		try {

-			FileOutputStream outputStream = new FileOutputStream(pathPlugin.toOSString());

-			ObjectOutputStream objOutputStream = new ObjectOutputStream(outputStream);

-			objOutputStream.writeObject(this);

-			objOutputStream.close();

-		}

-		catch (IOException ex) {

-		}

-	}

-}
\ No newline at end of file
diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMApplicationWindow.java b/update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMApplicationWindow.java
deleted file mode 100644
index 9d6394b..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMApplicationWindow.java
+++ /dev/null
@@ -1,316 +0,0 @@
-package org.eclipse.update.internal.ui;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.window.Window;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.ToolItem;
import org.eclipse.update.internal.core.UpdateManager;
import org.eclipse.update.internal.core.UpdateManagerException;
import org.eclipse.update.internal.core.UpdateManagerStrings;

-

-public class UMApplicationWindow extends Window {

-	protected UpdateManager _updateManager = null;

-	protected UMApplicationUserInterface _userInterface = null;

-	protected ToolItem _toolItemBookmarkAdd = null;

-	protected ToolItem _toolItemBookmarkRemove = null;

-	protected ToolItem _toolItemRefresh = null;

-	protected ToolItem _toolItemViewVendorWebSite = null;

-	protected ToolItem _toolItemUpdate = null;

-	protected UMApplicationUserInterfaceProperties _properties = null;

-	/**

-	 * UpdateManagerWindow constructor comment.

-	 */

-	public UMApplicationWindow(UMApplicationUserInterface userInterface) {

-		super(null);

-

-		_userInterface = userInterface;

-

-		// Update Manager

-		//---------------

-		_updateManager = new UpdateManager(getShell());

-

-		try {

-			_updateManager.initialize();

-		}

-

-		catch (UpdateManagerException ex) {

-			// Unable to find logs

-			//--------------------

-			displayMessage("error", UpdateManagerStrings.getString("S_Update_Manager"), UpdateManagerStrings.getString("S_Unable_to_open_error_logs"), null);

-		}

-

-		// Persistent Properties

-		// The properties are loaded by the constructor

-		// and saved by this object's close function

-		//---------------------------------------------

-		_properties = new UMApplicationUserInterfaceProperties();

-	}

-	/**

-	 */

-	public boolean close() {

-

-		// Save persistent properties

-		//---------------------------

-		_properties.save();

-

-		// Get the window to do its thing

-		//-------------------------------

-		super.close();

-

-		// Set the flag to stop the application event loop

-		//------------------------------------------------

-		_userInterface.stopEventLoop();

-

-		// Return ok to close

-		//-------------------

-		return true;

-	}

-	/**

-	 * Creates and returns this window's contents.

-	 */

-	protected Control createContents(Composite compositeParent) {

-

-		// Title bar

-		//----------

-		getShell().setText(UpdateManagerStrings.getString("S_Software_Updates"));

-		// getShell().setImage(...);

-		/*

-			// Menu bar

-			//---------

-			Menu bar = new Menu(getShell(), SWT.BAR);

-			getShell().setMenuBar(bar);

-		

-			// File

-			//-----

-			MenuItem fileItem = new MenuItem(bar, SWT.CASCADE);

-			fileItem.setText("File");

-		

-			Menu menu = new Menu(bar);

-			MenuItem menuItem = new MenuItem(menu, SWT.PUSH);

-			menuItem.setText("Exit");

-		//	menuItem.addSelectionListener(this);

-		

-			fileItem.setMenu(menu);

-		

-			// Selected

-			//---------

-			MenuItem selectedItem = new MenuItem(bar, SWT.CASCADE);

-			selectedItem.setText("Selected");

-		

-			menu = new Menu(bar);

-			menuItem = new MenuItem(menu, SWT.PUSH);

-			menuItem.setText("Update");

-		//	menuItem.addSelectionListener(this);

-		

-			menuItem = new MenuItem(menu, SWT.PUSH);

-			menuItem.setText("View information");

-		//	menuItem.addSelectionListener(this);

-			

-			selectedItem.setMenu(menu);

-		

-			// Toolbar

-			//--------

-			ToolBar toolBar = new ToolBar(getShell(), SWT.NULL);

-			

-			new ToolItem(toolBar, SWT.SEPARATOR);

-			

-			_toolItemUpdate = new ToolItem(toolBar, SWT.PUSH);

-			_toolItemUpdate.setImage(UpdateManagerPlugin.getImageDescriptor("icons/basic/ovr16/updatecomponents.gif").createImage());

-			_toolItemUpdate.setToolTipText("Update selected components");

-		//	_toolItemUpdate.addSelectionListener(this);

-			

-			new ToolItem(toolBar, SWT.SEPARATOR);

-				

-			_toolItemViewVendorWebSite = new ToolItem(toolBar, SWT.PUSH);

-			_toolItemViewVendorWebSite.setImage(UpdateManagerPlugin.getImageDescriptor("icons/basic/ovr16/openbrwsr.gif").createImage());

-			_toolItemViewVendorWebSite.setToolTipText("View vendor information page");

-		//	_toolItemViewVendorWebSite.addSelectionListener(this);

-		

-			new ToolItem(toolBar, SWT.SEPARATOR);

-		

-			_toolItemBookmarkAdd = new ToolItem(toolBar, SWT.PUSH);

-			_toolItemBookmarkAdd.setImage(UpdateManagerPlugin.getImageDescriptor("icons/basic/ovr16/bkmrk.gif").createImage());

-			_toolItemBookmarkAdd.setToolTipText("Add to list");

-			_toolItemBookmarkAdd.setEnabled(false);

-		//	_toolItemBookmarkAdd.addSelectionListener(this);

-		

-			_toolItemBookmarkRemove = new ToolItem(toolBar, SWT.PUSH);

-			_toolItemBookmarkRemove.setImage(UpdateManagerPlugin.getImageDescriptor("icons/basic/ovr16/rembkmrk.gif").createImage());

-			_toolItemBookmarkRemove.setToolTipText("Remove from list");

-		//	_toolItemBookmarkRemove.addSelectionListener(this);

-		

-			new ToolItem(toolBar, SWT.SEPARATOR);

-			

-			_toolItemRefresh = new ToolItem(toolBar, SWT.PUSH);

-			_toolItemRefresh.setImage(UpdateManagerPlugin.getImageDescriptor("icons/basic/ovr16/refresh.gif").createImage());

-			_toolItemRefresh.setToolTipText("Refresh");

-		//	_toolItemRefresh.addSelectionListener(this);

-		*/

-		// Client

-		//-------

-		Composite compositeClient = new Composite(compositeParent, SWT.NULL);

-

-		GridLayout layout = new GridLayout();

-		layout.numColumns = 1;

-		compositeClient.setLayout(layout);

-

-		GridData gridData = new GridData();

-		gridData.horizontalAlignment = GridData.FILL;

-		gridData.verticalAlignment = GridData.FILL;

-		gridData.grabExcessHorizontalSpace = true;

-		gridData.grabExcessVerticalSpace = true;

-		compositeClient.setLayoutData(gridData);

-		/*

-			// Splitter Top/Bottom

-			//--------------------

-			Splitter splitterTopBottom = new Splitter(compositeClient, SWT.VERTICAL, true);

-			splitterTopBottom.setLayoutData(new GridData(GridData.FILL_BOTH));

-		

-			// Top composite

-			//--------------

-			Composite compositeTop = new Composite(splitterTopBottom, SWT.NULL);

-		

-			layout = new GridLayout();

-			layout.numColumns = 2;

-			layout.marginWidth = 0;

-			layout.marginHeight = 0;

-			compositeTop.setLayout(layout);

-		

-			gridData = new GridData();

-			gridData.horizontalAlignment = GridData.FILL;

-			gridData.verticalAlignment = GridData.FILL;

-			gridData.grabExcessHorizontalSpace = true;

-			gridData.grabExcessVerticalSpace = true;

-			compositeTop.setLayoutData(gridData);

-		

-			// Separator

-			//----------

-			Label labelSeparator = new Label(compositeTop, SWT.SEPARATOR | SWT.HORIZONTAL);

-			gridData = new GridData();

-			gridData.horizontalAlignment = GridData.FILL;

-			gridData.grabExcessHorizontalSpace = true;

-			gridData.horizontalSpan = 2;

-			labelSeparator.setLayoutData(gridData);

-		

-			// Label: Location

-			//----------------

-			Label labelLocation = new Label(compositeTop, SWT.NULL);

-			labelLocation.setText("Location:");

-		

-			// Combo: Locations

-			//-----------------

-			_comboLocations = new Combo(compositeTop, SWT.NULL);

-			gridData = new GridData();

-			gridData.horizontalAlignment = GridData.FILL;

-			gridData.grabExcessHorizontalSpace = true;

-		

-			String[] straBookmarks = _properties.getBookmarkStrings();

-		

-			for (int i = 0; i < straBookmarks.length; ++i) {

-				_comboLocations.add(straBookmarks[i]);

-			}

-		

-			_comboLocations.setLayoutData(gridData);

-			_comboLocations.addModifyListener(this);

-		

-			// Separator

-			//----------

-			labelSeparator = new Label(compositeTop, SWT.SEPARATOR | SWT.HORIZONTAL);

-			gridData = new GridData();

-			gridData.horizontalAlignment = GridData.FILL;

-			gridData.grabExcessHorizontalSpace = true;

-			gridData.horizontalSpan = 2;

-			labelSeparator.setLayoutData(gridData);

-		

-			// Table: URLs

-			//------------

-			_tableURLs = new Table(compositeTop, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);

-		

-			gridData = new GridData();

-			gridData.horizontalAlignment = GridData.FILL;

-			gridData.verticalAlignment = GridData.FILL;

-			gridData.grabExcessHorizontalSpace = true;

-			gridData.grabExcessVerticalSpace = true;

-			gridData.horizontalSpan = 2;

-			_tableURLs.setLayoutData(gridData);

-		

-			String[] titles = new String[] { "Location", "Vendor" };

-			int[] widths = new int[] { 200, 200 };

-			for (int i = 0; i < titles.length; i++) {

-				TableColumn column = new TableColumn(_tableURLs, SWT.NONE);

-				column.setText(titles[i]);

-				column.setWidth(widths[i]);

-				column.addSelectionListener(this);

-			}

-			_tableURLs.setHeaderVisible(true);

-			_tableURLs.setLinesVisible(true);

-			//	_tableURLs.setMenu (createTableMenu ());

-			_tableURLs.addSelectionListener(this);

-		

-			// Sash

-			//-----

-			splitterTopBottom.addSash();

-		

-			// Splitter Left/Right

-			//--------------------

-			Splitter splitterLeftRight = new Splitter(splitterTopBottom, SWT.HORIZONTAL, true);

-			splitterLeftRight.setLayoutData(new GridData(GridData.FILL_BOTH));

-		

-			// Tree container component

-			//-------------------------

-			_compositeTreeContainer = new Composite(splitterLeftRight, SWT.NULL);

-		

-			_layoutCard = new UpdateManagerCardLayout(this);

-			_compositeTreeContainer.setLayout(_layoutCard);

-		

-			gridData = new GridData();

-			gridData.horizontalAlignment = GridData.FILL;

-			gridData.verticalAlignment = GridData.FILL;

-			gridData.grabExcessHorizontalSpace = true;

-			gridData.grabExcessVerticalSpace = true;

-			_compositeTreeContainer.setLayoutData(gridData);

-		

-			// Sash Left/Right

-			//----------------

-			splitterLeftRight.addSash();

-		

-			// Information Page

-			//-----------------

-			_infoPage = new UpdateManagerWindowInfoPage(splitterLeftRight, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);

-		

-			// Add content

-			//------------

-			doRefresh();

-		*/

-		return compositeClient;

-	}

-	/**

-	 * Displays error message of type:

-	 * <ul>

-	 * <li>error</li>

-	 * <li>warning</li>

-	 * </ul>

-	 * The title and message1 are translated before displaying

-	 */

-	private void displayMessage(String strMessageType, String strTitle, String strMessage1, String strMessage2) {

-		MessageDialog.openError(getShell(), strTitle, strMessage1 + "\n" + strMessage2);

-	}

-	/**

-	 * Initializes the location and size of this window's SWT shell 

-	 * after it has been created.

-	 * <p>

-	 * This framework method is called by the <code>create</code>

-	 * framework method. The default implementation takes into account the

-	 * shell's properties, which will have been set by <code>configureShell</code>,

-	 * and also the minimum size recommended by <code>getMinimumSize</code>.

-	 * Subclasses may extend or reimplement. 

-	 * </p>

-	 */

-	protected void initializeBounds() {

-

-		// Ensure that the width of the shell fits the display.

-		Rectangle rectScreen = getShell().getDisplay().getBounds();

-

-		// Shell bounds

-		//-------------

-		getShell().setBounds(rectScreen.width / 4, rectScreen.height / 8, rectScreen.width / 2, rectScreen.height * 6 / 8);

-	}

-}
\ No newline at end of file
diff --git a/update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMDialog.java b/update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMDialog.java
deleted file mode 100644
index a098936..0000000
--- a/update/org.eclipse.update/src/org/eclipse/update/internal/ui/UMDialog.java
+++ /dev/null
@@ -1,740 +0,0 @@
-package org.eclipse.update.internal.ui;

-/*

- * (c) Copyright IBM Corp. 2000, 2001.

- * All Rights Reserved.

- */

-

-import java.util.Vector;

import org.eclipse.core.internal.boot.LaunchInfo;
import org.eclipse.core.internal.boot.update.ComponentDescriptor;
import org.eclipse.core.internal.boot.update.IComponentDescriptor;
import org.eclipse.core.internal.boot.update.IManifestDescriptor;
import org.eclipse.core.internal.boot.update.IProductDescriptor;
import org.eclipse.core.internal.boot.update.IUMRegistry;
import org.eclipse.core.internal.boot.update.ProductDescriptor;
import org.eclipse.core.internal.boot.update.UMRegistryManager;
import org.eclipse.core.internal.boot.update.UpdateManagerConstants;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ColumnLayoutData;
import org.eclipse.jface.viewers.ColumnWeightData;
import org.eclipse.jface.viewers.TableLayout;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.BusyIndicator;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.custom.TableTree;
import org.eclipse.swt.custom.TableTreeItem;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseMoveListener;
import org.eclipse.swt.events.MouseTrackListener;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;
import org.eclipse.update.internal.core.UpdateManager;
import org.eclipse.update.internal.core.UpdateManagerException;
import org.eclipse.update.internal.core.UpdateManagerStrings;

-/**

- * 

- */

-public class UMDialog extends Dialog implements MouseMoveListener, MouseTrackListener, SelectionListener {

-

-	protected Button _buttonAdd = null;

-	protected Button _buttonUpdateAll = null;

-	protected Button _buttonUpdateSelected = null;

-	protected Button _buttonRemove = null;

-	protected Button _buttonRevert = null;

-	protected TableTree _tableTreeItems = null;

-	protected boolean _bRestartMessageRequired = false;

-

-	protected SashForm _sashFormTopBottom = null;

-	protected Text _textDescription = null;

-	protected String _strDescription = null;

-	protected UpdateManager _updateManager = null;

-	protected IUMRegistry _registry = null;

-	protected UMWizardTreeItem _umTreeItemComponentCategory = null;

-	protected UMWizardTreeItem _umTreeItemProductCategory = null;

-

-	protected UMWizardPersistentProperties _properties = null;

-

-	protected static final String _strEmpty = new String();

-	/**

-	 *

-	 */

-	public UMDialog(Shell shell) {

-		super(shell);

-

-		// Persistent Properties

-		// The properties are loaded by the constructor

-		//---------------------------------------------

-		_properties = new UMWizardPersistentProperties();

-	}

-	/**

-	 *

-	 */

-	public void connectToTree() {

-

-		// Remove all existing tree items

-		//-------------------------------

-		_tableTreeItems.removeAll();

-

-		// Products

-		//---------

-

-		if (_umTreeItemProductCategory != null) {

-

-			// Create child tree items

-			//------------------------

-			if (_umTreeItemProductCategory._vectorChildren != null) {

-				for (int i = 0; i < _umTreeItemProductCategory._vectorChildren.size(); ++i) {

-					connectToTree((UMWizardTreeItem) _umTreeItemProductCategory._vectorChildren.elementAt(i), null);

-				}

-			}

-		}

-

-		// Components

-		//-----------

-		if (_umTreeItemComponentCategory != null) {

-

-			// Create child tree items

-			//------------------------

-			if (_umTreeItemComponentCategory._vectorChildren != null) {

-				for (int i = 0; i < _umTreeItemComponentCategory._vectorChildren.size(); ++i) {

-					connectToTree((UMWizardTreeItem) _umTreeItemComponentCategory._vectorChildren.elementAt(i), null);

-				}

-			}

-		}

-

-		if (_tableTreeItems.getItemCount() == 0) {

-			_buttonUpdateAll.setEnabled(false);

-		}

-	}

-	/**

-	 * Connects items to a new tree widget.

-	 */

-	public void connectToTree(UMWizardTreeItem item, TableTreeItem treeItemParent) {

-

-		// Create a new tree item

-		//-----------------------

-		TableTreeItem treeItem = null;

-

-		if (treeItemParent != null)

-			treeItem = new TableTreeItem(treeItemParent, SWT.NULL);

-		else

-			treeItem = new TableTreeItem(_tableTreeItems, SWT.NULL);

-

-		treeItem.setText(0, item._strName);

-

-		if (item._iType == UpdateManagerConstants.TYPE_COMPONENT || item._iType == UpdateManagerConstants.TYPE_PRODUCT) {

-

-			if (item._strVersionCurrent != null)

-				treeItem.setText(1, item._strVersionCurrent);

-

-			if (item._strVendorName != null)

-				treeItem.setText(2, item._strVendorName);

-		}

-

-		treeItem.setData(item);

-

-		// Create child tree items

-		//------------------------

-		if (item._vectorChildren != null) {

-			for (int i = 0; i < item._vectorChildren.size(); ++i) {

-				connectToTree((UMWizardTreeItem) item._vectorChildren.elementAt(i), treeItem);

-			}

-		}

-

-		treeItem.setExpanded(true);

-	}

-	/**

-	 * Add buttons to the dialog's button bar.

-	 *

-	 * Subclasses should override.

-	 *

-	 * @param parent the button bar composite

-	 */

-	protected void createButtonsForButtonBar(Composite parent) {

-		createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);

-	}

-	/**

-	 * Creates and returns the contents of the upper part 

-	 * of the dialog (above the button bar).

-	 */

-	protected Control createDialogArea(Composite compositeParent) {

-

-		getShell().setText(UpdateManagerStrings.getString("S_Software_Updates"));

-

-		// Content

-		//--------

-		Composite compositeContent = new Composite(compositeParent, SWT.NULL);

-

-		GridLayout gridLayout = new GridLayout();

-		gridLayout.numColumns = 2;

-		//	gridLayout.marginWidth = 0;

-		//	gridLayout.marginHeight = 0;

-		compositeContent.setLayout(gridLayout);

-

-		GridData gridData = new GridData();

-		gridData.verticalAlignment = GridData.FILL;

-		gridData.horizontalAlignment = GridData.FILL;

-		compositeContent.setLayoutData(gridData);

-

-		// Label: Installed Products and Components

-		//-----------------------------------------

-		Label label = new Label(compositeContent, SWT.LEFT);

-		label.setText(UpdateManagerStrings.getString("S_Installed_Components"));

-		gridData = new GridData();

-		gridData.horizontalAlignment = GridData.FILL;

-		gridData.horizontalSpan = 2;

-		label.setLayoutData(gridData);

-

-		// SashForm

-		//---------

-		_sashFormTopBottom = new SashForm(compositeContent, SWT.VERTICAL);

-		gridData = new GridData();

-		gridData.horizontalAlignment = GridData.FILL;

-		gridData.verticalAlignment = GridData.FILL;

-		gridData.widthHint = 400;

-		gridData.heightHint = 400;

-		_sashFormTopBottom.setLayoutData(gridData);

-

-		// Tree: Installable

-		//------------------

-		_tableTreeItems = new TableTree(_sashFormTopBottom, SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER /* | SWT.CHECK */);

-

-		String[] columnTitles = { UpdateManagerStrings.getString("S_Component"), UpdateManagerStrings.getString("S_Version"), UpdateManagerStrings.getString("S_Provider")};

-		int[] iColumnWeight = { 50, 25, 25 };

-		TableLayout layoutTable = new TableLayout();

-

-		for (int i = 0; i < columnTitles.length; i++) {

-			TableColumn tableColumn = new TableColumn(_tableTreeItems.getTable(), SWT.NONE);

-			tableColumn.setText(columnTitles[i]);

-			ColumnLayoutData cLayout = new ColumnWeightData(iColumnWeight[i], true);

-			layoutTable.addColumnData(cLayout);

-		}

-

-		_tableTreeItems.getTable().setLinesVisible(true);

-		_tableTreeItems.getTable().setHeaderVisible(true);

-		_tableTreeItems.getTable().setLayout(layoutTable);

-		_tableTreeItems.addSelectionListener(this);

-		_tableTreeItems.getTable().addMouseMoveListener(this);

-		_tableTreeItems.getTable().addMouseTrackListener(this);

-		_tableTreeItems.addSelectionListener(this);

-

-		gridData = new GridData();

-		gridData.horizontalAlignment = GridData.FILL;

-		gridData.verticalAlignment = GridData.FILL;

-		gridData.grabExcessHorizontalSpace = true;

-		gridData.grabExcessVerticalSpace = true;

-		_tableTreeItems.setLayoutData(gridData);

-

-		// Text: Description

-		//------------------

-		_textDescription = new Text(_sashFormTopBottom, SWT.WRAP | SWT.READ_ONLY | SWT.MULTI | SWT.BORDER);

-		gridData = new GridData();

-		gridData.horizontalAlignment = GridData.FILL;

-		gridData.verticalAlignment = GridData.FILL;

-		gridData.widthHint = 500;

-		gridData.heightHint = 50;

-		_textDescription.setLayoutData(gridData);

-

-		_sashFormTopBottom.setWeights(new int[] { 80, 20 });

-

-		// Buttons

-		//--------

-		Composite compositeGroup = new Composite(compositeContent, SWT.NULL);

-		gridLayout = new GridLayout();

-		gridLayout.marginWidth = 0;

-		gridLayout.marginHeight = 0;

-		compositeGroup.setLayout(gridLayout);

-		compositeGroup.setLayoutData(new GridData(GridData.FILL_VERTICAL));

-

-		// Button: Add

-		//------------

-		_buttonAdd = new Button(compositeGroup, SWT.PUSH);

-		_buttonAdd.setText(UpdateManagerStrings.getString("S_Add") + "...");

-		_buttonAdd.setToolTipText(UpdateManagerStrings.getString("S_Search_for_new_components"));

-		_buttonAdd.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

-		_buttonAdd.addSelectionListener(this);

-

-		// Button: Remove

-		//---------------	

-		_buttonRemove = new Button(compositeGroup, SWT.PUSH);

-		_buttonRemove.setText(UpdateManagerStrings.getString("S_Remove"));

-		_buttonRemove.setToolTipText(UpdateManagerStrings.getString("S_Remove_selected_components"));

-		_buttonRemove.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

-		_buttonRemove.addSelectionListener(this);

-

-		// Button: Update

-		//---------------	

-		_buttonUpdateSelected = new Button(compositeGroup, SWT.PUSH);

-		_buttonUpdateSelected.setText(UpdateManagerStrings.getString("S_Update") + "...");

-		_buttonUpdateSelected.setToolTipText(UpdateManagerStrings.getString("S_Search_for_updates_for_selected_components"));

-		_buttonUpdateSelected.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

-		_buttonUpdateSelected.addSelectionListener(this);

-

-		// Button: Update All

-		//-------------------

-		_buttonUpdateAll = new Button(compositeGroup, SWT.PUSH);

-		_buttonUpdateAll.setText(UpdateManagerStrings.getString("S_Update_All") + "...");

-		_buttonUpdateAll.setToolTipText(UpdateManagerStrings.getString("S_Search_for_updates_for_all_components"));

-		_buttonUpdateAll.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

-		_buttonUpdateAll.addSelectionListener(this);

-

-		Label labelSeparator = new Label(compositeGroup, SWT.NULL);

-		labelSeparator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

-

-		// Button: Revert

-		//---------------

-		_buttonRevert = new Button(compositeGroup, SWT.PUSH);

-		_buttonRevert.setText(UpdateManagerStrings.getString("S_Revert") + "...");

-		_buttonRevert.setToolTipText(UpdateManagerStrings.getString("S_Revert_to_another_installation"));

-		_buttonRevert.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

-		_buttonRevert.addSelectionListener(this);

-

-		// Separator line

-		//---------------

-		labelSeparator = new Label(compositeContent, SWT.SEPARATOR | SWT.HORIZONTAL);

-		gridData = new GridData();

-		gridData.horizontalAlignment = GridData.FILL;

-		gridData.horizontalSpan = 2;

-		labelSeparator.setLayoutData(gridData);

-

-		updateEnabledState();

-

-		// Initialization

-		//---------------

-		_bRestartMessageRequired = false;

-		_sashFormTopBottom.layout();

-		initializeContent();

-

-		return compositeContent;

-	}

-	/**

-	 *