[245469] Switch to p2 live
diff --git a/plugins/org.eclipse.wst.server.core/plugin.xml b/plugins/org.eclipse.wst.server.core/plugin.xml
index 3e69244..a621728 100644
--- a/plugins/org.eclipse.wst.server.core/plugin.xml
+++ b/plugins/org.eclipse.wst.server.core/plugin.xml
@@ -16,7 +16,6 @@
   <extension-point id="publishers" name="%extensionPointPublishers" schema="schema/publishers.exsd"/>
   <extension-point id="internalServerMonitors" name="%extensionPointServerMonitors" schema="schema/serverMonitors.exsd"/>
   <extension-point id="internalStartup" name="%extensionPointServerStartup" schema="schema/startup.exsd"/>
-  <extension-point id="installableServers" name="%extensionPointInstallableServers" schema="schema/installableServers.exsd"/>
   <extension-point id="installableRuntimes" name="%extensionPointInstallableRuntimes" schema="schema/installableRuntimes.exsd"/>
   <extension-point id="runtimeFacetComponentProviders" name="%extensionPointRuntimeFacetComponentProviders" schema="schema/runtimeFacetComponentProviders.exsd"/>
 
diff --git a/plugins/org.eclipse.wst.server.core/schema/installableServers.exsd b/plugins/org.eclipse.wst.server.core/schema/installableServers.exsd
deleted file mode 100644
index f7e2708..0000000
--- a/plugins/org.eclipse.wst.server.core/schema/installableServers.exsd
+++ /dev/null
@@ -1,184 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.server.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.server.core" id="installableServers" name="Installable Servers"/>
-      </appInfo>
-      <documentation>
-         This extension point is used to install new server adapters from remote update manager sites.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="installableServer" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="installableServer">
-      <annotation>
-         <appInfo>
-            <meta.element labelAttribute="name" deprecated="true"/>
-         </appInfo>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  specifies a unique identifier for this extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  a translatable name used to identify the runtime type
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true" deprecated="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="description" type="string">
-            <annotation>
-               <documentation>
-                  a translatable description of the runtime type
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true" deprecated="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="vendor" type="string">
-            <annotation>
-               <documentation>
-                  a translatable vendor name
-               </documentation>
-               <appInfo>
-                  <meta.attribute deprecated="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string">
-            <annotation>
-               <documentation>
-                  a translatable version number
-               </documentation>
-               <appInfo>
-                  <meta.attribute deprecated="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="featureId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the id of the feature containing the server adapter bundle
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="featureVersion" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the version of the feature containing the server adapter bundle
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="featureSite" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the feature (update manager) site URL
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         &lt;b&gt;This extension point 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.&lt;/b&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         The following is an example of an installable server extension point:
-
-&lt;pre&gt;
-   &lt;extension 
-         point=&quot;org.eclipse.wst.server.core.installableServers&quot;&gt;
-      &lt;installableServer
-            id=&quot;com.myserver.id&quot;
-            name=&quot;My runtime name&quot;
-            description=&quot;My runtime description&quot;
-            vendor=&quot;xyz&quot;
-            version=&quot;1.0&quot;
-            featureVersion=&quot;1.0.0&quot;
-            featureId=&quot;com.myfeature&quot;
-            featureSite=&quot;xyz&quot;/&gt;
-   &lt;/extension&gt;
-&lt;/pre&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2005 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at 
-&lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IInstallableServer.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IInstallableServer.java
deleted file mode 100644
index 0d92beb..0000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/IInstallableServer.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-/**
- * Represents an installable server adapter.
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- */
-public interface IInstallableServer {
-	/**
-	 * Returns the id of this runtime type.
-	 * Each known server runtime type has a distinct id. 
-	 * Ids are intended to be used internally as keys; they are not
-	 * intended to be shown to end users.
-	 * 
-	 * @return the runtime type id
-	 */
-	public String getId();
-
-	/**
-	 * Returns the displayable name for this runtime type.
-	 * <p>
-	 * Note that this name is appropriate for the current locale.
-	 * </p>
-	 *
-	 * @return a displayable name for this runtime type
-	 */
-	public String getName();
-
-	/**
-	 * Returns the displayable description for this runtime type.
-	 * <p>
-	 * Note that this description is appropriate for the current locale.
-	 * </p>
-	 *
-	 * @return a displayable description for this runtime type
-	 */
-	public String getDescription();
-
-	/**
-	 * Returns the displayable vendor name for this runtime type. If the
-	 * runtime type did not specific a vendor, an empty string is returned.
-	 * <p>
-	 * Note that this description is appropriate for the current locale.
-	 * </p>
-	 *
-	 * @return a displayable vendor name for this runtime type
-	 */
-	public String getVendor();
-
-	/**
-	 * Returns the displayable version name for this runtime type. If the
-	 * runtime type did not specific a vendor, an empty string is returned.
-	 * <p>
-	 * Note that this description is appropriate for the current locale.
-	 * </p>
-	 *
-	 * @return a displayable version name for this runtime type
-	 */
-	public String getVersion();
-
-	/**
-	 * Downloads the license from the update site.
-	 * 
-	 * @param monitor a progress monitor
-	 * @return the license
-	 * @throws CoreException
-	 */
-	public String getLicense(IProgressMonitor monitor) throws CoreException;
-
-	/**
-	 * Install this server.
-	 * 
-	 * @param monitor a progress monitor, or <code>null</code> if progress
-	 *    reporting and cancellation are not desired 
-	 * @throws CoreException if an exception occurs while creating this runtime
-	 *    or setting it's default values
-	 */
-	public void install(IProgressMonitor monitor) throws CoreException;
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/InstallableServer.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/InstallableServer.java
deleted file mode 100644
index fd93a7f..0000000
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/InstallableServer.java
+++ /dev/null
@@ -1,264 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.server.core.internal;
-
-import java.net.ConnectException;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.update.core.IFeature;
-import org.eclipse.update.core.ISite;
-import org.eclipse.update.core.ISiteFeatureReference;
-import org.eclipse.update.core.IURLEntry;
-import org.eclipse.update.standalone.InstallCommand;
-import org.osgi.framework.Version;
-/**
- * 
- */
-public class InstallableServer implements IInstallableServer {
-	private IConfigurationElement element;
-
-	public InstallableServer(IConfigurationElement element) {
-		super();
-		this.element = element;
-	}
-
-	/**
-	 * 
-	 * @return the id
-	 */
-	public String getId() {
-		try {
-			return element.getAttribute("id");
-		} catch (Exception e) {
-			return null;
-		}
-	}
-
-	/**
-	 * 
-	 * @return the name
-	 */
-	public String getName() {
-		try {
-			return element.getAttribute("name");
-		} catch (Exception e) {
-			return null;
-		}
-	}
-
-	/**
-	 * 
-	 * @return the description
-	 */
-	public String getDescription() {
-		try {
-			return element.getAttribute("description");
-		} catch (Exception e) {
-			return null;
-		}
-	}
-
-	public String getVendor() {
-		try {
-			String vendor = element.getAttribute("vendor");
-			if (vendor != null)
-				return vendor;
-		} catch (Exception e) {
-			// ignore
-		}
-		return Messages.defaultVendor;
-	}
-
-	public String getVersion() {
-		try {
-			String version = element.getAttribute("version");
-			if (version != null)
-				return version;
-		} catch (Exception e) {
-			// ignore
-		}
-		return Messages.defaultVersion;
-	}
-
-	public String getFeatureVersion() {
-		try {
-			return element.getAttribute("featureVersion");
-		} catch (Exception e) {
-			// ignore
-		}
-		return null;
-	}
-
-	public String getFeatureId() {
-		try {
-			return element.getAttribute("featureId");
-		} catch (Exception e) {
-			// ignore
-		}
-		return null;
-	}
-
-	public String getFromSite() {
-		try {
-			return element.getAttribute("featureSite");
-		} catch (Exception e) {
-			// ignore
-		}
-		return null;
-	}
-
-	/*
-	 * @see IInstallableServer#getLicense(IProgressMonitor)
-	 */
-	public String getLicense(IProgressMonitor monitor) throws CoreException {
-		String featureId = getFeatureId();
-		String featureVersion = getFeatureVersion();
-		String fromSite = getFromSite();
-		
-		if (featureId == null || featureVersion == null || fromSite == null)
-			return null;
-		
-		ISite site = InstallableRuntime.getSite(fromSite, monitor);
-		ISiteFeatureReference[] featureRefs = site.getFeatureReferences();
-		for (int i = 0; i < featureRefs.length; i++) {
-			String ver = featureRefs[i].getVersionedIdentifier().toString();
-			int ind = ver.indexOf("_");
-			if (ind >= 0)
-				ver = ver.substring(ind+1);
-			if (featureId.equals(featureRefs[i].getVersionedIdentifier().getIdentifier()) && featureVersion.equals(ver)) {
-				IFeature feature = featureRefs[i].getFeature(monitor);
-				IURLEntry license = feature.getLicense();
-				if (license != null)
-					return license.getAnnotation();
-				return null;
-			}
-		}
-		return null;
-	}
-
-	public IFeature getFeature(IProgressMonitor monitor) {
-		String featureId = getFeatureId();
-		String featureVersion = getFeatureVersion();
-		String fromSite = getFromSite();
-		
-		if (featureId == null || featureVersion == null || fromSite == null)
-			return null;
-		
-		monitor.beginTask("Searching " + fromSite, 100);
-		int mirror = 0;
-		ISite site = InstallableRuntime.getSite(fromSite, ProgressUtil.getSubMonitorFor(monitor, 50));
-		if (site == null)
-			return null;
-		fromSite = InstallableRuntime.getMirror(fromSite, site, mirror);
-		
-		Version latestVersion = new Version(featureVersion);
-		ISiteFeatureReference last = null;
-		try {
-			ISiteFeatureReference[] features = site.getFeatureReferences();
-			for (int i = 0; i < features.length; i++) {
-				if (features[i].getVersionedIdentifier().getIdentifier().equals(featureId)) {
-					String ver = features[i].getVersionedIdentifier().toString();
-					int ind = ver.indexOf("_");
-					if (ind >= 0)
-						ver = ver.substring(ind+1);
-					Version nextCand = new Version(ver);
-					if (nextCand.compareTo(latestVersion) >= 0) {
-						latestVersion = nextCand;
-						last = features[i];
-					}
-				}
-			}
-			if (last != null)
-				return last.getFeature(ProgressUtil.getSubMonitorFor(monitor, 50));
-		} catch (Exception e) {
-			Trace.trace(Trace.SEVERE, "Error searching for latest feature version", e);
-		} finally {
-			monitor.done();
-		}
-		return null;
-	}
-
-	/*
-	 * @see IInstallableServer#install(IProgressMonitor)
-	 */
-	public void install(IProgressMonitor monitor) throws CoreException {
-		String featureId = getFeatureId();
-		String featureVersion = getFeatureVersion();
-		String fromSite = getFromSite();
-		
-		if (featureId == null || featureVersion == null || fromSite == null)
-			return;
-		
-		int mirror = 0;
-		ISite site = InstallableRuntime.getSite(fromSite, monitor);
-		fromSite = InstallableRuntime.getMirror(fromSite, site, mirror);
-		featureVersion = getLatestVersion(site, featureVersion, featureId);
-		
-		boolean complete = false;
-		while (!complete) {
-			try {
-				InstallCommand command = new InstallCommand(featureId, featureVersion, fromSite, null, "false");
-				boolean b = command.run(monitor);
-				if (!b)
-					throw new CoreException(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0,
-							Messages.errorInstallingServerFeature, null));
-				//command.applyChangesNow();
-			} catch (ConnectException ce) {
-				mirror++;
-				fromSite = InstallableRuntime.getMirror(fromSite, site, mirror);
-				if (fromSite == null)
-					complete = true;
-			} catch (Exception e) {
-				Trace.trace(Trace.SEVERE, "Error installing feature", e);
-				throw new CoreException(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0,
-						NLS.bind(Messages.errorInstallingServer, e.getLocalizedMessage()), e));
-			}
-		}
-		
-		try {
-			Thread.sleep(1000);
-		} catch (Exception e) {
-			// ignore
-		}
-	}
-
-	public static String getLatestVersion(ISite site, String version, String featureId) {
-		Version latestVersion = new Version(version);
-		try {
-			ISiteFeatureReference[] features = site.getFeatureReferences();
-			for (int i = 0; i < features.length; i++) {
-				if (features[i].getVersionedIdentifier().getIdentifier().equals(featureId)) {
-					String ver = features[i].getVersionedIdentifier().toString();
-					int ind = ver.indexOf("_");
-					if (ind >= 0)
-						ver = ver.substring(ind+1);
-					Version nextCand = new Version(ver);
-					if (nextCand.compareTo(latestVersion) > 0) {
-						latestVersion = nextCand;
-					}
-				}
-			}
-		} catch (Exception e) {
-			Trace.trace(Trace.SEVERE, "Error searching for latest feature version", e);
-		}
-		
-		return latestVersion.toString();
-	}
-
-	public String toString() {
-		return "InstallableServer[" + getId() + ", " + getName() + "]";
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPlugin.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPlugin.java
index 3b92f41..3b409c2 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPlugin.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPlugin.java
@@ -21,7 +21,6 @@
 import org.eclipse.wst.server.core.IModuleArtifact;
 import org.eclipse.wst.server.core.IModuleType;
 import org.eclipse.wst.server.core.IRuntime;
-import org.eclipse.wst.server.core.IRuntimeType;
 import org.eclipse.wst.server.core.IRuntimeWorkingCopy;
 import org.eclipse.wst.server.core.IServerAttributes;
 import org.eclipse.wst.server.core.IServerWorkingCopy;
@@ -69,9 +68,6 @@
 	// cached copy of all module artifact adapters
 	private static List<ModuleArtifactAdapter> moduleArtifactAdapters;
 
-	//	cached copy of all installable servers
-	private static List<IInstallableServer> installableServers;
-
 	//	cached copy of all installable runtimes
 	private static List<IInstallableRuntime> installableRuntimes;
 
@@ -1052,38 +1048,6 @@
 	}
 
 	/**
-	 * Returns an array of all known installable servers.
-	 * <p>
-	 * A new array is returned on each call, so clients may store or modify the result.
-	 * </p>
-	 * 
-	 * @return the array of installable servers {@link IInstallableServer}
-	 */
-	public static IInstallableServer[] getInstallableServers() {
-		if (installableServers == null)
-			loadInstallableServers();
-		
-		List<IInstallableServer> availableServers = new ArrayList<IInstallableServer>();
-		Iterator iterator = installableServers.iterator();
-		IRuntimeType[] runtimeTypes = ServerCore.getRuntimeTypes();
-		int size = runtimeTypes.length;
-		while (iterator.hasNext()) {
-			IInstallableServer server = (IInstallableServer) iterator.next();
-			boolean found = false;
-			for (int i = 0; i < size; i++) {
-				if (server.getId().equals(runtimeTypes[i].getId()))
-					found = true;
-			}
-			if (!found)
-				availableServers.add(server);
-		}
-		
-		IInstallableServer[] is = new IInstallableServer[availableServers.size()];
-		availableServers.toArray(is);
-		return is;
-	}
-
-	/**
 	 * Returns an array of all known installable runtimes.
 	 * <p>
 	 * A new array is returned on each call, so clients may store or modify the result.
@@ -1130,32 +1094,6 @@
 	}
 
 	/**
-	 * Load the installable servers.
-	 */
-	private static synchronized void loadInstallableServers() {
-		if (installableServers != null)
-			return;
-		Trace.trace(Trace.EXTENSION_POINT, "->- Loading .installableServers extension point ->-");
-		
-		IExtensionRegistry registry = Platform.getExtensionRegistry();
-		IConfigurationElement[] cf = registry.getConfigurationElementsFor(ServerPlugin.PLUGIN_ID, "installableServers");
-		
-		int size = cf.length;
-		List<IInstallableServer> list = new ArrayList<IInstallableServer>(size);
-		for (int i = 0; i < size; i++) {
-			try {
-				list.add(new InstallableServer(cf[i]));
-				Trace.trace(Trace.EXTENSION_POINT, "  Loaded installableServer: " + cf[i].getAttribute("id"));
-			} catch (Throwable t) {
-				Trace.trace(Trace.SEVERE, "  Could not load installableServer: " + cf[i].getAttribute("id"), t);
-			}
-		}
-		installableServers = list;
-		
-		Trace.trace(Trace.EXTENSION_POINT, "-<- Done loading .installableServers extension point -<-");
-	}
-
-	/**
 	 * Load the installable runtimes.
 	 */
 	private static synchronized void loadInstallableRuntimes() {
diff --git a/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF
index 6629155..f7f9f3b 100644
--- a/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF
@@ -14,7 +14,6 @@
  org.eclipse.wst.server.ui.internal.audio;x-internal:=true,
  org.eclipse.wst.server.ui.internal.command;x-internal:=true,
  org.eclipse.wst.server.ui.internal.editor;x-internal:=true,
- org.eclipse.wst.server.ui.internal.extension;x-internal:=true,
  org.eclipse.wst.server.ui.internal.provisional;x-internal:=true,
  org.eclipse.wst.server.ui.internal.view.servers;x-internal:=true,
  org.eclipse.wst.server.ui.internal.viewers;x-internal:=true,
@@ -26,12 +25,7 @@
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.core.expressions;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.equinox.p2.core,
- org.eclipse.equinox.p2.metadata.repository,
- org.eclipse.equinox.p2.engine,
- org.eclipse.equinox.p2.metadata,
- org.eclipse.equinox.p2.director,
- org.eclipse.equinox.p2.updatesite,
+ org.eclipse.wst.server.discovery;bundle-version="[1.0.0,2.0.0)",
  org.eclipse.ui;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.ui.ide;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.ui.forms;bundle-version="[3.2.0,4.0.0)",
@@ -42,7 +36,6 @@
  org.eclipse.debug.ui;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.wst.server.core;bundle-version="[1.0.103,2.0.0)",
  org.eclipse.wst.internet.monitor.core;bundle-version="[1.0.103,2.0.0)",
- org.eclipse.update.core;bundle-version="[3.2.0,4.0.0)";resolution:=optional,
  org.eclipse.jface.text;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.wst.common.project.facet.ui;bundle-version="[1.1.0,2.0.0)";resolution:=optional,
  org.eclipse.ui.navigator;bundle-version="3.3.100"
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/extension/ExtensionSite.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/extension/ExtensionSite.java
deleted file mode 100644
index 05ce0dd..0000000
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/extension/ExtensionSite.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.server.ui.internal.extension;
-
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.update.core.ICategory;
-import org.eclipse.update.core.IFeature;
-import org.eclipse.update.core.ISite;
-import org.eclipse.update.core.ISiteFeatureReference;
-import org.eclipse.wst.server.core.internal.IMemento;
-import org.eclipse.wst.server.core.internal.InstallableRuntime;
-import org.eclipse.wst.server.ui.internal.ProgressUtil;
-import org.eclipse.wst.server.ui.internal.ServerUIPlugin;
-/**
- * 
- */
-public class ExtensionSite {
-	private IMemento memento;
-
-	public ExtensionSite(IMemento memento) {
-		super();
-		this.memento = memento;
-	}
-
-	public String getUrl() {
-		return memento.getString("url");
-	}
-
-	private List<IFeature> featureList;
-
-	protected static boolean hasCategory(ISiteFeatureReference ref, String category) {
-		ICategory[] cat = ref.getCategories();
-		if (cat == null)
-			return false;
-		
-		int size = cat.length;
-		for (int i = 0; i < size; i++)
-			if (category.equals(cat[i].getName()))
-				return true;
-		
-		return false;
-	}
-
-	protected static boolean matches(String a, String b) {
-		if (a == null || "*".equals(a))
-			return true;
-		
-		if (b == null)
-			return false;
-		
-		StringTokenizer st = new StringTokenizer(a, ",");
-		while (st.hasMoreTokens()) {
-			String c = st.nextToken().trim();
-			if (b.equals(c))
-				return true;
-		}
-		
-		return false;
-	}
-
-	public synchronized List<IFeature> getFeatures(String category, IProgressMonitor monitor) throws CoreException {
-		if (featureList != null)
-			return featureList;
-		
-		String fromSite = getUrl();
-		
-		List<IFeature> list = new ArrayList<IFeature>();
-		if (fromSite == null)
-			return list;
-		
-		URL fromSiteURL = null;
-		try {
-			fromSiteURL = new URL(fromSite);
-		} catch (MalformedURLException e) {
-			return list;
-		}
-		
-		monitor.beginTask("Searching " + fromSite, 100);
-		ISite site = null;
-		try {
-			site = InstallableRuntime.getSite(fromSiteURL, ProgressUtil.getSubMonitorFor(monitor, 5));
-		} catch (IOException e) {
-			String host = fromSiteURL.getHost();
-			throw new CoreException(new Status(IStatus.ERROR, ServerUIPlugin.PLUGIN_ID, host, e));
-		}
-		// java.net.UnknownHostException
-		
-		ISiteFeatureReference[] featureRefs = site.getFeatureReferences();
-		for (int i = 0; i < featureRefs.length; i++) {
-			if (hasCategory(featureRefs[i], category)) {
-				if (matches(featureRefs[i].getOS(), Platform.getOS()) &&
-						matches(featureRefs[i].getOSArch(), Platform.getOSArch()) &&
-						matches(featureRefs[i].getWS(), Platform.getWS())) {
-					IFeature feature2 = featureRefs[i].getFeature(ProgressUtil.getSubMonitorFor(monitor, 5));
-					if (feature2 != null)
-						list.add(feature2);
-				}
-			}
-		}
-		monitor.done();
-		
-		featureList = list;
-		return featureList;
-	}
-
-	public String toString() {
-		return "ExtensionSite[" + getUrl() + "]";
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/extension/ExtensionUtility.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/extension/ExtensionUtility.java
deleted file mode 100644
index b925b02..0000000
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/extension/ExtensionUtility.java
+++ /dev/null
@@ -1,325 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.server.ui.internal.extension;
-
-import java.io.InputStream;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.update.configuration.IConfiguredSite;
-import org.eclipse.update.configuration.ILocalSite;
-import org.eclipse.update.core.IFeature;
-import org.eclipse.update.core.IFeatureReference;
-import org.eclipse.update.core.IURLEntry;
-import org.eclipse.update.core.IVerificationListener;
-import org.eclipse.update.core.IVerificationResult;
-import org.eclipse.update.core.SiteManager;
-import org.eclipse.update.core.VersionedIdentifier;
-import org.eclipse.wst.server.core.internal.IInstallableServer;
-import org.eclipse.wst.server.core.internal.IMemento;
-import org.eclipse.wst.server.core.internal.InstallableServer;
-import org.eclipse.wst.server.core.internal.ServerPlugin;
-import org.eclipse.wst.server.core.internal.XMLMemento;
-import org.eclipse.wst.server.ui.internal.Messages;
-import org.eclipse.wst.server.ui.internal.ProgressUtil;
-import org.eclipse.wst.server.ui.internal.ServerUIPlugin;
-import org.eclipse.wst.server.ui.internal.Trace;
-import org.eclipse.wst.server.ui.internal.wizard.ExtensionWizard;
-import org.osgi.framework.Version;
-
-public class ExtensionUtility {
-	public static boolean launchExtensionWizard(Shell shell, String title, String message) {
-		ExtensionWizard wizard2 = new ExtensionWizard(title, message);
-		WizardDialog dialog = new WizardDialog(shell, wizard2);
-		if (dialog.open() != Window.CANCEL)
-			return true;
-		return false;
-	}
-
-	public static ExtensionSite[] getExtensionItems(URL url) throws CoreException {
-		InputStream in = null;
-		try {
-			in = url.openStream();
-		} catch (Exception e) {
-			Trace.trace(Trace.SEVERE, "Could not load URL " + url);
-		}
-		
-		if (in == null)
-			throw new CoreException(new Status(IStatus.ERROR, ServerUIPlugin.PLUGIN_ID, 0, "Could not load extensions", null));
-		
-		try {
-			IMemento memento = XMLMemento.loadMemento(in);
-			IMemento children[] = memento.getChildren("site");
-			int size = children.length;
-			List<ExtensionSite> list = new ArrayList<ExtensionSite>(size);
-			for (int i = 0; i < size; i++) {
-				ExtensionSite item = new ExtensionSite(children[i]);
-				list.add(item);
-			}
-			
-			ExtensionSite[] items = new ExtensionSite[list.size()];
-			list.toArray(items);
-			return items;
-		} catch (Exception e) {
-			throw new CoreException(new Status(IStatus.ERROR, ServerUIPlugin.PLUGIN_ID, 0, e.getMessage(), e));
-		}
-	}
-
-	/**
-	 * Returns an array of all known extension items.
-	 * <p>
-	 * A new array is returned on each call, so clients may store or modify the result.
-	 * </p>
-	 * 
-	 * @return the array of extensions items {@link ExtensionSite}
-	 */
-	public static ExtensionSite[] getExtensionItems() {
-		URL url = ServerUIPlugin.getInstance().getBundle().getEntry("serverAdapterSites.xml");
-		
-		try {
-			return getExtensionItems(url);
-		} catch (CoreException ce) {
-			Trace.trace(Trace.SEVERE, "Could not get extension items");
-			return null;
-		}
-	}
-
-	/**
-	 * Return true if the new feature is already installed, or a newer one is.
-	 * 
-	 * @param existing
-	 * @param newFeature
-	 * @return true if the new feature is already installed, or a newer one is.
-	 */
-	protected static boolean alreadyExists(List existing, IFeature newFeature) {
-		if (existing.contains(newFeature))
-			return true;
-		
-		VersionedIdentifier newVi = newFeature.getVersionedIdentifier();
-		String ver = newVi.toString();
-		int ind = ver.indexOf("_");
-		if (ind >= 0)
-			ver = ver.substring(ind+1);
-		Version newV = new Version(ver);
-		
-		Iterator iterator = existing.iterator();
-		while (iterator.hasNext()) {
-			IFeature feature = (IFeature) iterator.next();
-			VersionedIdentifier vi = feature.getVersionedIdentifier(); 
-			if (vi.getIdentifier().equals(newVi.getIdentifier())) {
-				ver = vi.toString();
-				ind = ver.indexOf("_");
-				if (ind >= 0)
-					ver = ver.substring(ind+1);
-				Version nextCand = new Version(ver);
-				if (nextCand.compareTo(newV) >= 0)
-					return true;
-			}
-		}
-		
-		return false;
-	}
-
-	public static void addFeature(List<IFeature> list, List<IFeature> existing, IFeature newFeature, FeatureListener listener) {
-		if (alreadyExists(existing, newFeature))
-			return;
-		
-		VersionedIdentifier newVi = newFeature.getVersionedIdentifier();
-		String ver = newVi.toString();
-		int ind = ver.indexOf("_");
-		if (ind >= 0)
-			ver = ver.substring(ind+1);
-		Version newV = new Version(ver);
-		IFeature remove = null;
-		
-		Iterator iterator = list.iterator();
-		while (iterator.hasNext()) {
-			IFeature feature = (IFeature) iterator.next();
-			VersionedIdentifier vi = feature.getVersionedIdentifier(); 
-			if (vi.getIdentifier().equals(newVi.getIdentifier())) {
-				ver = vi.toString();
-				ind = ver.indexOf("_");
-				if (ind >= 0)
-					ver = ver.substring(ind+1);
-				Version nextCand = new Version(ver);
-				if (nextCand.compareTo(newV) < 0) {
-					remove = feature;
-				} else // new feature is older
-					return;
-			}
-		}
-		if (remove != null) {
-			list.remove(remove);
-			listener.featureRemoved(remove);
-		}
-		
-		list.add(newFeature);
-		listener.featureFound(newFeature);
-	}
-
-	public static void addFeatures(List<IFeature> list, List<IFeature> existing, List newFeatures, FeatureListener listener) {
-		Iterator iterator = newFeatures.iterator();
-		while (iterator.hasNext()) {
-			addFeature(list, existing, (IFeature) iterator.next(), listener);
-		}
-	}
-
-	public interface FeatureListener {
-		public void featureFound(IFeature feature);
-		public void featureRemoved(IFeature feature);
-		public void siteFailure(String host);
-	}
-
-	protected static List<IFeature> getExistingFeatures(IProgressMonitor monitor) throws CoreException {
-		monitor.beginTask(Messages.installableServerLocal, 100);
-		ILocalSite site = SiteManager.getLocalSite();
-		IConfiguredSite[] sites = site.getCurrentConfiguration().getConfiguredSites();
-		int size = sites.length;
-		List<IFeature> list = new ArrayList<IFeature>(200);
-		for (int i = 0; i < size; i++) {
-			IFeatureReference[] refs = sites[i].getFeatureReferences();
-			int size2 = refs.length;
-			for (int j = 0; j < size2; j++) {
-				IFeature f = refs[j].getFeature(ProgressUtil.getSubMonitorFor(monitor, 5));
-				if (!list.contains(f))
-					list.add(f);
-			}
-		}
-		monitor.done();
-		
-		return list;
-	}
-
-	public static IFeature[] getAllFeatures(final String id, final FeatureListener listener, IProgressMonitor monitor) throws CoreException {
-		monitor = ProgressUtil.getMonitorFor(monitor);
-		monitor.beginTask("", 1100);
-		
-		monitor.subTask(Messages.installableServerLocal);
-		final List<IFeature> existing = getExistingFeatures(ProgressUtil.getSubMonitorFor(monitor, 100));
-		
-		final ExtensionSite[] items = ExtensionUtility.getExtensionItems();
-		IInstallableServer[] servers = ServerPlugin.getInstallableServers();
-		final int x = 1000 / (items.length + servers.length);
-		
-		monitor.worked(50);
-		final List<IFeature> list = new ArrayList<IFeature>();
-		int size = items.length;
-		
-		Thread[] threads = new Thread[size];
-		for (int i = 0; i < size; i++) {
-			try {
-				if (monitor.isCanceled())
-					return null;
-				
-				monitor.subTask(NLS.bind(Messages.installableServerSearching, items[i].getUrl()));
-				final int ii = i;
-				final IProgressMonitor monitor2 = monitor;
-				threads[i] = new Thread("Extension Checker") {
-					public void run() {
-						try {
-							List<IFeature> list2 = items[ii].getFeatures(id, ProgressUtil.getSubMonitorFor(monitor2, x));
-							addFeatures(list, existing, list2, listener);
-						} catch (CoreException ce) {
-							listener.siteFailure(ce.getLocalizedMessage());
-							Trace.trace(Trace.WARNING, "Error downloading server adapter info", ce);
-						}
-					}
-				};
-				threads[i].setDaemon(true);
-				threads[i].start();
-			} catch (Exception e) {
-				Trace.trace(Trace.WARNING, "Error downloading server adapter info 2", e);
-			}
-		}
-		
-		for (int i = 0; i < size; i++) {
-			try {
-				if (monitor.isCanceled())
-					return null;
-				
-				if (threads[i].isAlive())
-					threads[i].join();
-			} catch (Exception e) {
-				Trace.trace(Trace.WARNING, "Error downloading server adapter info 3", e);
-			}
-		}
-		
-		// add installable servers
-		size = servers.length;
-		for (int i = 0; i < size; i++) {
-			if (monitor.isCanceled())
-				return null;
-			
-			InstallableServer is = (InstallableServer) servers[i];
-			monitor.subTask(NLS.bind(Messages.installableServerSearching, is.getFromSite()));
-			IFeature feature = is.getFeature(ProgressUtil.getSubMonitorFor(monitor, x));
-			if (feature != null)
-				addFeature(list, existing, feature, listener);
-		}
-		
-		IFeature[] ef = new IFeature[list.size()];
-		list.toArray(ef);
-		monitor.done();
-		return ef;
-	}
-
-	public static String getLicense(IFeature feature) {
-		IURLEntry license = feature.getLicense();
-		if (license != null)
-			return license.getAnnotation();
-		
-		return null;
-	}
-
-	public static String getDescription(IFeature feature) {
-		IURLEntry license = feature.getDescription();
-		if (license != null)
-			return license.getAnnotation();
-		
-		return null;
-	}
-
-	/*
-	 * @see IInstallableServer#install(IProgressMonitor)
-	 */
-	public static void install(IFeature feature, IProgressMonitor monitor) throws CoreException {
-		try {
-			IVerificationListener verificationListener = new IVerificationListener() {
-				public int prompt(IVerificationResult result) {
-					return CHOICE_INSTALL_TRUST_ONCE;
-				}
-			};
-			IConfiguredSite[] sites = SiteManager.getLocalSite().getCurrentConfiguration().getConfiguredSites();
-			if (sites == null || sites.length == 0)
-				throw new CoreException(new Status(IStatus.ERROR, ServerUIPlugin.PLUGIN_ID, "No locally configured sites"));
-			sites[0].install(feature, verificationListener, monitor);
-		} catch (CoreException ce) {
-			Trace.trace(Trace.WARNING, "Error installing server adapter", ce);
-			throw ce;
-		}
-		
-		try {
-			Thread.sleep(1000);
-		} catch (Exception e) {
-			// ignore
-		}
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/ExtensionComposite.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/ExtensionComposite.java
deleted file mode 100644
index f5a622c..0000000
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/ExtensionComposite.java
+++ /dev/null
@@ -1,494 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.server.ui.internal.viewers;
-
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.update.core.IFeature;
-import org.eclipse.wst.server.ui.internal.ImageResource;
-import org.eclipse.wst.server.ui.internal.Messages;
-import org.eclipse.wst.server.ui.internal.Trace;
-import org.eclipse.wst.server.ui.internal.extension.ExtensionUtility;
-/**
- * 
- */
-public class ExtensionComposite extends Composite {
-	public interface FeatureSelectionListener {
-		public void featureSelected(IFeature feature);
-	}
-
-	protected Table table;
-	protected TableViewer tableViewer;
-
-	protected Font font;
-
-	protected HashMap<String, Image> images;
-
-	protected String progress;
-	protected int totalWork;
-	protected double currentWork;
-	protected int count;
-
-	public FeatureSelectionListener listener;
-
-	public ExtensionComposite(Composite parent, int style, FeatureSelectionListener listener) {
-		super(parent, style);
-		this.listener = listener;
-		
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		layout.verticalSpacing = 5;
-		layout.horizontalSpacing = 5;
-		//layout.numColumns = 2;
-		setLayout(layout);
-		
-		Font currentFont = getFont();
-		FontData[] fd = currentFont.getFontData();
-		int size2 = fd.length;
-		for (int i = 0; i < size2; i++) {
-			fd[i].setHeight(fd[i].getHeight() + 2);
-			fd[i].setStyle(SWT.BOLD);
-		}
-		
-		font = new Font(getDisplay(), fd);
-		
-		GridData data = new GridData(GridData.FILL_BOTH);
-		data = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL);
-		data.heightHint = 350;
-		setLayoutData(data);
-		
-		table = new Table(this, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI | SWT.FULL_SELECTION);
-		data = new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL);
-		//data.horizontalSpan = 2;
-		//data.heightHint = 250;
-		data.widthHint = 350;
-		table.setLayoutData(data);
-		//table.setLinesVisible(true);
-		table.setHeaderVisible(false);
-		tableViewer = new TableViewer(table);
-		table.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				disposeResources();
-			}
-		});
-		
-		TableLayout tableLayout = new TableLayout();
-		table.setLayout(tableLayout);
-		
-		/*tableLayout.addColumnData(new ColumnPixelData(90, false));
-		//tableLayout.addColumnData(new ColumnWeightData(8, 80, true));
-		TableColumn col2 = new TableColumn(table, SWT.NONE);
-		col2.setText("null");
-		*/
-		tableLayout.addColumnData(new ColumnWeightData(10, 250, false));
-		final TableColumn col = new TableColumn(table, SWT.NONE);
-		col.setText("null");
-		/*col.setWidth(300);
-		col.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event event) {
-				col.pack();
-			}
-		});*/
-		
-		//tableLayout.addColumnData(new ColumnWeightData(30, 250, false));
-		//TableColumn col2 = new TableColumn(table, SWT.NONE);
-		//col2.setText("null2");
-		
-		final int TEXT_MARGIN = 3;
-		table.addListener(SWT.MeasureItem, new Listener() {
-			public void handleEvent(Event event) {
-				//System.out.println(event.width);
-				/*TableItem item = (TableItem) event.item;
-				Object obj = item.getData();
-				//System.out.println("measure " + obj);
-				if (obj instanceof CoreException) {
-					event.gc.setFont(font);
-					Point size = event.gc.textExtent("A");
-					event.gc.setFont(null);
-					//event.height = Math.max(event.height, TEXT_MARGIN * 2 + size.y);
-					event.height = TEXT_MARGIN * 2 + size.y;
-					System.out.println(event.height);
-					return;
-				}*/
-				event.gc.setFont(font);
-				Point size = event.gc.textExtent("A");
-				int h = TEXT_MARGIN * 3 + size.y;
-				size = event.gc.textExtent("A");
-				event.gc.setFont(null);
-				h += size.y;
-				h = Math.max(h, 40 + TEXT_MARGIN * 2);
-				//event.width = 400;
-				event.height = Math.max(event.height, h);
-				//System.out.println(event.height);
-				//event.width = 300;
-			}
-		});
-		table.addListener(SWT.EraseItem, new Listener() {
-			public void handleEvent(Event event) {
-				//if (event.index == 0)
-				//	return;
-				event.detail &= ~SWT.FOREGROUND;
-				//event.detail &= ~SWT.BACKGROUND;
-			}
-		});
-		table.addListener(SWT.PaintItem, new Listener() {
-			public void handleEvent(Event event) {
-				//if (event.index == 0)
-				//	return;
-				TableItem item = (TableItem) event.item;
-				Object obj = item.getData();
-				
-				int width = table.getColumn(0).getWidth();
-				GC gc = event.gc;
-				
-				if (obj instanceof String) {
-					String s = (String) obj;
-					if (progress != null)
-						s = progress;
-					int h = event.y + event.height / 2;
-					Point size = event.gc.textExtent(s);
-					gc.drawText(s, event.x + TEXT_MARGIN, h - size.y/2, true);
-					
-					int hh = event.y + event.height - 5 - TEXT_MARGIN - 1;
-					
-					gc.setLineWidth(2);
-					Color color = getDisplay().getSystemColor(SWT.COLOR_LIST_SELECTION);
-					gc.setBackground(color);
-					
-					int width2 = 0;
-					int step = 9;
-					if (totalWork > 0)
-						width2 = (int) ((width - step * 2 - 15 - TEXT_MARGIN * 2) * currentWork / totalWork);
-					
-					for (int i = 0; i < width2; i+= step) {
-						gc.fillRectangle(event.x + TEXT_MARGIN + i, hh, step - 2, 5);
-					}
-					
-					return;
-				} else if (obj instanceof List) {
-					List<String> list = (List<String>) obj;
-					
-					int size = list.size();
-					String[] hosts = new String[size];
-					list.toArray(hosts);
-					
-					StringBuffer sb = new StringBuffer();
-					for (int i = 0; i < size; i++) {
-						if (i > 0)
-							sb.append(", ");
-						sb.append(hosts[i]);
-					}
-					String s = NLS.bind(Messages.wizNewInstallableServerSiteError, sb.toString());
-					gc.drawText(s, event.x + TEXT_MARGIN, event.y + TEXT_MARGIN, true);
-					return;
-				}
-				IFeature ei = (IFeature) obj;
-				if (ei == null)
-					return;
-				
-				
-				//if ((event.detail & SWT.SELECTED) == 0) {
-				//	//event.gc.setForeground();
-				//	//event.gc.fillRectangle(0, 0, width, 5);
-				//	event.gc.setBackground(getBackground());
-				//	event.gc.setForeground(getForeground());
-				//	event.gc.fillRectangle(event.x, event.y, width, event.height);
-				//}
-				//System.out.println(width + " " + event.width + " " + event.x);
-				
-				String name = ei.getLabel();
-				String provider = "" + ei.getProvider();
-				//String provider = "" + ei.getImage();
-				//String provider = "" + ExtensionUtility.getDescription(ei);
-				String ver = ei.getVersionedIdentifier().toString();
-				int ind = ver.indexOf("_");
-				if (ind >= 0)
-					ver = ver.substring(ind+1);
-				String version = "v" + ver;
-				
-				Image image = getImage(ei.getImage());
-				if (image == null)
-					image = ImageResource.getImage(ImageResource.IMG_WIZBAN_NEW_SERVER);
-				int iw = image.getBounds().width;
-				int ih = image.getBounds().height;
-				gc.drawImage(image, 0, 0, iw, ih, event.x + TEXT_MARGIN, event.y + TEXT_MARGIN, 40, 40);
-				iw = 40 + TEXT_MARGIN * 2;
-				
-				int yOffset = TEXT_MARGIN;
-				gc.setFont(font);
-				gc.drawText(name, event.x + iw, event.y + yOffset, true);
-				Point size = event.gc.textExtent(name);
-				gc.setFont(null);
-				
-				yOffset += size.y + TEXT_MARGIN;
-				gc.drawText(provider, event.x + iw, event.y + yOffset, true);
-				
-				size = event.gc.textExtent(version);
-				gc.drawText(version, event.x + width - TEXT_MARGIN * 3 - size.x, event.y + yOffset, true);
-			}
-		});
-		
-		tableViewer.setSorter(new ViewerSorter() {
-			public int compare(Viewer viewer, Object e1, Object e2) {
-				if ((e1 instanceof IFeature) && !(e2 instanceof IFeature))
-					return -1;
-				if (!(e1 instanceof IFeature) && (e2 instanceof IFeature))
-					return 1;
-				try {
-					IFeature f1 = (IFeature) e1;
-					IFeature f2 = (IFeature) e2;
-					return (f1.getLabel().compareToIgnoreCase(f2.getLabel()));
-				} catch (Exception e) {
-					return 0;
-				}
-			}
-		});
-		
-		/*Composite buttonComp = new Composite(this, SWT.NONE);
-		buttonComp.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING));
-		layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		buttonComp.setLayout(layout);
-		
-		Button install = SWTUtil.createButton(buttonComp, "Find Updates");
-		install.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				//
-			}
-		});*/
-		
-		final Label description = new Label(this, SWT.WRAP);
-		description.setText("Multi\nLine\nMessage");
-		Dialog.applyDialogFont(this);
-		Point p = description.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		description.setText("");
-		data = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_CENTER);
-		data.horizontalSpan = 2;
-		if (p.y > 10)
-			data.heightHint = p.y;
-		else
-			data.heightHint = 42;
-		description.setLayoutData(data);
-		
-		/*final Label download = new Label(this, SWT.NONE);
-		data = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_CENTER);
-		data.horizontalSpan = 2;
-		download.setLayoutData(data);
-		download.setText("Download size: ");*/
-		
-		tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				StructuredSelection sel = (StructuredSelection) tableViewer.getSelection();
-				Object obj = sel.getFirstElement();
-				IFeature feature = null;
-				if (obj instanceof IFeature)
-					feature = (IFeature) obj;
-				
-				handleSelection(feature);
-				if (feature != null)
-					description.setText(ExtensionUtility.getDescription(feature));
-				else
-					description.setText("");
-				/*long size = feature.getDownloadSize();
-				String s = "<unknown>";
-				if (size > 0)
-					s = size + " Kb";
-				download.setText("Download size: " + s);*/
-			}
-		});
-		
-		deferInitialization();
-	}
-
-	protected Image getImage(URL url) {
-		if (url == null)
-			return null;
-		
-		try {
-			Image image = images.get(url.toString());
-			if (image != null)
-				return image;
-		} catch (Exception e) {
-			// ignore
-		}
-		try {
-			ImageDescriptor id = ImageDescriptor.createFromURL(url);
-			Image image = id.createImage();
-			if (images == null)
-				images = new HashMap<String, Image>();
-			images.put(url.toString(), image);
-			return image;
-		} catch (Exception e) {
-			Trace.trace(Trace.INFO, "Could not create image", e);
-		}
-		return null;
-	}
-
-	protected void disposeResources() {
-		try {
-			font.dispose();
-			
-			if (images != null) {
-				Iterator iterator = images.values().iterator();
-				while (iterator.hasNext()) {
-					Image image = (Image) iterator.next();
-					image.dispose();
-				}
-			}
-		} catch (Exception e) {
-			Trace.trace(Trace.WARNING, "Could not dispose - possible resource leak", e);
-		}
-	}
-
-	protected void handleSelection(IFeature feature) {
-		listener.featureSelected(feature);
-	}
-
-	protected void deferInitialization() {
-		final List<Object> list = Collections.synchronizedList(new ArrayList<Object>());
-		list.add(Messages.viewInitializing);
-		
-		tableViewer.setContentProvider(new ExtensionContentProvider(list));
-		tableViewer.setLabelProvider(new ExtensionTableLabelProvider());
-		tableViewer.setInput(AbstractTreeContentProvider.ROOT);
-		
-		final Thread t = new Thread("Deferred Initialization") {
-			public void run() {
-				deferredInitialize(list, new IProgressMonitor() {
-					public void beginTask(String name, int totalWork2) {
-						totalWork = totalWork2;
-						progress = name;
-					}
-
-					public void setTaskName(String name) {
-						progress = name;
-					}
-
-					public void subTask(String name) {
-						progress = name;
-					}
-
-					public void done() {
-						// 
-					}
-
-					public void internalWorked(double work) {
-						currentWork += work;
-					}
-
-					public boolean isCanceled() {
-						return false;
-					}
-
-					public void setCanceled(boolean value) {
-						// 
-					}
-
-					public void worked(int work) {
-						currentWork += work;
-					}
-				});
-			}
-		};
-		t.setDaemon(true);
-		t.start();
-		
-		final Display display = getDisplay();
-		final int SLEEP = 100;
-		final Runnable[] animator = new Runnable[1];
-		animator[0] = new Runnable() {
-			public void run() {
-				if (t.isAlive()) {
-					count++;
-					if (!table.isDisposed())
-						tableViewer.refresh(AbstractTreeContentProvider.ROOT);
-					display.timerExec(SLEEP, animator[0]);
-				}
-			}
-		};
-		display.timerExec(SLEEP, animator[0]);
-	}
-
-	public void deferredInitialize(final List<Object> list, IProgressMonitor monitor) {
-		final List<String> failedSites = new ArrayList<String>();
-		ExtensionUtility.FeatureListener listener2 = new ExtensionUtility.FeatureListener() {
-			public void featureFound(IFeature feature) {
-				list.add(feature);
-				if (progress != null)
-					list.set(0, progress);
-			}
-
-			public void featureRemoved(IFeature feature) {
-				list.remove(feature);
-			}
-
-			public void siteFailure(String host) {
-				synchronized (failedSites) {
-					if (!list.contains(failedSites))
-						list.add(failedSites);
-					failedSites.add(host);
-				}
-			}
-		};
-		
-		String id = "org.eclipse.wst.server.core.serverAdapter";
-		try {
-			ExtensionUtility.getAllFeatures(id, listener2, monitor);
-		} catch (CoreException ce) {
-			Trace.trace(Trace.WARNING, "Error downloading server adapter info", ce);
-		}
-		
-		list.remove(0);
-		Display.getDefault().asyncExec(new Runnable() {
-			public void run() {
-				if (!table.isDisposed())
-					tableViewer.refresh(AbstractTreeContentProvider.ROOT);
-			}
-		});
-	}
-
-	protected Object getSelection(ISelection sel2) {
-		IStructuredSelection sel = (IStructuredSelection) sel2;
-		return sel.getFirstElement();
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/ExtensionContentProvider.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/ExtensionContentProvider.java
deleted file mode 100644
index a94cfeb..0000000
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/ExtensionContentProvider.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.server.ui.internal.viewers;
-
-import java.util.List;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-/**
- * Extension content provider.
- */
-public class ExtensionContentProvider implements IStructuredContentProvider {
-	protected List list;
-
-	public ExtensionContentProvider(List list) {
-		super();
-		this.list = list;
-	}
-
-	public void dispose() {
-		// do nothing
-	}
-
-	public Object[] getElements(Object inputElement) {
-		return list.toArray();
-	}
-
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		// do nothing
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/ExtensionTableLabelProvider.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/ExtensionTableLabelProvider.java
deleted file mode 100644
index 75ce1da..0000000
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/ExtensionTableLabelProvider.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.server.ui.internal.viewers;
-
-import java.util.List;
-
-import org.eclipse.jface.viewers.ILabelDecorator;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.update.core.IFeature;
-import org.eclipse.swt.graphics.Image;
-/**
- * Extension item table label provider.
- */
-public class ExtensionTableLabelProvider extends BaseLabelProvider implements ITableLabelProvider {
-	/**
-	 * ExtensionTableLabelProvider constructor comment.
-	 */
-	public ExtensionTableLabelProvider() {
-		super();
-	}
-
-	/**
-	 * ExtensionTableLabelProvider constructor comment.
-	 * 
-	 * @param decorator a label decorator, or null if no decorator is required
-	 */
-	public ExtensionTableLabelProvider(ILabelDecorator decorator) {
-		super(decorator);
-	}
-
-	/**
-	 * @see ITableLabelProvider#getColumnImage(Object, int)
-	 */
-	public Image getColumnImage(Object element, int columnIndex) {
-		return null;
-	}
-
-	/**
-	 * @see ITableLabelProvider#getColumnText(Object, int)
-	 */
-	public String getColumnText(Object element, int columnIndex) {
-		if (element instanceof List)
-			return "Some update sites failed";
-		
-		if (element instanceof String)
-			return ((String) element) + Math.random();
-		
-		IFeature item = (IFeature) element;
-		return item.getLabel() + "\n" + item.getProvider();
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/RuntimeTypeComposite.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/RuntimeTypeComposite.java
index f730cb8..e341a68 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/RuntimeTypeComposite.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/RuntimeTypeComposite.java
@@ -15,9 +15,9 @@
 import org.eclipse.swt.widgets.Shell;
 
 import org.eclipse.wst.server.core.IRuntimeType;
+import org.eclipse.wst.server.discovery.Discovery;
 import org.eclipse.wst.server.ui.internal.Messages;
 import org.eclipse.wst.server.ui.internal.ServerUIPlugin;
-import org.eclipse.wst.server.ui.internal.extension.ExtensionUtility;
 /**
  * 
  */
@@ -125,7 +125,7 @@
 	}
 
 	protected void detailsSelected() {
-		if (ExtensionUtility.launchExtensionWizard(getShell(), Messages.wizNewInstallableServerTitle,
+		if (Discovery.launchExtensionWizard(getShell(), Messages.wizNewInstallableServerTitle,
 				Messages.wizNewInstallableServerDescription)) {
 			//refresh();
 			closeWizard(this);
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/ServerTypeComposite.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/ServerTypeComposite.java
index 50d453e..d6a100b 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/ServerTypeComposite.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/ServerTypeComposite.java
@@ -27,9 +27,9 @@
 
 import org.eclipse.wst.server.core.IModuleType;
 import org.eclipse.wst.server.core.IServerType;
+import org.eclipse.wst.server.discovery.Discovery;
 import org.eclipse.wst.server.ui.internal.Messages;
 import org.eclipse.wst.server.ui.internal.ServerUIPlugin;
-import org.eclipse.wst.server.ui.internal.extension.ExtensionUtility;
 /**
  * 
  */
@@ -75,7 +75,7 @@
 		});
 		treeViewer.setLabelProvider(labelProvider);
 		treeViewer.setInput(AbstractTreeContentProvider.ROOT);
-
+		
 		treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
 			public void selectionChanged(SelectionChangedEvent event) {
 				Object obj = getSelection(event.getSelection());
@@ -178,7 +178,7 @@
 	}
 
 	protected void detailsSelected() {
-		if (ExtensionUtility.launchExtensionWizard(getShell(), Messages.wizNewInstallableServerTitle,
+		if (Discovery.launchExtensionWizard(getShell(), Messages.wizNewInstallableServerTitle,
 				Messages.wizNewInstallableServerDescription)) {
 			//refresh();
 			closeWizard(this);
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/ExtensionWizard.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/ExtensionWizard.java
deleted file mode 100644
index c404e8d..0000000
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/ExtensionWizard.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.server.ui.internal.wizard;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.update.core.IFeature;
-import org.eclipse.wst.server.core.TaskModel;
-import org.eclipse.wst.server.ui.internal.Messages;
-import org.eclipse.wst.server.ui.internal.Trace;
-import org.eclipse.wst.server.ui.internal.extension.ExtensionUtility;
-import org.eclipse.wst.server.ui.internal.wizard.fragment.ExtensionWizardFragment;
-import org.eclipse.wst.server.ui.internal.wizard.fragment.LicenseWizardFragment;
-import org.eclipse.wst.server.ui.wizard.IWizardHandle;
-import org.eclipse.wst.server.ui.wizard.WizardFragment;
-/**
- * A wizard to create a new installable server.
- */
-public class ExtensionWizard extends TaskWizard {
-	/**
-	 * Create a new ExtensionWizard.
-	 * 
-	 * @param title the wizard title
-	 * @param message the description message
-	 */
-	public ExtensionWizard(String title, String message) {
-		super(title, new WizardFragment() {
-			protected void createChildFragments(List<WizardFragment> list) {
-				list.add(new ExtensionWizardFragment());
-				list.add(new LicenseWizardFragment());
-				list.add(new WizardFragment() {
-					public void performFinish(IProgressMonitor monitor) throws CoreException {
-						IFeature is = (IFeature) getTaskModel().getObject(WizardTaskUtil.TASK_FEATURE);
-						if (is != null)
-							install(is);
-					}
-				});
-			}
-		});
-	}
-
-	public static void invalidateLicense(TaskModel taskModel) {
-		IFeature is = (IFeature) taskModel.getObject(WizardTaskUtil.TASK_FEATURE);
-		IFeature ls = (IFeature) taskModel.getObject(LicenseWizardFragment.LICENSE_SERVER);
-		if (is == ls)
-			return;
-		
-		taskModel.putObject(LicenseWizardFragment.LICENSE, LicenseWizardFragment.LICENSE_UNKNOWN);
-		taskModel.putObject(LicenseWizardFragment.LICENSE_ACCEPT, null);
-		taskModel.putObject(LicenseWizardFragment.LICENSE_SERVER, null);
-	}
-
-	public static void updateLicense(IWizardHandle wizard, final TaskModel taskModel) {
-		final IFeature feature = (IFeature) taskModel.getObject(WizardTaskUtil.TASK_FEATURE);
-		IFeature ls = (IFeature) taskModel.getObject(LicenseWizardFragment.LICENSE_SERVER);
-		if (feature.equals(ls))
-			return;
-		
-		IRunnableWithProgress runnable = new IRunnableWithProgress() {
-			public void run(IProgressMonitor monitor) {
-				String license = LicenseWizardFragment.LICENSE_UNKNOWN;
-				license = ExtensionUtility.getLicense(feature);
-				if (license == null)
-					license = LicenseWizardFragment.LICENSE_NONE;
-				taskModel.putObject(LicenseWizardFragment.LICENSE, license);
-				taskModel.putObject(LicenseWizardFragment.LICENSE_SERVER, feature);
-			}
-		};
-		
-		try {
-			wizard.run(true, false, runnable);
-		} catch (Exception e) {
-			Trace.trace(Trace.SEVERE, "Error with runnable", e); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Install a new feature.
-	 * @param feature
-	 */
-	protected static void install(final IFeature feature) {
-		if (feature == null)
-			return;
-		
-		final boolean[] b = new boolean[1];
-		final Display display = Display.getDefault();
-		display.syncExec(new Runnable() {
-			public void run() {
-				String msg = NLS.bind(Messages.wizNewInstallableServerConfirm, feature.getLabel());
-				b[0] = MessageDialog.openConfirm(display.getActiveShell(),
-					Messages.defaultDialogTitle, msg);
-			}
-		});
-		if (!b[0])
-			return;
-		
-		String name = NLS.bind(Messages.wizNewInstallableServerJob, feature.getLabel());
-		Job job = new Job(name) {
-			public IStatus run(IProgressMonitor monitor) {
-				try {
-					ExtensionUtility.install(feature, monitor);
-					if (!monitor.isCanceled())
-						promptRestart();
-					return Status.OK_STATUS;
-				} catch (CoreException ce) {
-					return ce.getStatus();
-				}
-			}
-		};
-		job.setUser(true);
-		job.schedule();
-	}
-
-	/**
-	 * Prompt the user to restart.
-	 */
-	public static void promptRestart() {
-		final Display display = Display.getDefault();
-		display.asyncExec(new Runnable() {
-			public void run() {
-				if (MessageDialog.openQuestion(display.getActiveShell(),
-						Messages.defaultDialogTitle, Messages.wizNewInstallableServerRestart)) {
-					Thread t = new Thread("Restart thread") {
-						public void run() {
-							try {
-								sleep(1000);
-							} catch (Exception e) {
-								// ignore
-							}
-							display.asyncExec(new Runnable() {
-								public void run() {
-									PlatformUI.getWorkbench().restart();
-								}
-							});
-						}
-					};
-					t.setDaemon(true);
-					t.start();
-				}
-			}
-		});
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/fragment/ExtensionWizardFragment.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/fragment/ExtensionWizardFragment.java
deleted file mode 100644
index a97da0d..0000000
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/fragment/ExtensionWizardFragment.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.server.ui.internal.wizard.fragment;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.wst.server.ui.internal.ImageResource;
-import org.eclipse.wst.server.ui.internal.Messages;
-import org.eclipse.wst.server.ui.internal.wizard.ExtensionWizard;
-import org.eclipse.wst.server.ui.internal.wizard.WizardTaskUtil;
-import org.eclipse.wst.server.ui.internal.wizard.page.Extension2Composite;
-import org.eclipse.wst.server.ui.wizard.WizardFragment;
-import org.eclipse.wst.server.ui.wizard.IWizardHandle;
-/**
- * 
- */
-public class ExtensionWizardFragment extends WizardFragment {
-	protected Extension2Composite comp;
-	protected IWizardHandle wizard;
-
-	public ExtensionWizardFragment() {
-		// do nothing
-	}
-
-	public boolean hasComposite() {
-		return true;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.server.ui.internal.task.WizardTask#getWizardPage()
-	 */
-	public Composite createComposite(Composite parent, IWizardHandle wizard2) {
-		this.wizard = wizard2;
-		comp = new Extension2Composite(parent, getTaskModel(), wizard);
-		
-		wizard.setTitle(Messages.wizNewInstallableServerTitle);
-		wizard.setDescription(Messages.wizNewInstallableServerDescription);
-		wizard.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_WIZBAN_NEW_SERVER));
-		return comp;
-	}
-
-	public boolean isComplete() {
-		return getTaskModel().getObject(WizardTaskUtil.TASK_FEATURE) != null;
-	}
-
-	public void exit() {
-		ExtensionWizard.updateLicense(wizard, getTaskModel());
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/Extension2Composite.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/Extension2Composite.java
deleted file mode 100644
index 5263f01..0000000
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/Extension2Composite.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.server.ui.internal.wizard.page;
-
-import org.eclipse.jface.dialogs.Dialog;
-
-import org.eclipse.update.core.IFeature;
-import org.eclipse.wst.server.core.TaskModel;
-import org.eclipse.wst.server.ui.internal.Messages;
-import org.eclipse.wst.server.ui.internal.SWTUtil;
-import org.eclipse.wst.server.ui.internal.viewers.ExtensionComposite;
-import org.eclipse.wst.server.ui.internal.wizard.ExtensionWizard;
-import org.eclipse.wst.server.ui.internal.wizard.WizardTaskUtil;
-import org.eclipse.wst.server.ui.wizard.IWizardHandle;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-/**
- * A composite used to select a server to install.
- */
-public class Extension2Composite extends Composite {
-	private TaskModel taskModel;
-	private IWizardHandle wizard;
-	private ExtensionComposite comp;
-
-	/**
-	 * Create a new NewInstallableServerComposite.
-	 * 
-	 * @param parent a parent composite
-	 * @param taskModel a task model
-	 * @param wizard the wizard this composite is contained in
-	 */
-	public Extension2Composite(Composite parent, TaskModel taskModel, IWizardHandle wizard) {
-		super(parent, SWT.NONE);
-		this.taskModel = taskModel;
-		this.wizard = wizard;
-		
-		createControl();
-	}
-
-	/**
-	 * Creates the UI of the page.
-	 */
-	protected void createControl() {
-		GridLayout layout = new GridLayout();
-		layout.horizontalSpacing = SWTUtil.convertHorizontalDLUsToPixels(this, 4);
-		layout.verticalSpacing = SWTUtil.convertVerticalDLUsToPixels(this, 4);
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		layout.numColumns = 3;
-		setLayout(layout);
-		//WorkbenchHelp.setHelp(this, ContextIds.SELECT_CLIENT_WIZARD);
-		
-		Label label = new Label(this, SWT.WRAP);
-		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING);
-		data.horizontalSpan = 3;
-		data.widthHint = 225;
-		label.setLayoutData(data);
-		label.setText(Messages.wizNewInstallableServerMessage);
-		
-		comp = new ExtensionComposite(this, SWT.NONE, new ExtensionComposite.FeatureSelectionListener() {
-			public void featureSelected(IFeature feature) {
-				handleSelection(feature);
-			}
-		});
-		data = new GridData(GridData.FILL_BOTH);
-		data.heightHint = 200;
-		comp.setLayoutData(data);
-		
-		Dialog.applyDialogFont(this);
-		
-		/*Job job = new Job("Downloading information") {
-			public IStatus run(IProgressMonitor monitor) {
-				Display.getDefault().asyncExec(new Runnable() {
-					public void run() {
-						try {
-							comp.deferredInitialize(new NullProgressMonitor());
-						} catch (Exception e) {
-							// ignore - view has already been closed
-						}
-					}
-				});
-				return Status.OK_STATUS;
-			}
-		};
-		
-		job.setSystem(true);
-		job.setPriority(Job.SHORT);
-		job.schedule();*/
-		
-		/*Thread t= new Thread() {
-			public void run() {
-				Display.getDefault().asyncExec(new Runnable() {
-					public void run() {
-						runBackground();
-					}
-				});
-			}
-		};
-		t.start();*/
-		//runBackground();
-	}
-
-	/*protected void runBackground() {
-		IRunnableWithProgress runnable = new IRunnableWithProgress() {
-			public void run(IProgressMonitor monitor) {
-				comp.deferredInitialize(monitor);
-			}
-		};
-		try {
-			wizard.run(true, false, runnable);
-		} catch (Exception e) {
-			Trace.trace(Trace.SEVERE, "Error with runnable", e); //$NON-NLS-1$
-		}
-	}*/
-
-	protected void handleSelection(IFeature feature) {
-		taskModel.putObject(WizardTaskUtil.TASK_FEATURE, feature);
-		ExtensionWizard.invalidateLicense(taskModel);
-		wizard.update();
-	}
-}
\ No newline at end of file