This commit was manufactured by cvs2svn to create tag 'R1_5_5'.
diff --git a/features/org.eclipse.jst.server_adapters.feature/feature.xml b/features/org.eclipse.jst.server_adapters.feature/feature.xml
index 6ea77cb..59f8f87 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="1.6.0.qualifier"
+      version="1.5.3.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.jst.server_adapters.feature/sourceTemplateFeature/feature.xml b/features/org.eclipse.jst.server_adapters.feature/sourceTemplateFeature/feature.xml
index f131257..d12a1e9 100644
--- a/features/org.eclipse.jst.server_adapters.feature/sourceTemplateFeature/feature.xml
+++ b/features/org.eclipse.jst.server_adapters.feature/sourceTemplateFeature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.server_adapters.feature.source"
       label="%featureName"
-      version="1.6.0.qualifier"
+      version="1.5.3.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 51e58c1..be2271d 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="1.6.0.qualifier"
+      version="1.5.4.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.jst.server_core.feature/sourceTemplateFeature/feature.xml b/features/org.eclipse.jst.server_core.feature/sourceTemplateFeature/feature.xml
index c9e4a32..bae2b4f 100644
--- a/features/org.eclipse.jst.server_core.feature/sourceTemplateFeature/feature.xml
+++ b/features/org.eclipse.jst.server_core.feature/sourceTemplateFeature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.server_core.feature.source"
       label="%featureName"
-      version="1.6.0.qualifier"
+      version="1.5.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 11cbe11..7dd5d67 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="1.6.0.qualifier"
+      version="1.5.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 c2db81b..234e27b 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="1.6.0.qualifier"
+      version="1.5.3.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 54f68c2..29bfded 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="1.6.0.qualifier"
+      version="1.5.4.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.jst.server_ui.feature/sourceTemplateFeature/feature.xml b/features/org.eclipse.jst.server_ui.feature/sourceTemplateFeature/feature.xml
index 6234abd..078d263 100644
--- a/features/org.eclipse.jst.server_ui.feature/sourceTemplateFeature/feature.xml
+++ b/features/org.eclipse.jst.server_ui.feature/sourceTemplateFeature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.server_ui.feature.source"
       label="%featureName"
-      version="1.6.0.qualifier"
+      version="1.5.4.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.jst.server_userdoc.feature/feature.xml b/features/org.eclipse.jst.server_userdoc.feature/feature.xml
index 1b52d4e..8d7c589 100644
--- a/features/org.eclipse.jst.server_userdoc.feature/feature.xml
+++ b/features/org.eclipse.jst.server_userdoc.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.server_userdoc.feature"
       label="%featureName"
-      version="1.6.0.qualifier"
+      version="1.5.3.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 7fd6136..3d0798a 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="1.6.0.qualifier"
+      version="1.5.5.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.wst.server_core.feature/sourceTemplateFeature/feature.xml b/features/org.eclipse.wst.server_core.feature/sourceTemplateFeature/feature.xml
index cd2ab76..13b160e 100644
--- a/features/org.eclipse.wst.server_core.feature/sourceTemplateFeature/feature.xml
+++ b/features/org.eclipse.wst.server_core.feature/sourceTemplateFeature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.wst.server_core.feature.source"
       label="%featureName"
-      version="1.6.0.qualifier"
+      version="1.5.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 d9eed52..e8709ef 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="1.6.0.qualifier"
+      version="1.5.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 916ab2f..7cfabdd 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="1.6.0.qualifier"
+      version="1.5.3.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 ac4828b..29ce7ce 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="1.6.0.qualifier"
+      version="1.5.5.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.wst.server_ui.feature/sourceTemplateFeature/feature.xml b/features/org.eclipse.wst.server_ui.feature/sourceTemplateFeature/feature.xml
index 08b0a89..291a5d9 100644
--- a/features/org.eclipse.wst.server_ui.feature/sourceTemplateFeature/feature.xml
+++ b/features/org.eclipse.wst.server_ui.feature/sourceTemplateFeature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.wst.server_ui.feature.source"
       label="%featureName"
-      version="1.6.0.qualifier"
+      version="1.5.5.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.wst.server_userdoc.feature/feature.xml b/features/org.eclipse.wst.server_userdoc.feature/feature.xml
index 62b47c9..7d91eb7 100644
--- a/features/org.eclipse.wst.server_userdoc.feature/feature.xml
+++ b/features/org.eclipse.wst.server_userdoc.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.wst.server_userdoc.feature"
       label="%featureName"
-      version="1.6.0.qualifier"
+      version="1.5.3.qualifier"
       provider-name="%providerName">
 
    <description>
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 83aef14..1d173ca 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.0.104.qualifier
+Bundle-Version: 1.0.106.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/sjavacore/org/eclipse/jst/server/core/RuntimeClasspathProviderDelegate.java b/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/RuntimeClasspathProviderDelegate.java
index 474db92..eb9bfca 100644
--- a/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/RuntimeClasspathProviderDelegate.java
+++ b/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/RuntimeClasspathProviderDelegate.java
@@ -19,13 +19,18 @@
 
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.jdt.core.IAccessRule;
 import org.eclipse.jdt.core.IClasspathAttribute;
+import org.eclipse.jdt.core.IClasspathContainer;
 import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.IJavaProject;
 import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
 import org.eclipse.jst.server.core.internal.IMemento;
 import org.eclipse.jst.server.core.internal.JavaServerPlugin;
+import org.eclipse.jst.server.core.internal.RuntimeClasspathContainer;
 import org.eclipse.jst.server.core.internal.Trace;
 import org.eclipse.jst.server.core.internal.XMLMemento;
 import org.eclipse.wst.server.core.IRuntime;
@@ -61,6 +66,8 @@
 
 	private Map runtimePathMap = new HashMap();
 
+	private Map previousClasspath = new HashMap();
+
 	public RuntimeClasspathProviderDelegate() {
 		// default constructor
 	}
@@ -150,6 +157,30 @@
 			}
 		}
 		
+		String key = project.getName() + "/" + runtime.getId();
+		
+		if (!previousClasspath.containsKey(key))
+			previousClasspath.put(key, entries);
+		else {
+			IClasspathEntry[] previousEntries = (IClasspathEntry[]) previousClasspath.get(key);
+			
+			if ((previousEntries == null && entries != null) || (previousEntries != null && entries == null)
+					|| (previousEntries != null && entries != null && previousEntries.length != entries.length)) {
+				Trace.trace(Trace.FINEST, "Classpath update: " + key + " " + entries);
+				previousClasspath.put(key, entries);
+				
+				IPath path = new Path(RuntimeClasspathContainer.SERVER_CONTAINER);
+				path = path.append(extensionId).append(runtime.getId());
+				try {
+					IJavaProject javaProject = JavaCore.create(project);
+					JavaCore.setClasspathContainer(path, new IJavaProject[] { javaProject },
+							new IClasspathContainer[] { null }, new NullProgressMonitor());
+				} catch (JavaModelException jme) {
+					Trace.trace(Trace.WARNING, "Error updating classpath", jme);
+				}
+			}
+		}
+		
 		return entries;
 	}
 
diff --git a/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/internal/RuntimeBridge.java b/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/internal/RuntimeBridge.java
index 336ee89..0dd1491 100644
--- a/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/internal/RuntimeBridge.java
+++ b/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/internal/RuntimeBridge.java
@@ -48,8 +48,19 @@
 	}
 
 	private static void addMapping(String id, String id2, String version) {
+		ArrayList list = null;
 		try {
-			mappings.put(id, RuntimeManager.getRuntimeComponentType(id2).getVersion(version));
+			list = (ArrayList) mappings.get(id);
+		} catch (Exception e) {
+			// ignore
+		}
+		
+		if (list == null)
+			list = new ArrayList(2);
+		
+		try {
+			list.add(RuntimeManager.getRuntimeComponentType(id2).getVersion(version));
+			mappings.put(id, list);
 		} catch (Exception e) {
 			// ignore
 		}
@@ -119,9 +130,6 @@
 				return components;
 			
 			// define server runtime component
-			String typeId = runtime.getRuntimeType().getId();
-			IRuntimeComponentVersion mapped = (IRuntimeComponentVersion) mappings.get(typeId);
-			
 			Map properties = new HashMap(5);
 			if (runtime.getLocation() != null)
 				properties.put("location", runtime.getLocation().toPortableString());
@@ -138,7 +146,15 @@
 				properties.put(CLASSPATH, path.toPortableString());
 			}
 			
-			components.add(RuntimeManager.createRuntimeComponent(mapped, properties));
+			String typeId = runtime.getRuntimeType().getId();
+			if (mappings.containsKey(typeId)) {
+				ArrayList list = (ArrayList) mappings.get(typeId);
+				int size = list.size();
+				for (int i = 0; i < size; i++) {
+					IRuntimeComponentVersion mapped = (IRuntimeComponentVersion) list.get(i);
+					components.add(RuntimeManager.createRuntimeComponent(mapped, properties));
+				}
+			}
 			
 			// define JRE component
 			IJavaRuntime javaRuntime = (IJavaRuntime) runtime.loadAdapter(IJavaRuntime.class, null);
diff --git a/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/internal/RuntimeClasspathContainerInitializer.java b/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/internal/RuntimeClasspathContainerInitializer.java
index 5b15855..9eb946e 100644
--- a/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/internal/RuntimeClasspathContainerInitializer.java
+++ b/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/internal/RuntimeClasspathContainerInitializer.java
@@ -1,5 +1,5 @@
 /**********************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
+ * Copyright (c) 2003, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,11 +10,18 @@
  **********************************************************************/
 package org.eclipse.jst.server.core.internal;
 
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.*;
+import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.jdt.core.*;
+import org.eclipse.osgi.util.NLS;
 import org.eclipse.wst.server.core.IRuntime;
 import org.eclipse.wst.server.core.ServerCore;
+import org.eclipse.wst.server.core.internal.ServerPlugin;
 /**
  * 
  */
@@ -69,11 +76,79 @@
 					if (runtimeId != null)
 						runtime = ServerCore.findRuntime(runtimeId);
 					delegate.requestClasspathContainerUpdate(runtime, containerSuggestion.getClasspathEntries());
+					//JavaCore.setClasspathContainer(containerPath, new IJavaProject[] { project },
+					//		new IClasspathContainer[] { containerSuggestion }, new NullProgressMonitor());
+					updateClasspath(runtime, containerPath, containerSuggestion);
 				}
 			}
 		}
 	}
 
+	private void updateClasspath(final IRuntime runtime, final IPath containerPath, final IClasspathContainer containerSuggestion) {
+		class UpdateClasspathJob extends Job {
+			public UpdateClasspathJob() {
+				super(NLS.bind(Messages.updateClasspathContainers, runtime.getName()));
+			}
+
+			public boolean belongsTo(Object family) {
+				return ServerPlugin.PLUGIN_ID.equals(family);
+			}
+
+			public IStatus run(IProgressMonitor monitor) {
+				IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
+				List list = new ArrayList();
+				if (projects != null) {
+					int size = projects.length;
+					for (int i = 0; i < size; i++) {
+						if (projects[i].isAccessible()) {
+							try {
+								if (!projects[i].isNatureEnabled(JavaCore.NATURE_ID))
+									continue;
+								
+								IJavaProject javaProject = JavaCore.create(projects[i]); // TODO is java project?
+								
+								boolean found = false;
+								IClasspathEntry[] ce = javaProject.getRawClasspath();
+								for (int j = 0; j < ce.length; j++) {
+									if (ce[j].getEntryKind() == IClasspathEntry.CPE_CONTAINER) {
+										if (containerPath.isPrefixOf(ce[j].getPath()))
+											found = true;
+									}
+								}
+								
+								Trace.trace(Trace.FINEST, "Classpath change on: " + projects[i] + " " + found);
+								
+								if (found)
+									list.add(javaProject);
+							} catch (Exception e) {
+								Trace.trace(Trace.SEVERE, "Could not update classpath container", e);
+							}
+						}
+					}
+				}
+				
+				int size = list.size();
+				if (size > 0) {
+					IJavaProject[] javaProjects = new IJavaProject[size];
+					list.toArray(javaProjects);
+					IClasspathContainer[] containers = new IClasspathContainer[size];
+					for (int i = 0; i < size; i++)
+						containers[i] = containerSuggestion;
+					
+					try {
+						JavaCore.setClasspathContainer(containerPath, javaProjects, containers, monitor);
+					} catch (JavaModelException jme) {
+						return jme.getStatus();
+					}
+				}
+				
+				return Status.OK_STATUS;
+			}
+		}
+		UpdateClasspathJob job = new UpdateClasspathJob();
+		job.schedule();
+	}
+
 	/** (non-Javadoc)
 	 * @see org.eclipse.jdt.core.ClasspathContainerInitializer#getComparisonID(org.eclipse.core.runtime.IPath, org.eclipse.jdt.core.IJavaProject)
 	 */
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 f860ef2..18c18c9 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
@@ -18,15 +18,14 @@
  org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.debug.core;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.jdt.core;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.jdt.launching;bundle-version="[3.2.0,4.0.0)";visibility:=reexport,
+ org.eclipse.jdt.launching;visibility:="reexport";bundle-version="[3.2.0,4.0.0)",
  org.eclipse.wst.server.core;bundle-version="[1.0.102,1.2.0)",
  org.eclipse.jst.server.core;bundle-version="[1.0.102,1.2.0)",
- org.eclipse.ant.ui;bundle-version="[3.2.0,4.0.0)";resolution:=optional,
- org.eclipse.emf.common;bundle-version="[2.2.0,2.3.0)";visibility:=reexport,
+ org.eclipse.ant.ui;resolution:="optional";bundle-version="[3.2.0,4.0.0)",
+ org.eclipse.emf.common;visibility:="reexport";bundle-version="[2.2.0,2.3.0)",
  org.eclipse.emf.ecore;bundle-version="[2.2.0,2.3.0)",
  org.eclipse.emf.ecore.xmi;bundle-version="[2.2.0,2.3.0)",
- org.eclipse.ui.externaltools;bundle-version="[3.1.100,3.3.0)";resolution:=optional,
+ org.eclipse.ui.externaltools;resolution:="optional";bundle-version="[3.1.100,3.3.0)",
  org.apache.ant;bundle-version="[1.6.5,1.7.0)",
- org.eclipse.debug.ui;bundle-version="[3.2.0,4.0.0)";resolution:=optional,
- org.eclipse.core.variables;bundle-version="[3.1.0,4.0.0)"
+ org.eclipse.debug.ui;resolution:="optional";bundle-version="[3.2.0,4.0.0)"
 Eclipse-LazyStart: true
diff --git a/plugins/org.eclipse.jst.server.generic.core/plugin.properties b/plugins/org.eclipse.jst.server.generic.core/plugin.properties
index 71d7ea3..d4fcff6 100644
--- a/plugins/org.eclipse.jst.server.generic.core/plugin.properties
+++ b/plugins/org.eclipse.jst.server.generic.core/plugin.properties
@@ -14,7 +14,6 @@
 externalLaunchConfigurationTypeName=Generic Server(External Launch)
 launchConfigurationTypeName=Generic Server
 extensionPointServerdefinition=Server definition
-extensionPointRuntimedefinition=Runtime definition
 extensionPointGenericpublisher=Generic Publisher
 # ====================================================================
 
diff --git a/plugins/org.eclipse.jst.server.generic.core/plugin.xml b/plugins/org.eclipse.jst.server.generic.core/plugin.xml
index 7499e89..723f523 100644
--- a/plugins/org.eclipse.jst.server.generic.core/plugin.xml
+++ b/plugins/org.eclipse.jst.server.generic.core/plugin.xml
@@ -3,7 +3,6 @@
 <plugin>
 
  <extension-point id="serverdefinition" name="%extensionPointServerdefinition" schema="schema/serverdefinition.exsd"/>
- <extension-point id="runtimedefinition" name="%extensionPointRuntimedefinition" schema="schema/runtimedefinition.exsd"/>
  <extension-point id="genericpublisher" name="%extensionPointGenericpublisher" schema="schema/genericpublisher.exsd"/>
 	
  <extension point="org.eclipse.debug.core.launchConfigurationTypes">
diff --git a/plugins/org.eclipse.jst.server.generic.core/schema/runtimedefinition.exsd b/plugins/org.eclipse.jst.server.generic.core/schema/runtimedefinition.exsd
deleted file mode 100644
index 93ed0ef..0000000
--- a/plugins/org.eclipse.jst.server.generic.core/schema/runtimedefinition.exsd
+++ /dev/null
@@ -1,120 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.jst.server.generic.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.jst.server.generic.core" id="runtimedefinition" name="Runtime Definition"/>
-      </appInfo>
-      <documentation>
-         This extension point defines a new generic server runtime definition file.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="runtimedefinition" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="runtimedefinition">
-      <complexType>
-         <sequence>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  runtime id
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="definitionfile" type="string" use="required">
-            <annotation>
-               <documentation>
-                  location of the generic server runtime definition file
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="resource"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         2.0
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         &lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.jst.server.generic.core.runtimedefinition&quot;&gt;
-  &lt;runtimedefinition id=&quot;org.eclipse.jst.server.generic.runtime.jonas4&quot; definitionfile=&quot;/runtimes/jonas.runtimedef&quot;&gt;
-  &lt;/runtimedefinition&gt;
-&lt;/extension&gt;
-&lt;/pre&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2006 Cape Clear Software. 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.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServer.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServer.java
index 30ef7f1..1560268 100644
--- a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServer.java
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServer.java
@@ -16,7 +16,6 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
@@ -31,7 +30,6 @@
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.wst.server.core.IModule;
 import org.eclipse.wst.server.core.IModuleType;
-import org.eclipse.wst.server.core.IServer;
 import org.eclipse.wst.server.core.ServerPort;
 import org.eclipse.wst.server.core.ServerUtil;
 import org.eclipse.wst.server.core.model.IURLProvider;
