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
