This commit was manufactured by cvs2svn to create tag 'R2_0_2'.
diff --git a/features/org.eclipse.jst.server_adapters.feature/feature.xml b/features/org.eclipse.jst.server_adapters.feature/feature.xml
index 7094c4d..64d29a3 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="2.0.0.qualifier"
+      version="2.0.2.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 b099cbd..693f676 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="2.0.0.qualifier"
+      version="2.0.2.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.jst.server_adapters.sdk.feature/feature.xml b/features/org.eclipse.jst.server_adapters.sdk.feature/feature.xml
index c9abe28..050b8d4 100644
--- a/features/org.eclipse.jst.server_adapters.sdk.feature/feature.xml
+++ b/features/org.eclipse.jst.server_adapters.sdk.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.jst.server_adapters.sdk.feature"
       label="%featureName"
-      version="2.0.0.qualifier"
+      version="2.0.2.qualifier"
       provider-name="%providerName">
 
    <description>
@@ -28,5 +28,5 @@
    <includes
          id="org.eclipse.jst.server_adapters.feature.source"
          version="0.0.0"/>
- 
+
 </feature>
diff --git a/features/org.eclipse.jst.server_core.feature/feature.xml b/features/org.eclipse.jst.server_core.feature/feature.xml
index 04ca1e3..1e7193e 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="2.0.0.qualifier"
+      version="2.0.2.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 7c87481..40e0709 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="2.0.0.qualifier"
+      version="2.0.2.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 6ac04c2..416bd13 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="2.0.0.qualifier"
+      version="2.0.2.qualifier"
       provider-name="%providerName">
 
    <description>
@@ -28,5 +28,5 @@
    <includes
          id="org.eclipse.jst.server_ui.feature.source"
          version="0.0.0"/>
- 
+
 </feature>
diff --git a/features/org.eclipse.jst.server_tests.feature/feature.xml b/features/org.eclipse.jst.server_tests.feature/feature.xml
index c1ef51e..6393828 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="2.0.0.qualifier"
+      version="2.0.2.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 d36cb12..3531444 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="2.0.0.qualifier"
+      version="2.0.2.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 854dd55..d33c3dc 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="2.0.0.qualifier"
+      version="2.0.2.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 3557ff0..c728f50 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="2.0.0.qualifier"
+      version="2.0.2.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.wst.server_adapters.feature/feature.xml b/features/org.eclipse.wst.server_adapters.feature/feature.xml
index 08da934..f71fb72 100644
--- a/features/org.eclipse.wst.server_adapters.feature/feature.xml
+++ b/features/org.eclipse.wst.server_adapters.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.wst.server_adapters.feature"
       label="%featureName"
-      version="2.0.0.qualifier"
+      version="2.0.2.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.wst.server_adapters.feature/sourceTemplateFeature/feature.xml b/features/org.eclipse.wst.server_adapters.feature/sourceTemplateFeature/feature.xml
index 165bf79..d0fe106 100644
--- a/features/org.eclipse.wst.server_adapters.feature/sourceTemplateFeature/feature.xml
+++ b/features/org.eclipse.wst.server_adapters.feature/sourceTemplateFeature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.wst.server_adapters.feature.source"
       label="%featureName"
-      version="2.0.0.qualifier"
+      version="2.0.2.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.wst.server_adapters.sdk.feature/feature.xml b/features/org.eclipse.wst.server_adapters.sdk.feature/feature.xml
index 5085f6b..5da52bb 100644
--- a/features/org.eclipse.wst.server_adapters.sdk.feature/feature.xml
+++ b/features/org.eclipse.wst.server_adapters.sdk.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.wst.server_adapters.sdk.feature"
       label="%featureName"
-      version="2.0.0.qualifier"
+      version="2.0.2.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/features/org.eclipse.wst.server_core.feature.patch/.project b/features/org.eclipse.wst.server_core.feature.patch/.project
deleted file mode 100644
index b93c3fa..0000000
--- a/features/org.eclipse.wst.server_core.feature.patch/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.server_core.feature.patch</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/features/org.eclipse.wst.server_core.feature.patch/build.properties b/features/org.eclipse.wst.server_core.feature.patch/build.properties
deleted file mode 100644
index cd1f9c4..0000000
--- a/features/org.eclipse.wst.server_core.feature.patch/build.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-bin.includes = feature.xml,\
-               license.html,\
-               feature.properties,\
-               epl-v10.html,\
-               eclipse_update_120.jpg
-src.includes = license.html,\
-               feature.xml,\
-               feature.properties,\
-               epl-v10.html,\
-               eclipse_update_120.jpg
diff --git a/features/org.eclipse.wst.server_core.feature.patch/build.xml b/features/org.eclipse.wst.server_core.feature.patch/build.xml
deleted file mode 100644
index 1be1285..0000000
--- a/features/org.eclipse.wst.server_core.feature.patch/build.xml
+++ /dev/null
@@ -1,151 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="org.eclipse.wst.server_core.feature.patch" default="build.update.jar" basedir=".">
-
-	<target name="init">
-		<property name="feature.temp.folder" value="${basedir}/feature.temp.folder"/>
-		<property name="feature.destination" value="${basedir}"/>
-	</target>
-
-	<target name="all.plugins" depends="init">
-		<ant antfile="build.xml" dir="../org.eclipse.wst.server.core" target="${target}">
-		</ant>
-	</target>
-	<target name="all.features" depends="init">
-	</target>
-	<target name="update.feature" depends="init">
-	</target>
-
-	<target name="all.children" depends="init,all.features,all.plugins,update.feature">
-	</target>
-
-	<target name="children" if="include.children">
-		<antcall target="all.children"/>
-	</target>
-
-	<target name="build.jars" depends="init" description="Build all the jars for the feature: org.eclipse.wst.server_core.feature.patch.">
-		<antcall target="all.children">
-			<param name="target" value="build.jars"/>
-		</antcall>
-	</target>
-
-	<target name="build.sources" depends="init">
-		<antcall target="all.children">
-			<param name="target" value="build.sources"/>
-		</antcall>
-	</target>
-
-	<target name="build.zips" depends="init">
-		<antcall target="all.children">
-			<param name="target" value="build.zips"/>
-		</antcall>
-	</target>
-
-	<target name="build.update.jar" depends="init" description="Build the feature jar of: org.eclipse.wst.server_core.feature.patch for an update site.">
-		<antcall target="all.children">
-			<param name="target" value="build.update.jar"/>
-		</antcall>
-		<property name="feature.base" value="${feature.temp.folder}"/>
-		<delete dir="${feature.temp.folder}"/>
-		<mkdir dir="${feature.temp.folder}"/>
-		<antcall target="gather.bin.parts" inheritAll="false">
-			<param name="nl" value="*"/>
-			<param name="arch" value="*"/>
-			<param name="os" value="*"/>
-			<param name="ws" value="*"/>
-			<param name="feature.base" value="${feature.temp.folder}"/>
-		</antcall>
-		<jar destfile="${feature.destination}/org.eclipse.wst.server_core.feature.patch_1.0.0.200705241442.jar" basedir="${feature.temp.folder}/features/org.eclipse.wst.server_core.feature.patch_1.0.0.200705241442"/>
-		<delete dir="${feature.temp.folder}"/>
-	</target>
-
-	<target name="gather.bin.parts" depends="init" if="feature.base">
-		<mkdir dir="${feature.base}/features/org.eclipse.wst.server_core.feature.patch_1.0.0.200705241442"/>
-		<antcall target="children">
-			<param name="target" value="gather.bin.parts"/>
-			<param name="destination.temp.folder" value="${feature.base}/plugins"/>
-		</antcall>
-		<copy todir="${feature.base}/features/org.eclipse.wst.server_core.feature.patch_1.0.0.200705241442" failonerror="true" overwrite="false">
-			<fileset dir="${basedir}" includes="feature.xml,license.html,feature.properties,epl-v10.html,eclipse_update_120.jpg"			/>
-		</copy>
-		<eclipse.idReplacer featureFilePath="${feature.base}/features/org.eclipse.wst.server_core.feature.patch_1.0.0.200705241442/feature.xml"  selfVersion="1.0.0.200705241442" featureIds="" pluginIds="org.eclipse.wst.server.core,1.0.107.200705241442,"/>
-		<antcall target="rootFiles${os}_${ws}_${arch}"/>
-	</target>
-	<target name="rootFiles*_*_*">
-	</target>
-	<target name="rootFilesgroup_group_group">
-		<antcall target="rootFiles*_*_*"/>
-	</target>
-
-	<target name="zip.distribution" depends="init" description="Create a zip containing all the plug-ins and features for the feature: org.eclipse.wst.server_core.feature.patch.">
-		<delete dir="${feature.temp.folder}"/>
-		<mkdir dir="${feature.temp.folder}"/>
-		<antcall target="gather.bin.parts">
-			<param name="nl" value="*"/>
-			<param name="arch" value="*"/>
-			<param name="include.children" value="true"/>
-			<param name="os" value="*"/>
-			<param name="ws" value="*"/>
-			<param name="feature.base" value="${feature.temp.folder}"/>
-		</antcall>
-		<zip destfile="${feature.destination}/org.eclipse.wst.server_core.feature.patch_1.0.0.200705241442.bin.dist.zip" basedir="${feature.temp.folder}" filesonly="false" whenempty="skip" update="false"/>
-		<delete dir="${feature.temp.folder}"/>
-	</target>
-
-	<target name="zip.sources" depends="init">
-		<delete dir="${feature.temp.folder}"/>
-		<mkdir dir="${feature.temp.folder}"/>
-		<antcall target="all.children">
-			<param name="include.children" value="true"/>
-			<param name="target" value="gather.sources"/>
-			<param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.eclipse.wst.server_core.feature.patch.source_1.0.0.200705241442/src"/>
-		</antcall>
-		<zip destfile="${feature.destination}/org.eclipse.wst.server_core.feature.patch_1.0.0.200705241442.src.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
-		<delete dir="${feature.temp.folder}"/>
-	</target>
-
-	<target name="zip.logs" depends="init">
-		<delete dir="${feature.temp.folder}"/>
-		<mkdir dir="${feature.temp.folder}"/>
-		<antcall target="all.children" inheritAll="false">
-			<param name="include.children" value="true"/>
-			<param name="target" value="gather.logs"/>
-			<param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
-		</antcall>
-		<zip destfile="${feature.destination}/org.eclipse.wst.server_core.feature.patch_1.0.0.200705241442.log.zip" basedir="${feature.temp.folder}" filesonly="true" whenempty="skip" update="false"/>
-		<delete dir="${feature.temp.folder}"/>
-	</target>
-
-	<target name="clean" depends="init" description="Clean the feature: org.eclipse.wst.server_core.feature.patch of all the zips, jars and logs created.">
-		<delete file="${feature.destination}/org.eclipse.wst.server_core.feature.patch_1.0.0.200705241442.jar"/>
-		<delete file="${feature.destination}/org.eclipse.wst.server_core.feature.patch_1.0.0.200705241442.bin.dist.zip"/>
-		<delete file="${feature.destination}/org.eclipse.wst.server_core.feature.patch_1.0.0.200705241442.log.zip"/>
-		<delete file="${feature.destination}/org.eclipse.wst.server_core.feature.patch_1.0.0.200705241442.src.zip"/>
-		<delete dir="${feature.temp.folder}"/>
-		<antcall target="all.children">
-			<param name="target" value="clean"/>
-		</antcall>
-	</target>
-
-	<target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
-		<eclipse.convertPath fileSystemPath="D:/builds/Workspaces/WTP15maintenance/org.eclipse.wst.server_core.feature.patch/" property="resourcePath"/>
-		<eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
-		<antcall target="all.children">
-			<param name="target" value="refresh"/>
-		</antcall>
-	</target>
-	<target name="gather.sources">
-		<antcall target="children">
-			<param name="target" value="gather.sources"/>
-			<param name="destination.temp.folder" value="${feature.temp.folder}/plugins/org.eclipse.wst.server_core.feature.patch.source_1.0.0.200705241442/src"/>
-		</antcall>
-	</target>
-
-	<target name="gather.logs" depends="init">
-		<mkdir dir="${feature.temp.folder}"/>
-		<antcall target="all.children" inheritAll="false">
-			<param name="target" value="gather.logs"/>
-			<param name="destination.temp.folder" value="${feature.temp.folder}/plugins"/>
-		</antcall>
-	</target>
-
-</project>
diff --git a/features/org.eclipse.wst.server_core.feature.patch/eclipse_update_120.jpg b/features/org.eclipse.wst.server_core.feature.patch/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/features/org.eclipse.wst.server_core.feature.patch/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/features/org.eclipse.wst.server_core.feature.patch/epl-v10.html b/features/org.eclipse.wst.server_core.feature.patch/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/features/org.eclipse.wst.server_core.feature.patch/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.wst.server_core.feature.patch/feature.properties b/features/org.eclipse.wst.server_core.feature.patch/feature.properties
deleted file mode 100644
index 385a356..0000000
--- a/features/org.eclipse.wst.server_core.feature.patch/feature.properties
+++ /dev/null
@@ -1,150 +0,0 @@
-###############################################################################
-# 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
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=WST Server Core
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
-
-# "description" property - description of the feature
-description=\
-A patch for Server tools framework core. \n\
-This patch fixes a problem with performance when there is a large number of projects \n\
-in a workspace. \n\
-See bug 187187 (https://bugs.eclipse.org/bugs/show_bug.cgi?id=187187)) \n
-
-
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-March 17, 2005\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/features/org.eclipse.wst.server_core.feature.patch/feature.xml b/features/org.eclipse.wst.server_core.feature.patch/feature.xml
deleted file mode 100644
index 3acc6eb..0000000
--- a/features/org.eclipse.wst.server_core.feature.patch/feature.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.wst.server_core.feature.patch"
-      label="Patch Feature for Server Core"
-      version="1.0.0.qualifier"
-      provider-name="Eclipse.org">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <requires>
-      <import feature="org.eclipse.wst.server_core.feature" version="1.5.4.v200704150133-----1G955H5G5Ep" patch="true"/>
-   </requires>
-
-   <plugin
-         id="org.eclipse.wst.server.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-</feature>
diff --git a/features/org.eclipse.wst.server_core.feature.patch/license.html b/features/org.eclipse.wst.server_core.feature.patch/license.html
deleted file mode 100644
index 2347060..0000000
--- a/features/org.eclipse.wst.server_core.feature.patch/license.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
-<!-- saved from url=(0044)http://www.eclipse.org/legal/epl/notice.html -->
-<HTML><HEAD><TITLE>Eclipse.org Software User Agreement</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1479" name=GENERATOR></HEAD>
-<BODY lang=EN-US vLink=purple link=blue>
-<H2>Eclipse Foundation Software User Agreement</H2>
-<P>January 28, 2005</P>
-<H3>Usage Of Content</H3>
-<P>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION 
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF 
-THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE 
-TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED 
-BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED 
-BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE 
-AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE 
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY 
-APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU 
-MAY NOT USE THE CONTENT.</P>
-<H3>Applicable Licenses</H3>
-<P>Unless otherwise indicated, all Content made available by the Eclipse 
-Foundation is provided to you under the terms and conditions of the Eclipse 
-Public License Version 1.0 ("EPL"). A copy of the EPL is provided with this 
-Content and is also available at <A 
-href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-<P>Content includes, but is not limited to, source code, object code, 
-documentation and other files maintained in the Eclipse.org CVS repository 
-("Repository") in CVS modules ("Modules") and made available as downloadable 
-archives ("Downloads").</P>
-<P>Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments 
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more 
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" may 
-contain a list of the names and version numbers of the Plug-ins and/or Fragments 
-associated with a Feature. Plug-ins and Fragments are located in directories 
-named "plugins" and Features are located in directories named "features".</P>
-<P>Features may also include other Features ("Included Features"). Files named 
-"feature.xml" may contain a list of the names and version numbers of Included 
-Features.</P>
-<P>The terms and conditions governing Plug-ins and Fragments should be contained 
-in files named "about.html" ("Abouts"). The terms and conditions governing 
-Features and Included Features should be contained in files named "license.html" 
-("Feature Licenses"). Abouts and Feature Licenses may be located in any 
-directory of a Download or Module including, but not limited to the following 
-locations:</P>
-<UL>
-  <LI>The top-level (root) directory 
-  <LI>Plug-in and Fragment directories 
-  <LI>Subdirectories of the directory named "src" of certain Plug-ins 
-  <LI>Feature directories </LI></UL>
-<P>Note: if a Feature made available by the Eclipse Foundation is installed 
-using the Eclipse Update Manager, you must agree to a license ("Feature Update 
-License") during the installation process. If the Feature contains Included 
-Features, the Feature Update License should either provide you with the terms 
-and conditions governing the Included Features or inform you where you can 
-locate them. Feature Update Licenses may be found in the "license" property of 
-files named "feature.properties". Such Abouts, Feature Licenses and Feature 
-Update Licenses contain the terms and conditions (or references to such terms 
-and conditions) that govern your use of the associated Content in that 
-directory.</P>
-<P>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL 
-OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE 
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</P>
-<UL>
-  <LI>Common Public License Version 1.0 (available at <A 
-  href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</A>) 
-
-  <LI>Apache Software License 1.1 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</A>) 
-
-  <LI>Apache Software License 2.0 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</A>) 
-
-  <LI>IBM Public License 1.0 (available at <A 
-  href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</A>) 
-
-  <LI>Metro Link Public License 1.00 (available at <A 
-  href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</A>) 
-
-  <LI>Mozilla Public License Version 1.1 (available at <A 
-  href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</A>) 
-  </LI></UL>
-<P>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR 
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License is 
-provided, please contact the Eclipse Foundation to determine what terms and 
-conditions govern that particular Content.</P>
-<H3>Cryptography</H3>
-<P>Content may contain encryption software. The country in which you are 
-currently may have restrictions on the import, possession, and use, and/or 
-re-export to another country, of encryption software. BEFORE using any 
-encryption software, please check the country's laws, regulations and policies 
-concerning the import, possession, or use, and re-export of encryption software, 
-to see if this is permitted.</P></BODY></HTML>
diff --git a/features/org.eclipse.wst.server_core.feature/feature.xml b/features/org.eclipse.wst.server_core.feature/feature.xml
index 2152385..4bc4b4f 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="2.0.0.qualifier"
+      version="2.0.2.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 71ba02a..f49461b 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="2.0.0.qualifier"
+      version="2.0.2.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 3582c66..87b88bd 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="2.0.0.qualifier"
+      version="2.0.2.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 8a5d027..cfd2ebb 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="2.0.0.qualifier"
+      version="2.0.2.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 9b9b29d..9f3aad2 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="2.0.0.qualifier"
+      version="2.0.2.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 76ab25d..a5e6165 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="2.0.0.qualifier"
+      version="2.0.2.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 9191205..b683aab 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="2.0.0.qualifier"
+      version="2.0.2.qualifier"
       provider-name="%providerName">
 
    <description>
