This commit was manufactured by cvs2svn to create tag 'R3_0_5'.
diff --git a/features/org.eclipse.jst.server_adapters.feature/feature.xml b/features/org.eclipse.jst.server_adapters.feature/feature.xml
index 6e22e60..9e1c376 100644
--- a/features/org.eclipse.jst.server_adapters.feature/feature.xml
+++ b/features/org.eclipse.jst.server_adapters.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.server_adapters.feature"
       label="%featureName"
-      version="3.1.0.qualifier"
+      version="3.0.4.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.jst.server_adapters.sdk.feature/feature.xml b/features/org.eclipse.jst.server_adapters.sdk.feature/feature.xml
index 6f04e0e..29b36c9 100644
--- a/features/org.eclipse.jst.server_adapters.sdk.feature/feature.xml
+++ b/features/org.eclipse.jst.server_adapters.sdk.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.server_adapters.sdk.feature"
       label="%featureName"
-      version="3.1.0.qualifier"
+      version="3.0.4.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.jst.server_core.feature/feature.xml b/features/org.eclipse.jst.server_core.feature/feature.xml
index 6b32474..19d34fb 100644
--- a/features/org.eclipse.jst.server_core.feature/feature.xml
+++ b/features/org.eclipse.jst.server_core.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.server_core.feature"
       label="%featureName"
-      version="3.1.0.qualifier"
+      version="3.0.4.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.jst.server_sdk.feature/feature.xml b/features/org.eclipse.jst.server_sdk.feature/feature.xml
index 7dfdea7..e387248 100644
--- a/features/org.eclipse.jst.server_sdk.feature/feature.xml
+++ b/features/org.eclipse.jst.server_sdk.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.server_sdk.feature"
       label="%featureName"
-      version="3.1.0.qualifier"
+      version="3.0.4.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.jst.server_tests.feature/feature.xml b/features/org.eclipse.jst.server_tests.feature/feature.xml
index 6ca3d67..81ab60a 100644
--- a/features/org.eclipse.jst.server_tests.feature/feature.xml
+++ b/features/org.eclipse.jst.server_tests.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.server_tests.feature"
       label="%featureName"
-      version="3.1.0.qualifier"
+      version="3.0.1.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.jst.server_ui.feature/feature.xml b/features/org.eclipse.jst.server_ui.feature/feature.xml
index a0a5c99..6bad139 100644
--- a/features/org.eclipse.jst.server_ui.feature/feature.xml
+++ b/features/org.eclipse.jst.server_ui.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.server_ui.feature"
       label="%featureName"
-      version="3.1.0.qualifier"
+      version="3.0.4.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.wst.server_adapters.feature/feature.xml b/features/org.eclipse.wst.server_adapters.feature/feature.xml
index 579dc50..34b0453 100644
--- a/features/org.eclipse.wst.server_adapters.feature/feature.xml
+++ b/features/org.eclipse.wst.server_adapters.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.wst.server_adapters.feature"
       label="%featureName"
-      version="3.1.0.qualifier"
+      version="3.0.1.qualifier"
       provider-name="%providerName">
 
    <description>
@@ -22,7 +22,7 @@
    </url>
 
    <requires>
-      <import feature="org.eclipse.platform" version="3.5.0"/>
+      <import feature="org.eclipse.platform" version="3.4.0"/>
    </requires>
 
    <plugin
diff --git a/features/org.eclipse.wst.server_adapters.sdk.feature/feature.xml b/features/org.eclipse.wst.server_adapters.sdk.feature/feature.xml
index 2a5869b..8282e93 100644
--- a/features/org.eclipse.wst.server_adapters.sdk.feature/feature.xml
+++ b/features/org.eclipse.wst.server_adapters.sdk.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.wst.server_adapters.sdk.feature"
       label="%featureName"
-      version="3.1.0.qualifier"
+      version="3.0.1.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.wst.server_core.feature/feature.xml b/features/org.eclipse.wst.server_core.feature/feature.xml
index cd46c4d..94764ef 100644
--- a/features/org.eclipse.wst.server_core.feature/feature.xml
+++ b/features/org.eclipse.wst.server_core.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.wst.server_core.feature"
       label="%featureName"
-      version="3.1.0.qualifier"
+      version="3.0.5.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.wst.server_sdk.feature/feature.xml b/features/org.eclipse.wst.server_sdk.feature/feature.xml
index 2b32d7f..9e3fa73 100644
--- a/features/org.eclipse.wst.server_sdk.feature/feature.xml
+++ b/features/org.eclipse.wst.server_sdk.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.wst.server_sdk.feature"
       label="%featureName"
-      version="3.1.0.qualifier"
+      version="3.0.5.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.wst.server_tests.feature/feature.xml b/features/org.eclipse.wst.server_tests.feature/feature.xml
index 147ca8a..454902f 100644
--- a/features/org.eclipse.wst.server_tests.feature/feature.xml
+++ b/features/org.eclipse.wst.server_tests.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.wst.server_tests.feature"
       label="%featureName"
-      version="3.1.0.qualifier"
+      version="3.0.0.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.wst.server_ui.feature/feature.xml b/features/org.eclipse.wst.server_ui.feature/feature.xml
index 94f8e8e..e9adaef 100644
--- a/features/org.eclipse.wst.server_ui.feature/feature.xml
+++ b/features/org.eclipse.wst.server_ui.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.wst.server_ui.feature"
       label="%featureName"
-      version="3.1.0.qualifier"
+      version="3.0.5.qualifier"
       provider-name="%providerName">
 
    <description>
@@ -53,12 +53,5 @@
          install-size="0"
          version="0.0.0"
          unpack="false"/>
-         
-   <plugin
-         id="org.eclipse.wst.server.discovery"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
 
-</feature>
\ No newline at end of file
+</feature>
diff --git a/plugins/org.eclipse.jst.server.core/.project b/plugins/org.eclipse.jst.server.core/.project
index 6def0c2..7d5e17d 100644
--- a/plugins/org.eclipse.jst.server.core/.project
+++ b/plugins/org.eclipse.jst.server.core/.project
@@ -20,15 +20,9 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.jdt.core.javanature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/plugins/org.eclipse.jst.server.core/.settings/.api_filters b/plugins/org.eclipse.jst.server.core/.settings/.api_filters
deleted file mode 100644
index 557b505..0000000
--- a/plugins/org.eclipse.jst.server.core/.settings/.api_filters
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.jst.server.core" version="2">
-    <resource path="src/org/eclipse/jst/server/core/IWebModule.java" type="org.eclipse.jst.server.core.IWebModule">
-        <filter id="403804204">
-            <message_arguments>
-                <message_argument value="org.eclipse.jst.server.core.IWebModule"/>
-                <message_argument value="getContextRoot(IModule)"/>
-            </message_arguments>
-        </filter>
-    </resource>
-</component>
diff --git a/plugins/org.eclipse.jst.server.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.server.core/META-INF/MANIFEST.MF
index 817c3d3..bacd972 100644
--- a/plugins/org.eclipse.jst.server.core/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.server.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jst.server.core; singleton:=true
-Bundle-Version: 1.1.101.qualifier
+Bundle-Version: 1.1.3.qualifier
 Bundle-Activator: org.eclipse.jst.server.core.internal.JavaServerPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/EJBBean.java b/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/EJBBean.java
index 2916732..4f6e87d 100644
--- a/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/EJBBean.java
+++ b/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/EJBBean.java
@@ -22,24 +22,12 @@
  * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
  * (repeatedly) as the API evolves.
  * </p>
- * @since 1.1
+ * @plannedfor 3.0
  */
 public class EJBBean extends ModuleArtifactDelegate {
-	/**
-	 * @since 1.1
-	 */
 	public final static String EJB_11 = "1.1";
-	/**
-	 * @since 1.1
-	 */
 	public final static String EJB_20 = "2.0";
-	/**
-	 * @since 1.1
-	 */
 	public final static String EJB_21 = "2.1";
-	/**
-	 * @since 1.1
-	 */
 	public final static String EJB_30 = "3.0";
 	
 	private String jndiName;
@@ -76,7 +64,6 @@
 	 * @param local <code>true</code> if the EJB has a local interface, and
 	 *    <code>false</code> otherwise
 	 * @param version the level of the EJB specification that this EJB uses. Use one of the <code>EJB_xx</code> constants declared on {@link EJBBean}
-	 * @since 1.1
 	 */
 	public EJBBean(IModule module, String jndiName, boolean remote, boolean local, String version) {
 		super(module);
@@ -97,7 +84,6 @@
 	 *    <code>false</code> otherwise    
 	 * @param version the level of the EJB specification that this EJB uses. Use one of the <code>EJB_xx</code> constants declared on {@link EJBBean}
 	 * @param interfaceName the interface name of the EJB
-	 * @since 1.1
 	 */
 
 	public EJBBean(IModule module, String jndiName, boolean remote, boolean local, String version, String interfaceName) {
@@ -149,7 +135,6 @@
 	 * Returns the level of the specification of the EJB
 	 *
 	 * @return the level of the specification of the EJB
-	 * @since 1.1
 	 */
 	public String getVersion() {
 		return version;
@@ -206,10 +191,8 @@
 	}
 
 	/**
-	 * Gets the name of interface represented by this object
-	 *  
-	 * @return the interface name
-	 * @since 1.1
+	 * Gets the name of interface represented by this object 
+	 * @return
 	 */
 	public String getInterfaceName() {
 		return interfaceName;
diff --git a/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/IJavaRuntimeWorkingCopy.java b/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/IJavaRuntimeWorkingCopy.java
index 3fe5075..7bc627c 100644
--- a/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/IJavaRuntimeWorkingCopy.java
+++ b/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/IJavaRuntimeWorkingCopy.java
@@ -19,7 +19,7 @@
  * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
  * (repeatedly) as the API evolves.
  * </p>
- * @since 1.1
+ * @since 3.0
  */
 public interface IJavaRuntimeWorkingCopy extends IJavaRuntime {
 	/**
diff --git a/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/IWebModule.java b/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/IWebModule.java
index 959ef2f..6f22061 100644
--- a/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/IWebModule.java
+++ b/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/IWebModule.java
@@ -19,27 +19,25 @@
  * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
  * (repeatedly) as the API evolves.
  * </p>
- * 
  * @plannedfor 3.0
  */
 public interface IWebModule extends IJ2EEModule {
 	/**
 	 * Returns the context root of the module.
 	 * 
-	 * @return the context root
+	 * @return java.lang.String
 	 */
 	public String getContextRoot();
-
+		
 	/**
 	 * Returns the context root of the module. If the the webModule belongs to an earModule, the context root with higher
-	 * precedence will be returned.   
+	 * presedence will be returned.   
 	 * 
 	 * @param earModule The EARModule if exist, if not null
-	 * @return the context root
-	 * @since 1.1
+	 * @return java.lang.String
 	 */
 	public String getContextRoot(IModule earModule);
-
+	
 	/**
 	 * Returns the utility modules contained within this WAR.
 	 *
diff --git a/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/RuntimeClasspathProviderWrapper.java b/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/RuntimeClasspathProviderWrapper.java
index 279a7f1..fb858d6 100644
--- a/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/RuntimeClasspathProviderWrapper.java
+++ b/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/RuntimeClasspathProviderWrapper.java
@@ -150,6 +150,9 @@
 		return null;
 	}
 
+	/*
+	 * @see RuntimeClasspathProviderDelegate#requestClasspathContainerUpdate(IRuntime, IClasspathEntry[])
+	 */
 	public void requestClasspathContainerUpdate(IRuntime runtime, IClasspathEntry[] entries) {
 		if (runtime == null)
 			return;
diff --git a/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/RuntimeComponentProviderWrapper.java b/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/RuntimeComponentProviderWrapper.java
index 522eafb..e47eaf1 100644
--- a/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/RuntimeComponentProviderWrapper.java
+++ b/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/RuntimeComponentProviderWrapper.java
@@ -126,4 +126,4 @@
 	public String toString() {
 		return "RuntimeComponentProviderWrapper[" + getId() + "]";
 	}
-}
\ No newline at end of file
+}
diff --git a/plugins/org.eclipse.jst.server.generic.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.server.generic.core/META-INF/MANIFEST.MF
index eee4678..a8023ae 100644
--- a/plugins/org.eclipse.jst.server.generic.core/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.server.generic.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jst.server.generic.core; singleton:=true
-Bundle-Version: 1.0.405.qualifier
+Bundle-Version: 1.0.305.qualifier
 Bundle-Activator: org.eclipse.jst.server.generic.core.internal.CorePlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -21,7 +21,7 @@
  org.eclipse.jdt.launching;bundle-version="[3.2.0,4.0.0)";visibility:=reexport,
  org.eclipse.wst.server.core;bundle-version="[1.0.102,2.0.0)",
  org.eclipse.jst.server.core;bundle-version="[1.0.102,2.0.0)",
- org.eclipse.ant.ui;bundle-version="[3.4.0,4.0.0)";resolution:=optional,
+ org.eclipse.ant.ui;bundle-version="[3.2.0,4.0.0)";resolution:=optional,
  org.eclipse.emf.common;bundle-version="[2.2.0,3.0.0)";visibility:=reexport,
  org.eclipse.emf.ecore;bundle-version="[2.2.0,3.0.0)",
  org.eclipse.emf.ecore.xmi;bundle-version="[2.2.0,3.0.0)",
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerBehaviour.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerBehaviour.java
index 4873b72..bb3f4bc 100644
--- a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerBehaviour.java
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerBehaviour.java
@@ -356,9 +356,12 @@
         GenericServerRuntime runtime = getRuntimeDelegate();
 
         IVMInstall vmInstall = runtime.getVMInstall();
-        if (vmInstall == null ) vmInstall = JavaRuntime.getDefaultVMInstall();
         workingCopy.setAttribute(
-                IJavaLaunchConfigurationConstants.ATTR_JRE_CONTAINER_PATH, JavaRuntime.newJREContainerPath(vmInstall).toPortableString());
+                IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_TYPE, runtime
+                        .getVMInstallTypeId());
+        workingCopy.setAttribute(
+                IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_NAME,
+                vmInstall.getName());
 
         setupLaunchClasspath(workingCopy, vmInstall, getStartClasspath());
 
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AbstractModuleAssembler.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AbstractModuleAssembler.java
index 67a87db..ad3db36 100644
--- a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AbstractModuleAssembler.java
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AbstractModuleAssembler.java
@@ -19,6 +19,7 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.jst.server.core.PublishUtil;
 import org.eclipse.jst.server.generic.core.internal.CorePlugin;
 import org.eclipse.jst.server.generic.core.internal.GenericServer;
 import org.eclipse.jst.server.generic.servertype.definition.ServerRuntime;
@@ -27,7 +28,6 @@
 import org.eclipse.wst.server.core.model.IModuleFolder;
 import org.eclipse.wst.server.core.model.IModuleResource;
 import org.eclipse.wst.server.core.util.ProjectModule;
-import org.eclipse.wst.server.core.util.PublishHelper;
 
 /**
  * Base class for module assemblers
@@ -40,7 +40,6 @@
 	protected IModule fModule; 
 	protected GenericServer fServer;
 	protected IPath fAssembleRoot;
-	protected PublishHelper publishHelper;
 	
 	protected AbstractModuleAssembler(IModule module, GenericServer server, IPath assembleRoot)
 	{
@@ -48,8 +47,6 @@
 		fServerdefinition=server.getServerDefinition();
 		fServer=server;
 		fAssembleRoot = assembleRoot;
-		//TODO: Verify the temporary directory location.
-		publishHelper = new PublishHelper(CorePlugin.getDefault().getStateLocation().append("tmp").toFile());
 	}
 	
 	/**
@@ -160,7 +157,7 @@
 
 	protected IPath copyModule(IModule module, IProgressMonitor monitor) throws CoreException {
 		ProjectModule pm =(ProjectModule)module.loadAdapter(ProjectModule.class, monitor);
-		IStatus[] status = publishHelper.publishSmart(pm.members(), fAssembleRoot, monitor);
+		IStatus[] status = PublishUtil.publishSmart(pm.members(), fAssembleRoot, monitor);
 		if (status != null && status.length > 0)
 			throw new CoreException(status[0]);
 		return fAssembleRoot;
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AntPublisher.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AntPublisher.java
index ec2249b..145c53e 100644
--- a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AntPublisher.java
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/AntPublisher.java
@@ -21,8 +21,7 @@
 import java.util.jar.JarEntry;
 import java.util.jar.JarFile;
 import org.eclipse.ant.internal.ui.IAntUIConstants;
-import org.eclipse.ant.ui.launching.IAntLaunchConfigurationConstants;
-//import org.eclipse.ant.internal.ui.launchConfigurations.IAntLaunchConfigurationConstants;
+import org.eclipse.ant.internal.ui.launchConfigurations.IAntLaunchConfigurationConstants;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -37,8 +36,6 @@
 import org.eclipse.debug.core.ILaunchManager;
 import org.eclipse.debug.ui.IDebugUIConstants;
 import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
-import org.eclipse.jdt.launching.IVMInstall;
-import org.eclipse.jdt.launching.JavaRuntime;
 import org.eclipse.jst.server.core.IWebModule;
 import org.eclipse.jst.server.generic.core.internal.CorePlugin;
 import org.eclipse.jst.server.generic.core.internal.GenericPublisher;
@@ -89,8 +86,6 @@
 	protected static final String PROP_CONTEXT_ROOT = "contextRoot";//$NON-NLS-1$
 
 	protected static final String PROP_PROJECT_NAME = "project.name";//$NON-NLS-1$
-	
-	protected static final String PROP_PROJECT_LOCATION = "project.location";
 
 	protected static final String MODULE_PUBLISH_TARGET_PREFIX = "target.publish."; //$NON-NLS-1$
 
@@ -254,7 +249,6 @@
 		props.put(PROP_PROJECT_WORKING_DIR, getProjectWorkingLocation().toString());
 		props.put(PROP_MODULE_NAME, moduleName);
 		props.put(PROP_CONTEXT_ROOT, contextRoot);
-			
 		if (isModuleType(webModule, "jst.ear")) {//$NON-NLS-1$
 			props.put(PROP_MODULE_ARCHIVE_NAME, moduleName + ".ear"); //$NON-NLS-1$
 		} else if (isModuleType(webModule, "jst.web")) { //$NON-NLS-1$
@@ -265,7 +259,6 @@
 		if (webModule.getProject() != null) {
 			props.put(PROP_MODULE_DIR, getModuleWorkingDir().toString());
 			props.put(PROP_PROJECT_NAME, webModule.getProject().getName());
-			props.put(PROP_PROJECT_LOCATION, webModule.getProject().getLocation().toString());
 		}
 		props.put(PROP_SERVER_PUBLISH_DIR, modDir);
 		return props;
@@ -326,12 +319,9 @@
 		wc.setAttribute(IDebugUIConstants.ATTR_PRIVATE, true);
 
 		wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_SOURCE_PATH_PROVIDER, "org.eclipse.ant.ui.AntClasspathProvider"); //$NON-NLS-1$
-		
-		IVMInstall vmInstall = getServerRuntime().getVMInstall();
-		if(vmInstall == null )//fallback to default VM if null.
-			vmInstall = JavaRuntime.getDefaultVMInstall();
-		wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_JRE_CONTAINER_PATH, JavaRuntime.newJREContainerPath(vmInstall).toPortableString());
-
+		wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_NAME, getServerRuntime().getVMInstall().getName());
+		wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_TYPE, getServerRuntime().getVMInstall().getVMInstallType()
+				.getId());
 		wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME,
 				"org.eclipse.ant.internal.ui.antsupport.InternalAntRunner"); //$NON-NLS-1$
 		wc.setAttribute(DebugPlugin.ATTR_PROCESS_FACTORY_ID, IAntUIConstants.REMOTE_ANT_PROCESS_FACTORY_ID);
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/EarModuleAssembler.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/EarModuleAssembler.java
index 06af0d7..210768b 100644
--- a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/EarModuleAssembler.java
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/EarModuleAssembler.java
@@ -18,14 +18,11 @@
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.jst.server.core.IEnterpriseApplication;
-import org.eclipse.jst.server.core.IJ2EEModule;
 import org.eclipse.jst.server.generic.core.internal.CorePlugin;
 import org.eclipse.jst.server.generic.core.internal.GenericServer;
 import org.eclipse.wst.server.core.IModule;
 import org.eclipse.wst.server.core.internal.Server;
-import org.eclipse.wst.server.core.model.IModuleResource;
 import org.eclipse.wst.server.core.model.IModuleResourceDelta;
-import org.eclipse.wst.server.core.util.ProjectModule;
 
 /**
  * Utility for EAR module assembly.
@@ -38,24 +35,16 @@
 	}
 
 	public IPath assemble(IProgressMonitor monitor) throws CoreException{
-		//copy ear root to the temporary assembly directory
 		IPath parent =copyModule(fModule,monitor);
 		IEnterpriseApplication earModule = (IEnterpriseApplication)fModule.loadAdapter(IEnterpriseApplication.class, monitor);
 		IModule[] childModules = earModule.getModules();
 		for (int i = 0; i < childModules.length; i++) {
 			IModule module = childModules[i];
 			String uri = earModule.getURI(module);
-			if(uri==null){ //The bad memories of WTP 1.0
+			if(uri==null){
 				IStatus status = new Status(IStatus.ERROR, CorePlugin.PLUGIN_ID, 0,	"unable to assemble module null uri",null ); //$NON-NLS-1$
 				throw new CoreException(status);
 			}
-			IJ2EEModule jeeModule = (IJ2EEModule) module.loadAdapter(IJ2EEModule.class,monitor);
-			if( jeeModule != null && jeeModule.isBinary() ){//Binary module just copy
-				ProjectModule pm = (ProjectModule) module.loadAdapter(ProjectModule.class, null);
-				IModuleResource[] resources = pm.members();
-				publishHelper.publishFull(resources, parent, monitor);
-				continue;//done! no need to go further
-			}
 			if( shouldRepack( module ) ){	
 			    packModule(module,uri, parent);
             }
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/ModulePackager.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/ModulePackager.java
index 31566ff..336c4fb 100644
--- a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/ModulePackager.java
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/publishers/ModulePackager.java
@@ -27,16 +27,12 @@
  * Packages resources to a .zip file
  */
 public class ModulePackager {
-	private static final int BUFFER_SIZE = 65536;
-	private byte[] readBuffers;
-	
 	private static final String JAR_FILE_SEPERATOR = "/"; //$NON-NLS-1$
 	private JarOutputStream outputStream;
+//	private StringBuffer manifestContents;
 
 	private boolean useCompression = true;
 
-	
-
 	/**
 	 * Create an instance of this class.
 	 * 
@@ -154,13 +150,13 @@
 
 		try {
 			output = new ByteArrayOutputStream();
-			if( readBuffers == null )
-				readBuffers = new byte[BUFFER_SIZE];
-			int n = 0;
-			while (n > -1) {
-				n = contentStream.read(readBuffers);
-				if (n > 0)
-					output.write(readBuffers);
+			int chunkSize = contentStream.available();
+			byte[] readBuffer = new byte[chunkSize];
+			int n = contentStream.read(readBuffer);
+
+			while (n > 0) {
+				output.write(readBuffer);
+				n = contentStream.read(readBuffer);
 			}
 		} finally {
 			if (output != null)
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/xml/Resolver.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/xml/Resolver.java
index 26eacc9..fa71e33 100644
--- a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/xml/Resolver.java
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/xml/Resolver.java
@@ -96,7 +96,6 @@
 	}
 
 	private int skipToProperty(String str,HashMap cache) {
-		if (str == null )return -1;
 		int start = -1; 
 		int end =  0;
 		String key=""; //$NON-NLS-1$
diff --git a/plugins/org.eclipse.jst.server.generic.jboss/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.server.generic.jboss/META-INF/MANIFEST.MF
index d6832e7..1e811d8 100644
--- a/plugins/org.eclipse.jst.server.generic.jboss/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.server.generic.jboss/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jst.server.generic.jboss;singleton:=true
-Bundle-Version: 1.6.0.qualifier
+Bundle-Version: 1.5.206.qualifier
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Require-Bundle: org.eclipse.jst.server.core;bundle-version="[1.0.102,2.0.0)",
diff --git a/plugins/org.eclipse.jst.server.generic.jboss/servers/jboss5.serverdef b/plugins/org.eclipse.jst.server.generic.jboss/servers/jboss5.serverdef
index 1a6989e..cdd7307 100644
--- a/plugins/org.eclipse.jst.server.generic.jboss/servers/jboss5.serverdef
+++ b/plugins/org.eclipse.jst.server.generic.jboss/servers/jboss5.serverdef
@@ -142,4 +142,4 @@
 			<value></value>
 		</jndiProperty>
 	</jndiConnection>
-</tns:ServerRuntime>
+</tns:ServerRuntime>
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.server.preview.adapter/.project b/plugins/org.eclipse.jst.server.preview.adapter/.project
index d1b683f..1e67cda 100644
--- a/plugins/org.eclipse.jst.server.preview.adapter/.project
+++ b/plugins/org.eclipse.jst.server.preview.adapter/.project
@@ -20,15 +20,9 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.jdt.core.javanature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/plugins/org.eclipse.jst.server.preview.adapter/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.server.preview.adapter/META-INF/MANIFEST.MF
index 42b327e..5eccac1 100644
--- a/plugins/org.eclipse.jst.server.preview.adapter/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.server.preview.adapter/META-INF/MANIFEST.MF
@@ -2,13 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jst.server.preview.adapter;singleton:=true
-Bundle-Version: 1.1.0.qualifier
+Bundle-Version: 1.0.101.qualifier
 Bundle-Activator: org.eclipse.jst.server.preview.adapter.internal.PreviewPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.jst.server.preview.adapter.internal;x-internal:=true,
- org.eclipse.jst.server.preview.adapter.internal.core;x-internal:=true,
- org.eclipse.jst.server.preview.adapter.internal.ui;x-internal:=true
+Export-Package: org.eclipse.jst.server.preview.adapter.internal;x-friends:="org.eclipse.jst.server.ui"
 Require-Bundle: org.eclipse.jdt.core;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.jdt.launching;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.wst.server.core;bundle-version="[1.0.103,2.0.0)",
diff --git a/plugins/org.eclipse.jst.server.preview.adapter/src/org/eclipse/jst/server/preview/adapter/internal/core/PreviewLaunchConfigurationDelegate.java b/plugins/org.eclipse.jst.server.preview.adapter/src/org/eclipse/jst/server/preview/adapter/internal/core/PreviewLaunchConfigurationDelegate.java
index 63b4c60..f09c39b 100644
--- a/plugins/org.eclipse.jst.server.preview.adapter/src/org/eclipse/jst/server/preview/adapter/internal/core/PreviewLaunchConfigurationDelegate.java
+++ b/plugins/org.eclipse.jst.server.preview.adapter/src/org/eclipse/jst/server/preview/adapter/internal/core/PreviewLaunchConfigurationDelegate.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * 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
@@ -41,8 +41,7 @@
 		"javax.servlet",
 		"javax.servlet.jsp",
 		"org.apache.jasper",
-		"org.mortbay.jetty.server",
-		"org.mortbay.jetty.util",
+		"org.mortbay.jetty",
 		"org.eclipse.wst.server.preview"
 	};
 
@@ -73,9 +72,8 @@
 			jars[i] = path.toOSString();
 		}
 		
-		System.out.println(jars[7] + File.separator + "bin");
-		if (new File(jars[7] + File.separator + "bin").exists())
-			jars[7] = jars[7] + File.separator + "bin";
+		if (new File(jars[6] + "bin").exists())
+			jars[6] = jars[6] + "bin";
 		
 		IVMInstall vm = verifyVMInstall(configuration);
 		
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.server.tomcat.core/META-INF/MANIFEST.MF
index 5383841..579a244 100644
--- a/plugins/org.eclipse.jst.server.tomcat.core/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.server.tomcat.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jst.server.tomcat.core; singleton:=true
-Bundle-Version: 1.1.105.qualifier
+Bundle-Version: 1.1.104.qualifier
 Bundle-Activator: org.eclipse.jst.server.tomcat.core.internal.TomcatPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Messages.java b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Messages.java
index 43cb2b1..b084ddd 100644
--- a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Messages.java
+++ b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Messages.java
@@ -68,7 +68,6 @@
 	public static String errorCleanupServer;
 	public static String publisherPublishTask;
 	public static String errorNoConfiguration;
-	public static String errorConfigurationProjectClosed;
 	public static String errorWebModulesOnly;
 	public static String errorNoRuntime;
 	public static String publishServerTask;
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Messages.properties b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Messages.properties
index a8b865c..df1099a 100644
--- a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Messages.properties
+++ b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Messages.properties
@@ -74,7 +74,6 @@
   To start this server you will need to stop the other process or change the port number(s).
 # the {0} in the following two lines will be replaced with a location (path) of the missing or corrupt server configuration
 errorNoConfiguration=The Tomcat server configuration at {0} is missing. Check the server for errors.
-errorConfigurationProjectClosed=Could not load the Tomcat server configuration at {0}. The {1} project is closed.
 errorCouldNotLoadConfiguration=Could not load the Tomcat server configuration at {0}. The configuration may be corrupt or incomplete.
 errorCouldNotSaveConfiguration=Could not save the Tomcat server configuration: {0}.
 errorPublishConfiguration=Could not publish server configuration: {0}.
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatServer.java b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatServer.java
index fefeabf..b296e35 100644
--- a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatServer.java
+++ b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatServer.java
@@ -14,7 +14,6 @@
 import java.util.List;
 
 import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.*;
 import org.eclipse.jst.server.core.FacetUtil;
 import org.eclipse.jst.server.core.IWebModule;
@@ -77,12 +76,8 @@
 			IFolder folder = getServer().getServerConfiguration();
 			if (folder == null || !folder.exists()) {
 				String path = null;
-				if (folder != null) {
+				if (folder != null)
 					path = folder.getFullPath().toOSString();
-					IProject project = folder.getProject();
-					if (project != null && project.exists() && !project.isOpen()) 
-						throw new CoreException(new Status(IStatus.ERROR, TomcatPlugin.PLUGIN_ID, 0, NLS.bind(Messages.errorConfigurationProjectClosed, path, project.getName()), null));
-				}
 				throw new CoreException(new Status(IStatus.ERROR, TomcatPlugin.PLUGIN_ID, 0, NLS.bind(Messages.errorNoConfiguration, path), null));
 			}
 			
diff --git a/plugins/org.eclipse.jst.server.ui/.project b/plugins/org.eclipse.jst.server.ui/.project
index c7c992d..abd835d 100644
--- a/plugins/org.eclipse.jst.server.ui/.project
+++ b/plugins/org.eclipse.jst.server.ui/.project
@@ -20,15 +20,9 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.jdt.core.javanature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/plugins/org.eclipse.jst.server.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.server.ui/META-INF/MANIFEST.MF
index a66ba3d..bccad33 100644
--- a/plugins/org.eclipse.jst.server.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.server.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jst.server.ui; singleton:=true
-Bundle-Version: 1.0.403.qualifier
+Bundle-Version: 1.0.303.qualifier
 Bundle-Activator: org.eclipse.jst.server.ui.internal.JavaServerUIPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.wst.internet.monitor.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.internet.monitor.core/META-INF/MANIFEST.MF
index 755e3b2..86cfb48 100644
--- a/plugins/org.eclipse.wst.internet.monitor.core/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.internet.monitor.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.internet.monitor.core; singleton:=true
-Bundle-Version: 1.0.303.qualifier
+Bundle-Version: 1.0.304.qualifier
 Bundle-Activator: org.eclipse.wst.internet.monitor.core.internal.MonitorPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.wst.internet.monitor.core/monitorcore/org/eclipse/wst/internet/monitor/core/internal/http/HTTPThread.java b/plugins/org.eclipse.wst.internet.monitor.core/monitorcore/org/eclipse/wst/internet/monitor/core/internal/http/HTTPThread.java
index f9d6b92..2acbbe1 100644
--- a/plugins/org.eclipse.wst.internet.monitor.core/monitorcore/org/eclipse/wst/internet/monitor/core/internal/http/HTTPThread.java
+++ b/plugins/org.eclipse.wst.internet.monitor.core/monitorcore/org/eclipse/wst/internet/monitor/core/internal/http/HTTPThread.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2008 IBM Corporation and others.
+ * Copyright (c) 2003, 2009 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
@@ -198,27 +198,37 @@
 		
 		if (isRequest) {
 			if (contentLength != -1) {
-				if (contentLength < 1024 * 1024) { // 1Mb
-					byte[] b = readBytes(contentLength);
-					out.write(b);
-					conn.addRequest(b, false);
-					setHTTPBody(b);
-				} else {
-					byte[] b = removeFromBuffer(Math.min(bufferIndex, contentLength));
-					int bytesLeft = contentLength - b.length;
-					out.write(b);
-					
-					int n = 0;
-					while (bytesLeft > 0) {
-						n = in.read(readBuffer);
-						bytesLeft -= n;
-						out.write(readBuffer, 0, n);
-					}
-					
-					b = Messages.errorContentSize.getBytes();
-					conn.addRequest(b, false);
-					setHTTPBody(b);
+				byte[] b2 = null;
+				int b2Index = 0;
+				if (contentLength < 1024 * 1024)
+					b2 = new byte[contentLength];
+				byte[] b = removeFromBuffer(Math.min(buffer.length, bufferIndex + contentLength));
+				if (b2 != null) {
+					System.arraycopy(b, 0, b2, 0, b.length);
+					b2Index += b.length;
 				}
+				int bytesLeft = contentLength - b.length;
+				Trace.trace(Trace.PARSING, "[Request] bytesLeft: "+ bytesLeft);
+				out.write(b);
+				
+				int n = 0;
+				while (bytesLeft > 0) {  
+					n = in.read(readBuffer, 0, Math.min(readBuffer.length, bytesLeft));
+					bytesLeft -= n;
+					if (b2 != null) {
+						System.arraycopy(readBuffer, 0, b2, b2Index, n);
+						b2Index += n;
+					}
+					out.write(readBuffer, 0, n);					
+					Trace.trace(Trace.PARSING,  "[Request] bytes read: "+ n + " bytesLeft: "+ bytesLeft);
+				}
+				
+				// restore the byte array for display
+				if (b2 == null)
+					b2 = Messages.errorContentSize.getBytes();
+				
+				conn.addRequest(b2, false);
+				setHTTPBody(b2);
 			} else if (transferEncoding != -1 && transferEncoding != ENCODING_IDENTITY) {
 				parseChunk();
 			}
@@ -275,33 +285,40 @@
 		
 		// spec 4.4.3
 		if (contentLength != -1) {
-			if (contentLength < 1024 * 1024) { // 1Mb
-				byte[] b = readBytes(contentLength);
-				out.write(b);
-				if (isRequest)
-					conn.addRequest(b, false);
-				else
-					conn.addResponse(b, false);
-				setHTTPBody(b);
-			} else {
-				byte[] b = removeFromBuffer(Math.min(bufferIndex, contentLength));
-				int bytesLeft = contentLength - b.length;
-				out.write(b);
-				
-				int n = 0;
-				while (bytesLeft > 0) {
-					n = in.read(readBuffer);
-					bytesLeft -= n;
-					out.write(readBuffer, 0, n);
-				}
-				
-				b = Messages.errorContentSize.getBytes();
-				if (isRequest)
-					conn.addRequest(b, false);
-				else
-					conn.addResponse(b, false);
-				setHTTPBody(b);
+			byte[] b2 = null;
+			int b2Index = 0;
+			if (contentLength < 1024 * 1024)
+				b2 = new byte[contentLength];
+			byte[] b = removeFromBuffer(Math.min(buffer.length, bufferIndex + contentLength));
+			if (b2 != null) {
+				System.arraycopy(b, 0, b2, 0, b.length);
+				b2Index += b.length;
 			}
+			int bytesLeft = contentLength - b.length;
+			Trace.trace(Trace.PARSING,"bytesLeft: "+ bytesLeft);
+			out.write(b);
+			
+			int n = 0;
+			while (bytesLeft > 0) {
+				n = in.read(readBuffer, 0, Math.min(readBuffer.length, bytesLeft));
+				bytesLeft -= n;
+				if (b2 != null) {
+					System.arraycopy(readBuffer, 0, b2, b2Index, n);
+					b2Index += n;
+				}
+				Trace.trace(Trace.PARSING,"bytes read: "+n + " bytesLeft: "+ bytesLeft);
+				out.write(readBuffer, 0, n);
+			}
+						
+			// restore the byte array for display
+			if (b2 == null)
+				b2 = Messages.errorContentSize.getBytes();
+			
+			if (isRequest)
+				conn.addRequest(b2, false);
+			else
+				conn.addResponse(b2, false);
+			setHTTPBody(b2);
 			return;
 		}
 		
@@ -310,6 +327,20 @@
 		Trace.trace(Trace.PARSING, "Unknown body for: " + this);
 	}
 
+	// Use this method to dump the content of a byte array
+	//
+	//	private void dumpBuffer(byte[] b) {
+	//		Trace.trace(Trace.PARSING, "Buffer dump to default.out:");
+	//		Trace.trace(Trace.PARSING, "Byte array: " + b.length);
+	//		for (int i = 0; i < b.length; i++) {
+	//			System.out.print(" [" + (char) b[i] + "]"); // +" ["+b[i+1]+"] "
+	//			if (i % 20 == 0) {
+	//				System.out.println();
+	//			}
+	//		}
+	//	}
+	
+	
 	/**
 	 * Parse an HTTP chunk.
 	 * 
diff --git a/plugins/org.eclipse.wst.server.core/.project b/plugins/org.eclipse.wst.server.core/.project
index 7593f12..bf1e7ef 100644
--- a/plugins/org.eclipse.wst.server.core/.project
+++ b/plugins/org.eclipse.wst.server.core/.project
@@ -20,15 +20,9 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.jdt.core.javanature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/plugins/org.eclipse.wst.server.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.server.core/META-INF/MANIFEST.MF
index 51e9ee5..13a0841 100644
--- a/plugins/org.eclipse.wst.server.core/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.server.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.server.core; singleton:=true
-Bundle-Version: 1.1.101.qualifier
+Bundle-Version: 1.1.4.qualifier
 Bundle-Activator: org.eclipse.wst.server.core.internal.ServerPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IModule.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IModule.java
index 7aad1e3..db7209b 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IModule.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IModule.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
+ * Copyright (c) 2004, 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
@@ -41,8 +41,13 @@
  * (optional) project attribute is equal.
  * </p>
  * <p>This interface is not intended to be implemented by clients.</p>
+ * <p>
+ * <b>Provisional API:</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>
  * 
- * @noimplement
  * @since 1.0
  */
 public interface IModule extends IAdaptable {
@@ -92,16 +97,6 @@
 	public boolean isExternal();
 
 	/**
-	 * Returns <code>true</code> if the module exists (e.g. is in the workspace)
-	 * and <code>false</code> otherwise (e.g. if the module has been deleted).
-	 * 
-	 * @return <code>true</code> if the module exists,
-	 *    and <code>false</code> otherwise
-	 * @since 1.1
-	 */
-	public boolean exists();
-
-	/**
 	 * Returns an object which is an instance of the given class
 	 * associated with this object. Returns <code>null</code> if
 	 * no such object can be found, or if the delegate is not
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServer.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServer.java
index 1cd68ea..0418174 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServer.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/IServer.java
@@ -69,7 +69,6 @@
  * 
  * <p>This interface is not intended to be implemented by clients.</p>
  * 
- * @noimplement
  * @since 1.0
  */
 public interface IServer extends IServerAttributes, ISchedulingRule {
@@ -692,7 +691,7 @@
 	 * 
 	 * @return the launch used to start the currently running server, or <code>null</code>
 	 *    if the launch is unavailable or could not be found
-	 * @since 1.1
+	 * @since 3.0
 	 */
 	public ILaunch getLaunch();
 
@@ -700,7 +699,7 @@
 	 * Returns the start timeout in seconds.
 	 * 
 	 * @return the start timeout in seconds
-	 * @since 1.1
+	 * @since 3.0
 	 */
 	public int getStartTimeout();
 
@@ -708,7 +707,7 @@
 	 * Returns the stop timeout in seconds.
 	 * 
 	 * @return the stop timeout in seconds
-	 * @since 1.1
+	 * @since 3.0
 	 */
 	public int getStopTimeout();
 
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerCore.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerCore.java
index 3fb737b..66b6f0f 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerCore.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerCore.java
@@ -458,7 +458,7 @@
 	 * 
 	 * @return <code>true</code> if the preference is set to automatically
 	 *    publish when starting servers, or <code>false</code> otherwise
-	 * @since 1.1
+	 * @since 3.0
 	 */
 	public static boolean isAutoPublishing() {
 		return ServerPreferences.getInstance().isAutoPublishing();
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/DeletedModule.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/DeletedModule.java
index 4c4c3d3..b26dbc9 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/DeletedModule.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/DeletedModule.java
@@ -76,10 +76,6 @@
 		return false;
 	}
 
-	public boolean exists() {
-		return false;
-	}
-
 	public String toString() {
 		return "DeletedModule[" + name + "," + id + "]";
 	}
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Messages.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Messages.java
index b4145c4..bc38d47 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Messages.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Messages.java
@@ -49,7 +49,6 @@
 	public static String errorStartTimeout;
 	public static String errorStartFailed;
 	public static String errorStopFailed;
-	public static String errorRestartTimeout;
 	public static String errorRestartFailed;
 	public static String errorModuleRestartFailed;
 	public static String errorInstallingServer;
@@ -60,9 +59,9 @@
 	public static String errorRestartNotStarted;
 	public static String errorStopAlreadyStopped;
 	public static String moduleTypeUnknown;
-	public static String jobStarting;
-	public static String jobStopping;
-	public static String jobRestarting;
+	public static String jobStartingServer;
+	public static String jobStoppingServer;
+	public static String jobRestartingServer;
 	public static String jobUpdateServer;
 	public static String jobInstallingRuntime;
 	public static String errorMissingAdapter;
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Messages.properties b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Messages.properties
index 21bbdc8..8f96c2e 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Messages.properties
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Messages.properties
@@ -14,7 +14,7 @@
 deletingTask=Deleting {0}
 
 taskPerforming=Performing Tasks
-taskModifyModules=Adding and/or removing resources.
+taskModifyModules=Adding and/or removing projects.
 
 publishing=Publishing to {0}...
 publishingStatusInfo=Publishing completed with information
@@ -25,9 +25,9 @@
 publishingModule=Publishing: {0}
 publishedModule={0} published successfully
 
-jobStarting=Starting {0}
-jobStopping=Stopping {0}
-jobRestarting=Restarting {0}
+jobStartingServer=Starting {0}
+jobStoppingServer=Stopping {0}
+jobRestartingServer=Restarting {0}
 jobUpdateServer=Updating status for {0}...
 jobInstallingRuntime=Installing server runtime environment
 
@@ -45,7 +45,6 @@
 errorStartTimeout=Server {0} was unable to start within {1} seconds. If the server requires more time, try increasing the timeout in the server editor.
 errorStartFailed=Server {0} failed to start.
 errorStopFailed=Server {0} failed to stop.
-errorRestartTimeout=Server {0} failed to restart within {1} seconds.
 errorRestartFailed=Server {0} failed to restart.
 errorCannotAddModule=The server does not support version {1} of the {0} specification.
 errorInstallingServer=Error occurred installing server: {0}
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Module.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Module.java
index 8231056..021ff97 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Module.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Module.java
@@ -244,13 +244,6 @@
 		return false;
 	}
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.server.core.IModule#exists()
-	 */
-	public boolean exists() {
-		return true;
-	}
-
 	/**
 	 * Return a string representation of this object.
 	 * 
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModulePublishInfo.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModulePublishInfo.java
index d61985e..fec87e0 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModulePublishInfo.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModulePublishInfo.java
@@ -319,9 +319,6 @@
 		try {
 			long time = System.currentTimeMillis();
 			IModuleResource[] x = pm.members();
-			if (ServerPlugin.getInstance().isDebugging())
-				printModule(x,"resources: ");
-			
 			Trace.trace(Trace.PERFORMANCE, "Time to get members() for " + module[size - 1].getName() + ": " + (System.currentTimeMillis() - time));
 			return x;
 		} catch (CoreException ce) {
@@ -329,23 +326,6 @@
 		}
 		return EMPTY_MODULE_RESOURCE;
 	}
-	
-	private void printModule(IModuleResource[] r, String s) {
-		for (IModuleResource mrr : r) {
-			printModule(mrr, s + "  ");
-		}
-	}
-
-	private void printModule(IModuleResource r, String s) {
-		Trace.trace(Trace.RESOURCES, s + r.getName());
-		if (r instanceof IModuleFolder) {
-			IModuleFolder mf = (IModuleFolder) r;
-			IModuleResource[] mr = mf.members();
-			for (IModuleResource mrr : mr) {
-				printModule(mrr, s + "  ");
-			}
-		}
-	}
 
 	protected IModuleResourceDelta[] getDelta(IModule[] module) {
 		if (module == null)
@@ -364,7 +344,6 @@
 		IModuleResource[] resources2 = null;
 		try {
 			resources2 = pm.members();
-			printModule(resources2, "delta:");
 		} catch (CoreException ce) {
 			Trace.trace(Trace.WARNING, "Possible failure in getDelta", ce);
 		}
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/RestartServerJob.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/RestartServerJob.java
index ede16ca..fe0f2be 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/RestartServerJob.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/RestartServerJob.java
@@ -24,7 +24,7 @@
 	protected IStatus resultStatus;
 
 	public RestartServerJob(IServer server, String launchMode) {
-		super(NLS.bind(Messages.jobRestarting, server.getName()), server);
+		super(NLS.bind(Messages.jobRestartingServer, server.getName()), server);
 		this.launchMode = launchMode;
 	}
 
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Runtime.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Runtime.java
index 04e3bc0..8c381c7 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Runtime.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Runtime.java
@@ -63,7 +63,7 @@
 		try {
 			return getDelegate(monitor).validate();
 		} catch (Exception e) {
-			ServerPlugin.logExtensionFailure(toString(), e);
+			Trace.trace(Trace.SEVERE, "Error calling delegate validate() " + toString(), e);
 			return null;
 		}
 	}
@@ -77,11 +77,11 @@
 				try {
 					long time = System.currentTimeMillis();
 					delegate = ((RuntimeType) runtimeType).createRuntimeDelegate();
-					if (delegate != null)
-						InternalInitializer.initializeRuntimeDelegate(delegate, this, monitor);
+					InternalInitializer.initializeRuntimeDelegate(delegate, this, monitor);
+					//delegate.initialize(this);
 					Trace.trace(Trace.PERFORMANCE, "Runtime.getDelegate(): <" + (System.currentTimeMillis() - time) + "> " + getRuntimeType().getId());
 				} catch (Throwable t) {
-					ServerPlugin.logExtensionFailure(toString(), t);
+					Trace.trace(Trace.SEVERE, "Could not create delegate " + toString(), t);
 				}
 			}
 		}
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java
index b247ac3..0c0396d 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Server.java
@@ -143,21 +143,7 @@
 		}
 	}
 
-	private abstract class ServerJob extends Job {
-		public ServerJob(String name) {
-			super(name);
-		}
-
-		public boolean belongsTo(Object family) {
-			return ServerUtil.SERVER_JOB_FAMILY.equals(family);
-		}
-	
-		public IServer getServer() {
-			return Server.this;
-		}
-	}
-
-	public class ResourceChangeJob extends ServerJob {
+	public class ResourceChangeJob extends Job {
 		private IModule module;
 
 		public ResourceChangeJob(IModule module) {
@@ -175,6 +161,14 @@
 			}
 		}
 
+		public boolean belongsTo(Object family) {
+			return ServerUtil.SERVER_JOB_FAMILY.equals(family);
+		}
+
+		protected IServer getServer() {
+			return Server.this;
+		}
+
 		protected IModule getModule() {
 			return module;
 		}
@@ -220,7 +214,7 @@
 		}
 	}
 
-	public class PublishJob extends ServerJob {
+	public class PublishJob extends Job {
 		protected int kind;
 		protected List<IModule[]> modules4;
 		protected IAdaptable info;
@@ -245,94 +239,100 @@
 			this.modules4 = modules4;
 			this.start = start;
 			this.info = info;
-			
-			// 102227 - lock entire workspace during publish
-			ISchedulingRule rule = MultiRule.combine(new ISchedulingRule[] {
-				ResourcesPlugin.getWorkspace().getRoot(), Server.this
-			});
-			setRule(rule);
+		}
+
+		public boolean belongsTo(Object family) {
+			return ServerUtil.SERVER_JOB_FAMILY.equals(family);
 		}
 
 		protected IStatus run(IProgressMonitor monitor) {
 			if (start) {
-				IStatus status = startImpl(ILaunchManager.RUN_MODE, monitor);
-				if (status != null && status.getSeverity() == IStatus.ERROR)
-					return status;
+				try{
+					// 237222 - Apply the rules only when the job has started
+					Job.getJobManager().beginRule(Server.this, monitor);
+					IStatus status = startImpl(ILaunchManager.RUN_MODE, monitor);
+					if (status != null && status.getSeverity() == IStatus.ERROR)
+						return status;
+				}
+				finally{
+					Job.getJobManager().endRule(Server.this);
+				}
 			}
 			
-			return publishImpl(kind, modules4, info, monitor);
+			// 102227 - lock entire workspace during publish
+			ISchedulingRule publishRule = MultiRule.combine(new ISchedulingRule[] {
+				ResourcesPlugin.getWorkspace().getRoot(), Server.this
+			});
+			
+			try{
+				// 237222 - Apply the rules only when the job has started
+				Job.getJobManager().beginRule(publishRule, monitor);	
+				return publishImpl(kind, modules4, info, monitor);
+			} finally {
+				Job.getJobManager().endRule(publishRule);
+			}
 		}
 	}
 
-	public class StartJob extends ServerJob {
+	public class StartJob extends Job {
 		protected static final byte PUBLISH_NONE = 0;
 		protected static final byte PUBLISH_BEFORE = 1;
 		protected static final byte PUBLISH_AFTER = 2;
 
 		protected String launchMode;
-		protected byte publish;
 
-		public StartJob(String launchMode, byte publish) {
-			super(NLS.bind(Messages.jobStarting, Server.this.getName()));
+		public StartJob(String launchMode) {
+			super(NLS.bind(Messages.jobStartingServer, Server.this.getName()));
 			this.launchMode = launchMode;
-			this.publish = publish;
 			
-			if (publish != PUBLISH_NONE) {
-				IResourceRuleFactory ruleFactory = ResourcesPlugin.getWorkspace().getRuleFactory();
-				
-				// 102227 - lock entire workspace during publish		
-				ISchedulingRule[] rules = new ISchedulingRule[2];
-				rules[0] = ruleFactory.createRule(ResourcesPlugin.getWorkspace().getRoot());
-				rules[1] = Server.this;
-				
-				setRule(MultiRule.combine(rules));
-			} else
-				setRule(Server.this);
+			setRule(Server.this);
+		}
+
+		public boolean belongsTo(Object family) {
+			return ServerUtil.SERVER_JOB_FAMILY.equals(family);
+		}
+
+		public IServer getServer() {
+			return Server.this;
 		}
 
 		protected IStatus run(IProgressMonitor monitor) {
-			if (publish == PUBLISH_BEFORE) {
-				IStatus status = publishImpl(IServer.PUBLISH_INCREMENTAL, null, null, monitor);
-				if (status != null && status.getSeverity() == IStatus.ERROR)
-					return status;
-			}
-			
 			IStatus stat = startImpl(launchMode, monitor);
-			
-			if ( IStatus.ERROR != stat.getSeverity() ) {
-				if (publish == PUBLISH_AFTER) {
-					IStatus status = publishImpl(IServer.PUBLISH_INCREMENTAL, null, null, monitor);
-					if (status != null && status.getSeverity() == IStatus.ERROR)
-						return status;
-				}
-			}
 			return stat;
 		}
 	}
 
-	public class RestartJob extends ServerJob {
+	public class RestartJob extends Job {
 		protected String launchMode;
 
 		public RestartJob(String launchMode) {
-			super(NLS.bind(Messages.jobRestarting, Server.this.getName()));
+			super(NLS.bind(Messages.jobRestartingServer, Server.this.getName()));
 			this.launchMode = launchMode;
 			setRule(Server.this);
 		}
 
+		public boolean belongsTo(Object family) {
+			return ServerUtil.SERVER_JOB_FAMILY.equals(family);
+		}
+
 		protected IStatus run(IProgressMonitor monitor) {
 			return restartImpl(launchMode, monitor);
 		}
 	}
 
-	public class StopJob extends ServerJob {
+	public class StopJob extends Job {
 		protected boolean force;
 
 		public StopJob(boolean force) {
-			super(NLS.bind(Messages.jobStopping, Server.this.getName()));
+			super(NLS.bind(Messages.jobStoppingServer, Server.this.getName()));
 			setRule(Server.this);
 			this.force = force;
 		}
 
+		public boolean belongsTo(Object family) {
+			return ServerUtil.SERVER_JOB_FAMILY.equals(family);
+		}
+
 		protected IStatus run(IProgressMonitor monitor) {
 			return stopImpl(force, monitor);
 		}
@@ -1091,7 +1091,6 @@
 
 	/*
 	 * Publish the given modules to the server.
-	 * TODO: Implementation of publishing individual modules!
 	 */
 	public void publish(final int kind, final List<IModule[]> modules2, final IAdaptable info, final IOperationListener opListener) {
 		if (getServerType() == null) {
@@ -1122,11 +1121,6 @@
 				}
 			});
 		}
-		
-		// to make the publishing dialog appear, require adaptable to covert String.class
-		// into "user" string. a bit of a kludge, but works fine for now
-		if (info != null && "user".equals(info.getAdapter(String.class)))
-			publishJob.setUser(true);
 		publishJob.schedule();
 	}
 
@@ -1512,29 +1506,6 @@
 	}
 
 	/**
-	 * @see IServer#start(String, IProgressMonitor)
-	 */
-	public void start(String mode2, IProgressMonitor monitor) throws CoreException {
-		Trace.trace(Trace.FINEST, "Starting server: " + toString() + ", launchMode: " + mode2);
-		if (getServerType() == null)
-			return;
-		
-		// make sure that the delegate is loaded and the server state is correct
-		loadAdapter(ServerBehaviourDelegate.class, null);
-		
-		byte pub = StartJob.PUBLISH_NONE;
-		if (ServerCore.isAutoPublishing() && shouldPublish()) {
-			if (((ServerType)getServerType()).startBeforePublish())
-				pub = StartJob.PUBLISH_AFTER;
-			else
-				pub = StartJob.PUBLISH_BEFORE;
-		}
-		
-		StartJob startJob = new StartJob(mode2, pub);
-		startJob.schedule();
-	}
-
-	/**
 	 * Clean up any metadata associated with the server, typically in preparation for
 	 * deletion.
 	 */
@@ -1667,19 +1638,135 @@
 		job.schedule();
 	}
 
+	protected IStatus publishBeforeStart(IProgressMonitor monitor, boolean synchronous){
+
+		// check if we need to publish
+		byte pub = StartJob.PUBLISH_NONE;
+		if (ServerCore.isAutoPublishing() && shouldPublish()) {
+			if (((ServerType)getServerType()).startBeforePublish())
+				return Status.OK_STATUS;
+			pub = StartJob.PUBLISH_BEFORE;
+		}
+		
+		final IStatus [] pubStatus = new IStatus[]{Status.OK_STATUS};
+		
+		// publish before start
+		byte publish = pub;
+		if (publish == StartJob.PUBLISH_BEFORE) {
+			PublishJob pubJob = new PublishJob(IServer.PUBLISH_INCREMENTAL, null,false, null);
+			pubJob.addJobChangeListener(new JobChangeAdapter(){
+				public void done(IJobChangeEvent event) {
+					IStatus status = event.getResult();
+					if (status != null && status.getSeverity() == IStatus.ERROR)
+						pubStatus[0] = status; 
+				}
+				
+			});
+			
+			pubJob.schedule();
+			
+			try{
+				if (synchronous)
+					pubJob.join();
+					
+			}
+			catch (InterruptedException ie){
+				return Status.CANCEL_STATUS;
+			}
+		}
+		return pubStatus[0];
+	}
+	
+	protected IStatus publishAfterStart(IProgressMonitor monitor, boolean synchronous, final IOperationListener op){
+		
+		// check if we need to publish
+		byte pub = StartJob.PUBLISH_NONE;
+		if (ServerCore.isAutoPublishing() && shouldPublish()) {
+			if (((ServerType)getServerType()).startBeforePublish())
+				pub = StartJob.PUBLISH_AFTER;
+			else
+				return Status.OK_STATUS;
+		}
+		
+		final IStatus [] pubStatus = new IStatus[]{Status.OK_STATUS};
+		
+		// publish after start
+		byte publish = pub;
+		if (publish == StartJob.PUBLISH_AFTER) {
+			PublishJob pubJob = new PublishJob(IServer.PUBLISH_INCREMENTAL, null,false, null);
+			pubJob.addJobChangeListener(new JobChangeAdapter(){
+				public void done(IJobChangeEvent event) {
+					IStatus status = event.getResult();
+					if (status != null && status.getSeverity() == IStatus.ERROR)
+						pubStatus[0] = status; 
+					if (op != null){
+						op.done(status);
+					}
+				}
+				
+			});
+			
+			pubJob.schedule();
+			
+			try{
+				if (synchronous)
+					pubJob.join();
+			}
+			catch (InterruptedException ie){
+				return Status.CANCEL_STATUS;
+			}
+		}
+		return pubStatus[0];
+	}
+	
+	/**
+	 * @see IServer#start(String, IProgressMonitor)
+	 */
+	public void start(String mode2, IProgressMonitor monitor) throws CoreException {
+		Trace.trace(Trace.FINEST, "Starting server: " + toString() + ", launchMode: " + mode2);
+		
+		// make sure that the delegate is loaded and the server state is correct
+		loadAdapter(ServerBehaviourDelegate.class, null);
+		
+		if (getServerType() == null)
+			return;
+		
+		IStatus status = publishBeforeStart(monitor,false);
+		
+		if (status != null && status.getSeverity() == IStatus.ERROR){
+			Trace.trace(Trace.FINEST,"Failed publish job during start routine");
+			return;
+		}
+		
+		StartJob startJob = new StartJob(mode2);
+		startJob.schedule();
+		
+		publishAfterStart(monitor,false,null);
+
+	}
+	
 	/**
 	 * @see IServer#start(String, IOperationListener)
 	 */
 	public void start(String mode2, final IOperationListener opListener) {
+		
+		// make sure that the delegate is loaded and the server state is correct
+		loadAdapter(ServerBehaviourDelegate.class, null);
+		
 		if (getServerType() == null) {
 			if (opListener != null)
 				opListener.done(Status.OK_STATUS);
 			return;
 		}
 		
-		// make sure that the delegate is loaded and the server state is correct
-		loadAdapter(ServerBehaviourDelegate.class, null);
+		IStatus status = publishBeforeStart(null,false);
 		
+		if (status != null && status.getSeverity() == IStatus.ERROR){
+			Trace.trace(Trace.FINEST,"Failed publish job during start routine");
+			return;
+		}
+
+		// check the publish flag (again) to determine when to call opListener.done 
 		byte pub = StartJob.PUBLISH_NONE;
 		if (ServerCore.isAutoPublishing() && shouldPublish()) {
 			if (((ServerType)getServerType()).startBeforePublish())
@@ -1687,9 +1774,9 @@
 			else
 				pub = StartJob.PUBLISH_BEFORE;
 		}
-		
-		StartJob startJob = new StartJob(mode2, pub);
-		if (opListener != null) {
+
+		StartJob startJob = new StartJob(mode2);
+		if (opListener != null && pub != StartJob.PUBLISH_AFTER) {
 			startJob.addJobChangeListener(new JobChangeAdapter() {
 				public void done(IJobChangeEvent event) {
 					opListener.done(event.getResult());
@@ -1697,24 +1784,26 @@
 			});
 		}
 		startJob.schedule();
+		
+		publishAfterStart(null,false, opListener);
 	}
 
 	public void synchronousStart(String mode2, IProgressMonitor monitor) throws CoreException {
+		
+		// make sure that the delegate is loaded and the server state is correct
+		loadAdapter(ServerBehaviourDelegate.class, null);
+		
 		if (getServerType() == null)
 			return;
 		
-		// make sure that the delegate is loaded and the server state is correct
-		loadAdapter(ServerBehaviourDelegate.class, monitor);
+		IStatus status = publishBeforeStart(monitor,true);
 		
-		byte pub = StartJob.PUBLISH_NONE;
-		if (ServerCore.isAutoPublishing() && shouldPublish()) {
-			if (((ServerType)getServerType()).startBeforePublish())
-				pub = StartJob.PUBLISH_AFTER;
-			else
-				pub = StartJob.PUBLISH_BEFORE;
+		if (status != null && status.getSeverity() == IStatus.ERROR){
+			Trace.trace(Trace.FINEST,"Failed publish job during start routine");
+			return;
 		}
 		
-		StartJob startJob = new StartJob(mode2, pub);
+		StartJob startJob = new StartJob(mode2);
 		startJob.schedule();
 		
 		try {
@@ -1722,6 +1811,8 @@
 		} catch (InterruptedException e) {
 			Trace.trace(Trace.WARNING, "Error waiting for job", e);
 		}
+		
+		publishAfterStart(monitor,true,null);
 	}
 
 	/*
@@ -2149,13 +2240,14 @@
 		try {
 			return getDelegate(monitor).getRootModules(module);
 		} catch (CoreException se) {
+			//Trace.trace(Trace.FINER, "CoreException calling delegate getParentModules() " + toString(), se);
 			throw se;
 		} catch (Exception e) {
 			ServerPlugin.logExtensionFailure(toString(), e);
 			return null;
 		}
 	}
-
+	
 	/**
 	 * Returns whether the given module can be restarted.
 	 *
@@ -2185,7 +2277,7 @@
 	 * return true if the module should be restarted (is out of
 	 * sync) or false if the module does not need to be restarted.
 	 *
-	 * @param module the module
+	 * @param module org.eclipse.wst.server.core.model.IModule
 	 * @return boolean
 	 */
 	public boolean getModuleRestartState(IModule[] module) {
@@ -2201,254 +2293,43 @@
 		return false;
 	}
 
-	abstract class OperationContext {
-		public abstract void run(IProgressMonitor monitor) throws CoreException;
-		public void cancel() {
-			// do nothing
-		}
-		public abstract String getTimeoutMessage();
-		public abstract String getFailureMessage();
-	}
-	/**
-	 * 
-	 * @param module the module that the operation applies to, or null for a server operation
-	 * @param monitor cannot be null
-	 * @return the status
-	 */
-	protected IStatus runAndWait(final IModule[] module, OperationContext runnable, final int operationTimeout, IProgressMonitor monitor) {
-		final boolean[] notified = new boolean[1];
-		IServerListener listener = new IServerListener() {
-			public void serverChanged(ServerEvent event) {
-				int eventKind = event.getKind();
-				if ((eventKind | ServerEvent.STATE_CHANGE) != 0) {
-					if ((module == null && (eventKind | ServerEvent.SERVER_CHANGE) != 0) ||
-							(module != null && module.equals(event.getModule()) && (eventKind | ServerEvent.MODULE_CHANGE) != 0)) {
-						int state = getServerState();
-						if (state == IServer.STATE_STARTED || state == IServer.STATE_STOPPED) {
-							// notify waiter
-							synchronized (notified) {
-								try {
-									Trace.trace(Trace.FINEST, "runAndWait notify");
-									notified[0] = true;
-									notified.notifyAll();
-								} catch (Exception e) {
-									Trace.trace(Trace.SEVERE, "Error notifying runAndWait", e);
-								}
-							}
-						}
-					}
-				}
-			}
-		};
-		
-		class Timer {
-			boolean timeout;
-			boolean alreadyDone;
-		}
-		final Timer timer = new Timer();
-		
-		final IProgressMonitor monitor2 = monitor;
-		Thread thread = new Thread("Server RunAndWait Timeout") {
-			public void run() {
-				try {
-					int totalTimeout = operationTimeout;
-					if (totalTimeout < 0)
-						totalTimeout = 1;
-					boolean userCancelled = false;
-					int retryPeriod = 1000;
-					while (!notified[0] && totalTimeout > 0 && !userCancelled && !timer.alreadyDone) {
-						Thread.sleep(retryPeriod);
-						if (operationTimeout > 0)
-							totalTimeout -= retryPeriod;
-						if (!notified[0] && !timer.alreadyDone && monitor2.isCanceled()) {
-							// user canceled
-							userCancelled = true;
-							if (launch != null && !launch.isTerminated())
-								launch.terminate();//TODO
-							// notify waiter
-							synchronized (notified) {
-								Trace.trace(Trace.FINEST, "runAndWait user cancelled");
-								notified[0] = true;
-								notified.notifyAll();
-							}
-						}
-					}
-					if (!userCancelled && !timer.alreadyDone && !notified[0]) {
-						// notify waiter
-						synchronized (notified) {
-							Trace.trace(Trace.FINEST, "runAndWait notify timeout");
-							if (!timer.alreadyDone && totalTimeout <= 0)
-								timer.timeout = true;
-							notified[0] = true;
-							notified.notifyAll();
-						}
-					}
-				} catch (Exception e) {
-					Trace.trace(Trace.SEVERE, "Error notifying runAndWait timeout", e);
-				}
-			}
-		};
-		thread.setDaemon(true);
-		thread.start();
-	
-		Trace.trace(Trace.FINEST, "runAndWait 2");
-	
-		// do the operation
-		try {
-			runnable.run(monitor);
-		} catch (CoreException e) {
-			removeServerListener(listener);
-			timer.alreadyDone = true;
-			return e.getStatus();
-		}
-		if (monitor.isCanceled()) {
-			removeServerListener(listener);
-			timer.alreadyDone = true;
-			return Status.CANCEL_STATUS;
-		}
-		
-		Trace.trace(Trace.FINEST, "runAndWait 3");
-		
-		// wait for it! wait for it! ...
-		synchronized (notified) {
-			try {
-				while (!notified[0] && !monitor.isCanceled() && !timer.timeout
-						&& !(getServerState() == IServer.STATE_STARTED || getServerState() == IServer.STATE_STOPPED)) {
-					notified.wait();
-				}
-			} catch (Exception e) {
-				Trace.trace(Trace.SEVERE, "Error waiting for operation", e);
-			}
-			timer.alreadyDone = true;
-		}
-		removeServerListener(listener);
-		
-		if (timer.timeout) {
-			stop(false);
-			return new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 1, NLS.bind(Messages.errorStartTimeout, new String[] { getName(), (operationTimeout / 1000) + "" }), null);
-		}
-		
-		if (!monitor.isCanceled() && getServerState() == IServer.STATE_STOPPED)
-			return new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 2, NLS.bind(Messages.errorStartFailed, getName()), null);
-		
-		return Status.OK_STATUS;
-	}
-
 	/*
 	 * @see IServer#startModule(IModule[], IOperationListener)
 	 */
-	public void startModule(final IModule[] module, final IOperationListener opListener) {
+	public void startModule(IModule[] module, IOperationListener listener) {
 		if (module == null || module.length == 0)
 			throw new IllegalArgumentException("Module cannot be null or empty or empty");
-		
-		Job moduleJob = new ServerJob(NLS.bind(Messages.jobStarting, module[0].getName())) {
-			protected IStatus run(IProgressMonitor monitor) {
-				return runAndWait(module, new OperationContext() {
-					public String getFailureMessage() {
-						return Messages.errorStartFailed;
-					}
-
-					public String getTimeoutMessage() {
-						return Messages.errorStartTimeout;
-					}
-
-					public void run(IProgressMonitor monitor2) throws CoreException {
-						try {
-							getBehaviourDelegate(monitor2).startModule(module, monitor2);
-						} catch (Exception e) {
-							Trace.trace(Trace.SEVERE, "Error calling delegate startModule() " + toString(), e);
-							throw new CoreException(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, e.getMessage()));
-						}
-					}
-				}, getStartTimeout(), monitor);
-			}
-		};
-		if (opListener != null) {
-			moduleJob.addJobChangeListener(new JobChangeAdapter() {
-				public void done(IJobChangeEvent event) {
-					opListener.done(event.getResult());
-				}
-			});
+		try {
+			getBehaviourDelegate(null).startModule(module, null);
+		} catch (Exception e) {
+			Trace.trace(Trace.SEVERE, "Error calling delegate startModule() " + toString(), e);
 		}
-		moduleJob.schedule();
 	}
 
 	/*
 	 * @see IServer#stopModule(IModule[], IOperationListener)
 	 */
-	public void stopModule(final IModule[] module, final IOperationListener opListener) {
+	public void stopModule(IModule[] module, IOperationListener listener) {
 		if (module == null || module.length == 0)
-			throw new IllegalArgumentException("Module cannot be null or empty");
-		
-		Job moduleJob = new ServerJob(NLS.bind(Messages.jobStopping, module[0].getName())) {
-			protected IStatus run(IProgressMonitor monitor) {
-				return runAndWait(module, new OperationContext() {
-					public String getFailureMessage() {
-						return Messages.errorStopFailed;
-					}
-
-					public String getTimeoutMessage() {
-						return Messages.errorStopFailed;
-					}
-
-					public void run(IProgressMonitor monitor2) throws CoreException {
-						try {
-							getBehaviourDelegate(monitor2).stopModule(module, monitor2);
-						} catch (Exception e) {
-							Trace.trace(Trace.SEVERE, "Error calling delegate stopModule() " + toString(), e);
-							throw new CoreException(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, e.getMessage()));
-						}
-					}
-				}, getStopTimeout(), monitor);
-			}
-		};
-		if (opListener != null) {
-			moduleJob.addJobChangeListener(new JobChangeAdapter() {
-				public void done(IJobChangeEvent event) {
-					opListener.done(event.getResult());
-				}
-			});
+			throw new IllegalArgumentException("Module cannot be null or empty or empty");
+		try {
+			getBehaviourDelegate(null).stopModule(module, null);
+		} catch (Exception e) {
+			Trace.trace(Trace.SEVERE, "Error calling delegate stopModule() " + toString(), e);
 		}
-		moduleJob.schedule();
 	}
 
 	/*
 	 * @see IServer#restartModule(IModule[], IOperationListener, IProgressMonitor)
 	 */
-	public void restartModule(final IModule[] module, final IOperationListener opListener) {
+	public void restartModule(IModule[] module, IOperationListener listener) {
 		if (module == null || module.length == 0)
 			throw new IllegalArgumentException("Module cannot be null or empty");
-		
-		Job moduleJob = new ServerJob(NLS.bind(Messages.jobRestarting, module[0].getName())) {
-			protected IStatus run(IProgressMonitor monitor) {
-				return runAndWait(module, new OperationContext() {
-					public String getFailureMessage() {
-						return Messages.errorRestartFailed;
-					}
-
-					public String getTimeoutMessage() {
-						return Messages.errorRestartTimeout;
-					}
-
-					public void run(IProgressMonitor monitor2) throws CoreException {
-						try {
-							getBehaviourDelegate(monitor2).restartModule(module, monitor2);
-						} catch (Exception e) {
-							Trace.trace(Trace.SEVERE, "Error calling delegate restartModule() " + toString(), e);
-							throw new CoreException(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, e.getMessage()));
-						}
-					}
-				}, getStopTimeout() + getStartTimeout(), monitor);
-			}
-		};
-		if (opListener != null) {
-			moduleJob.addJobChangeListener(new JobChangeAdapter() {
-				public void done(IJobChangeEvent event) {
-					opListener.done(event.getResult());
-				}
-			});
+		try {
+			getBehaviourDelegate(null).restartModule(module, null);
+		} catch (Exception e) {
+			Trace.trace(Trace.SEVERE, "Error calling delegate restartModule() " + toString(), e);
 		}
-		moduleJob.schedule();
 	}
 
 	/**
@@ -2660,7 +2541,7 @@
 			try {
 				addServerListener(curListener);
 				
-				// synchronous restart
+				// Synchroneous restart
 				restartImpl2(launchMode, monitor);
 				
 				return Status.OK_STATUS;
@@ -2681,7 +2562,7 @@
 					if (eventKind == (ServerEvent.SERVER_CHANGE | ServerEvent.STATE_CHANGE)) {
 						if (server.getServerState() == STATE_STOPPED) {
 							server.removeServerListener(this);
-							
+
 							// restart in a quarter second (give other listeners a chance
 							// to hear the stopped message)
 							Thread t = new Thread("Server Restart") {
@@ -2769,8 +2650,7 @@
 						if (!notified[0] && !timer.alreadyDone && monitor2.isCanceled()) {
 							// user canceled - set the server state to stopped
 							userCancelled = true;
-							if (launch != null && !launch.isTerminated())
-								launch.terminate();
+							setServerState(IServer.STATE_STOPPED);
 							// notify waiter
 							synchronized (notified) {
 								Trace.trace(Trace.FINEST, "synchronousRestart user cancelled");
@@ -2796,9 +2676,9 @@
 		};
 		thread.setDaemon(true);
 		thread.start();
-		
+	
 		Trace.trace(Trace.FINEST, "synchronousRestart 2");
-		
+	
 		// call the delegate restart
 		try {
 			getBehaviourDelegate(null).restart(launchMode);
@@ -2831,10 +2711,10 @@
 		
 		if (timer.timeout) {
 			stop(false);
-			return new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, NLS.bind(Messages.errorRestartTimeout, new String[] { getName(), (restartTimeout / 1000) + "" }), null);
+			return new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, NLS.bind(Messages.errorRestartFailed, new String[] { getName(), (restartTimeout / 1000) + "" }), null);
 		}
 		
-		if (!monitor.isCanceled() && getServerState() == IServer.STATE_STOPPED)
+		if (getServerState() == IServer.STATE_STOPPED)
 			return new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, NLS.bind(Messages.errorRestartFailed, getName()), null);
 		
 		Trace.trace(Trace.FINEST, "synchronousRestart 4");
@@ -3054,11 +2934,11 @@
 		
 		//can't throw exceptions
 		/*if (timer.timeout)
-			return new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, Messages.errorStopTimeout, getName()), null);
+			return new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, Messages.errorStartTimeout, getName()), null);
 		else
 			timer.alreadyDone = true;
 		*/
-		if (!monitor.isCanceled() && getServerState() == IServer.STATE_STARTED)
+		if (getServerState() == IServer.STATE_STARTED)
 			return new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, NLS.bind(Messages.errorStopFailed, getName()), null);
 		
 		return Status.OK_STATUS;
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/StartServerJob.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/StartServerJob.java
index cb1a2fc..90120d5 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/StartServerJob.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/StartServerJob.java
@@ -22,7 +22,7 @@
 	protected String launchMode;
 
 	public StartServerJob(IServer server, String launchMode) {
-		super(NLS.bind(Messages.jobStarting, server.getName()), server);
+		super(NLS.bind(Messages.jobStartingServer, server.getName()), server);
 		this.launchMode = launchMode;
 	}
 
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/StopServerJob.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/StopServerJob.java
index 3b96933..74bf75b 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/StopServerJob.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/StopServerJob.java
@@ -20,7 +20,7 @@
  */
 public class StopServerJob extends ChainedJob {
 	public StopServerJob(IServer server) {
-		super(NLS.bind(Messages.jobStopping, server.getName()), server);
+		super(NLS.bind(Messages.jobStoppingServer, server.getName()), server);
 	}
 
 	/* (non-Javadoc)
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/facets/RuntimeComponentProviderWrapper.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/facets/RuntimeComponentProviderWrapper.java
index bad8bf8..556450d 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/facets/RuntimeComponentProviderWrapper.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/facets/RuntimeComponentProviderWrapper.java
@@ -18,7 +18,6 @@
 import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
 import org.eclipse.wst.server.core.IRuntime;
 import org.eclipse.wst.server.core.IRuntimeType;
-import org.eclipse.wst.server.core.internal.ServerPlugin;
 import org.eclipse.wst.server.core.internal.Trace;
 /**
  * 
@@ -105,7 +104,7 @@
 			try {
 				delegate = (RuntimeFacetComponentProviderDelegate) element.createExecutableExtension("class");
 			} catch (Throwable t) {
-				ServerPlugin.logExtensionFailure(toString(), t);
+				Trace.trace(Trace.SEVERE, "Could not create delegate " + toString(), t);
 			}
 		}
 		return delegate;
@@ -120,7 +119,7 @@
 		try {
 			return getDelegate().getRuntimeComponents(runtime);
 		} catch (Exception e) {
-			ServerPlugin.logExtensionFailure(toString(), e);
+			Trace.trace(Trace.SEVERE, "Error calling delegate " + toString(), e);
 		}
 		return null;
 	}
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/PublisherDelegate.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/PublisherDelegate.java
index e4b7093..27cc380 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/PublisherDelegate.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/PublisherDelegate.java
@@ -23,8 +23,7 @@
  * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken 
  * (repeatedly) as the API evolves.
  * </p>
- * 
- * @since 1.1
+ * @plannedfor 3.1
  */
 public abstract class PublisherDelegate {
 	private TaskModel model;
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ServerBehaviourDelegate.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ServerBehaviourDelegate.java
index 2824daa..1a822ee 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ServerBehaviourDelegate.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ServerBehaviourDelegate.java
@@ -44,7 +44,6 @@
  * to extend the <code>serverTypes</code> extension point.
  * </p>
  * 
- * @noimplement
  * @see IServer
  * @see IServerWorkingCopy
  * @since 1.0
@@ -434,7 +433,7 @@
 	 *    {@link org.eclipse.debug.core.ILaunchManager}
 	 * @return a status object with code <code>IStatus.OK</code> if the server can
 	 *    be started, otherwise a status object indicating why it can't
-    * @since 1.1
+    * @since 3.0
 	 */
 	public IStatus canStart(String launchMode) {
 		return Status.OK_STATUS;
@@ -462,7 +461,7 @@
 	 *    {@link org.eclipse.debug.core.ILaunchManager}
 	 * @return a status object with code <code>IStatus.OK</code> if the server can
 	 *    be restarted, otherwise a status object indicating why it can't
-    * @since 1.1
+    * @since 3.0
 	 */
 	public IStatus canRestart(String mode) {
 		return Status.OK_STATUS;
@@ -488,7 +487,7 @@
 	 * 
 	 * @return a status object with code <code>IStatus.OK</code> if the server can
 	 *   be stopped, otherwise a status object indicating why it can't
-    * @since 1.1
+    * @since 3.0
 	 */
 	public IStatus canStop() {
 		return Status.OK_STATUS;
@@ -512,7 +511,7 @@
 	 * 
 	 * @return a status object with code <code>IStatus.OK</code> if the server can
 	 *   be published to, otherwise a status object indicating what is wrong
-    * @since 1.1
+    * @since 3.0
 	 */
 	public IStatus canPublish() {
 		return Status.OK_STATUS;
@@ -857,7 +856,7 @@
 			// execute publishers
 			taskStatus = executePublishers(kind, moduleList, monitor, info2);
 			if (taskStatus != null && !taskStatus.isOK())
-				tempMulti.addAll(taskStatus);
+				tempMulti.addAll(taskStatus);			
 			
 			if (monitor.isCanceled())
 				return Status.CANCEL_STATUS;
@@ -1066,7 +1065,6 @@
 	 *    it should minimally contain an adapter for the
 	 *    org.eclipse.swt.widgets.Shell.class
 	 * @throws CoreException
-	 * @since 1.1
 	 */
 	protected MultiStatus executePublishers(int kind, List<IModule[]> modules, IProgressMonitor monitor, IAdaptable info) throws CoreException {
 		Publisher[] publishers = ((Server)getServer()).getEnabledPublishers();
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/ModuleFile.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/ModuleFile.java
index 25cb2df..e229fc8 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/ModuleFile.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/ModuleFile.java
@@ -19,7 +19,7 @@
  * An implementation of {@link IModuleFile} for physical files on disk or in the
  * workspace.
  *
- * @since 1.1
+ * @since 3.0
  */
 public class ModuleFile implements IModuleFile {
 	private IFile file;
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/ModuleFolder.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/ModuleFolder.java
index 9874138..6d9147f 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/ModuleFolder.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/ModuleFolder.java
@@ -19,7 +19,7 @@
  * An implementation of {@link IModuleFolder} for physical folders on disk or in the
  * workspace.
  *
- * @since 1.1
+ * @since 3.0
  */
 public class ModuleFolder implements IModuleFolder {
 	private static final IModuleResource[] EMPTY_RESOURCE_ARRAY = new IModuleResource[0];
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/PublishHelper.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/PublishHelper.java
index 1392296..3b8d979 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/PublishHelper.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/PublishHelper.java
@@ -32,7 +32,7 @@
 /**
  * Utility class with an assortment of useful publishing file methods.
  *
- * @since 1.1
+ * @since 3.0
  */
 public final class PublishHelper {
 	// size of the buffer
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/PublishUtil.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/PublishUtil.java
index 483adfa..66e0247 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/PublishUtil.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/PublishUtil.java
@@ -67,7 +67,6 @@
 	 * @param monitor a progress monitor, or <code>null</code> if progress
 	 *    reporting and cancellation are not desired
 	 * @return a possibly-empty array of error and warning status 
-	 * @since 1.1
 	 */
 	public static IStatus[] publishSmart(IModuleResource[] resources, IPath path, IPath[] ignore, IProgressMonitor monitor) {
 		return publishHelper.publishSmart(resources, path, ignore, monitor);
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/SocketUtil.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/SocketUtil.java
index 47c8520..1c680db 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/SocketUtil.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/SocketUtil.java
@@ -116,39 +116,26 @@
 	}
 
 	/**
-	 * Finds an unused local port between the given from and to values.
+	 * Finds an unused port between the given from and to values.
 	 * 
 	 * @param low lowest possible port number
 	 * @param high highest possible port number
 	 * @return an unused port number, or <code>-1</code> if no used ports could be found
 	 */
 	public static int findUnusedPort(int low, int high) {
-		return findUnusedPort(null, low, high);
-	}
-
-	/**
-	 * Finds an unused local port between the given from and to values.
-	 * 
-	 * @param address a local InetAddress
-	 * @param low lowest possible port number
-	 * @param high highest possible port number
-	 * @return an unused port number, or <code>-1</code> if no used ports could be found
-	 * @since 1.1
-	 */
-	public static int findUnusedPort(InetAddress address, int low, int high) {
 		if (high < low)
 			return -1;
 		
 		for (int i = 0; i < 10; i++) {
 			int port = getRandomPort(low, high);
-			if (!isPortInUse(address, port))
+			if (!isPortInUse(port))
 				return port;
 		}
 		return -1;
 	}
 
 	/**
-	 * Return a random local port number in the given range.
+	 * Return a random port number in the given range.
 	 * 
 	 * @param low lowest possible port number
 	 * @param high highest possible port number
@@ -159,7 +146,7 @@
 	}
 
 	/**
-	 * Checks to see if the given local port number is being used. 
+	 * Checks to see if the given port number is being used. 
 	 * Returns <code>true</code> if the given port is in use, and <code>false</code>
 	 * otherwise. Retries every 500ms for "count" tries.
 	 *
@@ -169,30 +156,14 @@
 	 *    <code>false</code> otherwise
 	 */
 	public static boolean isPortInUse(int port, int count) {
-		return isPortInUse(null, port, count);
-	}
-
-	/**
-	 * Checks to see if the given local port number is being used. 
-	 * Returns <code>true</code> if the given port is in use, and <code>false</code>
-	 * otherwise. Retries every 500ms for "count" tries.
-	 *
-	 * @param address a local InetAddress
-	 * @param port the port number to check
-	 * @param count the number of times to retry
-	 * @return boolean <code>true</code> if the port is in use, and
-	 *    <code>false</code> otherwise
-	 * @since 1.1
-	 */
-	public static boolean isPortInUse(InetAddress address, int port, int count) {
-		boolean inUse = isPortInUse(address, port);
+		boolean inUse = isPortInUse(port);
 		while (inUse && count > 0) {
 			try {
 				Thread.sleep(500);
 			} catch (Exception e) {
 				// ignore
 			}
-			inUse = isPortInUse(address, port);
+			inUse = isPortInUse(port);
 			count --;
 		}
 	
@@ -200,7 +171,7 @@
 	}
 
 	/**
-	 * Checks to see if the given local port number is being used.
+	 * Checks to see if the given port number is being used.
 	 * Returns <code>true</code> if the given port is in use, and <code>false</code>
 	 * otherwise.
 	 *
@@ -209,24 +180,9 @@
 	 *    <code>false</code> otherwise
 	 */
 	public static boolean isPortInUse(int port) {
-		return isPortInUse(null, port);
-	}
-		
-	/**
-	 * Checks to see if the given local port number is being used.
-	 * Returns <code>true</code> if the given port is in use, and <code>false</code>
-	 * otherwise.
-	 * 
-	 * @param address a local InetAddress
-	 * @param port the port number to check
-	 * @return boolean <code>true</code> if the port is in use, and
-	 *    <code>false</code> otherwise
-	 * @since 1.1
-	 */
-	public static boolean isPortInUse(InetAddress address, int port) {
 		ServerSocket s = null;
 		try {
-			s = new ServerSocket(port, 0, address);
+			s = new ServerSocket(port);
 		} catch (SocketException e) {
 			return true;
 		} catch (IOException e) {
@@ -257,15 +213,13 @@
 	 * quickly and the results of this call will be returned immediately.
 	 * </p><p>
 	 * On machines where the network configuration of the machine is bad or the
-	 * network has problems, the first call to this method will always return after
-	 * 250ms, even if the caching is not complete. At that point it may return
-	 * "false negative" results. (i.e. the method will return <code>false</code>
-	 * even though it may later determine that the host address is a local host)
+	 * network has problems, this first method call will take at most 250ms, but
+	 * the results may be incorrect (incomplete).
 	 * </p><p>
 	 * All subsequent calls (until the network configuration changes) will
 	 * return very quickly. If the background process is still running it will
 	 * continue to fill the cache and each subsequent call to this method may be
-	 * more correct/complete.
+	 * more correct.
 	 * </p>
 	 * 
 	 * @param host a hostname or IP address
@@ -276,7 +230,7 @@
 		if (host == null || host.equals(""))
 			return false;
 		
-		if ("localhost".equals(host) || "127.0.0.1".equals(host) || "::1".equals(host))
+		if ("localhost".equals(host) || "127.0.0.1".equals(host))
 			return true;
 		
 		// check simple cases
diff --git a/plugins/org.eclipse.wst.server.discovery/.classpath b/plugins/org.eclipse.wst.server.discovery/.classpath
deleted file mode 100644
index 64c5e31..0000000
--- a/plugins/org.eclipse.wst.server.discovery/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.wst.server.discovery/.cvsignore b/plugins/org.eclipse.wst.server.discovery/.cvsignore
deleted file mode 100644
index 64c427c..0000000
--- a/plugins/org.eclipse.wst.server.discovery/.cvsignore
+++ /dev/null
@@ -1,8 +0,0 @@
-bin
-temp.folder
-build.xml
-serverdiscovery.jar
-org.eclipse.wst.server.discovery_1.0.0.jar
-@dot
-src.zip
-javaCompiler...args
diff --git a/plugins/org.eclipse.wst.server.discovery/.options b/plugins/org.eclipse.wst.server.discovery/.options
deleted file mode 100644
index 5ee34c5..0000000
--- a/plugins/org.eclipse.wst.server.discovery/.options
+++ /dev/null
@@ -1,4 +0,0 @@
-# Debugging options for the org.eclipse.wst.server.discovery plugin
-
-# Turn on general debugging
-org.eclipse.wst.server.discovery/debug=true
diff --git a/plugins/org.eclipse.wst.server.discovery/.project b/plugins/org.eclipse.wst.server.discovery/.project
deleted file mode 100644
index 7edf589..0000000
--- a/plugins/org.eclipse.wst.server.discovery/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.server.discovery</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.wst.server.discovery/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.wst.server.discovery/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index c6d8506..0000000
--- a/plugins/org.eclipse.wst.server.discovery/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Wed Oct 22 12:44:23 EDT 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/plugins/org.eclipse.wst.server.discovery/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.server.discovery/META-INF/MANIFEST.MF
deleted file mode 100644
index 106da10..0000000
--- a/plugins/org.eclipse.wst.server.discovery/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,21 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Plug-in Discovery Plug-in
-Bundle-SymbolicName: org.eclipse.wst.server.discovery
-Bundle-Version: 1.0.0.qualifier
-Bundle-Activator: org.eclipse.wst.server.discovery.internal.Activator
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.ui,
- 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.equinox.p2.ui
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.wst.server.discovery,
- org.eclipse.wst.server.discovery.internal;x-internal:=true,
- org.eclipse.wst.server.discovery.internal.model;x-internal:=true,
- org.eclipse.wst.server.discovery.internal.wizard;x-internal:=true
diff --git a/plugins/org.eclipse.wst.server.discovery/about.html b/plugins/org.eclipse.wst.server.discovery/about.html
deleted file mode 100644
index 2199df3..0000000
--- a/plugins/org.eclipse.wst.server.discovery/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>June, 2008</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the RedistributorÂ’s license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/plugins/org.eclipse.wst.server.discovery/build.properties b/plugins/org.eclipse.wst.server.discovery/build.properties
deleted file mode 100644
index dcdfb41..0000000
--- a/plugins/org.eclipse.wst.server.discovery/build.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               serverAdapterSites.xml,\
-               discovery.xsd,\
-               icons/,\
-               .options,\
-               about.html
-src.includes = schema/
diff --git a/plugins/org.eclipse.wst.server.discovery/discovery.xsd b/plugins/org.eclipse.wst.server.discovery/discovery.xsd
deleted file mode 100644
index 8bb2a17..0000000
--- a/plugins/org.eclipse.wst.server.discovery/discovery.xsd
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://java.sun.com/xml/ns/j2ee" xmlns:j2ee="http://java.sun.com/xml/ns/j2ee" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.4">
-
-  <xsd:complexType name="extension">
-    <xsd:annotation>
-  		<xsd:documentation>Update site URL</xsd:documentation>
-  	</xsd:annotation>
-    <xsd:attribute name="url" type="string"></xsd:attribute>
-    <xsd:attribute name="website" type="string"></xsd:attribute>
-  </xsd:complexType>
-
-</xsd:schema>
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.discovery/icons/obj16/iu_obj.gif b/plugins/org.eclipse.wst.server.discovery/icons/obj16/iu_obj.gif
deleted file mode 100644
index 8706680..0000000
--- a/plugins/org.eclipse.wst.server.discovery/icons/obj16/iu_obj.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.server.discovery/icons/wizban/install_wiz.gif b/plugins/org.eclipse.wst.server.discovery/icons/wizban/install_wiz.gif
deleted file mode 100644
index 7eee7c3..0000000
--- a/plugins/org.eclipse.wst.server.discovery/icons/wizban/install_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.server.discovery/p2errors.txt b/plugins/org.eclipse.wst.server.discovery/p2errors.txt
deleted file mode 100644
index f4a6d3a..0000000
--- a/plugins/org.eclipse.wst.server.discovery/p2errors.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-Cannot complete the install because some dependencies are not satisfiable
-  "org.mortbay.jetty.serveradaptor.feature.group 1.0.4" requires "org.mortbay.jetty.serveradaptor.feature.jar [1.0.4]" 
-  "org.mortbay.jetty.serveradaptor.feature.group 1.0.4" requires "org.mortbay.jetty.serveradaptor [1.0.4]" 
-  "bundle org.eclipse.wst.xml.ui [1.1.0,1.2.0)" and "bundle org.eclipse.wst.xml.ui [1.0.400,1.1.0)" are both required, but are not compatible with each other.
-  "bundle org.eclipse.jdt.core [3.5.0,3.6.0)" and "bundle org.eclipse.jdt.core [3.4.0,3.5.0)" are both required, but are not compatible with each other.
-  "bundle org.eclipse.emf.ecore [2.5.0,2.6.0)" and "bundle org.eclipse.emf.ecore [2.2.0,2.5.0)" are both required, but are not compatible with each other.
-  "bundle org.eclipse.wst.xml.ui [1.1.0,1.2.0)" and "bundle org.eclipse.wst.xml.ui [1.0.400,1.1.0)" are both required, but are not compatible with each other.
-  "bundle org.eclipse.jdt.core [3.5.0,3.6.0)" and "bundle org.eclipse.jdt.core [3.4.0,3.5.0)" are both required, but are not compatible with each other.
-  "bundle org.eclipse.emf.ecore [2.5.0,2.6.0)" and "bundle org.eclipse.emf.ecore [2.2.0,2.5.0)" are both required, but are not compatible with each other.
-  "bundle org.eclipse.wst.xml.ui [1.1.0,1.2.0)" and "bundle org.eclipse.wst.xml.ui [1.0.400,1.1.0)" are both required, but are not compatible with each other.
-  "bundle org.eclipse.jdt.core [3.5.0,3.6.0)" and "bundle org.eclipse.jdt.core [3.4.0,3.5.0)" are both required, but are not compatible with each other.
-  "bundle org.eclipse.emf.ecore [2.5.0,2.6.0)" and "bundle org.eclipse.emf.ecore [2.2.0,2.5.0)" are both required, but are not compatible with each other.
-  "org.eclipse.jst.feature.group 3.1.0.v200809240350-7W7A19LLZlsfal0NKLBYTRThV5G1" requires "org.eclipse.wst.xml_ui.feature.feature.group [3.1.0.v200808191955-7F6ELTCwtlGE_D1JiALreSpq6Iuh]" 
-  "org.eclipse.wst.xml_ui.feature.feature.group 3.1.0.v200808191955-7F6ELTCwtlGE_D1JiALreSpq6Iuh" requires "org.eclipse.wst.xml.ui [1.1.0.v200812102010]" 
-  "org.eclipse.jst.feature.group 3.1.0.v200809240350-7W7A19LLZlsfal0NKLBYTRThV5G1" requires "org.eclipse.jst.web_ui.feature.feature.group [3.1.0.v200812101912-7C6ECACkvW0V8bb93owz0OyEz01I]" 
-  "org.eclipse.wst.web_ui.feature.feature.group 3.1.0.v200809291500-7R5EXyE8KsI__tKi_LgK4NkvtHDb" requires "org.eclipse.wst.xml_ui.feature.feature.group [3.1.0.v200808191955-7F6ELTCwtlGE_D1JiALreSpq6Iuh]" 
-  "org.mortbay.jetty.serveradaptor.feature.group 1.0.4" requires "org.mortbay.jetty.serveradaptor [1.0.4]" 
-  "org.eclipse.wst.ws_ui.feature.feature.group 3.0.102.v200809181853-7E3ELfC-3jDoEXhkCdLtvGa-QYis" requires "org.eclipse.wst.xml_ui.feature.feature.group [3.1.0.v200808191955-7F6ELTCwtlGE_D1JiALreSpq6Iuh]" 
-  "org.eclipse.wst.web_ui.feature.feature.group 3.1.0.v200809291500-7R5EXyE8KsI__tKi_LgK4NkvtHDb" requires "org.eclipse.wst.jsdt.web.ui [1.0.200.v200812032146]" 
-  "org.eclipse.jst.feature.group 3.1.0.v200809240350-7W7A19LLZlsfal0NKLBYTRThV5G1" requires "org.eclipse.wst.web_ui.feature.feature.group 0.0.0" 
-  "org.eclipse.wst.wsdl 1.1.201.v200807170534" requires "bundle org.eclipse.emf.ecore [2.2.0,2.5.0)" 
-  "org.eclipse.wst.jsdt.web.support.jsp 1.0.200.v200810081711" requires "bundle org.eclipse.wst.jsdt.web.ui [1.0.0,2.0.0)" 
-  "org.mortbay.jetty.serveradaptor.feature.group 1.0.4" requires "org.mortbay.jetty.serveradaptor.feature.jar [1.0.4]" 
-  "org.eclipse.jst.jsp.core 1.2.110.v200809120122" requires "bundle org.eclipse.jdt.core [3.4.0,3.5.0)" 
-  "org.eclipse.jst.feature.group 3.1.0.v200809240350-7W7A19LLZlsfal0NKLBYTRThV5G1" requires "org.eclipse.wst.xml_ui.feature.feature.group 0.0.0" 
-  "org.eclipse.jst.web_ui.feature.feature.group 3.1.0.v200812101912-7C6ECACkvW0V8bb93owz0OyEz01I" requires "org.eclipse.wst.jsdt.web.support.jsp [1.0.200.v200810081711]" 
-  "org.eclipse.wst.web_ui.feature.feature.group 3.1.0.v200809291500-7R5EXyE8KsI__tKi_LgK4NkvtHDb" requires "org.eclipse.wst.ws_ui.feature.feature.group [3.0.102.v200809181853-7E3ELfC-3jDoEXhkCdLtvGa-QYis]" 
-  "org.apache.geronimo.v21.feature.feature.group 2.1.3" requires "org.eclipse.jst.feature.group 2.0.0" 
-  "org.eclipse.wst.jsdt.web.ui 1.0.200.v200812032146" requires "bundle org.eclipse.wst.xml.ui [1.1.0,1.2.0)" 
-  "org.eclipse.jst.web_ui.feature.feature.group 3.1.0.v200812101912-7C6ECACkvW0V8bb93owz0OyEz01I" requires "org.eclipse.wst.web_ui.feature.feature.group 0.0.0" 
-  "org.eclipse.jst.feature.group 3.1.0.v200809240350-7W7A19LLZlsfal0NKLBYTRThV5G1" requires "org.eclipse.wst.web_ui.feature.feature.group [3.1.0.v200809291500-7R5EXyE8KsI__tKi_LgK4NkvtHDb]" 
diff --git a/plugins/org.eclipse.wst.server.discovery/schema/categories.exsd b/plugins/org.eclipse.wst.server.discovery/schema/categories.exsd
deleted file mode 100644
index 31550ee..0000000
--- a/plugins/org.eclipse.wst.server.discovery/schema/categories.exsd
+++ /dev/null
@@ -1,108 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.server.discovery" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appinfo>
-         <meta.schema plugin="org.eclipse.wst.server.discovery" id="categories" name="Categories"/>
-      </appinfo>
-      <documentation>
-         This extension point provides a way to 
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="category" minOccurs="0" 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="category">
-      <annotation>
-         <appinfo>
-            <meta.element labelAttribute="name"/>
-         </appinfo>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  specifies a unique identifier for this category
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a translatable name used to identify this category
-               </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 a category extension point:
-
-&lt;pre&gt;
-   &lt;extension point=&quot;org.eclipse.wst.server.discovery.category&quot;&gt;
-      &lt;image
-         id=&quot;com.example&quot;
-         name=&quot;Examples&quot;/&gt;
-   &lt;/extension&gt;
-&lt;/pre&gt;
-      </documentation>
-   </annotation>
-
-
-
-
-   <annotation>
-      <appinfo>
-         <meta.section type="copyright"/>
-      </appinfo>
-      <documentation>
-         Copyright (c) 2008 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.discovery/serverAdapterSites.xml b/plugins/org.eclipse.wst.server.discovery/serverAdapterSites.xml
deleted file mode 100644
index 54ec5e0..0000000
--- a/plugins/org.eclipse.wst.server.discovery/serverAdapterSites.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<extensions>
-    <site url="http://www.apache.org/dist/geronimo/eclipse/updates/"/>
-    <site url="http://download.boulder.ibm.com/ibmdl/pub/software/websphere/wasce/updates/"/>
-    <site url="http://www.pramati.com/downloads/eclipse/updates/"/>
-    <site url="http://update.eclipse.org/updates/3.3/"/>
-    <site url="http://download.oracle.com/otn_software/oepe/ganymede/wls-adapter/"/>
-    <site url="https://ajax.dev.java.net/eclipse"/>
-    <site url="https://www.sdn.sap.com/downloads/updates/netweaver/nwds/sapnwserver/"/>
-    <site url="http://www.webtide.com/eclipse"/>
-</extensions>
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/Discovery.java b/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/Discovery.java
deleted file mode 100644
index 125b74d..0000000
--- a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/Discovery.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.discovery;
-
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Shell;
-
-public class Discovery {
-	public static boolean launchExtensionWizard(Shell shell, String title, String message) {
-		ExtensionWizard wizard = new ExtensionWizard();
-		WizardDialog dialog = new WizardDialog(shell, wizard);
-		if (dialog.open() != Window.CANCEL)
-			return true;
-		return false;
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/ExtensionWizard.java b/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/ExtensionWizard.java
deleted file mode 100644
index 2171cf5..0000000
--- a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/ExtensionWizard.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.discovery;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.equinox.internal.provisional.p2.ui.policy.Policy;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.p2.ui.dialogs.AcceptLicensesWizardPage;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.server.discovery.internal.ImageResource;
-import org.eclipse.wst.server.discovery.internal.Messages;
-import org.eclipse.wst.server.discovery.internal.model.Extension;
-import org.eclipse.wst.server.discovery.internal.wizard.ErrorWizardPage;
-import org.eclipse.wst.server.discovery.internal.wizard.ExtensionWizardPage;
-
-public class ExtensionWizard extends Wizard {
-	protected ExtensionWizardPage extensionPage;
-	protected AcceptLicensesWizardPage licensePage;
-	protected ErrorWizardPage errorPage;
-	protected IWizardPage nextPage;
-
-	public ExtensionWizard() {
-		super();
-		setWindowTitle(Messages.wizExtensionTitle);
-		setDefaultPageImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_WIZARD));
-		setNeedsProgressMonitor(true);
-		setForcePreviousAndNextButtons(true);
-	}
-
-	public void addPages() {
-		super.addPages();
-		Policy policy = new Policy();
-		licensePage = new AcceptLicensesWizardPage(policy, new IInstallableUnit[0], null);
-		licensePage.setWizard(this);
-		errorPage = new ErrorWizardPage();
-		errorPage.setWizard(this);
-		extensionPage = new ExtensionWizardPage(licensePage, errorPage);
-		extensionPage.setWizard(this);
-	}
-
-	public int getPageCount() {
-		if (nextPage != null)
-			return 2;
-		return 1;
-	}
-
-	public IWizardPage[] getPages() {
-		if (nextPage != null)
-			return new IWizardPage[] { extensionPage, nextPage };
-		return new IWizardPage[] { extensionPage };
-	}
-
-	public boolean canFinish() {
-		return licensePage.equals(nextPage) && licensePage.isPageComplete();
-	}
-
-	public IWizardPage getStartingPage() {
-		return extensionPage;
-	}
-
-	public IWizardPage getNextPage(IWizardPage page) {
-		if (extensionPage.equals(page))
-			return nextPage;
-		return null;
-	}
-
-	public IWizardPage getPreviousPage(IWizardPage page) {
-		if (nextPage != null && nextPage.equals(page))
-			return extensionPage;
-		return null;
-	}
-
-	public void setSecondPage(IWizardPage page) {
-		nextPage = page;
-		getShell().getDisplay().asyncExec(new Runnable() {
-			public void run() {
-				getContainer().updateButtons();
-			}
-		});
-	}
-
-	public boolean performFinish() {
-		return install(extensionPage.getExtension());
-	}
-
-	/**
-	 * Install a new feature.
-	 * @param extension
-	 */
-	protected static boolean install(final Extension extension) {
-		if (extension == null)
-			return false;
-		
-		final boolean[] b = new boolean[1];
-		final Display display = Display.getDefault();
-		display.syncExec(new Runnable() {
-			public void run() {
-				String msg = NLS.bind(Messages.installConfirm, extension.getName());
-				b[0] = MessageDialog.openConfirm(display.getActiveShell(),
-					Messages.dialogTitle, msg);
-			}
-		});
-		if (!b[0])
-			return true;
-		
-		String name = NLS.bind(Messages.installJobName, extension.getName());
-		Job job = new Job(name) {
-			public IStatus run(IProgressMonitor monitor) {
-				IStatus status = extension.install(monitor);
-				if (status.isOK() && !monitor.isCanceled())
-					promptRestart();
-				return status;
-			}
-		};
-		job.setUser(true);
-		job.schedule();
-		return true;
-	}
-
-	/**
-	 * Prompt the user to restart.
-	 */
-	protected static void promptRestart() {
-		final Display display = Display.getDefault();
-		display.asyncExec(new Runnable() {
-			public void run() {
-				if (MessageDialog.openQuestion(display.getActiveShell(),
-						Messages.dialogTitle, Messages.installPromptRestart)) {
-					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.discovery/src/org/eclipse/wst/server/discovery/internal/Activator.java b/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/Activator.java
deleted file mode 100644
index 35fe3e8..0000000
--- a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/Activator.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.discovery.internal;
-
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-/**
- * The activator class controls the plug-in life cycle
- */
-public class Activator extends AbstractUIPlugin {
-
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.wst.server.discovery";
-	public static final String JOB_FAMILY = PLUGIN_ID;
-
-	// The shared instance
-	private static Activator plugin;
-	
-	/**
-	 * The constructor
-	 */
-	public Activator() {
-		// do nothing
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance
-	 *
-	 * @return the shared instance
-	 */
-	public static Activator getDefault() {
-		return plugin;
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/ExtensionInstallableUnitQuery.java b/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/ExtensionInstallableUnitQuery.java
deleted file mode 100644
index c55d1a3..0000000
--- a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/ExtensionInstallableUnitQuery.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.discovery.internal;
-
-import java.util.List;
-
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.query.Query;
-
-public class ExtensionInstallableUnitQuery extends Query {
-	private List<String> list;
-
-	public ExtensionInstallableUnitQuery(List<String> list) {
-		this.list = list;
-	}
-
-	public boolean isMatch(Object object) {
-		if (!(object instanceof IInstallableUnit))
-			return false;
-		IInstallableUnit candidate = (IInstallableUnit) object;
-		if (list.contains(candidate.getId()))
-			return true;
-		return false;
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/ExtensionUtility.java b/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/ExtensionUtility.java
deleted file mode 100644
index 7169ef9..0000000
--- a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/ExtensionUtility.java
+++ /dev/null
@@ -1,236 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 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.discovery.internal;
-
-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.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfileRegistry;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.internal.provisional.p2.query.Query;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.server.discovery.internal.model.Extension;
-import org.eclipse.wst.server.discovery.internal.model.ExtensionUpdateSite;
-import org.osgi.framework.Version;
-
-public class ExtensionUtility {
-	private static ExtensionUpdateSite[] getExtensionUpdateSites(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, Activator.PLUGIN_ID, 0, "Could not load extensions", null));
-		
-		try {
-			IMemento memento = XMLMemento.loadMemento(in);
-			IMemento children[] = memento.getChildren("site");
-			int size = children.length;
-			List<ExtensionUpdateSite> list = new ArrayList<ExtensionUpdateSite>(size);
-			for (int i = 0; i < size; i++) {
-				String url2 = children[i].getString("url");
-				ExtensionUpdateSite item = new ExtensionUpdateSite(url2, null, null);
-				list.add(item);
-			}
-			
-			ExtensionUpdateSite[] items = new ExtensionUpdateSite[list.size()];
-			list.toArray(items);
-			return items;
-		} catch (Exception e) {
-			throw new CoreException(new Status(IStatus.ERROR, Activator.PLUGIN_ID, 0, e.getMessage(), e));
-		}
-	}
-
-	/**
-	 * Returns an array of all known extension update sites.
-	 * <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 ExtensionUpdateSite}
-	 */
-	private static ExtensionUpdateSite[] getExtensionUpdateSites() {
-		URL url = Activator.getDefault().getBundle().getEntry("serverAdapterSites.xml");
-		
-		try {
-			return getExtensionUpdateSites(url);
-		} catch (CoreException ce) {
-			Trace.trace(Trace.SEVERE, "Could not get extension items");
-			return new ExtensionUpdateSite[0];
-		}
-	}
-
-	/**
-	 * 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.
-	 */
-	private static boolean alreadyExists(List<Extension> existing, Extension newFeature) {
-		if (existing.contains(newFeature))
-			return true;
-		
-		Version newV = newFeature.getVersion();
-		
-		Iterator<Extension> iterator = existing.iterator();
-		while (iterator.hasNext()) {
-			Extension feature = iterator.next();
-			if (feature.getId().equals(newFeature.getId())) {
-				if (feature.getVersion().compareTo(newV) >= 0)
-					return true;
-			}
-		}
-		
-		return false;
-	}
-
-	private static void addExtension(List<Extension> list, List<Extension> existing, Extension newFeature, ExtensionListener listener) {
-		if (alreadyExists(existing, newFeature))
-			return;
-		
-		synchronized (list) {
-			Version newV = newFeature.getVersion();
-			Extension remove = null;
-			
-			Iterator<Extension> iterator = list.iterator();
-			while (iterator.hasNext()) {
-				Extension feature = iterator.next(); 
-				if (feature.getId().equals(newFeature.getId())) {
-					if (feature.getVersion().compareTo(newV) < 0) {
-						remove = feature;
-					} else // new feature is older
-						return;
-				}
-			}
-			if (remove != null) {
-				list.remove(remove);
-				listener.extensionRemoved(remove);
-			}
-			
-			list.add(newFeature);
-		}
-		listener.extensionFound(newFeature);
-	}
-
-	protected static void addExtensions(List<Extension> list, List<Extension> existing, List<Extension> newFeatures, ExtensionListener listener) {
-		Iterator<Extension> iterator = newFeatures.iterator();
-		while (iterator.hasNext())
-			addExtension(list, existing, iterator.next(), listener);
-	}
-
-	public interface ExtensionListener {
-		public void extensionFound(Extension extension);
-		public void extensionRemoved(Extension feature);
-		public void siteFailure(String host);
-	}
-
-	private static List<Extension> getExistingFeatures(IProgressMonitor monitor) throws CoreException {
-		monitor.beginTask(Messages.discoverLocalConfiguration, 100);
-		
-		IProfileRegistry profileRegistry = (IProfileRegistry) ServiceHelper.getService(Activator.getDefault().getBundle().getBundleContext(), IProfileRegistry.class.getName());
-		IProfile profile = profileRegistry.getProfile(IProfileRegistry.SELF);
-		
-		Query query = new InstallableUnitQuery(null);
-		//Query query = new InstallableUnitQuery("org.eclipse.wst.server.core.serverAdapter");
-		//List<String> list2 = new ArrayList();
-		//Query query = new ExtensionInstallableUnitQuery(list2);
-		Collector collector = new Collector();
-		profile.query(query, collector, monitor);
-		
-		List<Extension> list = new ArrayList<Extension>();
-		Iterator iter = collector.iterator();
-		while (iter.hasNext()) {
-			IInstallableUnit iu = (IInstallableUnit) iter.next();
-			if (!list.contains(iu))
-				list.add(new Extension(iu));
-		}
-		
-		monitor.done();
-		
-		return list;
-	}
-
-	public static Extension[] getAllExtensions(final String id, final ExtensionListener listener, IProgressMonitor monitor) throws CoreException {
-		monitor = ProgressUtil.getMonitorFor(monitor);
-		monitor.beginTask("", 1100);
-		
-		monitor.subTask(Messages.discoverLocalConfiguration);
-		final List<Extension> existing = getExistingFeatures(ProgressUtil.getSubMonitorFor(monitor, 100));
-		
-		final ExtensionUpdateSite[] items = getExtensionUpdateSites();
-		if (items == null || items.length == 0)
-			return new Extension[0];
-		final int x = 1000 / items.length;
-		
-		monitor.worked(50);
-		final List<Extension> list = new ArrayList<Extension>();
-		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.discoverSearching, items[i].getUrl()));
-				final int ii = i;
-				final IProgressMonitor monitor2 = monitor;
-				threads[i] = new Thread("Extension Checker for" + items[i].getUrl()) {
-					public void run() {
-						try {
-							List<Extension> list2 = items[ii].getExtensions(ProgressUtil.getSubMonitorFor(monitor2, x));
-							addExtensions(list, existing, list2, listener);
-						} catch (CoreException ce) {
-							listener.siteFailure(ce.getLocalizedMessage());
-							Trace.trace(Trace.WARNING, "Error downloading extension info", ce);
-						}
-					}
-				};
-				threads[i].setDaemon(true);
-				threads[i].start();
-			} catch (Exception e) {
-				Trace.trace(Trace.WARNING, "Error downloading extension 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 extension info 3", e);
-			}
-		}
-		
-		Extension[] ef = new Extension[list.size()];
-		list.toArray(ef);
-		monitor.done();
-		return ef;
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/IMemento.java b/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/IMemento.java
deleted file mode 100644
index 4a44c9d..0000000
--- a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/IMemento.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 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.discovery.internal;
-
-import java.util.List;
-/**
- * Interface to a memento used for saving the important state of an object
- * in a form that can be persisted in the file system.
- * <p>
- * Mementos were designed with the following requirements in mind:
- * <ol>
- *  <li>Certain objects need to be saved and restored across platform sessions.
- *    </li>
- *  <li>When an object is restored, an appropriate class for an object might not
- *    be available. It must be possible to skip an object in this case.</li>
- *  <li>When an object is restored, the appropriate class for the object may be
- *    different from the one when the object was originally saved. If so, the
- *    new class should still be able to read the old form of the data.</li>
- * </ol>
- * </p>
- * <p>
- * Mementos meet these requirements by providing support for storing a
- * mapping of arbitrary string keys to primitive values, and by allowing
- * mementos to have other mementos as children (arranged into a tree).
- * A robust external storage format based on XML is used.
- * </p><p>
- * The key for an attribute may be any alpha numeric value.  However, the
- * value of <code>TAG_ID</code> is reserved for internal use.
- * </p><p>
- * This interface is not intended to be implemented by clients.
- * </p>
- */
-public interface IMemento {
-	/**
-	 * Creates a new child of this memento with the given type.
-	 * <p>
-	 * The <code>getChild</code> and <code>getChildren</code> methods
-	 * are used to retrieve children of a given type.
-	 * </p>
-	 *
-	 * @param type the type
-	 * @return a new child memento
-	 * @see #getChild
-	 * @see #getChildren
-	 */
-	public IMemento createChild(String type);
-
-	/**
-	 * Returns the first child with the given type id.
-	 *
-	 * @param type the type id
-	 * @return the first child with the given type
-	 */
-	public IMemento getChild(String type);
-	
-	/**
-	 * Returns all children with the given type id.
-	 *
-	 * @param type the type id
-	 * @return the list of children with the given type
-	 */
-	public IMemento[] getChildren(String type);
-	
-	/**
-	 * Returns the floating point value of the given key.
-	 *
-	 * @param key the key
-	 * @return the value, or <code>null</code> if the key was not found or was found
-	 *   but was not a floating point number
-	 */
-	public Float getFloat(String key);
-
-	/**
-	 * Returns the integer value of the given key.
-	 *
-	 * @param key the key
-	 * @return the value, or <code>null</code> if the key was not found or was found
-	 *   but was not an integer
-	 */
-	public Integer getInteger(String key);
-
-	/**
-	 * Returns the string value of the given key.
-	 *
-	 * @param key the key
-	 * @return the value, or <code>null</code> if the key was not found or was found
-	 *  but was not an integer
-	 */
-	public String getString(String key);
-
-	/**
-	 * Returns the boolean value of the given key.
-	 *
-	 * @param key the key
-	 * @return the value, or <code>null</code> if the key was not found or was found
-	 *  but was not a boolean
-	 */
-	public Boolean getBoolean(String key);
-
-	public List<String> getNames();
-	
-	/**
-	 * Sets the value of the given key to the given integer.
-	 *
-	 * @param key the key
-	 * @param value the value
-	 */
-	public void putInteger(String key, int value);
-	
-	/**
-	 * Sets the value of the given key to the given boolean value.
-	 *
-	 * @param key the key
-	 * @param value the value
-	 */
-	public void putBoolean(String key, boolean value);
-
-	/**
-	 * Sets the value of the given key to the given string.
-	 *
-	 * @param key the key
-	 * @param value the value
-	 */
-	public void putString(String key, String value);
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/ImageResource.java b/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/ImageResource.java
deleted file mode 100644
index f93a652..0000000
--- a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/ImageResource.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.discovery.internal;
-
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.PlatformUI;
-/**
- * Utility class to handle image resources.
- */
-public class ImageResource {
-	// the image registry
-	private static ImageRegistry imageRegistry;
-
-	// map of image descriptors since these
-	// will be lost by the image registry
-	private static Map<String, ImageDescriptor> imageDescriptors;
-
-	// base urls for images
-	private static URL ICON_BASE_URL;
-
-	static {
-		try {
-			String pathSuffix = "icons/";
-			ICON_BASE_URL = Activator.getDefault().getBundle().getEntry(pathSuffix);
-		} catch (Exception e) {
-			Trace.trace(Trace.SEVERE, "Could not set icon base URL", e);
-		}
-	}
-
-	private static final String URL_OBJ = "obj16/";
-
-	private static final String URL_WIZBAN = "wizban/";
-
-	// --- constants for images ---
-
-	public static final String IMG_WIZARD = "wizard";
-	public static final String IMG_EXTENSION = "extension";
-
-	/**
-	 * Cannot construct an ImageResource. Use static methods only.
-	 */
-	private ImageResource() {
-		// do nothing
-	}
-	
-	/**
-	 * Dispose of element images that were created.
-	 */
-	protected static void dispose() {
-		// do nothing
-	}
-
-	/**
-	 * Return the image with the given key.
-	 *
-	 * @param key a key
-	 * @return an image
-	 */
-	public static Image getImage(String key) {
-		if (imageRegistry == null)
-			initializeImageRegistry();
-		Image image = imageRegistry.get(key);
-		if (image == null) {
-			imageRegistry.put(key, ImageDescriptor.getMissingImageDescriptor());
-			image = imageRegistry.get(key);
-		}
-		return image;
-	}
-
-	/**
-	 * Return the image descriptor with the given key.
-	 *
-	 * @param key a key
-	 * @return an image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String key) {
-		if (imageRegistry == null)
-			initializeImageRegistry();
-		ImageDescriptor id = imageDescriptors.get(key);
-		if (id != null)
-			return id;
-		
-		return ImageDescriptor.getMissingImageDescriptor();
-	}
-
-	/**
-	 * Initialize the image resources.
-	 */
-	protected static void initializeImageRegistry() {
-		imageRegistry = new ImageRegistry();
-		imageDescriptors = new HashMap<String, ImageDescriptor>();
-		
-		registerImage(IMG_WIZARD, URL_WIZBAN + "install_wiz.gif");
-		registerImage(IMG_EXTENSION, URL_OBJ + "iu_obj.gif");
-		
-		PlatformUI.getWorkbench().getProgressService().registerIconForFamily(
-				getImageDescriptor(IMG_EXTENSION), Activator.JOB_FAMILY);
-	}
-
-	/**
-	 * Register an image with the registry.
-	 *
-	 * @param key a key
-	 * @param partialURL a partial URL
-	 */
-	private static void registerImage(String key, String partialURL) {
-		try {
-			ImageDescriptor id = ImageDescriptor.createFromURL(new URL(ICON_BASE_URL, partialURL));
-			imageRegistry.put(key, id);
-			imageDescriptors.put(key, id);
-		} catch (Exception e) {
-			Trace.trace(Trace.SEVERE, "Error registering image " + key + " from " + partialURL, e);
-		}
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/Messages.java b/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/Messages.java
deleted file mode 100644
index 8873ada..0000000
--- a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/Messages.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2008 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.discovery.internal;
-
-import org.eclipse.osgi.util.NLS;
-/**
- * Translated messages.
- */
-public class Messages extends NLS {
-	public static String dialogTitle;
-	public static String viewInitializing;
-
-	public static String wizExtensionTitle;
-	public static String wizExtensionDescription;
-	public static String wizExtensionMessage;
-
-	public static String discoverSearching;
-	public static String discoverLocalConfiguration;
-	public static String discoverSiteError;
-
-	public static String installConfirm;
-	public static String installJobName;
-	public static String installPromptRestart;
-
-	static {
-		NLS.initializeMessages(Activator.PLUGIN_ID + ".internal.Messages", Messages.class);
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/Messages.properties b/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/Messages.properties
deleted file mode 100644
index 9d63a00..0000000
--- a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/Messages.properties
+++ /dev/null
@@ -1,27 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 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
-###############################################################################
-
-# Extension Wizard
-wizExtensionTitle=Install New Extension
-wizExtensionDescription=Download and install support for a new server
-wizExtensionMessage=The following server adapters have been found on remote sites. Select a server adapter to download and install.
-
-discoverLocalConfiguration=Examining local configuration
-discoverSearching=Searching {0}
-discoverSiteError=Could not connect to {0}
-
-installConfirm=Support for {0} will now be downloaded and installed. You will be prompted to restart once the installation is complete.
-installJobName=Installing {0}
-installPromptRestart=Installation complete. The new server will not be available until after the workbench is restarted. Do you want to restart now?
-
-dialogTitle=Install Extension
-
-viewInitializing=Initializing...
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/ProgressUtil.java b/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/ProgressUtil.java
deleted file mode 100644
index 94b59f1..0000000
--- a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/ProgressUtil.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 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.discovery.internal;
-
-import org.eclipse.core.runtime.*;
-/**
- * Progress Monitor utility.
- */
-public class ProgressUtil {
-	/**
-	 * ProgressUtil constructor comment.
-	 */
-	private ProgressUtil() {
-		super();
-	}
-
-	/**
-	 * Return a valid progress monitor.
-	 *
-	 * @param monitor org.eclipse.core.runtime.IProgressMonitor
-	 * @return org.eclipse.core.runtime.IProgressMonitor
-	 */
-	public static IProgressMonitor getMonitorFor(IProgressMonitor monitor) {
-		if (monitor == null)
-			return new NullProgressMonitor();
-		return monitor;
-	}
-
-	/**
-	 * Return a sub-progress monitor with the given amount on the
-	 * current progress monitor.
-	 *
-	 * @param monitor org.eclipse.core.runtime.IProgressMonitor
-	 * @param ticks int
-	 * @return org.eclipse.core.runtime.IProgressMonitor
-	 */
-	public static IProgressMonitor getSubMonitorFor(IProgressMonitor monitor, int ticks) {
-		if (monitor == null)
-			return new NullProgressMonitor();
-		if (monitor instanceof NullProgressMonitor)
-			return monitor;
-		return new SubProgressMonitor(monitor, ticks);
-	}
-
-	/**
-	 * Return a sub-progress monitor with the given amount on the
-	 * current progress monitor.
-	 *
-	 * @param monitor a progress monitor, or null
-	 * @param ticks a number of ticks
-	 * @param style a style
-	 * @return a progress monitor
-	 */
-	public static IProgressMonitor getSubMonitorFor(IProgressMonitor monitor, int ticks, int style) {
-		if (monitor == null)
-			return new NullProgressMonitor();
-		if (monitor instanceof NullProgressMonitor)
-			return monitor;
-		return new SubProgressMonitor(monitor, ticks, style);
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/Trace.java b/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/Trace.java
deleted file mode 100644
index fe978df..0000000
--- a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/Trace.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.discovery.internal;
-
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-/**
- * Helper class to route trace output.
- */
-public class Trace {
-	public static final byte CONFIG = 0;
-	public static final byte INFO = 1;
-	public static final byte WARNING = 2;
-	public static final byte SEVERE = 3;
-	public static final byte FINEST = 4;
-	public static final byte FINER = 5;
-	public static final byte PERFORMANCE = 6;
-	public static final byte EXTENSION_POINT = 7;
-
-	private static final String[] levelNames = new String[] {
-		"CONFIG ", "INFO   ", "WARNING", "SEVERE ", "FINER  ", "FINEST ", "PERF   ", "EXTENSION"};
-
-	private static final SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yy HH:mm.ss.SSS");
-
-	private static Set<String> logged = new HashSet<String>();
-
-	/**
-	 * Trace constructor comment.
-	 */
-	private Trace() {
-		super();
-	}
-
-	/**
-	 * Trace the given text.
-	 *
-	 * @param level a trace level
-	 * @param s a message
-	 */
-	public static void trace(byte level, String s) {
-		trace(level, s, null);
-	}
-
-	/**
-	 * Trace the given message and exception.
-	 *
-	 * @param level a trace level
-	 * @param s a message
-	 * @param t a throwable
-	 */
-	public static void trace(byte level, String s, Throwable t) {
-		if (s == null)
-			return;
-		
-		if (level == SEVERE) {
-			if (!logged.contains(s)) {
-				Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, s, t));
-				logged.add(s);
-			}
-		}
-		
-		if (!Activator.getDefault().isDebugging())
-			return;
-		
-		StringBuffer sb = new StringBuffer(Activator.PLUGIN_ID);
-		sb.append(" ");
-		sb.append(levelNames[level]);
-		sb.append(" ");
-		sb.append(sdf.format(new Date()));
-		sb.append(" ");
-		sb.append(s);
-		System.out.println(sb.toString());
-		if (t != null)
-			t.printStackTrace();
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/XMLMemento.java b/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/XMLMemento.java
deleted file mode 100644
index 31595b1..0000000
--- a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/XMLMemento.java
+++ /dev/null
@@ -1,390 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 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.discovery.internal;
-
-import java.io.*;
-import java.util.*;
-import org.w3c.dom.*;
-import org.xml.sax.*;
-
-import javax.xml.parsers.*;
-import javax.xml.transform.*;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-/**
- * A Memento is a class independent container for persistence
- * info.  It is a reflection of 3 storage requirements.
- *
- * 1)   We need the ability to persist an object and restore it.  
- * 2)   The class for an object may be absent.  If so we would 
- *      like to skip the object and keep reading. 
- * 3)   The class for an object may change.  If so the new class 
- *      should be able to read the old persistence info.
- *
- * We could ask the objects to serialize themselves into an 
- * ObjectOutputStream, DataOutputStream, or Hashtable.  However 
- * all of these approaches fail to meet the second requirement.
- *
- * Memento supports binary persistance with a version ID.
- */
-public final class XMLMemento implements IMemento {
-	private Document factory;
-	private Element element;
-
-	/**
-	 * Answer a memento for the document and element.  For simplicity
-	 * you should use createReadRoot and createWriteRoot to create the initial
-	 * mementos on a document.
-	 */
-	private XMLMemento(Document doc, Element el) {
-		factory = doc;
-		element = el;
-	}
-
-	/*
-	 * @see IMemento
-	 */
-	public IMemento createChild(String type) {
-		Element child = factory.createElement(type);
-		element.appendChild(child);
-		return new XMLMemento(factory, child);
-	}
-
-	/**
-	 * Create a Document from a Reader and answer a root memento for reading 
-	 * a document.
-	 */
-	protected static XMLMemento createReadRoot(InputStream in) {
-		Document document = null;
-		try {
-			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
-			DocumentBuilder parser = factory.newDocumentBuilder();
-			document = parser.parse(new InputSource(in));
-			Node node = document.getFirstChild();
-			if (node instanceof Element)
-				return new XMLMemento(document, (Element) node);
-		} catch (Exception e) {
-			// ignore
-		} finally {
-			try {
-				in.close();
-			} catch (Exception e) {
-				// ignore
-			}
-		}
-		return null;
-	}
-	
-	/**
-	 * Answer a root memento for writing a document.
-	 * 
-	 * @param type a type
-	 * @return a memento
-	 */
-	public static XMLMemento createWriteRoot(String type) {
-		Document document;
-		try {
-			document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
-			Element element = document.createElement(type);
-			document.appendChild(element);
-			return new XMLMemento(document, element);            
-		} catch (ParserConfigurationException e) {
-			throw new Error(e);
-		}
-	}
-	
-	/*
-	 * @see IMemento
-	 */
-	public IMemento getChild(String type) {
-		// Get the nodes.
-		NodeList nodes = element.getChildNodes();
-		int size = nodes.getLength();
-		if (size == 0)
-			return null;
-	
-		// Find the first node which is a child of this node.
-		for (int nX = 0; nX < size; nX ++) {
-			Node node = nodes.item(nX);
-			if (node instanceof Element) {
-				Element element2 = (Element)node;
-				if (element2.getNodeName().equals(type))
-					return new XMLMemento(factory, element2);
-			}
-		}
-	
-		// A child was not found.
-		return null;
-	}
-
-	/*
-	 * @see IMemento
-	 */
-	public IMemento [] getChildren(String type) {
-		// Get the nodes.
-		NodeList nodes = element.getChildNodes();
-		int size = nodes.getLength();
-		if (size == 0)
-			return new IMemento[0];
-	
-		// Extract each node with given type.
-		List<Element> list = new ArrayList<Element>(size);
-		for (int nX = 0; nX < size; nX ++) {
-			Node node = nodes.item(nX);
-			if (node instanceof Element) {
-				Element element2 = (Element)node;
-				if (element2.getNodeName().equals(type))
-					list.add(element2);
-			}
-		}
-	
-		// Create a memento for each node.
-		size = list.size();
-		IMemento [] results = new IMemento[size];
-		for (int x = 0; x < size; x ++) {
-			results[x] = new XMLMemento(factory, list.get(x));
-		}
-		return results;
-	}
-
-	/**
-	 * Return the contents of this memento as a byte array.
-	 *
-	 * @return byte[]
-	 * @throws IOException if anything goes wrong
-	 */
-	public byte[] getContents() throws IOException {
-		ByteArrayOutputStream out = new ByteArrayOutputStream();
-		save(out);
-		return out.toByteArray();
-	}
-
-	/**
-	 * Returns an input stream for writing to the disk with a local locale.
-	 *
-	 * @return java.io.InputStream
-	 * @throws IOException if anything goes wrong
-	 */
-	public InputStream getInputStream() throws IOException {
-		ByteArrayOutputStream out = new ByteArrayOutputStream();
-		save(out);
-		return new ByteArrayInputStream(out.toByteArray());
-	}
-
-	/*
-	 * @see IMemento
-	 */
-	public Float getFloat(String key) {
-		Attr attr = element.getAttributeNode(key);
-		if (attr == null)
-			return null; 
-		String strValue = attr.getValue();
-		try {
-			return new Float(strValue);
-		} catch (NumberFormatException e) {
-			return null;
-		}
-	}
-
-	/*
-	 * @see IMemento
-	 */
-	public Integer getInteger(String key) {
-		Attr attr = element.getAttributeNode(key);
-		if (attr == null)
-			return null; 
-		String strValue = attr.getValue();
-		try {
-			return new Integer(strValue);
-		} catch (NumberFormatException e) {
-			return null;
-		}
-	}
-
-	/*
-	 * @see IMemento
-	 */
-	public String getString(String key) {
-		Attr attr = element.getAttributeNode(key);
-		if (attr == null)
-			return null; 
-		return attr.getValue();
-	}
-
-	public List<String> getNames() {
-		NamedNodeMap map = element.getAttributes();
-		int size = map.getLength();
-		List<String> list = new ArrayList<String>();
-		for (int i = 0; i < size; i++) {
-			Node node = map.item(i);
-			String name = node.getNodeName();
-			list.add(name);
-		}
-		return list;
-	}
-
-	/**
-	 * Loads a memento from the given filename.
-	 *
-	 * @param in java.io.InputStream
-	 * @return org.eclipse.ui.IMemento
-	 */
-	public static IMemento loadMemento(InputStream in) {
-		return createReadRoot(in);
-	}
-
-	/**
-	 * Loads a memento from the given filename.
-	 *
-	 * @param filename java.lang.String
-	 * @return org.eclipse.ui.IMemento
-	 * @exception java.io.IOException
-	 */
-	public static IMemento loadMemento(String filename) throws IOException {
-		InputStream in = null;
-		try {
-			in = new BufferedInputStream(new FileInputStream(filename));
-			return XMLMemento.createReadRoot(in);
-		} finally {
-			try {
-				if (in != null)
-					in.close();
-			} catch (Exception e) {
-				// ignore
-			}
-		}
-	}
-
-	/*
-	 * @see IMemento
-	 */
-	public void putInteger(String key, int n) {
-		element.setAttribute(key, String.valueOf(n));
-	}
-
-	/*
-	 * @see IMemento
-	 */
-	public void putString(String key, String value) {
-		if (value == null)
-			return;
-		element.setAttribute(key, value);
-	}
-	
-	/**
-	 * Save this Memento to a Writer.
-	 * 
-	 * @throws IOException if there is a problem saving
-	 */
-	public void save(OutputStream os) throws IOException {
-		Result result = new StreamResult(os);
-		Source source = new DOMSource(factory);
-		try {
-			Transformer transformer = TransformerFactory.newInstance().newTransformer();
-			transformer.setOutputProperty(OutputKeys.INDENT, "yes");
-			transformer.setOutputProperty(OutputKeys.METHOD, "xml");
-			transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
-			transformer.setOutputProperty("{http://xml.apache.org/xalan}indent-amount", "2");
-			transformer.transform(source, result);
-		} catch (Exception e) {
-			throw (IOException) (new IOException().initCause(e));
-		}
-	}
-
-	/**
-	 * Saves the memento to the given file.
-	 *
-	 * @param filename java.lang.String
-	 * @exception java.io.IOException
-	 */
-	public void saveToFile(String filename) throws IOException {
-		BufferedOutputStream w = null;
-		try {
-			w = new BufferedOutputStream(new FileOutputStream(filename));
-			save(w);
-		} catch (IOException e) {
-			throw e;
-		} catch (Exception e) {
-			throw new IOException(e.getLocalizedMessage());
-		} finally {
-			if (w != null) {
-				try {
-					w.close();
-				} catch (Exception e) {
-					// ignore
-				}
-			}
-		}
-	}
-	
-	public String saveToString() throws IOException {
-		ByteArrayOutputStream out = new ByteArrayOutputStream();
-		save(out);
-		return out.toString("UTF-8");
-	}
-	
-	/*
-	 * @see IMemento#getBoolean(String)
-	 */
-	public Boolean getBoolean(String key) {
-		Attr attr = element.getAttributeNode(key);
-		if (attr == null)
-			return null;
-		String strValue = attr.getValue();
-		if ("true".equalsIgnoreCase(strValue))
-			return new Boolean(true);
-		return new Boolean(false);
-	}
-
-	/*
-	 * @see IMemento#putBoolean(String, boolean)
-	 */
-	public void putBoolean(String key, boolean value) {
-		element.setAttribute(key, value ? "true" : "false");
-	}
-
-	/**
-    * Returns the Text node of the memento. Each memento is allowed only 
-    * one Text node.
-    * 
-    * @return the Text node of the memento, or <code>null</code> if
-    * the memento has no Text node.
-    */
-   private Text getTextNode() {
-       // Get the nodes.
-       NodeList nodes = element.getChildNodes();
-       int size = nodes.getLength();
-       if (size == 0) {
-			return null;
-		}
-       for (int nX = 0; nX < size; nX++) {
-           Node node = nodes.item(nX);
-           if (node instanceof Text) {
-               return (Text) node;
-           }
-       }
-       // a Text node was not found
-       return null;
-   }
-  
-	/* (non-Javadoc)
-    */
-   public void putTextData(String data) {
-       Text textNode = getTextNode();
-       if (textNode == null) {
-           textNode = factory.createTextNode(data);
-			// Always add the text node as the first child (fixes bug 93718) 
-			element.insertBefore(textNode, element.getFirstChild());
-       } else {
-           textNode.setData(data);
-       }
-   }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/model/Extension.java b/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/model/Extension.java
deleted file mode 100644
index ecad834..0000000
--- a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/model/Extension.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.discovery.internal.model;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
-import org.eclipse.equinox.internal.provisional.p2.director.IPlanner;
-import org.eclipse.equinox.internal.provisional.p2.director.ProfileChangeRequest;
-import org.eclipse.equinox.internal.provisional.p2.director.ProvisioningPlan;
-import org.eclipse.equinox.internal.provisional.p2.engine.DefaultPhaseSet;
-import org.eclipse.equinox.internal.provisional.p2.engine.IEngine;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfileRegistry;
-import org.eclipse.equinox.internal.provisional.p2.engine.ProvisioningContext;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.ui.IUPropertyUtils;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.server.discovery.internal.Activator;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Version;
-
-public class Extension {
-	private ImageDescriptor imageDescriptor;
-	private IInstallableUnit iu;
-
-	private ProvisioningContext provContext;
-	private ProvisioningPlan plan;
-
-	public Extension() {
-		// do nothing
-	}
-
-	public Extension(IInstallableUnit iu) {
-		this.iu = iu;
-	}
-
-	public String getName() {
-		return IUPropertyUtils.getIUProperty(iu, IInstallableUnit.PROP_NAME);
-	}
-
-	public String getDescription() {
-		return IUPropertyUtils.getIUProperty(iu, IInstallableUnit.PROP_DESCRIPTION);
-	}
-
-	public Image getImage() {
-		// TODO no image support in p2 yet
-		return null;
-	}
-
-	public String getLicense() {
-		return iu.getLicense().getBody();
-	}
-
-	public String getProvider() {
-		return IUPropertyUtils.getIUProperty(iu, IInstallableUnit.PROP_PROVIDER);
-	}
-
-	public String getId() {
-		return iu.getId();
-	}
-
-	public Version getVersion() {
-		return iu.getVersion();
-	}
-
-	public IStatus install(IProgressMonitor monitor) {
-		BundleContext bundleContext = Activator.getDefault().getBundle().getBundleContext();
-		
-		ProvisioningPlan plan = getProvisioningPlan(monitor);
-		if (!plan.getStatus().isOK())
-			return plan.getStatus();
-		
-		IProfileRegistry profileRegistry = (IProfileRegistry) ServiceHelper.getService(bundleContext, IProfileRegistry.class.getName());
-		IProfile profile = profileRegistry.getProfile(IProfileRegistry.SELF);
-		
-		IEngine engine = (IEngine) ServiceHelper.getService(bundleContext, IEngine.SERVICE_NAME);
-		return engine.perform(profile, new DefaultPhaseSet(), plan.getOperands(), provContext, monitor);
-	}
-
-	public IInstallableUnit[] getIUs() {
-		return new IInstallableUnit[] { iu };
-	}
-
-	public ProvisioningPlan getProvisioningPlan(IProgressMonitor monitor) {
-		if (plan != null)
-			return plan;
-		
-		BundleContext bundleContext = Activator.getDefault().getBundle().getBundleContext();
-		IPlanner planner = (IPlanner) ServiceHelper.getService(bundleContext, IPlanner.class.getName());
-		
-		IProfileRegistry profileRegistry = (IProfileRegistry) ServiceHelper.getService(bundleContext, IProfileRegistry.class.getName());
-		IProfile profile = profileRegistry.getProfile(IProfileRegistry.SELF);
-		ProfileChangeRequest pcr = new ProfileChangeRequest(profile);
-		pcr.addInstallableUnits(new IInstallableUnit[] { iu } );
-		provContext = new ProvisioningContext();
-		plan = planner.getProvisioningPlan(pcr, provContext, monitor);
-		return plan;
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/model/ExtensionUpdateSite.java b/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/model/ExtensionUpdateSite.java
deleted file mode 100644
index 11e0d24..0000000
--- a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/model/ExtensionUpdateSite.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.discovery.internal.model;
-
-import java.net.URI;
-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.equinox.internal.p2.updatesite.metadata.UpdateSiteMetadataRepositoryFactory;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.RequiredCapability;
-import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.internal.provisional.p2.query.Query;
-import org.eclipse.wst.server.discovery.internal.Trace;
-/*
-* From Kosta:
-*   feature version (optional)
-*   alternate name (optional) - defaults to feature name
-*/
-public class ExtensionUpdateSite {
-	private static final List<String> EMPTY_LIST = new ArrayList<String>(0);
-
-	private String url;
-	private String featureId;
-	private String homepage;
-	private String supportUrl;
-	private List<String> categories;
-
-	public ExtensionUpdateSite() {
-		// do nothing
-	}
-
-	public ExtensionUpdateSite(String url, String featureId, List<String> categories) {
-		this.url = url;
-		this.featureId = featureId;
-		this.categories = categories;
-	}
-
-	public String getUrl() {
-		return url;
-	}
-
-	public String getFeatureId() {
-		return featureId;
-	}
-
-	public List<String> getCategories() {
-		if (categories == null)
-			return EMPTY_LIST;
-		return categories;
-	}
-
-	public List<Extension> getExtensions(IProgressMonitor monitor) throws CoreException {
-		try {
-			UpdateSiteMetadataRepositoryFactory mrf = new UpdateSiteMetadataRepositoryFactory();
-			URI url2 = new URI(url);
-			IMetadataRepository repo = mrf.load(url2, monitor);
-			Query query = new InstallableUnitQuery("org.eclipse.wst.server.core.serverAdapter");
-			Collector collector = new Collector(); 
-			repo.query(query, collector, monitor);
-			
-			List<Extension> list = new ArrayList<Extension>();
-			Iterator iter = collector.iterator();
-			while (iter.hasNext()) {
-				IInstallableUnit iu = (IInstallableUnit) iter.next();
-				RequiredCapability[] req = iu.getRequiredCapabilities();
-				if (req != null) {
-					for (RequiredCapability rc : req) {
-						query = new InstallableUnitQuery(rc.getName(), rc.getRange());
-						Collector collector2 = new Collector();
-						repo.query(query, collector2, monitor);
-						
-						Iterator iter2 = collector2.iterator();
-						while (iter2.hasNext()) {
-							IInstallableUnit iu2 = (IInstallableUnit) iter2.next();
-							if (!list.contains(iu2)) {
-								Extension ext = new Extension(iu2);
-								list.add(ext);
-							}
-						}
-					}
-				}
-			}
-			return list;
-		} catch (Exception e) {
-			Trace.trace(Trace.WARNING, "Error getting update info", e);
-			return new ArrayList<Extension>(0);
-		}
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/wizard/BaseLabelProvider.java b/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/wizard/BaseLabelProvider.java
deleted file mode 100644
index 2bf1fdb..0000000
--- a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/wizard/BaseLabelProvider.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 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.discovery.internal.wizard;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ILabelDecorator;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.LabelProviderChangedEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.server.discovery.internal.Trace;
-/**
- * A basic label provider.
- */
-public abstract class BaseLabelProvider implements ILabelProvider {
-	protected ILabelDecorator decorator;
-	private transient List<ILabelProviderListener> listeners;
-	private ILabelProviderListener providerListener;
-
-	/**
-	 * A basic ILabelProvider with no decorator.
-	 */
-	public BaseLabelProvider() {
-		this(null);
-	}
-
-	/**
-	 * A basic ILabelProvider with support for a decorator.
-	 * 
-	 * @param decorator a label decorator, or null if no decorator is required
-	 */
-	public BaseLabelProvider(ILabelDecorator decorator) {
-		super();
-		if (decorator == null)
-			decorator = PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator();
-		
-		this.decorator = decorator;
-		if (decorator != null) {
-			providerListener = new ILabelProviderListener() {
-				public void labelProviderChanged(LabelProviderChangedEvent event) {
-					fireListener(event);
-				}
-			};
-			decorator.addListener(providerListener);
-		}
-	}
-
-	/**
-	 * Use this method to avoid having a label decorator. This method is NOT API.
-	 * 
-	 * @param noDecorator
-	 */
-	public BaseLabelProvider(boolean noDecorator) {
-		super();
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
-	 */
-	public void addListener(ILabelProviderListener listener) {
-		if (listener == null)
-			throw new IllegalArgumentException("Listener cannot be null");
-		
-		if (listeners == null)
-			listeners = new ArrayList<ILabelProviderListener>();
-		listeners.add(listener);
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
-	 */
-	public void removeListener(ILabelProviderListener listener) {
-		if (listener == null)
-			throw new IllegalArgumentException("Listener cannot be null");
-		
-		if (listeners != null)
-			listeners.remove(listener);
-	}
-
-	protected void fireListener(LabelProviderChangedEvent event) {
-		if (listeners == null || listeners.isEmpty())
-			return;
-		
-		int size = listeners.size();
-		ILabelProviderListener[] srl = new ILabelProviderListener[size];
-		listeners.toArray(srl);
-		
-		for (int i = 0; i < size; i++) {
-			try {
-				srl[i].labelProviderChanged(event);
-			} catch (Exception e) {
-				Trace.trace(Trace.WARNING, "  Error firing label change event to " + srl[i], e);
-			}
-		}
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
-	 */
-	public void dispose() {
-		if (decorator != null)
-			decorator.removeListener(providerListener);
-	}
-
-	/**
-	 * @see ILabelProvider#getImage(java.lang.Object)
-	 */
-	public Image getImage(Object element) {
-		return null;
-	}
-
-	/**
-	 * @see ILabelProvider#getText(java.lang.Object)
-	 */
-	public String getText(Object element) {
-		return "";
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
-	 */
-	public boolean isLabelProperty(Object element, String property) {
-		return false;
-	}
-
-	protected String notNull(String s) {
-		if (s == null)
-			return "";
-		return s;
-	}
-}
diff --git a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/wizard/ErrorWizardPage.java b/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/wizard/ErrorWizardPage.java
deleted file mode 100644
index bf43334..0000000
--- a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/wizard/ErrorWizardPage.java
+++ /dev/null
@@ -1,257 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.discovery.internal.wizard;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.wst.server.discovery.internal.Messages;
-
-public class ErrorWizardPage extends WizardPage {
-	/**
-	 * The nesting indent.
-	 */
-	private static final String NESTING_INDENT = "  "; //$NON-NLS-1$
-
-	/**
-	 * The SWT list control that displays the error details.
-	 */
-	private List list;
-
-	/**
-	 * Message (a localized string).
-	 */
-	protected String message;
-
-	/**
-	 * The main status object.
-	 */
-	private IStatus status;
-
-	/**
-	 * The current clipboard. To be disposed when closing the dialog.
-	 */
-	private Clipboard clipboard;
-
-	public ErrorWizardPage() {
-		super("error-page");
-		setTitle(Messages.wizExtensionTitle);
-		setDescription(Messages.wizExtensionDescription);
-	}
-
-	public void createControl(Composite parent) {
-		Control control = createDropDownList(parent);
-		setControl(control);
-	}
-
-	/**
-	 * Set the status displayed by this error dialog to the given status. This
-	 * only affects the status displayed by the Details list. The message, image
-	 * and title should be updated by the subclass, if desired.
-	 * 
-	 * @param status
-	 *            the status to be displayed in the details list
-	 */
-	public void setStatus(IStatus status) {
-		if (this.status != status)
-			this.status = status;
-		
-		setDescription(status.getMessage());
-		if (list != null && !list.isDisposed()) {
-			list.removeAll();
-			populateList(list);
-		}
-	}
-
-	/**
-	 * Create this dialog's drop-down list component.
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 * @return the drop-down list component
-	 */
-	protected List createDropDownList(Composite parent) {
-		list = new List(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI);
-		populateList(list);
-		GridData data = new GridData(SWT.FILL, SWT.FILL, false, false);
-		data.widthHint = 225;
-		list.setLayoutData(data);
-		list.setFont(parent.getFont());
-		Menu copyMenu = new Menu(list);
-		MenuItem copyItem = new MenuItem(copyMenu, SWT.NONE);
-		copyItem.addSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent e) {
-				copyToClipboard();
-			}
-
-			public void widgetDefaultSelected(SelectionEvent e) {
-				copyToClipboard();
-			}
-		});
-		copyItem.setText(JFaceResources.getString("copy")); //$NON-NLS-1$
-		list.setMenu(copyMenu);
-		//listCreated = true;
-		return list;
-	}
-
-	/**
-	 * Copy the contents of the statuses to the clipboard.
-	 */
-	protected void copyToClipboard() {
-		if (clipboard != null)
-			clipboard.dispose();
-		
-		StringBuffer statusBuffer = new StringBuffer();
-		populateCopyBuffer(status, statusBuffer, 0);
-		clipboard = new Clipboard(list.getDisplay());
-		clipboard.setContents(new Object[] { statusBuffer.toString() },
-				new Transfer[] { TextTransfer.getInstance() });
-	}
-
-	public void dispose() {
-		if (clipboard != null)
-			clipboard.dispose();
-		
-		super.dispose();
-	}
-
-	/**
-	 * Put the details of the status of the error onto the stream.
-	 * 
-	 * @param buildingStatus
-	 * @param buffer
-	 * @param nesting
-	 */
-	private void populateCopyBuffer(IStatus buildingStatus, StringBuffer buffer, int nesting) {
-		for (int i = 0; i < nesting; i++)
-			buffer.append(NESTING_INDENT);
-		
-		buffer.append(buildingStatus.getMessage());
-		buffer.append("\n"); //$NON-NLS-1$
-
-		// Look for a nested core exception
-		Throwable t = buildingStatus.getException();
-		if (t instanceof CoreException) {
-			CoreException ce = (CoreException) t;
-			populateCopyBuffer(ce.getStatus(), buffer, nesting + 1);
-		} else if (t != null) {
-			// Include low-level exception message
-			for (int i = 0; i < nesting; i++)
-				buffer.append(NESTING_INDENT);
-			
-			String message = t.getLocalizedMessage();
-			if (message == null)
-				message = t.toString();
-			
-			buffer.append(message);
-			buffer.append("\n"); //$NON-NLS-1$
-		}
-
-		IStatus[] children = buildingStatus.getChildren();
-		for (int i = 0; i < children.length; i++)
-			populateCopyBuffer(children[i], buffer, nesting + 1);
-	}
-
-	/**
-	 * Populates the list using this error dialog's status object. This walks
-	 * the child static of the status object and displays them in a list. The
-	 * format for each entry is status_path : status_message If the status's
-	 * path was null then it (and the colon) are omitted.
-	 * 
-	 * @param listToPopulate
-	 *            The list to fill.
-	 */
-	private void populateList(List listToPopulate) {
-		populateList(listToPopulate, status, 0, true);
-	}
-
-	/**
-	 * Populate the list with the messages from the given status. Traverse the
-	 * children of the status deeply and also traverse CoreExceptions that
-	 * appear in the status.
-	 * 
-	 * @param listToPopulate
-	 *            the list to populate
-	 * @param buildingStatus
-	 *            the status being displayed
-	 * @param nesting
-	 *            the nesting level (increases one level for each level of
-	 *            children)
-	 * @param includeStatus
-	 *            whether to include the buildingStatus in the display or just
-	 *            its children
-	 */
-	private void populateList(List listToPopulate, IStatus buildingStatus,
-			int nesting, boolean includeStatus) {
-		
-		Throwable t = buildingStatus.getException();
-		boolean isCoreException = t instanceof CoreException;
-		boolean incrementNesting = false;
-		
-		if (includeStatus) {
-			StringBuffer sb = new StringBuffer();
-			for (int i = 0; i < nesting; i++)
-				sb.append(NESTING_INDENT);
-			
-			String message = buildingStatus.getMessage();
-			sb.append(message);
-			listToPopulate.add(sb.toString());
-			incrementNesting = true;
-		}
-
-		if (!isCoreException && t != null) {
-			// Include low-level exception message
-			StringBuffer sb = new StringBuffer();
-			for (int i = 0; i < nesting; i++)
-				sb.append(NESTING_INDENT);
-			
-			String message = t.getLocalizedMessage();
-			if (message == null)
-				message = t.toString();
-
-			sb.append(message);
-			listToPopulate.add(sb.toString());
-			incrementNesting = true;
-		}
-
-		if (incrementNesting)
-			nesting++;
-
-		// Look for a nested core exception
-		if (isCoreException) {
-			CoreException ce = (CoreException) t;
-			IStatus eStatus = ce.getStatus();
-			// Only print the exception message if it is not contained in the
-			// parent message
-			if (message == null || message.indexOf(eStatus.getMessage()) == -1) {
-				populateList(listToPopulate, eStatus, nesting, true);
-			}
-		}
-
-		// Look for child status
-		IStatus[] children = buildingStatus.getChildren();
-		for (int i = 0; i < children.length; i++)
-			populateList(listToPopulate, children[i], nesting, true);
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/wizard/ExtensionComposite.java b/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/wizard/ExtensionComposite.java
deleted file mode 100644
index e315aaa..0000000
--- a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/wizard/ExtensionComposite.java
+++ /dev/null
@@ -1,492 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 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.discovery.internal.wizard;
-
-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.wst.server.discovery.internal.ExtensionUtility;
-import org.eclipse.wst.server.discovery.internal.ImageResource;
-import org.eclipse.wst.server.discovery.internal.Messages;
-import org.eclipse.wst.server.discovery.internal.Trace;
-import org.eclipse.wst.server.discovery.internal.model.Extension;
-/**
- * 
- */
-public class ExtensionComposite extends Composite {
-	private static final String ROOT = "root";
-
-	public interface ExtensionSelectionListener {
-		public void extensionSelected(Extension extension);
-	}
-
-	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 ExtensionSelectionListener listener;
-
-	public ExtensionComposite(Composite parent, int style, ExtensionSelectionListener 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);
-		
-		table = new Table(this, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI | SWT.FULL_SELECTION);
-		GridData 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.discoverSiteError, sb.toString());
-					gc.drawText(s, event.x + TEXT_MARGIN, event.y + TEXT_MARGIN, true);
-					return;
-				}
-				Extension ei = (Extension) 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.getName();
-				String provider = "" + ei.getProvider();
-				//String provider = "" + ei.getImage();
-				//String provider = "" + ExtensionUtility.getDescription(ei);
-				String version = ei.getVersion().toString();
-				/*int ind = ver.indexOf("_");
-				if (ind >= 0)
-					ver = ver.substring(ind+1);
-				String version = "v" + ver;*/
-				
-				//Image image = getImage(ei.getImage());
-				Image image = ei.getImage();
-				if (image == null)
-					image = ImageResource.getImage(ImageResource.IMG_WIZARD); // TODO
-				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 Extension) && !(e2 instanceof Extension))
-					return -1;
-				if (!(e1 instanceof Extension) && (e2 instanceof Extension))
-					return 1;
-				try {
-					Extension f1 = (Extension) e1;
-					Extension f2 = (Extension) e2;
-					return (f1.getName().compareToIgnoreCase(f2.getName()));
-				} 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();
-				Extension extension = null;
-				if (obj instanceof Extension)
-					extension = (Extension) obj;
-				
-				handleSelection(extension);
-				if (extension != null)
-					description.setText(extension.getDescription());
-				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(Extension extension) {
-		listener.extensionSelected(extension);
-	}
-
-	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(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(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.ExtensionListener listener2 = new ExtensionUtility.ExtensionListener() {
-			public void extensionFound(Extension feature) {
-				list.add(feature);
-				if (progress != null)
-					list.set(0, progress);
-			}
-
-			public void extensionRemoved(Extension 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"; // TODO
-		try {
-			ExtensionUtility.getAllExtensions(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(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.discovery/src/org/eclipse/wst/server/discovery/internal/wizard/ExtensionContentProvider.java b/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/wizard/ExtensionContentProvider.java
deleted file mode 100644
index f33831f..0000000
--- a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/wizard/ExtensionContentProvider.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 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.discovery.internal.wizard;
-
-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.discovery/src/org/eclipse/wst/server/discovery/internal/wizard/ExtensionTableLabelProvider.java b/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/wizard/ExtensionTableLabelProvider.java
deleted file mode 100644
index ee237fd..0000000
--- a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/wizard/ExtensionTableLabelProvider.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 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.discovery.internal.wizard;
-
-import java.util.List;
-
-import org.eclipse.jface.viewers.ILabelDecorator;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.server.discovery.internal.model.Extension;
-/**
- * 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();
-		
-		Extension item = (Extension) element;
-		return item.getName() + "\n" + item.getProvider();
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/wizard/ExtensionWizardPage.java b/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/wizard/ExtensionWizardPage.java
deleted file mode 100644
index e93a7b0..0000000
--- a/plugins/org.eclipse.wst.server.discovery/src/org/eclipse/wst/server/discovery/internal/wizard/ExtensionWizardPage.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.discovery.internal.wizard;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.equinox.internal.p2.ui.dialogs.AcceptLicensesWizardPage;
-import org.eclipse.equinox.internal.provisional.p2.director.ProvisioningPlan;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.WizardPage;
-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;
-import org.eclipse.wst.server.discovery.ExtensionWizard;
-import org.eclipse.wst.server.discovery.internal.Messages;
-import org.eclipse.wst.server.discovery.internal.Trace;
-import org.eclipse.wst.server.discovery.internal.model.Extension;
-
-public class ExtensionWizardPage extends WizardPage {
-	private ExtensionComposite comp;
-	protected AcceptLicensesWizardPage licensePage;
-	protected ErrorWizardPage errorPage;
-	protected IWizardPage nextPage;
-	private Extension extension;
-
-	public ExtensionWizardPage(AcceptLicensesWizardPage licenseWizardPage, ErrorWizardPage errorWizardPage) {
-		super("extension");
-		this.licensePage = licenseWizardPage;
-		this.errorPage = errorWizardPage;
-		setTitle(Messages.wizExtensionTitle);
-		setDescription(Messages.wizExtensionDescription);
-		setPageComplete(false);
-	}
-
-	public void createControl(Composite parent) {
-		initializeDialogUnits(parent);
-		Composite composite = new Composite(parent, SWT.NULL);
-		composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
-		
-		GridLayout layout = new GridLayout();
-		layout.horizontalSpacing = convertHorizontalDLUsToPixels(4);
-		layout.verticalSpacing = convertVerticalDLUsToPixels(4);
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		layout.numColumns = 3;
-		composite.setLayout(layout);
-		//WorkbenchHelp.setHelp(this, ContextIds.SELECT_CLIENT_WIZARD);
-		
-		Label label = new Label(composite, SWT.WRAP);
-		GridData data = new GridData(SWT.FILL, SWT.BEGINNING, false, false);
-		data.horizontalSpan = 3;
-		label.setLayoutData(data);
-		label.setText(Messages.wizExtensionMessage);
-		
-		comp = new ExtensionComposite(composite, SWT.NONE, new ExtensionComposite.ExtensionSelectionListener() {
-			public void extensionSelected(Extension sel) {
-				handleSelection(sel);
-			}
-		});
-		data = new GridData(SWT.FILL, SWT.FILL, true, false);
-		data.widthHint = 200;
-		data.heightHint = 400;
-		comp.setLayoutData(data);
-		
-		Dialog.applyDialogFont(composite);
-		setControl(composite);
-	}
-
-	protected void handleSelection(Extension sel) {
-		extension = sel;
-		if (extension == null)
-			licensePage.update(new IInstallableUnit[0], null);
-		else {
-			try {
-				getContainer().run(true, true, new IRunnableWithProgress() {
-					public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-						final ProvisioningPlan plan = extension.getProvisioningPlan(monitor);
-						if (plan != null && plan.getStatus().isOK()) {
-							getShell().getDisplay().asyncExec(new Runnable() {
-								public void run() {
-									licensePage.update(extension.getIUs(), plan);
-									nextPage = licensePage;
-									((ExtensionWizard)getWizard()).setSecondPage(nextPage);
-								}
-							});
-						} else {
-							getShell().getDisplay().asyncExec(new Runnable() {
-								public void run() {
-									errorPage.setStatus(plan.getStatus());
-								}
-							});
-							nextPage = errorPage;
-							((ExtensionWizard)getWizard()).setSecondPage(nextPage);
-						}
-					}
-				});
-			} catch (Exception e) {
-				Trace.trace(Trace.SEVERE, "Error verifying license", e);
-			} 
-		}
-		setPageComplete(extension != null);
-	}
-
-	public Extension getExtension() {
-		return extension;
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.http.core/.classpath b/plugins/org.eclipse.wst.server.http.core/.classpath
deleted file mode 100644
index 196d49a..0000000
--- a/plugins/org.eclipse.wst.server.http.core/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src/"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.wst.server.http.core/.cvsignore b/plugins/org.eclipse.wst.server.http.core/.cvsignore
deleted file mode 100644
index 33dd7de..0000000
--- a/plugins/org.eclipse.wst.server.http.core/.cvsignore
+++ /dev/null
@@ -1,6 +0,0 @@
-bin
-temp.folder
-build.xml
-@dot
-src.zip
-javaCompiler...args
diff --git a/plugins/org.eclipse.wst.server.http.core/.project b/plugins/org.eclipse.wst.server.http.core/.project
deleted file mode 100644
index 05c516a..0000000
--- a/plugins/org.eclipse.wst.server.http.core/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.server.http.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.wst.server.http.core/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.wst.server.http.core/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index c8be432..0000000
--- a/plugins/org.eclipse.wst.server.http.core/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Fri Nov 10 17:11:35 HST 2006
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/plugins/org.eclipse.wst.server.http.core/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.wst.server.http.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 2920850..0000000
--- a/plugins/org.eclipse.wst.server.http.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,77 +0,0 @@
-#Thu Sep 13 15:25:06 EDT 2007
-eclipse.preferences.version=1
-instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=error
-org.eclipse.jdt.core.builder.invalidClasspath=ignore
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch,*.testsuite,*.deploy,*.location,*.execution,*.datapool,*.artifact,*.html,*.svg
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=disabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=error
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=error
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=error
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=error
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.incompatibleJDKLevel=warning
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/plugins/org.eclipse.wst.server.http.core/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.wst.server.http.core/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index a7cc1d0..0000000
--- a/plugins/org.eclipse.wst.server.http.core/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Fri Feb 23 21:11:52 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?>\n<templates/>
diff --git a/plugins/org.eclipse.wst.server.http.core/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.wst.server.http.core/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 08a60e5..0000000
--- a/plugins/org.eclipse.wst.server.http.core/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Sat Apr 22 18:36:14 EDT 2006
-compilers.incompatible-environment=0
-compilers.p.build=0
-compilers.p.deprecated=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.wst.server.http.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.server.http.core/META-INF/MANIFEST.MF
deleted file mode 100644
index e90ab0f..0000000
--- a/plugins/org.eclipse.wst.server.http.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,16 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.wst.server.http.core;singleton:=true
-Bundle-Version: 1.0.200.qualifier
-Bundle-Activator: org.eclipse.wst.server.http.core.internal.HttpCorePlugin
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.server.http.core.internal;x-friends:="org.eclipse.wst.server.http.ui",
- org.eclipse.wst.server.http.core.internal.command;x-friends:="org.eclipse.wst.server.http.ui"
-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.commands;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.wst.server.core;bundle-version="[1.0.204,2.0.0)"
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/org.eclipse.wst.server.http.core/about.html b/plugins/org.eclipse.wst.server.http.core/about.html
deleted file mode 100644
index 2199df3..0000000
--- a/plugins/org.eclipse.wst.server.http.core/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-
-<BODY lang="EN-US">
-
-<H3>About This Content</H3>
-
-<P>June, 2008</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the RedistributorÂ’s license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/plugins/org.eclipse.wst.server.http.core/build.properties b/plugins/org.eclipse.wst.server.http.core/build.properties
deleted file mode 100644
index af949f3..0000000
--- a/plugins/org.eclipse.wst.server.http.core/build.properties
+++ /dev/null
@@ -1,19 +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
-###############################################################################
-bin.includes = META-INF/,\
-               plugin.properties,\
-               .,\
-               plugin.xml,\
-               about.html
-bin.excludes = bin/**,\
-               @dot/**,\
-               temp.folder/**
-source.. = src/
diff --git a/plugins/org.eclipse.wst.server.http.core/plugin.properties b/plugins/org.eclipse.wst.server.http.core/plugin.properties
deleted file mode 100644
index 9ac1c1b..0000000
--- a/plugins/org.eclipse.wst.server.http.core/plugin.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2007, 2008 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
-###############################################################################
-pluginName=HTTP Server Support
-providerName=Eclipse.org
-
-runtimeTypeHttpLabel=HTTP Server
-runtimeTypeHttpDescription=Publishes and runs projects on an HTTP server.
-
-httpServerType=HTTP Server
-httpServerDescription=Publishes and runs projects on an HTTP server.
diff --git a/plugins/org.eclipse.wst.server.http.core/plugin.xml b/plugins/org.eclipse.wst.server.http.core/plugin.xml
deleted file mode 100644
index c6bcbfc..0000000
--- a/plugins/org.eclipse.wst.server.http.core/plugin.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-   <extension point="org.eclipse.wst.server.core.runtimeTypes">
-	    <runtimeType
-	       id="org.eclipse.wst.server.http.runtime"
-	       name="%runtimeTypeHttpLabel"
-	       description="%runtimeTypeHttpDescription"
-	       facetRuntimeComponent="org.eclipse.wst.server.http.runtime"
-	       facetRuntimeVersion="1.0"
-	       class="org.eclipse.wst.server.http.core.internal.HttpRuntime">
-	       <moduleType
-	         types="PHP"
-	         versions="1.0"/>
-	       <moduleType
-	       	 types="wst.web"
-	       	 versions="1.0"/>
-	    </runtimeType>
-  	</extension>
-
- 	<extension point="org.eclipse.wst.server.core.serverTypes">
-     <serverType
-       id="org.eclipse.wst.server.http.server"
-       name="%httpServerType"
-       description="%httpServerDescription"
-       supportsRemoteHosts="true"
-       runtime="true"
-       initialState="started"
-       hasConfiguration="false"
-       runtimeTypeId="org.eclipse.wst.server.http.runtime"
-       class="org.eclipse.wst.server.http.core.internal.HttpServer"
-       behaviourClass="org.eclipse.wst.server.http.core.internal.HttpServerBehaviour"/>
-  	</extension>
-
-  <extension point="org.eclipse.wst.server.core.runtimeLocators">
-    <runtimeLocator
-       id="org.eclipse.wst.server.http.runtime.locator"
-       typeIds="org.eclipse.wst.server.http.runtime"
-       class="org.eclipse.wst.server.http.core.internal.HttpRuntimeLocator"/>
-  </extension>
-
-  <extension point="org.eclipse.wst.common.project.facet.core.runtimes">
-    <runtime-component-type
-       id="org.eclipse.wst.server.http.runtime"/>
-    <runtime-component-version
-       type="org.eclipse.wst.server.http.runtime"
-       version="1.0"/>
-    <supported>
-      <runtime-component
-         id="org.eclipse.wst.server.http.runtime"
-         version="1.0"/>
-      <facet
-         id="wst.web"
-         version="[1.0"/>
-    </supported>
-  </extension>
-
-  <extension point="org.eclipse.wst.common.project.facet.core.defaultFacets">
-    <default-facets>
-      <runtime-component id="org.eclipse.wst.server.http.runtime"/>
-      <facet id="wst.jsdt.web" version="1.0"/>
-    </default-facets>
-  </extension>
-
-   <extension point="org.eclipse.wst.server.core.launchableAdapters">
-      <launchableAdapter
-        id="org.eclipse.wst.server.http.web"
-        class="org.eclipse.wst.server.http.core.internal.HttpLaunchableAdapterDelegate"
-        typeIds="org.eclipse.wst.server.http.server"/>
-   </extension>
-</plugin>
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/HttpCorePlugin.java b/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/HttpCorePlugin.java
deleted file mode 100644
index 1277685..0000000
--- a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/HttpCorePlugin.java
+++ /dev/null
@@ -1,69 +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.http.core.internal;
-
-import org.eclipse.core.runtime.Plugin;
-import org.osgi.framework.BundleContext;
-/**
- * The HTTP server core plugin.
- */
-public class HttpCorePlugin extends Plugin {
-	public static final String PLUGIN_ID = "org.eclipse.wst.server.http.core";
-
-	private static HttpCorePlugin plugin;
-
-	/**
-	 * The constructor
-	 */
-	public HttpCorePlugin() {
-		plugin = this;
-	}
-
-	/**
-	 * Returns the singleton instance of this plugin.
-	 * 
-	 * @return an instance
-	 */
-	public static HttpCorePlugin getInstance() {
-		return plugin;
-	}
-
-	/**
-	 * Return the install location preference.
-	 * 
-	 * @param id a runtime type id
-	 * @return the install location
-	 */
-	public static String getPreference(String id) {
-		return getInstance().getPluginPreferences().getString(id);
-	}
-
-	/**
-	 * Set the install location preference.
-	 * 
-	 * @param id the runtimt type id
-	 * @param value the location
-	 */
-	public static void setPreference(String id, String value) {
-		getInstance().getPluginPreferences().setValue(id, value);
-		getInstance().savePluginPreferences();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/HttpLaunchableAdapterDelegate.java b/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/HttpLaunchableAdapterDelegate.java
deleted file mode 100644
index 6ab83f8..0000000
--- a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/HttpLaunchableAdapterDelegate.java
+++ /dev/null
@@ -1,52 +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.http.core.internal;
-
-import java.net.URL;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.server.core.IModuleArtifact;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.model.LaunchableAdapterDelegate;
-import org.eclipse.wst.server.core.util.HttpLaunchable;
-import org.eclipse.wst.server.core.util.WebResource;
-
-public class HttpLaunchableAdapterDelegate extends LaunchableAdapterDelegate {
-	/*
-	 * @see LaunchableAdapterDelegate#getLaunchable(IServer, IModuleArtifact)
-	 */
-	public Object getLaunchable(IServer server, IModuleArtifact moduleArtifact) throws CoreException {
-		if (server == null || moduleArtifact == null)
-			return null;
-		
-		HttpServer server2 = (HttpServer) server.loadAdapter(HttpServer.class, null);
-		if (server2 == null)
-			return null;
-		
-		try {
-			URL url = server2.getModuleRootURL(moduleArtifact.getModule());
-			
-			if (moduleArtifact instanceof WebResource) {
-				WebResource resource = (WebResource) moduleArtifact;
-				String path = resource.getPath().toString();
-				
-				if (path.startsWith("/"))
-					path = path.substring(1);
-				url = new URL(url.toExternalForm() + "/" + path);
-			}
-			return new HttpLaunchable(url);
-		} catch (Exception e) {
-			Trace.trace(Trace.SEVERE, "Error in launchable adapter", e);
-		}
-		
-		return null;
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/HttpRuntime.java b/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/HttpRuntime.java
deleted file mode 100644
index 542bb1f..0000000
--- a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/HttpRuntime.java
+++ /dev/null
@@ -1,38 +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.http.core.internal;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.wst.server.core.model.RuntimeDelegate;
-/**
- * 
- */
-public class HttpRuntime extends RuntimeDelegate {
-	public static final String ID = "org.eclipse.wst.server.http.runtime";
-
-	public HttpRuntime() {
-		// do nothing
-	}
-
-	public IStatus validate() {
-		return Status.OK_STATUS;
-	}
-
-	/*
-	 * @see RuntimeDelegate#setDefaults(IProgressMonitor)
-	 */
-	public void setDefaults(IProgressMonitor monitor) {
-		getRuntimeWorkingCopy().setLocation(new Path(""));
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/HttpRuntimeLocator.java b/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/HttpRuntimeLocator.java
deleted file mode 100644
index c325456..0000000
--- a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/HttpRuntimeLocator.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 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.http.core.internal;
-
-import java.io.File;
-import java.io.FileFilter;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.server.core.IRuntimeType;
-import org.eclipse.wst.server.core.IRuntimeWorkingCopy;
-import org.eclipse.wst.server.core.ServerCore;
-import org.eclipse.wst.server.core.model.RuntimeLocatorDelegate;
-/**
- * 
- */
-public class HttpRuntimeLocator extends RuntimeLocatorDelegate {
-	protected static final String[] runtimeTypes = new String[] { HttpRuntime.ID };
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.server.core.model.IRuntimeFactoryDelegate#getKnownRuntimes()
-	 */
-	public void searchForRuntimes(IPath path, IRuntimeSearchListener listener,
-			IProgressMonitor monitor) {
-		searchForRuntimes2(path, listener, monitor);
-	}
-
-	protected static void searchForRuntimes2(IPath path, IRuntimeSearchListener listener,
-			IProgressMonitor monitor) {
-		File[] files = null;
-		if (path != null) {
-			File f = path.toFile();
-			if (f.exists())
-				files = f.listFiles();
-			else
-				return;
-		} else
-			files = File.listRoots();
-
-		if (files != null) {
-			int size = files.length;
-			int work = 100 / size;
-			int workLeft = 100 - (work * size);
-			for (File file : files) {
-				if (monitor.isCanceled())
-					return;
-				if (file != null && file.isDirectory())
-					searchDir(listener, file, 4, monitor);
-				monitor.worked(work);
-			}
-			monitor.worked(workLeft);
-		} else
-			monitor.worked(100);
-	}
-
-	protected static void searchDir(IRuntimeSearchListener listener, File dir, int depth, IProgressMonitor monitor) {
-		if ("htdocs".equals(dir.getName())) {
-			IRuntimeWorkingCopy runtime = getRuntimeFromDir(dir.getParentFile(), monitor);
-			if (runtime != null) {
-				listener.runtimeFound(runtime);
-				return;
-			}
-		}
-
-		if (depth == 0)
-			return;
-
-		File[] files = dir.listFiles(new FileFilter() {
-			public boolean accept(File file) {
-				return file.isDirectory();
-			}
-		});
-		if (files != null) {
-			for (File file : files) {
-				if (monitor.isCanceled())
-					return;
-				searchDir(listener, file, depth - 1, monitor);
-			}
-		}
-	}
-
-	protected static IRuntimeWorkingCopy getRuntimeFromDir(File dir, IProgressMonitor monitor) {
-		for (String rt : runtimeTypes) {
-			try {
-				IRuntimeType runtimeType = ServerCore.findRuntimeType(rt);
-				String absolutePath = dir.getAbsolutePath();
-				String id = absolutePath.replace(File.separatorChar, '_').replace(':', '-');
-				IRuntimeWorkingCopy runtime = runtimeType.createRuntime(id, monitor);
-				runtime.setName(dir.getName());
-				runtime.setLocation(new Path(absolutePath).append("htdocs"));
-				IStatus status = runtime.validate(monitor);
-				if (status == null || status.getSeverity() != IStatus.ERROR)
-					return runtime;
-				
-				Trace.trace(Trace.FINER, "False runtime found at " + dir.getAbsolutePath()
-						+ ": " + status.getMessage());
-			} catch (Exception e) {
-				Trace.trace(Trace.SEVERE, "Could not find runtime", e);
-			}
-		}
-		return null;
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/HttpServer.java b/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/HttpServer.java
deleted file mode 100644
index 3a51982..0000000
--- a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/HttpServer.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 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.http.core.internal;
-
-import java.net.URL;
-
-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.wst.server.core.IModule;
-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.IServer;
-import org.eclipse.wst.server.core.IServerType;
-import org.eclipse.wst.server.core.IServerWorkingCopy;
-import org.eclipse.wst.server.core.ServerCore;
-import org.eclipse.wst.server.core.ServerPort;
-import org.eclipse.wst.server.core.model.IURLProvider;
-import org.eclipse.wst.server.core.model.ServerDelegate;
-import org.eclipse.wst.server.core.util.IStaticWeb;
-/**
- * Generic HTTP server.
- */
-public class HttpServer extends ServerDelegate implements IURLProvider {
-	public static final String PROPERTY_URL_PREFIX = "urlPrefix";
-	public static final String PROPERTY_PORT = "port";
-	public static final String PROPERTY_IS_PUBLISHING = "isPublishing";
-
-	public static final String ID = "org.eclipse.wst.server.http.server";
-
-	/**
-	 * HttpServer.
-	 */
-	public HttpServer() {
-		super();
-	}
-
-	protected void initialize() {
-		// do nothing
-	}
-
-	/*
-	 * @see RuntimeDelegate#setDefaults(IProgressMonitor)
-	 */
-	public void setDefaults(IProgressMonitor monitor) {
-		setPort(80);
-		setURLPrefix("");
-		setPublishing(true);
-	}
-
-	public HttpRuntime getHttpRuntime() {
-		if (getServer().getRuntime() == null)
-			return null;
-
-		return (HttpRuntime) getServer().getRuntime().loadAdapter(HttpRuntime.class, null);
-	}
-
-	/*public void importRuntimeConfiguration(IRuntime arg0, IProgressMonitor arg1) throws CoreException {
-		if (getHttpRuntime() != null) {
-			if (!getHttpRuntime().publishToDirectory()) {
-				setAttribute("auto-publish-setting", 1);
-			} else {
-				setAttribute("auto-publish-setting", 2);
-				setAttribute("auto-publish-time", 1);
-			}
-			//setPublishDirectory(getHttpRuntime().getPublishLocation());
-		}
-	}*/
-
-	public boolean dontPublish() {
-		return getAttribute("auto-publish-setting", "2").equals("1");
-	}
-
-	// public void setDocumentRoot(String docRoot) {
-	// setAttribute(HttpServer.DOCUMENT_ROOT, docRoot);
-	// }
-
-	// public String getDocumentRoot() {
-	// return getAttribute(HttpServer.DOCUMENT_ROOT, "");
-	// }
-
-	// public boolean canPublish() {
-	// return getAttribute(HttpServer.PUBLISH, true);
-	// }
-
-	// public void setPublish(boolean publish) {
-	// setAttribute(HttpServer.PUBLISH, publish);
-	// }
-
-	/**
-	 * Processes the host to return IPv6 addresses in square brackets, e.g.
-	 * "[4ffe:ff2f:101:21:230:6eff:fe04:d9fe]". If the host is just a host name
-	 * or IPv4 address, then it is returned as is.
-	 * 
-	 * @param host the host, an IP address or host name
-	 */
-	protected static String getURLHost(String host) {
-		// use ":" to determine if this is an IPv6 address 
-		return (host != null && host.indexOf(":") >= 0) ? "[" + host + "]" : host;
-	}
-
-	/**
-	 * Return the root URL of this module.
-	 * 
-	 * @param module a module
-	 * @return the root URL
-	 */
-	public URL getModuleRootURL(IModule module) {
-		try {
-			String base = "http://" + getURLHost(getServer().getHost());
-			
-			if (base.equals(""))
-				base = "http://" + getURLHost(getServer().getHost());
-			
-			int port = getPort();
-			URL url = null;
-			if (port == 80)
-				url = new URL(base + "/");
-			else
-				url = new URL(base + ":" + port + "/");
-			
-			String prefix = getURLPrefix();
-			if (prefix != null && prefix.length() > 0)
-				url = new URL(url, prefix + "/");
-			
-			IStaticWeb staticWeb = (IStaticWeb) module.loadAdapter(IStaticWeb.class, null);
-			return new URL(url, staticWeb.getContextRoot());
-		} catch (Exception e) {
-			Trace.trace(Trace.SEVERE, "Could not get root URL", e);
-			return null;
-		}
-	}
-
-	/*
-	 * Returns the child module(s) of this module.
-	 */
-	public IModule[] getChildModules(IModule[] module) {
-		return new IModule[0];
-	}
-
-	/*
-	 * Returns the root module(s) of this module.
-	 */
-	public IModule[] getRootModules(IModule module) throws CoreException {
-		return new IModule[] { module };
-	}
-
-	/**
-	 * Returns true if the given project is supported by this server, and false
-	 * otherwise.
-	 * 
-	 * @param add modules
-	 * @param remove modules
-	 * @return the status
-	 */
-	public IStatus canModifyModules(IModule[] add, IModule[] remove) {
-		return new Status(IStatus.OK, HttpCorePlugin.PLUGIN_ID, 0, Messages.canModifyModules, null);
-	}
-
-	public ServerPort[] getServerPorts() {
-		int port = getPort();
-		ServerPort[] ports = { new ServerPort("http", Messages.httpPort, port, "http") };
-		return ports;
-	}
-
-	public int getPort() {
-		return getAttribute(HttpServer.PROPERTY_PORT, 80);
-	}
-
-	public void setPort(int port) {
-		setAttribute(HttpServer.PROPERTY_PORT, port);
-	}
-
-	public void setURLPrefix(String prefix) {
-		setAttribute(HttpServer.PROPERTY_URL_PREFIX, prefix);
-	}
-
-	public String getURLPrefix() {
-		return getAttribute(HttpServer.PROPERTY_URL_PREFIX, "");
-	}
-
-	public boolean isPublishing() {
-		return getAttribute(PROPERTY_IS_PUBLISHING, false);
-	}
-
-	public void setPublishing(boolean shouldPublish) {
-		setAttribute(PROPERTY_IS_PUBLISHING, shouldPublish);
-	}
-
-	public static IServer createHttpServer(String host, String serverName, IProgressMonitor monitor) {
-		try {
-			IRuntimeType runtimeType = ServerCore.findRuntimeType(HttpRuntime.ID);
-			IRuntimeWorkingCopy runtimeCopy = runtimeType.createRuntime(HttpRuntime.ID, monitor);
-			IRuntime runtime = runtimeCopy.save(true, monitor);
-			
-			IServerType serverType = ServerCore.findServerType(ID);
-			IServerWorkingCopy workingCopy = serverType.createServer(ID, null, runtime, monitor);
-			workingCopy.setName(serverName);
-			workingCopy.setHost(host);
-			
-			return workingCopy.save(true, monitor);
-		} catch (Exception e) {
-			Trace.trace(Trace.SEVERE, "Error creating server", e);
-		}
-		
-		return null;
-	}
-
-	public static IServer findHttpServer(String id) {
-		IServer[] servers = ServerCore.getServers();
-		for (IServer server : servers) {
-			if (server.getId().equals(id))
-				return server;
-		}
-		return null;
-	}
-
-	/*public void setPublishDirectory(String pubDir) {
-		setAttribute(PROPERTY_PUB_DIR, pubDir);
-	}
-
-	public String getPublishDirectory() {
-		if (getHttpRuntime() != null)
-			return getAttribute(PROPERTY_PUB_DIR, getHttpRuntime().getPublishLocation());
-		return getAttribute(PROPERTY_PUB_DIR, "");
-	}*/
-
-	/*
-	 * public static void updateBaseURL(String id, String baseURL) {
-	 * updateBaseURL(checkForHttpServer(id), baseURL); }
-	 */
-
-	/*
-	 * public static void updateBaseURL(IServer server, String baseURL) { if
-	 * (server == null) return;
-	 * 
-	 * IServerWorkingCopy workingCopy = server.createWorkingCopy();
-	 * 
-	 * HttpServer as = (HttpServer) workingCopy.getAdapter(HttpServer.class); if
-	 * (as == null) as = (HttpServer) workingCopy.loadAdapter(HttpServer.class,
-	 * null);
-	 * 
-	 * String currentURL = as.getBaseURL();
-	 * 
-	 * if (currentURL.equals(baseURL)) return; as.setBaseURL(baseURL); try {
-	 * as.saveConfiguration(null); workingCopy.save(true, null); } catch
-	 * (CoreException e) { e.printStackTrace(); } }
-	 */
-
-	public void modifyModules(IModule[] add, IModule[] remove, IProgressMonitor monitor) throws CoreException {
-		// do nothing
-	}
-
-	/**
-	 * Return a string representation of this object.
-	 * 
-	 * @return java.lang.String
-	 */
-	public String toString() {
-		return "HttpServer";
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/HttpServerBehaviour.java b/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/HttpServerBehaviour.java
deleted file mode 100644
index d8f7ce0..0000000
--- a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/HttpServerBehaviour.java
+++ /dev/null
@@ -1,131 +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.http.core.internal;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.wst.server.core.IModule;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.model.IModuleResource;
-import org.eclipse.wst.server.core.model.ServerBehaviourDelegate;
-import org.eclipse.wst.server.core.util.IStaticWeb;
-import org.eclipse.wst.server.core.util.PublishUtil;
-/**
- * Generic Http server.
- */
-public class HttpServerBehaviour extends ServerBehaviourDelegate {
-	// the thread used to ping the server to check for startup
-	protected transient PingThread ping = null;
-
-	/**
-	 * HttpServer.
-	 */
-	public HttpServerBehaviour() {
-		super();
-	}
-
-	public void initialize(IProgressMonitor monitor) {
-		// do nothing
-	}
-
-	public HttpRuntime getHttpRuntime() {
-		if (getServer().getRuntime() == null)
-			return null;
-
-		return (HttpRuntime) getServer().getRuntime().loadAdapter(HttpRuntime.class, null);
-	}
-
-	public HttpServer getHttpServer() {
-		return (HttpServer) getServer().getAdapter(HttpServer.class);
-	}
-
-	protected void setServerStarted() {
-		setServerState(IServer.STATE_STARTED);
-	}
-
-	protected void publishServer(int kind, IProgressMonitor monitor) throws CoreException {
-		monitor = ProgressUtil.getMonitorFor(monitor);
-		monitor.done();
-
-		setServerPublishState(IServer.PUBLISH_STATE_NONE);
-	}
-
-	/*
-	 * Publishes the given module to the server.
-	 */
-	protected void publishModule(int kind, int deltaKind, IModule[] moduleTree, IProgressMonitor monitor) throws CoreException {
-		if (!getHttpServer().isPublishing())
-			return;
-		
-		String contextRoot = null;
-		IModule module = moduleTree[moduleTree.length - 1]; 
-		IStaticWeb sw = (IStaticWeb) module.loadAdapter(IStaticWeb.class, monitor);
-		if (sw != null)
-			contextRoot = sw.getContextRoot();
-		else
-			contextRoot = module.getName();
-		
-		IPath to = getServer().getRuntime().getLocation();
-		if (contextRoot != null && !contextRoot.equals(""))
-			to = to.append(contextRoot);
-		
-		IModuleResource[] res = getResources(moduleTree);
-		IStatus[] status = PublishUtil.publishSmart(res, to, monitor);
-		throwException(status);
-		
-		setModulePublishState(moduleTree, IServer.PUBLISH_STATE_NONE);
-	}
-
-	/**
-	 * Utility method to throw a CoreException based on the contents of a list of
-	 * error and warning status.
-	 * 
-	 * @param status a List containing error and warning IStatus
-	 * @throws CoreException
-	 */
-	private static void throwException(IStatus[] status) throws CoreException {
-		if (status == null || status.length == 0)
-			return;
-		
-		if (status.length == 1)
-			throw new CoreException(status[0]);
-		
-		String message = Messages.errorPublish;
-		MultiStatus status2 = new MultiStatus(HttpCorePlugin.PLUGIN_ID, 0, status, message, null);
-		throw new CoreException(status2);
-	}
-
-	public void restart(String launchMode) throws CoreException {
-		setServerState(IServer.STATE_STOPPED);
-		setServerState(IServer.STATE_STARTED);
-	}
-
-	/**
-	 * Cleanly shuts down and terminates the server.
-	 * 
-	 * @param force <code>true</code> to kill the server
-	 */
-	public void stop(boolean force) {
-		setServerState(IServer.STATE_STOPPED);
-	}
-
-	/**
-	 * Return a string representation of this object.
-	 * 
-	 * @return java.lang.String
-	 */
-	public String toString() {
-		return "HttpServer";
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/Messages.java b/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/Messages.java
deleted file mode 100644
index 8dae1de..0000000
--- a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/Messages.java
+++ /dev/null
@@ -1,30 +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.http.core.internal;
-
-import org.eclipse.osgi.util.NLS;
-/**
- * Translated messages.
- */
-public class Messages extends NLS {
-	public static String errorPublish;
-	public static String canModifyModules;
-	public static String httpPort;
-	public static String actionModifyPort;
-	public static String actionModifyPrefixURL;
-	public static String actionModifyPublishing;
-
-	public static String errorPortInUse;
-
-	static {
-		NLS.initializeMessages(HttpCorePlugin.PLUGIN_ID + ".internal.Messages", Messages.class);
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/Messages.properties b/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/Messages.properties
deleted file mode 100644
index 520bbe8..0000000
--- a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/Messages.properties
+++ /dev/null
@@ -1,21 +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
-###############################################################################
-
-actionModifyPort=set port number
-actionModifyPrefixURL=set URL prefix
-actionModifyPublishing=set publishing enablement
-errorPublish=Error during publish
-
-httpPort=HTTP Port
-canModifyModules=Web modules can be modified.
-
-errorPortInUse=Port {0} required by {1} is already in use. The server may already be running in another process, or a system process may be using the port. \
-  To start this server you will need to stop the other process or change the port number(s).
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/PingThread.java b/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/PingThread.java
deleted file mode 100644
index 39360c3..0000000
--- a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/PingThread.java
+++ /dev/null
@@ -1,130 +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.http.core.internal;
-
-import java.io.FileNotFoundException;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.net.URLConnection;
-
-import org.eclipse.wst.server.core.IServer;
-
-/**
- * Thread used to ping server to test when it is started.
- */
-public class PingThread {
-	// delay before pinging starts
-	private static final int PING_DELAY = 2000;
-
-	// delay between pings
-	private static final int PING_INTERVAL = 250;
-
-	// maximum number of pings before giving up
-	private int maxPings = 56; // total: 16 seconds + connection time
-
-	private boolean stop = false;
-
-	private String url;
-
-	private IServer server;
-
-	private HttpServerBehaviour behaviour;
-
-	/**
-	 * Create a new PingThread.
-	 * 
-	 * @param server
-	 * @param url
-	 * @param maxPings
-	 * @param behaviour
-	 */
-	public PingThread(IServer server, String url, int maxPings,
-			HttpServerBehaviour behaviour) {
-		super();
-		this.server = server;
-		this.url = url;
-		this.maxPings = maxPings;
-		this.behaviour = behaviour;
-		Thread t = new Thread() {
-			public void run() {
-				ping();
-			}
-		};
-		t.setDaemon(true);
-		t.start();
-	}
-
-	/**
-	 * Ping the server until it is started. Then set the server state to
-	 * STATE_STARTED.
-	 */
-	protected void ping() {
-		int count = 0;
-		try {
-			Thread.sleep(PING_DELAY);
-		} catch (Exception e) {
-			// ignore
-		}
-		while (!stop) {
-			try {
-				if (count == maxPings) {
-					try {
-						server.stop(false);
-					} catch (Exception e) {
-						Trace.trace(Trace.FINEST, "Ping: could not stop server");
-					}
-					stop = true;
-					break;
-				}
-				count++;
-
-				Trace.trace(Trace.FINEST, "Ping: pinging");
-				URL pingUrl = new URL(url);
-				URLConnection conn = pingUrl.openConnection();
-				((HttpURLConnection) conn).getResponseCode();
-
-				// ping worked - server is up
-				if (!stop) {
-					Trace.trace(Trace.FINEST, "Ping: success");
-					Thread.sleep(200);
-					behaviour.setServerStarted();
-				}
-				stop = true;
-			} catch (FileNotFoundException fe) {
-				try {
-					Thread.sleep(200);
-				} catch (Exception e) {
-					// ignore
-				}
-				behaviour.setServerStarted();
-				stop = true;
-			} catch (Exception e) {
-				Trace.trace(Trace.FINEST, "Ping: failed");
-				// pinging failed
-				if (!stop) {
-					try {
-						Thread.sleep(PING_INTERVAL);
-					} catch (InterruptedException e2) {
-						// ignore
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Tell the pinging to stop.
-	 */
-	public void stop() {
-		Trace.trace(Trace.FINEST, "Ping: stopping");
-		stop = true;
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/ProgressUtil.java b/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/ProgressUtil.java
deleted file mode 100644
index 788a656..0000000
--- a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/ProgressUtil.java
+++ /dev/null
@@ -1,72 +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.http.core.internal;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-/**
- * Progress Monitor utility.
- */
-public class ProgressUtil {
-	/**
-	 * ProgressUtil constructor comment.
-	 */
-	private ProgressUtil() {
-		super();
-	}
-
-	/**
-	 * Return a valid progress monitor.
-	 * 
-	 * @param monitor org.eclipse.core.runtime.IProgressMonitor
-	 * @return org.eclipse.core.runtime.IProgressMonitor
-	 */
-	public static IProgressMonitor getMonitorFor(IProgressMonitor monitor) {
-		if (monitor == null)
-			return new NullProgressMonitor();
-		return monitor;
-	}
-
-	/**
-	 * Return a sub-progress monitor with the given amount on the current
-	 * progress monitor.
-	 * 
-	 * @param monitor org.eclipse.core.runtime.IProgressMonitor
-	 * @param ticks int
-	 * @return org.eclipse.core.runtime.IProgressMonitor
-	 */
-	public static IProgressMonitor getSubMonitorFor(IProgressMonitor monitor, int ticks) {
-		if (monitor == null)
-			return new NullProgressMonitor();
-		if (monitor instanceof NullProgressMonitor)
-			return monitor;
-		return new SubProgressMonitor(monitor, ticks);
-	}
-
-	/**
-	 * Return a sub-progress monitor with the given amount on the current
-	 * progress monitor.
-	 * 
-	 * @param monitor org.eclipse.core.runtime.IProgressMonitor
-	 * @param ticks a number of ticks
-	 * @param style a style
-	 * @return org.eclipse.core.runtime.IProgressMonitor
-	 */
-	public static IProgressMonitor getSubMonitorFor(IProgressMonitor monitor, int ticks,
-			int style) {
-		if (monitor == null)
-			return new NullProgressMonitor();
-		if (monitor instanceof NullProgressMonitor)
-			return monitor;
-		return new SubProgressMonitor(monitor, ticks, style);
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/Trace.java b/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/Trace.java
deleted file mode 100644
index 5977cd0..0000000
--- a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/Trace.java
+++ /dev/null
@@ -1,81 +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.http.core.internal;
-
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-/**
- * Helper class to route trace output.
- */
-public class Trace {
-	public static byte CONFIG = 0;
-	public static byte WARNING = 1;
-	public static byte SEVERE = 2;
-	public static byte FINEST = 3;
-	public static byte FINER = 4;
-	
-	private static final String[] levelNames = new String[] { "CONFIG   ", "WARNING  ",
-		"SEVERE   ", "FINER    ", "FINEST   " };
-
-	private static final SimpleDateFormat sdf = new SimpleDateFormat(
-			"dd/MM/yy HH:mm.ss.SSS");
-
-	/**
-	 * Trace constructor comment.
-	 */
-	private Trace() {
-		super();
-	}
-
-	/**
-	 * Trace the given text.
-	 * 
-	 * @param level the trace level
-	 * @param s a message
-	 */
-	public static void trace(byte level, String s) {
-		Trace.trace(level, s, null);
-	}
-
-	/**
-	 * Trace the given message and exception.
-	 * 
-	 * @param level the trace level
-	 * @param s a message
-	 * @param t a throwable
-	 */
-	public static void trace(byte level, String s, Throwable t) {
-		if (s == null)
-			return;
-		
-		if (level == SEVERE)
-			HttpCorePlugin.getInstance().getLog().log(new Status(IStatus.ERROR, HttpCorePlugin.PLUGIN_ID, s, t));
-		
-		if (!HttpCorePlugin.getInstance().isDebugging())
-			return;
-
-		StringBuffer sb = new StringBuffer(HttpCorePlugin.PLUGIN_ID);
-		sb.append(" ");
-		sb.append(levelNames[level]);
-		sb.append(" ");
-		sb.append(sdf.format(new Date()));
-		sb.append(" ");
-		sb.append(s);
-		// Platform.getDebugOption(ServerCore.PLUGIN_ID + "/" + "resources");
-
-		System.out.println(sb.toString());
-		if (t != null)
-			t.printStackTrace();
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/command/ModifyPortCommand.java b/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/command/ModifyPortCommand.java
deleted file mode 100644
index 396021f..0000000
--- a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/command/ModifyPortCommand.java
+++ /dev/null
@@ -1,52 +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.http.core.internal.command;
-
-import org.eclipse.wst.server.core.ServerPort;
-import org.eclipse.wst.server.http.core.internal.HttpServer;
-import org.eclipse.wst.server.http.core.internal.Messages;
-/**
- * Command to change the port.
- */
-public class ModifyPortCommand extends ServerCommand {
-	protected int port;
-	protected int oldPort;
-
-	/**
-	 * ModifyPortCommand constructor.
-	 * 
-	 * @param server a server
-	 * @param port new port number
-	 */
-	public ModifyPortCommand(HttpServer server, int port) {
-		super(server, Messages.actionModifyPort);
-		this.port = port;
-	}
-
-	/**
-	 * Execute the command.
-	 */
-	public void execute() {
-		// find old port number
-		ServerPort temp = server.getServerPorts()[0];
-		oldPort = temp.getPort();
-		
-		// make the change
-		server.setPort(port);
-	}
-
-	/**
-	 * Undo the command.
-	 */
-	public void undo() {
-		server.setPort(oldPort);
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/command/ModifyPublishingCommand.java b/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/command/ModifyPublishingCommand.java
deleted file mode 100644
index adb278f..0000000
--- a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/command/ModifyPublishingCommand.java
+++ /dev/null
@@ -1,49 +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.http.core.internal.command;
-
-import org.eclipse.wst.server.http.core.internal.HttpServer;
-import org.eclipse.wst.server.http.core.internal.Messages;
-/**
- * Command to change the publishing state.
- */
-public class ModifyPublishingCommand extends ServerCommand {
-	protected boolean shouldPublish;
-	protected boolean oldShouldPublish;
-
-	/**
-	 * ModifyPublishingCommand constructor.
-	 * 
-	 * @param server a server
-	 * @param shouldPublish 
-	 */
-	public ModifyPublishingCommand(HttpServer server, boolean shouldPublish) {
-		super(server, Messages.actionModifyPublishing);
-		this.shouldPublish = shouldPublish;
-	}
-
-	/**
-	 * Execute the command.
-	 */
-	public void execute() {
-		oldShouldPublish = server.isPublishing();
-		
-		// make the change
-		server.setPublishing(shouldPublish);
-	}
-
-	/**
-	 * Undo the command.
-	 */
-	public void undo() {
-		server.setPublishing(oldShouldPublish);
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/command/ModifyURLPrefixCommand.java b/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/command/ModifyURLPrefixCommand.java
deleted file mode 100644
index e30759f..0000000
--- a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/command/ModifyURLPrefixCommand.java
+++ /dev/null
@@ -1,48 +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.http.core.internal.command;
-
-import org.eclipse.wst.server.http.core.internal.HttpServer;
-import org.eclipse.wst.server.http.core.internal.Messages;
-
-public class ModifyURLPrefixCommand extends ServerCommand {
-	protected String prefix;
-	protected String oldPrefix;
-
-	/**
-	 * ModifyURLPrefixCommand constructor.
-	 * 
-	 * @param server a HTTP configuration
-	 * @param prefix a new prefix
-	 */
-	public ModifyURLPrefixCommand(HttpServer server, String prefix) {
-		super(server, Messages.actionModifyPrefixURL);
-		this.prefix = prefix;
-	}
-
-	/**
-	 * Execute the command.
-	 */
-	public void execute() {
-		// find old prefix
-		oldPrefix = server.getURLPrefix();
-
-		// make the change
-		server.setURLPrefix(prefix);
-	}
-
-	/**
-	 * Undo the command.
-	 */
-	public void undo() {
-		server.setURLPrefix(oldPrefix);
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/command/ServerCommand.java b/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/command/ServerCommand.java
deleted file mode 100644
index 0ad3f60..0000000
--- a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/command/ServerCommand.java
+++ /dev/null
@@ -1,55 +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.http.core.internal.command;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.operations.AbstractOperation;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.wst.server.http.core.internal.HttpServer;
-/**
- * Server command.
- */
-public abstract class ServerCommand extends AbstractOperation {
-	protected HttpServer server;
-
-	/**
-	 * ServerCommand constructor comment.
-	 * 
-	 * @param server a server
-	 * @param label a label
-	 */
-	public ServerCommand(HttpServer server, String label) {
-		super(label);
-		this.server = server;
-	}
-
-	public IStatus redo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
-		return execute(monitor, info);
-	}
-
-	public abstract void execute();
-
-	public IStatus execute(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		execute();
-		return null;
-	}
-
-	public abstract void undo();
-
-	public IStatus undo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		undo();
-		return null;
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.http.ui/.project b/plugins/org.eclipse.wst.server.http.ui/.project
index a231f50..5a8769f 100644
--- a/plugins/org.eclipse.wst.server.http.ui/.project
+++ b/plugins/org.eclipse.wst.server.http.ui/.project
@@ -20,15 +20,9 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.jdt.core.javanature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/plugins/org.eclipse.wst.server.http.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.server.http.ui/META-INF/MANIFEST.MF
index df2d10b..86b9d86 100644
--- a/plugins/org.eclipse.wst.server.http.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.server.http.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.server.http.ui;singleton:=true
-Bundle-Version: 1.0.200.qualifier
+Bundle-Version: 1.0.100.qualifier
 Bundle-Activator: org.eclipse.wst.server.http.ui.internal.HttpUIPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/HttpRuntimeComposite.java b/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/HttpRuntimeComposite.java
index ba32fc4..3e1c9ec 100644
--- a/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/HttpRuntimeComposite.java
+++ b/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/HttpRuntimeComposite.java
@@ -144,11 +144,6 @@
 				}
 			}
 		}
-		wizard.update();
-	}
-
-	protected boolean isComplete() {
-		return wizard.getMessageType() != IMessageProvider.ERROR;
 	}
 
 	private void createPublishLocationGroup(Composite publishInfoGroup) {
@@ -190,11 +185,11 @@
 	}
 
 	private boolean checkRuntimeName(String name2) {
-		if (runtimeWC.getOriginal() != null && name2.equals(runtimeWC.getOriginal().getName())) {
+		name2 = name2.trim();
+		if (name2.equals(runtimeWC.getName())) {
 			return true;
 		}
 		
-		name2 = name2.trim();
 		IRuntime[] runtimes = ServerCore.getRuntimes();
 		if (runtimes != null) {
 			for (IRuntime runtime2 : runtimes) {
diff --git a/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/HttpRuntimeWizardFragment.java b/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/HttpRuntimeWizardFragment.java
index 653f418..1739b2a 100644
--- a/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/HttpRuntimeWizardFragment.java
+++ b/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/HttpRuntimeWizardFragment.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * 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
@@ -10,6 +10,7 @@
  *******************************************************************************/
 package org.eclipse.wst.server.http.ui.internal;
 
+import org.eclipse.core.runtime.IStatus;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.wst.server.core.IRuntimeWorkingCopy;
 import org.eclipse.wst.server.core.TaskModel;
@@ -53,8 +54,10 @@
 	}
 
 	public boolean isComplete() {
-		if (comp != null)
-			return comp.isComplete();
-		return true;
+		IRuntimeWorkingCopy runtime = (IRuntimeWorkingCopy) getTaskModel().getObject(TaskModel.TASK_RUNTIME);
+		if (runtime == null)
+			return false;
+		IStatus status = runtime.validate(null);
+		return (status == null || status.getSeverity() != IStatus.ERROR);
 	}
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/HttpServerComposite.java b/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/HttpServerComposite.java
index 0ff6733..ef7e127 100644
--- a/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/HttpServerComposite.java
+++ b/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/HttpServerComposite.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * 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
@@ -10,9 +10,7 @@
  *******************************************************************************/
 package org.eclipse.wst.server.http.ui.internal;
 
-import org.eclipse.core.runtime.IPath;
 import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IMessageProvider;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
@@ -124,19 +122,12 @@
 	}
 
 	protected void validate() {
-		wizard.setMessage(null, IMessageProvider.NONE);
-		
-		if (server != null && server.isPublishing()) {
-			IPath path = serverWC.getRuntime().getLocation();
-			if (path == null || !path.toFile().exists())
-				wizard.setMessage(Messages.wizardMissingPublishInfo, IMessageProvider.ERROR);
+		/*if (server == null) {
+			wizard.setMessage("", IMessageProvider.ERROR);
+			return;
 		}
 		
-		wizard.update();
-	}
-
-	protected boolean isComplete() {
-		return wizard.getMessageType() != IMessageProvider.ERROR;
+		wizard.setMessage(null, IMessageProvider.NONE);*/
 	}
 
 	private void createServerInfoGroup(Composite parent) {
diff --git a/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/HttpServerWizardFragment.java b/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/HttpServerWizardFragment.java
index 4de1f5c..dea1210 100644
--- a/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/HttpServerWizardFragment.java
+++ b/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/HttpServerWizardFragment.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * 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
@@ -21,6 +21,13 @@
 public class HttpServerWizardFragment extends WizardFragment {
 	protected HttpServerComposite comp;
 
+	/**
+	 * ServerWizardFragment constructor
+	 */
+	public HttpServerWizardFragment() {
+		setComplete(true);
+	}
+
 	public boolean hasComposite() {
 		return true;
 	}
@@ -44,10 +51,4 @@
 			comp.setServer(runtime);
 		}
 	}
-	
-	public boolean isComplete() {
-		if (comp != null)
-			return comp.isComplete();
-		return true;
-	}
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/Messages.java b/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/Messages.java
index 00a35c0..f005018 100644
--- a/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/Messages.java
+++ b/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/Messages.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * 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
@@ -25,7 +25,6 @@
 	public static String wizardDescription;
 	public static String wizardDuplicateName;
 	public static String wizardMissingRuntimeName;
-	public static String wizardMissingPublishInfo;
 	public static String wizardTitle;
 	public static String editorSectionTitle;
 	public static String editorSectionDescription;
diff --git a/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/Messages.properties b/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/Messages.properties
index d323f5f..61267ca 100644
--- a/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/Messages.properties
+++ b/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/Messages.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2007, 2008 IBM Corporation and others.
+# 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
@@ -23,7 +23,6 @@
 wizardDescription=Specify the HTTP server information
 wizardDuplicateName=Duplicate Server Name
 wizardMissingRuntimeName=Missing Runtime Name
-wizardMissingPublishInfo=Publishing directory must be valid before enabling publishing
 
 editorSectionTitle=HTTP Server
 editorSectionDescription=Specify publishing directory and URL.
diff --git a/plugins/org.eclipse.wst.server.preview.adapter/.project b/plugins/org.eclipse.wst.server.preview.adapter/.project
index e6caf77..32a9232 100644
--- a/plugins/org.eclipse.wst.server.preview.adapter/.project
+++ b/plugins/org.eclipse.wst.server.preview.adapter/.project
@@ -20,15 +20,9 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.jdt.core.javanature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/plugins/org.eclipse.wst.server.preview.adapter/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.server.preview.adapter/META-INF/MANIFEST.MF
index 1ce6c06..487f18a 100644
--- a/plugins/org.eclipse.wst.server.preview.adapter/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.server.preview.adapter/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.server.preview.adapter;singleton:=true
-Bundle-Version: 1.1.0.qualifier
+Bundle-Version: 1.0.101.qualifier
 Bundle-Activator: org.eclipse.wst.server.preview.adapter.internal.core.PreviewPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -12,5 +12,3 @@
  org.eclipse.wst.common.project.facet.ui;bundle-version="[1.2.0,2.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.wst.server.preview.adapter.internal.core;x-internal:=true,
- org.eclipse.wst.server.preview.adapter.internal.ui;x-internal:=true
diff --git a/plugins/org.eclipse.wst.server.preview.adapter/src/org/eclipse/wst/server/preview/adapter/internal/core/PreviewLaunchConfigurationDelegate.java b/plugins/org.eclipse.wst.server.preview.adapter/src/org/eclipse/wst/server/preview/adapter/internal/core/PreviewLaunchConfigurationDelegate.java
index 2032f0e..a398bd6 100644
--- a/plugins/org.eclipse.wst.server.preview.adapter/src/org/eclipse/wst/server/preview/adapter/internal/core/PreviewLaunchConfigurationDelegate.java
+++ b/plugins/org.eclipse.wst.server.preview.adapter/src/org/eclipse/wst/server/preview/adapter/internal/core/PreviewLaunchConfigurationDelegate.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * 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
@@ -37,10 +37,10 @@
  */
 public class PreviewLaunchConfigurationDelegate extends LaunchConfigurationDelegate {
 	private static final String[] REQUIRED_BUNDLE_IDS = new String[] {
+		"org.apache.commons.logging",
 		"javax.servlet",
 		"javax.servlet.jsp",
-		"org.mortbay.jetty.server",
-		"org.mortbay.jetty.util",
+		"org.mortbay.jetty",
 		"org.eclipse.wst.server.preview"
 	};
 
@@ -64,8 +64,9 @@
 		
 		PreviewServerBehaviour previewServer = (PreviewServerBehaviour) server.loadAdapter(PreviewServerBehaviour.class, null);
 		
-		StringBuffer cp = new StringBuffer();
 		int size = REQUIRED_BUNDLE_IDS.length;
+		//String[] jars = new String[size];
+		StringBuffer cp = new StringBuffer();
 		for (int i = 0; i < size; i++) {
 			Bundle b = Platform.getBundle(REQUIRED_BUNDLE_IDS[i]);
 			IPath path = null;
@@ -74,7 +75,6 @@
 			if (path == null)
 				throw new CoreException(new Status(IStatus.ERROR, PreviewPlugin.PLUGIN_ID, "Could not find required bundle " + REQUIRED_BUNDLE_IDS[i]));
 			
-			// run from workbench support
 			if (i == 4 && path.append("bin").toFile().exists())
 				path = path.append("bin");
 			
diff --git a/plugins/org.eclipse.wst.server.preview/.project b/plugins/org.eclipse.wst.server.preview/.project
index e306751..7ad37a7 100644
--- a/plugins/org.eclipse.wst.server.preview/.project
+++ b/plugins/org.eclipse.wst.server.preview/.project
@@ -20,15 +20,9 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.jdt.core.javanature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/plugins/org.eclipse.wst.server.preview/.settings/.api_filters b/plugins/org.eclipse.wst.server.preview/.settings/.api_filters
deleted file mode 100644
index d9fecb0..0000000
--- a/plugins/org.eclipse.wst.server.preview/.settings/.api_filters
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.wst.server.preview" version="2">
-    <resource path="src/org/eclipse/wst/server/preview/internal/IMemento.java" type="org.eclipse.wst.server.preview.internal.IMemento">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.wst.server.preview.internal.IMemento"/>
-                <message_argument value="org.eclipse.wst.server.preview_1.1.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/wst/server/preview/internal/PreviewStarter.java" type="org.eclipse.wst.server.preview.internal.PreviewStarter">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.wst.server.preview.internal.PreviewStarter"/>
-                <message_argument value="org.eclipse.wst.server.preview_1.1.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/wst/server/preview/internal/Trace.java" type="org.eclipse.wst.server.preview.internal.Trace">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.wst.server.preview.internal.Trace"/>
-                <message_argument value="org.eclipse.wst.server.preview_1.1.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/wst/server/preview/internal/Module.java" type="org.eclipse.wst.server.preview.internal.Module">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.wst.server.preview.internal.Module"/>
-                <message_argument value="org.eclipse.wst.server.preview_1.1.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/wst/server/preview/internal/XMLMemento.java" type="org.eclipse.wst.server.preview.internal.XMLMemento">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.wst.server.preview.internal.XMLMemento"/>
-                <message_argument value="org.eclipse.wst.server.preview_1.1.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/wst/server/preview/internal/PreviewApplication.java" type="org.eclipse.wst.server.preview.internal.PreviewApplication">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.wst.server.preview.internal.PreviewApplication"/>
-                <message_argument value="org.eclipse.wst.server.preview_1.1.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/wst/server/preview/internal/PreviewServerPlugin.java" type="org.eclipse.wst.server.preview.internal.PreviewServerPlugin">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.wst.server.preview.internal.PreviewServerPlugin"/>
-                <message_argument value="org.eclipse.wst.server.preview_1.1.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/wst/server/preview/internal/Messages.java" type="org.eclipse.wst.server.preview.internal.Messages">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.wst.server.preview.internal.Messages"/>
-                <message_argument value="org.eclipse.wst.server.preview_1.1.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/wst/server/preview/internal/ServerConfig.java" type="org.eclipse.wst.server.preview.internal.ServerConfig">
-        <filter id="305365105">
-            <message_arguments>
-                <message_argument value="org.eclipse.wst.server.preview.internal.ServerConfig"/>
-                <message_argument value="org.eclipse.wst.server.preview_1.1.0"/>
-            </message_arguments>
-        </filter>
-    </resource>
-</component>
diff --git a/plugins/org.eclipse.wst.server.preview/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.server.preview/META-INF/MANIFEST.MF
index aaecab5..e0f61a5 100644
--- a/plugins/org.eclipse.wst.server.preview/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.server.preview/META-INF/MANIFEST.MF
@@ -2,15 +2,13 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.server.preview; singleton:=true
-Bundle-Version: 1.1.0.qualifier
+Bundle-Version: 1.0.100.qualifier
 Bundle-Activator: org.eclipse.wst.server.preview.internal.PreviewServerPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.server.preview.internal;x-internal:=true
+Export-Package: org.eclipse.wst.server.preview.internal
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
- org.mortbay.jetty.server;bundle-version="[6.1.7,6.2.0)",
- org.mortbay.jetty.util;bundle-version="[6.1.7,6.2.0)",
- org.apache.commons.logging;bundle-version="[1.0.4,2.0.0)",
- javax.servlet;bundle-version="[2.5.0, 2.6.0)"
-Bundle-ActivationPolicy: lazy
+ org.mortbay.jetty;bundle-version="[5.1.11,6.0.0)",
+ org.apache.commons.logging;bundle-version="[1.0.4,2.0.0)"
+Eclipse-LazyStart: true
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/ContextResourceHandler.java b/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/ContextResourceHandler.java
deleted file mode 100644
index 56064c5..0000000
--- a/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/ContextResourceHandler.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.preview.internal;
-
-import java.net.MalformedURLException;
-
-import org.mortbay.jetty.handler.ResourceHandler;
-import org.mortbay.resource.Resource;
-
-public class ContextResourceHandler extends ResourceHandler {
-	protected String context;
-
-	public void setContext(String context) {
-		this.context = context;
-	}
-
-	public Resource getResource(String path) throws MalformedURLException {
-		if (path == null || !path.startsWith(context + "/"))
-			return null;
-		
-		path = path.substring(context.length());
-		return super.getResource(path);
-	}
-}
diff --git a/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/PreviewStarter.java b/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/PreviewStarter.java
index 4f31ff7..ca2144e 100644
--- a/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/PreviewStarter.java
+++ b/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/PreviewStarter.java
@@ -11,12 +11,22 @@
 package org.eclipse.wst.server.preview.internal;
 
 import java.io.File;
+import java.util.logging.Filter;
+import java.util.logging.LogRecord;
+import java.util.logging.Logger;
 
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.handler.HandlerList;
-import org.mortbay.jetty.webapp.WebAppContext;
+import org.mortbay.http.HttpContext;
+import org.mortbay.http.handler.ResourceHandler;
+import org.mortbay.jetty.*;
+import org.mortbay.jetty.servlet.WebApplicationContext;
 
 public class PreviewStarter {
+	private static final String[] AVERTED_LOGS = new String[] {
+		"org.mortbay.util.Container", "org.mortbay.http.HttpServer",
+		"org.mortbay.util.Credential", "org.mortbay.http.SocketListener",
+		"org.mortbay.http.HttpServer", "org.mortbay.jetty.Server"
+	};
+
 	protected String configPath;
 	protected Server server;
 
@@ -30,43 +40,75 @@
 	}
 
 	protected void run() {
+		System.out.println("Starting preview server");
+		System.out.println();
 		try {
-			System.setProperty("org.mortbay.log.class", "org.eclipse.wst.server.preview.internal.WTPLogger");
 			ServerConfig config = new ServerConfig(configPath);
-			System.out.println("Starting preview server on port " + config.getPort());
-			System.out.println();
+			System.out.println("Port " + config.getPort());
 			Module[] m = config.getModules();
 			int size = m.length;
 			if (size > 0) {
 				System.out.println("Modules:");
 				for (Module mm : m)
-					System.out.println("  " + mm.getName() + " (" + mm.getContext() + ")");
+					System.out.println("  " + mm.getName());
 				System.out.println();
 			}
 			
-			server = new Server(config.getPort());
-			server.setStopAtShutdown(true);
-			
-			WTPErrorHandler errorHandler = new WTPErrorHandler();
-			
-			HandlerList handlers = new HandlerList();
-			for (Module module : m) {
-				if (module.isStaticWeb()) {
-					ContextResourceHandler resourceHandler = new ContextResourceHandler();
-					resourceHandler.setResourceBase(module.getPath());
-					resourceHandler.setContext(module.getContext());
-					handlers.addHandler(resourceHandler);
-				} else {
-					WebAppContext wac = new WebAppContext();
-					wac.setContextPath(module.getContext());
-					wac.setWar(module.getPath());
-					wac.setErrorHandler(errorHandler);
-					handlers.addHandler(wac);
-				}
+			for (String log : AVERTED_LOGS) {
+				Logger logger = Logger.getLogger(log);
+				logger.setFilter(new Filter() {
+					public boolean isLoggable(LogRecord record) {
+						//Trace.trace(Trace.FINEST, "Averted Jetty log: " + record.getMessage());
+						//System.out.println("averted: " + record.getLoggerName() + ": " + record.getMessage());
+						return false;
+					}
+				});
 			}
 			
-			handlers.addHandler(new WTPDefaultHandler(config.getPort(), m));
-			server.setHandler(handlers);
+			// helper code to find jetty loggers
+			/*Logger logger = Logger.getLogger("org.mortbay.http.HttpServer");
+			logger.addHandler(new java.util.logging.Handler() {
+				public void close() throws SecurityException {
+					// ignore
+				}
+
+				public void flush() {
+					// ignore
+				}
+
+				public void publish(LogRecord record) {
+					System.out.println("Logger found: " + record.getLoggerName());
+				}
+			});*/
+			
+			server = new Server();
+			server.addListener(":" + config.getPort());
+			server.setTrace(false);
+			server.setStatsOn(false);
+			
+			HttpContext context2 = new HttpContext();
+			context2.setContextPath("/");
+			context2.addHandler(new WTPErrorPageHandler());
+			context2.setAttribute(HttpContext.__ErrorHandler, new WTPErrorPageHandler());
+			server.addContext(context2);
+			server.setRootWebApp("/");
+			
+			for (Module module : m) {
+				if (module.isStaticWeb()) {
+					HttpContext context = new HttpContext();
+					context.setContextPath(module.getContext());
+					context.setResourceBase(module.getPath());
+					context.addHandler(new ResourceHandler());
+					context.addHandler(new WTPErrorPageHandler());
+					context.setAttribute(HttpContext.__ErrorHandler, new WTPErrorPageHandler());
+					server.addContext(context);
+				} else {
+					WebApplicationContext context = server.addWebApplication(module.getContext(), module.getPath());
+					//context.getWebApplicationHandler();
+					//context.addHandler(new WTPErrorPageHandler());
+					context.setAttribute(HttpContext.__ErrorHandler, new WTPErrorPageHandler());
+				}
+			}
 			
 			try {
 				server.start();
@@ -82,6 +124,8 @@
 		try {
 			System.out.println("Stop!");
 			server.stop();
+			//File contextWorkDir = new File(workDir, DIR_PREFIX + pid.hashCode());
+			//deleteDirectory(contextWorkDir);
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
@@ -90,7 +134,7 @@
 	/**
 	 * deleteDirectory is a convenience method to recursively delete a directory
 	 * @param directory - the directory to delete.
-	 * @return was the delete successful
+	 * @return was the delete succesful
 	 */
 	protected static boolean deleteDirectory(File directory) {
 		if (directory.exists() && directory.isDirectory()) {
diff --git a/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/ServerConfig.java b/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/ServerConfig.java
index af67ac7..ea1cc41 100644
--- a/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/ServerConfig.java
+++ b/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/ServerConfig.java
@@ -43,8 +43,6 @@
 					boolean isStatic = "static".equals(mod.getString("type"));
 					String path = mod.getString("path");
 					String context = mod.getString("context");
-					if (context != null && !context.startsWith("/"))
-						context = "/" + context;
 					Module module = new Module(name, isStatic, context, path);
 					list.add(module);
 				}
diff --git a/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/WTPDefaultHandler.java b/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/WTPDefaultHandler.java
deleted file mode 100644
index d13a0d2..0000000
--- a/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/WTPDefaultHandler.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.preview.internal;
-
-import java.io.IOException;
-import java.io.OutputStream;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.mortbay.jetty.HttpConnection;
-import org.mortbay.jetty.MimeTypes;
-import org.mortbay.jetty.Request;
-import org.mortbay.jetty.handler.AbstractHandler;
-import org.mortbay.util.ByteArrayISO8859Writer;
-import org.mortbay.util.StringUtil;
-
-public class WTPDefaultHandler extends AbstractHandler {
-	protected int port;
-	protected Module[] modules;
-
-	public WTPDefaultHandler(int port, Module[] modules) {
-		this.port = port;
-		this.modules = modules;
-	}
-
-	public void handle(String target, HttpServletRequest request, HttpServletResponse response,
-			int dispatch) throws IOException, ServletException {
-		Request base_request = request instanceof Request?(Request)request:HttpConnection.getCurrentConnection().getRequest();
-		
-		if (response.isCommitted() || base_request.isHandled())
-			return;
-		base_request.setHandled(true);
-		
-		response.setStatus(HttpServletResponse.SC_NOT_FOUND);
-		response.setContentType(MimeTypes.TEXT_HTML);
-		
-		ByteArrayISO8859Writer writer = new ByteArrayISO8859Writer(1500);
-		
-		String uri = request.getRequestURI();
-		uri = StringUtil.replace(uri, "<", "&lt;");
-		uri = StringUtil.replace(uri, ">", "&gt;");
-		
-		writer.write("<HTML>\n<HEAD>\n<TITLE>Error 404 - Not Found");
-		writer.write("</TITLE>\n<BODY>\n<H2>Error 404 - Not Found</H2>\n");
-		writer.write("No context on this server matched or handled this request.<BR>");
-		writer.write("Contexts known to this server are: <ul>");
-		
-		for (Module module : modules) {
-			writer.write("<li>");
-			writer.write(module.getName());
-			writer.write("(<a href=\"http://localhost:" + port + module.getContext() + "\">");
-			writer.write(module.getContext());
-			writer.write("</a>)</li>");
-		}
-		
-		for (int i = 0; i < 10; i++)
-			writer.write("\n<!-- Padding for IE                  -->");
-		
-		writer.write("\n</BODY>\n</HTML>\n");
-		writer.flush();
-		response.setContentLength(writer.size());
-		OutputStream out = response.getOutputStream();
-		writer.writeTo(out);
-		out.close();
-	}
-}
diff --git a/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/WTPErrorHandler.java b/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/WTPErrorHandler.java
deleted file mode 100644
index 725f4bd..0000000
--- a/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/WTPErrorHandler.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 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.preview.internal;
-
-import java.io.IOException;
-import java.io.Writer;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.mortbay.jetty.HttpConnection;
-import org.mortbay.jetty.Request;
-import org.mortbay.jetty.handler.ErrorHandler;
-import org.mortbay.util.StringUtil;
-
-public class WTPErrorHandler extends ErrorHandler {
-	private static final long serialVersionUID = 1L;
-
-	public void handle(String target, HttpServletRequest request, HttpServletResponse response, int dispatch) throws IOException {
-		super.handle(target, request, response, dispatch);
-		Request base_request = request instanceof Request?(Request)request:HttpConnection.getCurrentConnection().getRequest();
-		base_request.setHandled(true);
-	}
-
-	protected void writeErrorPageBody(HttpServletRequest request, Writer writer, int code, String message, boolean showStacks)
-   	throws IOException {
-		String uri = request.getRequestURI();
-		if (uri != null) {
-			uri = StringUtil.replace(uri, "&", "&amp;");
-			uri = StringUtil.replace(uri, "<", "&lt;");
-			uri = StringUtil.replace(uri, ">", "&gt;");
-		}
-		
-		writeErrorPageMessage(request, writer, code, message, uri);
-		if (showStacks)
-			writeErrorPageStacks(request, writer);
-		
-		for (int i = 0; i < 20; i++)
-			writer.write("<br/>                                                \n");
-	}
-}
diff --git a/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/WTPErrorPageHandler.java b/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/WTPErrorPageHandler.java
new file mode 100644
index 0000000..e679edb
--- /dev/null
+++ b/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/WTPErrorPageHandler.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * 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.preview.internal;
+
+import java.io.IOException;
+import java.io.Writer;
+import java.net.URLDecoder;
+
+import org.mortbay.http.HttpException;
+import org.mortbay.http.HttpFields;
+import org.mortbay.http.HttpRequest;
+import org.mortbay.http.HttpResponse;
+import org.mortbay.http.handler.AbstractHttpHandler;
+import org.mortbay.util.ByteArrayISO8859Writer;
+import org.mortbay.util.StringUtil;
+
+public class WTPErrorPageHandler extends AbstractHttpHandler {
+	private static final long serialVersionUID = 1L;
+
+	public void handle(String pathInContext, String pathParams, HttpRequest request,
+			HttpResponse response) throws HttpException, IOException {
+		response.setContentType(HttpFields.__TextHtml);
+		ByteArrayISO8859Writer writer = new ByteArrayISO8859Writer(2048);
+		writeErrorPage(request, writer, response.getStatus(), response.getReason());
+		
+		// workaround for IE, which overrides 404 errors to present its own page
+		if (response.getStatus() == 404)
+			response.setStatus(200, "OK"); 
+		
+		writer.flush();
+		response.setContentLength(writer.size());
+		writer.writeTo(response.getOutputStream());
+		writer.destroy();
+	}
+
+	protected void writeErrorPage(HttpRequest request, Writer writer, int code,
+			String message) throws IOException {
+		if (message != null) {
+			message = URLDecoder.decode(message, "UTF-8");
+			message = StringUtil.replace(message, "<", "&lt;");
+			message = StringUtil.replace(message, ">", "&gt;");
+		}
+		String uri = request.getPath();
+		uri = StringUtil.replace(uri, "<", "&lt;");
+		uri = StringUtil.replace(uri, ">", "&gt;");
+		writer.write("<html>\n<head>\n<title>Error ");
+		writer.write(Integer.toString(code));
+		writer.write(' ');
+		writer.write(message);
+		writer.write("</title>\n</head>\n<body>\n<h2>HTTP ERROR: ");
+		writer.write(Integer.toString(code));
+		writer.write("</h2><pre>");
+		writer.write(message);
+		writer.write("</pre>\n");
+		writer.write("<p>RequestURI=");
+		writer.write(uri);
+		writer.write("</p>");
+		writer.write("\n</body>\n</html>\n");
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/WTPLogger.java b/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/WTPLogger.java
deleted file mode 100644
index 943508a..0000000
--- a/plugins/org.eclipse.wst.server.preview/src/org/eclipse/wst/server/preview/internal/WTPLogger.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.preview.internal;
-
-import org.mortbay.log.Logger;
-
-public class WTPLogger implements Logger {
-	protected boolean debug = false;
-
-	public void debug(String msg, Throwable t) {
-		if (debug) {
-			System.out.println(msg);
-			t.printStackTrace();
-		}
-	}
-
-	public void debug(String msg, Object arg1, Object arg2) {
-		if (debug) {
-			System.out.println(msg);
-		}
-	}
-
-	public Logger getLogger(String name) {
-		return this;
-	}
-
-	public void info(String msg, Object arg1, Object arg2) {
-		if (debug) {
-			System.out.println(msg);
-		}
-	}
-
-	public boolean isDebugEnabled() {
-		return debug;
-	}
-
-	public void setDebugEnabled(boolean debug) {
-		this.debug = debug;
-	}
-
-	public void warn(String msg, Throwable t) {
-		if (debug) {
-			System.out.println(msg);
-			t.printStackTrace();
-		}
-	}
-
-	public void warn(String msg, Object arg1, Object arg2) {
-		if (debug) {
-			System.out.println(msg);
-		}
-	}
-}
diff --git a/plugins/org.eclipse.wst.server.ui/.project b/plugins/org.eclipse.wst.server.ui/.project
index 7f6ebbf..eeeba70 100644
--- a/plugins/org.eclipse.wst.server.ui/.project
+++ b/plugins/org.eclipse.wst.server.ui/.project
@@ -20,15 +20,9 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.jdt.core.javanature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
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..08f5c3d 100644
--- a/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.server.ui; singleton:=true
-Bundle-Version: 1.1.102.qualifier
+Bundle-Version: 1.1.5.qualifier
 Bundle-Activator: org.eclipse.wst.server.ui.internal.ServerUIPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -26,12 +26,6 @@
 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.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)",
@@ -44,7 +38,6 @@
  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"
+ org.eclipse.wst.common.project.facet.ui;bundle-version="[1.1.0,2.0.0)";resolution:=optional
 Bundle-ActivationPolicy: lazy;exclude:="org.eclipse.wst.server.ui.internal.webbrowser"
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/org.eclipse.wst.server.ui/plugin.properties b/plugins/org.eclipse.wst.server.ui/plugin.properties
index 065f0bf..49c1777 100644
--- a/plugins/org.eclipse.wst.server.ui/plugin.properties
+++ b/plugins/org.eclipse.wst.server.ui/plugin.properties
@@ -27,8 +27,6 @@
 newServerDescription=Define a new server
 
 viewServers=Servers
-viewServers_new=Servers (proposed)
-defaultProvider=Server and Module Provider
 
 # --------------- Action Sets (toolbar icon groups) ---------------
 
diff --git a/plugins/org.eclipse.wst.server.ui/plugin.xml b/plugins/org.eclipse.wst.server.ui/plugin.xml
index 6e29477..75647be 100644
--- a/plugins/org.eclipse.wst.server.ui/plugin.xml
+++ b/plugins/org.eclipse.wst.server.ui/plugin.xml
@@ -37,53 +37,6 @@
     category="org.eclipse.wst.server.ui"
     class="org.eclipse.wst.server.ui.internal.view.servers.ServersView"
     icon="icons/cview16/servers_view.gif"/>
-
-  <view
-        allowMultiple="false"
-        category="org.eclipse.wst.server.ui"
-        class="org.elcipse.wst.server.ui.internal.cnf.ServersView2"
-        icon="icons/cview16/servers_view.gif"
-        id="org.eclipse.wst.server.ui.ServersView2"
-        name="%viewServers_new"/>
-</extension>
-<extension
-      point="org.eclipse.ui.navigator.navigatorContent">
-   <navigatorContent
-         activeByDefault="true"
-         contentProvider="org.elcipse.wst.server.ui.internal.cnf.ServerContentProvider"
-         icon="icons/cview16/servers_view.gif"
-         id="org.eclipse.wst.server.ui.ServersView.content.root"
-         labelProvider="org.elcipse.wst.server.ui.internal.cnf.ServerLabelProvider"
-         name="%defaultProvider"
-         priority="normal">
-      <triggerPoints>
-         <instanceof
-               value="org.eclipse.wst.server.core.internal.ServerPlugin">
-         </instanceof>
-      </triggerPoints>
-      <possibleChildren>
-         <or>
-            <instanceof
-                  value="org.eclipse.wst.server.core.IServer">
-            </instanceof>
-            <instanceof
-                  value="org.eclipse.wst.server.ui.internal.view.servers.ModuleServer">
-            </instanceof>
-         </or></possibleChildren>
-   </navigatorContent>
-</extension>
-
-               <extension
-      point="org.eclipse.ui.navigator.viewer">
-   <viewerContentBinding
-         viewerId="org.eclipse.wst.server.ui.ServersView2">
-      <includes>
-         <contentExtension
-               isRoot="true"
-               pattern="org.eclipse.wst.server.ui.ServersView.content.root">
-         </contentExtension>
-      </includes>
-   </viewerContentBinding>
 </extension>
 
 <extension point="org.eclipse.ui.perspectiveExtensions">
@@ -92,7 +45,7 @@
     <view
       relative="org.eclipse.debug.ui.DebugView"
       relationship="stack"
-      id="org.eclipse.wst.server.ui.ServersView2">
+      id="org.eclipse.wst.server.ui.ServersView">
     </view>
   </perspectiveExtension>
 </extension>
@@ -550,27 +503,5 @@
         id="org.eclipse.wst.server.ui.launchable.adapter.default"
         priority="-999999"/>
 </extension>
-<extension
-      point="org.eclipse.ui.decorators">
-   <decorator
-         class="org.elcipse.wst.server.ui.internal.cnf.ServerDecorator"
-         icon="icons/obj16/server.gif"
-         id="org.eclipse.wst.server.ui.navigatorDecorator"
-         label="Server State Decorator"
-         lightweight="true"
-         location="BOTTOM_RIGHT"
-         state="true">
-      <enablement>
-         <or>
-            <objectClass
-                  name="org.eclipse.wst.server.core.IServer">
-            </objectClass>
-            <objectClass
-                  name="org.eclipse.wst.server.ui.internal.view.servers.ModuleServer">
-            </objectClass>
-         </or>
-      </enablement>
-   </decorator>
-</extension>
 
 </plugin>
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/IServerModule.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/IServerModule.java
index 5f04206..79c9217 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/IServerModule.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/IServerModule.java
@@ -16,7 +16,7 @@
  * A helper interface for modules that are deployed to a server, commonly
  * used to help actions interact with modules in the Servers view.
  *
- * @since 1.1
+ * @since 3.0
  */
 public interface IServerModule {
 	/**
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/ServerLaunchConfigurationTab.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/ServerLaunchConfigurationTab.java
index 70c08e0..e13fad0 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/ServerLaunchConfigurationTab.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/ServerLaunchConfigurationTab.java
@@ -133,19 +133,19 @@
 				}
 			}
 		}
-		
+
 		// select first item in list
 		if (serverCombo.getItemCount() > 0)
 			serverCombo.select(0);
-		
+
 		handleServerSelection();
-		
+
 		serverCombo.forceFocus();
-		
+
 		Dialog.applyDialogFont(composite);
 		setControl(composite);
 	}
-
+	
 	private boolean isSupportedServer(String serverTypeId) {
 		if (serverTypeIds == null)
 			return true;
@@ -156,13 +156,13 @@
 		}
 		return false;
 	}
-
+	
 	private static boolean matches(String a, String b) {
 		if (a == null || b == null || "*".equals(a) || "*".equals(b) || a.startsWith(b) || b.startsWith(a))
 			return true;
 		return false;
 	}
-
+	
 	/**
 	 * Called when a server is selected.
 	 * This method should not be called directly.
@@ -248,8 +248,6 @@
 				if (serverCombo.getItemCount() > 0)
 					serverCombo.select(0);
 			}
-			handleServerSelection();
-			
 			// flag should only be set if launch has been attempted on the config
 			if (configuration.getAttribute(READ_ONLY, false))
 				serverCombo.setEnabled(false);
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/editor/ServerEditorPart.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/editor/ServerEditorPart.java
index bb8fa61..6aad065 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/editor/ServerEditorPart.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/editor/ServerEditorPart.java
@@ -96,7 +96,7 @@
 	 * Set the managed form that this part is using.
 	 * 
 	 * @param managedForm a managed form
-	 * @since 1.1
+	 * @since 3.0
 	 */
 	protected void setManagedForm(IManagedForm managedForm) {
 		this.managedForm = managedForm;
@@ -108,7 +108,7 @@
 	 * 
 	 * @return managedForm the managed form that this part is using, or <code>null</code>
 	 *    if no managed form has been set
-	 * @since 1.1
+	 * @since 3.0
 	 */
 	protected IManagedForm getManagedForm() {
 		return managedForm;
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/editor/ServerEditorSection.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/editor/ServerEditorSection.java
index 88824d8..bd5dae5 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/editor/ServerEditorSection.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/editor/ServerEditorSection.java
@@ -161,7 +161,7 @@
 	 * 
 	 * @return the managed form that the editor is using, or <code>null</code> if no
 	 *    managed form has been set
-	 * @since 1.1
+	 * @since 3.0
 	 */
 	protected IManagedForm getManagedForm() {
 		return editor.getManagedForm();
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/DefaultMonitorDelegate.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/DefaultMonitorDelegate.java
index 279ddbb..e8fca29 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/DefaultMonitorDelegate.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/DefaultMonitorDelegate.java
@@ -76,7 +76,7 @@
 		try {
 			IMonitor monitor = monitors.get(port);
 			int mport = -1;
-			if (monitor == null) {
+			if (monitor == null || monitor.getLocalPort() != monitorPort) {
 				mport = monitorPort;
 				if (mport == -1)
 					mport = SocketUtil.findUnusedPort(5000, 15000);
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.java
index 55b7ce1..79f2f7a 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.java
@@ -299,16 +299,13 @@
 	public static String serverEditorOverviewRuntimeCommand;
 	public static String serverEditorOverviewOpenLaunchConfiguration;
 	public static String errorMissingConfiguration;
-	public static String errorConfigurationNotAccessible;
 	public static String viewStatusStarting4;
 	public static String viewStatusStarted2;
 	public static String viewStatusStopping4;
 	public static String viewStatusStopped2;
-	public static String viewStatusStarting;
 	public static String viewStatusStarting1;
 	public static String viewStatusStarting2;
 	public static String viewStatusStarting3;
-	public static String viewStatusStopping;
 	public static String viewStatusStopping1;
 	public static String viewStatusStopping2;
 	public static String viewStatusStopping3;
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.properties b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.properties
index 136eea8..08b92ba 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.properties
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/Messages.properties
@@ -73,12 +73,12 @@
 wizLicenseNone=Feature does not contain a license.
 
 # Add/Remove Modules
-wizModuleWizardTitle=Add and Remove...
-wizModuleTitle=Add and Remove
-wizModuleDescription=Modify the resources that are configured on the server
-wizModuleMessage=Move resources to the right to configure them on the server
-wizModuleAvailableList=&Available:
-wizModuleDeployedList=&Configured:
+wizModuleWizardTitle=Add and Remove Projects
+wizModuleTitle=Add and Remove Projects
+wizModuleDescription=Modify the projects that are configured on the server
+wizModuleMessage=Move projects to the right to configure them on the server
+wizModuleAvailableList=&Available projects:
+wizModuleDeployedList=&Configured projects:
 wizModuleAdd=A&dd >
 wizModuleAddAll=Add A&ll >>
 wizModuleRemove=< &Remove
@@ -139,9 +139,9 @@
 actionPublish=Publish
 actionPublishToolTip=Publish to the server
 actionPublishClean=&Clean...
-actionPublishCleanToolTip=Clean resources on the server
-actionModifyModules=&Add and Remove...
-actionModifyModulesToolTip=Add and Remove resources to the server
+actionPublishCleanToolTip=Clean projects on the server
+actionModifyModules=Add and Remove &Projects...
+actionModifyModulesToolTip=Add and remove projects
 actionRestartModule=&Restart
 actionStartModule=&Start
 actionStopModule=S&top
@@ -156,12 +156,10 @@
 viewStatusStartedProfile=Profiling
 viewStatusStopped=Stopped
 
-viewStatusStarting=Starting
 viewStatusStarting1=Starting.
 viewStatusStarting2=Starting..
 viewStatusStarting3=Starting...
 
-viewStatusStopping=Stopping
 viewStatusStopping1=Stopping.
 viewStatusStopping2=Stopping..
 viewStatusStopping3=Stopping...
@@ -330,7 +328,7 @@
 dialogMonitorContentTypeWebServices=WebServices
 dialogMonitorNone=<none>
 
-dialogPublishClean=Clean will discard all publish state and republish from scratch. Are you sure you want to clean all published resources?
+dialogPublishClean=Clean will discard all publish state and republish from scratch. Are you sure you want to clean all published projects?
 
 start=Start
 stop=Stop
@@ -348,9 +346,9 @@
 dialogRuntimeSearchProgress=Searching for server runtime environments...
 
 # Can't add remove
-dialogAddRemoveModulesNone=There are no resources that can be added or removed from the server.
+dialogAddRemoveModulesNone=There are no projects that can be added or removed from the server.
 
-dialogRemoveModuleConfirm=Are you sure you want to remove the resource from the server?
+dialogRemoveModuleConfirm=Are you sure you want to remove the project from the server?
 
 # --------------- Misc UI ---------------
 
@@ -395,7 +393,6 @@
 errorEditor=Could not open editor because {0} is not a valid server. Use Open With to open this file with a different editor.
 errorVersionLevel=The server does not support version {1} of the {0} specification.
 errorMissingConfiguration=The server configuration is missing or invalid
-errorConfigurationNotAccessible=The server configuration is not accessible. The {0} project is closed.
 errorRootModule=Could not find a valid parent module to add to the server.
 errorDuplicateName=The name is already in use. Specify a different name.
 
@@ -449,7 +446,7 @@
 serverEditorOverviewAutoPublishEnabled=Automatically publish when resources change
 serverEditorOverviewAutoPublishEnabledInterval=Publishing interval (in seconds):
 serverEditorOverviewPublishCommand=modify publish settings
-serverEditorOverviewPublishers=Select publishing actions:
+serverEditorOverviewPublishers=Select enabled publishers:
 serverEditorOverviewTimeoutSection=Timeouts
 serverEditorOverviewTimeoutDescription=Specify the time limit to complete server operations.
 serverEditorOverviewStartTimeout=Start (in seconds):
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerToolTip.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerToolTip.java
index d37cedb..ea16e5d 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerToolTip.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerToolTip.java
@@ -1,5 +1,5 @@
 /**********************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * Copyright (c) 2007, 2009 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
@@ -56,6 +56,9 @@
 		
 		tree.addKeyListener(new KeyListener() {
 			public void keyPressed(KeyEvent  e) {
+				if (e == null)
+					return;
+				
 				if (e.keyCode == SWT.ESC) {
 					if (CURRENT_TOOLTIP != null) {
 						CURRENT_TOOLTIP.dispose();
@@ -245,25 +248,26 @@
 		for (int i=0; i < extensions.length; i++){			
 			IConfigurationElement exElement = extensions[i];
 			
-			try {
-				// sort the extensions based on serverType
-				String exServerType = exElement.getAttribute("serverTypes");
-				
-				for (IServerType serverType : serverTypes) {
-					if ("*".equals(exServerType) || exServerType.startsWith(serverType.getId())) {
+			// Sort the extensions based on serverType
+			String exServerType = exElement.getAttribute("serverTypes");
+			
+			for (IServerType serverType : serverTypes) {
+				if (exServerType.compareTo("*") == 0 || 
+						exServerType.startsWith(serverType.getId()) == true) {
+					try {
 						IServerToolTip exTooltip = (IServerToolTip) exElement.createExecutableExtension("class");
 						ArrayList<IServerToolTip> listOfProviders = new ArrayList<IServerToolTip>(); 
-						if (toolTipProviders.containsKey(serverType))
+						if (toolTipProviders.containsKey(serverType)) {
 							listOfProviders = toolTipProviders.get(serverType);
-						
+						}
 						listOfProviders.add(exTooltip);
 						toolTipProviders.put(serverType.getId(), listOfProviders);
+					} catch (CoreException e) {
+						Trace.trace(Trace.SEVERE, "Tooltip failed to load" + extensions[i].toString(), e);
 					}
+					Trace.trace(Trace.EXTENSION_POINT, "  Loaded serverToolTip: " + extensions[i].getAttribute("id"));
 				}
-			} catch (CoreException e) {
-				Trace.trace(Trace.SEVERE, "Tooltip failed to load" + extensions[i].toString(), e);
 			}
-			Trace.trace(Trace.EXTENSION_POINT, "  Loaded serverToolTip: " + extensions[i].getAttribute("id"));
 		}
 	}
 
@@ -272,7 +276,7 @@
 //	protected class StickyTipMouseListener implements MouseListener{
 //
 //		public void mouseDoubleClick(MouseEvent e) {
-//			// Auto-generated method stub
+//			// TODO Auto-generated method stub
 //			
 //		}
 //
@@ -287,7 +291,9 @@
 //		}
 //
 //		public void mouseUp(MouseEvent e) {
-//			// Auto-generated method stub
+//			// TODO Auto-generated method stub
+//			
 //		}
+//		
 //	}	
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerActionDelegate.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerActionDelegate.java
index 6304836..6df0cf2 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerActionDelegate.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerActionDelegate.java
@@ -422,21 +422,31 @@
 						final IServer server3 = server;
 						server.restart(launchMode, new IServer.IOperationListener() {
 							public void done(IStatus result) {
-								server3.publish(IServer.PUBLISH_INCREMENTAL, null, info, new IServer.IOperationListener() {
-									public void done(IStatus result2) {
-										if (result2.isOK())
-											clientJob.schedule();
-									}
-								});
+								// Only publish if the server requires publish before launching the client.
+								if (server3.shouldPublish()) {
+									server3.publish(IServer.PUBLISH_INCREMENTAL, null, info, new IServer.IOperationListener() {
+										public void done(IStatus result2) {
+											if (result2.isOK())
+												clientJob.schedule();
+										}
+									});
+								} else {
+									clientJob.schedule();
+								}
 							}
 						});
 					} else {
-						server.publish(IServer.PUBLISH_INCREMENTAL, null, info, new IServer.IOperationListener() {
-							public void done(IStatus result) {
-								if (result.isOK())
-									clientJob.schedule();
-							}
-						});
+						// Only publish if the server requires publish before launching the client.
+						if (server.shouldPublish()) {
+							server.publish(IServer.PUBLISH_INCREMENTAL, null, info, new IServer.IOperationListener() {
+								public void done(IStatus result) {
+									if (result.isOK())
+										clientJob.schedule();
+								}
+							});
+						} else {
+							clientJob.schedule();
+						}
 					}
 				} else if (state != IServer.STATE_STOPPING) {
 					final LaunchClientJob clientJob = new LaunchClientJob(server, modules, launchMode, moduleArtifact, launchableAdapter, client);
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerLaunchConfigurationDelegate.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerLaunchConfigurationDelegate.java
index 1c01ae3..4a4303a 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerLaunchConfigurationDelegate.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerLaunchConfigurationDelegate.java
@@ -220,21 +220,31 @@
 				final IServer server2 = server;
 				server.restart(launchMode, new IServer.IOperationListener() {
 					public void done(IStatus result) {
-						server2.publish(IServer.PUBLISH_INCREMENTAL, null, info, new IServer.IOperationListener() {
-							public void done(IStatus result2) {
-								if (result2.isOK())
-									clientJob.schedule();
-							}
-						});
+						// Only publish if the server requires publish before launching the client.
+						if (server2.shouldPublish()) {
+							server2.publish(IServer.PUBLISH_INCREMENTAL, null, info, new IServer.IOperationListener() {
+								public void done(IStatus result2) {
+									if (result2.isOK())
+										clientJob.schedule();
+								}
+							});
+						} else {
+							clientJob.schedule();
+						}
 					}
 				});
 			} else {
-				server.publish(IServer.PUBLISH_INCREMENTAL, null, info, new IServer.IOperationListener() {
-					public void done(IStatus result) {
-						if (result.isOK())
-							clientJob.schedule();
-					}
-				});
+				// Only publish if the server requires publish before launching the client.
+				if (server.shouldPublish()) {
+					server.publish(IServer.PUBLISH_INCREMENTAL, null, info, new IServer.IOperationListener() {
+						public void done(IStatus result) {
+							if (result.isOK())
+								clientJob.schedule();
+						}
+					});
+				} else {
+					clientJob.schedule();
+				}
 			}
 		} else if (state != IServer.STATE_STOPPING) {
 			final LaunchClientJob clientJob = new LaunchClientJob(server, modules, launchMode, moduleArtifact, launchableAdapter, client);
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/editor/OverviewEditorPart.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/editor/OverviewEditorPart.java
index db47e6b..1e6dc84 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/editor/OverviewEditorPart.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/editor/OverviewEditorPart.java
@@ -17,7 +17,6 @@
 import java.util.List;
 
 import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IWorkspaceRoot;
 import org.eclipse.core.resources.ResourcesPlugin;
@@ -39,7 +38,6 @@
 import org.eclipse.jface.viewers.ICheckStateListener;
 import org.eclipse.jface.window.Window;
 import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.osgi.util.NLS;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.*;
 import org.eclipse.swt.graphics.Image;
@@ -394,18 +392,16 @@
 		
 		// runtime
 		if (server != null && server.getServerType() != null && server.getServerType().hasRuntime()) {
-			final Hyperlink link = toolkit.createHyperlink(composite, Messages.serverEditorOverviewRuntime, SWT.NONE);
-			link.addHyperlinkListener(new HyperlinkAdapter() {
-				public void linkActivated(HyperlinkEvent e) {
-					IRuntime runtime = server.getRuntime();
-					if (runtime != null && ServerUIPlugin.hasWizardFragment(runtime.getRuntimeType().getId()))
-						editRuntime(runtime);
-				}
-			});
-			
 			final IRuntime runtime = server.getRuntime();
-			if (runtime == null || !ServerUIPlugin.hasWizardFragment(runtime.getRuntimeType().getId()))
-				link.setEnabled(false);
+			if (runtime != null && ServerUIPlugin.hasWizardFragment(runtime.getRuntimeType().getId())) {
+				Hyperlink link = toolkit.createHyperlink(composite, Messages.serverEditorOverviewRuntime, SWT.NONE);
+				link.addHyperlinkListener(new HyperlinkAdapter() {
+					public void linkActivated(HyperlinkEvent e) {
+						editRuntime(runtime);
+					}
+				});
+			} else
+				createLabel(toolkit, composite, Messages.serverEditorOverviewRuntime);
 			
 			IRuntimeType runtimeType = server.getServerType().getRuntimeType();
 			runtimes = ServerUIPlugin.getRuntimes(runtimeType);
@@ -431,7 +427,6 @@
 						updating = true;
 						IRuntime newRuntime = runtimes[runtimeCombo.getSelectionIndex()];
 						execute(new SetServerRuntimeCommand(getServer(), newRuntime));
-						link.setEnabled(newRuntime != null && !ServerUIPlugin.hasWizardFragment(newRuntime.getRuntimeType().getId()));
 						updating = false;
 					} catch (Exception ex) {
 						// ignore
@@ -985,16 +980,8 @@
 			mForm.getMessageManager().removeMessage("config", serverConfiguration);
 			if (server != null && server.getServerType() != null && server.getServerType().hasServerConfiguration()) {
 				IFolder folder = getServer().getServerConfiguration();
-				
-	 			if (folder == null || !folder.exists()) {
-					IProject project = null;
-					if (folder != null)
-						project = folder.getProject();
-					if (project != null && project.exists() && !project.isOpen())
-						mForm.getMessageManager().addMessage("config", NLS.bind(Messages.errorConfigurationNotAccessible, project.getName()), null, IMessageProvider.ERROR, serverConfiguration);
-					else
-						mForm.getMessageManager().addMessage("config", Messages.errorMissingConfiguration, null, IMessageProvider.ERROR, serverConfiguration);
-	 			}
+				if (folder == null || !folder.exists())
+					mForm.getMessageManager().addMessage("config", Messages.errorMissingConfiguration, null, IMessageProvider.ERROR, serverConfiguration);
 			}
 		}
 		
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
index b925b02..4a2fa05 100644
--- 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
@@ -307,10 +307,7 @@
 					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);
+			SiteManager.getLocalSite().getCurrentConfiguration().getConfiguredSites()[0].install(feature, verificationListener, monitor);
 		} catch (CoreException ce) {
 			Trace.trace(Trace.WARNING, "Error installing server adapter", ce);
 			throw ce;
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/provisional/ConnectedUIDecorator.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/provisional/ConnectedUIDecorator.java
new file mode 100644
index 0000000..3a7d252
--- /dev/null
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/provisional/ConnectedUIDecorator.java
@@ -0,0 +1,107 @@
+/*******************************************************************************
+ * Copyright (c) 2005 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.provisional;
+
+import org.eclipse.debug.core.ILaunchManager;
+import org.eclipse.jface.action.Action;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.ui.internal.ImageResource;
+import org.eclipse.wst.server.ui.internal.Messages;
+
+public class ConnectedUIDecorator extends UIDecorator {
+	private static final String[] serverStateUnmanaged = new String[] {
+		"",
+		Messages.viewStatusStarting4,
+		Messages.viewStatusStarted2,
+		Messages.viewStatusStopping4,
+		Messages.viewStatusStopped2};
+
+	private static final String[] startingText = new String[] {
+		Messages.viewStatusStarting1,
+		Messages.viewStatusStarting2,
+		Messages.viewStatusStarting3};
+	
+	private static final String[] stoppingText = new String[] {
+		Messages.viewStatusStopping1,
+		Messages.viewStatusStopping2,
+		Messages.viewStatusStopping3};
+	
+	private static final Image[] startingImages = new Image[] {
+		ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTING_1),
+		ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTING_2),
+		ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTING_3)
+	};
+	
+	private static final Image[] stoppingImages = new Image[] {
+		ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STOPPING_1),
+		ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STOPPING_2),
+		ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STOPPING_2)
+	};
+
+	/**
+	 * @see UIDecorator#getStateLabel(int, String, int)
+	 */
+	public String getStateLabel(int state, String mode, int count) {
+		if (state == IServer.STATE_UNKNOWN)
+			return "";
+		else if (state == IServer.STATE_STARTING)
+			return startingText[count];
+		else if (state == IServer.STATE_STOPPING)
+			return stoppingText[count];
+		else if (state == IServer.STATE_STARTED) {
+			if (ILaunchManager.DEBUG_MODE.equals(mode))
+				return Messages.viewStatusStartedDebug;
+			else if (ILaunchManager.PROFILE_MODE.equals(mode))
+				return Messages.viewStatusStartedProfile;
+			else
+				return Messages.viewStatusStarted;
+		} else if (state == IServer.STATE_STOPPED)
+			return Messages.viewStatusStopped;
+		
+		return serverStateUnmanaged[state];
+	}
+
+	/**
+	 * @see UIDecorator#getStateImage(int, String, int)
+	 */
+	public Image getStateImage(int state, String mode, int count) {
+		if (state == IServer.STATE_UNKNOWN)
+			return null;
+		else if (state == IServer.STATE_STARTING)
+			return startingImages[count];
+		else if (state == IServer.STATE_STOPPING)
+			return stoppingImages[count];
+		else if (state == IServer.STATE_STOPPED)
+			return ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STOPPED);
+		else { //if (state == IServer.STATE_STARTED) {
+			//String mode = server.getMode();
+			if (ILaunchManager.DEBUG_MODE.equals(mode))
+				return ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTED_DEBUG);
+			else if (ILaunchManager.PROFILE_MODE.equals(mode))
+				return ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTED_PROFILE);
+			else
+				return ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTED);
+		}
+	}
+	
+	public boolean canRestart() {
+		return false;
+	}
+	
+	public void setupAction(Action action, int action2) {
+		action.setToolTipText(Messages.actionStopToolTip2);
+		action.setText(Messages.actionStop2);
+		action.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_ELCL_DISCONNECT));
+		action.setHoverImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_CLCL_DISCONNECT));
+		action.setDisabledImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_DLCL_DISCONNECT));
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/elcipse/wst/server/ui/internal/cnf/CNFManagedUIDecorator.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/provisional/PublishedUIDecorator.java
similarity index 60%
rename from plugins/org.eclipse.wst.server.ui/serverui/org/elcipse/wst/server/ui/internal/cnf/CNFManagedUIDecorator.java
rename to plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/provisional/PublishedUIDecorator.java
index 641c8e2..b4f63b0 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/elcipse/wst/server/ui/internal/cnf/CNFManagedUIDecorator.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/provisional/PublishedUIDecorator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
+ * Copyright (c) 2005 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
@@ -8,23 +8,31 @@
  * Contributors:
  *     IBM Corporation - Initial API and implementation
  *******************************************************************************/
-package org.elcipse.wst.server.ui.internal.cnf;
+package org.eclipse.wst.server.ui.internal.provisional;
 
 import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.wst.server.core.IServer;
 import org.eclipse.wst.server.ui.internal.ImageResource;
 import org.eclipse.wst.server.ui.internal.Messages;
-import org.eclipse.wst.server.ui.internal.provisional.UIDecorator;
 
-public class CNFManagedUIDecorator extends UIDecorator {
+public class PublishedUIDecorator extends UIDecorator {
 	private static final String[] serverStateUnmanaged = new String[] {
 		"",
 		Messages.viewStatusStarting4,
 		Messages.viewStatusStarted2,
 		Messages.viewStatusStopping4,
 		Messages.viewStatusStopped2};
+
+	private static final String[] startingText = new String[] {
+		Messages.viewStatusStarting1,
+		Messages.viewStatusStarting2,
+		Messages.viewStatusStarting3};
+	
+	private static final String[] stoppingText = new String[] {
+		Messages.viewStatusStopping1,
+		Messages.viewStatusStopping2,
+		Messages.viewStatusStopping3};
 	
 	private static final Image[] startingImages = new Image[] {
 		ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTING_1),
@@ -32,24 +40,11 @@
 		ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTING_3)
 	};
 	
-	private static final ImageDescriptor[] startingImagesDescriptor = new ImageDescriptor[] {
-		ImageResource.getImageDescriptor(ImageResource.IMG_SERVER_STATE_STARTING_1),
-		ImageResource.getImageDescriptor(ImageResource.IMG_SERVER_STATE_STARTING_2),
-		ImageResource.getImageDescriptor(ImageResource.IMG_SERVER_STATE_STARTING_3)
-	};
-	
 	private static final Image[] stoppingImages = new Image[] {
 		ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STOPPING_1),
 		ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STOPPING_2),
 		ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STOPPING_2)
 	};
-	
-	private static final ImageDescriptor[] stoppingImagesDescriptor = new ImageDescriptor[] {
-		ImageResource.getImageDescriptor(ImageResource.IMG_SERVER_STATE_STOPPING_1),
-		ImageResource.getImageDescriptor(ImageResource.IMG_SERVER_STATE_STOPPING_2),
-		ImageResource.getImageDescriptor(ImageResource.IMG_SERVER_STATE_STOPPING_3)
-	};
-	
 
 	/**
 	 * @see UIDecorator#getStateLabel(int, String, int)
@@ -58,9 +53,9 @@
 		if (state == IServer.STATE_UNKNOWN)
 			return "";
 		else if (state == IServer.STATE_STARTING)
-			return Messages.viewStatusStarting;
+			return startingText[count];
 		else if (state == IServer.STATE_STOPPING)
-			return Messages.viewStatusStopping;
+			return stoppingText[count];
 		else if (state == IServer.STATE_STARTED) {
 			if (ILaunchManager.DEBUG_MODE.equals(mode))
 				return Messages.viewStatusStartedDebug;
@@ -96,37 +91,12 @@
 				return ImageResource.getImage(ImageResource.IMG_SERVER_STATE_STARTED);
 		}
 	}
-	
-	/**
-	 * @see UIDecorator#getStateImage(int, String, int)
-	 */
-	public ImageDescriptor getStateImageDescriptor(int state, String mode, int count) {
-		if (state == IServer.STATE_UNKNOWN)
-			return null;
-		else if (state == IServer.STATE_STARTING)
-			return startingImagesDescriptor[count];
-		else if (state == IServer.STATE_STOPPING)
-			return stoppingImagesDescriptor[count];
-		else if (state == IServer.STATE_STOPPED)
-			return ImageResource.getImageDescriptor(ImageResource.IMG_SERVER_STATE_STOPPED);
-		else { //if (state == IServer.STATE_STARTED) {
-			//String mode = server.getMode();
-			if (ILaunchManager.DEBUG_MODE.equals(mode))
-				return ImageResource.getImageDescriptor(ImageResource.IMG_SERVER_STATE_STARTED_DEBUG);
-			else if (ILaunchManager.PROFILE_MODE.equals(mode))
-				return ImageResource.getImageDescriptor(ImageResource.IMG_SERVER_STATE_STARTED_PROFILE);
-			else
-				return ImageResource.getImageDescriptor(ImageResource.IMG_SERVER_STATE_STARTED);
-		}
-	}
-	
-	
 
 	public String getModuleName() {
 		return "module";
 	}
 	
 	public boolean canRestart() {
-		return true;
+		return false;
 	}
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/provisional/UIDecorator.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/provisional/UIDecorator.java
index 72820ca..de9952d 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/provisional/UIDecorator.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/provisional/UIDecorator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005,2008 IBM Corporation and others.
+ * Copyright (c) 2005 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
@@ -11,7 +11,6 @@
 package org.eclipse.wst.server.ui.internal.provisional;
 
 import org.eclipse.jface.action.Action;
-import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.wst.server.ui.internal.ImageResource;
 import org.eclipse.wst.server.ui.internal.Messages;
@@ -38,10 +37,6 @@
 	 * @return org.eclipse.jface.parts.IImage
 	 */
 	public abstract Image getStateImage(int state, String mode, int count);
-	
-	public ImageDescriptor getStateImageDescriptor(int state, String mode, int count){
-		return null;
-	}
 
 	public String getModuleName() {
 		return "module";
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/provisional/UIDecoratorManager.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/provisional/UIDecoratorManager.java
index abf2374..e55fdcf 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/provisional/UIDecoratorManager.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/provisional/UIDecoratorManager.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005,2008 IBM Corporation and others.
+ * Copyright (c) 2005 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
@@ -11,17 +11,11 @@
 package org.eclipse.wst.server.ui.internal.provisional;
 
 import org.eclipse.wst.server.core.IServerType;
-import org.elcipse.wst.server.ui.internal.cnf.CNFManagedUIDecorator;
 
 public class UIDecoratorManager {
 	protected static UIDecorator decorator = new ManagedUIDecorator();
-	protected static UIDecorator decorator2 = new CNFManagedUIDecorator();
 	
 	public static UIDecorator getUIDecorator(IServerType serverType) {
 		return decorator;
 	}
-	
-	public static UIDecorator getCNFUIDecorator(IServerType serverType) {
-		return decorator2;
-	}
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/PasteAction.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/PasteAction.java
index 5f31880..c890066 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/PasteAction.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/PasteAction.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007,2008 IBM Corporation and others.
+ * 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
@@ -46,6 +46,7 @@
 		setActionDefinitionId(IWorkbenchActionDefinitionIds.PASTE);
 		
 		this.clipboard = clipboard;
+		//setEnabled(false);
 	}
 
 	/**
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/PublishAction.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/PublishAction.java
index 5ed16ee..f74d13c 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/PublishAction.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/PublishAction.java
@@ -55,8 +55,6 @@
 			public Object getAdapter(Class adapter) {
 				if (Shell.class.equals(adapter))
 					return shell;
-				if (String.class.equals(adapter))
-					return "user";
 				return null;
 			}
 		};
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/PublishCleanAction.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/PublishCleanAction.java
index 442e0e3..b08aa63 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/PublishCleanAction.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/PublishCleanAction.java
@@ -57,8 +57,6 @@
 				public Object getAdapter(Class adapter) {
 					if (Shell.class.equals(adapter))
 						return shell;
-					if (String.class.equals(adapter))
-						return "user";
 					return null;
 				}
 			};
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/RestartModuleAction.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/RestartModuleAction.java
index 662f8a2..183cd53 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/RestartModuleAction.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/RestartModuleAction.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2008 IBM Corporation and others.
+ * Copyright (c) 2003, 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
@@ -10,7 +10,12 @@
  *******************************************************************************/
 package org.eclipse.wst.server.ui.internal.view.servers;
 
+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.action.Action;
+import org.eclipse.osgi.util.NLS;
 import org.eclipse.wst.server.core.IModule;
 import org.eclipse.wst.server.core.IServer;
 import org.eclipse.wst.server.ui.internal.Messages;
@@ -37,6 +42,13 @@
 	 * Implementation of method defined on <code>IAction</code>.
 	 */
 	public void run() {
-		server.restartModule(module, null);
+		int size = module.length;
+		Job restartJob = new Job(NLS.bind(Messages.jobRestarting, module[size-1].getName())) {
+			protected IStatus run(IProgressMonitor monitor) {
+				server.restartModule(module, null);
+				return Status.OK_STATUS;
+			}
+		};
+		restartJob.schedule();
 	}
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ServerTableLabelProvider.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ServerTableLabelProvider.java
index 4936576..34f7733 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ServerTableLabelProvider.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ServerTableLabelProvider.java
@@ -57,7 +57,8 @@
 	 * ServerTableLabelProvider constructor comment.
 	 */
 	public ServerTableLabelProvider() {
-		super();
+		// Ensure decorator is initialized.
+		super(null);
 	}
 
 	public void setDefaultServer(IServer ds) {
@@ -168,10 +169,9 @@
 				}
 				return name;
 			} else if (columnIndex == 1) {
-				//if (ms.server == null)
-				//	return "";
-				//return getStateLabel(ms.server.getServerType(), ms.server.getModuleState(ms.module), null);
-				return "";
+				if (ms.server == null)
+					return "";
+				return getStateLabel(ms.server.getServerType(), ms.server.getModuleState(ms.module), null);
 			} else if (columnIndex == 2) {
 				IStatus status = ((Server) ms.server).getModuleStatus(ms.module);
 				if (status != null)
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ServerTableViewer.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ServerTableViewer.java
index e3a5bb4..cc49345 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ServerTableViewer.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ServerTableViewer.java
@@ -58,6 +58,7 @@
 	protected static Set<String> starting = new HashSet<String>(4);
 
 	protected ServerTableLabelProvider labelProvider;
+	protected ILabelProviderListener labelProviderListener;
 	//protected ISelectionListener dsListener;
 
 	protected ServersView view;
@@ -452,6 +453,13 @@
 				((Server) servers[i]).addPublishListener(publishListener);
 			}
 		}
+		
+		labelProviderListener = new ILabelProviderListener() {
+			public void labelProviderChanged(LabelProviderChangedEvent event) {
+		    handleLabelProviderChanged(event);
+		  }
+		};
+		labelProvider.addListener(labelProviderListener);
 	}
 
 	protected void refreshServer(final IServer server) {
@@ -487,6 +495,11 @@
 			}
 		}
 		
+		// Remove the label provider listeners.
+		if (labelProvider != null && labelProviderListener != null) {
+			labelProvider.removeListener(labelProviderListener);
+		}
+		
 		clipboard.dispose();
 		
 		super.handleDispose(event);
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ShowInConsoleAction.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ShowInConsoleAction.java
index 1402984..5b0bf53 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ShowInConsoleAction.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ShowInConsoleAction.java
@@ -59,9 +59,6 @@
 	}
 
 	protected void selectProcess(IProcess process) {
-		// see bug 250999 - debug UI must be loaded before looking for debug consoles
-		org.eclipse.debug.ui.console.IConsole.class.toString();
-		
 		IConsoleManager consoleManager = ConsolePlugin.getDefault().getConsoleManager();
 		IConsole[] consoles = consoleManager.getConsoles();
 		int size = consoles.length;
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/StartModuleAction.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/StartModuleAction.java
index 9395ebb..c60c276 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/StartModuleAction.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/StartModuleAction.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * 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
@@ -10,13 +10,18 @@
  *******************************************************************************/
 package org.eclipse.wst.server.ui.internal.view.servers;
 
+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.action.Action;
+import org.eclipse.osgi.util.NLS;
 import org.eclipse.wst.server.core.IModule;
 import org.eclipse.wst.server.core.IServer;
 import org.eclipse.wst.server.ui.internal.ImageResource;
 import org.eclipse.wst.server.ui.internal.Messages;
 /**
- * Start a module on a server.
+ * Restart a module on a server.
  */
 public class StartModuleAction extends Action {
 	protected IServer server;
@@ -41,6 +46,13 @@
 	 * Implementation of method defined on <code>IAction</code>.
 	 */
 	public void run() {
-		server.startModule(module, null);
+		int size = module.length;
+		Job startJob = new Job(NLS.bind(Messages.viewStatusStarting3, module[size-1].getName())) {
+			protected IStatus run(IProgressMonitor monitor) {
+				server.startModule(module, null);
+				return Status.OK_STATUS;
+			}
+		};
+		startJob.schedule();
 	}
-}
\ No newline at end of file
+}
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/StopModuleAction.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/StopModuleAction.java
index a0b4d13..07c0a26 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/StopModuleAction.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/StopModuleAction.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * 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
@@ -10,13 +10,18 @@
  *******************************************************************************/
 package org.eclipse.wst.server.ui.internal.view.servers;
 
+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.action.Action;
+import org.eclipse.osgi.util.NLS;
 import org.eclipse.wst.server.core.IModule;
 import org.eclipse.wst.server.core.IServer;
 import org.eclipse.wst.server.ui.internal.ImageResource;
 import org.eclipse.wst.server.ui.internal.Messages;
 /**
- * Stop a module on a server.
+ * Restart a module on a server.
  */
 public class StopModuleAction extends Action {
 	protected IServer server;
@@ -41,6 +46,13 @@
 	 * Implementation of method defined on <code>IAction</code>.
 	 */
 	public void run() {
-		server.stopModule(module, null);
+		int size = module.length;
+		Job stopJob = new Job(NLS.bind(Messages.viewStatusStopping3, module[size-1].getName())) {
+			protected IStatus run(IProgressMonitor monitor) {
+				server.stopModule(module, null);
+				return Status.OK_STATUS;
+			}
+		};
+		stopJob.schedule();
 	}
-}
\ No newline at end of file
+}
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/BaseCellLabelProvider.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/BaseCellLabelProvider.java
index 64e5640..94ecc8c 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/BaseCellLabelProvider.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/BaseCellLabelProvider.java
@@ -10,9 +10,7 @@
  *******************************************************************************/
 package org.eclipse.wst.server.ui.internal.viewers;
 
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.ILabelDecorator;
-import org.eclipse.jface.viewers.ViewerCell;
+import org.eclipse.jface.viewers.*;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.graphics.Point;
 import org.eclipse.ui.PlatformUI;
@@ -21,6 +19,7 @@
  */
 public abstract class BaseCellLabelProvider extends ColumnLabelProvider {
 	public ILabelDecorator decorator;
+	protected ILabelProviderListener providerListener;
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.viewers.ColumnLabelProvider#update(org.eclipse.jface.viewers.ViewerCell)
@@ -38,7 +37,7 @@
 	 * Create a BaseCellLabelProvider
 	 */
 	public BaseCellLabelProvider() {
-		super();
+		super();		
 	}
 
 	/**
@@ -47,9 +46,18 @@
 	 */
 	public BaseCellLabelProvider(ILabelDecorator decorator) {
 		super();
-		if (decorator == null)
+			
+		if (decorator == null){
 			decorator = PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator();
-		
+			providerListener = new ILabelProviderListener() {
+				@SuppressWarnings("synthetic-access")
+				public void labelProviderChanged(LabelProviderChangedEvent event) {
+					fireLabelProviderChanged(event);
+				}
+			};
+			decorator.addListener(providerListener);
+		}
+	
 		this.decorator = decorator;
 	} 
 
@@ -64,6 +72,13 @@
 	public int getToolTipTimeDisplayed(Object object) {	
 		return 5000;
 	}
+	
+	public void dispose() {
+		if (decorator != null && providerListener != null) {
+			decorator.removeListener(providerListener);
+		}
+		super.dispose();
+	}
 
 	/**
 	 * Extenders of this class would implement this method to provide an image to the column based on the element 
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/NewManualServerComposite.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/NewManualServerComposite.java
index 75101a5..6372668 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/NewManualServerComposite.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/NewManualServerComposite.java
@@ -234,7 +234,8 @@
 		addRuntime.addSelectionListener(new SelectionAdapter() {
 			public void widgetSelected(SelectionEvent e) {
 				IServerType serverType = serverTypeComposite.getSelectedServerType();
-				showRuntimeWizard(serverType);
+				if (showRuntimeWizard(serverType) != Window.CANCEL)
+					updateRuntimeCombo(serverType);
 			}
 		});
 		
@@ -286,16 +287,7 @@
 		TaskWizard wizard2 = new TaskWizard(Messages.wizNewRuntimeWizardTitle, fragment, taskModel);
 		wizard2.setForcePreviousAndNextButtons(true);
 		WizardDialog dialog = new WizardDialog(getShell(), wizard2);
-		int returnValue = dialog.open();
-		if (returnValue != Window.CANCEL) {
-			updateRuntimeCombo(serverType);
-			IRuntime rt = (IRuntime)taskModel.getObject(TaskModel.TASK_RUNTIME);
-			if (rt != null && rt.getName() != null && runtimeCombo.indexOf(rt.getName()) != -1) {
-				setRuntime(rt);
-				runtimeCombo.select(runtimeCombo.indexOf(rt.getName()));
-			}
-		}
-		return returnValue;
+		return dialog.open();
 	}
 
 	public void setHost(String host) {
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/elcipse/wst/server/ui/internal/cnf/ServerActionProvider.java b/plugins/org.eclipse.wst.server.ui/serverui/org/elcipse/wst/server/ui/internal/cnf/ServerActionProvider.java
deleted file mode 100644
index 982a1b4..0000000
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/elcipse/wst/server/ui/internal/cnf/ServerActionProvider.java
+++ /dev/null
@@ -1,295 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.elcipse.wst.server.ui.internal.cnf;
-
-import java.util.Iterator;
-
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionManager;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.bindings.TriggerSequence;
-import org.eclipse.jface.viewers.IOpenListener;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.OpenEvent;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.keys.IBindingService;
-import org.eclipse.ui.navigator.CommonActionProvider;
-import org.eclipse.ui.navigator.CommonViewer;
-import org.eclipse.ui.navigator.ICommonActionExtensionSite;
-import org.eclipse.ui.navigator.ICommonViewerSite;
-import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite;
-import org.eclipse.wst.server.core.IModule;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.ServerPort;
-import org.eclipse.wst.server.core.model.ServerDelegate;
-import org.eclipse.wst.server.ui.internal.Messages;
-import org.eclipse.wst.server.ui.internal.ServerUIPlugin;
-import org.eclipse.wst.server.ui.internal.Trace;
-import org.eclipse.wst.server.ui.internal.actions.NewServerWizardAction;
-import org.eclipse.wst.server.ui.internal.view.servers.*;
-
-/**
- * TODO Angel says: Not currently besing used this code was moved up to the ServersView to get similar support
- * to the old view. If we have an action provider when the ServersView firsts open the ActionProvider has not been 
- * initilized yet.
- *
- */
-public class ServerActionProvider extends CommonActionProvider {
-	private ICommonActionExtensionSite actionSite;
-	private Clipboard clipboard;
-	public ServerActionProvider() {
-		super();
-	}
-	
-	public void init(ICommonActionExtensionSite aSite) {
-		super.init(aSite);
-		this.actionSite = aSite;
-		ICommonViewerSite site = aSite.getViewSite();
-		if( site instanceof ICommonViewerWorkbenchSite ) {
-			StructuredViewer v = aSite.getStructuredViewer();
-			if( v instanceof CommonViewer ) {
-				CommonViewer cv = (CommonViewer)v;
-				ICommonViewerWorkbenchSite wsSite = (ICommonViewerWorkbenchSite)site;
-				addListeners(cv);
-				makeServerActions(cv, wsSite.getSelectionProvider());
-			}
-		}
-	}
-
-
-	// actions on a server
-	protected Action[] actions;
-	protected Action actionModifyModules;
-	protected Action openAction, showInConsoleAction, showInDebugAction, propertiesAction, monitorPropertiesAction;
-	protected Action copyAction, pasteAction, deleteAction, renameAction;
-	protected Action noneAction = new Action(Messages.dialogMonitorNone) {
-		// dummy action
-	};
-
-	private void addListeners(CommonViewer tableViewer) {
-		tableViewer.addOpenListener(new IOpenListener() {
-			public void open(OpenEvent event) {
-				try {
-					IStructuredSelection sel = (IStructuredSelection) event.getSelection();
-					Object data = sel.getFirstElement();
-					if (!(data instanceof IServer))
-						return;
-					IServer server = (IServer) data;
-					ServerUIPlugin.editServer(server);
-				} catch (Exception e) {
-					Trace.trace(Trace.SEVERE, "Could not open server", e);
-				}
-			}
-		});
-	}
-	
-	private void makeServerActions(CommonViewer tableViewer, ISelectionProvider provider) {
-		clipboard = new Clipboard(tableViewer.getTree().getDisplay());
-		Shell shell = tableViewer.getTree().getShell();
-		
-		actions = new Action[6];
-		// create the start actions
-		actions[0] = new StartAction(shell, provider, ILaunchManager.DEBUG_MODE);
-		actions[1] = new StartAction(shell, provider, ILaunchManager.RUN_MODE);
-		actions[2] = new StartAction(shell, provider, ILaunchManager.PROFILE_MODE);
-		
-		// create the stop action
-		actions[3] = new StopAction(shell, provider);
-		
-		// create the publish actions
-		actions[4] = new PublishAction(shell, provider);
-		actions[5] = new PublishCleanAction(shell, provider);
-		
-		// create the open action
-		openAction = new OpenAction(provider);
-
-//		// create copy, paste, and delete actions
-		pasteAction = new PasteAction(shell, provider, clipboard);
-		copyAction = new CopyAction(provider, clipboard, pasteAction);
-		deleteAction = new DeleteAction(shell, provider);
-		renameAction = new RenameAction(shell, tableViewer, provider);
-		
-		// create the other actions
-		actionModifyModules = new ModuleSloshAction(shell, provider);
-		showInConsoleAction = new ShowInConsoleAction(provider);
-		showInDebugAction = new ShowInDebugAction(provider);
-		
-		// create the properties action
-		propertiesAction = new PropertiesAction(shell, provider);
-		monitorPropertiesAction = new PropertiesAction(shell, "org.eclipse.wst.server.ui.properties.monitor", provider);
-	}
-
-	public void fillActionBars(IActionBars actionBars) {
-		actionBars.setGlobalActionHandler("org.eclipse.wst.server.debug", actions[0]);
-		actionBars.setGlobalActionHandler("org.eclipse.wst.server.run", actions[1]);
-		actionBars.setGlobalActionHandler("org.eclipse.wst.server.stop", actions[3]);
-		actionBars.setGlobalActionHandler("org.eclipse.wst.server.publish", actions[4]);
-		actionBars.setGlobalActionHandler("org.eclipse.ui.navigator.Open", openAction);
-		actionBars.setGlobalActionHandler(ActionFactory.PROPERTIES.getId(), propertiesAction);
-		actionBars.updateActionBars();
-		actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(), copyAction);
-		actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(), pasteAction);
-		actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(), deleteAction);
-		actionBars.setGlobalActionHandler(ActionFactory.RENAME.getId(), renameAction);
-		
-		IContributionManager cm = actionBars.getToolBarManager();
-		cm.removeAll();
-
-		for (int i = 0; i < actions.length - 1; i++)
-			cm.add(actions[i]);
-	}
-	
-	private static void fillNewContextMenu(Shell shell, ISelection selection, IMenuManager menu) {
-		IAction newServerAction = new NewServerWizardAction();
-		newServerAction.setText(Messages.actionNewServer);
-		menu.add(newServerAction);
-	}
-
-	public void fillContextMenu(IMenuManager menu) {
-		ICommonViewerSite site = actionSite.getViewSite();
-		IStructuredSelection selection = null;
-		Shell shell = actionSite.getViewSite().getShell();
-		if( site instanceof ICommonViewerWorkbenchSite ) {
-			ICommonViewerWorkbenchSite wsSite = (ICommonViewerWorkbenchSite)site;
-			selection = (IStructuredSelection) wsSite.getSelectionProvider().getSelection();
-		}
-
-		IServer server = null;
-		IModule[] module = null;
-		if (selection != null && !selection.isEmpty()) {
-			Iterator iterator = selection.iterator();
-			Object obj = iterator.next();
-			if (obj instanceof IServer)
-				server = (IServer) obj;
-			if (obj instanceof ModuleServer) {
-				ModuleServer ms = (ModuleServer) obj;
-				server = ms.server;
-				module = ms.module;
-			}
-			if (iterator.hasNext()) {
-				server = null;
-				module = null;
-			}
-		}
-		
-		// new action
-		MenuManager newMenu = new MenuManager(Messages.actionNew);
-		fillNewContextMenu(null, selection, newMenu);
-		menu.add(newMenu);
-		
-		// open action
-		if (server != null && module == null) {
-			menu.add(openAction);
-			
-			String text = Messages.actionShowIn;
-			final IWorkbench workbench = PlatformUI.getWorkbench();
-			final IBindingService bindingService = (IBindingService) workbench
-					.getAdapter(IBindingService.class);
-			final TriggerSequence[] activeBindings = bindingService
-					.getActiveBindingsFor("org.eclipse.ui.navigate.showInQuickMenu");
-			if (activeBindings.length > 0) {
-				text += "\t" + activeBindings[0].format();
-			}
-			
-			MenuManager showInMenu = new MenuManager(text);
-			showInMenu.add(showInConsoleAction);
-			showInMenu.add(showInDebugAction);
-			//IActionBars actionBars = getViewSite().getActionBars();
-			//actionBars.setGlobalActionHandler("group.show", showInMenu);
-			menu.add(showInMenu);
-			menu.add(new Separator());
-		} else
-			menu.add(new Separator());
-		
-		if (server != null) {
-			if (module == null) {
-				menu.add(copyAction);
-				menu.add(pasteAction);
-				menu.add(deleteAction);
-				menu.add(renameAction);
-			} else if (module.length == 1)
-				menu.add(new RemoveModuleAction(shell, server, module[0]));
-			menu.add(new Separator());
-		}
-		
-		if (server != null && module == null) {
-			// server actions
-			for (int i = 0; i < actions.length; i++)
-				menu.add(actions[i]);
-			
-			menu.add(new Separator());
-			menu.add(actionModifyModules);
-			
-			// monitor
-			if (server.getServerType() != null) {
-				final MenuManager menuManager = new MenuManager(Messages.actionMonitor);
-				
-				final IServer server2 = server;
-				final Shell shell2 = shell;
-				menuManager.addMenuListener(new IMenuListener() {
-					public void menuAboutToShow(IMenuManager manager) {
-						menuManager.removeAll();
-						if (server2.getAdapter(ServerDelegate.class) != null) {
-							ServerPort[] ports = server2.getServerPorts(null);
-							if (ports != null) {
-								int size = ports.length;
-								for (int i = 0; i < size; i++) {
-									if (!ports[i].isAdvanced())
-										menuManager.add(new MonitorServerPortAction(shell2, server2, ports[i]));
-								}
-							}
-						}
-						
-						if (menuManager.isEmpty())
-							menuManager.add(noneAction);
-						
-						menuManager.add(new Separator());
-						menuManager.add(monitorPropertiesAction);
-					}
-				});
-				
-				// add an initial menu item so that the menu appears correctly
-				noneAction.setEnabled(false);
-				menuManager.add(noneAction);
-				menu.add(menuManager);
-			}
-		}
-		
-		if (server != null && module != null) {
-			menu.add(new Separator());
-			menu.add(new StartModuleAction(server, module));
-			menu.add(new StopModuleAction(server, module));			
-			menu.add(new RestartModuleAction(server, module));
-		}
-		
-		menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-		menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS+"-end"));
-		
-		if (server != null) {
-			menu.add(new Separator());
-			menu.add(propertiesAction);
-		}
-	}
-}
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/elcipse/wst/server/ui/internal/cnf/ServerContentProvider.java b/plugins/org.eclipse.wst.server.ui/serverui/org/elcipse/wst/server/ui/internal/cnf/ServerContentProvider.java
deleted file mode 100644
index 801888d..0000000
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/elcipse/wst/server/ui/internal/cnf/ServerContentProvider.java
+++ /dev/null
@@ -1,347 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.elcipse.wst.server.ui.internal.cnf;
-
-import java.util.*;
-
-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.viewers.*;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.wst.server.core.*;
-import org.eclipse.wst.server.core.internal.Server;
-import org.eclipse.wst.server.core.internal.UpdateServerJob;
-import org.eclipse.wst.server.core.util.PublishAdapter;
-import org.eclipse.wst.server.ui.internal.Messages;
-import org.eclipse.wst.server.ui.internal.Trace;
-import org.eclipse.wst.server.ui.internal.view.servers.ModuleServer;
-import org.eclipse.wst.server.ui.internal.viewers.BaseContentProvider;
-
-public class ServerContentProvider extends BaseContentProvider implements ITreeContentProvider {
-	public static Object INITIALIZING = new Object();
-	protected IServerLifecycleListener serverResourceListener;
-	protected IPublishListener publishListener;
-	protected IServerListener serverListener;
-
-	// servers that are currently publishing and starting
-	protected static Set<String> publishing = new HashSet<String>(4);
-	protected static Set<String> starting = new HashSet<String>(4);
-	protected boolean animationActive = false;
-	protected boolean stopAnimation = false;
-	protected boolean initialized = false;
-		
-	protected StructuredViewer viewer;
-	
-	public ServerContentProvider() {
-		addListeners();
-	}
-	
-	public Object[] getElements(Object element) {
-		if( !initialized ) {
-			deferInitialization();
-			return new Object[] {INITIALIZING};
-		}
-		
-		List<IServer> list = new ArrayList<IServer>();
-		IServer[] servers = ServerCore.getServers();
-		if (servers != null) {
-			int size = servers.length;
-			for (int i = 0; i < size; i++) {
-				if (!((Server)servers[i]).isPrivate())
-					list.add(servers[i]);
-			}
-		}
-		return list.toArray();
-	}
-
-	public Object[] getChildren(Object element) {
-		if (element instanceof ModuleServer) {
-			ModuleServer ms = (ModuleServer) element;
-			try {
-				IModule[] children = ms.server.getChildModules(ms.module, null);
-				int size = children.length;
-				ModuleServer[] ms2 = new ModuleServer[size];
-				for (int i = 0; i < size; i++) {
-					int size2 = ms.module.length;
-					IModule[] module = new IModule[size2 + 1];
-					System.arraycopy(ms.module, 0, module, 0, size2);
-					module[size2] = children[i];
-					ms2[i] = new ModuleServer(ms.server, module);
-				}
-				return ms2;
-			} catch (Exception e) {
-				return null;
-			}
-		}
-		
-		IServer server = (IServer) element;
-		IModule[] modules = server.getModules(); 
-		int size = modules.length;
-		ModuleServer[] ms = new ModuleServer[size];
-		for (int i = 0; i < size; i++) {
-			ms[i] = new ModuleServer(server, new IModule[] { modules[i] });
-		}
-		return ms;
-	}
-
-	public Object getParent(Object element) {
-		if (element instanceof ModuleServer) {
-			ModuleServer ms = (ModuleServer) element;
-			return ms.server;
-		}
-		return null;
-	}
-
-	public boolean hasChildren(Object element) {
-		if (element instanceof ModuleServer) {
-			// Check if the module server has child modules.
-			ModuleServer curModuleServer = (ModuleServer)element;
-			IServer curServer = curModuleServer.server;
-			IModule[] curModule = curModuleServer.module;
-			if (curServer != null &&  curModule != null) {
-				IModule[] curChildModule = curServer.getChildModules(curModule, null);
-				if (curChildModule != null && curChildModule.length > 0)
-					return true;
-				
-				return false;
-			}
-			
-			return false;
-		}
-		if( element instanceof IServer ) {
-			return ((IServer) element).getModules().length > 0;
-		}
-		return false;
-	}
-	
-	public void inputChanged(Viewer aViewer, Object oldInput, Object newInput) {
-		viewer = (StructuredViewer) aViewer;
-	}
-
-	public void dispose() {
-		ServerCore.removeServerLifecycleListener(serverResourceListener);
-		
-		// remove listeners from servers
-		IServer[] servers = ServerCore.getServers();
-		if (servers != null) {
-			int size = servers.length;
-			for (int i = 0; i < size; i++) {
-				servers[i].removeServerListener(serverListener);
-				((Server) servers[i]).removePublishListener(publishListener);
-			}
-		}
-	}
-	
-	// Listeners and refreshing the viewer
-	protected void addListeners() {
-		serverResourceListener = new IServerLifecycleListener() {
-			public void serverAdded(IServer server) {
-				refreshServer(null);
-				server.addServerListener(serverListener);
-				((Server) server).addPublishListener(publishListener);
-			}
-			public void serverChanged(IServer server) {
-				refreshServer(server);
-			}
-			public void serverRemoved(IServer server) {
-				refreshServer(null);
-				server.removeServerListener(serverListener);
-				((Server) server).removePublishListener(publishListener);
-			}
-		};
-		ServerCore.addServerLifecycleListener(serverResourceListener);
-		
-		publishListener = new PublishAdapter() {
-			public void publishStarted(IServer server) {
-				handlePublishChange(server, true);
-			}
-			
-			public void publishFinished(IServer server, IStatus status) {
-				handlePublishChange(server, false);
-			}
-		};
-		
-		serverListener = new IServerListener() {
-			public void serverChanged(ServerEvent event) {
-				if (event == null)
-					return;
-				
-				int eventKind = event.getKind();
-				IServer server = event.getServer();
-				if ((eventKind & ServerEvent.SERVER_CHANGE) != 0) {
-					// server change event
-					if ((eventKind & ServerEvent.STATE_CHANGE) != 0) {
-						refreshServer(server, true);
-						int state = event.getState();
-						String id = server.getId();
-						animate(id, state);
-					} else
-						refreshServer(server);
-				} else if ((eventKind & ServerEvent.MODULE_CHANGE) != 0) {
-					// module change event
-					if ((eventKind & ServerEvent.STATE_CHANGE) != 0 || (eventKind & ServerEvent.PUBLISH_STATE_CHANGE) != 0) {
-						refreshServer(server);
-					}
-				}
-			}
-		};
-		
-		// add listeners to servers
-		IServer[] servers = ServerCore.getServers();
-		if (servers != null) {
-			int size = servers.length;
-			for (int i = 0; i < size; i++) {
-				servers[i].addServerListener(serverListener);
-				((Server) servers[i]).addPublishListener(publishListener);
-			}
-		}
-	}
-
-	protected void animate(String serverId, int state){
-		if (state == IServer.STATE_STARTING || state == IServer.STATE_STOPPING) {
-			boolean startThread = false;
-			synchronized (starting) {
-				if (!starting.contains(serverId)) {
-					if (starting.isEmpty())
-						startThread = true;
-					starting.add(serverId);
-				}
-			}
-			if (startThread){
-				startThread();
-			}
-		} else {
-			boolean stopThread = false;
-			synchronized (starting) {
-				if (starting.contains(serverId)) {
-					starting.remove(serverId);
-					if (starting.isEmpty())
-						stopThread = true;
-				}
-			}
-			if (stopThread)
-				stopThread();
-		}
-	}
-	
-	protected void deferInitialization() {
-		Job job = new Job(Messages.jobInitializingServersView) {
-			public IStatus run(IProgressMonitor monitor) {
-				IServer[] servers = ServerCore.getServers();
-				int size = servers.length;
-				for (int i = 0; i < size; i++) {
-					((Server)servers[i]).getAllModules().iterator();
-				}
-				
-				for (int i = 0; i < size; i++) {
-					IServer server = servers[i];
-					if (server.getServerType() != null && server.getServerState() == IServer.STATE_UNKNOWN) {
-						UpdateServerJob job2 = new UpdateServerJob(server);
-						job2.schedule();
-					}
-				}
-				initialized = true;
-				refreshServer(null);
-				return Status.OK_STATUS;
-			}
-		};
-		
-		job.setSystem(true);
-		job.setPriority(Job.SHORT);
-		job.schedule();
-	}
-	
-	protected void refreshServer(final IServer server) {
-		refreshServer(server, false);
-	}
-	
-	protected void refreshServer(final IServer server, final boolean resetSelection) {
-		Display.getDefault().asyncExec(new Runnable() {
-			public void run() {
-				try {
-					if( viewer != null && !viewer.getControl().isDisposed()) {
-						// This will trigger some animation
-						viewer.refresh(server);
-						if( resetSelection ) {
-							ISelection sel = viewer.getSelection();
-							viewer.setSelection(sel);
-						}
-						//TODO: Angel says: This doesn't seem to be needed: ServerDecorator.getDefault().redecorate(server);
-					}
-				} catch (Exception e) {
-					// ignore
-				}
-			}
-		});
-	}
-	
-	protected void handlePublishChange(IServer server, boolean isPublishing) {
-		String serverId = server.getId();
-		if (isPublishing)
-			publishing.add(serverId);
-		else
-			publishing.remove(serverId);
-	
-		refreshServer(server);
-	}
-
-	
-	/**
-	 * Start the animation thread
-	 */
-	protected void startThread() {
-		if (animationActive)
-			return;
-		
-		stopAnimation = false;
-		
-		final Display display = viewer == null ? Display.getDefault() : viewer.getControl().getDisplay();
-		final int SLEEP = 200;
-		final Runnable[] animator = new Runnable[1];
-		animator[0] = new Runnable() {
-			public void run() {
-				if (!stopAnimation) {
-					try {
-						int size = 0;
-						String[] servers;
-						synchronized (starting) {
-							size = starting.size();
-							servers = new String[size];
-							starting.toArray(servers);
-							
-						}
-						
-						for (int i = 0; i < size; i++) {
-							IServer server = ServerCore.findServer(servers[i]);
-							if (server != null ) {
-								ServerDecorator.animate();
-								viewer.update(server, new String[]{"ICON"});
-							}
-						}
-					} catch (Exception e) {
-						Trace.trace(Trace.FINEST, "Error in Servers view animation", e);
-					}
-					display.timerExec(SLEEP, animator[0]);
-				}
-			}
-		};
-		Display.getDefault().asyncExec(new Runnable() {
-			public void run() {
-				display.timerExec(SLEEP, animator[0]);
-			}
-		});
-	}
-
-	protected void stopThread() {
-		stopAnimation = true;
-	}}
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/elcipse/wst/server/ui/internal/cnf/ServerDecorator.java b/plugins/org.eclipse.wst.server.ui/serverui/org/elcipse/wst/server/ui/internal/cnf/ServerDecorator.java
deleted file mode 100644
index f6894dd..0000000
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/elcipse/wst/server/ui/internal/cnf/ServerDecorator.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.elcipse.wst.server.ui.internal.cnf;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.IServerType;
-import org.eclipse.wst.server.core.internal.Server;
-import org.eclipse.wst.server.ui.ServerUICore;
-import org.eclipse.wst.server.ui.internal.ImageResource;
-import org.eclipse.wst.server.ui.internal.Messages;
-import org.eclipse.wst.server.ui.internal.ServerUIPlugin;
-import org.eclipse.wst.server.ui.internal.provisional.UIDecoratorManager;
-import org.eclipse.wst.server.ui.internal.view.servers.ModuleServer;
-
-public class ServerDecorator extends LabelProvider implements ILightweightLabelDecorator {
-
-	public static final String[] syncState = new String[] {
-		Messages.viewSyncOkay,
-		Messages.viewSyncRestart,
-		Messages.viewSyncPublish,
-		Messages.viewSyncRestartPublish,
-		Messages.viewSyncPublishing};
-
-	public static final String[] syncStateUnmanaged = new String[] {
-		Messages.viewSyncOkay2,
-		Messages.viewSyncRestart2,
-		Messages.viewSyncPublish2,
-		Messages.viewSyncRestartPublish2,
-		Messages.viewSyncPublishing2};
-
-	public static final String[] modulePublishState = new String[] {
-		"",
-		Messages.viewSyncOkay,
-		Messages.viewSyncPublish,
-		Messages.viewSyncPublish};
-
-	private static ServerDecorator instance;
-	public static ServerDecorator getDefault() {
-		return instance;
-	}
-
-	private static int count = 0;
-	public static void animate() {
-		count = (count + 1)%3;
-	}
-	public static int getCount() {
-		return count;
-	}
-	
-	public ServerDecorator() {
-		instance = this;
-	}
-
-	public void decorate(Object element, IDecoration decoration) {
-		if( element instanceof IServer ) {
-			IServer server = (IServer)element;
-			String state = getServerStateLabel(server );
-			String status = getServerStatusLabel(server );
-			
-			decoration.addSuffix(combine(state, status));
-		} else if( element instanceof ModuleServer ) {
-			ModuleServer module = (ModuleServer)element;
-			String state = getModuleStateText(module);
-			String status = getModuleStatusText(module);
-			
-			decoration.addSuffix(combine(state, status));
-		}
-	}
-	
-	public void redecorate(IServer server) {
-		fireLabelProviderChanged(new LabelProviderChangedEvent(this));
-	}
-	
-	/*
-	 * Utility methods
-	 */
-	public static Image getServerImage(IServer server) {
-		return server == null ? null : 
-			server.getServerType() == null ? null : 
-				ImageResource.getImage(server.getServerType().getId());
-	}
-	
-	public static String getServerStateLabel(IServer server) {
-		return server == null ? null : 
-			server.getServerType() == null ? null : 
-				getStateLabel(server.getServerType(), server.getServerState(), server.getMode());
-	}
-
-	public static String getStateLabel(IServerType serverType, int state, String mode) {
-		return serverType == null ? null : 
-			UIDecoratorManager.getCNFUIDecorator(serverType).getStateLabel(state, mode, count);
-	}
-	
-	public static String getServerStatusLabel(IServer server) {
-		IStatus status = ((Server) server).getServerStatus();
-		if (status != null)
-			return status.getMessage();
-		
-		if (server.getServerType() == null)
-			return "";
-
-		if (server.getServerState() == IServer.STATE_UNKNOWN)
-			return "";
-		
-		String serverId = server.getId();
-		if (ServerContentProvider.publishing.contains(serverId))
-			return ServerDecorator.syncState[4];
-		
-		// republish
-		int i = 0;
-		if (server.shouldPublish()) {
-			if (((Server)server).isPublishUnknown())
-				return "";
-			i += 2;
-		}
-		
-		if (server.shouldRestart())
-			i = 1;
-		
-		return syncState[i];
-	}
-
-	public static ImageDescriptor getServerStateImage(IServer server) {
-		return server == null ? null : 
-			getStateImage(server.getServerType(), server.getServerState(), server.getMode());
-	}
-
-	public static ImageDescriptor getStateImage(IServerType serverType, int state, String mode) {
-		return serverType == null ? null : 
-			UIDecoratorManager.getCNFUIDecorator(serverType).getStateImageDescriptor(state, mode, getCount());
-	}
-	
-	public static String getModuleText(ModuleServer ms ) { 
-		if (ms == null || ms.module == null)
-			return "";
-		int size = ms.module.length;
-		return ms.module[size - 1].getName();
-	}
-	
-	public static Image getModuleImage(ModuleServer ms) {
-		if( ms != null ) {
-			ILabelProvider labelProvider = ServerUICore.getLabelProvider();
-			Image image = labelProvider.getImage(ms.module[ms.module.length - 1]);
-			labelProvider.dispose();
-			return image;
-		} 
-		return null;
-	}
-	
-	public static String getModuleStateText(ModuleServer ms) {
-		return "";
-	}
-	
-	public static String getModuleStatusText(ModuleServer ms) {
-		if( ms != null && ms.server != null && ms.module != null ) {
-			IStatus status = ((Server) ms.server).getModuleStatus(ms.module);
-			if (status != null)
-				return status.getMessage();
-			
-			return modulePublishState[ms.server.getModulePublishState(ms.module)];
-		}
-		return "";
-	}
-	
-	public static Image getModuleStatusImage(ModuleServer ms) {
-		IStatus status = ((Server) ms.server).getModuleStatus(ms.module);
-		if (status != null) {
-			ISharedImages sharedImages = ServerUIPlugin.getInstance().getWorkbench().getSharedImages();
-			if (status.getSeverity() == IStatus.ERROR)
-				return sharedImages.getImage(ISharedImages.IMG_OBJS_ERROR_TSK);
-			else if (status.getSeverity() == IStatus.WARNING)
-				return sharedImages.getImage(ISharedImages.IMG_OBJS_WARN_TSK);
-			else if (status.getSeverity() == IStatus.INFO)
-				return sharedImages.getImage(ISharedImages.IMG_OBJS_INFO_TSK);
-		}
-		return null;
-	}
-	
-	protected String combine(String state, String status) {
-		if(isEmpty(state) && isEmpty(status))
-			return "";
-		if( isEmpty(state))
-			return "  [" + status + "]";
-		if( isEmpty(status))
-			return "  [" + state + "]";
-		return "  [" + state + ", " + status + "]";
-	}
-	
-	protected boolean isEmpty(String s) {
-		return (s == null || "".equals(s));
-	}
-}
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/elcipse/wst/server/ui/internal/cnf/ServerLabelProvider.java b/plugins/org.eclipse.wst.server.ui/serverui/org/elcipse/wst/server/ui/internal/cnf/ServerLabelProvider.java
deleted file mode 100644
index ed2295b..0000000
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/elcipse/wst/server/ui/internal/cnf/ServerLabelProvider.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.elcipse.wst.server.ui.internal.cnf;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.ui.ServerUICore;
-import org.eclipse.wst.server.ui.internal.ImageResource;
-import org.eclipse.wst.server.ui.internal.Messages;
-import org.eclipse.wst.server.ui.internal.view.servers.ModuleServer;
-/**
- * Server table label provider.
- */
-public class ServerLabelProvider extends LabelProvider {
-
-	/**
-	 * ServerTableLabelProvider constructor comment.
-	 */
-	public ServerLabelProvider() {
-		super();
-	}
-
-	public String getText(Object element) {
-		if (element instanceof ModuleServer) {
-			ModuleServer ms = (ModuleServer) element;
-			if (ms.module == null)
-				return "";
-			int size = ms.module.length;
-			String name = ms.module[size - 1].getName();
-			return name;
-		}
-		
-		if( element instanceof IServer ) {
-			IServer server = (IServer) element;
-			return notNull(server.getName());
-		} 
-		
-		if( element == ServerContentProvider.INITIALIZING)
-			return Messages.viewInitializing;
-
-		return "-";
-	}
-	public Image getImage(Object element) {
-		Image image = null;
-		if (element instanceof ModuleServer) {
-			ModuleServer ms = (ModuleServer) element;
-			ILabelProvider labelProvider = ServerUICore.getLabelProvider();
-			image = labelProvider.getImage(ms.module[ms.module.length - 1]);
-			labelProvider.dispose();
-		} else if( element instanceof IServer ) {
-			IServer server = (IServer) element;
-			if (server.getServerType() != null) {
-				image = ImageResource.getImage(server.getServerType().getId());
-				// TODO Angel says: Need to discuss about it
-				// Because we are now grabbing the ServerState the type will not show. It might be best to create a new icon for the state
-				ImageDescriptor imgDescriptor = ServerDecorator.getServerStateImage(server);
-				if (image != null){
-					image = imgDescriptor.createImage();
-				}
-			}
-		}
-		return image;
-	}
-
-	protected String notNull(String s) {
-		if (s == null)
-			return "";
-		return s;
-	}
-
-	public boolean isLabelProperty(Object element, String property) {
-		if (element instanceof IServer){
-			if (property.equalsIgnoreCase("ICON")){
-				return true;
-			}
-		}
-		return true;
-	}
-}
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/elcipse/wst/server/ui/internal/cnf/ServersView2.java b/plugins/org.eclipse.wst.server.ui/serverui/org/elcipse/wst/server/ui/internal/cnf/ServersView2.java
deleted file mode 100644
index 756c187..0000000
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/elcipse/wst/server/ui/internal/cnf/ServersView2.java
+++ /dev/null
@@ -1,428 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 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.elcipse.wst.server.ui.internal.cnf;
-
-import java.util.Iterator;
-
-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.debug.core.ILaunchManager;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.bindings.TriggerSequence;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.ActionGroup;
-import org.eclipse.ui.keys.IBindingService;
-import org.eclipse.ui.navigator.CommonNavigator;
-import org.eclipse.ui.navigator.CommonViewer;
-import org.eclipse.wst.server.core.*;
-import org.eclipse.wst.server.core.internal.Server;
-import org.eclipse.wst.server.core.internal.UpdateServerJob;
-import org.eclipse.wst.server.core.model.ServerDelegate;
-import org.eclipse.wst.server.ui.internal.*;
-import org.eclipse.wst.server.ui.internal.actions.NewServerWizardAction;
-import org.eclipse.wst.server.ui.internal.view.servers.*;
-/**
- * A view of servers, their modules, and status.
- */
-public class ServersView2 extends CommonNavigator {
-	
-	protected CommonViewer tableViewer;
-	
-	protected Clipboard clipboard;
-	
-	protected Action noneAction = new Action(Messages.dialogMonitorNone) {
-		// dummy action
-	};
-	
-	// actions on a server
-	protected Action[] actions;
-	protected Action actionModifyModules;
-	protected Action openAction, showInConsoleAction, showInDebugAction, propertiesAction, monitorPropertiesAction;
-	protected Action copyAction, pasteAction, deleteAction, renameAction;
-
-	/**
-	 * ServersView constructor comment.
-	 */
-	public ServersView2() {
-		super();
-	}
-
-	@Override
-	public void createPartControl(Composite parent) {
-		clipboard = new Clipboard(Display.getCurrent());
-		
-		super.createPartControl(parent);
-		
-		deferInitialization();
-	}
-	
-	@Override
-	protected void updateTitle() {
-		// nothing to do
-	}
-
-	private void deferInitialization() {
-		TreeItem item = new TreeItem(getCommonViewer().getTree(), SWT.NONE);
-		item.setText(Messages.viewInitializing);
-			
-		//initializeActions(getCommonViewer());
-		
-		Job job = new Job(Messages.jobInitializingServersView) {
-			public IStatus run(IProgressMonitor monitor) {
-				IServer[] servers = ServerCore.getServers();
-				int size = servers.length;
-				for (int i = 0; i < size; i++) {
-					((Server)servers[i]).getAllModules().iterator();
-				}
-				
-
-				Display.getDefault().asyncExec(new Runnable() {
-					public void run() {
-						try {
-							deferredInitialize();
-						} catch (Exception e) {
-							// ignore - view has already been closed
-						}
-					}
-				});
-				return Status.OK_STATUS;
-			}
-		};
-		
-		job.setSystem(true);
-		job.setPriority(Job.SHORT);
-		job.schedule();
-	}
-	
-	protected void deferredInitialize() {
-		// TODO Angel says: What to do here? 
-		//tableViewer.initialize();				
-		
-		// TODO Angel says: is this the best place for this? 
-		tableViewer = getCommonViewer();
-		
-		MenuManager menuManager = new MenuManager("#PopupMenu");
-		menuManager.setRemoveAllWhenShown(true);
-		final Shell shell = tableViewer.getTree().getShell();
-		menuManager.addMenuListener(new IMenuListener() {
-			public void menuAboutToShow(IMenuManager mgr) {
-				fillContextMenu(shell, mgr);
-			}
-		});
-		Menu menu = menuManager.createContextMenu(tableViewer.getTree());
-		tableViewer.getTree().setMenu(menu);
-		getSite().registerContextMenu(menuManager, tableViewer);
-		getSite().setSelectionProvider(tableViewer);
-		
-		//TODO Angel: What to do here?
-		//initDragAndDrop();
-		
-		// init the tooltip
-		ServerToolTip toolTip = new ServerToolTip(tableViewer.getTree());
-		toolTip.setShift(new Point(10, 3));
-		toolTip.setPopupDelay(400); // in ms
-		toolTip.setHideOnMouseDown(true);
-		toolTip.activate();
-		
-		if (tableViewer.getTree().getItemCount() > 0) {
-			Object obj = tableViewer.getTree().getItem(0).getData();
-			tableViewer.setSelection(new StructuredSelection(obj));
-		}
-		
-		Thread thread = new Thread() {
-			public void run() {
-				try {
-					Thread.sleep(5000);
-				} catch (Exception e) {
-					// ignore
-				}
-				IServer[] servers = ServerCore.getServers();
-				int size = servers.length;
-				for (int i = 0; i < size; i++) {
-					IServer server = servers[i];
-					if (server.getServerType() != null && server.getServerState() == IServer.STATE_UNKNOWN) {
-						UpdateServerJob job = new UpdateServerJob(server);
-						job.schedule();
-					}
-				}
-			}
-		};
-		thread.setDaemon(true);
-		thread.setPriority(Thread.MIN_PRIORITY + 1);
-		thread.start();
-	}
-	
-	
-	protected void fillContextMenu(Shell shell, IMenuManager menu) {
-		// get selection but avoid no selection or multiple selection
-		IServer server = null;
-		IModule[] module = null;
-		IStructuredSelection selection = (IStructuredSelection) tableViewer.getSelection();
-		if (!selection.isEmpty()) {
-			Iterator iterator = selection.iterator();
-			Object obj = iterator.next();
-			if (obj instanceof IServer)
-				server = (IServer) obj;
-			if (obj instanceof ModuleServer) {
-				ModuleServer ms = (ModuleServer) obj;
-				server = ms.server;
-				module = ms.module;
-			}
-			if (iterator.hasNext()) {
-				server = null;
-				module = null;
-			}
-		}
-		
-		// new action
-		MenuManager newMenu = new MenuManager(Messages.actionNew);
-		fillNewContextMenu(null, selection, newMenu);
-		menu.add(newMenu);
-		
-		// open action
-		if (server != null && module == null) {
-			menu.add(openAction);
-			
-			String text = Messages.actionShowIn;
-			final IWorkbench workbench = PlatformUI.getWorkbench();
-			final IBindingService bindingService = (IBindingService) workbench
-					.getAdapter(IBindingService.class);
-			final TriggerSequence[] activeBindings = bindingService
-					.getActiveBindingsFor("org.eclipse.ui.navigate.showInQuickMenu");
-			if (activeBindings.length > 0) {
-				text += "\t" + activeBindings[0].format();
-			}
-			
-			MenuManager showInMenu = new MenuManager(text);
-			showInMenu.add(showInConsoleAction);
-			showInMenu.add(showInDebugAction);
-			
-			menu.add(showInMenu);
-			menu.add(new Separator());
-		} else
-			menu.add(new Separator());
-		
-		if (server != null) {
-			if (module == null) {
-				menu.add(copyAction);
-				menu.add(pasteAction);
-				menu.add(deleteAction);
-				menu.add(renameAction);
-			} else if (module.length == 1)
-				menu.add(new RemoveModuleAction(shell, server, module[0]));
-			menu.add(new Separator());
-		}
-		
-		if (server != null && module == null) {
-			// server actions
-			for (int i = 0; i < actions.length; i++)
-				menu.add(actions[i]);
-			
-			menu.add(new Separator());
-			menu.add(actionModifyModules);
-			
-			// monitor
-			if (server.getServerType() != null) {
-				final MenuManager menuManager = new MenuManager(Messages.actionMonitor);
-				
-				final IServer server2 = server;
-				final Shell shell2 = shell;
-				menuManager.addMenuListener(new IMenuListener() {
-					public void menuAboutToShow(IMenuManager manager) {
-						menuManager.removeAll();
-						if (server2.getAdapter(ServerDelegate.class) != null) {
-							ServerPort[] ports = server2.getServerPorts(null);
-							if (ports != null) {
-								int size = ports.length;
-								for (int i = 0; i < size; i++) {
-									if (!ports[i].isAdvanced())
-										menuManager.add(new MonitorServerPortAction(shell2, server2, ports[i]));
-								}
-							}
-						}
-						
-						if (menuManager.isEmpty())
-							menuManager.add(noneAction);
-						
-						menuManager.add(new Separator());
-						menuManager.add(monitorPropertiesAction);
-					}
-				});
-				
-				// add an initial menu item so that the menu appears correctly
-				noneAction.setEnabled(false);
-				menuManager.add(noneAction);
-				menu.add(menuManager);
-			}
-		}
-		
-		if (server != null && module != null) {
-			menu.add(new Separator());
-			menu.add(new StartModuleAction(server, module));
-			menu.add(new StopModuleAction(server, module));			
-			menu.add(new RestartModuleAction(server, module));
-		}
-		
-		menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-		menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS+"-end"));
-		
-		if (server != null) {
-			menu.add(new Separator());
-			menu.add(propertiesAction);
-		}
-	}
-
-	
-	private static void fillNewContextMenu(Shell shell, ISelection selection, IMenuManager menu) {
-		IAction newServerAction = new NewServerWizardAction();
-		newServerAction.setText(Messages.actionNewServer);
-		menu.add(newServerAction);
-	}
-	
-	
-//	/**
-//	 * Initialize actions
-//	 * 
-//	 * @param provider a selection provider
-//	 */
-//	public void initializeActions(ISelectionProvider provider) {
-//		Shell shell = getSite().getShell();
-//		IActionBars actionBars = getViewSite().getActionBars();
-//		
-//		actions = new Action[6];
-//		// create the start actions
-//		actions[0] = new StartAction(shell, provider, ILaunchManager.DEBUG_MODE);
-//		actionBars.setGlobalActionHandler("org.eclipse.wst.server.debug", actions[0]);
-//		actions[1] = new StartAction(shell, provider, ILaunchManager.RUN_MODE);
-//		actionBars.setGlobalActionHandler("org.eclipse.wst.server.run", actions[1]);
-//		actions[2] = new StartAction(shell, provider, ILaunchManager.PROFILE_MODE);
-//		
-//		// create the stop action
-//		actions[3] = new StopAction(shell, provider);
-//		actionBars.setGlobalActionHandler("org.eclipse.wst.server.stop", actions[3]);
-//		
-//		// create the publish actions
-//		actions[4] = new PublishAction(shell, provider);
-//		actionBars.setGlobalActionHandler("org.eclipse.wst.server.publish", actions[4]);
-//		actions[5] = new PublishCleanAction(shell, provider);
-//		
-//		// create the open action
-//		openAction = new OpenAction(provider);
-//		actionBars.setGlobalActionHandler("org.eclipse.ui.navigator.Open", openAction);
-//		
-//		// create copy, paste, and delete actions
-//		pasteAction = new PasteAction(shell, provider,  clipboard);
-//		copyAction = new CopyAction(provider, clipboard, pasteAction);
-//		deleteAction = new DeleteAction(shell, provider);
-//		renameAction = new RenameAction(shell, getCommonViewer(), provider);
-//		actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(), copyAction);
-//		actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(), pasteAction);
-//		actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(), deleteAction);
-//		actionBars.setGlobalActionHandler(ActionFactory.RENAME.getId(), renameAction);
-//		
-//		// create the other actions
-//		actionModifyModules = new ModuleSloshAction(shell, provider);
-//		showInConsoleAction = new ShowInConsoleAction(provider);
-//		showInDebugAction = new ShowInDebugAction(provider);
-//		
-//		// create the properties action
-//		propertiesAction = new PropertiesAction(shell, provider);
-//		actionBars.setGlobalActionHandler(ActionFactory.PROPERTIES.getId(), propertiesAction);
-//		monitorPropertiesAction = new PropertiesAction(shell, "org.eclipse.wst.server.ui.properties.monitor", provider);
-//		
-//		// add toolbar buttons
-//		IContributionManager cm = actionBars.getToolBarManager();
-//		for (int i = 0; i < actions.length - 1; i++)
-//			cm.add(actions[i]);
-//		
-//		cm.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-//	}
-	
-	@Override
-	protected ActionGroup createCommonActionGroup() {
-		CommonViewer provider = getCommonViewer();
-		Shell shell = getSite().getShell();
-		IActionBars actionBars = getViewSite().getActionBars();
-		
-		actions = new Action[6];
-		// create the start actions
-		actions[0] = new StartAction(shell, provider, ILaunchManager.DEBUG_MODE);
-		actionBars.setGlobalActionHandler("org.eclipse.wst.server.debug", actions[0]);
-		actions[1] = new StartAction(shell, provider, ILaunchManager.RUN_MODE);
-		actionBars.setGlobalActionHandler("org.eclipse.wst.server.run", actions[1]);
-		actions[2] = new StartAction(shell, provider, ILaunchManager.PROFILE_MODE);
-		
-		// create the stop action
-		actions[3] = new StopAction(shell, provider);
-		actionBars.setGlobalActionHandler("org.eclipse.wst.server.stop", actions[3]);
-		
-		// create the publish actions
-		actions[4] = new PublishAction(shell, provider);
-		actionBars.setGlobalActionHandler("org.eclipse.wst.server.publish", actions[4]);
-		actions[5] = new PublishCleanAction(shell, provider);
-		
-		// create the open action
-		openAction = new OpenAction(provider);
-		actionBars.setGlobalActionHandler("org.eclipse.ui.navigator.Open", openAction);
-		
-		// create copy, paste, and delete actions
-		pasteAction = new PasteAction(shell, provider,  clipboard);
-		copyAction = new CopyAction(provider, clipboard, pasteAction);
-		deleteAction = new DeleteAction(shell, provider);
-		renameAction = new RenameAction(shell, getCommonViewer(), provider);
-		actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(), copyAction);
-		actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(), pasteAction);
-		actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(), deleteAction);
-		actionBars.setGlobalActionHandler(ActionFactory.RENAME.getId(), renameAction);
-		
-		// create the other actions
-		actionModifyModules = new ModuleSloshAction(shell, provider);
-		showInConsoleAction = new ShowInConsoleAction(provider);
-		showInDebugAction = new ShowInDebugAction(provider);
-		
-		// create the properties action
-		propertiesAction = new PropertiesAction(shell, provider);
-		actionBars.setGlobalActionHandler(ActionFactory.PROPERTIES.getId(), propertiesAction);
-		monitorPropertiesAction = new PropertiesAction(shell, "org.eclipse.wst.server.ui.properties.monitor", provider);
-		
-		// add toolbar buttons
-		IContributionManager cm = actionBars.getToolBarManager();
-		for (int i = 0; i < actions.length - 1; i++)
-			cm.add(actions[i]);
-		
-		cm.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-		
-		return super.createCommonActionGroup();
-	}
-
-	@Override
-	protected void handleDoubleClick(DoubleClickEvent anEvent) {
-		try {
-			IStructuredSelection sel = (IStructuredSelection) anEvent.getSelection();
-			Object data = sel.getFirstElement();
-			if (!(data instanceof IServer))
-				return;
-			IServer server = (IServer) data;
-			ServerUIPlugin.editServer(server);
-		} catch (Exception e) {
-			Trace.trace(Trace.SEVERE, "Could not open server", e);
-		}
-	}
-	
-}