released patch build to 1.5 maintenance branch.
diff --git a/releng.wtpbuilder/components/wtp-patches/build.properties b/releng.wtpbuilder/components/wtp-patches/build.properties
new file mode 100644
index 0000000..9708c8b
--- /dev/null
+++ b/releng.wtpbuilder/components/wtp-patches/build.properties
@@ -0,0 +1,76 @@
+###############################################################################
+# Copyright (c) 2003, 2004 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials 
+# are made available under the terms of the Common Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/cpl-v10.html
+# 
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+#####################
+# Parameters describing how and where to execute the build.
+# Typical users need only update the following properties:
+#    baseLocation - where things you are building against are installed
+#    bootclasspath - The base jars to compile against (typicaly rt.jar)
+#    configs - the list of {os, ws, arch} configurations to build.  
+#
+# Of course any of the settings here can be overridden by spec'ing 
+# them on the command line (e.g., -DbaseLocation=d:/eclipse
+
+############# CVS CONTROL ################
+
+# patch feature
+patchFeature=org.eclipse.wst.common_core.feature.patch
+
+# The CVS tag to use when fetching the map files from the repository
+mapVersionTag=R1_5_maintenance_patches
+runPackager=true
+############## BUILD / GENERATION CONTROL ################
+# The directory into which the build elements will be fetched and where
+# the build will take place.
+buildDirectory=c:/dev/build
+
+# Type of build.  Used in naming the build output.  Typically this value is
+# one of I, N, M, S, ...
+buildType=M
+
+# ID of the build.  Used in naming the build output.
+buildId=Build
+
+# Label for the build.  Used in naming the build output
+buildLabel=${buildType}.${buildId}
+
+# Timestamp for the build.  Used in naming the build output
+timestamp=007
+
+# Base location for anything the build needs to compile against.  For example,
+# when building GEF, the baseLocation should be the location of a previously
+# installed Eclipse against which the GEF code will be compiled.
+baseLocation=c:/dev/eclipse
+
+
+
+# The location underwhich all of the build output will be collected.
+collectingFolder=eclipse
+
+# The prefix that will be used in the generated archive.
+archivePrefix=eclipse
+
+# The list of {os, ws, arch} configurations to build.  This 
+# value is a '&' separated list of ',' separate triples.  For example, 
+#     configs=win32,win32,x86 & linux,motif,x86
+# By default the value is *,*,*
+#configs=*,*,* 
+
+#Arguments to send to the zip executable
+#zipargs=
+
+
+# Whether or not to include debug info in the output jars
+javacDebugInfo=true 
+
+# Whether or not to fail the build if there are compiler errors
+javacfailonerror=true
+
+zipargs=
diff --git a/releng.wtpbuilder/components/wtp-patches/customTargets.xml b/releng.wtpbuilder/components/wtp-patches/customTargets.xml
new file mode 100644
index 0000000..a2feaa2
--- /dev/null
+++ b/releng.wtpbuilder/components/wtp-patches/customTargets.xml
@@ -0,0 +1,223 @@
+<project name="Build specific targets and properties"
+         default="noDefault">
+
+    <property file="build.properties"/>
+    
+    <!-- ===================================================================== -->
+    <!-- Run a given ${target} on all elements being built -->
+    <!-- Add on <ant> task for each top level element being built. -->
+    <!-- ===================================================================== -->
+    <target name="allElements">
+        <echo message="Target:${target} " />
+        <echo message="basedir: ${basedir}" />
+        <echo message="component: ${component}" />
+        <echo message="buildDirectory: ${buildDirectory}" />
+        <echo message="baseLocation: ${baseLocation}" />
+        <echo message="patchFeature: ${patchFeature}" />
+        <ant antfile="${genericTargets}" target="${target}">
+            <property name="type" value="feature" />
+            <property name="id" value="${patchFeature}" />
+        </ant>
+    </target>
+
+    <!-- ===================================================================== -->
+    <!-- Targets to assemble the built elements for particular configurations  -->
+    <!-- These generally call the generated assemble scripts (named in -->
+    <!-- ${assembleScriptName}) but may also add pre and post processing -->
+    <!-- Add one target for each root element and each configuration -->
+    <!-- ===================================================================== -->
+
+    <!-- name's can not be variable? -->
+    <target name="assemble.org.eclipse.wst.common_core.feature.patch">
+        <property name="archiveName"
+                  value="wtp-${buildLabel}.zip" />
+        <ant antfile="${assembleScriptName}"
+             dir="${buildDirectory}" />
+
+    </target>
+
+    <target name="prePackage" />
+
+    <target name="postPackage">
+    	<property name="archiveName"
+                  value="wtp-${buildLabel}.zip" />
+
+    	<ant antfile="${wtp.builder.home}/scripts/build/buildutilities.xml" target="unpackUpdateJarsAndCreateZippedPackages">
+    		<property name="buildDirectory" value="${buildDirectory}"/>
+    		<property name="buildLabel" value="${buildLabel}"/>
+		<property name="archiveName" value="${archiveName}"/>
+    	</ant>
+    	
+    	
+    </target>
+
+	
+	
+    <!-- ===================================================================== -->
+    <!-- Check out map files from correct repository -->
+    <!-- Replace values for cvsRoot, package and mapVersionTag as desired. -->
+    <!-- ===================================================================== -->
+    <target name="checkLocal">
+        <available property="mapsLocal"
+                   file="${buildDirectory}/maps/releng" />
+    </target>
+    <target name="getMapFiles"
+            depends="checkLocal"
+            unless="mapsLocal">
+
+        <!-- ***  change the repo info -->
+        <property name="mapCvsRoot"
+                  value=":${cvsProtocol}:${cvsUser}@${cvsServer}:${cvsRoot}" />
+        <property name="mapVersionTag" value="HEAD" />
+        <echo message="${mapCvsRoot} ${mapVersionTag} ">
+        </echo>
+        <cvs cvsRoot="${mapCvsRoot}"
+             package="releng"
+             dest="${buildDirectory}/maps"
+             tag="${mapVersionTag}" />
+        <!--tag the map files project-->
+        <antcall target="tagMapFiles">
+            <param name="mapCvsRoot"
+                   value="${mapCvsRoot}" />
+        </antcall>
+    </target>
+
+    <target name="tagMapFiles" if="tagMaps">
+        <cvs cvsRoot="${mapCvsRoot}"
+             dest="${buildDirectory}/maps"
+             command="tag v${buildType}${timestamp}" />
+    </target>
+
+
+    <!-- ===================================================================== -->
+    <!-- Steps to do before setup -->
+    <!-- ===================================================================== -->
+    <target name="preSetup">
+    </target>
+
+    <!-- ===================================================================== -->
+    <!-- Steps to do after setup but before starting the build proper -->
+    <!-- ===================================================================== -->
+    <target name="postSetup">
+        <dirname file="${ant.file}"
+                 property="component.dir" />
+        <ant antfile="${component.dir}/dependency.xml"
+             target="get">
+            <property name="dependency.properties"
+                      value="${buildDirectory}/maps/releng/maps/dependencies.properties" />
+            <property name="base.install.dir"
+                      value="${buildRoot}" />
+        </ant>
+
+    </target>
+
+    <!-- ===================================================================== -->
+    <!-- Steps to do before fetching the build elements -->
+    <!-- ===================================================================== -->
+    <target name="preFetch">
+    </target>
+
+    <!-- ===================================================================== -->
+    <!-- Steps to do after fetching the build elements -->
+    <!-- ===================================================================== -->
+    <target name="postFetch">
+    </target>
+
+    <!-- ===================================================================== -->
+    <!-- Steps to do before generating the build scripts. -->
+    <!-- ===================================================================== -->
+    <target name="preGenerate">
+    </target>
+
+    <!-- ===================================================================== -->
+    <!-- Steps to do after generating the build scripts. -->
+    <!-- ===================================================================== -->
+    <target name="postGenerate">
+    </target>
+
+
+    <!-- ===================================================================== -->
+    <!-- Steps to do before running the build.xmls for the elements being built. -->
+    <!-- ===================================================================== -->
+    <target name="preProcess">
+        <replace dir="${buildDirectory}/plugins"
+                 value="${timestamp}"
+                 token="@build@">
+            <include name="**/about.mappings" />
+        </replace>
+    </target>
+
+    <!-- ===================================================================== -->
+    <!-- Steps to do after running the build.xmls for the elements being built. -->
+    <!-- ===================================================================== -->
+    <target name="postProcess">
+        <condition property="logsAvailable">
+            <istrue value="${javacVerbose}" />
+        </condition>
+        <antcall target="gatherLogs" />
+    </target>
+
+
+    <!-- ===================================================================== -->
+    <!-- Steps to do before running assemble. -->
+    <!-- ===================================================================== -->
+    <target name="preAssemble">
+    </target>
+
+    <!-- ===================================================================== -->
+    <!-- Steps to do after  running assemble. -->
+    <!-- ===================================================================== -->
+    <target name="postAssemble">
+    </target>
+
+    <!-- ===================================================================== -->
+    <!-- Steps to do after the build is done. -->
+    <!-- ===================================================================== -->
+    <target name="postBuild">
+    </target>
+
+    <!-- ===================================================================== -->
+    <!-- Steps to do to test the build results -->
+    <!-- ===================================================================== -->
+    <target name="test">
+    </target>
+
+    <!-- ===================================================================== -->
+    <!-- Steps to do to publish the build results -->
+    <!-- ===================================================================== -->
+    <target name="publish">
+    </target>
+
+
+    <!-- ===================================================================== -->
+    <!-- Helper targets -->
+    <!-- ===================================================================== -->
+    <target name="gatherLogs" if="logsAvailable">
+        <mkdir dir="${buildDirectory}/${buildLabel}/compilelogs" />
+        <antcall target="allElements">
+            <param name="target" value="gatherLogs" />
+        </antcall>
+
+        <unzip dest="${buildDirectory}/${buildLabel}/compilelogs"
+               overwrite="true">
+            <fileset dir="${buildDirectory}/features/${patchFeature}">
+                <include name="**/*.log.zip" />
+            </fileset>
+        </unzip>
+           
+    </target>
+
+    <target name="clean" unless="noclean">
+        <antcall target="allElements">
+            <param name="target" value="cleanElement" />
+        </antcall>
+    </target>
+
+    <!-- ===================================================================== -->
+    <!-- Default target                                                        -->
+    <!-- ===================================================================== -->
+    <target name="noDefault">
+        <echo message="You must specify a target when invoking this file" />
+    </target>
+
+</project>
diff --git a/releng.wtpbuilder/components/wtp-patches/dependency.xml b/releng.wtpbuilder/components/wtp-patches/dependency.xml
new file mode 100644
index 0000000..6cd79cd
--- /dev/null
+++ b/releng.wtpbuilder/components/wtp-patches/dependency.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0"?>
+<!-- ====================================================================== 
+    Properties that must be passed to this script:
+    base.install.dir
+	dependencyTargets
+	local.cache.dir
+	dependency.properties
+	baseos
+	basews
+	basearch
+                                                               
+     ====================================================================== -->
+<project name="test" default="get">
+
+	<target name="get">
+		<antcall target="getAndInstall">
+			<param name="groupId" value="emf" />
+		</antcall>
+		<antcall target="getAndInstall">
+			<param name="groupId" value="gef" />
+		</antcall>
+		<antcall target="getAndInstall">
+			<param name="groupId" value="jem" />
+		</antcall>
+		<antcall target="getAndInstall">
+			<param name="groupId" value="eclipse" />
+		</antcall>
+		<antcall target="getAndInstall">
+			<param name="groupId" value="eclipseTestFramework" />
+		</antcall>
+		<antcall target="getAndInstall">
+			<param name="groupId" value="dita" />
+		</antcall>
+		<antcall target="getAndInstall">
+			<param name="groupId" value="wtp" />
+		</antcall>
+	    
+	    <!-- for patch builds, also get a whole released version to 
+	    compile against -->
+		<antcall target="getAndInstall">
+			<param name="groupId" value="wtp" />
+		</antcall>
+
+	</target>
+
+
+	<target name="getAndInstall">
+		<ant antfile="${dependencyTargets}" target="checkDependency">
+			<property name="groupId" value="${groupId}" />
+		</ant>
+		<ant antfile="${dependencyTargets}" target="installDependency">
+			<property name="groupId" value="${groupId}" />
+			<property name="install.destination" value="${base.install.dir}" />
+		</ant>
+	</target>
+
+
+
+
+</project>
+
diff --git a/releng.wtpbuilder/distribution/patches.build/build.xml b/releng.wtpbuilder/distribution/patches.build/build.xml
new file mode 100644
index 0000000..30ff938
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.build/build.xml
@@ -0,0 +1,23 @@
+<project default="build"  basedir=".">
+
+	<target name="build"  depends="getBaseBuilder">
+		<dirname file="${ant.file}" property="distribution.wtp.build.dir"/>
+		<property file="${wtp.builder.home}/build.properties" />
+		<property name="buildTargets" value="${wtp.builder.home}/scripts/build/build.xml" />
+
+		<ant antfile="${buildTargets}" >
+			<property name="component" value="wtp-patches" />
+		</ant>
+
+		<ant antfile="${wtp.builder.home}/scripts/build/label.xml" />
+	    
+	</target>
+	
+	<target name="getBaseBuilder" if="eclipse.builder.fetch">
+		<dirname file="${ant.file}" property="wtbuilder.dir"/>
+		<property name="buildTargets" value="${wtp.builder.home}/scripts/build/build.xml" />
+		<!-- delete dir="${pde.builder.path}" failonerror="false"/ -->
+		<ant antfile="${buildTargets}" target="getBaseBuilder" />
+	</target>
+	
+</project>
diff --git a/releng.wtpbuilder/distribution/patches.site/build.xml b/releng.wtpbuilder/distribution/patches.site/build.xml
new file mode 100644
index 0000000..05b0186
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.site/build.xml
@@ -0,0 +1,73 @@
+<project name="Build specific targets and properties" default="build">
+    <target name="build">
+        <java classpath="${pde.builder.path}/startup.jar" fork="true" classname="org.eclipse.core.launcher.Main" failonerror="true">
+            <jvmarg value="-Dosgi.ws=${basews}" />
+            <jvmarg value="-Dosgi.os=${baseos}" />
+            <jvmarg value="-Dosgi.arch=${basearch}" />
+            <jvmarg value="-Dbasews=${basews}" />
+            <jvmarg value="-Dbaseos=${baseos}" />
+            <jvmarg value="-Dbasearch=${basearch}" />
+            <jvmarg value="-Dbuild.home=${build.home}" />
+            <jvmarg value="-Dbuild.trial=${build.trial}" />
+            <jvmarg value="-DbuildBranch=${buildBranch}" />
+            <jvmarg value="-DbuildType=${buildType}" />
+            <jvmarg value="-DbuildId=${buildId}" />
+            <jvmarg value="-DjavacDebugInfo=on" />
+            <jvmarg value="-DmapVersionTag=${mapVersionTag}" />
+            <jvmarg value="-Dbuild.distribution=${build.distribution}" />
+            <jvmarg value="-DbuildDirectory=${buildDirectory}" />
+            <jvmarg value="-Dwtp.builder.home=${wtp.builder.home}" />
+            <arg value="-application" />
+            <arg value="org.eclipse.ant.core.antRunner" />
+            <arg value="-buildfile" />
+            <arg value="${ant.file}" />
+            <arg value="publish" />
+        </java>
+    </target>
+
+    <!-- ===================================================================== -->
+    <!-- Steps to do to publish the build results -->
+    <!-- ===================================================================== -->
+    <target name="publish">
+        <dirname file="${ant.file}" property="component.dir" />
+        <ant antfile="${wtp.builder.home}/scripts/build/label.xml" />
+        <property file="${buildDirectory}/label.properties" />
+
+        <property name="publish.xml" value="${component.dir}/publish.xml" />
+
+        <property name="indexFileName" value="index.php" />
+        <property name="result" value="${buildDirectory}/${buildLabel}" />
+        <property name="indexTemplateFilename" value="index.html.template" />
+
+        <condition property="isBuildTested" value="true">
+            <available file="${buildDirectory}/${buildLabel}/testResults/consolelogs/wtptestlog.txt" />
+        </condition>
+        <condition property="isBuildTested" value="false">
+            <not>
+                <available file="${buildDirectory}/${buildLabel}/testResults/consolelogs/wtptestlog.txt" />
+            </not>
+        </condition>
+
+        <ant antfile="${publish.xml}" dir="${component.dir}">
+            <property name="dropTokenList" value="%wtppatch%,%wtpruntime%,%wtpsdk%,%wst%,%wst-sdk%,%wst-tests%,%jst-tests%,%wst-perf-tests%,%jst-perf-tests%,%jsf-runtime%,%jsf-sdk%,%jsf-tests%,%jpa-runtime%,%jpa-sdk%,%jpa-tests%" />
+
+            <!-- use this form if/when mirror redirects desired
+            <property name="webtoolsDownloadURL" value="http://www.eclipse.org/downloads/download.php?file=/webtools/patches/drops"/>
+            -->
+            <property name="webtoolsDownloadURL" value="/webtools/patches/drops"/>
+
+            <property name="buildBranch" value="${buildBranch}" />
+            <property name="isBuildTested" value="${isBuildTested}" />
+            <property name="indexTemplateFilename" value="${indexTemplateFilename}" />
+        </ant>
+
+        <!--  Get the build map over for the results to point to. -->
+        <copy file="${buildDirectory}/directory.txt" tofile="${result}/directory.txt" />
+
+        <!-- Copy info for build identification -->
+        <copy file="${buildDirectory}/buildmachineinfo.properties" tofile="${result}/buildmachineinfo.properties" />
+
+    </target>
+
+
+</project>
diff --git a/releng.wtpbuilder/distribution/patches.site/publish.xml b/releng.wtpbuilder/distribution/patches.site/publish.xml
new file mode 100644
index 0000000..132538c
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.site/publish.xml
@@ -0,0 +1,152 @@
+<project name="Publish Build" default="default" basedir=".">
+
+	<!-- Properties that must be passed to this script:
+	buildDirectory: Path to perform the build in.  (A working directory)
+	buildType:		Type of build (nightly, integration etc.)
+	buildId:		Build name
+	buildLabel:		<buildType>-<buildName>-<timestamp>
+-->
+	<property name="result" value="${buildDirectory}/${buildLabel}" />
+
+	<!--name of generated index page-->
+	<property name="indexFileName" value="index.php" />
+
+	<target name="default">
+		<antcall target="countFiles" />
+		<antcall target="generateIndex" />
+		<antcall target="getStaticFiles" />
+	</target>
+
+	<target name="generateIndex">
+
+		<property name="class" value="org.eclipse.releng.generators.TestResultsGenerator" />
+		<taskdef name="indexResults" classname="${class}" />
+
+		<!--
+	isBuildTested:  true|false  should JUnit plugin test results be used to generate index page
+	dropTokenList:  comma separated list of strings which should be replaced by the fileName attribute settings in the testManifest.xml.
+	xmlDirectoryName:  path to directory containing JUnit plugin test results in xml format (see doc is org.eclipse.test).
+	dropDirectoryName: path to directory containing the result of the build.
+	testResultsTemplateFileName:  path to template file used to generate page with links to JUnit test results	
+	testResultsHtmlFileName:  name of file which will be generated with links to JUnit test results
+	dropHtmlFileName:  name of generated index page
+	hrefTestResultsTargetPath:  relative path from index page to directory containing JUnit html test results
+	hrefCompileLogsTargetPath:  relative path from index page directory containing compilelogs
+	testManifestFileName:	name of xml file containing descriptions of zip types and log files
+
+	
+	
+-->
+		<property file="${buildDirectory}/maps/releng/maps/dependencies.properties" />
+		
+		<indexResults isBuildTested="${isBuildTested}" dropTokenList="${dropTokenList}" xmlDirectoryName="${result}/testResults/xml" dropDirectoryName="${result}" testResultsTemplateFileName="${basedir}/templateFiles/testResults.php.template" dropTemplateFileName="${basedir}/templateFiles/${indexTemplateFilename}" testResultsHtmlFileName="testResults.php" dropHtmlFileName="${indexFileName}" hrefTestResultsTargetPath="testResults/html" hrefCompileLogsTargetPath="compilelogs" compileLogsDirectoryName="${result}/compilelogs" testManifestFileName="${basedir}/testManifest.xml" />
+
+		<tstamp>
+			<format property="TODAY" pattern="MMMM d, yyyy" />
+		</tstamp>
+
+		<!--  Insert Build Type descriptor  -->
+		<antcall target="${buildType}" />
+
+		<!--  Insert Build Date  -->
+		<replace file="${result}/${indexFileName}" token="@date@" value="${TODAY}" />
+
+		<!--  Insert Build Name  -->
+		<replace file="${result}/${indexFileName}" token="@build@" value="${buildLabel}" />
+
+		<!--  Insert Mirror  Name  -->
+		<replace file="${result}/${indexFileName}" token="@mirror@" value="${webtoolsDownloadURL}/${buildBranch}/${buildLabel}/" />
+
+		<!--  Insert PreRequsites  -->
+
+		<replace file="${result}/${indexFileName}" token="@eclipseFile@" value="${eclipse.file.linux-gtk-x86}" />
+		<replace file="${result}/${indexFileName}" token="@eclipseURL@" value="${eclipse.url}/${eclipse.file.linux-gtk-x86}" />
+		<replace file="${result}/${indexFileName}" token="@eclipseBuildURL@" value="${eclipse.url}" />
+		<replace file="${result}/${indexFileName}" token="@emfFile@" value="${emf.file}" />
+		<replace file="${result}/${indexFileName}" token="@emfURL@" value="${emf.url}" />
+		<replace file="${result}/${indexFileName}" token="@gefFile@" value="${gef.file}" />
+		<replace file="${result}/${indexFileName}" token="@gefURL@" value="${gef.url}/${gef.file}" />
+		<replace file="${result}/${indexFileName}" token="@jemFile@" value="${jem.file}" />
+		<replace file="${result}/${indexFileName}" token="@jemURL@" value="${jem.url}/${jem.file}" />
+		<mkdir dir="${result}/whatisfixed" />
+		<echo file="${result}/whatisfixed/buglog.html" append="true" >
+		  what is fixed list is not available yet!
+		                     </echo>
+
+
+		<!--  Update timestamp on file to permit overwrite through Ant copy task  -->
+		<touch file="${result}/${indexFileName}" />
+	</target>
+
+
+	<target name="getStaticFiles">
+		<!--get static files required in the buildLabel directory-->
+		<copy todir="${result}">
+			<fileset dir="${basedir}/staticDropFiles" />
+		</copy>
+
+		<!--copy buildnotes from plugin and feature directories-->
+		<mkdir dir="${result}/buildnotes" />
+		<copy todir="${result}/buildnotes" flatten="true">
+			<fileset dir="${buildDirectory}/plugins" includes="**/buildnotes_*.html" />
+		</copy>
+		<copy todir="${result}/buildnotes" flatten="true">
+			<fileset dir="${buildDirectory}/features" includes="**/buildnotes_*.html" />
+		</copy>
+	</target>
+
+	<target name="countFiles">
+		<!--	files.count is a file that should exist in the drop directory with a count of the zip files in the same directory.
+		It is required to generate a link to the build on the downloads page.
+		Added remove .zip.MD5 - old files before a count
+ -->
+		<delete>
+			<fileset dir="${result}" id="id">
+				<include name="*.MD5" />
+			</fileset>
+		</delete>
+
+		<taskdef name="countFiles" classname="org.eclipse.releng.generators.FileCounter" />
+
+		<countFiles sourceDirectory="${result}" filterString=".zip,.tar.gz" outputFile="${result}/files.count" />
+
+	</target>
+
+	<!--Build type descriptors-->
+	<target name="I">
+		<replace file="${result}/${indexFileName}" token="%wtpandprereqs%" value=" " />
+		<replace file="${result}/${indexFileName}" token="@type@" value="Integration" />
+	</target>
+
+	<target name="S">
+		<replace file="${result}/${indexFileName}" token="%wtpandprereqs%" value=" " />
+		<replace file="${result}/${indexFileName}" token="@type@" value="Stable" />
+	</target>
+
+	<target name="N">
+		<replace file="${result}/${indexFileName}" token="%wtpandprereqs%" value=" " />
+		<replace file="${result}/${indexFileName}" token="@type@" value="Nightly" />
+	</target>
+
+	<target name="M">
+		<replace file="${result}/${indexFileName}" token="%wtpandprereqs%" value=" " />
+		<replace file="${result}/${indexFileName}" token="@type@" value="Maintenance" />
+	</target>
+    
+	<target name="P">
+		<replace file="${result}/${indexFileName}" token="%wtpandprereqs%" value=" " />
+		<replace file="${result}/${indexFileName}" token="@type@" value="Patch " />
+	</target>
+
+	<target name="R">
+		<replace file="${result}/${indexFileName}" token="%wtpandprereqs%" value=" " />
+		<replace file="${result}/${indexFileName}" token="@type@" value="Release" />
+	</target>
+
+
+	<target name="T">
+		<replace file="${result}/${indexFileName}" token="%wtpandprereqs%" value=" " />
+		<replace file="${result}/${indexFileName}" token="@type@" value="Test" />
+	</target>
+
+</project>
\ No newline at end of file
diff --git a/releng.wtpbuilder/distribution/patches.site/staticDropFiles/FAIL.gif b/releng.wtpbuilder/distribution/patches.site/staticDropFiles/FAIL.gif
new file mode 100644
index 0000000..28bba66
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.site/staticDropFiles/FAIL.gif
Binary files differ
diff --git a/releng.wtpbuilder/distribution/patches.site/staticDropFiles/OK.gif b/releng.wtpbuilder/distribution/patches.site/staticDropFiles/OK.gif
new file mode 100644
index 0000000..689e523
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.site/staticDropFiles/OK.gif
Binary files differ
diff --git a/releng.wtpbuilder/distribution/patches.site/staticDropFiles/buildNotes.php b/releng.wtpbuilder/distribution/patches.site/staticDropFiles/buildNotes.php
new file mode 100644
index 0000000..c67ee8c
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.site/staticDropFiles/buildNotes.php
@@ -0,0 +1,49 @@
+<html>
+<head>
+<?php
+	$parts = explode("/", getcwd());
+	$parts2 = explode("-", $parts[count($parts) - 1]);
+	$buildName = $parts2[1];
+	
+        echo "<title>Build Notes for $buildName </title>";
+?>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
+</head>
+<body>
+
+<p><b><font face="Verdana" size="+3">Build Notes</font></b> </p>
+
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">
+	   Build Notes for <?php echo "$buildName"; ?></font></b></td>
+  </tr>
+</table>
+<table border="0">
+
+<?php
+	$hasNotes = false;
+	$aDirectory = dir("buildnotes");
+	while ($anEntry = $aDirectory->read()) {
+		if ($anEntry != "." && $anEntry != "..") {
+			$parts = explode("_", $anEntry);
+			$baseName = $parts[1];
+			$parts = explode(".", $baseName);
+			$component = $parts[0];
+			$line = "<td>Component: <a href=\"buildnotes/$anEntry\">$component</a></td>";
+			echo "<tr>";
+			echo "$line";
+			echo "</tr>";
+			$hasNotes = true;
+		}
+	}
+	$aDirectory.closedir();
+	if (!$hasNotes) {
+		echo "<br>There are no build notes for this build.";
+	}
+?>
+
+</table>
+</body>
+</html>
diff --git a/releng.wtpbuilder/distribution/patches.site/staticDropFiles/componentxmls.php b/releng.wtpbuilder/distribution/patches.site/staticDropFiles/componentxmls.php
new file mode 100644
index 0000000..73c5443
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.site/staticDropFiles/componentxmls.php
@@ -0,0 +1,53 @@
+<html>
+<head>
+<?php
+  function find_component_xml($directory)
+  {
+    $count = 0;
+    $dir = dir($directory);
+    while ($anEntry = $dir->read())
+    {
+      if ($anEntry != "." && $anEntry != "..")
+      {
+        $anEntry = $directory."/".$anEntry;
+        if (stristr($anEntry, '.source') === FALSE)
+        {
+          if (is_dir($anEntry))
+          {
+            find_component_xml($anEntry);
+          }
+          else
+          {
+            echo "<tr><td><a href=\"$anEntry\">";
+            echo substr($anEntry, 22);
+            echo "</a></td>";
+          }
+        }
+      }
+    }
+  }
+?>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
+</head>
+<body>
+
+<p><b><font face="Verdana" size="+3">component.xml</font></b> </p>
+
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">
+	   component.xml files for <?php echo "$buildType $buildName"; ?></font></b></td>
+  </tr>
+</table>
+
+<table border="1" width="100%">
+  <tr>
+    <th>component.xml</th>
+  </tr>
+<?php
+  find_component_xml("apitools/componentxmls");
+?>
+</table>
+</body>
+</html>
diff --git a/releng.wtpbuilder/distribution/patches.site/staticDropFiles/consoleLogs.php b/releng.wtpbuilder/distribution/patches.site/staticDropFiles/consoleLogs.php
new file mode 100644
index 0000000..5b3e589
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.site/staticDropFiles/consoleLogs.php
@@ -0,0 +1,62 @@
+<html>
+<head>
+<?php
+
+	$consoleLogDirName = "testResults/consolelogs";	
+
+	$parts = explode("/", getcwd());
+	$parts2 = explode("-", $parts[count($parts) - 1]);
+	$buildName = $parts2[1];
+	
+	echo "<title>Test Console Output for $buildName </title>";
+?>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
+<title>Console Logs from Running JUnit Plug-in Tests</title></head>
+<body>
+
+<p><b><font face="Verdana" size="+3">Test Console Output</font></b> </p>
+
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">Console 
+      output from running JUnit plugin tests for 
+      <?php echo "$buildName"; ?>
+      </font></b></td>
+  </tr>
+</table>
+<table border="0">
+
+<?php
+	$hasNotes = false;
+	if (file_exists($consoleLogDirName)) {
+		$aDirectory = dir($consoleLogDirName);
+		$index = 0;
+		while ($anEntry = $aDirectory->read()) {
+			if ($anEntry != "." && $anEntry != "..") {
+				$entries[$index] = $anEntry;
+				$index++;
+			}
+		}
+		
+		aDirectory.closedir();
+		sort($entries);
+	
+		for ($i = 0; $i < $index; $i++) {
+			$anEntry = $entries[$i];
+			$line = "<td>Component: <a href=\"$consoleLogDirName/$anEntry\">$anEntry</a></td>";
+			echo "<tr>";
+			echo "$line";
+			echo "</tr>";
+			$hasNotes = true;
+		}
+	}
+	
+	if (!$hasNotes) {
+		echo "<br>There are no test logs for this build.";
+	}
+?>
+
+</table>
+</body>
+</html>
diff --git a/releng.wtpbuilder/distribution/patches.site/staticDropFiles/download.php b/releng.wtpbuilder/distribution/patches.site/staticDropFiles/download.php
new file mode 100644
index 0000000..cfeab0a
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.site/staticDropFiles/download.php
@@ -0,0 +1,54 @@
+<html>
+<head>
+<title>Eclipse WTP Download Click Through</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
+<?php
+	$parts = explode("-", $dropFile);
+	$clickFile = "clickThroughs/";
+	for ($i =0; $i<count($parts); $i++) {
+		if ($i != 2) {
+			$clickFile = $clickFile.$parts[$i];
+		    if ($i < count($parts) - 1) {
+        	    $clickFile = $clickFile."-";
+            }
+ 		}
+	}
+	$clickFile = $clickFile.".txt";
+
+	if (file_exists($clickFile)) {
+		$fileHandle = fopen($clickFile, "r");
+		while (!feof($fileHandle)) {
+			$aLine = fgets($fileHandle, 4096);
+			$result = $result.$aLine;
+		}
+		fclose($fileHandle);
+	} else {
+		echo '<META HTTP-EQUIV="Refresh" CONTENT="0;URL='.$dropFile.'">';
+		echo '<b><font size "+4">Downloading: '.$dropFile.'</font></b>';
+		echo '<BR>';
+		echo '<BR>';
+		echo 'If your download does not begin automatically click <a href="'.$dropFile.'">here</a>.';
+	}
+?>
+</head>
+
+<body bgcolor="#FFFFFF" text="#000000">
+  <?php
+	if (file_exists($clickFile)) {
+	 echo '<p><b><font size="+4">Important Notes<BR>';
+	 echo $dropFile;
+	 echo '</font></b></font></p>
+	<p>It is very important to read the following notes in order to run this version 
+	  of Eclipse. Once you have read the notes you can click on the Download link 
+	  to download the drop.</p>
+	';
+	  echo '<textarea name="textfield" cols="80" rows="20" wrap="PHYSICAL">'.$result;
+	  echo '</textarea>';
+	  echo '<BR>';
+	  echo '<BR>';
+	  echo '<a href="'.$dropFile.'">Download</a>';
+	}
+?>
+</body>
+</html>
diff --git a/releng.wtpbuilder/distribution/patches.site/staticDropFiles/pii.php b/releng.wtpbuilder/distribution/patches.site/staticDropFiles/pii.php
new file mode 100644
index 0000000..e3ed59b
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.site/staticDropFiles/pii.php
@@ -0,0 +1,54 @@
+<html>
+<head>
+<?php
+  function write_unused_property($directory)
+  {
+    $count = 0;
+    $dir = dir($directory);
+    while ($anEntry = $dir->read())
+    {
+      if ($anEntry != "." && $anEntry != "..")
+      {
+        $anEntry = $directory."/".$anEntry;
+        if (is_dir($anEntry))
+        {
+          write_unused_property($anEntry);
+        }
+        else
+        {
+          echo "<tr><td><a href=\"$anEntry\">";
+          echo substr($anEntry, 16);
+          echo "</a></td>";
+          $lines = file($anEntry);
+          $count = count($lines);
+          echo "<td>$count</td></tr>";
+        }
+      }
+    }
+  }
+?>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
+</head>
+<body>
+
+<p><b><font face="Verdana" size="+3">Unused property messages</font></b> </p>
+
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">
+	   Unused property messages for <?php echo "$buildType $buildName"; ?></font></b></td>
+  </tr>
+</table>
+
+<table border="1">
+  <tr>
+    <th>Properties file</th>
+    <th>Unused strings</th>
+  </tr>
+<?php
+  write_unused_property("piitools");
+?>
+</table>
+</body>
+</html>
diff --git a/releng.wtpbuilder/distribution/patches.site/templateFiles/buildresult.xml.template b/releng.wtpbuilder/distribution/patches.site/templateFiles/buildresult.xml.template
new file mode 100644
index 0000000..1fdede5
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.site/templateFiles/buildresult.xml.template
@@ -0,0 +1,2 @@
+<eclipsebuild buildlabel="@buildlabel@">
+</eclipsebuild>
diff --git a/releng.wtpbuilder/distribution/patches.site/templateFiles/index.html.template b/releng.wtpbuilder/distribution/patches.site/templateFiles/index.html.template
new file mode 100644
index 0000000..ad5c4af
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.site/templateFiles/index.html.template
@@ -0,0 +1,66 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
+<title>Download</title>
+</head>
+
+<body>
+
+<?php
+include '../../../report.php';
+$testResults = parse_testResult("testResults.php");
+list ($compileErrors, $compileWarnings, $junitFailures) = $testResults;
+?>
+
+
+&nbsp; <table BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%" ><tr><td ALIGN=LEFT width="80%">
+<p><b><font face="Verdana" size="+3">@type@ Build: @build@</font></b><br>
+@date@
+</p>
+<p>These downloads are provided under the <a href="http://www.eclipse.org/legal/epl/notice.html">Eclipse Foundation
+Software User Agreement</a>.</p>
+</td></tr></table>
+
+<!-- ***********  Build Status **************  -->
+<table border=0 cellspacing=5 cellpadding=2 width="100%" ><tr><td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"> <b><font face="Arial,Helvetica" color="#FFFFFF">Build, test and performance</font></b></td></tr></table>
+<br>
+<?
+$buildmachineScript="../../../displayBuildMachine.php";
+if (file_exists($buildmachineScript))
+{
+        include $buildmachineScript;
+        echo displayBuildMachine();
+}
+?>
+<br> <a href="buildNotes.php">Build notes</a>
+<br> <a href="directory.txt">map files</a>
+<br> <a href="testResults.php">Compile logs &amp; test results</a>
+
+
+<!-- ***********  Runtime downloads **************  -->
+<table border=0 cellspacing=5 cellpadding=2 width="100%" ><tr><td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0">
+<b><font face="Arial,Helvetica" color="#FFFFFF">
+Web Tools Platform Patches
+</font></b></td></tr>
+
+<TR><TD align="LEFT" valign="TOP" colspan="3">
+The Eclipse Web Tools Platform Project provides tools for Web Development, and is a platform for adopters making add-on tools for Web Development.
+<p>The patches found here are very special purpose and may not run correctly in all contexts. You should not download and install this patch unless
+directed to by a WTP Commmitter (or, support personnel). 
+</TD></TR></table>
+
+%wtpandprereqs%
+
+<table border=0 cellspacing=2 cellpadding=0 width="100%" bordercolor="#999999" >
+<tr><td align=RIGHT valign=TOP width="7%">
+<div align="left"><b>Status</b></div></td>
+<td width="34%"><b>Platform</b></td>
+<td width="59%"><b>Download</b></td></tr>
+%wtppatch%
+</table>
+<table border=0 cellspacing=5 cellpadding=2 width="100%" ><tr><td colspan="2">&nbsp;</td></tr></table>
+
+
+</body>
+</html>
diff --git a/releng.wtpbuilder/distribution/patches.site/templateFiles/monitor-all.php.template b/releng.wtpbuilder/distribution/patches.site/templateFiles/monitor-all.php.template
new file mode 100644
index 0000000..a214891
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.site/templateFiles/monitor-all.php.template
@@ -0,0 +1,47 @@
+<html>
+<head>
+
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
+</head>
+<body>
+<p><b><font face="Verdana" size="+3">Test Results</font></b> </p>
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">Unit 
+      Test Results </font></b></td>
+  </tr>
+</table>
+<p></p><table border="0">
+</table>
+
+<table width="77%" border="1">
+  <tr> 
+    <td width="81%"><b>Tests Performed</b></td>
+    <td width="19%"><b>Errors &amp; Failures</b></td>
+  </tr>
+  
+  %testresults%
+  
+</table>
+<br>
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">Plugins 
+      containing compile errors </font></b></td>
+  </tr>
+</table>
+
+<table width="77%" border="1">
+  <tr> 
+    <td><b>Compile Logs (Jar Files)</b></td>
+    <td><b>Errors</b></td>
+	<td><b>Warnings</b></td>
+  </tr>
+  
+  %compilelogs%
+  
+</table>
+
+</body>
+</html>
diff --git a/releng.wtpbuilder/distribution/patches.site/templateFiles/monitor-compile.php.template b/releng.wtpbuilder/distribution/patches.site/templateFiles/monitor-compile.php.template
new file mode 100644
index 0000000..74927d6
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.site/templateFiles/monitor-compile.php.template
@@ -0,0 +1,39 @@
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
+</head>
+<body>
+<p><b><font face="Verdana" size="+1">Test Results are not available yet</font></b> </p>
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">Unit 
+      Tests are in progress. Results will be ready soon... </font></b></td>
+  </tr>
+</table>
+<p></p><table border="0">
+</table>
+
+<p></p>
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">Plugins 
+      containing compile errors </font></b></td>
+  </tr>
+</table>
+
+<table width="77%" border="1">
+  <tr> 
+    <td><b>Compile Logs (Jar Files)</b></td>
+    <td><b>Errors</b></td>
+	<td><b>Warnings</b></td>
+  </tr>
+  
+  %compilelogs%
+  
+</table>
+
+</body>
+</html>
diff --git a/releng.wtpbuilder/distribution/patches.site/templateFiles/monitor-tests.php.template b/releng.wtpbuilder/distribution/patches.site/templateFiles/monitor-tests.php.template
new file mode 100644
index 0000000..d31b525
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.site/templateFiles/monitor-tests.php.template
@@ -0,0 +1,59 @@
+<html>
+<head>
+
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
+</head>
+<body>
+<p><b><font face="Verdana" size="+1">Compilation and Tests are complete, Performance results are not available yet</font></b> </p>
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">Unit 
+      Performance tests are in progress. Results will be ready soon... </font></b></td>
+  </tr>
+</table>
+<p></p><table border="0">
+</table>
+
+<p></p>
+
+<p><b><font face="Verdana" size="+3">Test Results</font></b> </p>
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">Unit 
+      Test Results </font></b></td>
+  </tr>
+</table>
+<p></p><table border="0">
+</table>
+
+<table width="77%" border="1">
+  <tr> 
+    <td width="81%"><b>Tests Performed</b></td>
+    <td width="19%"><b>Errors &amp; Failures</b></td>
+  </tr>
+  
+  %testresults%
+  
+</table>
+<br>
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">Plugins 
+      containing compile errors </font></b></td>
+  </tr>
+</table>
+
+<table width="77%" border="1">
+  <tr> 
+    <td><b>Compile Logs (Jar Files)</b></td>
+    <td><b>Errors</b></td>
+	<td><b>Warnings</b></td>
+  </tr>
+  
+  %compilelogs%
+  
+</table>
+
+</body>
+</html>
diff --git a/releng.wtpbuilder/distribution/patches.site/templateFiles/performance.template b/releng.wtpbuilder/distribution/patches.site/templateFiles/performance.template
new file mode 100644
index 0000000..f8abfbc
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.site/templateFiles/performance.template
@@ -0,0 +1,62 @@
+<P>
+  <A NAME="unit"></A>
+  * Missing reference data. Build used for comparison specified in ending parenthesis.
+  <BR>green: faster, less memory
+  <BR>red: slower, more memory
+  <BR>x axis: difference between current value and baseline value as percentage
+  <BR>
+</P>
+
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">
+      Detailed performance data grouped by scenario prefix
+    </font></b></td>
+  </tr>
+</table>
+
+<?php
+  $dir = dir(".");
+  while ($anEntry = $dir->read())
+  {
+    if ($anEntry != "global.php" && substr($anEntry, strlen($anEntry) - 4) == ".php")
+    {
+      echo "<a href=\"$anEntry\">$anEntry</a><br>";
+    }
+  }
+?>
+
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td>&nbsp;</td>
+  </tr>
+</table>
+
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">
+      Performance JUnit test results for <?php echo "$buildType $buildName"; ?>
+    </font></b></td>
+  </tr>
+</table>
+
+<font color="#FFFFFF" face="Arial,Helvetica">
+<table border=1" width="100%">
+  <tr>
+    <td width="100%"><b>Tests Performed</b></td>
+  </tr>
+  <?php
+    $xmlDir = dir("../xml");
+    while ($xmlEntry = $xmlDir->read())
+    {
+      if ($xmlEntry != "." && $xmlEntry != "..")
+      {
+        $htmlEntry = substr($xmlEntry, 0, strlen($xmlEntry) - 3) . "html";
+        echo "<tr>";
+        echo "<td><a href=\"../html/$htmlEntry\">$htmlEntry</a></td>";
+        echo "</tr>";
+      }
+    }
+  ?>
+</table>
+</html>
\ No newline at end of file
diff --git a/releng.wtpbuilder/distribution/patches.site/templateFiles/testResults.php.template b/releng.wtpbuilder/distribution/patches.site/templateFiles/testResults.php.template
new file mode 100644
index 0000000..6fcd9fb
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.site/templateFiles/testResults.php.template
@@ -0,0 +1,91 @@
+<html>
+<head>
+
+<?php
+	$parts = explode("/", getcwd());
+	$parts2 = explode("-", $parts[count($parts) - 1]);
+	$buildName = $parts2[1];
+	
+	echo "<title>Test Results for $buildName </title>";
+?>
+
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
+</head>
+<body>
+<p><b><font face="Verdana" size="+3">Test Results</font></b> </p>
+
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">
+    Unit Test Results for <?php echo "$buildName"; ?> on Various Platforms and JRE</font></b></td>
+  </tr>
+</table>
+
+<?php
+if (file_exists("testResults"))
+{
+$dir = dir("testResults");
+while ($anEntry = $dir->read())
+{
+  if ($anEntry != "." && $anEntry != ".." && $anEntry != "consolelogs" && $anEntry != "html" && $anEntry != "xml")
+  {
+    $link = "testResults/".$anEntry."/results/index.php";
+    echo "<p><a href=\"$link\">$anEntry</a></p>";
+  }
+}
+}
+?>
+
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">Unit 
+      Test Results for <?php echo "$buildName"; ?> </font></b></td>
+  </tr>
+</table>
+<p></p><table border="0">
+</table>
+
+<table width="77%" border="1">
+  <tr> 
+    <td width="81%"><b>Tests Performed</b></td>
+    <td width="19%"><b>Errors &amp; Failures</b></td>
+  </tr>
+  
+  %testresults%
+  
+</table>
+<p></p>
+<br>
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica"> 
+      Console output logs 
+      <?php echo "$buildName"; ?>
+      </font></b></td>
+  </tr>
+</table>
+<br>
+These <a href="consoleLogs.php">logs</a> contain the console output captured while 
+running the JUnit automated tests. <br>
+<br>
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">Plugins 
+      containing compile errors </font></b></td>
+  </tr>
+</table>
+
+<table width="77%" border="1">
+  <tr> 
+    <td><b>Compile Logs (Jar Files)</b></td>
+    <td><b>Errors</b></td>
+	<td><b>Warnings</b></td>
+  </tr>
+  
+  %compilelogs%
+  
+</table>
+
+</body>
+</html>
diff --git a/releng.wtpbuilder/distribution/patches.site/testManifest.xml b/releng.wtpbuilder/distribution/patches.site/testManifest.xml
new file mode 100644
index 0000000..bb4609a
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.site/testManifest.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<topLevel>
+	<zipTypes>
+		<zipType name="wtppatch">
+			<platform 
+				id="WTPPATCH" 
+				name="All"  
+				fileName='&lt;a href="@mirror@wtp-@build@.zip"&gt;wtp-@build@.zip&lt;/a&gt;(&lt;a href="checksum/wtp-@build@.zip.md5"&gt;md5&lt;/a&gt;) &lt;font size="2"&gt;&lt;/font&gt;'>
+			</platform>
+		</zipType>
+     </zipTypes>
+</topLevel>
diff --git a/releng.wtpbuilder/distribution/patches.tests/build.xml b/releng.wtpbuilder/distribution/patches.tests/build.xml
new file mode 100644
index 0000000..52199c0
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.tests/build.xml
@@ -0,0 +1,93 @@
+<project name="Build specific targets and properties" default="test">
+
+
+
+    <!-- ===================================================================== -->
+    <!-- Steps to do after the build is done. -->
+    <!-- ===================================================================== -->
+    <target name="test">
+        <antcall target="runTest" />
+    </target>
+
+    <!-- ===================================================================== -->
+    <!-- Steps to do to test the build results -->
+    <!-- ===================================================================== -->
+    <target name="runTest">
+
+        <dirname file="${ant.file}" property="test.component.dir" />
+        <ant antfile="${wtp.builder.home}/scripts/build/label.xml" />
+        <property file="${buildDirectory}/label.properties" />
+        <property file="${wtp.builder.home}/build.properties" />
+
+        <mkdir dir="${testRoot}" />
+        <mkdir dir="${testRoot}/results" />
+        <mkdir dir="${testRoot}/results/consolelogs" />
+
+        <copy todir="${testRoot}" overwrite="true">
+            <fileset dir="${test.component.dir}/testScripts">
+            </fileset>
+        </copy>
+
+       
+        <echo message="${baseos} ${basews} ${basearch} " />
+        <ant antfile="${test.component.dir}/testdependency.xml" target="get">
+            <property name="dependency.properties" value="${buildDirectory}/maps/releng/maps/dependencies.properties" />
+            <property name="base.install.dir" value="${testRoot}" />
+        </ant>
+ 
+	<sleep seconds="5"/>
+        <unzip dest="${testRoot}" src="${buildDirectory}/${buildLabel}/wtp-${buildLabel}.zip" overwrite="true" />
+
+
+        <antcall target="runTestEclipse">
+            <param name="testTarget" value="all" />
+        </antcall>
+        <antcall target="postRunTestEclipse">
+            <param name="testTarget" value="all" />
+        </antcall>
+
+    </target>
+
+
+
+    <target name="runTestEclipse">
+        <java taskname="test-wtp-${testTarget}" classpath="${testRoot}/eclipse/startup.jar" fork="true" classname="org.eclipse.core.launcher.Main" failonerror="true" timeout="7200000" output="${testRoot}/results/consolelogs/wtptestlog.txt" dir="${testRoot}">
+            <jvmarg value="-Dosgi.ws=${basews}" />
+            <jvmarg value="-Dosgi.os=${baseos}" />
+            <jvmarg value="-Dosgi.arch=${basearch}" />
+            <jvmarg value="-Dws=${basews}" />
+            <jvmarg value="-Dos=${baseos}" />
+            <jvmarg value="-Darch=${basearch}" />
+            <jvmarg value="-Dnoclean=true" />
+            <jvmarg value="-DbuildBranch=${buildBranch}" />
+            <jvmarg value="-DbuildType=${buildType}" />
+            <jvmarg value="-DbuildId=${buildId}" />
+            <jvmarg value="-DbuildLabel=${buildLabel}" />
+            <arg value="-propertyfile" />
+            <arg value="test.properties" />
+            <arg value="-application" />
+            <arg value="org.eclipse.ant.core.antRunner" />
+            <arg value="-file" />
+            <arg value="test.xml" />
+            <arg value="-logger" />
+            <arg value="org.apache.tools.ant.DefaultLogger" />
+            <arg value="${testTarget}" />
+            <sysproperty key="build.home" value="${build.home}" />
+            <sysproperty key="buildDirectory" value="${buildDirectory}" />
+            <sysproperty key="baseLocation" value="${baseLocation}" />
+            <sysproperty key="testDir" value="${testRoot}" />
+            <sysproperty key="perf.buildId" value="${buildType}${date}-${time}" />
+            <sysproperty key="eclipseBuilderDirectory" value="${pde.builder.path}" />
+        </java>
+    </target>
+
+    <target name="postRunTestEclipse">
+        <copy todir="${buildDirectory}/${buildLabel}/testResults" overwrite="true">
+            <fileset dir="${testRoot}/results">
+                <include name="**/*.*" />
+            </fileset>
+        </copy>
+    </target>
+
+
+</project>
diff --git a/releng.wtpbuilder/distribution/patches.tests/standaloneTest.xml b/releng.wtpbuilder/distribution/patches.tests/standaloneTest.xml
new file mode 100644
index 0000000..4432eda
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.tests/standaloneTest.xml
@@ -0,0 +1,138 @@
+<project default="main" basedir=".">
+
+	<!--
+	Required inputs:
+	
+	build.home
+	buildType
+	buildId
+	timestamp
+	baseos
+	basews
+	basearch
+	build.committers [optional]
+	testTarget [optional]
+	-->
+	
+	<target name="main">
+		<property file="${build.home}/releng.wtpbuilder/build.properties"/>
+		<property name="local.cache.dir" value="${build.home}/${build.local.repository}"/>
+		<property name="testRoot" value="${build.home}/testRoot"/>
+		<delete dir="${testRoot}" failonerror="false"/>
+		<mkdir dir="${testRoot}"/>
+		<antcall target="getReleng"/>
+		<property file="${testRoot}/releng/maps/dependencies.properties"/>
+		<antcall target="getDependencies"/>
+		<condition property="wtp-sdk" value="wtp-sdk-${buildId}.zip" else="wtp-sdk-${buildType}-${buildId}-${timestamp}.zip">
+			<available file="${local.cache.dir}/wtp-sdk-${buildId}.zip"/>
+		</condition>
+		<condition property="wtp-wst-tests" value="wtp-wst-Automated-Tests-${buildId}.zip" else="wtp-wst-Automated-Tests-${buildType}-${buildId}-${timestamp}.zip">
+			<available file="${local.cache.dir}/wtp-wst-Automated-Tests-${buildId}.zip"/>
+		</condition>
+		<condition property="wtp-jst-tests" value="wtp-jst-Automated-Tests-${buildId}.zip" else="wtp-jst-Automated-Tests-${buildType}-${buildId}-${timestamp}.zip">
+			<available file="${local.cache.dir}/wtp-jst-Automated-Tests-${buildId}.zip"/>
+		</condition>
+		<antcall target="run"/>
+	</target>
+
+	<target name="getReleng">
+		<property name="releng.tag" value="v${buildType}${timestamp}"/>
+		<cvs
+			cvsRoot=":pserver:anonymous@dev.eclipse.org:/cvsroot/webtools"
+			package="releng"
+			dest="${testRoot}"
+			command="export"
+			tag="${releng.tag}"
+		/>
+	</target>
+
+	<target name="getDependencies">
+		<ant antfile="${build.home}/releng.wtpbuilder/distribution/wtp.tests/testdependency.xml">
+			<property name="base.install.dir" value="${testRoot}"/>
+			<property name="dependencyTargets" value="${build.home}/releng.wtpbuilder/scripts/dependency/build.xml"/>
+		</ant>
+		<antcall target="getAndInstallWTP">
+			<param name="file" value="wtp-sdk-${buildId}.zip" />
+		</antcall>
+		<antcall target="getAndInstallWTP">
+			<param name="file" value="wtp-sdk-${buildType}-${buildId}-${timestamp}.zip" />
+		</antcall>
+		<antcall target="getAndInstallWTP">
+			<param name="file" value="wtp-wst-Automated-Tests-${buildId}.zip" />
+		</antcall>
+		<antcall target="getAndInstallWTP">
+			<param name="file" value="wtp-wst-Automated-Tests-${buildType}-${buildId}-${timestamp}.zip" />
+		</antcall>
+		<antcall target="getAndInstallWTP">
+			<param name="file" value="wtp-jst-Automated-Tests-${buildId}.zip" />
+		</antcall>
+		<antcall target="getAndInstallWTP">
+			<param name="file" value="wtp-jst-Automated-Tests-${buildType}-${buildId}-${timestamp}.zip" />
+		</antcall>
+	</target>
+
+	<target name="getAndInstallWTP">
+		<available file="${local.cache.dir}/${file}" property="file.exists"/>
+		<antcall target="getWTP"/>
+		<available file="${local.cache.dir}/${file}" property="file.exists"/>
+		<antcall target="installWTP"/>
+	</target>
+
+	<target name="getWTP">
+		<condition property="file.url" value="http://download.eclipse.org/webtools/patches/drops/${buildType}-${buildId}-${timestamp}" else="http://download.eclipse.org/webtools/downloads/drops/${buildType}-${buildId}-${timestamp}">
+			<isset property="build.committers"/>
+		</condition>
+		<antcall target="getWTP2"/>
+	</target>
+
+	<target name="getWTP2" unless="file.exists">
+		<property name="file.url" value="http://download.eclipse.org/webtools/downloads/drops/${buildType}-${buildId}-${timestamp}"/>
+		<get dest="${local.cache.dir}/${file}" src="${file.url}/${file}" ignoreerrors="true"/>
+	</target>
+
+	<target name="installWTP" if="file.exists">
+		<unzip src="${local.cache.dir}/${file}" dest="${testRoot}" overwrite="true"/>
+	</target>
+
+	<target name="run">
+		<mkdir dir="${testRoot}/results/consolelogs"/>
+		<copy todir="${testRoot}" flatten="true" overwrite="true">
+			<fileset dir="${build.home}/releng.wtpbuilder/distribution/wtp.tests/testScripts"/>
+		</copy>
+		<ant antfile="${build.home}/releng.wtpbuilder/distribution/wtp.tests/build.xml" target="runTestEclipse">
+			<property name="testRoot" value="${testRoot}"/>
+			<property name="testTarget" value="all"/>
+		</ant>
+		<copy file="${build.home}/releng.wtpbuilder/distribution/wtp.tests/templateFiles/index.php" todir="${testRoot}/results" overwrite="true"/>
+	</target>
+
+	<target name="upload" if="login">
+		<mkdir dir="${build.home}/archives"/>
+		<zip destfile="${build.home}/archives/${buildType}-${buildId}-${timestamp}.zip" basedir="${build.home}/testRoot/results"/>
+		<condition property="upload.path"
+			else="~/downloads/webtools/downloads/drops/${buildType}-${buildId}-${timestamp}/testResults/${config}"
+			value="~/downloads/webtools/patches/drops/${buildType}-${buildId}-${timestamp}/testResults/${config}">
+			<isset property="build.committers"/>
+		</condition>
+		<exec executable="ssh" dir="${build.home}">
+			<arg line="${login}@download.eclipse.org rm -rf ${upload.path}"/>
+		</exec>
+		<exec executable="ssh" dir="${build.home}">
+			<arg line="${login}@download.eclipse.org mkdir ${upload.path}"/>
+		</exec>
+		<exec executable="scp" dir="${build.home}">
+			<arg line="-r ./testRoot/results ${login}@download.eclipse.org:${upload.path}"/>
+		</exec>
+	</target>
+
+	<target name="clean" if="clean">
+		<property file="${build.home}/releng.wtpbuilder/build.properties"/>
+		<property name="local.cache.dir" value="${build.home}/${build.local.repository}"/>
+		<property name="testRoot" value="${build.home}/testRoot"/>
+		<delete dir="${testRoot}" failonerror="false"/>
+		<delete failonerror="false">
+			<fileset dir="${local.cache.dir}" includes="wtp-*"/>
+		</delete>
+	</target>
+
+</project>
\ No newline at end of file
diff --git a/releng.wtpbuilder/distribution/patches.tests/templateFiles/index.php b/releng.wtpbuilder/distribution/patches.tests/templateFiles/index.php
new file mode 100644
index 0000000..8d23693
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.tests/templateFiles/index.php
@@ -0,0 +1,80 @@
+<html>
+<head>
+
+<?php
+    $parts = explode("/", realpath(".."));
+    $label = $parts[count($parts) - 1];
+?>
+
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
+</head>
+<body>
+<p><b><font face="Verdana" size="+3">Test Results</font></b> </p>
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">Unit 
+      Test Results for <?php echo "$label"; ?> </font></b></td>
+  </tr>
+</table>
+<p></p><table border="0">
+</table>
+
+<table width="77%" border="1">
+  <tr> 
+    <td width="81%"><b>Tests Performed</b></td>
+    <td width="19%"><b>Errors &amp; Failures</b></td>
+  </tr>
+
+  <?
+    $dir = dir("html");
+    while ($anEntry = $dir->read())
+    {
+      if ($anEntry != "." && $anEntry != "..")
+      {
+        $link = "html/".$anEntry;
+        $xml = "xml/".substr($anEntry, 0, strlen($anEntry)-4)."xml";
+        $count = 0;
+        $fileHandle = fopen($xml, "r");
+        while (!feof($fileHandle))
+        {
+          $aLine = fgets($fileHandle, 4096); // Length parameter only optional after 4.2.0
+          $count = $count + substr_count($aLine, '<error');
+        }
+        fclose($fileHandle);
+        if ($count > 0)
+        {
+          echo "<tr><td><a href=\"$link\"><b><font color=\"red\">";
+          echo "$anEntry";
+          echo "</font></b></a></td>";
+          echo "<td><b><font color=\"red\">$count</font></b></td></tr>";
+        }
+        else
+        {
+          echo "<tr><td><a href=\"$link\">";
+          echo "$anEntry";
+          echo "</a></td>";
+          echo "<td>$count</td></tr>";
+        }
+      }
+    }
+  ?>
+  
+</table>
+<p></p>
+<br>
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica"> 
+      Console output logs 
+      <?php echo "$label"; ?>
+      </font></b></td>
+  </tr>
+</table>
+<br>
+These <a href="consolelogs/wtptestlog.txt">logs</a> contain the console output captured while 
+running the JUnit automated tests. <br>
+<br>
+
+</body>
+</html>
diff --git a/releng.wtpbuilder/distribution/patches.tests/testScripts/ComputePluginVersion.jar b/releng.wtpbuilder/distribution/patches.tests/testScripts/ComputePluginVersion.jar
new file mode 100644
index 0000000..ad06a45
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.tests/testScripts/ComputePluginVersion.jar
Binary files differ
diff --git a/releng.wtpbuilder/distribution/patches.tests/testScripts/JUNIT.XSL b/releng.wtpbuilder/distribution/patches.tests/testScripts/JUNIT.XSL
new file mode 100644
index 0000000..f632657
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.tests/testScripts/JUNIT.XSL
@@ -0,0 +1,455 @@
+<xsl:stylesheet	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<xsl:output method="html" indent="yes"/>
+<xsl:decimal-format decimal-separator="." grouping-separator="," />
+
+<xsl:template match="testsuites">
+	<HTML>
+		<HEAD>
+    <style type="text/css">
+      body {
+      	font:normal 68% verdana,arial,helvetica;
+      	color:#000000;
+      }
+      table tr td, table tr th {
+          font-size: 68%;
+      }
+      table.details tr th{
+      	font-weight: bold;
+      	text-align:left;
+      	background:#a6caf0;
+      }
+      table.details tr td{
+      	background:#eeeee0;
+      }
+      
+      p {
+      	line-height:1.5em;
+      	margin-top:0.5em; margin-bottom:1.0em;
+      }
+      h1 {
+      	margin: 0px 0px 5px; font: 165% verdana,arial,helvetica
+      }
+      h2 {
+      	margin-top: 1em; margin-bottom: 0.5em; font: bold 125% verdana,arial,helvetica
+      }
+      h3 {
+      	margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica
+      }
+      h4 {
+      	margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
+      }
+      h5 {
+      	margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
+      }
+      h6 {
+      	margin-bottom: 0.5em; font: bold 100% verdana,arial,helvetica
+      }
+      .Error {
+      	font-weight:bold; color:red;
+      }
+      .Failure {
+      	font-weight:bold; color:purple;
+      }
+      .Properties {
+      	text-align:right;
+      }
+      </style>
+      <script language="JavaScript">
+        var TestCases = new Array();
+        var cur;
+        <xsl:for-each select="./testsuite">      
+            <xsl:apply-templates select="properties"/>
+        </xsl:for-each>
+
+       </script>
+       <script language="JavaScript"><![CDATA[
+        function displayProperties (name) {
+          var win = window.open('','JUnitSystemProperties','scrollbars=1,resizable=1');
+          var doc = win.document.open();
+          doc.write("<html><head><title>Properties of " + name + "</title>");
+          doc.write("<style>")
+          doc.write("body {font:normal 68% verdana,arial,helvetica;	color:#000000; }");
+          doc.write("table tr td, table tr th { font-size: 68%; }");
+          doc.write("table.properties { border-collapse:collapse; border-left:solid 1 #cccccc; border-top:solid 1 #cccccc; padding:5px; }");
+          doc.write("table.properties th { text-align:left; border-right:solid 1 #cccccc; border-bottom:solid 1 #cccccc; background-color:#eeeeee; }");
+          doc.write("table.properties td { font:normal; text-align:left; border-right:solid 1 #cccccc; border-bottom:solid 1 #cccccc; background-color:#fffffff; }");
+          doc.write("h3 { margin-bottom: 0.5em; font: bold 115% verdana,arial,helvetica }");
+          doc.write("</style>");
+          doc.write("</head><body>");
+          doc.write("<h3>Properties of " + name + "</h3>");
+          doc.write("<div align=\"right\"><a href=\"javascript:window.close();\">Close</a></div>");
+          doc.write("<table class='properties'>");
+          doc.write("<tr><th>Name</th><th>Value</th></tr>");
+          for (prop in TestCases[name]) {
+            doc.write("<tr><th>" + prop + "</th><td>" + TestCases[name][prop] + "</td></tr>");
+          }
+          doc.write("</table>");
+          doc.write("</body></html>");
+          doc.close();
+          win.focus();
+        }
+      ]]>  
+      </script>
+		</HEAD>
+		<body>
+			<a name="top"></a>
+			<xsl:call-template name="pageHeader"/>	
+			
+			<!-- Summary part -->
+			<xsl:call-template name="summary"/>
+			<hr size="1" width="95%" align="left"/>
+			
+			<!-- Package List part -->
+			<xsl:call-template name="packagelist"/>
+			<hr size="1" width="95%" align="left"/>
+			
+			<!-- For each package create its part -->
+			<xsl:call-template name="packages"/>
+			<hr size="1" width="95%" align="left"/>
+			
+			<!-- For each class create the  part -->
+			<xsl:call-template name="classes"/>
+			
+		</body>
+	</HTML>
+</xsl:template>
+	
+	
+	
+	<!-- ================================================================== -->
+	<!-- Write a list of all packages with an hyperlink to the anchor of    -->
+	<!-- of the package name.                                               -->
+	<!-- ================================================================== -->
+	<xsl:template name="packagelist">	
+		<h2>Packages</h2>
+		Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.
+		<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
+			<xsl:call-template name="testsuite.test.header"/>
+			<!-- list all packages recursively -->
+			<xsl:for-each select="./testsuite[not(./@package = preceding-sibling::testsuite/@package)]">
+				<xsl:sort select="@package"/>
+				<xsl:variable name="testsuites-in-package" select="/testsuites/testsuite[./@package = current()/@package]"/>
+				<xsl:variable name="testCount" select="sum($testsuites-in-package/@tests)"/>
+				<xsl:variable name="errorCount" select="sum($testsuites-in-package/@errors)"/>
+				<xsl:variable name="failureCount" select="sum($testsuites-in-package/@failures)"/>
+				<xsl:variable name="timeCount" select="sum($testsuites-in-package/@time)"/>
+				
+				<!-- write a summary for the package -->
+				<tr valign="top">
+					<!-- set a nice color depending if there is an error/failure -->
+					<xsl:attribute name="class">
+						<xsl:choose>
+							<xsl:when test="$failureCount &gt; 0">Failure</xsl:when>
+							<xsl:when test="$errorCount &gt; 0">Error</xsl:when>
+						</xsl:choose>
+					</xsl:attribute>
+					<td><a href="#{@package}"><xsl:value-of select="@package"/></a></td>
+					<td><xsl:value-of select="$testCount"/></td>
+					<td><xsl:value-of select="$errorCount"/></td>
+					<td><xsl:value-of select="$failureCount"/></td>
+					<td>
+					<xsl:call-template name="display-time">
+						<xsl:with-param name="value" select="$timeCount"/>
+					</xsl:call-template>
+					</td>
+				</tr>
+			</xsl:for-each>
+		</table>		
+	</xsl:template>
+	
+	
+	<!-- ================================================================== -->
+	<!-- Write a package level report                                       -->
+	<!-- It creates a table with values from the document:                  -->
+	<!-- Name | Tests | Errors | Failures | Time                            -->
+	<!-- ================================================================== -->
+	<xsl:template name="packages">
+		<!-- create an anchor to this package name -->
+		<xsl:for-each select="/testsuites/testsuite[not(./@package = preceding-sibling::testsuite/@package)]">
+			<xsl:sort select="@package"/>
+				<a name="{@package}"></a>
+				<h3>Package <xsl:value-of select="@package"/></h3>
+				
+				<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
+					<xsl:call-template name="testsuite.test.header"/>
+			
+					<!-- match the testsuites of this package -->
+					<xsl:apply-templates select="/testsuites/testsuite[./@package = current()/@package]" mode="print.test"/>
+				</table>
+				<a href="#top">Back to top</a>
+				<p/>
+				<p/>
+		</xsl:for-each>
+	</xsl:template>
+	
+	<xsl:template name="classes">
+		<xsl:for-each select="testsuite">
+			<xsl:sort select="@name"/>
+			<!-- create an anchor to this class name -->
+			<a name="{@name}"></a>
+			<h3>TestCase <xsl:value-of select="@name"/></h3>
+			
+			<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
+			  <xsl:call-template name="testcase.test.header"/>
+			  <!--
+			  test can even not be started at all (failure to load the class)
+			  so report the error directly
+			  -->
+				<xsl:if test="./error">
+					<tr class="Error">
+						<td colspan="4"><xsl:apply-templates select="./error"/></td>
+					</tr>
+				</xsl:if>
+				<xsl:apply-templates select="./testcase" mode="print.test"/>
+			</table>
+            <div class="Properties">
+                <a>
+			        <xsl:attribute name="href">javascript:displayProperties('<xsl:value-of select="@package"/>.<xsl:value-of select="@name"/>');</xsl:attribute>
+			        Properties &gt;&gt;
+			    </a>
+            </div>
+			<p/>
+			
+			<a href="#top">Back to top</a>
+		</xsl:for-each>
+	</xsl:template>
+	
+	<xsl:template name="summary">
+		<h2>Summary</h2>
+		<xsl:variable name="testCount" select="sum(testsuite/@tests)"/>
+		<xsl:variable name="errorCount" select="sum(testsuite/@errors)"/>
+		<xsl:variable name="failureCount" select="sum(testsuite/@failures)"/>
+		<xsl:variable name="timeCount" select="sum(testsuite/@time)"/>
+		<xsl:variable name="successRate" select="($testCount - $failureCount - $errorCount) div $testCount"/>
+		<table class="details" border="0" cellpadding="5" cellspacing="2" width="95%">
+		<tr valign="top">
+			<th>Tests</th>
+			<th>Failures</th>
+			<th>Errors</th>
+			<th>Success rate</th>
+			<th>Time</th>
+		</tr>
+		<tr valign="top">
+			<xsl:attribute name="class">
+				<xsl:choose>
+					<xsl:when test="$failureCount &gt; 0">Failure</xsl:when>
+					<xsl:when test="$errorCount &gt; 0">Error</xsl:when>
+				</xsl:choose>
+			</xsl:attribute>
+			<td><xsl:value-of select="$testCount"/></td>
+			<td><xsl:value-of select="$failureCount"/></td>
+			<td><xsl:value-of select="$errorCount"/></td>
+			<td>
+				<xsl:call-template name="display-percent">
+					<xsl:with-param name="value" select="$successRate"/>
+				</xsl:call-template>
+			</td>
+			<td>
+				<xsl:call-template name="display-time">
+					<xsl:with-param name="value" select="$timeCount"/>
+				</xsl:call-template>
+			</td>
+
+		</tr>
+		</table>
+		<table border="0" width="95%">
+		<tr>
+		<td	style="text-align: justify;">
+		Note: <i>failures</i> are anticipated and checked for with assertions while <i>errors</i> are unanticipated.
+		</td>
+		</tr>
+		</table>
+	</xsl:template>
+	
+  <!--
+   Write properties into a JavaScript data structure.
+   This is based on the original idea by Erik Hatcher (erik@hatcher.net)
+   -->
+  <xsl:template match="properties">
+    cur = TestCases['<xsl:value-of select="../@package"/>.<xsl:value-of select="../@name"/>'] = new Array();
+  	<xsl:for-each select="property">
+    <xsl:sort select="@name"/>
+        cur['<xsl:value-of select="@name"/>'] = '<xsl:call-template name="JS-escape"><xsl:with-param name="string" select="@value"/></xsl:call-template>';
+  	</xsl:for-each>
+  </xsl:template>
+	
+<!-- Page HEADER -->
+<xsl:template name="pageHeader">
+	<h1>Unit Test Results</h1>
+	<table width="100%">
+	<tr>
+		<td align="left"></td>
+		<td align="right">Designed for use with <a href='http://www.junit.org'>JUnit</a> and <a href='http://jakarta.apache.org/ant'>Ant</a>.</td>
+	</tr>
+	</table>
+	<hr size="1"/>
+</xsl:template>
+
+<xsl:template match="testsuite" mode="header">
+	<tr valign="top">
+		<th width="80%">Name</th>
+		<th>Tests</th>
+		<th>Errors</th>
+		<th>Failures</th>
+		<th nowrap="nowrap">Time(s)</th>
+	</tr>
+</xsl:template>
+
+<!-- class header -->
+<xsl:template name="testsuite.test.header">
+	<tr valign="top">
+		<th width="80%">Name</th>
+		<th>Tests</th>
+		<th>Errors</th>
+		<th>Failures</th>
+		<th nowrap="nowrap">Time(s)</th>
+	</tr>
+</xsl:template>
+
+<!-- method header -->
+<xsl:template name="testcase.test.header">
+	<tr valign="top">
+		<th>Name</th>
+		<th>Status</th>
+		<th width="80%">Type</th>
+		<th nowrap="nowrap">Time(s)</th>
+	</tr>
+</xsl:template>
+
+
+<!-- class information -->
+<xsl:template match="testsuite" mode="print.test">
+	<tr valign="top">
+		<!-- set a nice color depending if there is an error/failure -->
+		<xsl:attribute name="class">
+			<xsl:choose>
+				<xsl:when test="@failures[.&gt; 0]">Failure</xsl:when>
+				<xsl:when test="@errors[.&gt; 0]">Error</xsl:when>
+			</xsl:choose>
+		</xsl:attribute>
+	
+		<!-- print testsuite information -->
+		<td><a href="#{@name}"><xsl:value-of select="@name"/></a></td>
+		<td><xsl:value-of select="@tests"/></td>
+		<td><xsl:value-of select="@errors"/></td>
+		<td><xsl:value-of select="@failures"/></td>
+		<td>
+			<xsl:call-template name="display-time">
+				<xsl:with-param name="value" select="@time"/>
+			</xsl:call-template>
+		</td>
+	</tr>
+</xsl:template>
+
+<xsl:template match="testcase" mode="print.test">
+	<tr valign="top">
+		<xsl:attribute name="class">
+			<xsl:choose>
+				<xsl:when test="failure | error">Error</xsl:when>
+			</xsl:choose>
+		</xsl:attribute>
+		<td><xsl:value-of select="@name"/></td>
+		<xsl:choose>
+			<xsl:when test="failure">
+				<td>Failure</td>
+				<td><xsl:apply-templates select="failure"/></td>
+			</xsl:when>
+			<xsl:when test="error">
+				<td>Error</td>
+				<td><xsl:apply-templates select="error"/></td>
+			</xsl:when>
+			<xsl:otherwise>
+				<td>Success</td>
+				<td></td>
+			</xsl:otherwise>
+		</xsl:choose>
+		<td>
+			<xsl:call-template name="display-time">
+				<xsl:with-param name="value" select="@time"/>
+			</xsl:call-template>
+		</td>
+	</tr>
+</xsl:template>
+
+
+<xsl:template match="failure">
+	<xsl:call-template name="display-failures"/>
+</xsl:template>
+
+<xsl:template match="error">
+	<xsl:call-template name="display-failures"/>
+</xsl:template>
+
+<!-- Style for the error and failure in the tescase template -->
+<xsl:template name="display-failures">
+	<xsl:choose>
+		<xsl:when test="not(@message)">N/A</xsl:when>
+		<xsl:otherwise>
+			<xsl:value-of select="@message"/>
+		</xsl:otherwise>
+	</xsl:choose>
+	<!-- display the stacktrace -->
+	<code>
+		<p/>
+		<xsl:call-template name="br-replace">
+			<xsl:with-param name="word" select="."/>
+		</xsl:call-template>
+	</code>
+	<!-- the later is better but might be problematic for non-21" monitors... -->
+	<!--pre><xsl:value-of select="."/></pre-->
+</xsl:template>
+
+<xsl:template name="JS-escape">
+	<xsl:param name="string"/>
+	<xsl:choose><!-- something isn't right here, basically all single quotes need to be replaced with backslash-single-quote
+		<xsl:when test="contains($string,'&apos;')">
+			<xsl:value-of select="substring-before($string,'&apos;')"/>
+			\&apos;
+			<xsl:call-template name="JS-escape">
+				<xsl:with-param name="string" select="substring-after($string,'&apos;')"/>
+			</xsl:call-template>
+		</xsl:when> -->
+		<xsl:when test="contains($string,'\')">
+			<xsl:value-of select="substring-before($string,'\')"/>\\<xsl:call-template name="JS-escape">
+				<xsl:with-param name="string" select="substring-after($string,'\')"/>
+			</xsl:call-template>
+		</xsl:when>
+		<xsl:otherwise>
+			<xsl:value-of select="$string"/>
+		</xsl:otherwise>
+	</xsl:choose>
+</xsl:template>
+
+
+<!--
+	template that will convert a carriage return into a br tag
+	@param word the text from which to convert CR to BR tag
+-->
+<xsl:template name="br-replace">
+	<xsl:param name="word"/>
+	<xsl:choose>
+		<xsl:when test="contains($word,'&#xA;')">
+			<xsl:value-of select="substring-before($word,'&#xA;')"/>
+			<br/>
+			<xsl:call-template name="br-replace">
+				<xsl:with-param name="word" select="substring-after($word,'&#xA;')"/>
+			</xsl:call-template>
+		</xsl:when>
+		<xsl:otherwise>
+			<xsl:value-of select="$word"/>
+		</xsl:otherwise>
+	</xsl:choose>
+</xsl:template>
+
+<xsl:template name="display-time">
+	<xsl:param name="value"/>
+	<xsl:value-of select="format-number($value,'0.000')"/>
+</xsl:template>
+
+<xsl:template name="display-percent">
+	<xsl:param name="value"/>
+	<xsl:value-of select="format-number($value,'0.00%')"/>
+</xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/releng.wtpbuilder/distribution/patches.tests/testScripts/junit-tests.xml b/releng.wtpbuilder/distribution/patches.tests/testScripts/junit-tests.xml
new file mode 100644
index 0000000..db800fd
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.tests/testScripts/junit-tests.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<project name="JUnit tests"  basedir="." >
+
+  <property name="library-xml-file" value="${basedir}/plugins/org.eclipse.test_3.1.0/library.xml"/>
+  <import file="${library-xml-file}"/>
+
+  <target name="core-test">
+  	<property name="extraVMargs" value=""/>
+    <antcall target="eclipse-test">
+      <param name="application" value="org.eclipse.test.coretestapplication"/>
+      <param name="extraVMargs" value="${extraVMargs} -Dwtp.autotest.noninteractive=true"/>
+    </antcall>
+  </target>
+
+  <target name="ui-test">
+  	<property name="extraVMargs" value=""/>
+    <antcall target="eclipse-test">
+      <param name="application" value="org.eclipse.test.uitestapplication"/>
+      <param name="extraVMargs" value="${extraVMargs} -Dwtp.autotest.noninteractive=true"/>
+    </antcall>
+  </target>
+
+</project>
diff --git a/releng.wtpbuilder/distribution/patches.tests/testScripts/test.properties b/releng.wtpbuilder/distribution/patches.tests/testScripts/test.properties
new file mode 100644
index 0000000..707c76d
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.tests/testScripts/test.properties
@@ -0,0 +1,14 @@
+# JSF Tests
+org.eclipse.jst.jsf.core.tests=org.eclipse.jst.jsf.core.tests_0.5.0
+org.eclipse.jst.jsf.ui.tests=org.eclipse.jst.jsf.ui.tests_0.5.0
+
+# Tomcat dirs
+tomcat50Dir=jakarta-tomcat-5.0.28
+
+# Jonas dirs
+#jonas432Dir=
+jonas432DirName=JONAS_4_3_2
+
+# SWT
+#swt.lib.path=org.eclipse.swt.motif_3.1.0/os/linux/x86
+swt.lib.path=org.eclipse.swt.win32_3.1.0/os/win32/x86
\ No newline at end of file
diff --git a/releng.wtpbuilder/distribution/patches.tests/testScripts/test.xml b/releng.wtpbuilder/distribution/patches.tests/testScripts/test.xml
new file mode 100644
index 0000000..6d38c73
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.tests/testScripts/test.xml
@@ -0,0 +1,482 @@
+<project name="Automated Eclipse Testing" default="all"  basedir="." >
+
+	<!--properties file containing the plugin directory name including version number-->
+	<property file="test.properties" />
+
+	<!--properties file containing the build information-->
+	<property file="label.properties" />
+
+	<!--default directory where test-eclipse will be installed-->
+	<property name="install" value="${basedir}" />
+
+	<!--name that can be added to report name to identify which platform tests results come from-->
+	<property name="platform" value="" />
+
+	<!-- The root of the eclipse installation -->
+	<property name="eclipse-home" value="${install}/eclipse" />
+
+	<!-- The path to libary.xml -->
+	<!--property name="library-file" value="${eclipse-home}/plugins/${org.eclipse.test}/library.xml" /-->
+
+	<!-- The directory that will contain the xml and html results from the tests that are run -->
+ 	<property name="results" value="${basedir}/results" />
+
+	<!-- jonas install directory -->
+	<property name="jonas432Dir" value="${testDir}/${jonas432DirName}"/>
+
+	<target name="init">
+		<antcall target="setPropertyJOnAS432Dir"/>
+		<antcall target="computePluginVersion"/>
+	</target>
+
+	<target name="setPropertyJOnAS432Dir" unless="jonas432Dir">
+		<property name="jonas432Dir" value="${testDir}/${jonas432DirName}"/>
+	</target>
+
+	<target name="setup" if="clean" description="Reinstall the test Eclipse installation if specified by user">
+		<delete dir="${install}" />
+		<mkdir dir="${install}" />
+		<exec dir="." executable="unzip">
+			<arg line="-o -qq ../downloads/*.zip -d ${install}"/>
+	    	</exec>
+
+		<exec dir="." executable="unzip">
+			<arg line="-o -qq  wtp-wst-tests-feature*.zip -d ${install}"/>
+    		</exec>
+
+  	</target>
+
+	<target name="runapitests" depends="setup">
+		<antcall target="runtests"/>
+	</target>
+
+	<target name="runtests" depends="setup" description="Runs ant on the test.xml for a specified plugin.  Requires a property value setting for testPlugin only if test.properties is not available.  The property testPlugin represents a directory name made up of the plugin id and plugin version.  This directory must contain a valid test.xml.">
+		<available file="${eclipse-home}/plugins/${testPlugin}/test.xml" property="test.xml.exists"/>
+		<antcall target="runtests2"/>
+	</target>
+
+	<target name="runtests2" if="test.xml.exists">
+		<antcall target="runtests-normal"/>
+		<copy file="${eclipse-home}/${report}.xml" tofile="${results}/xml/${report}_${platform}.xml" failonerror="false" />
+		<antcall target="genHtml" />
+	</target>
+
+	<target name="runtests-normal">
+		<ant antfile="${eclipse-home}/plugins/${testPlugin}/test.xml" dir="${eclipse-home}">
+			<property name="library-file" value="${testDir}/junit-tests.xml"/>
+		</ant>
+		<copy file="${eclipse-home}/${report}.xml" tofile="${results}/xml/${report}_${platform}.xml" failonerror="false" />
+		<antcall target="genHtml" />
+	</target>
+
+	<target name="wst-server-tests" description="Runs the org.eclipse.wst.server.*.tests test.xml">
+		<antcall target="runapitests">
+			<param name="testPlugin" value="${org.eclipse.wst.server.core.tests}" />
+			<param name="report" value="org.eclipse.wst.server.core.tests" />
+			<param name="package.includes" value="org.eclipse.wst.server"/>
+		</antcall>
+		<antcall target="runapitests">
+			<param name="testPlugin" value="${org.eclipse.wst.server.ui.tests}" />
+			<param name="report" value="org.eclipse.wst.server.ui.tests" />
+			<param name="package.includes" value="org.eclipse.wst.server"/>
+		</antcall>
+	</target>
+	
+	<target name="wst-monitor-tests" description="Runs the org.eclipse.wst.internet.monitor.*.tests test.xml">
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.wst.internet.monitor.core.tests}" />
+			<param name="report" value="org.eclipse.wst.internet.monitor.core.tests" />
+		</antcall>
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.wst.internet.monitor.ui.tests}" />
+			<param name="report" value="org.eclipse.wst.internet.monitor.ui.tests" />
+		</antcall>
+	</target>
+	
+	<target name="wst-cache-tests" description="Runs the org.eclipse.wst.internet.cache.tests test.xml">
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.wst.internet.cache.tests}" />
+			<param name="report" value="org.eclipse.wst.internet.cache.tests" />
+		</antcall>
+	</target>
+
+	<target name="jst-server-tests" description="Runs the org.eclipse.jst.server.*.tests test.xml">
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.jst.server.core.tests}" />
+			<param name="report" value="org.eclipse.jst.server.core.tests" />
+		</antcall>
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.jst.server.ui.tests}" />
+			<param name="report" value="org.eclipse.jst.server.ui.tests" />
+		</antcall>
+	</target>
+	
+	<target name="jst-server-tomcat-tests" description="Runs the org.eclipse.jst.server.tomcat.*.tests test.xml">
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.jst.server.tomcat.core.tests}" />
+			<param name="report" value="org.eclipse.jst.server.tomcat.core.tests" />
+		</antcall>
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.jst.server.tomcat.ui.tests}" />
+			<param name="report" value="org.eclipse.jst.server.tomcat.ui.tests" />
+		</antcall>
+	</target>
+
+	<target name="jst-server-generic-tests" description="Runs the org.eclipse.jst.server.generic.tests test.xml">
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.jst.server.generic.tests}" />
+			<param name="report" value="org.eclipse.jst.server.generic.tests" />
+		</antcall>
+	</target>
+	
+	<target name="jst-server-geronimo-tests" description="Runs the org.eclipse.jst.server.geronimo.*.tests test.xml">
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.jst.server.geronimo.core.tests}" />
+			<param name="report" value="org.eclipse.jst.server.geronimo.core.tests" />
+		</antcall>
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.jst.server.geronimo.ui.tests}" />
+			<param name="report" value="org.eclipse.jst.server.geronimo.ui.tests" />
+		</antcall>
+	</target>
+
+	<target name="jst-j2ee-core-tests" description="Runs the org.eclipse.jst.j2ee.core.tests test.xml">
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.jst.j2ee.core.tests}" />
+			<param name="report" value="org.eclipse.jst.j2ee.core.tests" />
+		</antcall>
+	</target>
+	
+	<target name="jst-j2ee-tests" description="Runs the org.eclipse.jst.j2ee.tests test.xml">
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.jst.j2ee.tests}" />
+			<param name="report" value="org.eclipse.jst.j2ee.tests" />
+		</antcall>
+	</target>
+	
+	<target name="wst-common-tests" description="Runs the org.eclipse.jst.j2ee.tests test.xml">
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.wst.common.tests}" />
+			<param name="report" value="org.eclipse.wst.common.tests" />
+		</antcall>
+	</target>
+
+	<target name="wst-common-snippets-tests">
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.wst.common.snippets.tests}" />
+			<param name="report" value="org.eclipse.wst.common.snippets.tests" />
+		</antcall>
+	</target>
+
+	<target name="jst-servlet-tests" description="Runs the org.eclipse.jst.servlet.tests test.xml">
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.jst.servlet.tests}" />
+			<param name="report" value="org.eclipse.jst.servlet.tests" />
+		</antcall>
+	</target>
+	
+	<target name="jst-validation-framework-tests" description="Runs the org.eclipse.jst.validation.test test.xml">
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.jst.validation.test}" />
+			<param name="report" value="org.eclipse.jst.validation.test" />
+		</antcall>
+	</target>
+
+	<!-- RDB TESTS -->
+	<target name="wst-rdb-tests" description="Runs test.xml for 
+	    org.eclipse.wst.rdb.tests.dbdefinition">
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.wst.rdb.tests.dbdefinition}" />
+			<param name="report" value="org.eclipse.wst.rdb.tests.dbdefinition" />
+		</antcall>
+		
+	</target>
+    
+	<!-- JSP TESTS -->
+	<target name="jst-jsp-tests" description="Runs test.xml for
+												org.eclipse.jst.jsp.core.tests
+												org.eclipse.jst.jsp.ui.tests
+												org.eclipse.jst.jsp.tests.encoding">
+		<antcall  target="runtests">
+			<param name="testPlugin" value="${org.eclipse.jst.jsp.core.tests}" />
+			<param name="report" value="org.eclipse.jst.jsp.core.tests" />
+		</antcall>
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.jst.jsp.ui.tests}" />
+			<param name="report" value="org.eclipse.jst.jsp.ui.tests" />
+		</antcall>
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.jst.jsp.tests.encoding}" />
+			<param name="report" value="org.eclipse.jst.jsp.tests.encoding" />
+		</antcall>
+	</target>
+
+	<!-- SSE TESTS -->
+	<target name="wst-sse-tests" description="Runs test.xml for
+												org.eclipse.wst.sse.core.tests
+												org.eclipse.wst.sse.ui.tests">
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.wst.sse.core.tests}" />
+			<param name="report" value="org.eclipse.wst.sse.core.tests" />
+		</antcall>
+		
+	    <antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.wst.sse.ui.tests}" />
+			<param name="report" value="org.eclipse.wst.sse.ui.tests" />
+		</antcall>
+	</target>
+	
+	<!-- XML TESTS -->
+	<target name="wst-xml-tests" description="Runs test.xml for
+												org.eclipse.wst.xml.core.tests
+												org.eclipse.wst.xml.ui.tests
+												org.eclipse.wst.xml.tests.encoding
+												org.eclipse.wst.xml.validation.tests">
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.wst.xml.core.tests}" />
+			<param name="report" value="org.eclipse.wst.xml.core.tests" />
+		</antcall>
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.wst.xml.ui.tests}" />
+			<param name="report" value="org.eclipse.wst.xml.ui.tests" />
+		</antcall>
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.wst.xml.tests.encoding}" />
+			<param name="report" value="org.eclipse.wst.xml.tests.encoding" />
+		</antcall>
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.wst.xml.validation.tests}" />
+			<param name="report" value="org.eclipse.wst.xml.validation.tests" />
+		</antcall>
+	</target>
+	
+	<!-- WSDL TESTS -->
+	<target name="wst-wsdl-tests" description="Runs test.xml for 
+	                                             org.eclipse.wst.wsdl.tests
+	                                             org.eclipse.wst.wsdl.validation.tests">
+		<antcall target="runapitests">
+			<param name="testPlugin" value="${org.eclipse.wst.wsdl.tests}" />
+			<param name="report" value="org.eclipse.wst.wsdl.tests" />
+			<param name="package.includes" value="org.eclipse.wst.wsdl"/>
+		</antcall>
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.wst.wsdl.validation.tests}" />
+			<param name="report" value="org.eclipse.wst.wsdl.validation.tests" />
+		</antcall>
+	</target>
+	
+	<!-- WSI TESTS -->
+	<target name="wst-wsi-tests" description="Runs test.xml for 
+	                                             org.eclipse.wst.wsi.tests">
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.wst.wsi.tests}" />
+			<param name="report" value="org.eclipse.wst.wsi.tests" />
+		</antcall>
+	</target>
+
+	<!-- XSD TESTS -->
+	<target name="wst-xsd-tests" description="Runs test.xml for 
+	                                             org.eclipse.wst.xsd.validation.tests">
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.wst.xsd.validation.tests}" />
+			<param name="report" value="org.eclipse.wst.xsd.validation.tests" />
+		</antcall>
+	</target>
+	
+	<!-- HTML TESTS -->
+	<target name="wst-html-tests" description="Runs test.xml for
+												org.eclipse.wst.html.core.tests
+												org.eclipse.wst.html.ui.tests
+												org.eclipse.wst.html.tests.encoding">
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.wst.html.core.tests}" />
+			<param name="report" value="org.eclipse.wst.html.core.tests" />
+		</antcall>
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.wst.html.ui.tests}" />
+			<param name="report" value="org.eclipse.wst.html.ui.tests" />
+		</antcall>
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.wst.html.tests.encoding}" />
+			<param name="report" value="org.eclipse.wst.html.tests.encoding" />
+		</antcall>
+	</target>
+
+	<!-- DTD Tests -->
+	<target name="wst-dtd-tests">
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.wst.dtd.ui.tests}" />
+			<param name="report" value="org.eclipse.wst.dtd.ui.tests" />
+		</antcall>
+	</target>
+
+	<!-- CSS TESTS -->
+	<target name="wst-css-tests" description="Runs test.xml for
+												org.eclipse.wst.css.core.tests
+												org.eclipse.wst.css.ui.tests
+												org.eclipse.wst.css.tests.encoding">
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.wst.css.core.tests}" />
+			<param name="report" value="org.eclipse.wst.css.core.tests" />
+		</antcall>
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.wst.css.tests.encoding}" />
+			<param name="report" value="org.eclipse.wst.css.tests.encoding" />
+		</antcall>
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.wst.css.ui.tests}" />
+			<param name="report" value="org.eclipse.wst.css.ui.tests" />
+		</antcall>
+	</target>
+
+	<!-- JSF TESTS -->
+	<target name="jsf-tests" description="Runs test.xml for org.eclipse.jst.jsf.core.tests, org.eclipse.jst.jsf.ui.tests">
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.jst.jsf.core.tests}" />
+			<param name="report" value="org.eclipse.jst.jsf.core.tests" />
+		</antcall>
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.jst.jsf.ui.tests}" />
+			<param name="report" value="org.eclipse.jst.jsf.ui.tests" />
+		</antcall>		
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.jst.jsf.metadata.tests}" />
+			<param name="report" value="org.eclipse.jst.jsf.metadata.tests" />
+		</antcall>			
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.jst.jsf.contentassist.tests}" />
+			<param name="report" value="org.eclipse.jst.jsf.contentassist.tests" />
+		</antcall>
+	</target>
+
+	<!-- WS TESTS -->
+
+	<target name="wst-ws-tests" description="Runs the org.eclipse.wst.ws.tests test.xml">
+			<antcall target="runtests">
+				<param name="testPlugin" value="${org.eclipse.wst.ws.tests}" />
+				<param name="report" value="org.eclipse.wst.ws.tests" />
+			</antcall>
+		</target>
+	
+	<target name="jst-ws-tests" description="Runs the org.eclipse.jst.ws.tests test.xml">
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.jst.ws.tests}" />
+			<param name="report" value="org.eclipse.jst.ws.tests" />
+		</antcall>
+	</target>
+
+	<!-- Faceted Project Framework Tests -->
+	
+	<target name="wst-facets-tests" description="Runs the Faceted Project Framework tests.">
+		<antcall target="runtests">
+			<param name="testPlugin" value="${org.eclipse.wst.common.project.facet.core.tests}" />
+			<param name="report" value="org.eclipse.wst.common.project.facet.core.tests" />
+		</antcall>
+	</target>
+	
+	<target name="all" depends="init">
+		<property file="test2.properties"/>
+
+		<echo message="Starting WTP Unit Tests"/>
+		
+		<echo message="Starting wst-server-tests"/>
+		<antcall target="wst-server-tests"/>
+		
+        <echo message="Starting wst-monitor-tests"/>
+		<antcall target="wst-monitor-tests"/>
+			
+        <echo message="Starting wst-cache-tests"/>
+		<antcall target="wst-cache-tests"/>
+		
+        <echo message="Starting wst-common-tests"/>
+		<antcall target="wst-common-tests" />
+		
+		<echo message="Starting wst-common-snippets-tests"/>
+		<antcall target="wst-common-snippets-tests"/>
+ 
+		<echo message="Starting wst-rdb-tests"/>
+		<antcall target="wst-rdb-tests"/>
+	    
+        <echo message="Starting wst-sse-tests"/>
+		<antcall target="wst-sse-tests" />
+        	
+        <echo message="Starting wst-xml-tests"/>
+		<antcall target="wst-xml-tests" />
+		
+        <echo message="Starting wst-wsdl-tests"/>
+		<antcall target="wst-wsdl-tests" />
+
+        <echo message="Starting wst-wsi-tests"/>
+		<antcall target="wst-wsi-tests" />
+
+        <echo message="Starting wst-xsd-tests"/>
+        <antcall target="wst-xsd-tests" />
+
+        <echo message="Starting wst-html-tests"/>
+        <antcall target="wst-html-tests" />
+		
+		<echo message="Starting wst-dtd-tests"/>
+		<antcall target="wst-dtd-tests" />
+		
+        <echo message="Starting wst-css-tests"/>
+        <antcall target="wst-css-tests" />
+
+        <echo message="Starting wst-ws-tests"/>
+		<antcall target="wst-ws-tests" />
+
+		
+        <echo message="Starting jst-server-tests"/>
+		<antcall target="jst-server-tests"/>
+
+        <echo message="Starting jst-server-tomcat-tests"/>
+		<antcall target="jst-server-tomcat-tests"/>
+
+        <echo message="Starting jst-server-geronimo-tests"/>
+		<antcall target="jst-server-geronimo-tests"/>
+		
+        <echo message="Starting jst-server-generic-tests"/>
+		<antcall target="jst-server-generic-tests"/>
+		
+        <echo message="Starting jst-j2ee-core-tests"/>
+		<antcall target="jst-j2ee-core-tests" />
+		
+        <echo message="Starting jst-j2ee-tests"/>
+		<antcall target="jst-j2ee-tests" />
+
+        <echo message="Starting jst-servlet-tests"/>
+		<antcall target="jst-servlet-tests" />
+
+        <echo message="Starting jst-validation-framework-tests"/>
+		<antcall target="jst-validation-framework-tests" />
+
+        <echo message="Starting jst-jsp-tests"/>
+		<antcall target="jst-jsp-tests" /> 
+
+        <echo message="Starting jst-ws-tests"/>
+		<antcall target="jst-ws-tests" />
+
+        <echo message="Starting wst-facets-tests"/>
+		<antcall target="wst-facets-tests" />
+		
+		<echo message="Ended WTP Unit Tests"/>	
+
+		<echo message="Starting JSF Tests"/>		
+		<antcall target="jsf-tests" />
+
+	</target>
+
+	<target name="genHtml" description="Generates HTML results with provided JUNIT.XSL provided" unless="genHtml.disable">
+		<style style="JUNIT.XSL" basedir="${results}/xml" destdir="${results}/html" />
+	</target>
+
+	<target name="computePluginVersion">
+		<java classname="org.eclipse.wtp.releng.test.ComputePluginVersion">
+			<classpath>
+				<pathelement location="ComputePluginVersion.jar"/>
+			</classpath>
+			<arg value="${eclipse-home}/plugins"/>
+			<arg value="test2.properties"/>
+		</java>
+	</target>
+
+</project>
\ No newline at end of file
diff --git a/releng.wtpbuilder/distribution/patches.tests/testdependency.xml b/releng.wtpbuilder/distribution/patches.tests/testdependency.xml
new file mode 100644
index 0000000..dc864aa
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.tests/testdependency.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+<!-- ====================================================================== 
+    Properties that must be passed to this script:
+    base.install.dir
+	dependencyTargets
+	local.cache.dir
+	dependency.properties
+	baseos
+	basews
+	basearch
+                                                               
+     ====================================================================== -->
+<project name="test" default="get">
+
+	<target name="get">
+		<antcall target="getAndInstall">
+			<param name="groupId" value="emf" />
+		</antcall>
+		<antcall target="getAndInstall">
+			<param name="groupId" value="gef" />
+		</antcall>
+		<antcall target="getAndInstall">
+			<param name="groupId" value="jem" />
+		</antcall>
+		<antcall target="getAndInstall">
+			<param name="groupId" value="eclipse" />
+		</antcall>
+		<antcall target="getAndInstall">
+			<param name="groupId" value="eclipseTestFramework" />
+		</antcall>
+		<antcall target="getAndInstall">
+			<param name="groupId" value="tomcat.5" />
+		</antcall>
+		<antcall target="getAndInstall">
+			<param name="groupId" value="jonas.4" />
+		</antcall>
+		<antcall target="getAndInstall">
+			<param name="groupId" value="oagis.release" />
+		</antcall>
+		<antcall target="getAndInstall">
+			<param name="groupId" value="oagis.wsdl" />
+		</antcall>
+		<antcall target="getAndInstall">
+			<param name="groupId" value="wtp" />
+		</antcall>
+		<antcall target="getAndInstall">
+			<param name="groupId" value="wtp-wst-test" />
+		</antcall>
+		<antcall target="getAndInstall">
+			<param name="groupId" value="wtp-jst-test" />
+		</antcall>
+
+	</target>
+
+
+	<target name="getAndInstall">
+		<ant antfile="${dependencyTargets}" target="checkDependency">
+			<property name="groupId" value="${groupId}" />
+		</ant>
+		<ant antfile="${dependencyTargets}" target="installDependency">
+			<property name="groupId" value="${groupId}" />
+			<property name="install.destination" value="${base.install.dir}" />
+		</ant>
+	</target>
+
+
+
+
+</project>
+
diff --git a/releng.wtpbuilder/distribution/patches.upload/build.xml b/releng.wtpbuilder/distribution/patches.upload/build.xml
new file mode 100644
index 0000000..281c101
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.upload/build.xml
Binary files differ
diff --git a/releng.wtpbuilder/distribution/patches.upload/fallback.upload.properties b/releng.wtpbuilder/distribution/patches.upload/fallback.upload.properties
new file mode 100644
index 0000000..8cb2900
--- /dev/null
+++ b/releng.wtpbuilder/distribution/patches.upload/fallback.upload.properties
@@ -0,0 +1,12 @@
+uploadUser=david_williams
+uploadPassword="This is not really used since ssh login is assumed (required)"
+uploadServer=download.eclipse.org
+uploadRemoteDirectory=/home/data/users/david_williams/downloads/webtools/patches/drops
+
+# rsyncRootPrefix should be empty for linux machines.
+# Windows using cygwin will needs something like /cygdrive/G/
+#  for what ever drive or directory is parent of build.home
+rsyncRootPrefix=
+
+
+build.upload=true
\ No newline at end of file