diff --git a/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/Trace.java b/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/Trace.java
index 224c64d..1a4cc61 100644
--- a/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/Trace.java
+++ b/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/Trace.java
@@ -9,6 +9,10 @@
  *     IBM Corporation - Initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.server.core.internal;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+
 /**
  * Helper class to route trace output.
  */
@@ -57,6 +61,9 @@
 	 * @param t Throwable
 	 */
 	public static void trace(byte level, String s, Throwable t) {
+		if (level == SEVERE)
+			JavaServerPlugin.getInstance().getLog().log(new Status(IStatus.ERROR, JavaServerPlugin.PLUGIN_ID, s, t));
+		
 		if (!JavaServerPlugin.getInstance().isDebugging())
 			return;
 		
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 c21c8e6..e069762 100644
--- a/plugins/org.eclipse.jst.server.generic.core/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.server.generic.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jst.server.generic.core; singleton:=true
-Bundle-Version: 1.0.201.qualifier
+Bundle-Version: 1.0.205.qualifier
 Bundle-Activator: org.eclipse.jst.server.generic.core.internal.CorePlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
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 d367b14..580f571 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,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jst.server.generic.jboss;singleton:=true
-Bundle-Version: 1.5.102.qualifier
+Bundle-Version: 1.5.105.qualifier
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Require-Bundle: org.eclipse.jst.server.core;bundle-version="[1.0.102,1.1.0)",
- org.eclipse.jst.server.generic.core;bundle-version="[1.0.100,1.1.0)",
- org.eclipse.jst.server.generic.ui;bundle-version="[1.0.100,1.1.0)",
+ org.eclipse.jst.server.generic.core;bundle-version="[1.0.102,1.2.0)",
+ org.eclipse.jst.server.generic.ui;bundle-version="[1.0.102,1.2.0)",
  org.eclipse.jst.server.ui;bundle-version="[1.0.102,1.1.0)",
  org.eclipse.jst.common.project.facet.core;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.wst.common.project.facet.core;bundle-version="[1.1.0,2.0.0)",
diff --git a/plugins/org.eclipse.jst.server.generic.jboss/plugin.xml b/plugins/org.eclipse.jst.server.generic.jboss/plugin.xml
index 5a91bb0..ca5a076 100644
--- a/plugins/org.eclipse.jst.server.generic.jboss/plugin.xml
+++ b/plugins/org.eclipse.jst.server.generic.jboss/plugin.xml
@@ -161,7 +161,7 @@
 	           description="%jboss5serverTypeDescription"
 	           launchConfigId="org.eclipse.jst.server.generic.core.launchConfigurationType"
 	           behaviourClass="org.eclipse.jst.server.generic.core.internal.GenericServerBehaviour"
-	           name="%jboss4serverTypeName"
+	           name="%jboss5serverTypeName"
 	           startTimeout="50000"
 		       stopTimeout="15000"
 	           hasConfiguration="false"
diff --git a/plugins/org.eclipse.jst.server.generic.jonas/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.server.generic.jonas/META-INF/MANIFEST.MF
index d051efb..f61ca5a 100644
--- a/plugins/org.eclipse.jst.server.generic.jonas/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.server.generic.jonas/META-INF/MANIFEST.MF
@@ -2,12 +2,12 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jst.server.generic.jonas; singleton:=true
-Bundle-Version: 1.5.100.qualifier
+Bundle-Version: 1.5.105.qualifier
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Require-Bundle: org.eclipse.jst.server.core;bundle-version="[1.0.102,1.1.0)",
- org.eclipse.jst.server.generic.core;bundle-version="[1.0.100,1.1.0)",
- org.eclipse.jst.server.generic.ui;bundle-version="[1.0.100,1.1.0)",
+ org.eclipse.jst.server.generic.core;bundle-version="[1.0.102,1.2.0)",
+ org.eclipse.jst.server.generic.ui;bundle-version="[1.0.102,1.2.0)",
  org.eclipse.jst.server.ui;bundle-version="[1.0.102,1.1.0)",
  org.eclipse.jst.common.project.facet.core;bundle-version="[1.1.0,1.2.0)",
  org.eclipse.wst.common.project.facet.core;bundle-version="[1.1.0,2.0.0)",
diff --git a/plugins/org.eclipse.jst.server.generic.jonas/servers/jonas.serverdef b/plugins/org.eclipse.jst.server.generic.jonas/servers/jonas.serverdef
index e082a38..c2fd8f8 100644
--- a/plugins/org.eclipse.jst.server.generic.jonas/servers/jonas.serverdef
+++ b/plugins/org.eclipse.jst.server.generic.jonas/servers/jonas.serverdef
@@ -66,7 +66,7 @@
 		<mainClass>org.objectweb.jonas.server.Bootstrap</mainClass>
 		<workingDirectory>${jonasRoot}</workingDirectory>
 		<programArguments>org.objectweb.jonas.server.Server</programArguments>
-		<vmParameters>-Dinstall.root="${jonasRoot}" -Djonas.base="${jonasBase}" -Djava.security.policy="${jonasRoot}/conf/java.policy" -Djonas.classpath=-Djonas.default.classloader=true -Djavax.rmi.CORBA.PortableRemoteObjectClass=org.objectweb.carol.rmi.multi.MultiPRODelegate -Djava.naming.factory.initial=org.objectweb.carol.jndi.spi.MultiOrbInitialContextFactory -Djava.security.auth.login.config="${jonasRoot}/conf/jaas.config"  -Djava.endorsed.dirs="${jonasRoot}/lib/endorsed" -Djava.rmi.server.RMIClassLoaderSpi=org.objectweb.jonas.server.RemoteClassLoaderSpi</vmParameters>
+		<vmParameters>-Dinstall.root="${jonasRoot}" -Djonas.base="${jonasBase}" -Djava.security.policy="${jonasRoot}/conf/java.policy" -Djonas.classpath= -Djonas.default.classloader=true -Djavax.rmi.CORBA.PortableRemoteObjectClass=org.objectweb.carol.rmi.multi.MultiPRODelegate -Djava.naming.factory.initial=org.objectweb.carol.jndi.spi.MultiOrbInitialContextFactory -Djava.security.auth.login.config="${jonasRoot}/conf/jaas.config"  -Djava.endorsed.dirs="${jonasRoot}/lib/endorsed" -Djava.rmi.server.RMIClassLoaderSpi=org.objectweb.jonas.server.RemoteClassLoaderSpi</vmParameters>
 		<classpathReference>jonas</classpathReference>
 	</start>
 
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.oc4j/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.server.generic.oc4j/META-INF/MANIFEST.MF
index 83469e4..7f180d3 100644
--- a/plugins/org.eclipse.jst.server.generic.oc4j/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.server.generic.oc4j/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jst.server.generic.oc4j;singleton:=true
-Bundle-Version: 1.5.100.qualifier
+Bundle-Version: 1.5.105.qualifier
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Require-Bundle: org.eclipse.jst.server.generic.core;bundle-version="[1.0.100,1.1.0)",
- org.eclipse.jst.server.generic.ui;bundle-version="[1.0.100,1.1.0)",
+Require-Bundle:  org.eclipse.jst.server.generic.core;bundle-version="[1.0.102,1.2.0)",
+ org.eclipse.jst.server.generic.ui;bundle-version="[1.0.102,1.2.0)",
  org.eclipse.jst.server.core;bundle-version="[1.0.102,1.1.0)",
  org.eclipse.jst.server.ui;bundle-version="[1.0.102,1.1.0)",
  org.eclipse.jst.common.project.facet.core;bundle-version="[1.1.0,1.2.0)",
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 12a086f..485275a 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.205.qualifier
 Bundle-Activator: org.eclipse.jst.server.generic.ui.internal.GenericUiPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
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 2522a49..0a73996 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
@@ -70,7 +70,7 @@
         if( ir != null )
         {
             fDecorators = new GenericServerCompositeDecorator[3];
-            fDecorators[0] = new JRESelectDecorator( getRuntimeDelegate() );
+            fDecorators[0] = new JRESelectDecorator( getRuntimeDelegate(), getWizard() );
             fDecorators[1] = new ServerTypeDefinitionRuntimeDecorator(
                     definition, properties, getWizard(), getRuntimeDelegate() );
             fDecorators[2] = new InstallableRuntimeDecorator( getWizard(),
@@ -78,7 +78,7 @@
         } else
         {
             fDecorators = new GenericServerCompositeDecorator[2];
-            fDecorators[0] = new JRESelectDecorator( getRuntimeDelegate() );
+            fDecorators[0] = new JRESelectDecorator( getRuntimeDelegate(), getWizard() );
             fDecorators[1] = new ServerTypeDefinitionRuntimeDecorator(
                     definition, properties, getWizard(), getRuntimeDelegate() );
         }
@@ -109,7 +109,7 @@
 
         for( int i = 0; i < fDecorators.length; i++ )
         {
-            if( fDecorators[i].validate() )
+            if( fDecorators[i].validate() )//failed do not continue
                 return;
         }
     }
@@ -118,7 +118,7 @@
         // validate to save latest values
         for( int i = 0; i < fDecorators.length; i++ )
         {
-            if( fDecorators[i].validate() )
+            if( fDecorators[i].validate() )//failed do not continue
                 return;
         }
     }
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 d16c488..c3aaf56 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
@@ -133,7 +133,7 @@
         getServer().setName( createName() );
         for( int i = 0; i < fDecorators.length; i++ )
         {
-            if( fDecorators[i].validate() )
+            if( fDecorators[i].validate() )//failed do not continue
                 return;
         }
     }