@@ -47,33 +45,33 @@
     private static final String ATTR_GENERIC_SERVER_MODULES = "Generic_Server_Modules_List"; //$NON-NLS-1$
 
 	public IStatus canModifyModules(IModule[] add, IModule[] remove) {
-		for ( int i = 0; i < add.length; i++ ) {         
-			if( !isSupportedModule( add[i] ) ){
-                return new Status( IStatus.ERROR, CorePlugin.PLUGIN_ID, 0,
-                        GenericServerCoreMessages.moduleNotCompatible, null );
-            }
-            if ( add[i].getProject() != null ) {
-                IStatus status = FacetUtil.verifyFacets(add[i].getProject(), getServer());
-                if (status != null && !status.isOK())
-                    return status;
-            }
+		List moduleTypes = getServerDefinition().getModule();
+        int found =0;
+		for (int i = 0; i < add.length; i++) {
+			for(int j=0;j<moduleTypes.size();j++){
+				 Module module = (Module)moduleTypes.get(j);
+				 if(add[i].getModuleType()!= null && add[i].getModuleType().getId().equals(module.getType())){
+					 found++;
+					 break;
+				  }
+			}
         }
-		return new Status(IStatus.OK, CorePlugin.PLUGIN_ID, 0, "CanModifyModules", null); //$NON-NLS-1$ 
+		
+		for (int i = 0; i < add.length; i++) {
+			IModule module = add[i];
+			if (module.getProject() != null) {
+				IStatus status = FacetUtil.verifyFacets(module.getProject(), getServer());
+				if (status != null && !status.isOK())
+					return status;
+			}
+		}
+		
+		if(found==add.length)
+			return new Status(IStatus.OK, CorePlugin.PLUGIN_ID, 0, "CanModifyModules", null); //$NON-NLS-1$
+		
+		return new Status(IStatus.ERROR, CorePlugin.PLUGIN_ID, 0, GenericServerCoreMessages.moduleNotCompatible, null);
 	}
 	
-    private boolean isSupportedModule(IModule module){
-        if( module == null )
-            return false;
-        List moduleTypes = getServerDefinition().getModule();
-        for( int j=0; j<moduleTypes.size(); j++ ){
-             Module moduleDefinition = (Module)moduleTypes.get(j);
-             if( module.getModuleType() != null && module.getModuleType().getId().equals(moduleDefinition.getType()) ){
-                return true;
-              }
-        }
-         return false;
-    }
-    
     /* (non-Javadoc)
      * @see org.eclipse.wst.server.core.model.ServerDelegate#modifyModules(org.eclipse.wst.server.core.IModule[], org.eclipse.wst.server.core.IModule[], org.eclipse.core.runtime.IProgressMonitor)
      */
@@ -224,15 +222,8 @@
 	 * @return server runtime
 	 */
     public ServerRuntime getServerDefinition(){
-        IServer server = getServer();
-		String rtTypeId = server.getRuntime().getRuntimeType().getId();
-        String serverTypeId = server.getServerType().getId();
-        /**
-         * Pass both the serverType id and runtimeType id and ServerTypeDefinitionManager 
-         * will figure out how to give us back the correct ServerRuntime.
-         */
-		return CorePlugin.getDefault().getServerTypeDefinitionManager().getServerRuntimeDefinition(
-                serverTypeId, rtTypeId, getInstanceProperties());
+		String rtTypeId = getServer().getRuntime().getRuntimeType().getId();
+		return CorePlugin.getDefault().getServerTypeDefinitionManager().getServerRuntimeDefinition(rtTypeId,getInstanceProperties());
 	}
 
     private GenericServerRuntime getRuntimeDelegate(){
@@ -246,14 +237,12 @@
      * @see org.eclipse.wst.server.core.model.ServerDelegate#getRootModules(org.eclipse.wst.server.core.IModule)
      */
     public IModule[] getRootModules(IModule module) throws CoreException {
-     	if ( !isSupportedModule( module ) )
-            return null;
-        IStatus status = canModifyModules(new IModule[] { module }, null);
+     	IStatus status = canModifyModules(new IModule[] { module }, null);
         if (status != null && !status.isOK())
             throw  new CoreException(status);;
-        IModule[] parents = doGetParentModules(module);
-        if(parents.length>0)
-        	return parents;
+        IModule[] childs = doGetParentModules(module);
+        if(childs.length>0)
+        	return childs;
         return new IModule[] { module };
     }
 
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 6e0c1d3..046e674 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
@@ -74,26 +74,29 @@
      */
     public void publishModule(int kind, int deltaKind, IModule[] module,
             IProgressMonitor monitor) throws CoreException {
-        GenericPublisher publisher = initializePublisher( module );
-        IStatus[] status = null;
-    	if(REMOVED == deltaKind ){//TODO: check if the removed module is published to server
-            status = publisher.unpublish(monitor);
+ 
+    	
+        if(REMOVED == deltaKind){
+            removeFromServer(module,monitor);
         }
         else{
         	checkClosed(module);
-            status= publisher.publish(null,monitor);
-        }
-        setModulePublishState( module, status );
-    }
-
-    private void setModulePublishState( IModule[] module, IStatus[] status ) throws CoreException {
-        if(status==null || status.length < 1 ){
-            setModulePublishState(module, IServer.PUBLISH_STATE_NONE);
-        }else {
-            for (int i=0; i < status.length; i++) {
-                if (IStatus.ERROR == status[i].getSeverity()){
-                	setModulePublishState(module, IServer.PUBLISH_STATE_UNKNOWN);
-                    throw new CoreException(status[i]);
+            String publisherId = ServerTypeDefinitionUtil.getPublisherID(module[0], getServerDefinition());
+            GenericPublisher publisher = PublishManager.getPublisher(publisherId);
+            if(publisher==null){
+                IStatus status = new Status(IStatus.ERROR,CorePlugin.PLUGIN_ID,0, NLS.bind(GenericServerCoreMessages.unableToCreatePublisher,publisherId),null);
+                throw new CoreException(status);
+            }
+            publisher.initialize(module,getServer());
+            IStatus[] status= publisher.publish(null,monitor);
+            if(status==null){
+                setModulePublishState(module, IServer.PUBLISH_STATE_NONE);
+            }else {
+                for (int i=0; i < status.length; i++) {
+                    if (IStatus.ERROR == status[i].getSeverity()){
+                    	setModulePublishState(module, IServer.PUBLISH_STATE_UNKNOWN);
+                        throw new CoreException(status[i]);
+                    }
                 }
             }
         }
@@ -101,23 +104,25 @@
 
     private void checkClosed(IModule[] module) throws CoreException
     {
-    	for( int i=0; i < module.length; i++ ){
-    		if( module[i] instanceof DeletedModule ){	
+    	for(int i=0;i<module.length;i++)
+    	{
+    		if(module[i] instanceof DeletedModule)
+    		{	
                 IStatus status = new Status(IStatus.ERROR,CorePlugin.PLUGIN_ID,0, NLS.bind(GenericServerCoreMessages.canNotPublishDeletedModule,module[i].getName()),null);
                 throw new CoreException(status);
     		}
     	}
     }
-
-    private GenericPublisher initializePublisher( IModule[] module ) throws CoreException {
-        String publisherId = ServerTypeDefinitionUtil.getPublisherID(module[0], getServerDefinition());
+    private void removeFromServer(IModule[] module, IProgressMonitor monitor) throws CoreException
+    {
+    	String publisherId = ServerTypeDefinitionUtil.getPublisherID(module[0], getServerDefinition());
         GenericPublisher publisher = PublishManager.getPublisher(publisherId);  
         if(publisher==null){
             IStatus status = new Status(IStatus.ERROR,CorePlugin.PLUGIN_ID,0,NLS.bind(GenericServerCoreMessages.unableToCreatePublisher,publisherId),null);
             throw new CoreException(status);
         }
         publisher.initialize(module,getServer());
-        return publisher;
+        publisher.unpublish(monitor);
     }
     
     
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/ServerTypeDefinitionManager.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/ServerTypeDefinitionManager.java
index 7b535ec..7e378df 100644
--- a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/ServerTypeDefinitionManager.java
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/ServerTypeDefinitionManager.java
@@ -17,7 +17,6 @@
 import org.eclipse.core.runtime.IRegistryChangeEvent;
 import org.eclipse.core.runtime.IRegistryChangeListener;
 import org.eclipse.jst.server.generic.internal.core.util.ExtensionPointUtil;
-import org.eclipse.jst.server.generic.internal.core.util.ServerRuntimeMergeUtil;
 import org.eclipse.jst.server.generic.internal.xml.XMLUtils;
 import org.eclipse.jst.server.generic.servertype.definition.ServerRuntime;
 /**
@@ -30,23 +29,14 @@
 {
 	private XMLUtils fXmlUtils;
 	
-	/**
-	 * Watch for changes to serverdefinition and runtimedefinition extensions.
-	 */
-	private class RegistryChangeListener implements IRegistryChangeListener {
-        public void registryChanged(IRegistryChangeEvent event) {
-            IExtensionDelta[] deltas = event.getExtensionDeltas(CorePlugin.PLUGIN_ID, ExtensionPointUtil.SERVERDEFINITION_EXTENSION_ID);
-            if (deltas != null && deltas.length > 0) {
-                handleDefinitionsChanged();
-            }
-            else {
-                deltas = event.getExtensionDeltas(CorePlugin.PLUGIN_ID, ExtensionPointUtil.RUNTIMEDEFINITION_EXTENSION_ID);
-                if (deltas != null && deltas.length > 0) {
-                    handleDefinitionsChanged();
-                }
-            }
-        }
-    }
+	private class RegistryChangeListener implements IRegistryChangeListener{
+		public void registryChanged(IRegistryChangeEvent event) {
+			IExtensionDelta[] deltas = event.getExtensionDeltas(CorePlugin.PLUGIN_ID, ExtensionPointUtil.SERVERDEFINITION_EXTENSION_ID);
+			if(deltas!=null && deltas.length>0){
+				handleServerDefinitionsChanged();
+			}
+		}		
+	}
 	
 	protected ServerTypeDefinitionManager(URL serverDefinitionURL){
 		super();
@@ -54,66 +44,19 @@
 		ExtensionPointUtil.addRegistryListener(new RegistryChangeListener());
 	}
 
-    /**
-     * Returns either: 
-     * 
-     * 1. the ServerRuntime that represents the .serverdef file for a given 
-     *    runtime type, based on the runtimeTypeId.
-     *    
-     * 2. the ServerRuntime that represents both the .serverdef file for a
-     *    given server type, based on the serverTypeId, combined with the 
-     *    .runtimedef file for the runtime type, based on the runtimeTypeId.   
-     * 
-     * The implementation looks for (1) first, if that combination is not
-     * found, then (2) is returned.
-     * 
-     * @param serverTypeId server type id
-     * @param runtimeTypeId runtime type id
-     * @param properties user provided properties
-     * @return server runtime that is initialized with user properties 
-     */
-    public ServerRuntime getServerRuntimeDefinition(String serverTypeId, String runtimeTypeId, Map properties) {
-        
-        ServerRuntime serverdef = fXmlUtils.getServerTypeDefinition(serverTypeId);
-        
-        if (serverdef != null) {
-            ServerRuntime runtimedef = fXmlUtils.getRuntimeTypeDefinition(runtimeTypeId);
-            serverdef = ServerRuntimeMergeUtil.combine(serverdef, runtimedef);
-        }
-        else {
-            // Fall back to the original usage
-            serverdef = fXmlUtils.getServerTypeDefinition(runtimeTypeId);
-        }
-        
-        if (serverdef != null) {
-            serverdef.setPropertyValues(properties);
-        }
-        
-        return serverdef;
-    }
-    
-    /**
-     * Returns the ServerRuntime that represents the .serverdef file
-     * for a given runtime type.
-     * 
-     * @param runtimeTypeId runtime type id
-     * @param properties user provided properties
-     * @return server runtime that is initialized with user properties 
-     */
-    public ServerRuntime getServerRuntimeDefinition(String runtimeTypeId, Map properties) {
-        ServerRuntime definition = fXmlUtils.getRuntimeTypeDefinition(runtimeTypeId);
-        
-        if (definition == null) {
-            // Fall back to the original usage
-            definition = fXmlUtils.getServerTypeDefinition(runtimeTypeId);
-        }
-        
-        if (definition != null) {
+	/**
+	 * Returns the ServerRuntime that represents the .serverdef file
+	 * for a given runtime type.
+	 * @param id runtime type id
+	 * @param properties user provided properties
+	 * @return server runtime that is initialized with user properties 
+	 */
+	public ServerRuntime getServerRuntimeDefinition(String id, Map properties){
+		ServerRuntime definition =  fXmlUtils.getServerTypeDefinition(id);
+		if(definition !=null)
             definition.setPropertyValues(properties);
-        }
-        
-        return definition;
-    }
+		return definition;
+	}
 	
 	/**
 	 * Returns all the ServerRuntimes registered a .serverdef.
@@ -124,7 +67,7 @@
 		 return (ServerRuntime[])definitionList.toArray(new ServerRuntime[definitionList.size()]);
 	}
 	
-	private void handleDefinitionsChanged(){	
+	private void handleServerDefinitionsChanged(){	
 		XMLUtils utils = new XMLUtils();
 		fXmlUtils = utils;
 	}
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/util/ExtensionPointUtil.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/util/ExtensionPointUtil.java
index f96bb96..cedf0ed 100644
--- a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/util/ExtensionPointUtil.java
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/util/ExtensionPointUtil.java
@@ -27,24 +27,15 @@
      * serverdefinition extension id
      */
     public static final String SERVERDEFINITION_EXTENSION_ID = "serverdefinition"; //$NON-NLS-1$
-    public static final String RUNTIMEDEFINITION_EXTENSION_ID = "runtimedefinition"; //$NON-NLS-1$
     private static final String GENERICPUBLISHER_EXTENSION_ID = "genericpublisher"; //$NON-NLS-1$
 
     /**
      * Returns serverdefinition extensions
-     * @return serverdefinition Extensions
+     * @return serverdefinitionExtensions
      */
     public static IExtension[] getGenericServerDefinitionExtensions(){
         return getExtensions(CorePlugin.PLUGIN_ID+"."+SERVERDEFINITION_EXTENSION_ID); //$NON-NLS-1$
     }
-
-    /**
-     * Returns runtimedefinition extensions
-     * @return runtimedefinition Extensions
-     */
-    public static IExtension[] getGenericServerRuntimeDefinitionExtensions(){
-        return getExtensions(CorePlugin.PLUGIN_ID+"."+RUNTIMEDEFINITION_EXTENSION_ID); //$NON-NLS-1$
-    }
     
     /**
      * Returns publisher extensions
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/util/ServerRuntimeMergeUtil.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/util/ServerRuntimeMergeUtil.java
deleted file mode 100644
index ad24b6d..0000000
--- a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/util/ServerRuntimeMergeUtil.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/**
- * Copyright (c) 2006 Cape Clear Software. 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
- */
-package org.eclipse.jst.server.generic.internal.core.util;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jst.server.generic.servertype.definition.Classpath;
-import org.eclipse.jst.server.generic.servertype.definition.Property;
-import org.eclipse.jst.server.generic.servertype.definition.ServerRuntime;
-
-/**
- * Combines a runtimedef files
- * 
- * - properties
- * - classpaths
- * 
- * entries with a serverdef, if the serverdef does not already have 
- * them - contains check is done by id.
- * 
- * @author <a href="mailto:david.black@capeclear.com">David Black</a>
- */
-public class ServerRuntimeMergeUtil {
-
-    /**
-     * Combines a runtime definition and a server definition 
-     * into a single logical <code>ServerRuntime</code>.
-     * 
-     * @param serverdef
-     * @param runtimedef
-     * @return serverdef
-     */
-    public static ServerRuntime combine(ServerRuntime serverdef, ServerRuntime runtimedef) {
-        /** 
-         * Add properties from runtimedef to serverdef if not already present,
-         * this ensures that:
-         * 
-         * (1) while we are affecting the cached copy of serverdef, it is always
-         *     required to be combined with its runtimedef (if there is one), and
-         *     we check that the property has not already been added
-         *     
-         * (2) serverdef properties can override runtimedef properties    
-         */
-        List properties = runtimedef.getProperty();
-        if (properties != null) {
-            Iterator iter = properties.iterator();
-            while (iter.hasNext()) {
-                Property prop = (Property) iter.next();
-                addPropertyIfNotPresent(serverdef.getProperty(), prop);
-            }
-        }
-        
-        /** 
-         * Add classpaths from runtimedef to serverdef if not already present,
-         * this ensures that:
-         * 
-         * (1) while we are affecting the cached copy of serverdef, it is always
-         *     required to be combined with its runtimedef (if there is one), and
-         *     we check that the classpath has not already been added (by id)
-         *     
-         * (2) serverdef classpath can override runtimedef classpath by id    
-         */
-        List classpaths = runtimedef.getClasspath();
-        if (classpaths != null) {
-            Iterator iter = classpaths.iterator();
-            while (iter.hasNext()) {
-                Classpath classpath = (Classpath)iter.next();
-                addClasspathIfNotPresent(serverdef.getClasspath(), classpath);
-            }
-        }
-        
-        return serverdef;
-    }
-
-    private static void addClasspathIfNotPresent(List classpaths, Classpath classpath) {
-        if (!containsClasspath(classpaths, classpath.getId())) {
-            classpaths.add(classpath);
-        }
-    }
-
-    private static boolean containsClasspath(List properties, String id) {
-        boolean found = false;
-        Iterator iter = properties.iterator();
-        while (iter.hasNext()) {
-            Classpath classpath = (Classpath) iter.next();
-            if (classpath.getId().equals(id)) {
-                found = true;
-                break;
-            }
-        }
-        return found;
-    }
-    
-    private static void addPropertyIfNotPresent(List properties, Property prop) {
-        if (!containsProperty(properties, prop.getId())) {
-            properties.add(prop);
-        }
-    }
-
-    private static boolean containsProperty(List properties, String id) {
-        boolean found = false;
-        Iterator iter = properties.iterator();
-        while (iter.hasNext()) {
-            Property prop = (Property) iter.next();
-            if (prop.getId().equals(id)) {
-                found = true;
-                break;
-            }
-        }
-        return found;
-    }
-
-}
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 84ef27a..1beb060 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
@@ -10,18 +10,13 @@
 
 package org.eclipse.jst.server.generic.internal.xml;
 
-
+import java.io.File;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.variables.IDynamicVariable;
-import org.eclipse.core.variables.VariablesPlugin;
-import org.eclipse.jst.server.generic.core.internal.CorePlugin;
+
 import org.eclipse.jst.server.generic.servertype.definition.ArchiveType;
 import org.eclipse.jst.server.generic.servertype.definition.Property;
 import org.eclipse.jst.server.generic.servertype.definition.ServerRuntime;
@@ -38,6 +33,7 @@
 	private static final String PROP_START = "${"; //$NON-NLS-1$
 	private Map fPropertyValues = new HashMap();
 	private ServerRuntime server;
+
 	/**
 	 * @param runtime 
 	 */
@@ -78,6 +74,11 @@
 				value = value.replace('\\','/');
 			 cache.put(element.getId(), value);
 		}
+		//String vmPath = install.getInstallLocation().getCanonicalPath();
+		//vmPath = vmPath.replace('\\', '/');
+		cache.put("jrePath", "JRE"); //$NON-NLS-1$ //$NON-NLS-2$
+		cache.put("pathChar", File.pathSeparator); //$NON-NLS-1$
+
 		String str = resolvePropertiesFromCache(proppedString, cache);
 		str = fixPassthroughProperties(str);
 		return str;
@@ -100,9 +101,9 @@
 		String proppedString,
 		HashMap cache) {
 		String resolvedString = proppedString;
-		int start = skipToProperty(resolvedString, cache);// see if there are properties to be resolved.
+		int start = skipToProperty(resolvedString,cache);
 		if (start >= 0) {
-			resolvedString = resolveProperty(resolvedString, cache);
+			resolvedString = resolveProperty(resolvedString, start, cache);
 			resolvedString = resolvePropertiesFromCache(resolvedString, cache);
 		}
 		return resolvedString;
@@ -111,15 +112,17 @@
 	private int skipToProperty(String str,HashMap cache) {
 		int start = -1; 
 		int end =  0;
-		String key=new String();
+		String value = null;
 		do {
 			start =  str.indexOf(PROP_START,end);
 			if( start < 0)
 				return start;
 			end = str.indexOf(PROP_END, start);
-			key = str.substring(start + 2, end);
+			
+			String key = str.substring(start + 2, end);
+			value = (String)cache.get(key);
 		}
-		while( !cache.containsKey( key ) && VariablesPlugin.getDefault().getStringVariableManager().getDynamicVariable( key ) == null );
+		while(value == null);
 		return start;
 	}
 	
@@ -127,28 +130,17 @@
 		return str.indexOf(PROP_START2) >= 0;
 	}
 
-	private String resolveProperty(String proppedString, HashMap cache) {
-		StringBuffer str = new StringBuffer(proppedString);
-		int start = str.indexOf(PROP_START);
+	private String resolveProperty(String proppedString, int start, HashMap cache) {
+		String str = proppedString;
+		start = str.indexOf(PROP_START);
 		int end = str.indexOf(PROP_END, start);
 		String key = str.substring(start + 2, end);
-        String value = (String)cache.get(key);
-        if(value == null ){// look in eclipse variables
-            IDynamicVariable dv =  VariablesPlugin.getDefault().getStringVariableManager().getDynamicVariable( key );
-            if (dv != null ){
-                try {
-                    value = dv.getValue( null );
-                } 
-                catch( CoreException e ){
-                    CorePlugin.getDefault().getLog().log(
-                    new Status(IStatus.ERROR, CorePlugin.PLUGIN_ID, 1,
-                            "Can not resolve eclipse variable", e)); //$NON-NLS-1$
-                }
-            }
-        }
+		String value = (String)cache.get(key);
 		if(value == null )
-			return str.toString();
-		return str.replace( start, end+1, value ).toString();
+			return str;
+		return str.substring(0, start)
+			+ value
+			+ str.substring(end + 1);
 	}
 	
 	private String fixParam(String proppedString) {
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/xml/XMLUtils.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/xml/XMLUtils.java
index 70da90b..247d777 100644
--- a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/xml/XMLUtils.java
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/xml/XMLUtils.java
@@ -14,8 +14,6 @@
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Iterator;
-import java.util.List;
-
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.IExtension;
 import org.eclipse.core.runtime.IStatus;
@@ -35,15 +33,14 @@
 import org.osgi.framework.Bundle;
 
 /**
- * Utility for handling the xml data from .serverdef and .runtimedef files.
+ * Utility for handling the xml data from .serverdef files
  * 
  * @author Gorkem Ercan
  */
 public class XMLUtils {
 
 	
-    private ArrayList serverDefinitions;
-    private ArrayList runtimeDefinitions;
+    private ArrayList definitions;
 
 
 	/**
@@ -53,52 +50,28 @@
 		refresh();
 	}
 
-	/**
-	 * Load all the serverdefinition and runtimedefinition extensions.
-	 */
 	private void refresh() {
-        serverDefinitions = new ArrayList();
-        
-        IExtension[] serverDefExtensions = ExtensionPointUtil.getGenericServerDefinitionExtensions();
-        
-        for (int i = 0; serverDefExtensions != null && i < serverDefExtensions.length; i++) {
-            java.net.URI definitionFile = null;
-            IExtension extension = serverDefExtensions[i];
+		definitions= new ArrayList();
+         IExtension[] extensions = ExtensionPointUtil.getGenericServerDefinitionExtensions();
+        for (int i = 0; extensions!=null && i < extensions.length; i++) {
+            java.net.URI definitionFile=null;
+            IExtension extension = extensions[i];
             IConfigurationElement[] elements = ExtensionPointUtil.getConfigurationElements(extension);
-            
             for (int j = 0; j < elements.length; j++) {
                 IConfigurationElement element = elements[j];
                 definitionFile = getDefinitionFile(element);
-                ServerRuntime runtime = readFile(definitionFile);
-                if (runtime != null) {
-                    runtime.setId(element.getAttribute("id")); //$NON-NLS-1$
-                    runtime.setConfigurationElementNamespace(element.getNamespace());
-                    serverDefinitions.add(runtime);
+                ServerRuntime runtime =readFile(definitionFile);
+                    if(runtime!=null){
+                        runtime.setId(element.getAttribute("id")); //$NON-NLS-1$
+                        runtime.setConfigurationElementNamespace(element.getNamespace());
+                        definitions.add(runtime);
+                    }
                 }
             }
-        }
 
-        runtimeDefinitions = new ArrayList();
-        
-        IExtension[] runtimeDefExtensions = ExtensionPointUtil.getGenericServerRuntimeDefinitionExtensions();
-        
-        for (int i = 0; runtimeDefExtensions != null && i < runtimeDefExtensions.length; i++) {
-            java.net.URI definitionFile = null;
-            IExtension extension = runtimeDefExtensions[i];
-            IConfigurationElement[] elements = ExtensionPointUtil.getConfigurationElements(extension);
-            
-            for (int j = 0; j < elements.length; j++) {
-                IConfigurationElement element = elements[j];
-                definitionFile = getDefinitionFile(element);
-                ServerRuntime runtime = readFile(definitionFile);
-                if (runtime != null) {
-                    runtime.setId(element.getAttribute("id")); //$NON-NLS-1$
-                    runtime.setConfigurationElementNamespace(element.getNamespace());
-                    runtimeDefinitions.add(runtime);
-                }
-            }
-        }
-    }
+       }
+
+
 
     private java.net.URI getDefinitionFile(IConfigurationElement element) {
         
@@ -107,12 +80,6 @@
         Trace.trace(Trace.FINEST,"Loading serverdef file "+definitionFile+" from bundle "+bundle.getSymbolicName()); //$NON-NLS-1$ //$NON-NLS-2$
         
         URL url = bundle.getEntry(definitionFile);
-        if (url == null )
-        {
-            CorePlugin.getDefault().getLog().log( new Status(IStatus.ERROR, CorePlugin.PLUGIN_ID,1,
-                    "Definition file "+definitionFile+" can not be resolved in bundle "+ bundle.getSymbolicName() ,null) ); //$NON-NLS-1$ //$NON-NLS-2$
-            return null;
-        }
 		try {
 			java.net.URI uri = new java.net.URI(url.getProtocol(), url.getHost(),url.getPath(), url.getQuery());
 		    return uri;
@@ -159,11 +126,12 @@
 
     }
 
+
 	/**
-	 * @return <code>java.util.List</code> of <code>ServerRuntime</code>s.
+	 * @return ArrayList
 	 */
-	public List getServerTypeDefinitions() {
-		return serverDefinitions;
+	public ArrayList getServerTypeDefinitions() {
+		return definitions;
 	}
 
     /**
@@ -173,28 +141,6 @@
      */
     public ServerRuntime getServerTypeDefinition(String id) {
     	Iterator defs = getServerTypeDefinitions().iterator();
-        while (id != null && defs.hasNext()) {
-            ServerRuntime elem = (ServerRuntime) defs.next();
-            if (id.equals(elem.getId()))
-                return elem;
-        }
-        return null;
-    }
-
-    /**
-     * @return <code>java.util.List</code> of <code>ServerRuntime</code>s.
-     */
-    public List getRuntimeTypeDefinitions() {
-        return runtimeDefinitions;
-    }
-
-    /**
-     * Get the memory presentation for the .runtimedef file
-     * @param id
-     * @return runtime 
-     */
-    public ServerRuntime getRuntimeTypeDefinition(String id) {
-        Iterator defs = getRuntimeTypeDefinitions().iterator();
         while (defs.hasNext()) {
             ServerRuntime elem = (ServerRuntime) defs.next();
             if (id.equals(elem.getId()))
diff --git a/plugins/org.eclipse.jst.server.generic.jboss/.classpath b/plugins/org.eclipse.jst.server.generic.jboss/.classpath
index fb0f2c4..f457095 100644
--- a/plugins/org.eclipse.jst.server.generic.jboss/.classpath
+++ b/plugins/org.eclipse.jst.server.generic.jboss/.classpath
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
 	<classpathentry kind="src" path="servers/"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/plugins/org.eclipse.jst.server.generic.jboss/.cvsignore b/plugins/org.eclipse.jst.server.generic.jboss/.cvsignore
index 2d9835d..010b5b0 100644
--- a/plugins/org.eclipse.jst.server.generic.jboss/.cvsignore
+++ b/plugins/org.eclipse.jst.server.generic.jboss/.cvsignore
@@ -1,3 +1,5 @@
 bin
 build.xml
 javaCompiler.genericjboss.jar.args
+temp.folder
+genericjboss.jar
diff --git a/plugins/org.eclipse.jst.server.generic.jboss/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.jst.server.generic.jboss/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..925eec7
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.jboss/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Sun Jan 21 15:01:45 EET 2007
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
+org.eclipse.jdt.core.compiler.source=1.3
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 f414b12..3acb7ba 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.5.1.qualifier
+Bundle-Version: 1.5.2.qualifier
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Require-Bundle: org.eclipse.jst.server.core;bundle-version="[1.0.102,1.1.0)",
@@ -14,3 +14,4 @@
  org.eclipse.wst.common.project.facet.ui;bundle-version="[1.1.0,1.2.0)"
 Eclipse-LazyStart: true
 Bundle-ClassPath: genericjboss.jar
+Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/plugins/org.eclipse.jst.server.generic.jboss/buildfiles/jboss323.xml b/plugins/org.eclipse.jst.server.generic.jboss/buildfiles/jboss323.xml
index f720ca4..e4ff370 100644
--- a/plugins/org.eclipse.jst.server.generic.jboss/buildfiles/jboss323.xml
+++ b/plugins/org.eclipse.jst.server.generic.jboss/buildfiles/jboss323.xml
@@ -1,4 +1,7 @@
 <project name="deployextension"  default="deploy.j2ee.web"  basedir=".">
+	<property name="pause.deploy" value="10"/>
+	<property name="pause.undeploy" value="5"/>
+
 	<target name="deploy.j2ee.web">
 		<jar destfile="${project.working.dir}/${module.name}.war"> 
 			<zipfileset dir="${module.dir}">
@@ -7,6 +10,7 @@
 			</zipfileset>
 		</jar>
   		<move file="${project.working.dir}/${module.name}.war" todir="${server.publish.dir}"/>
+		<sleep seconds="${pause.deploy}"/>
 	</target>
 	
 	<target name="deploy.j2ee.ejb">
@@ -17,6 +21,7 @@
 			</zipfileset>
 		</jar>
   		<move file="${project.working.dir}/${module.name}.jar" todir="${server.publish.dir}"/>
+		<sleep seconds="${pause.deploy}"/>
 	</target>
 	<target name="deploy.j2ee.ear">
 		<jar destfile="${project.working.dir}/${module.name}.ear"> 
@@ -26,16 +31,20 @@
 			</zipfileset>
 		</jar>
   		<move file="${project.working.dir}/${module.name}.ear" todir="${server.publish.dir}"/>
+		<sleep seconds="${pause.deploy}"/>
 	</target>
 	
 	<target name="undeploy.j2ee.web">
 		<delete file="${server.publish.dir}/${module.name}.war"> </delete>
+		<sleep seconds="${pause.undeploy}"/>
 	</target>
 	<target name="undeploy.j2ee.ejb">
 		<delete file="${server.publish.dir}/${module.name}.jar"> </delete>
+		<sleep seconds="${pause.undeploy}"/>
 	</target>
 	<target name="undeploy.j2ee.ear">
 		<delete file="${server.publish.dir}/${module.name}.ear"> </delete>
+		<sleep seconds="${pause.undeploy}"/>
 	</target>	
 	
 </project>
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.server.generic.modules/.cvsignore b/plugins/org.eclipse.jst.server.generic.modules/.cvsignore
deleted file mode 100644
index 42654c1..0000000
--- a/plugins/org.eclipse.jst.server.generic.modules/.cvsignore
+++ /dev/null
@@ -1,5 +0,0 @@
-bin
-build.xml
-commonmodules.jar
-org.eclipse.jst.server.generic.modules_1.0.0.jar
-temp.folder
diff --git a/plugins/org.eclipse.jst.server.generic.modules/.project b/plugins/org.eclipse.jst.server.generic.modules/.project
deleted file mode 100644
index af14ba8..0000000
--- a/plugins/org.eclipse.jst.server.generic.modules/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jst.server.generic.ui</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>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.jst.server.generic.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.server.generic.ui/META-INF/MANIFEST.MF
index 420caec..0d32ba0 100644
--- a/plugins/org.eclipse.jst.server.generic.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.server.generic.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jst.server.generic.ui; singleton:=true
-Bundle-Version: 1.0.102.qualifier
+Bundle-Version: 1.0.100.qualifier
 Bundle-Activator: org.eclipse.jst.server.generic.ui.internal.GenericUiPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -13,7 +13,6 @@
  org.eclipse.debug.ui;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.jdt.debug.ui;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.jst.server.core;bundle-version="[1.0.102,1.2.0)",
- org.eclipse.jst.server.generic.core;bundle-version="[1.0.1,1.2.0)",
- org.eclipse.wst.server.core;bundle-version="[1.0.102,1.2.0)",
- org.eclipse.ui.forms;bundle-version="[3.2.0,4.0.0)"
+ org.eclipse.jst.server.generic.core;bundle-version="[1.0.100,1.2.0)",
+ org.eclipse.wst.server.core;bundle-version="[1.0.102,1.2.0)"
 Eclipse-LazyStart: true
diff --git a/plugins/org.eclipse.jst.server.generic.ui/plugin.xml b/plugins/org.eclipse.jst.server.generic.ui/plugin.xml
index bf8b19f..ba8f5f9 100644
--- a/plugins/org.eclipse.jst.server.generic.ui/plugin.xml
+++ b/plugins/org.eclipse.jst.server.generic.ui/plugin.xml
@@ -26,13 +26,5 @@
       class="org.eclipse.jst.server.generic.ui.internal.GenericLaunchConfigurationTabGroup">
     </launchConfigurationTabGroup>
   </extension>
-  <extension point="org.eclipse.wst.server.ui.editorPageSections">
-      <section
-         id="org.eclipse.jst.server.generic.ui.internal.editor.serverProperties"
-         order="10"
-         insertionId="org.eclipse.wst.server.editor.overview.left"
-         typeIds="org.eclipse.jst.server.generic.*"
-         class="org.eclipse.jst.server.generic.ui.internal.editor.ServerPropertiesEditorSection">
-      </section>
-   </extension>   
+
 </plugin>
diff --git a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericLaunchConfigurationTabGroup.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericLaunchConfigurationTabGroup.java
index 62a5547..5ec5c55 100644
--- a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericLaunchConfigurationTabGroup.java
+++ b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericLaunchConfigurationTabGroup.java
@@ -59,7 +59,7 @@
 	         IConfigurationElement[] elements = ExtensionPointUtil.getConfigurationElements(extension);
 	         for (int j = 0; j < elements.length; j++) {
 	        	 IConfigurationElement element = elements[j];
-	        	 String genericRuntimeID = element.getAttribute("id"); //$NON-NLS-1$
+	        	 String genericRuntimeID = element.getAttribute("id");
 	        	 IServerType[] serverTypes = ServerCore.getServerTypes();
 	        	 for (int k = 0; k < serverTypes.length; k++) {
 					if(serverTypes[k].hasRuntime() && serverTypes[k].getRuntimeType().getId().equals(genericRuntimeID))
diff --git a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerRuntimeWizardFragment.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerRuntimeWizardFragment.java
index 2d747fa..ba97604 100644
--- a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerRuntimeWizardFragment.java
+++ b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerRuntimeWizardFragment.java
@@ -123,7 +123,7 @@
 	    {
 	        if((list[i].getName().equals(name)|| list[i].getName().equals(suffixName))&& !list[i].equals(dl.getRuntime()))
 	            suffix++;
-	        suffixName= name+" "+suffix; //$NON-NLS-1$
+	        suffixName= name+" "+suffix;
 	    }
 	    
 		if(suffix>1)
@@ -143,7 +143,7 @@
     public String description() {
         String rName = getRuntimeName();
         if(rName == null || rName.length()<1)
-            rName="Generic";       //$NON-NLS-1$
+            rName="Generic";      
         return  GenericServerUIMessages.bind(GenericServerUIMessages.runtimeWizardDescription,rName);
     }
     /* (non-Javadoc)
@@ -152,7 +152,7 @@
     public String title() {
         String rName = getRuntimeName();
         if(rName == null || rName.length()<1)
-            rName="Generic"; //$NON-NLS-1$
+            rName="Generic";
        return GenericServerUIMessages.bind(GenericServerUIMessages.runtimeWizardTitle,rName);
     }
     
diff --git a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerUIMessages.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerUIMessages.java
index 5f467c3..e238062 100644
--- a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerUIMessages.java
+++ b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerUIMessages.java
@@ -19,9 +19,7 @@
 public class GenericServerUIMessages extends NLS{
 
 	private static final String RESOURCE_BUNDLE= "org.eclipse.jst.server.generic.ui.internal.GenericServerUIMessages";//$NON-NLS-1$
-	public static String ServerEditorSectionDescription;
-    public static String ServerEditorSectionTitle;
-    public static String serverTypeGroup_label_browse;
+	public static String serverTypeGroup_label_browse;
 	public static String runtimeName;
 	public static String runtimeWizardDescription;
 	public static String runtimeWizardTitle;
@@ -40,7 +38,6 @@
 	}
 
 	public static String emptyPath;
-    public static String UpdateOperationDescription;
 
 
 }
diff --git a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerUIMessages.properties b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerUIMessages.properties
index 3ea918e..6a7c681 100644
--- a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerUIMessages.properties
+++ b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerUIMessages.properties
@@ -21,6 +21,3 @@
 defaultJRE = Default JRE
 invalidPath = {0} is not valid
 emptyPath=Specify a valid path
-ServerEditorSectionTitle=Server Properties
-ServerEditorSectionDescription=Modify settings for the server.
-UpdateOperationDescription=Update generic server property
diff --git a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerWizardFragment.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerWizardFragment.java
index 50834ed..91003b2 100644
--- a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerWizardFragment.java
+++ b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerWizardFragment.java
@@ -69,14 +69,13 @@
             runtime= (GenericServerRuntime)wc.getAdapter(GenericServerRuntime.class);
             if(runtime==null)
             	runtime= (GenericServerRuntime)wc.loadAdapter(GenericServerRuntime.class,new NullProgressMonitor());
-        }
-        String serverTyepId = server.getServerType().getId();
-        String runtimeTypeId = runtime.getRuntime().getRuntimeType().getId();
-        if(runtimeTypeId==null){   
+        }        
+        String id = runtime.getRuntime().getRuntimeType().getId();
+        if(id==null){   
             return null;
         }
         Map runtimeProperties = runtime.getServerInstanceProperties();
-		ServerRuntime definition = getServerTypeDefinition(serverTyepId, runtimeTypeId, runtimeProperties);
+		ServerRuntime definition = getServerTypeDefinition(id,runtimeProperties);
         return definition;
     }
 
@@ -102,7 +101,7 @@
     	int suffix=1;
     	String suffixName =name;
     	while(isNameInUse(suffixName)){
-    		suffixName = name+" "+suffix; //$NON-NLS-1$
+    		suffixName = name+" "+suffix;
     		suffix++;
     	}
     	return suffixName;
@@ -127,7 +126,7 @@
     public String description() {
         String sName = getServerName();
         if(sName==null || sName.length()<1)
-            sName="Generic"; //$NON-NLS-1$
+            sName="Generic";
         return  GenericServerUIMessages.bind(GenericServerUIMessages.serverWizardDescription,sName);
     }
 
@@ -143,7 +142,7 @@
     public String title() {
         String sName= getServerName();
         if(sName==null || sName.length()<1)
-            sName="Generic"; //$NON-NLS-1$
+            sName="Generic";
         return  GenericServerUIMessages.bind(GenericServerUIMessages.serverWizardTitle,sName);
     }
 }
diff --git a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericUiPlugin.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericUiPlugin.java
index 432e4a4..fff5a81 100644
--- a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericUiPlugin.java
+++ b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericUiPlugin.java
@@ -22,12 +22,7 @@
  */
 public class GenericUiPlugin extends AbstractUIPlugin {
 	
-	/**
-	 * Plug-in ID
-	 */
-	public static final String PLUGIN_ID = "org.eclipse.jst.server.generic.ui"; //$NON-NLS-1$
-	
-    public static final String WIZBAN_IMAGE = "genericlogo"; //$NON-NLS-1$
+    public static final String WIZBAN_IMAGE = "genericlogo";
     //The shared instance.
 	private static GenericUiPlugin plugin;
 	//Resource bundle.
@@ -40,7 +35,7 @@
 		super();
 		plugin = this;
 		try {
-			resourceBundle = ResourceBundle.getBundle("org.eclipse.jst.server.generic.ui.GenericUiPluginResources"); //$NON-NLS-1$
+			resourceBundle = ResourceBundle.getBundle("org.eclipse.jst.server.generic.ui.GenericUiPluginResources");
 		} catch (MissingResourceException x) {
 			resourceBundle = null;
 		}
@@ -82,7 +77,7 @@
 
     protected ImageRegistry createImageRegistry() {
         ImageRegistry registry = new ImageRegistry();
-        ImageDescriptor desc = ImageDescriptor.createFromURL(getDefault().getBundle().getEntry("/icons/wizban/new_server_wiz.gif")); //$NON-NLS-1$
+        ImageDescriptor desc = ImageDescriptor.createFromURL(getDefault().getBundle().getEntry("/icons/wizban/new_server_wiz.gif"));
         registry.put(WIZBAN_IMAGE,desc);
         return registry;
     }
diff --git a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/InstallableRuntimeDecorator.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/InstallableRuntimeDecorator.java
index eff3be5..f5dbad3 100644
--- a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/InstallableRuntimeDecorator.java
+++ b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/InstallableRuntimeDecorator.java
@@ -51,7 +51,7 @@
 										new NullProgressMonitor());
 							} catch (CoreException e) {
 								Trace.trace(Trace.SEVERE,
-										"Error installing runtime", e); //$NON-NLS-1$
+										"Error installing runtime", e);
 							}
 						}
 					};
@@ -64,7 +64,7 @@
 						e.printStackTrace();
 					} catch (Exception e) {
 						Trace.trace(Trace.SEVERE,
-								"Error installing runtime", e); //$NON-NLS-1$
+								"Error installing runtime", e);
 					}
 
 				}
diff --git a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/JRESelectDecorator.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/JRESelectDecorator.java
index 5b0173d..e54bbf1 100644
--- a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/JRESelectDecorator.java
+++ b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/JRESelectDecorator.java
@@ -96,7 +96,7 @@
 	
 	protected boolean showPreferencePage(GenericServerComposite composite) {
 		PreferenceManager manager = PlatformUI.getWorkbench().getPreferenceManager();
-		IPreferenceNode node = manager.find("org.eclipse.jdt.ui.preferences.JavaBasePreferencePage").findSubNode("org.eclipse.jdt.debug.ui.preferences.VMPreferencePage");  //$NON-NLS-1$//$NON-NLS-2$
+		IPreferenceNode node = manager.find("org.eclipse.jdt.ui.preferences.JavaBasePreferencePage").findSubNode("org.eclipse.jdt.debug.ui.preferences.VMPreferencePage");
 		PreferenceManager manager2 = new PreferenceManager();
 		manager2.addToRoot(node);
 		final PreferenceDialog dialog = new PreferenceDialog(composite.getShell(), manager2);
diff --git a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/SWTUtil.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/SWTUtil.java
index ad196fe..4964138 100644
--- a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/SWTUtil.java
+++ b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/SWTUtil.java
@@ -13,26 +13,15 @@
 import org.eclipse.jface.dialogs.IDialogConstants;
 import org.eclipse.jface.resource.JFaceResources;
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.graphics.FontMetrics;
 import org.eclipse.swt.graphics.GC;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
 /**
- * SWT Utilities.
- * 
- * @author Gorkem Ercan
+ * SWT Utility class.
+ * Copied from org.eclipse.wst.server.ui.internal.
  */
 public class SWTUtil {
 	private static FontMetrics fontMetrics;
@@ -49,19 +38,15 @@
 	 * Returns a width hint for a button control.
 	 */
 	protected static int getButtonWidthHint(Button button) {
-		int widthHint = Dialog.convertHorizontalDLUsToPixels(fontMetrics,
-				IDialogConstants.BUTTON_WIDTH);
-		return Math.max(widthHint, button.computeSize(SWT.DEFAULT, SWT.DEFAULT,
-				true).x);
+		int widthHint = Dialog.convertHorizontalDLUsToPixels(fontMetrics, IDialogConstants.BUTTON_WIDTH);
+		return Math.max(widthHint, button.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
 	}
 
 	/**
 	 * Create a new button with the standard size.
 	 * 
-	 * @param comp
-	 *            the component to add the button to
-	 * @param label
-	 *            the button label
+	 * @param comp the component to add the button to
+	 * @param label the button label
 	 * @return a button
 	 */
 	public static Button createButton(Composite comp, String label) {
@@ -69,20 +54,17 @@
 		b.setText(label);
 		if (fontMetrics == null)
 			initializeDialogUnits(comp);
-		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL
-				| GridData.VERTICAL_ALIGN_BEGINNING);
+		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING);
 		data.widthHint = getButtonWidthHint(b);
 		b.setLayoutData(data);
 		return b;
 	}
-
+	
 	/**
 	 * Convert DLUs to pixels.
 	 * 
-	 * @param comp
-	 *            a component
-	 * @param x
-	 *            pixels
+	 * @param comp a component
+	 * @param x pixels
 	 * @return dlus
 	 */
 	public static int convertHorizontalDLUsToPixels(Composite comp, int x) {
@@ -94,10 +76,8 @@
 	/**
 	 * Convert DLUs to pixels.
 	 * 
-	 * @param comp
-	 *            a component
-	 * @param y
-	 *            pixels
+	 * @param comp a component
+	 * @param y pixels
 	 * @return dlus
 	 */
 	public static int convertVerticalDLUsToPixels(Composite comp, int y) {
@@ -105,277 +85,4 @@
 			initializeDialogUnits(comp);
 		return Dialog.convertVerticalDLUsToPixels(fontMetrics, y);
 	}
-
-	/**
-	 * Creates a label, text and a button to open a directory dialog.
-	 * 
-	 * @param title
-	 * @param value
-	 * @param parent
-	 * @return Text that holds value
-	 * 
-	 */
-	public static Text createLabeledPath(String title, String value, final Composite parent) {
-		return SWTUtil.createLabeledPath(title, value, parent, null);
-	}
-
-	/**
-	 * Creates a label, text and a button to open a directoty dialog. This
-	 * method creates Forum UI compatible widgets.
-	 * 
-	 * @param title
-	 * @param value
-	 * @param parent
-	 * @param toolkit
-	 * @return Text that holds value
-	 */
-	public static Text createLabeledPath(String title, String value, final Composite parent, FormToolkit toolkit) {
-		Label label = null;
-		Text cText = null;
-		Button button = null;
-
-		if (toolkit == null) {
-            label = new Label(parent, SWT.WRAP);
-            label.setText(title);
-			cText = new Text(parent, SWT.SHADOW_IN | SWT.BORDER);
-			button = SWTUtil.createButton(parent,
-					GenericServerUIMessages.serverTypeGroup_label_browse);
-		} else {
-			label = createFormLabel(title, parent, toolkit);
-			cText = toolkit.createText(parent, value);
-			button = toolkit.createButton(parent,
-					GenericServerUIMessages.serverTypeGroup_label_browse,
-					SWT.PUSH);
-		}
-
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-		gridData.horizontalSpan = 1;
-
-		final Text text = cText;
-		text.setLayoutData(gridData);
-		text.setText(value);
-		button.addSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent e) {
-				DirectoryDialog dlg = new DirectoryDialog(parent.getShell());
-				dlg.setFilterPath(text.getText().replace('\\', '/'));
-				String res = dlg.open();
-				if (res != null) {
-					text.setText(res.replace('\\', '/'));
-				}
-			}
-
-			public void widgetDefaultSelected(SelectionEvent e) {
-				widgetSelected(e);
-			}
-
-		});
-
-		return text;
-	}
-
-	/**
-	 * Creates a label, text and a button thats opens a file dialog
-	 * 
-	 * @param title
-	 * @param value
-	 * @param parent
-	 * @return Text that holds the value
-	 */
-	public static Text createLabeledFile(String title, String value, final Composite parent) {
-		return SWTUtil.createLabeledFile(title, value, parent, null);
-	}
-
-	/**
-	 * Creates a label, text and a button thats opens a file dialog. This method
-	 * is used for creating Form UI compatible widgets
-	 * 
-	 * @param title
-	 * @param value
-	 * @param parent
-	 * @param toolkit
-	 * @return
-	 */
-	public static Text createLabeledFile(String title, String value, final Composite parent, FormToolkit toolkit) {
-
-		Label label;
-		Text cText;
-		Button button;
-		if (toolkit == null) {
-			label = new Label(parent, SWT.WRAP);
-			label.setText(title);
-			cText = new Text(parent, SWT.SHADOW_IN | SWT.BORDER);
-			button = SWTUtil.createButton(parent,
-					GenericServerUIMessages.serverTypeGroup_label_browse);
-		} else {
-			label = createFormLabel(title, parent, toolkit);
-			cText = toolkit.createText(parent, value);
-			button = toolkit.createButton(parent,
-					GenericServerUIMessages.serverTypeGroup_label_browse,
-					SWT.PUSH);
-		}
-		final Text text = cText;
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL
-				| GridData.GRAB_HORIZONTAL);
-		gridData.horizontalSpan = 1;
-		text.setLayoutData(gridData);
-		text.setText(value);
-		button.addSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent e) {
-				FileDialog dlg = new FileDialog(parent.getShell());
-				dlg.setFileName(text.getText().replace('\\', '/'));
-				String res = dlg.open();
-				if (res != null) {
-					text.setText(res.replace('\\', '/'));
-				}
-			}
-
-			public void widgetDefaultSelected(SelectionEvent e) {
-				widgetSelected(e);
-			}
-
-		});
-
-		return text;
-	}
-
-	/**
-	 * Creates a label and a text
-	 * 
-	 * @param title
-	 * @param value
-	 * @param parent
-	 * @return Text object that holds the value
-	 */
-	public static Text createLabeledText(String title, String value, Composite parent) {
-		return SWTUtil.createLabeledText( title, value, parent, null );
-	}
-
-	/**
-	 * Creates a label and a text. This method created form ui compatible
-	 * widgets
-	 * 
-	 * @param title
-	 * @param value
-	 * @param parent
-	 * @param toolkit
-	 * @return Text control that holds the value
-	 */
-	public static Text createLabeledText(String title, String value, Composite parent, FormToolkit toolkit) {
-
-		Label label;
-		Text text;
-		if (toolkit == null) {
-			label = new Label(parent, SWT.WRAP);
-			label.setText(title);
-			text = new Text(parent, SWT.SHADOW_IN | SWT.BORDER);
-		} else {
-			label = createFormLabel(title, parent, toolkit);
-			text = toolkit.createText(parent, value);
-		}
-
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL
-				| GridData.GRAB_HORIZONTAL);
-		gridData.horizontalSpan = 2;
-		text.setLayoutData(gridData);
-		text.setText(value);
-
-		return text;
-	}
-
-	/**
-	 * Creates a CHECK style button and label
-	 * 
-	 * @param title
-	 * @param value
-	 * @param parent
-	 * @return Check Button
-	 */
-	public static Button createLabeledCheck(String title, boolean value, Composite parent) {
-		return SWTUtil.createLabeledCheck(title, value, parent, null);
-	}
-
-	/**
-	 * Creates a CHECK style button and label. This method is form ui compatible
-	 * 
-	 * @param title
-	 * @param value
-	 * @param parent
-	 * @param toolkit
-	 * @return
-	 */
-	public static Button createLabeledCheck(String title, boolean value, Composite parent, FormToolkit toolkit) {
-		Label label;
-		Button button;
-		if (toolkit == null) {
-			label = new Label(parent, SWT.WRAP);
-			label.setText(title);
-			button = new Button(parent, SWT.CHECK);
-		} else {
-			label = createFormLabel(title, parent, toolkit);
-			button = toolkit.createButton(parent, null, SWT.CHECK);
-		}
-
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL
-				| GridData.GRAB_HORIZONTAL);
-		gridData.horizontalSpan = 2;
-		button.setLayoutData(gridData);
-		button.setSelection(value);
-		return button;
-	}
-
-	/**
-	 * Creates a label and an editable Combo
-	 * 
-	 * @param title
-	 * @param values
-	 * @param parent
-	 * @return Combo
-	 */
-	public static Combo createLabeledCombo(String title, String[] values,Composite parent) {
-		return SWTUtil.createLabeledCombo(title, values, parent, null);
-	}
-
-	/**
-	 * Creates a label and an editable Combo
-	 * 
-	 * @param title
-	 * @param values
-	 * @param parent
-	 * @param toolkit
-	 * @return Combo
-	 */
-	public static Combo createLabeledCombo(String title, String[] values, Composite parent, FormToolkit toolkit) {
-
-		Label label;
-
-		if (toolkit == null) {
-			label = new Label(parent, SWT.WRAP);
-			label.setText(title);
-		} else {
-			label = createFormLabel(title, parent, toolkit);
-		}
-		Combo combo = new Combo(parent, SWT.READ_ONLY);
-		if (toolkit != null) {
-			toolkit.adapt(combo, true, true);
-		}
-
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL
-				| GridData.GRAB_HORIZONTAL);
-		gridData.horizontalSpan = 2;
-		combo.setLayoutData(gridData);
-
-		for (int i = 0; i < values.length; i++) {
-			combo.add(values[i]);
-		}
-		if (combo.getItemCount() > 0)
-			combo.select(0);
-		return combo;
-	}
-
-	private static Label createFormLabel(String title, Composite parent, FormToolkit toolkit) {
-		Label label;
-		label = toolkit.createLabel(parent, title);
-		label.setForeground(toolkit.getColors().getColor(FormColors.TITLE));
-		return label;
-	}
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/ServerDefinitionTypeAwareWizardFragment.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/ServerDefinitionTypeAwareWizardFragment.java
index 1132884..1a910d1 100644
--- a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/ServerDefinitionTypeAwareWizardFragment.java
+++ b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/ServerDefinitionTypeAwareWizardFragment.java
@@ -77,18 +77,4 @@
 	{
 	    return CorePlugin.getDefault().getServerTypeDefinitionManager().getServerRuntimeDefinition(definitionID,properties);
 	}
-
-    /**
-     * Retuns the ServerRuntime.
-     * @param serverTypeId
-     * @param runtimeTypeId
-     * @param properties
-     * @return
-     */ 
-    protected ServerRuntime getServerTypeDefinition(String serverTypeId, String runtimeTypeId, Map properties)
-    {
-        return CorePlugin.getDefault().getServerTypeDefinitionManager().getServerRuntimeDefinition(serverTypeId, runtimeTypeId, properties);
-    }
-
 }