@@ -145,7 +145,7 @@
         // validate needed to save the latest values.
         for( int i = 0; i < fDecorators.length; i++ )
         {
-            if( fDecorators[i].validate() )
+            if( fDecorators[i].validate() )//failed do not continue
                 return;
         }
     }
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..18cd225 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
@@ -11,9 +11,12 @@
 
 import java.util.ArrayList;
 import java.util.List;
+
+import org.eclipse.core.runtime.IStatus;
 import org.eclipse.jdt.launching.IVMInstall;
 import org.eclipse.jdt.launching.IVMInstallType;
 import org.eclipse.jdt.launching.JavaRuntime;
+import org.eclipse.jface.dialogs.IMessageProvider;
 import org.eclipse.jface.preference.IPreferenceNode;
 import org.eclipse.jface.preference.PreferenceDialog;
 import org.eclipse.jface.preference.PreferenceManager;
@@ -29,15 +32,18 @@
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Link;
 import org.eclipse.ui.PlatformUI;
+import org.eclipse.wst.server.ui.wizard.IWizardHandle;
 
 
 public class JRESelectDecorator implements GenericServerCompositeDecorator {
 	private List installedJREs;
 	private String[] jreNames;
 	private GenericServerRuntime fRuntime;
-	public JRESelectDecorator(GenericServerRuntime runtime){
+	private IWizardHandle fWizard; 
+	public JRESelectDecorator(GenericServerRuntime runtime, IWizardHandle wizardHandle){
 		super();
 		fRuntime = runtime;
+		fWizard = wizardHandle;
 	}
 	
 	public void decorate(final GenericServerComposite composite) {
@@ -135,6 +141,18 @@
 	
 	
 	public boolean validate() {
-		return false;
+	    IStatus status = fRuntime.validate();
+	    if( status.getSeverity() != IStatus.OK )
+	    {
+	        fWizard.setMessage(status.getMessage(), IMessageProvider.ERROR);
+	        fWizard.update();
+	        return true;
+	    }
+	    else
+	    {
+	        fWizard.setMessage("", IMessageProvider.NONE); //$NON-NLS-1$
+	        fWizard.update();
+	        return false;
+	    }
 	}
 }
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 28ce3ba..5bc96d7 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
@@ -190,7 +190,13 @@
     		else if(fPropertyControls.get(i) instanceof Combo){
     			Combo combo = (Combo)fPropertyControls.get(i);
      			int index = combo.getSelectionIndex();
-    			propertyMap.put(prop.getId(),combo.getItem(index));
+     			if ( index > 0 ){//is there a selection?
+     			    propertyMap.put(prop.getId(),combo.getItem(index));
+     			}
+     			else{
+     			   propertyMap.put(prop.getId(),combo.getText());
+     			}
+     			
     		}else{
     			Text text = (Text)fPropertyControls.get(i);
     			propertyMap.put(prop.getId(),text.getText());
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.preview.adapter/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.server.preview.adapter/META-INF/MANIFEST.MF
index e19f60b..826e08c 100644
--- a/plugins/org.eclipse.jst.server.preview.adapter/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.server.preview.adapter/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jst.server.preview.adapter;singleton:=true
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 1.0.2.qualifier
 Bundle-Activator: org.eclipse.jst.server.preview.adapter.internal.PreviewPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.jst.server.preview.adapter/src/org/eclipse/jst/server/preview/adapter/internal/core/PingThread.java b/plugins/org.eclipse.jst.server.preview.adapter/src/org/eclipse/jst/server/preview/adapter/internal/core/PingThread.java
index 829596b..1d5461c 100644
--- a/plugins/org.eclipse.jst.server.preview.adapter/src/org/eclipse/jst/server/preview/adapter/internal/core/PingThread.java
+++ b/plugins/org.eclipse.jst.server.preview.adapter/src/org/eclipse/jst/server/preview/adapter/internal/core/PingThread.java
@@ -17,6 +17,7 @@
 
 import org.eclipse.jst.server.preview.adapter.internal.Trace;
 import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.internal.ServerType;
 /**
  * Thread used to ping server to test when it is started.
  */
@@ -28,7 +29,7 @@
 	private static final int PING_INTERVAL = 250;
 
 	// maximum number of pings before giving up
-	private int maxPings = 40;
+	private int maxPings;
 
 	private boolean stop = false;
 	private String url;
@@ -47,6 +48,7 @@
 		this.server = server;
 		this.url = url;
 		this.behaviour = behaviour;
+		this.maxPings = guessMaxPings();
 		Thread t = new Thread("Preview Ping Thread") {
 			public void run() {
 				ping();
@@ -56,9 +58,16 @@
 		t.start();
 	}
 
+	private int guessMaxPings() {
+		int startTimeout = ((ServerType) server.getServerType()).getStartTimeout();
+		if (startTimeout > 0)
+			return startTimeout / PING_INTERVAL;
+		return -1;
+	}
+
 	/**
-	 * Ping the server until it is started. Then set the server
-	 * state to STATE_STARTED.
+	 * Ping the server until it is started. Then set the server state to
+	 * STATE_STARTED.
 	 */
 	protected void ping() {
 		int count = 0;
diff --git a/plugins/org.eclipse.jst.server.preview.adapter/src/org/eclipse/jst/server/preview/adapter/internal/core/PreviewLaunchConfigurationDelegate.java b/plugins/org.eclipse.jst.server.preview.adapter/src/org/eclipse/jst/server/preview/adapter/internal/core/PreviewLaunchConfigurationDelegate.java
index 1190842..12be701 100644
--- a/plugins/org.eclipse.jst.server.preview.adapter/src/org/eclipse/jst/server/preview/adapter/internal/core/PreviewLaunchConfigurationDelegate.java
+++ b/plugins/org.eclipse.jst.server.preview.adapter/src/org/eclipse/jst/server/preview/adapter/internal/core/PreviewLaunchConfigurationDelegate.java
@@ -36,6 +36,7 @@
 public class PreviewLaunchConfigurationDelegate extends AbstractJavaLaunchConfigurationDelegate {
 	private static final String[] REQUIRED_BUNDLE_IDS = new String[] {
 		"org.apache.commons.logging",
+		"org.apache.commons.el",
 		"javax.servlet",
 		"javax.servlet.jsp",
 		"org.apache.jasper",
@@ -67,8 +68,8 @@
 			jars[i] = path.toOSString();
 		}
 		
-		if (new File(jars[5] + "bin").exists())
-			jars[5] = jars[5] + "bin";
+		if (new File(jars[6] + "bin").exists())
+			jars[6] = jars[6] + "bin";
 		
 		IVMInstall vm = verifyVMInstall(configuration);
 		
@@ -82,7 +83,7 @@
 			workingDirName = workingDir.getAbsolutePath();
 		
 		// Program & VM args
-		String pgmArgs = previewServer.getTempDirectory().append("preview.xml").toOSString(); 
+		String pgmArgs = "\"" + previewServer.getTempDirectory().append("preview.xml").toOSString() + "\""; 
 			//getProgramArguments(configuration);
 		String vmArgs = getVMArguments(configuration);
 		String[] envp = getEnvironment(configuration);
diff --git a/plugins/org.eclipse.jst.server.preview/.cvsignore b/plugins/org.eclipse.jst.server.preview/.cvsignore
deleted file mode 100644
index c0cf45b..0000000
--- a/plugins/org.eclipse.jst.server.preview/.cvsignore
+++ /dev/null
@@ -1,8 +0,0 @@
-bin
-build.xml
-org.eclipse.jst.server.core_3.0.0.jar
-sjavacore.jar
-temp.folder
-@dot
-src.zip
-javaCompiler...args
diff --git a/plugins/org.eclipse.jst.server.preview/.options b/plugins/org.eclipse.jst.server.preview/.options
deleted file mode 100644
index c0ef0b3..0000000
--- a/plugins/org.eclipse.jst.server.preview/.options
+++ /dev/null
@@ -1,7 +0,0 @@
-# Debugging options for the org.eclipse.jst.server.core plugin
-
-# Turn on general debugging
-org.eclipse.jst.server.core/debug=true
-
-# Turn on general debugging
-org.eclipse.jst.server.core/publishing=false
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.server.preview/.project b/plugins/org.eclipse.jst.server.preview/.project
deleted file mode 100644
index d1c3a80..0000000
--- a/plugins/org.eclipse.jst.server.preview/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jst.server.preview</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.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.jst.server.preview/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.jst.server.preview/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index c8be432..0000000
--- a/plugins/org.eclipse.jst.server.preview/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Fri Nov 10 17:11:35 HST 2006
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/plugins/org.eclipse.jst.server.preview/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.jst.server.preview/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index c6a69e9..0000000
--- a/plugins/org.eclipse.jst.server.preview/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,74 +0,0 @@
-#Tue Jan 16 16:59:15 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=error
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch,*.testsuite,*.deploy,*.location,*.execution,*.datapool,*.artifact,*.html,*.svg
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=disabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=1000
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=error
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=error
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=error
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=error
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=warning
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/plugins/org.eclipse.jst.server.preview/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.jst.server.preview/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 584bdff..0000000
--- a/plugins/org.eclipse.jst.server.preview/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Fri Nov 10 18:06:11 HST 2006
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?>\n<templates/>
diff --git a/plugins/org.eclipse.jst.server.preview/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.jst.server.preview/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 08a60e5..0000000
--- a/plugins/org.eclipse.jst.server.preview/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Sat Apr 22 18:36:14 EDT 2006
-compilers.incompatible-environment=0
-compilers.p.build=0
-compilers.p.deprecated=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.server.tomcat.core/META-INF/MANIFEST.MF
index 0729bd8..64e5479 100644
--- a/plugins/org.eclipse.jst.server.tomcat.core/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.server.tomcat.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jst.server.tomcat.core; singleton:=true
-Bundle-Version: 1.1.000.qualifier
+Bundle-Version: 1.1.002.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/Tomcat50Configuration.java b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat50Configuration.java
index c4877c9..dd88206 100644
--- a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat50Configuration.java
+++ b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat50Configuration.java
@@ -17,8 +17,10 @@
 import java.io.FileWriter;
 import java.io.InputStream;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IFolder;
@@ -57,6 +59,12 @@
 
 	protected String propertiesFile;
 	
+	protected static final Map protocolHandlerMap = new HashMap();
+	static {
+		protocolHandlerMap.put("org.apache.coyote.http11.Http11Protocol", "HTTP/1.1");
+		protocolHandlerMap.put("org.apache.jk.server.JkCoyoteHandler", "AJP/1.3");
+	}
+	
 	/**
 	 * Tomcat50Configuration constructor.
 	 * 
@@ -75,7 +83,7 @@
 		while (iterator.hasNext()) {
 			ServerPort port = (ServerPort) iterator.next();
 			// Return only an HTTP port from the selected Service
-			if (port.getName().equals("HTTP") && port.getId().indexOf('/') < 0)
+			if (port.getProtocol().toLowerCase().equals("http") && port.getId().indexOf('/') < 0)
 				return port;
 		}
 		return null;
@@ -114,7 +122,7 @@
 				int size2 = service.getConnectorCount();
 				for (int j = 0; j < size2; j++) {
 					Connector connector = service.getConnector(j);
-					String name = "HTTP";
+					String name = "HTTP/1.1";
 					String protocol2 = "HTTP";
 					boolean advanced = true;
 					String[] contentTypes = null;
@@ -126,10 +134,32 @@
 					}
 					String protocol = connector.getProtocol();
 					if (protocol != null && protocol.length() > 0) {
-						name = protocol;
-						protocol2 = protocol; 
+						if (protocol.startsWith("HTTP")) {
+							name = protocol;
+						}
+						else if (protocol.startsWith("AJP")) {
+							name = protocol;
+							protocol2 = "AJP"; 
+						}
+						else {
+							// Get Tomcat equivalent name if protocol handler class specified
+							name = (String)protocolHandlerMap.get(protocol);
+							if (name != null) {
+								// Prepare simple protocol string for ServerPort protocol
+								int index = name.indexOf('/');
+								if (index > 0)
+									protocol2 = name.substring(0, index);
+								else
+									protocol2 = name;
+							}
+							// Specified protocol is unknown, just use as is
+							else {
+								name = protocol;
+								protocol2 = protocol;
+							}
+						}
 					}
-					if ("HTTP".equals(protocol))
+					if (protocol2.toLowerCase().equals("http"))
 						contentTypes = new String[] { "web", "webservices" };
 					String secure = connector.getSecure();
 					if (secure != null && secure.length() > 0) {
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat55Configuration.java b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat55Configuration.java
index 02990ab..9894541 100644
--- a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat55Configuration.java
+++ b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat55Configuration.java
@@ -17,8 +17,10 @@
 import java.io.FileWriter;
 import java.io.InputStream;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IFolder;
@@ -56,6 +58,14 @@
 	protected String policyFile;
 
 	protected String propertiesFile;
+
+	protected static final Map protocolHandlerMap = new HashMap();
+	static {
+		protocolHandlerMap.put("org.apache.coyote.http11.Http11Protocol", "HTTP/1.1");
+		protocolHandlerMap.put("org.apache.coyote.http11.Http11AprProtocol", "HTTP/1.1");
+		protocolHandlerMap.put("org.apache.coyote.ajp.AjpAprProtocol", "AJP/1.3");
+		protocolHandlerMap.put("org.apache.jk.server.JkCoyoteHandler", "AJP/1.3");
+	}
 	
 	/**
 	 * Tomcat55Configuration constructor.
@@ -75,7 +85,7 @@
 		while (iterator.hasNext()) {
 			ServerPort port = (ServerPort) iterator.next();
 			// Return only an HTTP port from the selected Service
-			if (port.getName().equals("HTTP") && port.getId().indexOf('/') < 0)
+			if (port.getProtocol().toLowerCase().equals("http") && port.getId().indexOf('/') < 0)
 				return port;
 		}
 		return null;
@@ -114,7 +124,7 @@
 				int size2 = service.getConnectorCount();
 				for (int j = 0; j < size2; j++) {
 					Connector connector = service.getConnector(j);
-					String name = "HTTP";
+					String name = "HTTP/1.1";
 					String protocol2 = "HTTP";
 					boolean advanced = true;
 					String[] contentTypes = null;
@@ -126,10 +136,32 @@
 					}
 					String protocol = connector.getProtocol();
 					if (protocol != null && protocol.length() > 0) {
-						name = protocol;
-						protocol2 = protocol; 
+						if (protocol.startsWith("HTTP")) {
+							name = protocol;
+						}
+						else if (protocol.startsWith("AJP")) {
+							name = protocol;
+							protocol2 = "AJP"; 
+						}
+						else {
+							// Get Tomcat equivalent name if protocol handler class specified
+							name = (String)protocolHandlerMap.get(protocol);
+							if (name != null) {
+								// Prepare simple protocol string for ServerPort protocol
+								int index = name.indexOf('/');
+								if (index > 0)
+									protocol2 = name.substring(0, index);
+								else
+									protocol2 = name;
+							}
+							// Specified protocol is unknown, just use as is
+							else {
+								name = protocol;
+								protocol2 = protocol;
+							}
+						}
 					}
-					if ("HTTP".equals(protocol))
+					if (protocol2.toLowerCase().equals("http"))
 						contentTypes = new String[] { "web", "webservices" };
 					String secure = connector.getSecure();
 					if (secure != null && secure.length() > 0) {
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat60Configuration.java b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat60Configuration.java
index 60808eb..5dbf0a0 100644
--- a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat60Configuration.java
+++ b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat60Configuration.java
@@ -17,8 +17,10 @@
 import java.io.FileWriter;
 import java.io.InputStream;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IFolder;
@@ -58,6 +60,15 @@
 
 	protected String propertiesFile;
 	
+	protected static final Map protocolHandlerMap = new HashMap();
+	static {
+		protocolHandlerMap.put("org.apache.coyote.http11.Http11Protocol", "HTTP/1.1");
+		protocolHandlerMap.put("org.apache.coyote.http11.Http11NioProtocol", "HTTP/1.1");
+		protocolHandlerMap.put("org.apache.coyote.http11.Http11AprProtocol", "HTTP/1.1");
+		protocolHandlerMap.put("org.apache.coyote.ajp.AjpAprProtocol", "AJP/1.3");
+		protocolHandlerMap.put("org.apache.jk.server.JkCoyoteHandler", "AJP/1.3");
+	}
+	
 	/**
 	 * Tomcat60Configuration constructor.
 	 * 
@@ -76,7 +87,7 @@
 		while (iterator.hasNext()) {
 			ServerPort port = (ServerPort) iterator.next();
 			// Return only an HTTP port from the selected Service
-			if (port.getName().equals("HTTP/1.1") && port.getId().indexOf('/') < 0)
+			if (port.getProtocol().toLowerCase().equals("http") && port.getId().indexOf('/') < 0)
 				return port;
 		}
 		return null;
@@ -115,7 +126,7 @@
 				int size2 = service.getConnectorCount();
 				for (int j = 0; j < size2; j++) {
 					Connector connector = service.getConnector(j);
-					String name = "HTTP";
+					String name = "HTTP/1.1";
 					String protocol2 = "HTTP";
 					boolean advanced = true;
 					String[] contentTypes = null;
@@ -127,10 +138,32 @@
 					}
 					String protocol = connector.getProtocol();
 					if (protocol != null && protocol.length() > 0) {
-						name = protocol;
-						protocol2 = protocol; 
+						if (protocol.startsWith("HTTP")) {
+							name = protocol;
+						}
+						else if (protocol.startsWith("AJP")) {
+							name = protocol;
+							protocol2 = "AJP"; 
+						}
+						else {
+							// Get Tomcat equivalent name if protocol handler class specified
+							name = (String)protocolHandlerMap.get(protocol);
+							if (name != null) {
+								// Prepare simple protocol string for ServerPort protocol
+								int index = name.indexOf('/');
+								if (index > 0)
+									protocol2 = name.substring(0, index);
+								else
+									protocol2 = name;
+							}
+							// Specified protocol is unknown, just use as is
+							else {
+								name = protocol;
+								protocol2 = protocol;
+							}
+						}
 					}
-					if ("HTTP/1.1".equals(protocol))
+					if (protocol2.toLowerCase().equals("http"))
 						contentTypes = new String[] { "web", "webservices" };
 					String secure = connector.getSecure();
 					if (secure != null && secure.length() > 0) {
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatServer.java b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatServer.java
index 1c2745d..a4fb3bd 100644
--- a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatServer.java
+++ b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatServer.java
@@ -227,7 +227,7 @@
 	 */
 	public boolean isServeModulesWithoutPublish() {
 		// If feature is supported, return current setting
-		if (versionHandler.supportsServeModulesWithoutPublish())
+		if (getTomcatVersionHandler().supportsServeModulesWithoutPublish())
 			return getAttribute(PROPERTY_SERVE_MODULES_WITHOUT_PUBLISH, false);
 		return false;
 	}
@@ -240,7 +240,7 @@
 	 */
 	public boolean isSaveSeparateContextFiles() {
 		// If feature is supported, return current setting
-		if (versionHandler.supportsSeparateContextFiles())
+		if (getTomcatVersionHandler().supportsSeparateContextFiles())
 			return getAttribute(PROPERTY_SAVE_SEPARATE_CONTEXT_FILES, false);
 		return false;
 	}
diff --git a/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/custom/SashFormLayout.java b/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/custom/SashFormLayout.java
index 201b876..f750322 100644
--- a/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/custom/SashFormLayout.java
+++ b/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/custom/SashFormLayout.java
@@ -27,7 +27,7 @@
 	Control[] cArray = sashForm.getControls(true);
 	int width = 0;
 	int height = 0;
-	if (cArray.length == 0) {		
+	if (cArray.length == 0) {
 		if (wHint != SWT.DEFAULT) width = wHint;
 		if (hHint != SWT.DEFAULT) height = hHint;
 		return new Point(width, height);
@@ -165,7 +165,7 @@
 		Control c1 = controls[0];
 		Control c2 = controls[1];
 		
-		int h1 = c1.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).y * 2;
+		int h1 = area.height / 3;
 		int h2 = area.height - h1 - sashes[0].getBounds().height;
 		
 		Object data1 = c1.getLayoutData();
@@ -178,8 +178,6 @@
 			data2 = new SashFormData();
 			c2.setLayoutData(data2);
 		}
-		//((SashFormData)data1).weight = (((long)h1 << 16) + area.height - 1) / area.height;
-		//((SashFormData)data2).weight = (((long)h2 << 16) + area.height - 1) / area.height;
 		((SashFormData)data1).weight = ((200 << 16) + 999) / 1000 * h1 / h2;
 		((SashFormData)data2).weight = ((200 << 16) + 999) / 1000;
 		sashForm.resize = false;
@@ -237,7 +235,6 @@
 			height = area.height - y;
 			controls[controls.length - 1].setBounds(area.x, y, area.width, height);
 		}
-
 	}
 }
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/viewers/BrowserViewer.java b/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/viewers/BrowserViewer.java
index 08f1d4f..1b7424d 100644
--- a/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/viewers/BrowserViewer.java
+++ b/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/viewers/BrowserViewer.java
@@ -13,6 +13,8 @@
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.browser.Browser;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
 import org.eclipse.wst.internet.monitor.ui.internal.Messages;
 import org.eclipse.wst.internet.monitor.ui.internal.MonitorUIPlugin;
 import org.eclipse.wst.internet.monitor.ui.internal.provisional.ContentViewer;
@@ -31,7 +33,12 @@
 	 * @see ContentViewer#init(Composite)
 	 */
 	public void init(Composite parent) {
-		browser = new Browser(parent, SWT.BORDER);
+		browser = new Browser(parent, SWT.NONE);
+		browser.addListener(SWT.MenuDetect, new Listener() {
+			public void handleEvent(Event event) {
+				event.doit = false;
+			}
+		});
 	}
 
 	/** (non-Javadoc)
diff --git a/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/viewers/ImageViewer.java b/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/viewers/ImageViewer.java
index 201d48c..bac5fff 100644
--- a/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/viewers/ImageViewer.java
+++ b/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/viewers/ImageViewer.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
@@ -40,6 +40,9 @@
 		scroll = new ScrolledComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL);
 		messageLabel = new Label(scroll, SWT.NONE);
 		messageLabel.setText(Messages.imageViewInvalid);
+		messageLabel.setFont(parent.getFont());
+		messageLabel.setSize(messageLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+		scroll.setContent(messageLabel);
 	}
 
 	/** (non-Javadoc)
@@ -82,9 +85,7 @@
 			}
 		}
 		
-		Composite parent = scroll.getParent();
-		messageLabel.setFont(parent.getFont());
-		parent.layout(true);
+		messageLabel.setSize(messageLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT));
 	}
 
 	/**
diff --git a/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/viewers/XMLViewer.java b/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/viewers/XMLViewer.java
index 2d6bc1a..2029df3 100644
--- a/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/viewers/XMLViewer.java
+++ b/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/internal/viewers/XMLViewer.java
@@ -45,14 +45,14 @@
 	protected StackLayout layout;
 	protected Text messageText;
 	protected Label messageLabel;
-	
+
 	protected boolean xmlTagMissing = false;
 	protected boolean setEncoding = false;
 	protected boolean missingEncoding = false;
 	protected String originalEncoding;
-	
+
 	protected byte[] content;
-	
+
 	/** (non-Javadoc)
 	 * @see ContentViewer#setContent(byte[])
 	 */
@@ -75,16 +75,19 @@
 		xmlTagMissing = !out_temp.startsWith("<?xml");
 		
 		if (out.length() > 0) {
-			byte[] b1 = createDocument(out);
-			String finalMsg = new String(b1);
-			if (finalMsg.startsWith("Invalid XML")) {
+			String finalMsg = null;
+			try {
+				byte[] b1 = createDocument(out);
+				finalMsg = new String(b1).trim();
+			} catch (Exception e) {
 				// case: error parsing
 				messageText.setVisible(false);
 				layout.topControl = messageLabel;
 				messageLabel.setVisible(true);
 				messageLabel.setText(Messages.xmlViewInvalid);
 				return;
-			} else if (xmlTagMissing && finalMsg.toLowerCase().startsWith("<?xml version=\"1.0\" encoding=\"utf-8\"?>")) {
+			}
+			if (xmlTagMissing && finalMsg.toLowerCase().startsWith("<?xml version=\"1.0\" encoding=\"utf-8\"?>")) {
 				int x = finalMsg.indexOf("\n") + 1;
 				String Msg = finalMsg.substring(x);
 				finalMsg = Msg;
@@ -110,13 +113,8 @@
 				finalMsg = first_half + second_half;
 				
 				messageText.setText(finalMsg);	
-			} else {
-				messageText.setVisible(false);
-				layout.topControl = messageLabel;
-				messageLabel.setVisible(true);
-				messageLabel.setText(Messages.xmlViewInvalid);
-				return;
-			}
+			} else
+				messageText.setText(finalMsg);
 		} else
 			messageText.setText(out);
 		
@@ -159,11 +157,7 @@
 	/* (non-Javadoc)
 	 * @#createDocument(String)
 	 */
-	protected byte[] createDocument(String str) {
-		byte[] parseArray = null;
-		Document document = null;
-		byte[] result = null;	
-		
+	protected byte[] createDocument(String str) throws IOException {
 		try {	
 			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
 			try {
@@ -189,21 +183,17 @@
 					originalEncoding = temp2.substring(0, endIndex);
 					if (!"utf-8".equals(originalEncoding))
 						setEncoding = true;
-				}
-				
-				//if no encoding at all,then no changes to be made
-				else if (ind < 0) {
+				} else if (ind < 0) { //if no encoding at all,then no changes to be made
 					setEncoding = false;
 					missingEncoding = true;
 				}
 			}
-			parseArray = str.getBytes();
-			document = parser.parse(new InputSource(new ByteArrayInputStream(parseArray)));
-			result = getContents(document);
+			byte[] parseArray = str.getBytes();
+			Document document = parser.parse(new InputSource(new ByteArrayInputStream(parseArray)));
+			return getContents(document);
 		} catch (Exception e) {
-			result = "Invalid XML".getBytes();
+			throw new IOException("Invalid XML");
 		}
-		return result;
 	}
 
 	protected byte[] getContents(Document document) throws IOException {
@@ -211,10 +201,17 @@
 		Result result = new StreamResult(out);
 		Source source = new DOMSource(document);
 		try {
-			Transformer transformer = TransformerFactory.newInstance().newTransformer();
+			TransformerFactory tf = TransformerFactory.newInstance();
+			try {
+				tf.setAttribute("indent-number", new Integer(2));
+			} catch (Exception e) {
+				e.printStackTrace();
+				// ignore - fails on JDK 1.4
+			}
+			Transformer transformer = tf.newTransformer();
 			transformer.setOutputProperty(OutputKeys.INDENT, "yes"); //$NON-NLS-1$
 			transformer.setOutputProperty(OutputKeys.METHOD, "xml"); //$NON-NLS-1$
-			transformer.transform(source, result);            
+			transformer.transform(source, result);
 		} catch (TransformerConfigurationException e) {
 			throw (IOException) (new IOException().initCause(e));
 		} catch (TransformerException e) {
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 58b1c6d..df21875 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.204.qualifier
+Bundle-Version: 1.0.206.qualifier
 Bundle-Activator: org.eclipse.wst.server.core.internal.ServerPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModulePublishInfo.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ModulePublishInfo.java
index 5fcf6ef..c0a00b2 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
@@ -210,9 +210,9 @@
 			out.writeUTF(moduleId);
 			byte b = 0;
 			if (name != null)
-				b &= 1;
+				b |= 1;
 			if (moduleType != null)
-				b &= 2;
+				b |= 2;
 			out.writeByte(b);
 			
 			if (name != null)
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ResourceManager.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ResourceManager.java
index 51bec16..d593854 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ResourceManager.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/ResourceManager.java
@@ -44,8 +44,8 @@
 	protected List servers;
 
 	// lifecycle listeners
-	protected transient List runtimeListeners;
-	protected transient List serverListeners;
+	protected List runtimeListeners = new ArrayList(3);
+	protected List serverListeners = new ArrayList(3);
 
 	// cache for disposing servers & runtimes
 	protected List activeBundles;
@@ -250,8 +250,12 @@
 		if (projects != null) {
 			int size = projects.length;
 			for (int i = 0; i < size; i++) {
-				if (ServerPlugin.getProjectProperties(projects[i]).isServerProject())
+				if (ServerPlugin.getProjectProperties(projects[i]).isServerProject()) {
+					String projectName = projects[i].getName();
+					if (!serverProjects.contains(projectName))
+						serverProjects.add(projectName);
 					loadFromProject(projects[i]);
+				}
 			}
 		}
 		
@@ -372,42 +376,44 @@
 	 * 
 	 */
 	public void addRuntimeLifecycleListener(IRuntimeLifecycleListener listener) {
-		Trace.trace(Trace.LISTENERS, "Adding server resource listener " + listener + " to " + this);
-	
-		if (runtimeListeners == null)
-			runtimeListeners = new ArrayList(3);
-		runtimeListeners.add(listener);
+		Trace.trace(Trace.LISTENERS, "Adding runtime lifecycle listener " + listener + " to " + this);
+		
+		synchronized (runtimeListeners) {
+			runtimeListeners.add(listener);
+		}
 	}
 	
 	/*
 	 *
 	 */
 	public void removeRuntimeLifecycleListener(IRuntimeLifecycleListener listener) {
-		Trace.trace(Trace.LISTENERS, "Removing server resource listener " + listener + " from " + this);
-	
-		if (runtimeListeners != null)
+		Trace.trace(Trace.LISTENERS, "Removing runtime lifecycle listener " + listener + " from " + this);
+		
+		synchronized (runtimeListeners) {
 			runtimeListeners.remove(listener);
+		}
 	}
 	
 	/*
 	 * 
 	 */
 	public void addServerLifecycleListener(IServerLifecycleListener listener) {
-		Trace.trace(Trace.LISTENERS, "Adding server resource listener " + listener + " to " + this);
-	
-		if (serverListeners == null)
-			serverListeners = new ArrayList(3);
-		serverListeners.add(listener);
+		Trace.trace(Trace.LISTENERS, "Adding server lifecycle listener " + listener + " to " + this);
+		
+		synchronized (serverListeners) {
+			serverListeners.add(listener);
+		}
 	}
 	
 	/*
 	 *
 	 */
 	public void removeServerLifecycleListener(IServerLifecycleListener listener) {
-		Trace.trace(Trace.LISTENERS, "Removing server resource listener " + listener + " from " + this);
-	
-		if (serverListeners != null)
+		Trace.trace(Trace.LISTENERS, "Removing server lifecycle listener " + listener + " from " + this);
+		
+		synchronized (serverListeners) {
 			serverListeners.remove(listener);
+		}
 	}
 	
 	/**
@@ -456,24 +462,26 @@
 	private void fireRuntimeEvent(final IRuntime runtime, byte b) {
 		Trace.trace(Trace.LISTENERS, "->- Firing runtime event: " + runtime.getName() + " ->-");
 		
-		if (runtimeListeners == null || runtimeListeners.isEmpty())
+		if (runtimeListeners.isEmpty())
 			return;
-	
-		int size = runtimeListeners.size();
-		IRuntimeLifecycleListener[] srl = new IRuntimeLifecycleListener[size];
-		runtimeListeners.toArray(srl);
-	
-		for (int i = 0; i < size; i++) {
-			Trace.trace(Trace.LISTENERS, "  Firing runtime event to " + srl[i]);
-			try {
-				if (b == EVENT_ADDED)
-					srl[i].runtimeAdded(runtime);
-				else if (b == EVENT_CHANGED)
-					srl[i].runtimeChanged(runtime);
-				else
-					srl[i].runtimeRemoved(runtime);
-			} catch (Exception e) {
-				Trace.trace(Trace.SEVERE, "  Error firing runtime event to " + srl[i], e);
+		
+		synchronized (runtimeListeners) {
+			int size = runtimeListeners.size();
+			IRuntimeLifecycleListener[] srl = new IRuntimeLifecycleListener[size];
+			runtimeListeners.toArray(srl);
+		
+			for (int i = 0; i < size; i++) {
+				Trace.trace(Trace.LISTENERS, "  Firing runtime event to " + srl[i]);
+				try {
+					if (b == EVENT_ADDED)
+						srl[i].runtimeAdded(runtime);
+					else if (b == EVENT_CHANGED)
+						srl[i].runtimeChanged(runtime);
+					else
+						srl[i].runtimeRemoved(runtime);
+				} catch (Exception e) {
+					Trace.trace(Trace.SEVERE, "  Error firing runtime event to " + srl[i], e);
+				}
 			}
 		}
 		Trace.trace(Trace.LISTENERS, "-<- Done firing runtime event -<-");
@@ -485,24 +493,26 @@
 	private void fireServerEvent(final IServer server, byte b) {
 		Trace.trace(Trace.LISTENERS, "->- Firing server event: " + server.getName() + " ->-");
 		
-		if (serverListeners == null || serverListeners.isEmpty())
+		if (serverListeners.isEmpty())
 			return;
-	
-		int size = serverListeners.size();
-		IServerLifecycleListener[] srl = new IServerLifecycleListener[size];
-		serverListeners.toArray(srl);
-	
-		for (int i = 0; i < size; i++) {
-			Trace.trace(Trace.LISTENERS, "  Firing server event to " + srl[i]);
-			try {
-				if (b == EVENT_ADDED)
-					srl[i].serverAdded(server);
-				else if (b == EVENT_CHANGED)
-					srl[i].serverChanged(server);
-				else
-					srl[i].serverRemoved(server);
-			} catch (Exception e) {
-				Trace.trace(Trace.SEVERE, "  Error firing server event to " + srl[i], e);
+		
+		synchronized (serverListeners) {
+			int size = serverListeners.size();
+			IServerLifecycleListener[] srl = new IServerLifecycleListener[size];
+			serverListeners.toArray(srl);
+		
+			for (int i = 0; i < size; i++) {
+				Trace.trace(Trace.LISTENERS, "  Firing server event to " + srl[i]);
+				try {
+					if (b == EVENT_ADDED)
+						srl[i].serverAdded(server);
+					else if (b == EVENT_CHANGED)
+						srl[i].serverChanged(server);
+					else
+						srl[i].serverRemoved(server);
+				} catch (Exception e) {
+					Trace.trace(Trace.SEVERE, "  Error firing server event to " + srl[i], e);
+				}
 			}
 		}
 		Trace.trace(Trace.LISTENERS, "-<- Done firing server event -<-");
@@ -541,8 +551,10 @@
 			while (iterator.hasNext()) {
 				Server server = (Server) iterator.next();
 				
-				IMemento child = memento.createChild("server");
-				server.save(child);
+				if (server.getFile() == null) {
+					IMemento child = memento.createChild("server");
+					server.save(child);
+				}
 			}
 			
 			memento.saveToFile(filename);
@@ -829,7 +841,7 @@
 				IServer server = loadServer(file, ProgressUtil.getSubMonitorFor(monitor, 1000));
 				if (server != null) {
 					if (getServer(server.getId()) == null)
-						registerServer(server);
+						addServer(server);
 					monitor.done();
 					return true;
 				}
@@ -950,7 +962,7 @@
 		
 		IServer server = findServer(file);
 		if (server != null) {
-			deregisterServer(server);
+			removeServer(server);
 			return true;
 		}
 		
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 0d2a7c4..a6619de 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
@@ -249,7 +249,7 @@
 
 	protected void deleteFromFile() throws CoreException {
 		super.deleteFromFile();
-		ResourceManager.getInstance().deregisterServer(this);
+		ResourceManager.getInstance().removeServer(this);
 	}
 
 	protected void deleteFromMetadata() {
@@ -258,7 +258,7 @@
 
 	protected void saveToFile(IProgressMonitor monitor) throws CoreException {
 		super.saveToFile(monitor);
-		ResourceManager.getInstance().registerServer(this);
+		ResourceManager.getInstance().addServer(this);
 	}
 
 	protected void saveToMetadata(IProgressMonitor monitor) {
@@ -307,7 +307,7 @@
 		if (behaviourDelegate != null || serverType == null)
 			return behaviourDelegate;
 		
-		synchronized (this) {
+		synchronized (moduleState) {
 			if (behaviourDelegate == null) {
 				try {
 					long time = System.currentTimeMillis();
@@ -1641,7 +1641,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/StopServerJob.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/StopServerJob.java
new file mode 100644
index 0000000..e6653f6
--- /dev/null
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/StopServerJob.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.server.core.internal;
+
+import org.eclipse.core.runtime.*;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.internal.ServerSchedulingRule;
+/**
+ * A job for stopping the server.
+ * 
+ * Note: This is a backport for bug 200715. It is not API compatible with the
+ * WTP 3.0 version due to missing translated strings.
+ */
+public class StopServerJob extends ChainedJob {
+	public StopServerJob(IServer server, String name) {
+		super(name, server);
+		setRule(new ServerSchedulingRule(server));
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.internal.jobs.InternalJob#run(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	protected IStatus run(IProgressMonitor monitor) {
+		final IStatus[] status = new IStatus[1];
+		getServer().stop(false, new IServer.IOperationListener() {
+			public void done(IStatus result) {
+				status[0] = result;
+			}
+		});
+		
+		while (status[0] == null & !monitor.isCanceled()) {
+			try {
+				Thread.sleep(200);
+			} catch (Exception e) {
+				// ignore
+			}
+		}
+		return status[0];
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Trace.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Trace.java
index 83783e4..2498ccd 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Trace.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/Trace.java
@@ -12,6 +12,9 @@
 
 import java.text.SimpleDateFormat;
 import java.util.Date;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
 /**
  * Helper class to route trace output.
  */
@@ -77,7 +80,10 @@
 	private static void trace(String pluginId, int level, String s, Throwable t) {
 		if (pluginId == null || s == null)
 			return;
-
+		
+		if (level == SEVERE)
+			ServerPlugin.log(new Status(IStatus.ERROR, pluginId, s, t));
+		
 		if (!ServerPlugin.getInstance().isDebugging())
 			return;
 		
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/facets/RuntimeComponentProviderWrapper.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/facets/RuntimeComponentProviderWrapper.java
index 84f5616..4402270 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/facets/RuntimeComponentProviderWrapper.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/facets/RuntimeComponentProviderWrapper.java
@@ -118,7 +118,7 @@
 		try {
 			return getDelegate().getRuntimeComponents(runtime);
 		} catch (Exception e) {
-			Trace.trace(Trace.SEVERE, "Error calling delegate " + toString() + ": " + e.getMessage());
+			Trace.trace(Trace.SEVERE, "Error calling delegate " + toString(), e);
 		}
 		return null;
 	}
diff --git a/plugins/org.eclipse.wst.server.http.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.server.http.core/META-INF/MANIFEST.MF
index 7b8005a..5f06d1e 100644
--- a/plugins/org.eclipse.wst.server.http.core/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.server.http.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.server.http.core;singleton:=true
-Bundle-Version: 1.0.1.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.wst.server.http.core.internal.HttpCorePlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/HttpServer.java b/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/HttpServer.java
index 373c98c..9b820cc 100644
--- a/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/HttpServer.java
+++ b/plugins/org.eclipse.wst.server.http.core/src/org/eclipse/wst/server/http/core/internal/HttpServer.java
@@ -98,18 +98,6 @@
 	// }
 
 	/**
-	 * Processes the host to return IPv6 addresses in square brackets, e.g.
-	 * "[4ffe:ff2f:101:21:230:6eff:fe04:d9fe]". If the host is just a host name
-	 * or IPv4 address, then it is returned as is.
-	 * 
-	 * @param host the host, an IP address or host name
-	 */
-	protected static String getURLHost(String host) {
-		// use ":" to determine if this is an IPv6 address 
-		return (host != null && host.indexOf(":") >= 0) ? "[" + host + "]" : host;
-	}
-
-	/**
 	 * Return the root URL of this module.
 	 * 
 	 * @param module a module
@@ -117,10 +105,10 @@
 	 */
 	public URL getModuleRootURL(IModule module) {
 		try {
-			String base = "http://" + getURLHost(getServer().getHost());
+			String base = "http://" + getServer().getHost();
 			
 			if (base.equals(""))
-				base = "http://" + getURLHost(getServer().getHost());
+				base = "http://" + getServer().getHost();
 			
 			int port = getPort();
 			URL url = null;
diff --git a/plugins/org.eclipse.wst.server.http.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.server.http.ui/META-INF/MANIFEST.MF
index 831791d..420806e 100644
--- a/plugins/org.eclipse.wst.server.http.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.server.http.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.server.http.ui;singleton:=true
-Bundle-Version: 1.0.1.qualifier
+Bundle-Version: 1.0.0.qualifier
 Bundle-Activator: org.eclipse.wst.server.http.ui.internal.HttpUIPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/HttpServerComposite.java b/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/HttpServerComposite.java
index ef7e127..0c55c64 100644
--- a/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/HttpServerComposite.java
+++ b/plugins/org.eclipse.wst.server.http.ui/src/org/eclipse/wst/server/http/ui/internal/HttpServerComposite.java
@@ -64,8 +64,7 @@
 			server = (HttpServer) newServer.loadAdapter(HttpServer.class, null);
 		}
 		
-		if (!isDisposed())
-			init();
+		init();
 		validate();
 	}
 
diff --git a/plugins/org.eclipse.wst.server.preview.adapter/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.server.preview.adapter/META-INF/MANIFEST.MF
index 408c35d..62c6d46 100644
--- a/plugins/org.eclipse.wst.server.preview.adapter/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.server.preview.adapter/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.server.preview.adapter;singleton:=true
-Bundle-Version: 1.0.0.qualifier
+Bundle-Version: 1.0.1.qualifier
 Bundle-Activator: org.eclipse.wst.server.preview.adapter.internal.core.PreviewPlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.wst.server.preview.adapter/src/org/eclipse/wst/server/preview/adapter/internal/core/PingThread.java b/plugins/org.eclipse.wst.server.preview.adapter/src/org/eclipse/wst/server/preview/adapter/internal/core/PingThread.java
index 2a0aeef..55585d0 100644
--- a/plugins/org.eclipse.wst.server.preview.adapter/src/org/eclipse/wst/server/preview/adapter/internal/core/PingThread.java
+++ b/plugins/org.eclipse.wst.server.preview.adapter/src/org/eclipse/wst/server/preview/adapter/internal/core/PingThread.java
@@ -16,6 +16,7 @@
 import java.net.URLConnection;
 
 import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.internal.ServerType;
 /**
  * Thread used to ping server to test when it is started.
  */
@@ -27,7 +28,7 @@
 	private static final int PING_INTERVAL = 250;
 
 	// maximum number of pings before giving up
-	private int maxPings = 40;
+	private int maxPings;
 
 	private boolean stop = false;
 	private String url;
@@ -46,6 +47,7 @@
 		this.server = server;
 		this.url = url;
 		this.behaviour = behaviour;
+		this.maxPings = guessMaxPings();
 		Thread t = new Thread("Preview Ping Thread") {
 			public void run() {
 				ping();
@@ -55,6 +57,13 @@
 		t.start();
 	}
 
+	private int guessMaxPings() {
+		int startTimeout = ((ServerType) server.getServerType()).getStartTimeout();
+		if (startTimeout > 0)
+			return startTimeout / PING_INTERVAL;
+		return -1;
+	}
+
 	/**
 	 * Ping the server until it is started. Then set the server
 	 * state to STATE_STARTED.
diff --git a/plugins/org.eclipse.wst.server.preview.adapter/src/org/eclipse/wst/server/preview/adapter/internal/core/PreviewLaunchConfigurationDelegate.java b/plugins/org.eclipse.wst.server.preview.adapter/src/org/eclipse/wst/server/preview/adapter/internal/core/PreviewLaunchConfigurationDelegate.java
index 5006faa..2af4f29 100644
--- a/plugins/org.eclipse.wst.server.preview.adapter/src/org/eclipse/wst/server/preview/adapter/internal/core/PreviewLaunchConfigurationDelegate.java
+++ b/plugins/org.eclipse.wst.server.preview.adapter/src/org/eclipse/wst/server/preview/adapter/internal/core/PreviewLaunchConfigurationDelegate.java
@@ -36,7 +36,6 @@
  */
 public class PreviewLaunchConfigurationDelegate extends LaunchConfigurationDelegate {
 	private static final String[] REQUIRED_BUNDLE_IDS = new String[] {
-		"org.eclipse.core.runtime",
 		"org.apache.commons.logging",
 		"javax.servlet",
 		"javax.servlet.jsp",
@@ -72,7 +71,7 @@
 			if (path == null)
 				throw new CoreException(new Status(IStatus.ERROR, PreviewPlugin.PLUGIN_ID, "Could not find required bundle " + REQUIRED_BUNDLE_IDS[i]));
 			
-			if (i == 5 && path.append("bin").toFile().exists())
+			if (i == 4 && path.append("bin").toFile().exists())
 				path = path.append("bin");
 			
 			if (i > 0)
@@ -106,23 +105,58 @@
 			cmds.toArray(cmdLine);
 			Process p = DebugPlugin.exec(cmdLine, null);
 			if (p != null) {
-				IProcess pr = DebugPlugin.newProcess(launch, p, "Preview!");
+				IProcess pr = DebugPlugin.newProcess(launch, p, cmdLine[0]);
+				pr.setAttribute(IProcess.ATTR_CMDLINE, renderCommandLine(cmdLine));
 				if (pr != null)
 					launch.addProcess(pr);
+				previewServer.setProcess(pr);
 			}
-			previewServer.setProcess(launch.getProcesses()[0]);
 		} catch (Exception e) {
 			Trace.trace(Trace.SEVERE, "Problem creating preview process");
 		}
 	}
 
+	/**
+	 * Prepares the command line from the specified array of strings.
+	 * 
+	 * @param commandLine
+	 * @return the command line string
+	 */
+	protected static String renderCommandLine(String[] commandLine) {
+		if (commandLine.length < 1)
+			return ""; //$NON-NLS-1$
+		StringBuffer buf= new StringBuffer();
+		for (int i= 0; i < commandLine.length; i++) {
+			buf.append(' ');
+			char[] characters= commandLine[i].toCharArray();
+			StringBuffer command= new StringBuffer();
+			boolean containsSpace= false;
+			for (int j = 0; j < characters.length; j++) {
+				char character= characters[j];
+				if (character == '\"') {
+					command.append('\\');
+				} else if (character == ' ') {
+					containsSpace = true;
+				}
+				command.append(character);
+			}
+			if (containsSpace) {
+				buf.append('\"');
+				buf.append(command.toString());
+				buf.append('\"');
+			} else {
+				buf.append(command.toString());
+			}
+		}	
+		return buf.toString();
+	}
+
 	protected static File getJavaExecutable() {
 		// do not detect on the Mac OS
 		if (Platform.getOS().equals(Constants.OS_MACOSX))
 			return null;
 		
-		// Retrieve the 'java.home' system property.  If that directory doesn't exist, 
-		// return null.
+		// retrieve the 'java.home' system property. If that directory doesn't exist, return null
 		File javaHome; 
 		try {
 			javaHome = new File(System.getProperty("java.home")).getCanonicalFile();
@@ -132,14 +166,14 @@
 		if (!javaHome.exists())
 			return null;
 		
-		// Find the 'java' executable file under the java home directory.  If it can't be
-		// found, return null.
+		// find the 'java' executable file under the java home directory. If it can't be
+		// found, return null
 		return findJavaExecutable(javaHome);
 	}
 
 	protected static File findJavaExecutable(File vmInstallLocation) {
-		// Try each candidate in order.  The first one found wins.  Thus, the order
-		// of fgCandidateJavaLocations and fgCandidateJavaFiles is significant.
+		// try each candidate in order, the first one found wins. Thus, the order
+		// of fgCandidateJavaLocations and fgCandidateJavaFiles is significant
 		for (int i = 0; i < fgCandidateJavaFiles.length; i++) {
 			for (int j = 0; j < fgCandidateJavaLocations.length; j++) {
 				File javaFile = new File(vmInstallLocation, fgCandidateJavaLocations[j] + fgCandidateJavaFiles[i]);
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 d0da503..3f7d0dd 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.204.qualifier
+Bundle-Version: 1.0.206.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/serverui/org/eclipse/wst/server/ui/internal/ServerUIPreferences.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerUIPreferences.java
index 8ba5c9a..c14bd85 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerUIPreferences.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/ServerUIPreferences.java
@@ -73,7 +73,7 @@
 		preferences.setDefault(PREF_SAVE_EDITORS, getDefaultSaveEditors());
 		preferences.setDefault(PREF_HOST_NAMES, "localhost");
 		preferences.setDefault(PREF_SHOW_ON_ACTIVITY, true);
-		preferences.setDefault(PREF_CREATE_SERVER_WITH_RUNTIME, true);
+		preferences.setDefault(PREF_CREATE_SERVER_WITH_RUNTIME, false);
 	}
 
 	/**
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerActionDelegate.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerActionDelegate.java
index 1d1cfab..f939732 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerActionDelegate.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/actions/RunOnServerActionDelegate.java
@@ -444,6 +444,14 @@
 	}
 
 	protected void setupLaunchConfiguration(ILaunchConfigurationWorkingCopy config, IServer server, ModuleArtifactDelegate moduleArtifact, ILaunchableAdapter launchableAdapter, IClient client) {
+		String launchName = NLS.bind(Messages.runOnServerLaunchConfigName, moduleArtifact.getName());
+		launchName = getValidLaunchConfigurationName(launchName);
+		if (!launchName.equals(config.getName())) {
+			ILaunchManager launchManager = DebugPlugin.getDefault().getLaunchManager();
+			launchName = launchManager.generateUniqueLaunchConfigurationNameFrom(launchName);
+			config.rename(launchName);
+		}
+		
 		config.setAttribute(RunOnServerLaunchConfigurationDelegate.ATTR_SERVER_ID, server.getId());
 		config.setAttribute(RunOnServerLaunchConfigurationDelegate.ATTR_MODULE_ARTIFACT, moduleArtifact.serialize());
 		config.setAttribute(RunOnServerLaunchConfigurationDelegate.ATTR_MODULE_ARTIFACT_CLASS, moduleArtifact.getClass().getName());
@@ -720,10 +728,13 @@
 			}
 			
 			Trace.trace(Trace.FINEST, "checking for module artifact");
-			IModuleArtifact[] moduleArtifacts = ServerPlugin.getModuleArtifacts(globalSelection);
-			IModule module = null;
 			// TODO - multiple module artifacts
-			IModuleArtifact moduleArtifact = moduleArtifacts[0];
+			IModuleArtifact[] moduleArtifacts = ServerPlugin.getModuleArtifacts(globalSelection);
+			IModuleArtifact moduleArtifact = null;
+			if (moduleArtifacts != null)
+				moduleArtifact = moduleArtifacts[0];
+			
+			IModule module = null;
 			if (moduleArtifact != null)
 				module = moduleArtifact.getModule();
 			Trace.trace(Trace.FINEST, "moduleArtifact= " + moduleArtifact + ", module= " + module);
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ServerTableViewer.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ServerTableViewer.java
index 171ee19..8a7ed26 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ServerTableViewer.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/ServerTableViewer.java
@@ -181,9 +181,20 @@
 				if (!stopAnimation) {
 					try {
 						labelProvider.animate();
-						final Object[] rootElements = ((ITreeContentProvider)getContentProvider()).getElements(null); 
-						if (getTree() != null && !getTree().isDisposed())
-							update(rootElements, null);
+						
+						int size = 0;
+						String[] servers;
+						synchronized (starting) {
+							size = starting.size();
+							servers = new String[size];
+							starting.toArray(servers);
+						}
+						
+						for (int i = 0; i < size; i++) {
+							IServer server = ServerCore.findServer(servers[i]);
+							if (server != null && getTree() != null && !getTree().isDisposed())
+								updateAnimation(server);
+						}
 					} catch (Exception e) {
 						Trace.trace(Trace.FINEST, "Error in Servers view animation", e);
 					}
@@ -191,7 +202,7 @@
 				}
 			}
 		};
-		Display.getDefault().syncExec(new Runnable() {
+		Display.getDefault().asyncExec(new Runnable() {
 			public void run() {
 				display.timerExec(SLEEP, animator[0]);
 			}
@@ -238,19 +249,6 @@
 		
 		setContentProvider(new ServerContentProvider());
 		labelProvider = new ServerTableLabelProvider();
-		labelProvider.addListener(new ILabelProviderListener() {
-			public void labelProviderChanged(LabelProviderChangedEvent event) {
-				Object[] obj = event.getElements();
-				if (obj == null)
-					refresh(true);
-				else {
-					obj = adaptLabelChangeObjects(obj);
-					int size = obj.length;
-					for (int i = 0; i < size; i++)
-						refresh(obj[i], true);
-				}
-			}
-		});
 		setLabelProvider(labelProvider);
 		setComparator(new ServerViewerComparator(labelProvider));
 		
@@ -325,6 +323,18 @@
 		}
 	}
 
+	protected void handleLabelProviderChanged(LabelProviderChangedEvent event) {
+		Object[] obj = event.getElements();
+		if (obj == null)
+			refresh(true);
+		else {
+			obj = adaptLabelChangeObjects(obj);
+			int size = obj.length;
+			for (int i = 0; i < size; i++)
+				update(obj[i], null);
+		}
+	}
+
 	/**
 	 * Resort the table based on field.
 	 * 
@@ -455,16 +465,20 @@
 						int state = event.getState();
 						String id = server.getId();
 						if (state == IServer.STATE_STARTING || state == IServer.STATE_STOPPING) {
-							if (!starting.contains(id)) {
-								if (starting.isEmpty())
-									startThread();
-								starting.add(id);
+							synchronized (starting) {
+								if (!starting.contains(id)) {
+									if (starting.isEmpty())
+										startThread();
+									starting.add(id);
+								}
 							}
 						} else {
-							if (starting.contains(id)) {
-								starting.remove(id);
-								if (starting.isEmpty())
-									stopThread();
+							synchronized (starting) {
+								if (starting.contains(id)) {
+									starting.remove(id);
+									if (starting.isEmpty())
+										stopThread();
+								}
 							}
 						}
 					} else
@@ -515,8 +529,10 @@
 		if (servers != null) {
 			int size = servers.length;
 			for (int i = 0; i < size; i++) {
-				servers[i].removeServerListener(serverListener);
-				((Server) servers[i]).removePublishListener(publishListener);
+				if (serverListener != null)
+					servers[i].removeServerListener(serverListener);
+				if (publishListener != null)
+					((Server) servers[i]).removePublishListener(publishListener);
 			}
 		}
 		
@@ -637,4 +653,15 @@
 		}
 		super.doUpdateItem(widget, element, fullMap);
 	}
+
+	protected void updateAnimation(IServer server) {
+		try {
+			Widget widget = doFindItem(server);
+			TreeItem item = (TreeItem) widget;
+			item.setText(1, labelProvider.getColumnText(server, 1));
+			item.setImage(1, labelProvider.getColumnImage(server, 1));
+		} catch (Exception e) {
+			Trace.trace(Trace.WARNING, "Error in optimized animation", e);
+		}
+	}
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/StartAction.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/StartAction.java
index 95c0bd6..2358387 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/StartAction.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/StartAction.java
@@ -10,6 +10,8 @@
  **********************************************************************/
 package org.eclipse.wst.server.ui.internal.view.servers;
 
+import java.util.Iterator;
+
 import org.eclipse.debug.core.ILaunchManager;
 import org.eclipse.jface.viewers.ISelectionProvider;
 import org.eclipse.jface.viewers.IStructuredSelection;
@@ -61,6 +63,30 @@
 	}
 
 	/**
+	 * Update the name of the Action label, depending on the status of the server.
+	 * @param sel the IStructuredSelection from the view
+	 */
+	private void updateText(IStructuredSelection sel){
+		if (sel.isEmpty()) {
+			setText(Messages.actionStart);
+			return;
+		}
+		Iterator iterator = sel.iterator();
+		while (iterator.hasNext()) {
+			Object obj = iterator.next();
+			if (obj instanceof IServer) {
+				IServer server = (IServer) obj;
+				if (server.getServerState() == IServer.STATE_STARTED ||
+					 server.getServerState() == IServer.STATE_STARTING){
+					setText(Messages.actionRestart);		
+				}
+				else
+					setText(Messages.actionStart);
+			}
+		}
+	}
+	
+	/**
 	 * Return true if this server can currently be acted on.
 	 * @return boolean
 	 * @param server a server
@@ -120,4 +146,12 @@
 			}
 		}
 	}
+
+	public void selectionChanged(IStructuredSelection sel) {
+		super.selectionChanged(sel);
+		if (this.launchMode == ILaunchManager.RUN_MODE) {
+			updateText(sel);
+		}
+	}
+	
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/StopAction.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/StopAction.java
index ce90705..9174b90 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/StopAction.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/view/servers/StopAction.java
@@ -10,15 +10,14 @@
  *******************************************************************************/
 package org.eclipse.wst.server.ui.internal.view.servers;
 
-import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.viewers.ISelectionProvider;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.internal.StopServerJob;
 import org.eclipse.wst.server.ui.internal.ImageResource;
 import org.eclipse.wst.server.ui.internal.Messages;
 import org.eclipse.wst.server.ui.internal.ServerUIPlugin;
 import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
 /**
  * Stop (terminate) a server.
@@ -54,17 +53,9 @@
 	 */
 	public void perform(final IServer server) {
 		ServerUIPlugin.addTerminationWatch(shell, server, ServerUIPlugin.STOP);
-	
-		Display.getDefault().asyncExec(new Runnable() {
-			public void run() {
-				MessageDialog dialog = new MessageDialog(shell, Messages.defaultDialogTitle, null,
-						NLS.bind(Messages.dialogStoppingServer, server.getName()), MessageDialog.INFORMATION, new String[0], 0);
-				dialog.setBlockOnOpen(false);
-				dialog.open();
-	
-				server.stop(false);
-				dialog.close();
-			}
-		});
+		
+		String name = NLS.bind(Messages.dialogStoppingServer, server.getName());
+		StopServerJob stopJob = new StopServerJob(server, name);
+		stopJob.schedule();
 	}
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/DefaultViewerSorter.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/DefaultViewerSorter.java
index 9439883..d383f8b 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/DefaultViewerSorter.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/DefaultViewerSorter.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005, 2007 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,6 +10,10 @@
  *******************************************************************************/
 package org.eclipse.wst.server.ui.internal.viewers;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.StringTokenizer;
+
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.jface.viewers.ViewerSorter;
 import org.eclipse.wst.server.core.IRuntimeType;
@@ -19,6 +23,65 @@
  * New wizards.
  */
 public class DefaultViewerSorter extends ViewerSorter {
+	public static class Version implements Comparable {
+		private static final String SEPARATORS = ".,";
+
+		private final String[] segments;
+
+		private Version(String[] segments) {
+			this.segments = segments;
+		}
+
+		public static Version parseVersion(String version) {
+			List list = new ArrayList();
+			StringTokenizer st = new StringTokenizer(version, SEPARATORS, false);
+			while (st.hasMoreTokens())
+				list.add(st.nextToken());
+			
+			String[] s = new String[list.size()];
+			list.toArray(s);
+			return new Version(s);
+		}
+
+		private int compareTo(String s1, String s2) {
+			try {
+				int i1 = Integer.parseInt(s1);
+				int i2 = Integer.parseInt(s2);
+				if (i1 == i2)
+					return 0;
+				if (i1 > i2)
+					return 1;
+				return -1;
+			} catch (Exception e) {
+				// ignore
+			}
+			return s1.compareTo(s2);
+		}
+
+		public int compareTo(Object object) {
+			if (object == this)
+				return 0;
+			
+			Version other = (Version) object;
+			int i = 0;
+			while (i < segments.length && i < other.segments.length) {
+				String s1 = segments[i];
+				String s2 = other.segments[i];
+				int c = compareTo(s1, s2);
+				if (c != 0)
+					return c;
+				i++;
+			}
+			
+			if (i == segments.length && i == other.segments.length)
+				return 0;
+			
+			if (i == segments.length)
+				return -1;
+			return 1;
+		}
+	}
+
 	/**
 	 * @see ViewerSorter#compare(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
 	 */
@@ -61,7 +124,7 @@
 			Version v1 = Version.parseVersion(s1);
 			Version v2 = Version.parseVersion(s2);
 			
-			return Version.compare(v1, v2);
+			return v1.compareTo(v2);
 		} catch (NumberFormatException nfe) {
 			// ignore
 		}
@@ -70,6 +133,42 @@
 	}
 
 	/**
+	 * Returns <code>true</code> if the two items are in the same 'family', and
+	 * <code>false</code> otherwise.
+	 * 
+	 * @param s1 - first name
+	 * @param v1 - first version
+	 * @param s2 - second name
+	 * @param v2 - second version
+	 * @return <code>true</code> if the two items are in the same 'family', and
+	 *    <code>false</code> otherwise
+	 */
+	protected boolean isSameFamily(String s1, String v1, String s2, String v2) {
+		if (s1 == null || s2 == null)
+			return false;
+		
+		if (v1 != null) {
+			int ind = s1.indexOf(v1);
+			if (ind >= 0)
+				s1 = s1.substring(0, ind) + s1.substring(ind+v1.length());
+		}
+		
+		if (v2 != null) {
+			int ind = s2.indexOf(v2);
+			if (ind >= 0)
+				s2 = s2.substring(0, ind) + s2.substring(ind+v2.length());
+		}
+		return (s1.equals(s2));
+	}
+
+	protected int compareVersions(String s1, String s2) {
+		Version v1 = Version.parseVersion(s1);
+		Version v2 = Version.parseVersion(s2);
+		
+		return v1.compareTo(v2);
+	}
+
+	/**
 	 * Sort two runtime types.
 	 * 
 	 * @param r1 the first runtime type
@@ -80,6 +179,9 @@
 	 *    element is greater than the second element
 	 */
 	protected int compareRuntimeTypes(IRuntimeType r1, IRuntimeType r2) {
+		if (isSameFamily(r1.getName(), r1.getVersion(), r2.getName(), r2.getVersion()))
+			return compareVersions(r1.getVersion(), r2.getVersion());
+		
 		return r1.getName().compareToIgnoreCase(r2.getName());
 	}
 
@@ -94,6 +196,13 @@
 	 *    element is greater than the second element
 	 */
 	protected int compareServerTypes(IServerType s1, IServerType s2) {
+		IRuntimeType r1 = s1.getRuntimeType();
+		IRuntimeType r2 = s2.getRuntimeType();
+		if (r1 != null && r2 != null) {
+			if (isSameFamily(s1.getName(), r1.getVersion(), s2.getName(), r2.getVersion()))
+				return compareVersions(r1.getVersion(), r2.getVersion());
+		}
+		
 		return s1.getName().compareToIgnoreCase(s2.getName());
 	}
 }
\ 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 765c70a..a33d5cc 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
@@ -60,6 +60,8 @@
  * A wizard page used to add and remove modules.
  */
 public class ModifyModulesComposite extends Composite {
+	public static final String TASK_REFRESH_MODULES = "refresh-modules";
+
 	private static final String ROOT = "root";
 	protected static Color color;
 	protected static Font font;
@@ -69,6 +71,7 @@
 	protected IServerAttributes server;
 	protected IRuntime runtime;
 	protected boolean runtimeDirty;
+	protected Object refreshModules;
 
 	protected Map childModuleMap = new HashMap();
 	protected Map parentModuleMap = new HashMap();
@@ -243,11 +246,11 @@
 		if (isVisible())
 			return;
 		
-		// see bug 185875
-		if (server == this.server) {
+		// see bug 185875, 205869
+		if (refreshModules == taskModel.getObject(TASK_REFRESH_MODULES) && server == this.server) {
 			if (server == null)
 				return;
-			if (runtime == this.runtime) {
+			if (runtime == server.getRuntime()) {
 				if (runtime == null)
 					return;
 				if (runtime instanceof IRuntimeWorkingCopy) {
@@ -259,6 +262,7 @@
 			}
 		}
 		
+		refreshModules = taskModel.getObject(TASK_REFRESH_MODULES);
 		this.server = server;
 		if (server == null)
 			runtime = null;
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/NewManualServerComposite.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/NewManualServerComposite.java
index 3ca4b77..a289efc 100644
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/NewManualServerComposite.java
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/wizard/page/NewManualServerComposite.java
@@ -15,6 +15,7 @@
 import java.util.List;
 
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.dialogs.IMessageProvider;
 import org.eclipse.jface.operation.IRunnableWithProgress;
@@ -71,6 +72,7 @@
 	protected String host;
 
 	protected IModuleType moduleType;
+	protected IModule module;
 	protected String serverTypeId;
 	protected boolean includeIncompatible;
 
@@ -84,16 +86,18 @@
 	 * @param parent a parent composite
 	 * @param wizard a wizard handle
 	 * @param moduleType a module type
+	 * @param module an optional module
 	 * @param serverTypeId a server type id, or null
 	 * @param includeIncompatible true to include incompatible servers that support similar module types
 	 * @param listener a server selection listener
 	 */
-	public NewManualServerComposite(Composite parent, IWizardHandle2 wizard, IModuleType moduleType, String serverTypeId, boolean includeIncompatible, ServerSelectionListener listener) {
+	public NewManualServerComposite(Composite parent, IWizardHandle2 wizard, IModuleType moduleType, IModule module, String serverTypeId, boolean includeIncompatible, ServerSelectionListener listener) {
 		super(parent, SWT.NONE);
 		this.wizard = wizard;
 		this.listener = listener;
 		
 		this.moduleType = moduleType;
+		this.module = module;
 		this.serverTypeId = serverTypeId;
 		this.includeIncompatible = includeIncompatible;
 		
@@ -102,6 +106,21 @@
 	}
 
 	/**
+	 * @deprecated Old internal constructor left to ensure no chance of incompatibility. You must remove any usage
+	 *    before moving to WTP 3.0.
+	 * 
+	 * @param parent
+	 * @param wizard
+	 * @param moduleType
+	 * @param serverTypeId
+	 * @param includeIncompatible
+	 * @param listener
+	 */
+	public NewManualServerComposite(Composite parent, IWizardHandle2 wizard, IModuleType moduleType, String serverTypeId, boolean includeIncompatible, ServerSelectionListener listener) {
+		this(parent, wizard, moduleType, null, serverTypeId, includeIncompatible, listener);
+	}
+
+	/**
 	 * Returns this page's initial visual components.
 	 */
 	protected void createControl() {
@@ -381,7 +400,20 @@
 		} else {
 			wizard.setMessage(null, IMessageProvider.NONE);
 			loadServerImpl(serverType);
+			if (server != null && module != null) {
+				IStatus status = NewServerComposite.isSupportedModule(server, module);
+				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;
+				}
+			}
 		}
+		
 		updateRuntimeCombo(serverType);
 		listener.serverSelected(server);
 		wizard.update();
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 542ecb7..6490742 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
@@ -14,6 +14,7 @@
 
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.dialogs.IMessageProvider;
 import org.eclipse.jface.operation.IRunnableWithProgress;
@@ -213,7 +214,7 @@
 		createAutoComposite(stack);
 		createManualComposite(stack);
 	
-		if (existingComp != null) {
+		if (existingComp != null && existing != null) {
 			if (isExistingServer()) {
 				mode = MODE_EXISTING;
 				stackLayout.topControl = existingComp;
@@ -334,63 +335,16 @@
 				
 				// check for compatibility
 				if (server != null && module != null) {
-					IServerType serverType = server.getServerType();
-					IModuleType mt = module.getModuleType();
-					if (!ServerUtil.isSupportedModule(serverType.getRuntimeType().getModuleTypes(), mt)) {
-						String type = mt.getName();
-						wizard.setMessage(NLS.bind(Messages.errorVersionLevel, new Object[] { type, mt.getVersion() }), IMessageProvider.ERROR);
+					IStatus status = isSupportedModule(server, module);
+					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;
 					}
-					
-					if (wizard.getMessage() == null) {
-						IModule[] rootModules = null;
-						try {
-							rootModules = server.getRootModules(module, null);
-						} catch (CoreException ce) {
-							IStatus status = ce.getStatus();
-							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;
-							}
-						} catch (Exception e) {
-							Trace.trace(Trace.WARNING, "Could not find root module", e);
-						}
-						if (rootModules != null) {
-							if (rootModules.length == 0) {
-								wizard.setMessage(Messages.errorRootModule, 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;
-									}
-								}
-							}
-						}
-					}
 				}
 				
 				if (existingWC != null) {
@@ -409,7 +363,55 @@
 		data.heightHint = 150;
 		existingComp.setLayoutData(data);
 	}
-	
+
+	/**
+	 * Returns the status of whether the given module could be added to the server.
+	 * 
+	 * @param server a server
+	 * @param module a module
+	 * @return an IStatus representing the error or warning, or null if there are no problems
+	 */
+	protected static IStatus isSupportedModule(IServerAttributes server, IModule module) {
+		if (server != null && module != null) {
+			IServerType serverType = server.getServerType();
+			IModuleType mt = module.getModuleType();
+			if (!ServerUtil.isSupportedModule(serverType.getRuntimeType().getModuleTypes(), mt)) {
+				String type = mt.getName();
+				return new Status(IStatus.ERROR, ServerUIPlugin.PLUGIN_ID, NLS.bind(Messages.errorVersionLevel, new Object[] { type, mt.getVersion() }));
+			}
+			
+			IModule[] rootModules = null;
+			try {
+				rootModules = server.getRootModules(module, null);
+			} catch (CoreException ce) {
+				return ce.getStatus();
+			} catch (Exception e) {
+				Trace.trace(Trace.WARNING, "Could not find root module", e);
+			}
+			if (rootModules != null) {
+				if (rootModules.length == 0)
+					return new Status(IStatus.ERROR, ServerUIPlugin.PLUGIN_ID, Messages.errorRootModule);
+				
+				int size = rootModules.length;
+				IStatus status = null;
+				boolean found = false;
+				for (int i = 0; i < size; i++) {
+					try {
+						if (server != null)
+							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)
+					return status;
+			}
+		}
+		return null;
+	}
+
 	protected boolean isExistingServer() {
 		if (module == null || launchMode == null)
 			return false;
@@ -457,7 +459,7 @@
 			public void setMessage(String newMessage, int newType) {
 				wizard.setMessage(newMessage, newType);
 			}
-		}, mt, serverTypeId, includeIncompatible, new NewManualServerComposite.ServerSelectionListener() {
+		}, mt, module, serverTypeId, includeIncompatible, new NewManualServerComposite.ServerSelectionListener() {
 			public void serverSelected(IServerAttributes server) {
 				updateTaskModel();
 			}