-
diff --git a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/ServerTypeDefinitionDecorator.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/ServerTypeDefinitionDecorator.java
index b891fba..9ea43f8 100644
--- a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/ServerTypeDefinitionDecorator.java
+++ b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/ServerTypeDefinitionDecorator.java
@@ -15,18 +15,27 @@
 import java.util.List;
 import java.util.Map;
 import java.util.StringTokenizer;
+
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.dialogs.IMessageProvider;
 import org.eclipse.jst.server.generic.servertype.definition.Property;
 import org.eclipse.jst.server.generic.servertype.definition.ServerRuntime;
 import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.DirectoryDialog;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Text;
+import org.eclipse.jst.server.generic.ui.internal.SWTUtil;
 import org.eclipse.wst.server.ui.wizard.IWizardHandle;
 /**
  * Provides the UI objects for gathering user information
@@ -110,50 +119,179 @@
 	
     private void createPropertyControl(Composite parent, Property property){
     	if( Property.TYPE_DIRECTORY.equals(property.getType())) {
-    		Text path = SWTUtil.createLabeledPath(property.getLabel(),getPropertyValue(property),parent);
+    		Text path = createLabeledPath(property.getLabel(),getPropertyValue(property),parent);
     		path.setData(property);
-    		path.addModifyListener(new PathModifyListener());
     		registerControl(path);
      	} else if( Property.TYPE_FILE.equals(property.getType())) {
-    	    Text file = SWTUtil.createLabeledFile(property.getLabel(),getPropertyValue(property),parent);
+    	    Text file = createLabeledFile(property.getLabel(),getPropertyValue(property),parent);
     		file.setData(property);
-    		file.addModifyListener(new PathModifyListener());
     		registerControl(file);
+       	} else if( Property.TYPE_TEXT.equals(property.getType())) {
+    	    Text str = createLabeledText(property.getLabel(),getPropertyValue(property),parent);
+    		str.setData(property);
+    		registerControl(str);
        	} else if( Property.TYPE_BOOLEAN.equals(property.getType())) {
-    	    Button bool =SWTUtil.createLabeledCheck(property.getLabel(),("true".equals( getPropertyValue(property))),	parent); //$NON-NLS-1$
+    	    Button bool =createLabeledCheck(property.getLabel(),("true".equals( getPropertyValue(property))),	parent); //$NON-NLS-1$
     		bool.setData(property);
     		registerControl(bool);
        	}else if(Property.TYPE_SELECT.equals(property.getType())) {
-    		StringTokenizer tokenizer = new StringTokenizer(property.getDefault(),","); //$NON-NLS-1$
-    		int tokenCount = tokenizer.countTokens();
-    		String[] values = new String[tokenCount];
-    		int i =0;
-    		while(tokenizer.hasMoreTokens() && i<tokenCount){
-    			values[i]=tokenizer.nextToken();
-    			i++;
-    		}
-       		Combo combo = SWTUtil.createLabeledCombo(property.getLabel(),values, parent);
+       		Combo combo = createLabeledCombo(parent, property);
        		combo.setData(property);
        		registerControl(combo);
        	}
-       	else {//default is TEXT
-    	    Text defaultText= SWTUtil.createLabeledText(property.getLabel(),getPropertyValue(property),parent);
+       	else  {
+    	    Text defaultText= createLabeledText(property.getLabel(),getPropertyValue(property),parent);
     		defaultText.setData(property);
     		registerControl(defaultText);
     	}
     }
 
-	private void registerControl(Control control)
+	private Combo createLabeledCombo(Composite defPanel, Property property) {
+		
+	   	GridData gridData;
+    	Label label = new Label(defPanel, SWT.WRAP);
+    	gridData = new GridData();
+    	label.setLayoutData(gridData);
+    	label.setText(property.getLabel());
+
+		Combo combo = new Combo(defPanel,SWT.READ_ONLY);
+    	gridData = new GridData(GridData.FILL_HORIZONTAL
+    			| GridData.GRAB_HORIZONTAL);
+    	gridData.horizontalSpan = 2;
+    	combo.setLayoutData(gridData);
+    	
+		StringTokenizer tokenizer = new StringTokenizer(property.getDefault(),","); //$NON-NLS-1$
+		while(tokenizer.hasMoreTokens()){
+			combo.add(tokenizer.nextToken());
+		}
+		if(combo.getItemCount()>0)
+			combo.select(0);
+		return combo;
+	}
+    private void registerControl(Control control)
     {
     	fPropertyControls.add(control);
     }
+    private Button createLabeledCheck(String title, boolean value, Composite defPanel) {
+    	GridData gridData;
+    	Label label = new Label(defPanel, SWT.WRAP);
+    	gridData = new GridData();
+    	label.setLayoutData(gridData);
+    	label.setText(title);
+
+    	Button fButton = new Button(defPanel, SWT.CHECK);
+    	
+    	gridData = new GridData(GridData.FILL_HORIZONTAL
+    			| GridData.GRAB_HORIZONTAL);
+    	gridData.horizontalSpan = 2;
+    	fButton.setLayoutData(gridData);
+    	fButton.setSelection(value);
+    	fButton.addSelectionListener(new SelectionListener() {
+            public void widgetSelected(SelectionEvent e) {
+             //nothing to do 
+            }
+
+            public void widgetDefaultSelected(SelectionEvent e) {
+            // nothing to do
+            }
+        });
+    	
+    	return fButton;
+    }
+    private Text createLabeledFile(String title, String value,final Composite defPanel) {
+    	GridData gridData;
+    	Label label = new Label(defPanel, SWT.WRAP);
+    	gridData = new GridData();
+    	label.setLayoutData(gridData);
+    	label.setText(title);
+    
+    	final Text text = new Text(defPanel, SWT.SHADOW_IN | SWT.BORDER);
+    	gridData = new GridData(GridData.FILL_HORIZONTAL
+    			| GridData.GRAB_HORIZONTAL);
+    	gridData.horizontalSpan = 1;
+    	text.setLayoutData(gridData);
+    	text.setText(value);
+    	text.addModifyListener(new PathModifyListener());
+    	Button fButton = SWTUtil.createButton(defPanel,GenericServerUIMessages.serverTypeGroup_label_browse);
+    	
+    	fButton.addSelectionListener(new SelectionListener() {
+    		public void widgetSelected(SelectionEvent e) {
+    			FileDialog dlg = new FileDialog(defPanel.getShell());
+    			dlg.setFileName(text.getText().replace('\\','/'));
+    			String res = dlg.open();
+    			if (res != null) {
+    				text.setText(res.replace('\\','/'));
+
+    			}
+    		}
+    
+    		public void widgetDefaultSelected(SelectionEvent e) {
+    			widgetSelected(e);
+    		}
+    
+    	});
+    
+    	return text;
+    }
 	
-    private String getPropertyValue(Property property){	
+    private Text createLabeledPath(String title, String value,
+    		final Composite parent) {
+    	GridData gridData;
+    	Label label = new Label(parent, SWT.WRAP);
+    	gridData = new GridData();
+    	label.setLayoutData(gridData);
+    	label.setText(title);
+    
+    	final Text text = new Text(parent, SWT.SHADOW_IN | SWT.BORDER);
+    	gridData = new GridData(GridData.FILL_HORIZONTAL);
+    	gridData.horizontalSpan = 1;
+    	text.setLayoutData(gridData);
+    	text.setText(value);
+    	text.addModifyListener(new PathModifyListener());
+    	Button fButton = SWTUtil.createButton(parent,GenericServerUIMessages.serverTypeGroup_label_browse);
+    	fButton.addSelectionListener(new SelectionListener() {
+    		public void widgetSelected(SelectionEvent e) {
+    			DirectoryDialog dlg = new DirectoryDialog(parent.getShell());
+    			dlg.setFilterPath(text.getText().replace('\\','/'));
+    			String res = dlg.open();
+    			if (res != null) {
+    				text.setText(res.replace('\\','/'));
+
+    			}
+    		}
+    
+    		public void widgetDefaultSelected(SelectionEvent e) {
+    			widgetSelected(e);
+    		}
+    
+    	});
+    	return text;
+    }
+    private Text createLabeledText(String title, String value,
+    		Composite defPanel) {
+    	GridData gridData;
+    	Label label = new Label(defPanel, SWT.WRAP);
+    	gridData = new GridData();
+    	label.setLayoutData(gridData);
+    	label.setText(title);
+    
+    	Text text = new Text(defPanel, SWT.SHADOW_IN | SWT.BORDER);
+    	gridData = new GridData(GridData.FILL_HORIZONTAL
+    			| GridData.GRAB_HORIZONTAL);
+    	gridData.horizontalSpan = 2;
+    	text.setLayoutData(gridData);
+    	text.setText(value);
+
+    	return text;
+    }
+	private String getPropertyValue(Property property){	
 		if(fProperties!=null && fProperties.isEmpty()==false){
 		//user properties exist use those
-			return fDefinition.getResolver().resolveProperties((String)fProperties.get(property.getId()));
+			return(String)fProperties.get(property.getId()); 
 		}	
-		return fDefinition.getResolver().resolveProperties(property.getDefault());
+		if(Property.CONTEXT_SERVER.equals(property.getContext()))
+			return fDefinition.getResolver().resolveProperties(property.getDefault());
+		return property.getDefault();
 	}	
 
    /**
diff --git a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/editor/ServerPropertiesEditorSection.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/editor/ServerPropertiesEditorSection.java
deleted file mode 100644
index 9da97b6..0000000
--- a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/editor/ServerPropertiesEditorSection.java
+++ /dev/null
@@ -1,204 +0,0 @@
-package org.eclipse.jst.server.generic.ui.internal.editor;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jst.server.generic.core.internal.GenericServer;
-import org.eclipse.jst.server.generic.core.internal.GenericServerRuntime;
-import org.eclipse.jst.server.generic.servertype.definition.Property;
-import org.eclipse.jst.server.generic.ui.internal.GenericServerUIMessages;
-import org.eclipse.jst.server.generic.ui.internal.SWTUtil;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.wst.server.ui.editor.ServerEditorSection;
-
-public class ServerPropertiesEditorSection extends ServerEditorSection{
-	private GenericServer fServer;
-	private PropertyChangeListener fPropertyChangeListener;
-	private Map fControls = new HashMap();
-    private boolean fUpdating = false;
-    
-	public void init(IEditorSite site, IEditorInput input) {
-		super.init(site, input);
-		if(server!=null){
-			fServer = (GenericServer)server.loadAdapter(GenericServer.class, new NullProgressMonitor());
-		}
-		fPropertyChangeListener = new PropertyChangeListener(){
-
-			public void propertyChange( PropertyChangeEvent evt ) {
-				if(evt.getPropertyName().equals( GenericServerRuntime.SERVER_INSTANCE_PROPERTIES )) 
-                {
-                    if ( !fUpdating ){
-                        fUpdating = true;
-                        updateControls();
-                        fUpdating = false;
-                    }
-                }
-			}
-		};
-		server.addPropertyChangeListener( fPropertyChangeListener );
-	}
-    
-	protected void updateControls() {
-        List props = fServer.getServerDefinition().getProperty(); 
-        for (Iterator iter = props.iterator(); iter.hasNext();) {
-            Property property = (Property) iter.next();
-            if(property.getContext().equals(Property.CONTEXT_SERVER))
-            {
-                if( Property.TYPE_BOOLEAN.equals(property.getType()) ){
-                    Button b = (Button)fControls.get( property.getId() );
-                    b.setSelection( "true".equals(  getPropertyValue( property ) ) ); //$NON-NLS-1$
-                }
-                else if( Property.TYPE_SELECT.equals( property.getType() )){
-                    Combo c = (Combo)fControls.get( property.getId() );
-                    String value = getPropertyValue( property )==null ? "": getPropertyValue( property ); //$NON-NLS-1$
-                    c.setText( getPropertyValue( property ) );
-                }
-                else{
-                    Text t = (Text)fControls.get( property.getId() );
-                    String value = getPropertyValue( property )==null ? "": getPropertyValue( property ); //$NON-NLS-1$
-                    t.setText( value );
-                }
-            }
-        }  
-    }
-
-    public void createSection(Composite parent) {
-		super.createSection(parent);
-		FormToolkit formToolkit = getFormToolkit(parent.getDisplay());
-		Section section = formToolkit.createSection(parent, ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED
-				| ExpandableComposite.TITLE_BAR | Section.DESCRIPTION | ExpandableComposite.FOCUS_TITLE);
-			section.setText(GenericServerUIMessages.ServerEditorSectionTitle);
-			section.setDescription(GenericServerUIMessages.ServerEditorSectionDescription);
-			section.setLayoutData(new GridData(SWT.FILL,SWT.NONE,true,false));
-			
-		Composite composite = formToolkit.createComposite(section);
-		GridLayout layout = new GridLayout();
-		layout.numColumns=3;
-		layout.marginHeight = 5;
-		layout.marginWidth = 10;
-		layout.verticalSpacing = 5;
-		layout.horizontalSpacing = 15;
-		composite.setLayout(layout);
-		composite.setLayoutData(new GridData(SWT.FILL,SWT.NONE,true,false));
-		
-		List props = fServer.getServerDefinition().getProperty();
-		for (Iterator iter = props.iterator(); iter.hasNext();) {
-			Property property = (Property) iter.next();
-			if(property.getContext().equals(Property.CONTEXT_SERVER))
-				createPropertyControl(composite, property,formToolkit);
-		}
-
-		formToolkit.paintBordersFor(composite);
-		section.setClient(composite);
-	}
-	
-	private void executeUpdateOperation(String propertyName, String propertyValue)
-	{
-        if( !fUpdating )
-        {
-            fUpdating = true;
-            execute( new UpdateServerPropertyOperation( server,
-                    GenericServerUIMessages.UpdateOperationDescription, propertyName,
-                    propertyValue ) );
-            fUpdating = false;
-        }
-	}
-    
-    private void createPropertyControl(Composite parent, final Property property, FormToolkit toolkit){
-    	
-    	if( Property.TYPE_DIRECTORY.equals(property.getType())) {
-    		final Text path = SWTUtil.createLabeledPath(property.getLabel(),getPropertyValue(property),parent,toolkit);
-            fControls.put( property.getId(), path );
-    		path.addModifyListener(new ModifyListener() {			
-				public void modifyText(ModifyEvent e) {
-					executeUpdateOperation(property.getId(),path.getText());
-				}
-			});
-     	} else if( Property.TYPE_FILE.equals(property.getType())) {
-            
-    	    final Text file = SWTUtil.createLabeledFile(property.getLabel(),getPropertyValue(property),parent,toolkit);
-    		fControls.put( property.getId(), file );
-            file.addModifyListener(new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					executeUpdateOperation(property.getId(),file.getText());
-				}
-			});	
-       	}else if( Property.TYPE_BOOLEAN.equals(property.getType())) {
-    	    final Button bool = SWTUtil.createLabeledCheck(property.getLabel(),("true".equals( getPropertyValue(property))),parent,toolkit); //$NON-NLS-1$
-    	    fControls.put( property.getId(), bool );
-            bool.addSelectionListener(new SelectionListener() {			
-				public void widgetSelected(SelectionEvent e) {
-					executeUpdateOperation(property.getId(),  Boolean.toString(bool.getSelection()));
-				}
-				public void widgetDefaultSelected(SelectionEvent e) {
-					// Do Nothing
-				}
-			});	
-       	}else if(Property.TYPE_SELECT.equals(property.getType())) {
-    		StringTokenizer tokenizer = new StringTokenizer(property.getDefault(),","); //$NON-NLS-1$
-    		int tokenCount = tokenizer.countTokens();
-    		String[] values = new String[tokenCount];
-    		int i =0;
-    		while(tokenizer.hasMoreTokens() && i<tokenCount){
-    			values[i]=tokenizer.nextToken();
-    			i++;
-    		}
-       		final Combo combo = SWTUtil.createLabeledCombo(property.getLabel(), values, parent,toolkit);
-       		fControls.put( property.getId(), combo );
-            combo.addModifyListener(new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					executeUpdateOperation(property.getId(),combo.getText());
-				}
-			});
-       		combo.addSelectionListener(new SelectionListener() {		
-				public void widgetSelected(SelectionEvent e) {
-					executeUpdateOperation(property.getId(),combo.getText());
-				}			
-				public void widgetDefaultSelected(SelectionEvent e) {
-					// nothing to do
-				}			
-			});	
-       	}
-       	else  {// Property.TYPE_TEXT
-    	    final Text defaultText= SWTUtil.createLabeledText(property.getLabel(),getPropertyValue(property),parent,toolkit);
-            fControls.put( property.getId(), defaultText );
-    		defaultText.addModifyListener(new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					executeUpdateOperation(property.getId(), defaultText.getText());
-				}
-			});
-    	}
-    }
-
-	private String getPropertyValue(Property property) {
-		 return(String) fServer.getServerInstanceProperties().get(property.getId());
-	}
-
-	public void dispose() {
-	    super.dispose();
-        if( server!= null )
-            server.removePropertyChangeListener( fPropertyChangeListener );
-	}
-	
-}
diff --git a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/editor/UpdateServerPropertyOperation.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/editor/UpdateServerPropertyOperation.java
deleted file mode 100644
index fae82b1..0000000
--- a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/editor/UpdateServerPropertyOperation.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * 
- */
-package org.eclipse.jst.server.generic.ui.internal.editor;
-
-import java.util.HashMap;
-import java.util.Map;
-
-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.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jst.server.generic.core.internal.GenericServer;
-import org.eclipse.jst.server.generic.ui.internal.GenericUiPlugin;
-import org.eclipse.wst.server.core.IServerWorkingCopy;
-
-public class UpdateServerPropertyOperation extends AbstractOperation {
-	private GenericServer fGenericServer;
-	private String  fPropertyName;
-	private String fPRopertyValue;
-	private String fOldValue;
-	
-	public UpdateServerPropertyOperation(IServerWorkingCopy server, String name, String propertyName, String propertyValue) {
-		super(name);
-		if(server!=null){
-			fGenericServer = (GenericServer)server.loadAdapter(GenericServer.class, new NullProgressMonitor());
-		}
-		fPropertyName=propertyName;
-		fPRopertyValue=propertyValue;	
-	}
-	
-	public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
-		Map map = new HashMap( fGenericServer.getServerInstanceProperties() );
-		if(map.containsKey(fPropertyName))
-		{
-            fOldValue = ( String )map.get( fPropertyName );
-			map.put(fPropertyName, fPRopertyValue);
-            fGenericServer.setServerInstanceProperties( map );
-			return null;
-		}
-		return new Status(IStatus.ERROR,GenericUiPlugin.PLUGIN_ID,0,"Property does not exist",null);
-	}
-
-	public IStatus redo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
-		return execute(monitor,info);
-	}
-
-	public IStatus undo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
-		Map map = new HashMap(fGenericServer.getServerInstanceProperties());
-		if(map.containsKey(fPropertyName))
-		{
-			map.put(fPropertyName, fOldValue);
-            fGenericServer.setServerInstanceProperties(map);
-			return null;
-		}
-		return new Status(IStatus.ERROR,GenericUiPlugin.PLUGIN_ID,0,"Property does not exist",null);
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.server.pde/.classpath b/plugins/org.eclipse.jst.server.pde/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/plugins/org.eclipse.jst.server.pde/.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"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.jst.server.pde/.cvsignore b/plugins/org.eclipse.jst.server.pde/.cvsignore
deleted file mode 100644
index ddb0a2d..0000000
--- a/plugins/org.eclipse.jst.server.pde/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin
-.settings
diff --git a/plugins/org.eclipse.jst.server.pde/.project b/plugins/org.eclipse.jst.server.pde/.project
deleted file mode 100644
index 7a788cc..0000000
--- a/plugins/org.eclipse.jst.server.pde/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jst.server.pde</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>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.jst.server.pde/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.server.pde/META-INF/MANIFEST.MF
deleted file mode 100644
index 26945f9..0000000
--- a/plugins/org.eclipse.jst.server.pde/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,13 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Generic server PDE Template
-Bundle-SymbolicName: org.eclipse.jst.server.generic.pde; singleton:=true
-Bundle-Version: 1.0.0
-Bundle-Activator: org.eclipse.jst.server.generic.pde.ServerPdePlugin
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.pde.ui,
- org.eclipse.pde.core
-Eclipse-AutoStart: true
diff --git a/plugins/org.eclipse.jst.server.pde/about.html b/plugins/org.eclipse.jst.server.pde/about.html
deleted file mode 100644
index 4ec5989..0000000
--- a/plugins/org.eclipse.jst.server.pde/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>May 2, 2006</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.jst.server.pde/build.properties b/plugins/org.eclipse.jst.server.pde/build.properties
deleted file mode 100644
index 1393183..0000000
--- a/plugins/org.eclipse.jst.server.pde/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-##################################################################################################
-# Copyright (c) 2005 Eteration A.S. and Gorkem Ercan. 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: Gorkem Ercan - initial API and implementation
-#               
-###################################################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               templates_3.0/,\
-               icons/,\
-               plugin.properties,\
-               about.html
-src.includes = src/
diff --git a/plugins/org.eclipse.jst.server.pde/build.xml b/plugins/org.eclipse.jst.server.pde/build.xml
deleted file mode 100644
index c17f101..0000000
--- a/plugins/org.eclipse.jst.server.pde/build.xml
+++ /dev/null
@@ -1,266 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="org.eclipse.jst.server.generic.pde" default="build.jars" basedir=".">
-
-	<property name="basews" value="${ws}"/>
-	<property name="baseos" value="${os}"/>
-	<property name="basearch" value="${arch}"/>
-	<property name="basenl" value="${nl}"/>
-
-	<!-- Compiler settings. -->
-	<property name="javacFailOnError" value="false"/>
-	<property name="javacDebugInfo" value="on"/>
-	<property name="javacVerbose" value="true"/>
-	<property name="javacSource" value="1.3"/>
-	<property name="javacTarget" value="1.2"/>
-	<property name="compilerArg" value=""/>
-	<path id="path_bootclasspath">
-		<fileset dir="${java.home}/lib">
-			<include name="*.jar"/>
-		</fileset>
-	</path>
-	<property name="bootclasspath" refid="path_bootclasspath"/>
-
-	<target name="init" depends="properties">
-		<condition property="pluginTemp" value="${buildTempFolder}/plugins">
-			<isset property="buildTempFolder"/>
-		</condition>
-		<property name="pluginTemp" value="${basedir}"/>
-		<condition property="build.result.folder" value="${pluginTemp}/org.eclipse.jst.server.generic.pde">
-			<isset property="buildTempFolder"/>
-		</condition>
-		<property name="build.result.folder" value="${basedir}"/>
-		<property name="temp.folder" value="${basedir}/temp.folder"/>
-		<property name="plugin.destination" value="${basedir}"/>
-	</target>
-
-	<target name="properties" if="eclipse.running">
-		<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
-
-	</target>
-
-	<target name="build.update.jar" depends="init" description="Build the plug-in: org.eclipse.jst.server.generic.pde for an update site.">
-		<delete dir="${temp.folder}"/>
-		<mkdir dir="${temp.folder}"/>
-		<antcall target="build.jars"/>
-		<antcall target="gather.bin.parts">
-			<param name="destination.temp.folder" value="${temp.folder}/"/>
-		</antcall>
-		<zip destfile="${plugin.destination}/org.eclipse.jst.server.generic.pde_1.0.0.jar" basedir="${temp.folder}/org.eclipse.jst.server.generic.pde_1.0.0" filesonly="false" whenempty="skip" update="false"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-	<target name="@dot" depends="init" unless="@dot" description="Create jar: org.eclipse.jst.server.generic.pde @dot.">
-		<delete dir="${temp.folder}/@dot.bin"/>
-		<mkdir dir="${temp.folder}/@dot.bin"/>
-		<!-- compile the source code -->
-		<javac destdir="${temp.folder}/@dot.bin" failonerror="${javacFailOnError}" verbose="${javacVerbose}" debug="${javacDebugInfo}" includeAntRuntime="no" bootclasspath="${bootclasspath}" source="${javacSource}" target="${javacTarget}"		>
-			<compilerarg line="${compilerArg}"/>
-			<classpath>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.ui_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.core.runtime_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.osgi_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.help_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.swt_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.swt.win32.win32.x86_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.jface_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.core.commands_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.ui.workbench_3.1.0.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ui.workbench.compatibility_3.1.0/compatibility.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ui.workbench.compatibility_3.1.0/@dot"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.core.expressions_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.core.resources_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.core.resources.compatibility_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.core.resources.win32_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.core.runtime.compatibility_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.update.configurator_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.ant.core_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.core.variables_3.1.0.jar"/>
-				<pathelement path="../org.eclipse.pde.ui/eclipse3/target-0.7/eclipse/plugins/org.eclipse.pde.ui_3.1.0.jar"/>
-				<pathelement path="../org.eclipse.pde.ui/org.eclipse.pde.ui_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.ui.ide_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.ui.win32_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.ui.views_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.update.core_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.update.core.win32_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.update.ui_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.ui.forms_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.jface.text_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.text_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.ui.workbench.texteditor_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.ui.editors_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.core.filebuffers_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.debug.core_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.debug.ui_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.ui.console_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.jdt.core_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.team.core_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.jdt.debug.ui_3.1.0.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.jdt.debug_3.1.0/jdi.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.jdt.debug_3.1.0/jdimodel.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.jdt.debug_3.1.0/tools.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.jdt.launching_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.jdt.ui_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.search_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.compare_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.ltk.core.refactoring_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.ltk.ui.refactoring_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.pde_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.pde.core_3.1.0.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.pde.build_3.1.0/pdebuild.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-antlr.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-apache-bcel.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-apache-bsf.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-apache-log4j.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-apache-oro.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-apache-regexp.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-apache-resolver.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-commons-logging.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-commons-net.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-icontract.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-jai.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-javamail.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-jdepend.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-jmf.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-jsch.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-junit.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-launcher.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-netrexx.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-nodeps.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-starteam.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-stylebook.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-swing.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-trax.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-vaj.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-weblogic.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-xalan1.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.ant_1.6.5/lib/ant-xslp.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-antlr.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-apache-bcel.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-apache-bsf.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-apache-log4j.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-apache-oro.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-apache-regexp.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-apache-resolver.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-commons-logging.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-commons-net.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-icontract.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-jai.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-javamail.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-jdepend.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-jmf.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-jsch.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-junit.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-launcher.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-netrexx.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-nodeps.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-starteam.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-stylebook.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-swing.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-trax.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-vaj.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-weblogic.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-xalan1.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/lib/ant-xslp.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.ant.optional.junit_2.1.0/@dot"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.junit_3.8.1/junit.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.ant.ui_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.ui.externaltools_3.1.0.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.jdt.junit_3.1.0/junitsupport.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.eclipse.jdt.junit.runtime_3.1.0/junitruntime.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.ui.intro_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.ui.cheatsheets_3.1.0.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.help.base_3.1.0.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.lucene_1.4.3/lucene-1.4.3.jar"/>
-				<pathelement path="../../../../eclipse3/target-0.7/eclipse/plugins/org.apache.lucene_1.4.3/parser.jar"/>
-				<pathelement path="..\..\..\..\eclipse3\target-0.7\eclipse\plugins\org.eclipse.help.appserver_3.1.0.jar"/>
-			</classpath>
-			<src path="src/"			/>
-			</javac>
-		<!-- Copy necessary resources -->
-		<copy todir="${temp.folder}/@dot.bin" failonerror="true" overwrite="false">
-			<fileset dir="src/" excludes="**/*.java, **/package.htm*,null"			/>
-		</copy>
-		<mkdir dir="${build.result.folder}"/>
-		<copy todir="${build.result.folder}/@dot" failonerror="true" overwrite="false">
-			<fileset dir="${temp.folder}/@dot.bin"			/>
-		</copy>
-		<delete dir="${temp.folder}/@dot.bin"/>
-	</target>
-
-	<target name="src.zip" depends="init" unless="src.zip">
-		<mkdir dir="${build.result.folder}"/>
-		<zip destfile="${build.result.folder}/src.zip" filesonly="false" whenempty="skip" update="false">
-			<fileset dir="src/" includes="**/*.java"			/>
-		</zip>
-	</target>
-
-	<target name="build.jars" depends="init" description="Build all the jars for the plug-in: org.eclipse.jst.server.generic.pde.">
-		<available property="@dot" file="${build.result.folder}/@dot"/>
-		<antcall target="@dot"/>
-	</target>
-
-	<target name="build.sources" depends="init">
-		<available property="src.zip" file="${build.result.folder}/src.zip"/>
-		<antcall target="src.zip"/>
-	</target>
-
-	<target name="gather.bin.parts" depends="init" if="destination.temp.folder">
-		<mkdir dir="${destination.temp.folder}/org.eclipse.jst.server.generic.pde_1.0.0"/>
-		<copy todir="${destination.temp.folder}/org.eclipse.jst.server.generic.pde_1.0.0" failonerror="true" overwrite="false">
-			<fileset dir="${build.result.folder}/@dot" includes="**"			/>
-		</copy>
-		<copy todir="${destination.temp.folder}/org.eclipse.jst.server.generic.pde_1.0.0" failonerror="true" overwrite="false">
-			<fileset dir="${basedir}" includes="META-INF/,null,plugin.xml,templates_3.0/,icons/,plugin.properties,build.properties"			/>
-		</copy>
-	</target>
-
-	<target name="build.zips" depends="init">
-	</target>
-
-	<target name="gather.sources" depends="init" if="destination.temp.folder">
-		<mkdir dir="${destination.temp.folder}/org.eclipse.jst.server.generic.pde_1.0.0"/>
-		<copy file="${build.result.folder}/src.zip" todir="${destination.temp.folder}/org.eclipse.jst.server.generic.pde_1.0.0" failonerror="false" overwrite="false"/>
-		<copy todir="${destination.temp.folder}/org.eclipse.jst.server.generic.pde_1.0.0" failonerror="false" overwrite="false">
-			<fileset dir="${basedir}" includes="src/"			/>
-		</copy>
-	</target>
-
-	<target name="gather.logs" depends="init" if="destination.temp.folder">
-		<mkdir dir="${destination.temp.folder}/org.eclipse.jst.server.generic.pde_1.0.0"/>
-		<copy file="${temp.folder}/@dot.bin.log" todir="${destination.temp.folder}/org.eclipse.jst.server.generic.pde_1.0.0" failonerror="false" overwrite="false"/>
-	</target>
-
-	<target name="clean" depends="init" description="Clean the plug-in: org.eclipse.jst.server.generic.pde of all the zips, jars and logs created.">
-		<delete dir="${build.result.folder}/@dot"/>
-		<delete file="${build.result.folder}/src.zip"/>
-		<delete file="${plugin.destination}/org.eclipse.jst.server.generic.pde_1.0.0.jar"/>
-		<delete file="${plugin.destination}/org.eclipse.jst.server.generic.pde_1.0.0.zip"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-	<target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
-		<eclipse.convertPath fileSystemPath="D:/_bge/workspaces/workspace/org.eclipse.jst.server.generic.pde" property="resourcePath"/>
-		<eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
-	</target>
-
-	<target name="zip.plugin" depends="init" description="Create a zip containing all the elements for the plug-in: org.eclipse.jst.server.generic.pde.">
-		<delete dir="${temp.folder}"/>
-		<mkdir dir="${temp.folder}"/>
-		<antcall target="build.jars"/>
-		<antcall target="build.sources"/>
-		<antcall target="gather.bin.parts">
-			<param name="destination.temp.folder" value="${temp.folder}/"/>
-		</antcall>
-		<antcall target="gather.sources">
-			<param name="destination.temp.folder" value="${temp.folder}/"/>
-		</antcall>
-		<delete>
-			<fileset dir="${temp.folder}" includes="**/*.bin.log"			/>
-		</delete>
-		<zip destfile="${plugin.destination}/org.eclipse.jst.server.generic.pde_1.0.0.zip" basedir="${temp.folder}" filesonly="true" whenempty="skip" update="false"/>
-		<delete dir="${temp.folder}"/>
-	</target>
-
-</project>
diff --git a/plugins/org.eclipse.jst.server.pde/icons/obj16/wiz_new_server_plugin.gif b/plugins/org.eclipse.jst.server.pde/icons/obj16/wiz_new_server_plugin.gif
deleted file mode 100644
index 1cfd11a..0000000
--- a/plugins/org.eclipse.jst.server.pde/icons/obj16/wiz_new_server_plugin.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.jst.server.pde/plugin.properties b/plugins/org.eclipse.jst.server.pde/plugin.properties
deleted file mode 100644
index 4959a56..0000000
--- a/plugins/org.eclipse.jst.server.pde/plugin.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-##################################################################################################
-# Copyright (c) 2005 Eteration A.S. and Gorkem Ercan. 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: Gorkem Ercan - initial API and implementation
-#               
-###################################################################################################
-pluginName= Generic server PDE Template
-providerName=Eclipse.org
-template.genericServer.name=Generic Server Plugin Wizard
-template.genericServer.description=\
-<p>This wizard creates a simple generic server plug-in. \
-The .serverdef file and the build.xml file for ANT based publishing are created. \
-Created files are the same files used for JBoss 3.2.3 in Generic Examples. \
-</p>\
-<p><b>Extension Used</b></p>\
-<li>org.eclipse.jst.server.generic.core.serverdefinition</li> \
-<li>org.eclipse.wst.server.core.runtimeTargetHandlers</li> \
-<li>org.eclipse.wst.server.ui.serverImages</li> \
-<li>org.eclipse.wst.server.ui.wizardFragments</li> \
-<li>org.eclipse.wst.server.core.serverTypes</li> \
-<li>org.eclipse.wst.server.core.runtimeTypes</li>
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.server.pde/plugin.xml b/plugins/org.eclipse.jst.server.pde/plugin.xml
deleted file mode 100644
index bd18a48..0000000
--- a/plugins/org.eclipse.jst.server.pde/plugin.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-   <extension
-         point="org.eclipse.pde.ui.pluginContent">
-      <wizard
-            category="WTP"
-            class="org.eclipse.jst.server.generic.pde.internal.GenericServerPluginNewWizard"
-            icon="icons/obj16/wiz_new_server_plugin.gif"
-            id="org.eclipse.jst.server.generic.pde.genericServer"
-            java="true"
-            name="%template.genericServer.name"
-            rcp="false"
-            ui-content="true">
-         <description>
-            %template.genericServer.description
-         </description>
-            
-            </wizard>
-   </extension>
-
-</plugin>
diff --git a/plugins/org.eclipse.jst.server.pde/src/org/eclipse/jst/server/generic/pde/ServerPdePlugin.java b/plugins/org.eclipse.jst.server.pde/src/org/eclipse/jst/server/generic/pde/ServerPdePlugin.java
deleted file mode 100644
index c1d8770..0000000
--- a/plugins/org.eclipse.jst.server.pde/src/org/eclipse/jst/server/generic/pde/ServerPdePlugin.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/***************************************************************************************************
- * Copyright (c) 2005 Eteration A.S. and Gorkem Ercan. 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: Gorkem Ercan - initial API and implementation
- *               
- **************************************************************************************************/
-package org.eclipse.jst.server.generic.pde;
-
-import org.eclipse.ui.plugin.*;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class ServerPdePlugin extends AbstractUIPlugin {
-
-	//The shared instance.
-	private static ServerPdePlugin plugin;
-	
-	/**
-	 * The constructor.
-	 */
-	public ServerPdePlugin() {
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		plugin = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static ServerPdePlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns an image descriptor for the image file at the given
-	 * plug-in relative path.
-	 *
-	 * @param path the path
-	 * @return the image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String path) {
-		return AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.jst.server.generic.pde", path);
-	}
-}
diff --git a/plugins/org.eclipse.jst.server.pde/src/org/eclipse/jst/server/generic/pde/internal/GenericServerPluginNewWizard.java b/plugins/org.eclipse.jst.server.pde/src/org/eclipse/jst/server/generic/pde/internal/GenericServerPluginNewWizard.java
deleted file mode 100644
index 0cda4ac..0000000
--- a/plugins/org.eclipse.jst.server.pde/src/org/eclipse/jst/server/generic/pde/internal/GenericServerPluginNewWizard.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/***************************************************************************************************
- * Copyright (c) 2005 Eteration A.S. and Gorkem Ercan. 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: Gorkem Ercan - initial API and implementation
- *               
- **************************************************************************************************/
-package org.eclipse.jst.server.generic.pde.internal;
-
-
-import org.eclipse.pde.ui.IFieldData;
-import org.eclipse.pde.ui.templates.ITemplateSection;
-import org.eclipse.pde.ui.templates.NewPluginTemplateWizard;
-/**
- * New Generic server plug-in wizard. 
- * @author Gorkem Ercan
- *
- */
-public class GenericServerPluginNewWizard extends NewPluginTemplateWizard {
-
-	public ITemplateSection[] createTemplateSections(){
-		return new ITemplateSection[] {new GenericServerTemplate()};
-	}
-	
-	public void init(IFieldData data) {
-		super.init(data);
-		setWindowTitle(Messages.windowTitleWizard);
-	}
-}
diff --git a/plugins/org.eclipse.jst.server.pde/src/org/eclipse/jst/server/generic/pde/internal/GenericServerTemplate.java b/plugins/org.eclipse.jst.server.pde/src/org/eclipse/jst/server/generic/pde/internal/GenericServerTemplate.java
deleted file mode 100644
index 922ac38..0000000
--- a/plugins/org.eclipse.jst.server.pde/src/org/eclipse/jst/server/generic/pde/internal/GenericServerTemplate.java
+++ /dev/null
@@ -1,285 +0,0 @@
-/***************************************************************************************************
- * Copyright (c) 2005 Eteration A.S. and Gorkem Ercan. 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: Gorkem Ercan - initial API and implementation
- *               
- **************************************************************************************************/
-package org.eclipse.jst.server.generic.pde.internal;
-
-import java.net.URL;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.jst.server.generic.pde.ServerPdePlugin;
-import org.eclipse.pde.core.plugin.IPluginBase;
-import org.eclipse.pde.core.plugin.IPluginElement;
-import org.eclipse.pde.core.plugin.IPluginExtension;
-import org.eclipse.pde.core.plugin.IPluginModelFactory;
-import org.eclipse.pde.core.plugin.IPluginReference;
-import org.eclipse.pde.internal.ui.wizards.templates.PluginReference;
-import org.eclipse.pde.ui.templates.OptionTemplateSection;
-import org.eclipse.pde.ui.templates.TemplateOption;
-/**
- * Simple generic server plug-in template
- * 
- * @author Gorkem Ercan
- *
- */
-public class GenericServerTemplate extends OptionTemplateSection {
-
-	private static final String KEY_SERVER_VERSION = "server_version"; //$NON-NLS-1$
-	private static final String KEY_SERVER_START_BEFORE_PUBLISH = "server_start_before_publish"; //$NON-NLS-1$
-	private static final String KEY_SERVER_LAUNCHTYPE = "server_launchtype"; //$NON-NLS-1$
-	private static final String KEY_SERVER_VENDOR = "server_vendor"; //$NON-NLS-1$
-	private static final String KEY_SERVER_DESCRIPTION = "server_description"; //$NON-NLS-1$
-	private static final String KEY_SERVER_NAME = "server_name"; //$NON-NLS-1$
-	private static final String[][] launchOpts = {{"java",Messages.labelJavaLaunchConfiguration},{"external",Messages.labelExternalLaunchConfiguration}}; //$NON-NLS-1$ //$NON-NLS-3$
-	
-	private TemplateOption fServerNameOption;
-	private TemplateOption fServerDescriptionOption;
-	private TemplateOption fServerVendorOption;
-	private TemplateOption fServerVersionOption;
-	private TemplateOption fLaunchTypeOption;
-	private TemplateOption fStartBeforPublishOption;
-	
-	public GenericServerTemplate() {
-		setPageCount(1);
-		createOptions();
-	}
-	
-	
-	private void createOptions(){
-	
-		fServerNameOption= addOption(KEY_SERVER_NAME,Messages.labelServerName,"your server's name",0); //$NON-NLS-2$
-		fServerDescriptionOption = addOption(KEY_SERVER_DESCRIPTION,"Description","User description of your server",0); //$NON-NLS-1$ //$NON-NLS-2$
-		fServerVendorOption= addOption(KEY_SERVER_VENDOR,Messages.labelServerVendor,"Server vendor' s name",0); //$NON-NLS-2$
-		fServerVersionOption= addOption(KEY_SERVER_VERSION,Messages.labelServerVesion,"0",0); //$NON-NLS-2$
-		fLaunchTypeOption= addOption(KEY_SERVER_LAUNCHTYPE,Messages.labelLaunchType,launchOpts,"java",0); //$NON-NLS-2$
-		fStartBeforPublishOption= addOption(KEY_SERVER_START_BEFORE_PUBLISH,Messages.labelStartBeforePublish,false,0);
-		
-		fServerNameOption.setRequired(true);
-		fServerDescriptionOption.setRequired(true);
-		fServerVendorOption.setRequired(true);
-		fServerVersionOption.setRequired(true);
-	}
-	
-	public String getSectionId() {
-		return "genericserver"; //$NON-NLS-1$
-	}
-
-	protected void updateModel(IProgressMonitor monitor) throws CoreException{
-		IPluginBase plugin = model.getPluginBase();
-		IPluginModelFactory factory = model.getPluginFactory();		
-		addRuntimeType(plugin, factory);
-		addServerType(plugin, factory);
-		addWizardFragment(plugin, factory);
-		addServerImage(plugin, factory);
-		addRuntimeTargetHandler(plugin, factory);
-		addServerDefinition(plugin, factory);
-	}
-
-	private void addServerDefinition(IPluginBase plugin, IPluginModelFactory factory) throws CoreException {
-		IPluginExtension definitionExtension = createExtension("org.eclipse.jst.server.generic.core.serverdefinition",true); //$NON-NLS-1$
-		IPluginElement serverDef = factory.createElement(definitionExtension);
-		serverDef.setName("serverdefinition"); //$NON-NLS-1$
-		serverDef.setAttribute("id",getRuntimeId()); //$NON-NLS-1$
-		serverDef.setAttribute("definitionfile","/servers/"+getStringOption(KEY_SERVER_NAME)+".serverdef"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		definitionExtension.add(serverDef);
-		if(!definitionExtension.isInTheModel())
-			plugin.add(definitionExtension);
-	}
-
-
-	private void addRuntimeTargetHandler(IPluginBase plugin, IPluginModelFactory factory) throws CoreException {
-		IPluginExtension handlerExtension = createExtension("org.eclipse.wst.server.core.runtimeTargetHandlers",true); //$NON-NLS-1$
-		IPluginElement handler= factory.createElement(handlerExtension);
-		handler.setName("runtimeTargetHandler"); //$NON-NLS-1$
-		handler.setAttribute("id",getNamespace()+".runtimeTarget"); //$NON-NLS-1$ //$NON-NLS-2$
-		handler.setAttribute("runtimeTypeIds",getRuntimeId()); //$NON-NLS-1$
-		handler.setAttribute("class","org.eclipse.jst.server.generic.core.internal.GenericServerRuntimeTargetHandler"); //$NON-NLS-1$ //$NON-NLS-2$
-		handlerExtension.add(handler);
-		if(!handlerExtension.isInTheModel())
-			plugin.add(handlerExtension);
-	}
-
-
-	private void addServerImage(IPluginBase plugin, IPluginModelFactory factory) throws CoreException {
-		IPluginExtension imageExtension = createExtension("org.eclipse.wst.server.ui.serverImages",true); //$NON-NLS-1$
-		IPluginElement serverImage = factory.createElement(imageExtension);
-		serverImage.setName("image"); //$NON-NLS-1$
-		serverImage.setAttribute("id",getNamespace()+".serverImage"); //$NON-NLS-1$ //$NON-NLS-2$
-		serverImage.setAttribute("icon","icons/server.gif"); //$NON-NLS-1$ //$NON-NLS-2$
-		serverImage.setAttribute("typeIds",getServerId()); //$NON-NLS-1$
-		imageExtension.add(serverImage);
-		
-		IPluginElement runtimeImage = factory.createElement(imageExtension);
-		runtimeImage.setName("image"); //$NON-NLS-1$
-		runtimeImage.setAttribute("id",getNamespace()+".runtimeImage"); //$NON-NLS-1$ //$NON-NLS-2$
-		runtimeImage.setAttribute("icon","icons/server.gif"); //$NON-NLS-1$ //$NON-NLS-2$
-		runtimeImage.setAttribute("typeIds",getRuntimeId()); //$NON-NLS-1$
-		imageExtension.add(runtimeImage);
-		if(!imageExtension.isInTheModel())
-			plugin.add(imageExtension);
-	}
-
-
-	private void addWizardFragment(IPluginBase plugin, IPluginModelFactory factory) throws CoreException {
-		IPluginExtension wizardExtension = createExtension("org.eclipse.wst.server.ui.wizardFragments",true); //$NON-NLS-1$
-		IPluginElement runtimeWiz = factory.createElement(wizardExtension);
-		runtimeWiz.setName("fragment"); //$NON-NLS-1$
-		runtimeWiz.setAttribute("id",getNamespace()+".runtimeWizard"); //$NON-NLS-1$ //$NON-NLS-2$
-		runtimeWiz.setAttribute("class","org.eclipse.jst.server.generic.ui.internal.GenericServerRuntimeWizardFragment"); //$NON-NLS-1$ //$NON-NLS-2$
-		runtimeWiz.setAttribute("typeIds",getRuntimeId()); //$NON-NLS-1$
-		wizardExtension.add(runtimeWiz);
-		if(!wizardExtension.isInTheModel())
-			plugin.add(wizardExtension);
-		
-		IPluginElement serverWiz = factory.createElement(wizardExtension);
-		serverWiz.setName("fragment"); //$NON-NLS-1$
-		serverWiz.setAttribute("id",getNamespace()+".serverWizard"); //$NON-NLS-1$ //$NON-NLS-2$
-        serverWiz.setAttribute("class","org.eclipse.jst.server.generic.ui.internal.GenericServerWizardFragment");    //$NON-NLS-1$ //$NON-NLS-2$
-		serverWiz.setAttribute("typeIds",getServerId()); //$NON-NLS-1$
-		wizardExtension.add(serverWiz);
-	}
-
-
-	private void addServerType(IPluginBase plugin, IPluginModelFactory factory) throws CoreException {
-		IPluginExtension serverExtension =createExtension("org.eclipse.wst.server.core.serverTypes",true); //$NON-NLS-1$
-		IPluginElement serverType = factory.createElement(serverExtension);
-		serverType.setName("serverType"); //$NON-NLS-1$
-		serverType.setAttribute("runtime","true"); //$NON-NLS-1$ //$NON-NLS-2$
-		serverType.setAttribute("class","org.eclipse.jst.server.generic.core.internal.GenericServer"); //$NON-NLS-1$ //$NON-NLS-2$
-		serverType.setAttribute("id",getServerId()); //$NON-NLS-1$
-		serverType.setAttribute("initialState","stopped"); //$NON-NLS-1$ //$NON-NLS-2$
-		serverType.setAttribute("supportsRemoteHosts","false"); //$NON-NLS-1$ //$NON-NLS-2$
-		serverType.setAttribute("runtimeTypeId",getRuntimeId()); //$NON-NLS-1$
-		serverType.setAttribute("description",getStringOption(KEY_SERVER_DESCRIPTION)); //$NON-NLS-1$
-		serverType.setAttribute("launchConfigId",getSelectedConfigType()); //$NON-NLS-1$
-		serverType.setAttribute("behaviourClass",getSelectedBehaviourClass()); //$NON-NLS-1$
-		serverType.setAttribute("name",getStringOption(KEY_SERVER_NAME)); //$NON-NLS-1$
-		serverType.setAttribute("startTimeout","75000"); //$NON-NLS-1$ //$NON-NLS-2$
-		serverType.setAttribute("stopTimeout","30000"); //$NON-NLS-1$ //$NON-NLS-2$
-		serverType.setAttribute("hasConfiguration","false"); //$NON-NLS-1$ //$NON-NLS-2$
-		serverType.setAttribute("launchModes","run,debug"); //$NON-NLS-1$ //$NON-NLS-2$
-		serverType.setAttribute("startBeforePublish", Boolean.toString(getBooleanOption(KEY_SERVER_START_BEFORE_PUBLISH))); //$NON-NLS-1$
-		serverExtension.add(serverType);
-		if(!serverExtension.isInTheModel())
-			plugin.add(serverExtension);
-	}
-
-
-	private void addRuntimeType(IPluginBase plugin, IPluginModelFactory factory) throws CoreException {
-		IPluginExtension extension =createExtension("org.eclipse.wst.server.core.runtimeTypes",true); //$NON-NLS-1$
-		IPluginElement runtimeType = factory.createElement(extension);
-		runtimeType.setName("runtimeType"); //$NON-NLS-1$
-		runtimeType.setAttribute("id",getRuntimeId()); //$NON-NLS-1$
-		runtimeType.setAttribute("name",getStringOption(KEY_SERVER_NAME)); //$NON-NLS-1$
-		runtimeType.setAttribute("description",getStringOption(KEY_SERVER_DESCRIPTION)); //$NON-NLS-1$
-		runtimeType.setAttribute("vendor",getStringOption(KEY_SERVER_VENDOR)); //$NON-NLS-1$
-		runtimeType.setAttribute("version",getStringOption(KEY_SERVER_VERSION)); //$NON-NLS-1$
-		runtimeType.setAttribute("class","org.eclipse.jst.server.generic.core.internal.GenericServerRuntime"); //$NON-NLS-1$ //$NON-NLS-2$
-		
-		IPluginElement moduleType = factory.createElement(runtimeType);
-		moduleType.setName("moduleType"); //$NON-NLS-1$
-		moduleType.setAttribute("types","jst.web"); //$NON-NLS-1$ //$NON-NLS-2$
-        moduleType.setAttribute("versions","1.2, 1.3"); //$NON-NLS-1$ //$NON-NLS-2$
-        runtimeType.add(moduleType);
-        
-		extension.add(runtimeType);
-		if(!extension.isInTheModel())
-			plugin.add(extension);
-	}
-	
-	private String getRuntimeId(){
-		return getNamespace()+".runtime"; //$NON-NLS-1$
-	}
-	
-	private String getServerId(){
-		return getNamespace()+".server"; //$NON-NLS-1$
-	}
-	private String getNamespace()
-	{
-		return model.getPluginBase().getId();
-	}
-	private String getSelectedBehaviourClass() {
-		if(isExternalSelected())
-			return "org.eclipse.jst.server.generic.core.internal.ExternalServerBehaviour"; //$NON-NLS-1$
-		return "org.eclipse.jst.server.generic.core.internal.GenericServerBehaviour"; //$NON-NLS-1$
-	}
-
-	private boolean isExternalSelected(){
-		String selectedType = getStringOption(KEY_SERVER_LAUNCHTYPE);
-		return "external".equals(selectedType); //$NON-NLS-1$
-	}
-
-	private String getSelectedConfigType(){
-		if(isExternalSelected())
-			return "org.eclipse.jst.server.generic.core.ExternalLaunchConfigurationType"; //$NON-NLS-1$
-		return "org.eclipse.jst.server.generic.core.launchConfigurationType"; //$NON-NLS-1$
-	}
-	
-	protected ResourceBundle getPluginResourceBundle(){
-		return null;
-	}
-	
-	public String[] getNewFiles(){
-		return new String[]{"icons/", "server/","buildfiles/"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-
-	public String getUsedExtensionPoint(){
-		return null;
-	}
-	
-	public void validateOptions(TemplateOption changed){
-		if(changed.isRequired() && changed.isEmpty()){
-			flagMissingRequiredOption(changed);
-			return;
-		}
-		TemplateOption[] options = getOptions(0);
-		for (int i = 0; i < options.length; i++) {
-			if(options[i].isRequired() && options[i].isEmpty()){
-				flagMissingRequiredOption(options[i]);
-				return;
-			}
-		}
-		resetPageState();
-	}
-	
-	
-	
-	public void addPages(Wizard wizard) {
-		WizardPage page = createPage(0);
-		page.setTitle(Messages.pageTitle);
-		page.setDescription(Messages.pageDescription);
-		wizard.addPage(page);
-		markPagesAdded();
-	}
-	
-	
- 
-	protected URL getInstallURL() {
-		return ServerPdePlugin.getDefault().getBundle().getEntry("/"); //$NON-NLS-1$
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.pde.ui.templates.AbstractTemplateSection#getDependencies(java.lang.String)
-	 */
-	public IPluginReference[] getDependencies(String schemaVersion) {
-		IPluginReference[] dep = new IPluginReference[4];
-		dep[0] = new PluginReference("org.eclipse.core.runtime", null, 0); //$NON-NLS-1$
-		dep[1] = new PluginReference("org.eclipse.ui", null, 0); //$NON-NLS-1$
-		dep[2] = new PluginReference("org.eclipse.jst.server.generic.core", null, 0); //$NON-NLS-1$
-		dep[3] = new PluginReference("org.eclipse.jst.server.generic.ui", null, 0); //$NON-NLS-1$
-		return dep;
-	}
-
-	public Object getValue(String variable) {
-		return super.getValue(variable);
-	}
-	
-}
diff --git a/plugins/org.eclipse.jst.server.pde/src/org/eclipse/jst/server/generic/pde/internal/Messages.java b/plugins/org.eclipse.jst.server.pde/src/org/eclipse/jst/server/generic/pde/internal/Messages.java
deleted file mode 100644
index 2f357ea..0000000
--- a/plugins/org.eclipse.jst.server.pde/src/org/eclipse/jst/server/generic/pde/internal/Messages.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/***************************************************************************************************
- * Copyright (c) 2005 Eteration A.S. and Gorkem Ercan. 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: Gorkem Ercan - initial API and implementation
- *               
- **************************************************************************************************/
-package org.eclipse.jst.server.generic.pde.internal;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.jst.server.generic.pde.internal.messages"; //$NON-NLS-1$
-
-	private Messages() {
-	}
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	public static String labelJavaLaunchConfiguration;
-
-	public static String labelExternalLaunchConfiguration;
-
-	public static String labelServerName;
-
-	public static String labelServerVendor;
-
-	public static String labelServerVesion;
-
-	public static String labelLaunchType;
-
-	public static String labelStartBeforePublish;
-
-	public static String pageTitle;
-
-	public static String pageDescription;
-
-	public static String windowTitleWizard;
-}
diff --git a/plugins/org.eclipse.jst.server.pde/src/org/eclipse/jst/server/generic/pde/internal/messages.properties b/plugins/org.eclipse.jst.server.pde/src/org/eclipse/jst/server/generic/pde/internal/messages.properties
deleted file mode 100644
index 5890ce9..0000000
--- a/plugins/org.eclipse.jst.server.pde/src/org/eclipse/jst/server/generic/pde/internal/messages.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-##################################################################################################
-# Copyright (c) 2005 Eteration A.S. and Gorkem Ercan. 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: Gorkem Ercan - initial API and implementation
-#               
-###################################################################################################
-labelJavaLaunchConfiguration=Java launch cofiguration
-labelExternalLaunchConfiguration=External launch configuration
-labelServerName=Server Name
-labelServerVendor=Server Vendor
-labelServerVesion=Server Version
-labelLaunchType=Launch type
-labelStartBeforePublish=Start Before publish
-pageTitle=Generic Server Plug-in
-pageDescription=Create a new Generic server plug-in
-windowTitleWizard=New Generic Server plug-in
diff --git a/plugins/org.eclipse.jst.server.pde/templates_3.0/genericserver/buildfiles/$server_name$.xml b/plugins/org.eclipse.jst.server.pde/templates_3.0/genericserver/buildfiles/$server_name$.xml
deleted file mode 100644
index f720ca4..0000000
--- a/plugins/org.eclipse.jst.server.pde/templates_3.0/genericserver/buildfiles/$server_name$.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<project name="deployextension"  default="deploy.j2ee.web"  basedir=".">
-	<target name="deploy.j2ee.web">
-		<jar destfile="${project.working.dir}/${module.name}.war"> 
-			<zipfileset dir="${module.dir}">
-	        	<include name="**/*.*"/>
-				<exclude name="**/*.war"/>
-			</zipfileset>
-		</jar>
-  		<move file="${project.working.dir}/${module.name}.war" todir="${server.publish.dir}"/>
-	</target>
-	
-	<target name="deploy.j2ee.ejb">
-		<jar destfile="${project.working.dir}/${module.name}.jar"> 
-			<zipfileset dir="${module.dir}">
-	        	<include name="**/*.*"/>
-	       		<exclude name="**/*.java"/>
-			</zipfileset>
-		</jar>
-  		<move file="${project.working.dir}/${module.name}.jar" todir="${server.publish.dir}"/>
-	</target>
-	<target name="deploy.j2ee.ear">
-		<jar destfile="${project.working.dir}/${module.name}.ear"> 
-			<zipfileset dir="${module.dir}">
-	        	<include name="**/*.*"/>
-	       		<exclude name="**/*.java"/>
-			</zipfileset>
-		</jar>
-  		<move file="${project.working.dir}/${module.name}.ear" todir="${server.publish.dir}"/>
-	</target>
-	
-	<target name="undeploy.j2ee.web">
-		<delete file="${server.publish.dir}/${module.name}.war"> </delete>
-	</target>
-	<target name="undeploy.j2ee.ejb">
-		<delete file="${server.publish.dir}/${module.name}.jar"> </delete>
-	</target>
-	<target name="undeploy.j2ee.ear">
-		<delete file="${server.publish.dir}/${module.name}.ear"> </delete>
-	</target>	
-	
-</project>
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.server.pde/templates_3.0/genericserver/icons/server.gif b/plugins/org.eclipse.jst.server.pde/templates_3.0/genericserver/icons/server.gif
deleted file mode 100644
index b51ae39..0000000
--- a/plugins/org.eclipse.jst.server.pde/templates_3.0/genericserver/icons/server.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.jst.server.pde/templates_3.0/genericserver/servers/$server_name$.serverdef b/plugins/org.eclipse.jst.server.pde/templates_3.0/genericserver/servers/$server_name$.serverdef
deleted file mode 100644
index c22872a..0000000
--- a/plugins/org.eclipse.jst.server.pde/templates_3.0/genericserver/servers/$server_name$.serverdef
+++ /dev/null
@@ -1,142 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<tns:ServerRuntime
-	xmlns:tns="http://eclipse.org/jst/server/generic/ServerTypeDefinition"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://eclipse.org/jst/server/generic/ServerTypeDefinition ServerTypeDefinitionSchema.xsd "
-	name="JBOSS 3.2.3" version="v3.2.3">
-<property id="serverRootDirectory"
-	label="%ApplicationServerDirectory"
-	type="directory"
-	context="runtime"
-	default="/your_server_root/appservers/jboss-3.2.3" />
-<property id="serverAddress"
-	label="%serverAddress"
-	type="string"
-	context="server"
-	default="127.0.0.1" />
-<property id="port"
-	label="%serverPort"
-	type="string"
-	context="server"
-	default="8080" />
-<property id="serverConfig"
-	label="%jboss323serverConfig"
-	type="string"
-	context="server"
-	default="default" />
-<property id="classPath"
-	label="%serverclassPath"
-	type="directory"
-	context="runtime"
-	default="/your_server_root/appservers/jboss-3.2.3" />
-
-	<port>
-		<no>$${port}</no>
-		<name>Http</name>
-		<protocol>http</protocol>
-	</port>
-
-	<module>
-		<type>j2ee.web</type>
-		<publishDir>$${serverRootDirectory}/server/$${serverConfig}/deploy</publishDir>
-		<publisherReference>org.eclipse.jst.server.generic.antpublisher</publisherReference>
-	</module>
-	<module>
-		<type>j2ee.ejb</type>
-		<publishDir>$${serverRootDirectory}/server/$${serverConfig}/deploy</publishDir>
-		<publisherReference>org.eclipse.jst.server.generic.antpublisher</publisherReference>
-	</module>
-	<module>
-		<type>j2ee.ear</type>
-		<publishDir>$${serverRootDirectory}/server/$${serverConfig}/deploy</publishDir>
-		<publisherReference>org.eclipse.jst.server.generic.antpublisher</publisherReference>
-	</module>
-
-	<project>
-		<classpathReference>jboss.project</classpathReference>
-	</project>
-	
-	<start>
-		<mainClass>org.jboss.Main</mainClass>
-		<workingDirectory>$${serverRootDirectory}/bin</workingDirectory>
-		<programArguments>-c $${serverConfig}</programArguments>
-		<vmParameters></vmParameters>
-		<classpathReference>jboss</classpathReference>
-	</start>
-
-	<stop>
-		<mainClass>org.jboss.Shutdown</mainClass>
-		<workingDirectory>$${serverRootDirectory}/bin</workingDirectory>
-		<programArguments>-S</programArguments>
-		<vmParameters></vmParameters>
-		<classpathReference>jboss</classpathReference>
-	</stop>
-	<publisher id="org.eclipse.jst.server.generic.antpublisher">
-		<publisherdata>
-			<dataname>build.file</dataname>
-			<datavalue>/buildfiles/jboss323.xml</datavalue>
-		</publisherdata>
-		<publisherdata>
-			<dataname>target.publish.j2ee.web</dataname>
-			<datavalue>deploy.j2ee.web</datavalue>
-		</publisherdata>
-		<publisherdata>
-			<dataname>target.publish.j2ee.ejb</dataname>
-			<datavalue>deploy.j2ee.ejb</datavalue>
-		</publisherdata>
-		<publisherdata>
-			<dataname>target.unpublish.j2ee.web</dataname>
-			<datavalue>undeploy.j2ee.web</datavalue>
-		</publisherdata>
-		<publisherdata>
-			<dataname>target.unpublish.j2ee.ejb</dataname>
-			<datavalue>undeploy.j2ee.ejb</datavalue>
-		</publisherdata>
-		<publisherdata>
-			<dataname>target.publish.j2ee.ear</dataname>
-			<datavalue>deploy.j2ee.ear</datavalue>
-		</publisherdata>
-		<publisherdata>
-			<dataname>target.unpublish.j2ee.ear</dataname>
-			<datavalue>undeploy.j2ee.ear</datavalue>
-		</publisherdata>				
-	</publisher>
-
-	<classpath id="jboss" >
-		<archive path="$${classPath}/bin/run.jar" />
-		<archive path="$${classPath}/bin/shutdown.jar" />
-		<archive path="$${classPath}/client/jboss-j2ee.jar" />
-		<archive path="$${classPath}/server/$${serverConfig}/lib/javax.servlet.jar" />
-		<archive path="$${classPath}/lib/jboss-boot.jar" />
-		<archive path="$${classPath}/lib/jboss-system.jar" />
-		<archive path="$${classPath}/lib/jboss-jmx.jar" />
-		<archive path="$${classPath}/lib/jboss-common.jar" />
-		<archive path="$${classPath}/lib/concurrent.jar" />
-		<archive path="$${classPath}/server/$${serverConfig}/lib/jboss.jar" />
-		<archive path="$${classPath}/server/$${serverConfig}/lib/jnpserver.jar" />
-		<archive path="$${classPath}/server/$${serverConfig}/lib/jpl-pattern.jar" />
-		<archive path="$${classPath}/server/$${serverConfig}/lib/jpl-util.jar" />
-		<archive path="$${classPath}/server/$${serverConfig}/lib/jboss-transaction.jar" />
-		<archive path="$${classPath}/server/$${serverConfig}/lib/bcel.jar" />
-		<archive path="$${classPath}/lib/jdom.jar" />
-		<archive path="$${classPath}/lib/xercesImpl.jar" />
-		<archive path="$${classPath}/lib/xml-apis.jar" />
-		<archive path="$${classPath}/lib/gnu-regexp.jar" />
-		<archive path="$${classPath}/lib/getopt.jar" />
-	</classpath>
-
-	<classpath id="jboss.project" >
-		<archive path="$${classPath}/client/jboss-j2ee.jar" />
-		<archive path="$${classPath}/server/default/lib/javax.servlet.jar" />
-		<archive path="$${classPath}/server/default/lib/activation.jar" />
-		<archive path="$${classPath}/server/default/lib/mail.jar" />
-	</classpath>
-	<jndiConnection>
-		<providerUrl>jnp://$${serverAddress}:1099</providerUrl>
-		<initialContextFactory>org.jnp.interfaces.NamingContextFactory</initialContextFactory>
-		<jndiProperty>
-			<name></name>
-			<value></value>
-		</jndiProperty>
-	</jndiConnection>
-</tns:ServerRuntime>
\ No newline at end of file
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 5164fe9..3418803 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.0.103.qualifier
+Bundle-Version: 1.0.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/PublishOperation2.java b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/PublishOperation2.java
index eeb23da..ee80d9f 100644
--- a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/PublishOperation2.java
+++ b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/PublishOperation2.java
@@ -10,6 +10,7 @@
  *******************************************************************************/
 package org.eclipse.jst.server.tomcat.core.internal;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -59,8 +60,11 @@
 		path = path.append(module2.getName());
 		
 		if (kind == IServer.PUBLISH_CLEAN || deltaKind == ServerBehaviourDelegate.REMOVED) { // clean and republish from scratch
-			IStatus[] stat = PublishUtil.deleteDirectory(path.toFile(), monitor);
-			addArrayToList(status, stat);
+			File f = path.toFile();
+			if (f.exists()) {
+				IStatus[] stat = PublishUtil.deleteDirectory(f, monitor);
+				addArrayToList(status, stat);
+			}
 			
 			if (deltaKind == ServerBehaviourDelegate.REMOVED)
 				return;
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatServerBehaviour.java b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatServerBehaviour.java
index 14e35a8..6d04557 100644
--- a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatServerBehaviour.java
+++ b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatServerBehaviour.java
@@ -278,8 +278,11 @@
 		if (deltaKind == REMOVED) {
 			try {
 				String publishPath = (String) p.get(module[0].getId());
-				IStatus[] stat = PublishUtil.deleteDirectory(new File(publishPath), monitor);
-				PublishOperation2.addArrayToList(status, stat);
+				File f = new File(publishPath);
+				if (f.exists()) {
+					IStatus[] stat = PublishUtil.deleteDirectory(f, monitor);
+					PublishOperation2.addArrayToList(status, stat);
+				}
 			} catch (Exception e) {
 				throw new CoreException(new Status(IStatus.WARNING, TomcatPlugin.PLUGIN_ID, 0, "Could not remove module", e));
 			}
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 021acfe..976b55b 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.103.qualifier
+Bundle-Version: 1.0.104.qualifier
 Bundle-Activator: org.eclipse.jst.server.ui.internal.JavaServerUIPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.jst.server.ui/sjavaui/org/eclipse/jst/server/ui/internal/ServerClasspathContainerPage.java b/plugins/org.eclipse.jst.server.ui/sjavaui/org/eclipse/jst/server/ui/internal/ServerClasspathContainerPage.java
index 63e4dc3..cabc05b 100644
--- a/plugins/org.eclipse.jst.server.ui/sjavaui/org/eclipse/jst/server/ui/internal/ServerClasspathContainerPage.java
+++ b/plugins/org.eclipse.jst.server.ui/sjavaui/org/eclipse/jst/server/ui/internal/ServerClasspathContainerPage.java
@@ -53,11 +53,13 @@
 		IRuntime[] runtimes = ServerCore.getRuntimes();
 		int size = runtimes.length;
 		for (int i = 0; i < size; i++) {
-			RuntimeClasspathProviderWrapper rcpw = JavaServerPlugin.findRuntimeClasspathProvider(runtimes[i].getRuntimeType());
-			if (rcpw != null) {
-				IPath serverContainerPath = new Path(RuntimeClasspathContainer.SERVER_CONTAINER)
-						.append(rcpw.getId()).append(runtimes[i].getId());
-				runtimeMap.put(runtimes[i], JavaCore.newContainerEntry(serverContainerPath));
+			if (runtimes[i].getRuntimeType() != null) {
+				RuntimeClasspathProviderWrapper rcpw = JavaServerPlugin.findRuntimeClasspathProvider(runtimes[i].getRuntimeType());
+				if (rcpw != null) {
+					IPath serverContainerPath = new Path(RuntimeClasspathContainer.SERVER_CONTAINER)
+							.append(rcpw.getId()).append(runtimes[i].getId());
+					runtimeMap.put(runtimes[i], JavaCore.newContainerEntry(serverContainerPath));
+				}
 			}
 		}
 	}
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 50c6fc0..b90d229 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.0.104.qualifier
+Bundle-Version: 1.0.108.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/plugin.properties b/plugins/org.eclipse.wst.server.core/plugin.properties
index cf4ddf5..c81668e 100644
--- a/plugins/org.eclipse.wst.server.core/plugin.properties
+++ b/plugins/org.eclipse.wst.server.core/plugin.properties
@@ -29,3 +29,6 @@
 
 moduleTypeUnknown=Unknown module
 moduleTypeStaticWebName=Static Web project
+
+clientNoneName=Do nothing
+clientNoneDescription=Launch the module on the server but do not bring up a client application.
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/plugin.xml b/plugins/org.eclipse.wst.server.core/plugin.xml
index 0f905c9..3eb42a8 100644
--- a/plugins/org.eclipse.wst.server.core/plugin.xml
+++ b/plugins/org.eclipse.wst.server.core/plugin.xml
@@ -17,7 +17,7 @@
   <extension-point id="internalStartup" name="%extensionPointServerStartup" schema="schema/startup.exsd"/>
   <extension-point id="installableServers" name="%extensionPointInstallableServers" schema="schema/installableServers.exsd"/>
   <extension-point id="installableRuntimes" name="%extensionPointInstallableRuntimes" schema="schema/installableRuntimes.exsd"/>
-  
+
   <extension point="org.eclipse.wst.server.core.moduleTypes">
     <moduleType
        id="*"
@@ -26,4 +26,19 @@
        id="wst.web"
        name="%moduleTypeStaticWebName"/>
   </extension>
+
+  <extension point="org.eclipse.wst.server.core.launchableAdapters">
+    <launchableAdapter
+      class="org.eclipse.wst.server.core.internal.NullLaunchableAdapterDelegate"
+      id="org.eclipse.wst.server.core.null"/>
+  </extension>
+
+  <extension point="org.eclipse.wst.server.core.clients">
+    <client
+      id="org.eclipse.wst.server.core.null"
+      name="%clientNoneLabel"
+      description="%clientNoneDescription"
+      launchable="org.eclipse.wst.server.core.util.NullModuleArtifact"
+      class="org.eclipse.wst.server.core.internal.NullClientDelegate"/>
+  </extension>
 </plugin>
\ No newline at end of file
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 b1c2c9d..971ad57 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
@@ -41,9 +41,7 @@
 
 	private static IRegistryChangeListener registryListener;
 
-	static {
-		executeStartups();
-	}
+	private static boolean initialized = false;
 
 	private static class RegistryChangeListener implements IRegistryChangeListener {
 		public void registryChanged(IRegistryChangeEvent event) {
@@ -76,6 +74,8 @@
 	 * @return org.eclipse.wst.server.core.internal.ResourceManager
 	 */
 	private final static ResourceManager getResourceManager() {
+		if (!initialized)
+			initialize();
 		return ResourceManager.getInstance();
 	}
 
@@ -238,6 +238,14 @@
 		Trace.trace(Trace.EXTENSION_POINT, "-<- Done loading .startup extension point -<-");
 	}
 
+	private static synchronized void initialize() {
+		if (initialized)
+			return;
+		
+		initialized = true;
+		executeStartups();
+	}
+
 	/**
 	 * Load the runtime types.
 	 */
@@ -314,6 +322,8 @@
 	 * with the given id
 	 */
 	public static IRuntime findRuntime(String id) {
+		if (!initialized)
+			initialize();
 		return getResourceManager().getRuntime(id);
 	}
 
@@ -327,6 +337,8 @@
 	 * @return a possibly-empty array of runtime instances {@link IRuntime}
 	 */
 	public static IRuntime[] getRuntimes() {
+		if (!initialized)
+			initialize();
 		return getResourceManager().getRuntimes();
 	}
 
@@ -341,6 +353,8 @@
 	 * with the given id
 	 */
 	public static IServer findServer(String id) {
+		if (!initialized)
+			initialize();
 		return getResourceManager().getServer(id);
 	}
 
@@ -354,6 +368,8 @@
 	 * @return a possibly-empty array of server instances {@link IServer}
 	 */
 	public static IServer[] getServers() {
+		if (!initialized)
+			initialize();
 		return getResourceManager().getServers();
 	}
 
@@ -412,6 +428,8 @@
 	 *    default server
 	 */
 	public static IServer getDefaultServer(IModule module) {
+		if (!initialized)
+			initialize();
 		return ModuleProperties.getInstance().getDefaultServer(module);
 	}
 
@@ -428,6 +446,8 @@
 	 * @throws CoreException if there is a problem setting the default server
 	 */
 	public static void setDefaultServer(IModule module, IServer server, IProgressMonitor monitor) throws CoreException {
+		if (!initialized)
+			initialize();
 		ModuleProperties.getInstance().setDefaultServer(module, server, monitor);
 	}
 
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerUtil.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerUtil.java
index 780562c..1887624 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerUtil.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/ServerUtil.java
@@ -49,14 +49,22 @@
 		if (project == null)
 			throw new IllegalArgumentException();
 		
-		IModule[] modules = getModules();
-		if (modules != null) {
-			int size = modules.length;
+		ModuleFactory[] factories = ServerPlugin.getModuleFactories();
+		if (factories != null) {
+			int size = factories.length;
 			for (int i = 0; i < size; i++) {
-				if (modules[i] != null && project.equals(modules[i].getProject()))
-					return modules[i];
+				IModule[] modules = factories[i].getModules();
+				if (modules != null) {
+					int size2 = modules.length;
+					for (int j = 0; j < size2; j++) {
+						if (project.equals(modules[j].getProject()) && isSupportedModule(factories[i].getModuleTypes(), modules[j].getModuleType())) {
+							return modules[j];
+						}
+					}
+				}
 			}
 		}
+		
 		return null;
 	}
 
@@ -276,7 +284,7 @@
 	 * @return a possibly empty array of modules
 	 */
 	private static IModule[] getModules() {
-		List list = new ArrayList();
+		Set set = new HashSet();
 		
 		ModuleFactory[] factories = ServerPlugin.getModuleFactories();
 		if (factories != null) {
@@ -286,9 +294,9 @@
 				if (modules != null) {
 					int size2 = modules.length;
 					for (int j = 0; j < size2; j++) {
-						if (!list.contains(modules[j])) {
+						if (!set.contains(modules[j])) {
 							if (isSupportedModule(factories[i].getModuleTypes(), modules[j].getModuleType()))
-								list.add(modules[j]);
+								set.add(modules[j]);
 							else
 								Trace.trace(Trace.WARNING, "Invalid module returned from factory, ignored: " + modules[j]);
 						}
@@ -296,8 +304,8 @@
 				}
 			}
 		}
-		IModule[] modules = new IModule[list.size()];
-		list.toArray(modules);
+		IModule[] modules = new IModule[set.size()];
+		set.toArray(modules);
 		return modules;
 	}
 
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Base.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Base.java
index 8eacedb..8591ed7 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Base.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Base.java
@@ -1,5 +1,5 @@
 /**********************************************************************
- * Copyright (c) 2003, 2005 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
@@ -314,11 +314,15 @@
 			throw new CoreException(new Status(IStatus.ERROR, ServerPlugin.PLUGIN_ID, 0, "Cannot delete a working copy", null));
 		
 		if (file != null)
-			file.delete(true, true, new NullProgressMonitor());
+			deleteFromFile();
 		else
 			deleteFromMetadata();
 	}
 
+	protected void deleteFromFile() throws CoreException {
+		file.delete(true, true, new NullProgressMonitor());
+	}
+
 	protected void deleteFromMetadata() {
 		// do nothing
 	}
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/InstallableServer.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/InstallableServer.java
index 04c0b41..63e1c55 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/InstallableServer.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/InstallableServer.java
@@ -183,7 +183,7 @@
 		try {
 			ISiteFeatureReference[] features = site.getFeatureReferences();
 			for (int i = 0; i < features.length; i++) {
-				if (features[i].getName().equals(featureId)) {
+				if (features[i].getVersionedIdentifier().getIdentifier().equals(featureId)) {
 					Version nextCand = new Version(features[i].getVersionedIdentifier().getVersion().toString());
 					if (nextCand.compareTo(latestVersion) > 0) {
 						latestVersion = nextCand;
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 8cd04e2..4174737 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
@@ -39,7 +39,7 @@
 errorLoading=Error loading from {0}.
 errorSaving=Could not save to {0}.
 errorModuleRestartFailed=Could not restart the module.
-errorWorkingCopyTimestamp=Could not save because the file has been modified since the start of editting.
+errorWorkingCopyTimestamp=Could not save because the file has been modified since the start of editing.
 errorRuntimeName=Enter a name for the runtime.
 errorDuplicateRuntimeName=Name is already in use.
 errorStartTimeout=Timeout waiting for {0} to start. Server did not start after {1}s. 
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 c47d79b..0a368e9 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
@@ -101,18 +101,18 @@
 			String mv = memento.getString(MODULE_TYPE_VERSION);
 			if (mt != null && mt.length() > 0)
 				moduleType = new ModuleType(mt, mv);
-	
-			resources = loadResource(memento);
+			
+			resources = loadResource(memento, new Path(""));
 		} catch (Exception e) {
 			Trace.trace(Trace.WARNING, "Could not load module publish info information: " + e.getMessage());
 		}
 	}
 
-	protected IModuleResource[] loadResource(IMemento memento) {
+	protected IModuleResource[] loadResource(IMemento memento, IPath path) {
 		if (memento == null)
 			return new IModuleResource[0];
 		
-		List list = new ArrayList(5);
+		List list = new ArrayList(10);
 		
 		// load files
 		IMemento[] children = memento.getChildren(FILE);
@@ -120,7 +120,6 @@
 			int size = children.length;
 			for (int i = 0; i < size; i++) {
 				String name2 = children[i].getString(NAME);
-				IPath path = new Path(children[i].getString(PATH));
 				long stamp = Long.parseLong(children[i].getString(STAMP));
 				ModuleFile file = new ModuleFile(name2, path, stamp);
 				list.add(file);
@@ -133,9 +132,8 @@
 			int size = children.length;
 			for (int i = 0; i < size; i++) {
 				String name2 = children[i].getString(NAME);
-				IPath path = new Path(children[i].getString(PATH));
 				ModuleFolder folder = new ModuleFolder(null, name2, path);
-				folder.setMembers(loadResource(children[i]));
+				folder.setMembers(loadResource(children[i], path.append(name2)));
 				list.add(folder);
 			}
 		}
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/NullClientDelegate.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/NullClientDelegate.java
new file mode 100644
index 0000000..dc71147
--- /dev/null
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/NullClientDelegate.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.server.core.internal;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.model.ClientDelegate;
+/**
+ * A client delegate that does nothing. Application will be launched
+ * for the user, but no client application will open.
+ */
+public class NullClientDelegate extends ClientDelegate {
+	public boolean supports(IServer server, Object launchable, String launchMode) {
+		return launchable instanceof NullLaunchableAdapterDelegate.NullLaunchable;
+	}
+
+	public IStatus launch(IServer server, Object launchable, String launchMode, ILaunch launch) {
+		return Status.OK_STATUS;
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/NullLaunchableAdapterDelegate.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/NullLaunchableAdapterDelegate.java
new file mode 100644
index 0000000..6c04f39
--- /dev/null
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/NullLaunchableAdapterDelegate.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.server.core.internal;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.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.NullModuleArtifact;
+/**
+ * A client delegate that does nothing. Application will be launched
+ * for the user, but no client application will open.
+ */
+public class NullLaunchableAdapterDelegate extends LaunchableAdapterDelegate {
+	public class NullLaunchable {
+		// class is used just for tagging
+		public String toString() {
+			return "NullLaunchable";
+		}
+	}
+
+	public Object NULL_LAUNCHABLE = new NullLaunchable();
+
+	public Object getLaunchable(IServer server, IModuleArtifact moduleArtifact) throws CoreException {
+		if (moduleArtifact instanceof NullModuleArtifact)
+			return NULL_LAUNCHABLE;
+		return null;
+	}
+}
\ No newline at end of file
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 bb3901b..c7ea71a 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
@@ -1,5 +1,5 @@
 /**********************************************************************
- * Copyright (c) 2003, 2006 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
@@ -245,10 +245,20 @@
 		return false;
 	}
 	
-	protected void deleteFromMetadata() {
+    protected void deleteFromFile() throws CoreException {
+        super.deleteFromFile();
+        ResourceManager.getInstance().deregisterServer(this);
+    }
+
+    protected void deleteFromMetadata() {
 		ResourceManager.getInstance().removeServer(this);
 	}
-	
+
+	protected void saveToFile(IProgressMonitor monitor) throws CoreException {
+		super.saveToFile(monitor);
+		ResourceManager.getInstance().registerServer(this);
+	}
+
 	protected void saveToMetadata(IProgressMonitor monitor) {
 		super.saveToMetadata(monitor);
 		ResourceManager.getInstance().addServer(this);
@@ -302,6 +312,9 @@
 					behaviourDelegate = ((ServerType) serverType).createServerBehaviourDelegate();
 					InternalInitializer.initializeServerBehaviourDelegate(behaviourDelegate, Server.this, monitor);
 					Trace.trace(Trace.PERFORMANCE, "Server.getBehaviourDelegate(): <" + (System.currentTimeMillis() - time) + "> " + getServerType().getId());
+					
+					if (getServerState() == IServer.STATE_STARTED)
+						autoPublish();
 				} catch (Throwable t) {
 					Trace.trace(Trace.SEVERE, "Could not create behaviour delegate " + toString(), t);
 				}
@@ -1590,7 +1603,7 @@
 						// notify waiter
 						synchronized (notified) {
 							Trace.trace(Trace.FINEST, "synchronousStart notify timeout");
-							if (!timer.alreadyDone && totalTimeout < 0)
+							if (!timer.alreadyDone && totalTimeout <= 0)
 								timer.timeout = true;
 							notified[0] = true;
 							notified.notifyAll();
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPlugin.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPlugin.java
index acab99c..ce4808f 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPlugin.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPlugin.java
@@ -795,8 +795,20 @@
 			for (int i = 0; i < size; i++) {
 				try {
 					if (adapters[i].isEnabled(obj)) {
-						Trace.trace(Trace.FINER, "Run On Server for " + obj + " is enabled by " + adapters[i].getId());
-						return true;
+						Trace.trace(Trace.FINER, "ServerPlugin.hasModuleArtifact() - " + adapters[i].getId());
+						if (adapters[i].isDelegateLoaded()) {
+							long time = System.currentTimeMillis();
+							IModuleArtifact ma = adapters[i].getModuleArtifact(obj);
+							Trace.trace(Trace.FINER, "Deep enabled time: " + (System.currentTimeMillis() - time));
+							if (ma != null) {
+								Trace.trace(Trace.FINER, "Deep enabled");
+								return true;
+							}
+							Trace.trace(Trace.FINER, "Not enabled");
+						} else {
+							Trace.trace(Trace.FINER, "Enabled");
+							return true;
+						}
 					}
 				} catch (CoreException ce) {
 					Trace.trace(Trace.WARNING, "Could not use moduleArtifactAdapter", ce);
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPublishInfo.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPublishInfo.java
index 73e2695..8d25264 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPublishInfo.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ServerPublishInfo.java
@@ -32,6 +32,8 @@
  * were published and when) for a single server.
  */
 public class ServerPublishInfo {
+	private static final String VERSION = "version";
+
 	protected IPath path;
 
 	// map of module ids to ModulePublishInfo
@@ -222,6 +224,10 @@
 
 		try {
 			IMemento memento2 = XMLMemento.loadMemento(filename);
+			Float f = memento2.getFloat(VERSION);
+			if (f != null && f.floatValue() >= 3)
+				return;
+			
 			IMemento[] children = memento2.getChildren("module");
 	
 			int size = children.length;
@@ -243,7 +249,8 @@
 	
 		try {
 			XMLMemento memento = XMLMemento.createWriteRoot("server");
-
+			memento.putString(VERSION, "1.0");
+			
 			Iterator iterator = modulePublishInfo.keySet().iterator();
 			while (iterator.hasNext()) {
 				String controlRef = (String) iterator.next();
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/XMLMemento.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/XMLMemento.java
index ff9d447..8c0dac2 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/XMLMemento.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/XMLMemento.java
@@ -273,14 +273,14 @@
 	 * @exception java.io.IOException
 	 */
 	public static IMemento loadMemento(String filename) throws IOException {
-		FileInputStream fin = null;
+		InputStream in = null;
 		try {
-			fin = new FileInputStream(filename);
-			return XMLMemento.createReadRoot(fin);
+			in = new BufferedInputStream(new FileInputStream(filename));
+			return XMLMemento.createReadRoot(in);
 		} finally {
 			try {
-				if (fin != null)
-					fin.close();
+				if (in != null)
+					in.close();
 			} catch (Exception e) {
 				// ignore
 			}
@@ -365,9 +365,9 @@
 	 * @exception java.io.IOException
 	 */
 	public void saveToFile(String filename) throws IOException {
-		FileOutputStream w = null;
+		BufferedOutputStream w = null;
 		try {
-			w = new FileOutputStream(filename);
+			w = new BufferedOutputStream(new FileOutputStream(filename));
 			save(w);
 		} catch (IOException e) {
 			throw e;
diff --git a/plugins/org.eclipse.wst.server.ui/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.wst.server.ui/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..c8be432
--- /dev/null
+++ b/plugins/org.eclipse.wst.server.ui/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+#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.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.server.ui/META-INF/MANIFEST.MF
index 6cf6600..36c91c8 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.0.104.qualifier
+Bundle-Version: 1.0.107.qualifier
 Bundle-Activator: org.eclipse.wst.server.ui.internal.ServerUIPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.wst.server.ui/plugin.xml b/plugins/org.eclipse.wst.server.ui/plugin.xml
index c3462d4..997fc95 100644
--- a/plugins/org.eclipse.wst.server.ui/plugin.xml
+++ b/plugins/org.eclipse.wst.server.ui/plugin.xml
@@ -57,7 +57,7 @@
       <keywordReference id="org.eclipse.wst.server.preferenceKeywords"/>
   </page>
   <page
-    id="org.eclipse.wst.server.ui.preferencePage"
+    id="org.eclipse.wst.server.ui.launching.preferencePage"
     name="%preferenceLaunchingTitle"
     category="org.eclipse.wst.server.ui.preferencePage"
     class="org.eclipse.wst.server.ui.internal.LaunchingPreferencePage">
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 477733f..73b2448 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
@@ -176,7 +176,8 @@
 		} else
 			hostname.setText("");
 		
-		if (runtime != null)
+		// check if runtime property is true or false
+		if (runtime != null && server != null && server.getServerType() != null && server.getServerType().hasRuntime())
 			runtimeLabel.setText(runtime.getName());
 		else
 			runtimeLabel.setText("");
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/editor/ServerEditor.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/editor/ServerEditor.java
index 49b88ca..2c20a30 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/editor/ServerEditor.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/editor/ServerEditor.java
@@ -926,8 +926,13 @@
 		// check for server changes
 		if (serverId != null) {
 			if (!commandManager.isDirty(serverId)) {
-				if (commandManager.hasChanged(serverId))
-					promptReloadServerFile(serverId, server);
+				if (commandManager.hasChanged(serverId)) {
+					IServer newServer = ServerCore.findServer(serverId);
+					if (newServer != null && ((Server)newServer).getTimestamp() > ((Server)server).getTimestamp())
+						commandManager.reload(serverId, new NullProgressMonitor());
+					else
+						promptReloadServerFile(serverId, server);
+				}
 			} else {
 				if (commandManager.hasChanged(serverId) && !commandManager.areFilesReadOnly(serverId))
 					promptReloadServerFile(serverId, server);
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 f5fd982..5a318b6 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
@@ -10,6 +10,10 @@
  *******************************************************************************/
 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;
@@ -30,13 +34,22 @@
 		int size = module.length;
 		setText(NLS.bind(Messages.actionRestartModule, module[size - 1].getName()));
 		
-		setEnabled(server.canControlModule(module, null).isOK() && server.getModuleState(module) != IServer.STATE_STOPPED);
+		setEnabled(server.getServerState() == IServer.STATE_STARTED
+			&& server.getModuleState(module) != IServer.STATE_STOPPED
+			&& server.canControlModule(module, null).isOK());
 	}
 
 	/**
 	 * 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.actionRestartModule, 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/wizard/fragment/SubTasksWizardFragment.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/fragment/SubTasksWizardFragment.java
new file mode 100644
index 0000000..85956f8
--- /dev/null
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/fragment/SubTasksWizardFragment.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.server.ui.internal.wizard.fragment;
+
+import java.util.List;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.wst.server.ui.internal.wizard.page.TasksComposite;
+import org.eclipse.wst.server.ui.wizard.IWizardHandle;
+import org.eclipse.wst.server.ui.wizard.WizardFragment;
+/**
+ * 
+ */
+public class SubTasksWizardFragment extends WizardFragment {
+	protected TasksComposite comp;
+
+	protected List tasks;
+
+	public SubTasksWizardFragment() {
+		// do nothing
+	}
+
+	public void enter() {
+		updateTasks(tasks);
+		
+		if (comp != null)
+			comp.createControl();
+	}
+
+	public void updateTasks(List newTasks) {
+		tasks = newTasks;
+		if (comp != null)
+			Display.getDefault().syncExec(new Runnable() {
+				public void run() {
+					comp.setTasks(tasks);
+				}
+			});
+	}
+
+	public boolean hasComposite() {
+		return true;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.wst.server.ui.internal.task.WizardTask#getWizardPage()
+	 */
+	public Composite createComposite(Composite parent, IWizardHandle wizard) {
+		comp = new TasksComposite(parent, wizard);
+		return comp;
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/fragment/TasksWizardFragment.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/fragment/TasksWizardFragment.java
index f9a3dab..b35b6b2 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/fragment/TasksWizardFragment.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/fragment/TasksWizardFragment.java
@@ -18,14 +18,10 @@
 
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
 import org.eclipse.wst.server.core.*;
 import org.eclipse.wst.server.core.internal.*;
 import org.eclipse.wst.server.core.model.PublishOperation;
 import org.eclipse.wst.server.ui.internal.editor.IOrdered;
-import org.eclipse.wst.server.ui.internal.wizard.page.TasksComposite;
-import org.eclipse.wst.server.ui.wizard.IWizardHandle;
 import org.eclipse.wst.server.ui.wizard.WizardFragment;
 /**
  * 
@@ -70,26 +66,71 @@
 		protected String getId() {
 			return id;
 		}
+		
+		public boolean equals(Object obj) {
+			if (!(obj instanceof TaskInfo))
+				return false;
+			
+			TaskInfo ti = (TaskInfo) obj;
+			if (kind != ti.kind)
+				return false;
+			
+			if (id == null || !id.equals(ti.id))
+				return false;
+			
+			if (task2 == null && ti.task2 != null)
+				return false;
+			
+			if (task2 != null && ti.task2 == null)
+				return false;
+			
+			try {
+				if (task2 != null && ti.task2 != null) {
+					if (task2.getKind() != ti.task2.getKind())
+						return false;
+					if (task2.getOrder() != ti.task2.getOrder())
+						return false;
+					if (!task2.getLabel().equals(ti.task2.getLabel()))
+						return false;
+					if (!task2.getDescription().equals(ti.task2.getDescription()))
+						return false;
+				}
+			} catch (Exception e) {
+				// ignore
+			}
+			return true;
+		}
 	}
 
-	protected TasksComposite comp;
-
 	protected List tasks;
 	protected boolean hasOptionalTasks;
-	
+	protected boolean hasPreferredTasks;
+
 	protected Map selectedTaskMap = new HashMap();
-	
+
 	public TasksWizardFragment() {
 		// do nothing
 	}
-	
+
+	protected void createChildFragments(List list) {
+		if (tasks == null)
+			return;
+		
+		int TASKS_PER_PAGE = 5;
+		int size = tasks.size();
+		int pages = (size - 1) / TASKS_PER_PAGE + 1;
+		for (int i = 0; i < pages; i++) {
+			SubTasksWizardFragment fragment = new SubTasksWizardFragment();
+			List list2 = tasks.subList(TASKS_PER_PAGE * i, Math.min(size, TASKS_PER_PAGE * (i+1)));
+			fragment.updateTasks(list2);
+			list.add(fragment);
+		}
+	}
+
 	public void enter() {
 		updateTasks();
-		
-		if (comp != null)
-			comp.createControl();
 	}
-	
+
 	public List getChildFragments() {
 		updateTasks();
 		return super.getChildFragments();
@@ -101,9 +142,10 @@
 	}
 
 	public void updateTasks() {
-		tasks = null;
-		if (getTaskModel() == null)
+		if (getTaskModel() == null) {
+			tasks = null;
 			return;
+		}
 
 		IServerAttributes server = (IServerAttributes) getTaskModel().getObject(TaskModel.TASK_SERVER);
 		List modules = (List) getTaskModel().getObject(TaskModel.TASK_MODULES);
@@ -121,22 +163,20 @@
 		}
 		
 		if (server != null && modules != null) {
-			tasks = new ArrayList();
-			createTasks(server, modules);
+			List taskList = new ArrayList();
+			createTasks(taskList, server, modules);
+			
+			if (tasks == null || !tasks.equals(taskList)) {
+				tasks = taskList;
+				updateChildFragments();
+			}
 		}
-		
-		if (comp != null)
-			Display.getDefault().syncExec(new Runnable() {
-				public void run() {
-					comp.setTasks(tasks);
-				}
-			});
 	}
-	
-	protected void createTasks(IServerAttributes server, List modules) {
+
+	protected void createTasks(List taskList, IServerAttributes server, List modules) {
 		if (server == null)
 			return;
-
+		
 		List enabledTasks = ((Server)server).getEnabledOptionalPublishOperationIds();
 		List disabledTasks = ((Server)server).getDisabledPreferredPublishOperationIds();
 		PublishOperation[] tasks2 = ((Server)server).getAllTasks(modules);
@@ -145,6 +185,8 @@
 			String id = ((Server)server).getPublishOperationId(tasks2[j]);
 			if (kind == PublishOperation.OPTIONAL || kind == PublishOperation.PREFERRED)
 				hasOptionalTasks = true;
+			if (kind == PublishOperation.PREFERRED)
+				hasPreferredTasks = true;
 			tasks2[j].setTaskModel(getTaskModel());
 			
 			boolean selected = true;
@@ -155,30 +197,22 @@
 				if (disabledTasks.contains(id))
 					selected = false;
 			}
-			addServerTask(server, tasks2[j], selected);
+			taskList.add(getServerTask(server, tasks2[j], selected));
 		}
 	}
 
-	public void addServerTask(IServerAttributes server, PublishOperation task2, boolean selected) {
+	public TaskInfo getServerTask(IServerAttributes server, PublishOperation task2, boolean selected) {
 		TaskInfo sti = new TaskInfo();
 		sti.task2 = task2;
 		sti.kind = task2.getKind();
 		sti.id = ((Server)server).getPublishOperationId(task2);
 		sti.setDefaultSelected(selected);
 		
-		tasks.add(sti);
+		return sti;
 	}
 
 	public boolean hasComposite() {
-		return hasTasks();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.server.ui.internal.task.WizardTask#getWizardPage()
-	 */
-	public Composite createComposite(Composite parent, IWizardHandle wizard) {
-		comp = new TasksComposite(parent, wizard);
-		return comp;
+		return false;
 	}
 
 	/**
@@ -246,4 +280,14 @@
 	public boolean hasOptionalTasks() {
 		return hasOptionalTasks;
 	}
+
+	/**
+	 * Return <code>true</code> if this wizard has preferred tasks.
+	 * 
+	 * @return <code>true</code> if this wizard has preferred tasks, and
+	 *    <code>false</code> otherwise
+	 */
+	public boolean hasPreferredTasks() {
+		return hasPreferredTasks;
+	}
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/ModifyModulesComposite.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/ModifyModulesComposite.java
index 8dcde22..602d166 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/ModifyModulesComposite.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/ModifyModulesComposite.java
@@ -55,6 +55,8 @@
 	protected IWizardHandle wizard;
 
 	protected IServerAttributes server;
+	protected IRuntime runtime;
+	protected boolean runtimeDirty;
 
 	protected Map childModuleMap = new HashMap();
 	protected Map parentModuleMap = new HashMap();
@@ -75,8 +77,13 @@
 	protected Button remove, removeAll;
 
 	protected TaskModel taskModel;
-	protected IModule newModule;
-	protected IModule origNewModule;
+
+	// a module that must be kept on the server
+	protected IModule requiredModule;
+
+	// the parent modules of the above modules. at least one of these modules
+	// must be kept on the server
+	protected IModule[] requiredModules;
 
 	protected Map errorMap;
 
@@ -210,20 +217,49 @@
 	public ModifyModulesComposite(Composite parent, IWizardHandle wizard, IModule module) {
 		super(parent, SWT.NONE);
 		this.wizard = wizard;
-		origNewModule = module;
-			
+		requiredModule = module;
+		
 		wizard.setTitle(Messages.wizModuleTitle);
 		wizard.setDescription(Messages.wizModuleDescription);
 		wizard.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_WIZBAN_SELECT_SERVER));
 		
 		createControl();
 	}
-	
-	public void setServer(IServerAttributes server) {
-		if (server == this.server)
-			return;
 
+	public void setServer(IServerAttributes server) {
+		if (isVisible())
+			return;
+		
+		// see bug 185875
+		if (server == this.server) {
+			if (server == null)
+				return;
+			if (runtime == this.runtime) {
+				if (runtime == null)
+					return;
+				if (runtime instanceof IRuntimeWorkingCopy) {
+					IRuntimeWorkingCopy wc = (IRuntimeWorkingCopy) runtime;
+					if (wc.isDirty() == runtimeDirty)
+						return;
+				} else
+					return;
+			}
+		}
+		
 		this.server = server;
+		if (server == null)
+			runtime = null;
+		else
+			runtime = server.getRuntime();
+		runtimeDirty = false;
+		if (runtime != null) {
+			if (runtime instanceof IRuntimeWorkingCopy) {
+				IRuntimeWorkingCopy wc = (IRuntimeWorkingCopy) runtime;
+				if (wc.isDirty())
+					runtimeDirty = true;
+			}
+		}
+		
 		originalModules = new ArrayList();
 		deployed = new ArrayList();
 		modules = new ArrayList();
@@ -244,25 +280,24 @@
 		}
 		
 		// add new module
-		newModule = null;
+		requiredModules = null;
 		errorMap = new HashMap();
-		if (origNewModule != null) {
+		if (requiredModule != null) {
 			try {
-				IModule[] parents = server.getRootModules(origNewModule, null);
+				IModule[] parents = server.getRootModules(requiredModule, null);
 				if (parents != null && parents.length > 0)
-					newModule = parents[0];
+					requiredModules = parents;
 				else
-					newModule = origNewModule;
+					requiredModules = new IModule[] { requiredModule };
 			} catch (CoreException ce) {
-				errorMap.put(newModule, ce.getStatus());
-				newModule = null;
+				// ignore
+				//errorMap.put(newModule, ce.getStatus());
 			} catch (Exception e) {
 				Trace.trace(Trace.WARNING, "Could not find root module", e);
-				newModule = null;
 			}
 		}
-		if (newModule != null && !deployed.contains(newModule))
-			deployed.add(newModule);
+		if (requiredModules != null && !deployed.contains(requiredModules[0]))
+			deployed.add(requiredModules[0]);
 
 		// get remaining modules
 		IModule[] modules2 = ServerUtil.getModules(server.getServerType().getRuntimeType().getModuleTypes());
@@ -304,7 +339,7 @@
 				// ignore
 			}
 		}
-
+		
 		iterator = modules.iterator();
 		while (iterator.hasNext()) {
 			IModule module = (IModule) iterator.next();
@@ -317,8 +352,15 @@
 			}
 		}
 		
-		// get children recursively
+		// get children recursively one level
+		// put child elements into a different list to avoid concurrent modifications
 		iterator = childModuleMap.keySet().iterator();
+		List list = new ArrayList();
+		while (iterator.hasNext()) {
+			list.add(iterator.next());
+		}
+		
+		iterator = list.iterator();
 		while (iterator.hasNext()) {
 			ChildModuleMapKey key = (ChildModuleMapKey) iterator.next();
 			IModule[] children0 = (IModule[]) childModuleMap.get(key);
@@ -558,21 +600,36 @@
 				// ignore
 			}
 		}
+		
 		add.setEnabled(enabled);
 		addAll.setEnabled(modules.size() > 0);
 		
 		enabled = false;
 		module = getDeployedSelection();
-		if (module != null) {
+		if (module != null && deployed.contains(module)) {
 			try {
-				if (deployed.contains(module) && !module.equals(newModule))
+				int count = 0;
+				boolean found = false;
+				if (requiredModules != null) {
+					// count how many of newModule are deployed
+					int size = requiredModules.length;
+					for (int i = 0; i < size; i++) {
+						if (deployed.contains(requiredModules[i]))
+							count++;
+						if (module.equals(requiredModules[i]))
+							found = true;
+					}
+					if (count > 1 || !found)
+						enabled = true;
+				} else {
 					enabled = true;
+				}
 			} catch (Exception e) {
 				// ignore
 			}
 		}
 		remove.setEnabled(enabled);
-		if (newModule == null)
+		if (requiredModules == null)
 			removeAll.setEnabled(deployed.size() > 0);
 		else
 			removeAll.setEnabled(deployed.size() > 1);
@@ -590,8 +647,23 @@
 
 	protected void remove(boolean all) {
 		if (all) {
-			IModule[] modules2 = new IModule[deployed.size()];
-			deployed.toArray(modules2);
+			// pick one of the required modules to keep
+			IModule keep = null;
+			if (requiredModules != null) {
+				int size2 = requiredModules.length;
+				for (int i = 0; i < size2; i++) {
+					if (keep == null && deployed.contains(requiredModules[i]))
+						keep = requiredModules[i];
+				}
+			}
+			
+			List list = new ArrayList();
+			list.addAll(deployed);
+			list.remove(keep);
+			
+			IModule[] modules2 = new IModule[list.size()];
+			list.toArray(modules2);
+			
 			moveAll(modules2, false);
 		} else
 			moveAll(new IModule[] { getDeployedSelection() }, false);
@@ -607,14 +679,14 @@
 			if (status == null && !list.contains(mods[i]))
 				list.add(mods[i]);
 		}
-
+		
 		Iterator iterator = list.iterator();
 		while (iterator.hasNext()) {
 			IModule module = (IModule) iterator.next();
 			if (add2) {
 				modules.remove(module);
 				deployed.add(module);
-			} else if (!module.equals(newModule)) {
+			} else {
 				modules.add(module);
 				deployed.remove(module);
 			}
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/NewServerComposite.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/NewServerComposite.java
index fa4d7fb..234084f 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/NewServerComposite.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/NewServerComposite.java
@@ -324,9 +324,11 @@
 						wizard.setMessage(NLS.bind(Messages.errorVersionLevel, new Object[] { type, mt.getVersion() }), IMessageProvider.ERROR);
 						server = null;
 					}
+					
 					if (wizard.getMessage() == null) {
+						IModule[] rootModules = null;
 						try {
-							server.getRootModules(module, null);
+							rootModules = server.getRootModules(module, null);
 						} catch (CoreException ce) {
 							IStatus status = ce.getStatus();
 							if (status != null) {
@@ -335,11 +337,42 @@
 								else if (status.getSeverity() == IStatus.WARNING)
 									wizard.setMessage(status.getMessage(), IMessageProvider.WARNING);
 								else if (status.getSeverity() == IStatus.INFO)
-											wizard.setMessage(status.getMessage(), IMessageProvider.INFORMATION);
+									wizard.setMessage(status.getMessage(), IMessageProvider.INFORMATION);
+								server = null;
 							}
 						} catch (Exception e) {
 							Trace.trace(Trace.WARNING, "Could not find root module", e);
 						}
+						if (rootModules != null) {
+							if (rootModules.length == 0) {
+								wizard.setMessage("", IMessageProvider.ERROR);
+								server = null;
+							} else {
+								int size = rootModules.length;
+								IStatus status = null;
+								boolean found = false;
+								for (int i = 0; i < size; i++) {
+									try {
+										status = server.canModifyModules(new IModule[] {rootModules[i]}, null, null);
+										if (status != null && status.isOK())
+											found = true;
+									} catch (Exception e) {
+										Trace.trace(Trace.WARNING, "Could not find root module", e);
+									}
+								}
+								if (!found && status != null) {
+									if (status != null) {
+										if (status.getSeverity() == IStatus.ERROR)
+											wizard.setMessage(status.getMessage(), IMessageProvider.ERROR);
+										else if (status.getSeverity() == IStatus.WARNING)
+											wizard.setMessage(status.getMessage(), IMessageProvider.WARNING);
+										else if (status.getSeverity() == IStatus.INFO)
+											wizard.setMessage(status.getMessage(), IMessageProvider.INFORMATION);
+										server = null;
+									}
+								}
+							}
+						}
 					}
 				}
 				
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/TasksComposite.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/TasksComposite.java
index 1d292ec..db7f981 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/TasksComposite.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/TasksComposite.java
@@ -97,7 +97,6 @@
 				checkbox.setText(label);
 			else
 				checkbox.setText(Messages.elementUnknownName);
-			checkbox.setFocus();
 		
 			checkbox.addSelectionListener(new SelectionListener() {
 				public void widgetSelected(SelectionEvent event) {
@@ -120,7 +119,7 @@
 				checkbox.setEnabled(false);
 				description.setEnabled(false);
 			} else
-				checkbox.setSelection(sti.getDefaultSelected());
+				checkbox.setSelection(sti.isSelected());
 		}
 		
 		if (size == 0) {