diff --git a/releng.wtpbuilder/buildtemplates/build.xml b/releng.wtpbuilder/buildtemplates/build.xml
new file mode 100644
index 0000000..78d7438
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/build.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- ====================================================================== 
+
+##########################################################################
+# Copyright (c) 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials 
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+#     IBM Corporation - initial API and implementation
+##########################################################################
+
+
+     Jan 12, 2009 4:01:53 AM                                                        
+
+     buildtemplates    
+     
+     Some simple "get started" scripts to 
+     build files for simple cases.
+     
+     These algorithms/heuristics assume there's only one 
+     feature being worked with per component
+
+     Note: 
+      Nothing is done for "dependancies". 
+               
+     Note: 
+      In components, the build.properties and dependency.xml files can stay as they are in templates
+      (they differ, very slightly from each other). 
+
+     Note: 
+      foldername pattern:
+
+      component/%shortname%
+      component/%shortname%_sdk
+      component/%shortname%_tests
+      distribution/%shortname%.build
+      distribution/%shortname%.site
+      distribution/%shortname%.tests          
+                   
+     davidw                                                                
+     ====================================================================== -->
+<project name="project" default="default">
+	<description>
+            script to create new component build
+    </description>
+
+	<property name="componentpropertyfile" value="jaxws.properties" />
+
+
+	<target name="default" depends="replaceTokens">
+		<property file="${componentpropertyfile}" />
+		<echo message="  Creating build files for ${shortname}" />
+
+		<move todir="../temp/components/${shortname}">
+			<fileset dir="../temp/components/template" />
+		</move>
+		<move todir="../temp/components/${shortname}_sdk">
+			<fileset dir="../temp/components/template_sdk" />
+		</move>
+		<move todir="../temp/components/${shortname}_tests">
+			<fileset dir="../temp/components/template_tests" />
+		</move>
+		<move todir="../temp/distribution/${shortname}.build">
+			<fileset dir="../temp/distribution/template.build" />
+		</move>
+		<move todir="../temp/distribution/${shortname}.site">
+			<fileset dir="../temp/distribution/template.site" />
+		</move>
+		<move todir="../temp/distribution/${shortname}.tests">
+			<fileset dir="../temp/distribution/template.tests" />
+		</move>
+	</target>
+
+	<target name="replaceTokens" depends="copyToTemp" description="replaces tokens based on property file">
+		<replace dir="../temp" value="error-no-value-specified" propertyFile="${componentpropertyfile}">
+			<replacefilter token="@featurename@" property="featurename" />
+			<replacefilter token="@zipprefix@" property="zipprefix" />
+			<replacefilter token="@relengmapsenv@" property="relengmapsenv" />
+			<replacefilter token="@shortname@" property="shortname" />
+			<replacefilter token="@longdescription@" property="longdescription" />
+			<replacefilter token="@testplugin@" property="testplugin" />
+		</replace>
+
+	</target>
+
+	<target name="copyToTemp">
+		<copy todir="../temp" overwrite="true">
+			<fileset dir="../buildtemplates" excludes="build.xml, variables.txt, *.properties" />
+		</copy>
+	</target>
+
+</project>
diff --git a/releng.wtpbuilder/buildtemplates/components/template/build.properties b/releng.wtpbuilder/buildtemplates/components/template/build.properties
new file mode 100644
index 0000000..1232026
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/components/template/build.properties
@@ -0,0 +1,45 @@
+###############################################################################
+# Copyright (c) 2003, 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials 
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+
+# This property file is used automatically by the PDE build process
+
+runPackager=true
+
+# This is a subdirectory of $buildDirectory
+# Set collectingFolder and archivePrefix to . if you want to create archives without
+# trailing eclipse in the paths of the included files
+collectingFolder=eclipse
+logExtension=.xml
+# The prefix that will be used in the generated archive.
+# Does not make sense to use a different archivePrefix than collectingFolder, 
+# because zip wouldn't find any files to include into the target zip otherwise
+archivePrefix=eclipse
+
+# 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=false
+
+##################################################
+# Asks the compiler for verbose output.  This should be set to true in order for *.bin.log files to be generated when
+# using the JDT Compiler Adapter to compile.
+javacVerbose=true
+
+sign=true
+
+#############################################################
+
+# Properties introduced in 3.5 M3 (PDE base builder R35_M2). See
+# http://aniefer.blogspot.com/2008/10/sorting-bundles-and-parallel.html
+
+flattenDependencies=true
+parallelCompilation=true
diff --git a/releng.wtpbuilder/buildtemplates/components/template/customTargets.xml b/releng.wtpbuilder/buildtemplates/components/template/customTargets.xml
new file mode 100644
index 0000000..80a94e2
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/components/template/customTargets.xml
@@ -0,0 +1,319 @@
+<project
+    name="PDECustomTargets"
+    default="noDefault"
+    basedir=".">
+    <!--
+        = = = standard properties pattern = = = Note to be
+        cross-platform, "environment variables" are only appropriate for
+        some variables, e.g. ones we set, since properties are case
+        sensitive, even if the environment variables on your operating
+        system are not, e.g. it will be ${env.Path} not ${env.PATH} on
+        Windows
+    -->
+    <property
+        environment="env"/>
+    <!--
+        Let users override standard properties, if desired. If
+        directory, file, or some properties do not exist, then standard
+        properties will be used.
+    -->
+    <property
+        file="${env.LOCAL_BUILD_PROPERTIES_DIR}/${ant.project.name}.properties"/>
+
+    <!-- let this project specify properties, if not already set -->
+    <property
+        file="build.properties"/>
+    <fail
+        message="dependancy.properties must be specified by distribution script"
+        unless="dependency.properties"/>
+    <fail
+        unless="buildDirectory"
+        message="buildDirectory must be set"/>
+    <echo
+        message="buildDirectory: ${buildDirectory}"/>
+    <!--
+        Run a given ${target} on all elements being built Add on <ant>
+        task for each top level element being built.
+    -->
+    <target
+        name="allElements">
+        <echo
+            level="info"
+            message="Target:${target} "/>
+        <echo
+            level="debug"
+            message="basedir: ${basedir}"/>
+        <echo
+            level="info"
+            message="component: ${component}"/>
+        <echo
+            level="debug"
+            message="buildDirectory: ${buildDirectory}"/>
+        <echo
+            level="debug"
+            message="baseLocation: ${baseLocation}"/>
+        <echo
+            level="debug"
+            message="generic target: ${genericTargets}"/>
+        <echo
+            message="compilerArg: ${compilerArg}"/>
+        <echo
+            message="individualSourceBundles: ${individualSourceBundles}"/>
+        <ant
+            antfile="${genericTargets}"
+            target="${target}">
+            <property
+                name="type"
+                value="feature"/>
+            <property
+                name="id"
+                value="@featurename@.feature"/>
+        </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
+    -->
+    <target
+        name="assemble.@featurename@.feature">
+        <property
+            name="archiveName"
+            value="@zipprefix@-${buildLabel}.zip"/>
+        <ant
+            antfile="${assembleScriptName}"
+            dir="${buildDirectory}"/>
+    </target>
+    <target
+        name="prePackage"/>
+    <target
+        name="postPackage">
+        <property
+            name="archiveName"
+            value="@zipprefix@-${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 repository
+    -->
+    <target
+        name="getMapFiles">
+        <ant
+            antfile="${wtp.builder.home}/scripts/build/maptasks.xml"
+            target="maputil">
+            <property
+                name="mapcomponent"
+                value="${env.RELENG}"/>
+            <property
+                name="mapTag"
+                value="${mapVersionTag}"/>
+        </ant>
+        <ant
+            antfile="${wtp.builder.home}/scripts/build/maptasks.xml"
+            target="maputil">
+            <property
+                name="mapcomponent"
+                value="${env.@relengmapsenv@}"/>
+            <property
+                name="mapTag"
+                value="${mapVersionTag}"/>
+        </ant>
+    </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"/>
+        <echo
+            level="debug"
+            message="ant.file: ${ant.file}"/>
+        <echo
+            level="debug"
+            message="component.dir: ${component.dir}"/>
+
+        <!-- Get the dependencies -->
+        <antcall
+            target="getDependencies"/>
+    </target>
+    <!--
+        =====================================================================
+    -->
+    <!-- Get the dependencies based on releng maps -->
+    <!--
+        =====================================================================
+    -->
+    <target
+        name="getDependencies">
+        <ant
+            antfile="${component.dir}/dependency.xml"
+            target="get">
+            <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">
+        <echo
+            message="buildDirectory: ${buildDirectory}"/>
+        <customizeAccessRules
+            bundleDirectory="${buildDirectory}/plugins"/>
+    </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"/>
+        <echo
+            level="debug"
+            message="logExtension: ${logExtension}"/>
+        <antcall
+            target="allElements">
+            <param
+                name="target"
+                value="gatherLogs"/>
+            <param
+                name="logExtension"
+                value="${logExtension}"/>
+        </antcall>
+        <unzip
+            dest="${buildDirectory}/${buildLabel}/compilelogs"
+            overwrite="true">
+            <fileset
+                dir="${buildDirectory}/features/@featurename@.feature">
+                <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
+            level="error"
+            message="You must specify a target when invoking this file"/>
+    </target>
+</project>
\ No newline at end of file
diff --git a/releng.wtpbuilder/buildtemplates/components/template/dependency.xml b/releng.wtpbuilder/buildtemplates/components/template/dependency.xml
new file mode 100644
index 0000000..9ddeb56
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/components/template/dependency.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0"?>
+    <!--
+        ======================================================================
+        Properties that must be passed to this script: base.install.dir
+        dependencyTargets local.cache.dir dependency.properties
+        ======================================================================
+    -->
+<project
+    name="test"
+    default="get">
+    <target
+        name="get">
+        <!--
+            read in this properties, just so we can make sure our
+            requested pre-reqs are defined, which we do later with
+            statements such if="${groupId}.url"
+        -->
+        <property
+            file="${dependency.properties}"/>
+        <antcall
+            target="getAndInstall">
+            <param
+                name="groupId"
+                value="emf"/>
+        </antcall>
+        <antcall
+            target="getAndInstall">
+            <param
+                name="groupId"
+                value="emfxsd"/>
+        </antcall>
+        <antcall
+            target="getAndInstall">
+            <param
+                name="groupId"
+                value="gef"/>
+        </antcall>
+        <antcall
+            target="getAndInstall">
+            <param
+                name="groupId"
+                value="eclipse"/>
+        </antcall>
+        <antcall
+            target="getAndInstall">
+            <param
+                name="groupId"
+                value="xml"/>
+        </antcall>
+    </target>
+    <target
+        name="getAndInstall"
+        if="${groupId}.url">
+        <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>
\ No newline at end of file
diff --git a/releng.wtpbuilder/buildtemplates/components/template_sdk/build.properties b/releng.wtpbuilder/buildtemplates/components/template_sdk/build.properties
new file mode 100644
index 0000000..fef57d7
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/components/template_sdk/build.properties
@@ -0,0 +1,45 @@
+###############################################################################
+# Copyright (c) 2003, 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials 
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+
+# This property file is used automatically by the PDE build process
+
+runPackager=true
+
+# This is a subdirectory of $buildDirectory
+# Set collectingFolder and archivePrefix to . if you want to create archives without
+# trailing eclipse in the paths of the included files
+collectingFolder=eclipse
+logExtension=.xml
+# The prefix that will be used in the generated archive.
+# Does not make sense to use a different archivePrefix than collectingFolder, 
+# because zip wouldn't find any files to include into the target zip otherwise
+archivePrefix=eclipse
+
+# 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=false
+
+##################################################
+# Asks the compiler for verbose output.  This should be set to true in order for *.bin.log files to be generated when
+# using the JDT Compiler Adapter to compile.
+javacVerbose=true
+
+sign=true
+
+#############################################################
+
+# Properties introduced in 3.5 M3 (PDE base builder R35_M2). See
+# http://aniefer.blogspot.com/2008/10/sorting-bundles-and-parallel.html
+
+flattenDependencies=true
+parallelCompilation=true
\ No newline at end of file
diff --git a/releng.wtpbuilder/buildtemplates/components/template_sdk/customTargets.xml b/releng.wtpbuilder/buildtemplates/components/template_sdk/customTargets.xml
new file mode 100644
index 0000000..4c7bdd9
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/components/template_sdk/customTargets.xml
@@ -0,0 +1,319 @@
+<project
+    name="PDECustomTargets"
+    default="noDefault"
+    basedir=".">
+    <!--
+        = = = standard properties pattern = = = Note to be
+        cross-platform, "environment variables" are only appropriate for
+        some variables, e.g. ones we set, since properties are case
+        sensitive, even if the environment variables on your operating
+        system are not, e.g. it will be ${env.Path} not ${env.PATH} on
+        Windows
+    -->
+    <property
+        environment="env"/>
+    <!--
+        Let users override standard properties, if desired. If
+        directory, file, or some properties do not exist, then standard
+        properties will be used.
+    -->
+    <property
+        file="${env.LOCAL_BUILD_PROPERTIES_DIR}/${ant.project.name}.properties"/>
+
+    <!-- let this project specify properties, if not already set -->
+    <property
+        file="build.properties"/>
+    <fail
+        message="dependancy.properties must be specified by distribution script"
+        unless="dependency.properties"/>
+    <fail
+        unless="buildDirectory"
+        message="buildDirectory must be set"/>
+    <echo
+        message="buildDirectory: ${buildDirectory}"/>
+    <!--
+        Run a given ${target} on all elements being built Add on <ant>
+        task for each top level element being built.
+    -->
+    <target
+        name="allElements">
+        <echo
+            level="info"
+            message="Target:${target} "/>
+        <echo
+            level="debug"
+            message="basedir: ${basedir}"/>
+        <echo
+            level="info"
+            message="component: ${component}"/>
+        <echo
+            level="debug"
+            message="buildDirectory: ${buildDirectory}"/>
+        <echo
+            level="debug"
+            message="baseLocation: ${baseLocation}"/>
+        <echo
+            level="debug"
+            message="generic target: ${genericTargets}"/>
+        <echo
+            message="compilerArg: ${compilerArg}"/>
+        <echo
+            message="individualSourceBundles: ${individualSourceBundles}"/>
+        <ant
+            antfile="${genericTargets}"
+            target="${target}">
+            <property
+                name="type"
+                value="feature"/>
+            <property
+                name="id"
+                value="@featurename@_sdk.feature"/>
+        </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
+    -->
+    <target
+        name="assemble.@featurename@_sdk.feature">
+        <property
+            name="archiveName"
+            value="@zipprefix@-${buildLabel}.zip"/>
+        <ant
+            antfile="${assembleScriptName}"
+            dir="${buildDirectory}"/>
+    </target>
+    <target
+        name="prePackage"/>
+    <target
+        name="postPackage">
+        <property
+            name="archiveName"
+            value="@zipprefix@-${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 repository
+        -->
+    <target
+        name="getMapFiles">
+        <ant
+            antfile="${wtp.builder.home}/scripts/build/maptasks.xml"
+            target="maputil">
+            <property
+                name="mapcomponent"
+                value="${env.RELENG}"/>
+            <property
+                name="mapTag"
+                value="${mapVersionTag}"/>
+        </ant>
+        <ant
+            antfile="${wtp.builder.home}/scripts/build/maptasks.xml"
+            target="maputil">
+            <property
+                name="mapcomponent"
+                value="${env.@relengmapsenv@}"/>
+            <property
+                name="mapTag"
+                value="${mapVersionTag}"/>
+        </ant>
+    </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"/>
+        <echo
+            level="debug"
+            message="ant.file: ${ant.file}"/>
+        <echo
+            level="debug"
+            message="component.dir: ${component.dir}"/>
+
+        <!-- Get the dependencies -->
+        <antcall
+            target="getDependencies"/>
+    </target>
+    <!--
+        =====================================================================
+    -->
+    <!-- Get the dependencies based on releng maps -->
+    <!--
+        =====================================================================
+    -->
+    <target
+        name="getDependencies">
+        <ant
+            antfile="${component.dir}/dependency.xml"
+            target="get">
+            <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">
+        <echo
+            message="buildDirectory: ${buildDirectory}"/>
+        <customizeAccessRules
+            bundleDirectory="${buildDirectory}/plugins"/>
+    </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"/>
+        <echo
+            level="debug"
+            message="logExtension: ${logExtension}"/>
+        <antcall
+            target="allElements">
+            <param
+                name="target"
+                value="gatherLogs"/>
+            <param
+                name="logExtension"
+                value="${logExtension}"/>
+        </antcall>
+        <unzip
+            dest="${buildDirectory}/${buildLabel}/compilelogs"
+            overwrite="true">
+            <fileset
+                dir="${buildDirectory}/features/@featurename@_sdk.feature">
+                <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
+            level="error"
+            message="You must specify a target when invoking this file"/>
+    </target>
+</project>
\ No newline at end of file
diff --git a/releng.wtpbuilder/buildtemplates/components/template_sdk/dependency.xml b/releng.wtpbuilder/buildtemplates/components/template_sdk/dependency.xml
new file mode 100644
index 0000000..191c279
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/components/template_sdk/dependency.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0"?>
+    <!--
+        ======================================================================
+        Properties that must be passed to this script: base.install.dir
+        dependencyTargets local.cache.dir dependency.properties
+        ======================================================================
+    -->
+<project
+    name="test"
+    default="get">
+    <target
+        name="get">
+        <!--
+            read in this properties, just so we can make sure our
+            requested pre-reqs are defined
+        -->
+        <property
+            file="${dependency.properties}"/>
+        <antcall
+            target="getAndInstall">
+            <param
+                name="groupId"
+                value="orbitthirdpartymap"/>
+            <param
+                name="base.install.dir"
+                value="${buildDirectory}/maps/${env.RELENG}/maps/"/>
+        </antcall>
+        <antcall
+            target="getAndInstall">
+            <param
+                name="groupId"
+                value="eclipse"/>
+        </antcall>
+        <antcall
+            target="getAndInstall">
+            <param
+                name="groupId"
+                value="xml"/>
+        </antcall>
+    </target>
+    <target
+        name="getAndInstall"
+        if="${groupId}.url">
+        <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>
\ No newline at end of file
diff --git a/releng.wtpbuilder/buildtemplates/components/template_tests/build.properties b/releng.wtpbuilder/buildtemplates/components/template_tests/build.properties
new file mode 100644
index 0000000..43b2ed3
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/components/template_tests/build.properties
@@ -0,0 +1,45 @@
+###############################################################################
+# Copyright (c) 2003, 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials 
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+#     IBM Corporation - initial API and implementation
+###############################################################################
+
+# This property file is used automatically by the PDE build process
+
+runPackager=true
+
+# This is a subdirectory of $buildDirectory
+# Set collectingFolder and archivePrefix to . if you want to create archives without
+# trailing eclipse in the paths of the included files
+collectingFolder=eclipse
+logExtension=.xml
+# The prefix that will be used in the generated archive.
+# Does not make sense to use a different archivePrefix than collectingFolder, 
+# because zip wouldn't find any files to include into the target zip otherwise
+archivePrefix=eclipse
+
+# 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=false
+
+##################################################
+# Asks the compiler for verbose output.  This should be set to true in order for *.bin.log files to be generated when
+# using the JDT Compiler Adapter to compile.
+javacVerbose=true
+
+sign=false
+
+#############################################################
+
+# Properties introduced in 3.5 M3 (PDE base builder R35_M2). See
+# http://aniefer.blogspot.com/2008/10/sorting-bundles-and-parallel.html
+
+flattenDependencies=true
+parallelCompilation=true
diff --git a/releng.wtpbuilder/buildtemplates/components/template_tests/customTargets.xml b/releng.wtpbuilder/buildtemplates/components/template_tests/customTargets.xml
new file mode 100644
index 0000000..68dbdf4
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/components/template_tests/customTargets.xml
@@ -0,0 +1,319 @@
+<project
+    name="PDECustomTargets"
+    default="noDefault"
+    basedir=".">
+    <!--
+        = = = standard properties pattern = = = Note to be
+        cross-platform, "environment variables" are only appropriate for
+        some variables, e.g. ones we set, since properties are case
+        sensitive, even if the environment variables on your operating
+        system are not, e.g. it will be ${env.Path} not ${env.PATH} on
+        Windows
+    -->
+    <property
+        environment="env"/>
+    <!--
+        Let users override standard properties, if desired. If
+        directory, file, or some properties do not exist, then standard
+        properties will be used.
+    -->
+    <property
+        file="${env.LOCAL_BUILD_PROPERTIES_DIR}/${ant.project.name}.properties"/>
+
+    <!-- let this project specify properties, if not already set -->
+    <property
+        file="build.properties"/>
+    <fail
+        message="dependancy.properties must be specified by distribution script"
+        unless="dependency.properties"/>
+    <fail
+        unless="buildDirectory"
+        message="buildDirectory must be set"/>
+    <echo
+        message="buildDirectory: ${buildDirectory}"/>
+    <!--
+        Run a given ${target} on all elements being built Add on <ant>
+        task for each top level element being built.
+    -->
+    <target
+        name="allElements">
+        <echo
+            level="info"
+            message="Target:${target} "/>
+        <echo
+            level="debug"
+            message="basedir: ${basedir}"/>
+        <echo
+            level="info"
+            message="component: ${component}"/>
+        <echo
+            level="debug"
+            message="buildDirectory: ${buildDirectory}"/>
+        <echo
+            level="debug"
+            message="baseLocation: ${baseLocation}"/>
+        <echo
+            level="debug"
+            message="generic target: ${genericTargets}"/>
+        <echo
+            message="compilerArg: ${compilerArg}"/>
+        <echo
+            message="individualSourceBundles: ${individualSourceBundles}"/>
+        <ant
+            antfile="${genericTargets}"
+            target="${target}">
+            <property
+                name="type"
+                value="feature"/>
+            <property
+                name="id"
+                value="@featurename@_tests.feature"/>
+        </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
+    -->
+    <target
+        name="assemble.@featurename@_tests.feature">
+        <property
+            name="archiveName"
+            value="@zipprefix@-${buildLabel}.zip"/>
+        <ant
+            antfile="${assembleScriptName}"
+            dir="${buildDirectory}"/>
+    </target>
+    <target
+        name="prePackage"/>
+    <target
+        name="postPackage">
+        <property
+            name="archiveName"
+            value="@zipprefix@-${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 repository
+    -->
+    <target
+        name="getMapFiles">
+        <ant
+            antfile="${wtp.builder.home}/scripts/build/maptasks.xml"
+            target="maputil">
+            <property
+                name="mapcomponent"
+                value="${env.RELENG}"/>
+            <property
+                name="mapTag"
+                value="${mapVersionTag}"/>
+        </ant>
+        <ant
+            antfile="${wtp.builder.home}/scripts/build/maptasks.xml"
+            target="maputil">
+            <property
+                name="mapcomponent"
+                value="${env.@relengmapsenv@}"/>
+            <property
+                name="mapTag"
+                value="${mapVersionTag}"/>
+        </ant>
+    </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"/>
+        <echo
+            level="debug"
+            message="ant.file: ${ant.file}"/>
+        <echo
+            level="debug"
+            message="component.dir: ${component.dir}"/>
+
+        <!-- Get the dependencies -->
+        <antcall
+            target="getDependencies"/>
+    </target>
+    <!--
+        =====================================================================
+    -->
+    <!-- Get the dependencies based on releng maps -->
+    <!--
+        =====================================================================
+    -->
+    <target
+        name="getDependencies">
+        <ant
+            antfile="${component.dir}/dependency.xml"
+            target="get">
+            <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">
+        <echo
+            message="buildDirectory: ${buildDirectory}"/>
+        <customizeAccessRules
+            bundleDirectory="${buildDirectory}/plugins"/>
+    </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}/testcompilelogs"/>
+        <echo
+            level="debug"
+            message="logExtension: ${logExtension}"/>
+        <antcall
+            target="allElements">
+            <param
+                name="target"
+                value="gatherLogs"/>
+            <param
+                name="logExtension"
+                value="${logExtension}"/>
+        </antcall>
+        <unzip
+            dest="${buildDirectory}/${buildLabel}/testcompilelogs"
+            overwrite="true">
+            <fileset
+                dir="${buildDirectory}/features/@featurename@_tests.feature">
+                <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
+            level="error"
+            message="You must specify a target when invoking this file"/>
+    </target>
+</project>
\ No newline at end of file
diff --git a/releng.wtpbuilder/buildtemplates/components/template_tests/dependency.xml b/releng.wtpbuilder/buildtemplates/components/template_tests/dependency.xml
new file mode 100644
index 0000000..8565e7e
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/components/template_tests/dependency.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0"?>
+    <!--
+        ======================================================================
+        Properties that must be passed to this script: base.install.dir
+        dependencyTargets local.cache.dir dependency.properties
+        ======================================================================
+    -->
+<project
+    name="test"
+    default="get">
+    <target
+        name="get">
+        <!--
+            read in this properties, just so we can make sure our
+            requested pre-reqs are defined
+        -->
+        <property
+            file="${dependency.properties}"/>
+        <antcall
+            target="getAndInstall">
+            <param
+                name="groupId"
+                value="orbitthirdpartymap"/>
+            <param
+                name="base.install.dir"
+                value="${buildDirectory}/maps/${env.RELENG}/maps/"/>
+        </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="xml"/>
+        </antcall>
+    </target>
+    <target
+        name="getAndInstall"
+        if="${groupId}.url">
+        <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>
\ No newline at end of file
diff --git a/releng.wtpbuilder/buildtemplates/distribution/template.build/build.xml b/releng.wtpbuilder/buildtemplates/distribution/template.build/build.xml
new file mode 100644
index 0000000..c4b55e5
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/distribution/template.build/build.xml
@@ -0,0 +1,83 @@
+<project
+    default="build"
+    basedir=".">
+    <fail
+        unless="wtp.builder.home"/>
+    <property
+        file="${wtp.builder.home}/build.properties"/>
+    <target
+        name="build"
+        depends="getBaseBuilder">
+        <dirname
+            file="${ant.file}"
+            property="distribution.wtp.build.dir"/>
+        <property
+            name="buildTargets"
+            value="${wtp.builder.home}/scripts/build/runbuild.xml"/>
+
+        <!-- for this distribution, dependencies come from project's releng map project-->
+        <property
+            name="dependency.properties"
+            value="${buildDirectory}/maps/${env.RELENG}/maps/dependencies.properties"/>
+
+        <!-- calling label.xml to createg label.properties file -->
+        <ant
+            antfile="${wtp.builder.home}/scripts/build/label.xml"/>
+
+        <echo
+            level="info"
+            message="invoking buildTargets: ${buildTargets} to build for each component"/>
+
+        <ant
+            antfile="${buildTargets}">
+            <property
+                name="component"
+                value="@shortname@"/>
+        </ant>
+        <ant
+            antfile="${buildTargets}">
+            <property
+                name="component"
+                value="@shortname@_sdk"/>
+        </ant>
+        <ant
+            antfile="${buildTargets}">
+            <property
+                name="component"
+                value="@shortname@_tests"/>
+            <property
+                name="eclipseBuildFailOnError"
+                value="false"/>
+        </ant>
+        
+        <!-- package -->
+        <antcall
+            target="package"/>
+    </target>
+
+    <!-- invoking runbuild.xml targetting getBaseBuilder -->
+    <target
+        name="getBaseBuilder"
+        if="eclipse.builder.fetch">
+        <dirname
+            file="${ant.file}"
+            property="wtbuilder.dir"/>
+        <property
+            name="buildTargets"
+            value="${wtp.builder.home}/scripts/build/runbuild.xml"/>
+        <echo
+            level="info"
+            message="invoking buildTargets: ${buildTargets} -> getBaseBuilder"/>
+        <ant
+            antfile="${buildTargets}"
+            target="getBaseBuilder"/>
+    </target>
+    <target
+        name="package">
+        <!--
+            post, post packaging, for WTP ... "manually" assemble the
+            desired zips
+        -->
+        <!-- nothing to assemble right now -->
+    </target>
+</project>
\ No newline at end of file
diff --git a/releng.wtpbuilder/buildtemplates/distribution/template.site/build.xml b/releng.wtpbuilder/buildtemplates/distribution/template.site/build.xml
new file mode 100644
index 0000000..7c7d077
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/distribution/template.site/build.xml
@@ -0,0 +1,126 @@
+<project
+    name="Build specific targets and properties"
+    default="build"
+    basedir=".">
+
+    <!-- Note to be cross-platform, "environment variables" are only appropriate for
+        some variables, e.g. ones we set, since properties are case sensitive, even if
+        the environment variables on your operating system are not, e.g. it will
+        be ${env.Path} not ${env.PATH} on Windows -->
+    <property environment="env" />
+    <!-- 
+        Let users override standard properties, if desired.
+        If directory, file, or some properties do not exist,  
+        then standard properties will be used.
+    -->
+    <property
+        file="${env.LOCAL_BUILD_PROPERTIES_DIR}/${ant.project.name}.properties" />
+
+    <!-- = = = end standard properties pattern = = = -->
+
+    <echo message="ant.file: ${ant.file}" />
+    <target name="build">
+        <java
+            jar="${eclipse.launcher}"
+            fork="true"
+            failonerror="true">
+            <jvmarg value="-Dosgi.ws=${env.BASEWS}" />
+            <jvmarg value="-Dosgi.os=${env.BASEOS}" />
+            <jvmarg value="-Dosgi.arch=${env.BASEARCH}" />
+            <jvmarg value="-Dbuild.donottagmaps=${build.donottagmaps}" />
+            <jvmarg value="-DbuildBranch=${buildBranch}" />
+            <jvmarg value="-DbuildType=${buildType}" />
+            <jvmarg value="-DbuildId=${buildId}" />
+            <jvmarg value="-DmapVersionTag=${mapVersionTag}" />
+            <jvmarg value="-Dbuild.distribution=${build.distribution}" />
+            <jvmarg value="-DbuildDirectory=${buildDirectory}" />
+            <jvmarg value="-Dwtp.builder.home=${wtp.builder.home}" />
+            <jvmarg value="-Djava.io.tmpdir=${env.RECOMMENDED_TMP_DIR}" />
+            <jvmarg
+                value="-Dprojectname=${projectname}" />
+            <arg value="-data" />
+            <arg value="${basedir}/workspace" />
+            <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.php" />
+
+        <copy
+            file="${wtp.builder.home}/distribution/wtp.site/templateFiles/${indexTemplateFilename}"
+            tofile="${buildDirectory}/${indexFileName}" />
+
+        <condition
+            property="isBuildTested"
+            value="true">
+            <available
+                file="${buildDirectory}/${buildLabel}/testResults/html" />
+        </condition>
+
+        <ant
+            antfile="${publish.xml}"
+            dir="${component.dir}">
+            <property
+                name="dropTokenList"
+                value="%wtpruntime%,%wtpsdk%,%wtptest%,%wst%,%wst-sdk%,%wst-tests%,%jst-tests%,%wst-perf-tests%,%jst-perf-tests%,%jpt-runtime%,%jpt-sdk%,%jpt-tests%" />
+            <property
+                name="webtoolsDownloadURL"
+                value="http://www.eclipse.org/downloads/download.php?file=/webtools/committers/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" />
+
+        <!-- final count files -->
+        <countBuildFiles
+            sourceDirectory="${buildDirectory}/${buildLabel}"
+            filterString=".zip,.tar.gz"
+            outputFile="${buildDirectory}/${buildLabel}/files.count" />
+
+    </target>
+
+
+</project>
diff --git a/releng.wtpbuilder/buildtemplates/distribution/template.site/compilerXMLOutputToHTML.xsl b/releng.wtpbuilder/buildtemplates/distribution/template.site/compilerXMLOutputToHTML.xsl
new file mode 100644
index 0000000..4f6809e
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/distribution/template.site/compilerXMLOutputToHTML.xsl
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<xsl:stylesheet
+    version="1.0"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+    <xsl:output
+        method="html"
+        indent="yes" />
+
+    <xsl:template match="/">
+        <html>
+            <body>
+                <xsl:apply-templates select="compiler" />
+            </body>
+        </html>
+    </xsl:template>
+
+    <xsl:template match="compiler">
+        <h2>Compiler Report</h2>
+        <p>
+            Compiler:
+            <xsl:value-of select="@name" />
+            <xsl:text>   </xsl:text>
+            Version:
+            <xsl:value-of select="@version" />
+        </p>
+
+        <xsl:apply-templates select="stats" />
+
+        <xsl:apply-templates select="sources" />
+    </xsl:template>
+
+    <xsl:template
+        name="stats"
+        match="stats">
+
+        <p>
+            Number of source files:
+            <xsl:value-of select="count(..//source)" />
+            Number of classfiles:
+            <xsl:value-of select="number_of_classfiles/@value" />
+        </p>
+        <p>
+            Problems:
+            <xsl:value-of select="problem_summary/@problems" />
+            (Errors:
+            <xsl:value-of select="problem_summary/@errors" />
+            Warnings:
+            <xsl:value-of select="problem_summary/@warnings" />
+            )
+        </p>
+    </xsl:template>
+
+
+    <xsl:template
+        name="sources"
+        match="sources">
+
+        <xsl:if test="count(source) > 0">
+
+            <dl>
+                <xsl:for-each select="source">
+
+                    <xsl:variable
+                        name="package"
+                        select="normalize-space(@package)">
+                    </xsl:variable>
+                    <xsl:variable
+                        name="path"
+                        select="normalize-space(@path)">
+                    </xsl:variable>
+                    <xsl:variable
+                        name="classname"
+                        select="substring-after($path, $package)">
+                    </xsl:variable>
+                    <xsl:if test="count(problems) > 0">
+                        <dt style="font-weight: bold; color: black">
+                            Source File:
+                            <xsl:value-of select="$package" />
+                            <xsl:value-of select="$classname" />
+                        </dt>
+                        <xsl:apply-templates select="problems">
+                            <xsl:with-param name="classname">
+                                <xsl:value-of select="$classname" />
+                            </xsl:with-param>
+                        </xsl:apply-templates>
+                    </xsl:if>
+                </xsl:for-each>
+            </dl>
+
+        </xsl:if>
+
+    </xsl:template>
+
+    <xsl:template match="problems">
+        <xsl:param name="classname" />
+        <xsl:for-each select="problem">
+
+            <dd style="font-weight: normal; color: black">
+                <xsl:value-of select="position()" />
+                <xsl:text>.  </xsl:text>
+                <xsl:value-of select="@severity" />
+                <xsl:text>:  </xsl:text>
+                <xsl:value-of select="@id" />
+                <xsl:variable
+                    name="lineNumber"
+                    select="@line">
+                </xsl:variable>
+                <xsl:for-each select="message">
+                    <p
+                        style="margin-left: +.5in; font-size: -1; margin-top: 0;margin-bottom:0;">
+                        <small>
+                            <xsl:value-of select="@value" />
+                        </small>
+                    </p>
+                </xsl:for-each>
+                <xsl:for-each select="source_context">
+                    <xsl:variable
+                        name="pre"
+                        select="substring(@value,0,(@sourceStart + 1))">
+                    </xsl:variable>
+                    <xsl:variable
+                        name="main"
+                        select="substring(@value,(@sourceStart + 1),(((@sourceEnd + 1) - (@sourceStart + 1)) + 1))">
+                    </xsl:variable>
+                    <xsl:variable
+                        name="end"
+                        select="substring(@value,(@sourceEnd + 2))">
+                    </xsl:variable>
+
+                    <p
+                        style="margin-left: +.5in; font-size: -2; margin-top: 0;margin-bottom:0;">
+                        <xsl:value-of select="substring($classname,2)" />
+                        :
+                    </p>
+                    <p
+                        style="margin-left: +.5in; font-size: -2;font-family: monospace; margin-top: 0;margin-bottom:0;">
+                        <xsl:value-of select="$lineNumber" />
+                        :
+                        <xsl:value-of select="$pre" />
+                        <b>
+                            <u>
+                                <xsl:value-of select="$main" />
+                            </u>
+                        </b>
+                        <xsl:value-of select="$end" />
+                    </p>
+                </xsl:for-each>
+            </dd>
+        </xsl:for-each>
+
+
+    </xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/releng.wtpbuilder/buildtemplates/distribution/template.site/publish.xml b/releng.wtpbuilder/buildtemplates/distribution/template.site/publish.xml
new file mode 100644
index 0000000..5f6697c
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/distribution/template.site/publish.xml
@@ -0,0 +1,548 @@
+<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 environment="env" />
+
+    <property
+        name="resultDir"
+        value="${buildDirectory}/${buildLabel}" />
+	<!--name of generated index page-->
+    <property
+        name="indexFileName"
+        value="index.php" />
+    <property
+        name="templateDir"
+        value="${wtp.builder.home}/distribution/${build.distribution}.site" />
+    <property
+        name="resultingIndex"
+        value="${resultDir}/${indexFileName}" />
+    <echo
+        level="debug"
+        message="resultDir: ${resultDir}" />
+    <echo
+        level="debug"
+        message="templateDir: ${templateDir}" />
+    <echo
+        level="debug"
+        message="resultingIndex: ${resultingIndex}" />
+
+
+
+    <target name="default">
+        <copy
+            overwrite="true"
+            file="${wtp.builder.home}/distribution/${build.distribution}.site/templateFiles/${indexTemplateFilename}"
+            tofile="${resultingIndex}" />
+        <antcall target="countFiles" />
+        <antcall target="generateCompileIndex" />
+        <antcall target="generateJUnitTestsIndex" />
+        <antcall target="getStaticFiles" />
+    </target>
+
+    <target name="generateCompileIndex">
+
+
+		<!--
+            <taskdef name="indexResults" classname="org.eclipse.wtp.releng.tools.ResultsSummaryGenerator" />
+        -->
+
+		<!--
+            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/${env.RELENG}/maps/dependencies.properties" />
+
+		<!-- create tables of test plugin compiles first -->
+        <antcall
+            target="generateCompileOutput">
+            <param
+                name="outputDirectory"
+                value="${resultDir}/testcompilelogs" />
+        </antcall>
+
+		<!-- create table of code plugins compiles -->
+        <summarizeResults
+            isBuildTested="false"
+            includeAll="true"
+            dropTokenList="${dropTokenList}"
+            xmlDirectoryName=""
+            dropDirectoryName="${resultDir}"
+            testResultsTemplateFileName="${templateDir}/templateFiles/compileResults.php.template"
+            testResultsHtmlFileName="compileResults.php"
+            hrefTestResultsTargetPath="testResults/html"
+            hrefCompileLogsTargetPath="compilelogs"
+            compileLogsDirectoryName="${resultDir}/compilelogs" />
+        <xslt
+            basedir="${resultDir}/compilelogs"
+            destdir="${resultDir}/compilelogs"
+            includes="**/*.bin.xml"
+            scanincludeddirectories="true"
+            style="compilerXMLOutputToHTML.xsl"
+            force="true" />
+        <tstamp>
+            <format
+                property="TODAY"
+                pattern="MMMM d, yyyy" />
+        </tstamp>
+
+		<!--  Insert Build Type descriptor  -->
+        <antcall
+            target="${buildType}" />
+        <antcall
+            target="writeData" />
+
+		<!--  Update timestamp on file to permit overwrite through Ant copy task  -->
+        <touch
+            file="${resultingIndex}" />
+    </target>
+    <target
+        name="generateCompileOutput"
+        depends="checkIfCompileLogs"
+        if="doCompileLogs">
+        <summarizeResults
+            isBuildTested="false"
+            includeAll="true"
+            dropTokenList="${dropTokenList}"
+            xmlDirectoryName=""
+            dropDirectoryName="${resultDir}"
+            testResultsTemplateFileName="${templateDir}/templateFiles/testCompileResults.php.template"
+            testResultsHtmlFileName="testCompileResults.php"
+            hrefTestResultsTargetPath=""
+            hrefCompileLogsTargetPath="testcompilelogs"
+            compileLogsDirectoryName="${outputDirectory}" />
+        <xslt
+            basedir="${outputDirectory}"
+            destdir="${outputDirectory}"
+            includes="**/*.bin.xml"
+            scanincludeddirectories="true"
+            style="compilerXMLOutputToHTML.xsl"
+            force="true" />
+    </target>
+    <target
+        name="generateJUnitTestsIndex"
+        depends="checkIfTested"
+        if="doTests">
+
+		<!--
+            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/${env.RELENG}/maps/dependencies.properties" />
+
+		<!-- create table of test plugin compiles first -->
+		<!-- set isBuildTested to true for the "compile only" results -->
+        <summarizeResults
+            isBuildTested="true"
+            dropTokenList="${dropTokenList}"
+            dropDirectoryName="${resultDir}"
+            xmlDirectoryName="${resultDir}/testResults/xml"
+            testResultsTemplateFileName="${templateDir}/templateFiles/testResults.php.template"
+            testResultsHtmlFileName="testResults.php"
+            hrefTestResultsTargetPath="testResults/html"
+            compileLogsDirectoryName="" />
+        <tstamp>
+            <format
+                property="TODAY"
+                pattern="MMMM d, yyyy" />
+        </tstamp>
+
+		<!--  Insert Build Type descriptor  -->
+        <antcall
+            target="${buildType}" />
+        <antcall
+            target="writeData" />
+
+		<!--  Update timestamp on file to permit overwrite through Ant copy task  -->
+        <touch
+            file="${resultingIndex}" />
+    </target>
+    <target
+        name="getStaticFiles">
+		<!--get static files required in the buildLabel directory-->
+        <copy
+            todir="${resultDir}">
+            <fileset
+                dir="${templateDir}/staticDropFiles" />
+        </copy>
+
+		<!--copy buildnotes from plugin directories-->
+        <mkdir
+            dir="${resultDir}/buildnotes" />
+        <copy
+            todir="${resultDir}/buildnotes"
+            flatten="true">
+            <fileset
+                dir="${buildDirectory}/plugins"
+                includes="**/buildnotes_*.html" />
+            <fileset
+                dir="${buildDirectory}/features"
+                includes="**/buildnotes_*.html" />
+        </copy>
+        <copy
+            file="${templateDir}/staticDropFiles/logIndex.php"
+            tofile="${resultDir}/testResults/consolelogs/full/logIndex.php" />
+        <copy
+            file="${templateDir}/staticDropFiles/logIndex.php"
+            tofile="${resultDir}/testResults/consolelogs/testLogs/logIndex.php" />
+        <copy
+            file="${templateDir}/staticDropFiles/logIndex.php"
+            tofile="${resultDir}/testResults/consolelogs/testSysErrorLogs/logIndex.php" />
+    </target>
+    <target
+        name="updateSite">
+
+
+		<!-- get our authored, tokenized site.xml file -->
+        <copy
+            file="${wtp.builder.home}/distribution/${build.distribution}.site/templateFiles/siteWTP.xml"
+            tofile="${buildDirectory}/${buildLabel}/updateSite/site.xml"
+            overwrite="true"
+            failonerror="true" />
+		<!-- get the ${buildDirectory}/finalPluginsVersions.properties, and 
+            read as properties -->
+		<!-- substitute property value for tokens -->
+        <replace
+            file="${buildDirectory}/${buildLabel}/updateSite/site.xml"
+            propertyfile="${buildDirectory}/finalFeaturesVersions.properties">
+            <replacefilter
+                token="@org.eclipse.wst@"
+                property="org.eclipse.wst" />
+            <replacefilter
+                token="@org.eclipse.wst.sdk@"
+                property="org.eclipse.wst.sdk" />
+            <replacefilter
+                token="@org.eclipse.jst@"
+                property="org.eclipse.jst" />
+            <replacefilter
+                token="@org.eclipse.jst.sdk@"
+                property="org.eclipse.jst.sdk" />
+            <replacefilter
+                token="@org.eclipse.jpt.feature@"
+                property="org.eclipse.jpt.feature" />
+            <replacefilter
+                token="@org.eclipse.jpt_sdk.feature@"
+                property="org.eclipse.jpt_sdk.feature" />
+        </replace>
+    </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.
+        -->
+        <countBuildFiles
+            sourceDirectory="${resultDir}"
+            filterString=".zip,.tar.gz"
+            outputFile="${resultDir}/files.count" />
+    </target>
+
+	<!--Build type descriptors-->
+    <target
+        name="I">
+        <replace
+            file="${resultingIndex}"
+            token="%wtpandprereqs%"
+            value=" " />
+        <replace
+            file="${resultingIndex}"
+            token="@type@"
+            value="Integration" />
+    </target>
+    <target
+        name="S">
+        <replace
+            file="${resultingIndex}"
+            token="%wtpandprereqs%"
+            value=" " />
+        <replace
+            file="${resultingIndex}"
+            token="@type@"
+            value="Stable" />
+    </target>
+    <target
+        name="N">
+        <replace
+            file="${resultingIndex}"
+            token="%wtpandprereqs%"
+            value=" " />
+        <replace
+            file="${resultingIndex}"
+            token="@type@"
+            value="Nightly" />
+    </target>
+    <target
+        name="M">
+        <replace
+            file="${resultingIndex}"
+            token="%wtpandprereqs%"
+            value=" " />
+        <replace
+            file="${resultingIndex}"
+            token="@type@"
+            value="Maintenance" />
+    </target>
+    <target
+        name="R">
+        <replace
+            file="${resultingIndex}"
+            token="%wtpandprereqs%"
+            value=" " />
+        <replace
+            file="${resultingIndex}"
+            token="@type@"
+            value="Release" />
+    </target>
+    <target
+        name="T">
+        <replace
+            file="${resultingIndex}"
+            token="%wtpandprereqs%"
+            value=" " />
+        <replace
+            file="${resultingIndex}"
+            token="@type@"
+            value="Test" />
+    </target>
+    <target
+        name="P">
+        <replace
+            file="${resultingIndex}"
+            token="%wtpandprereqs%"
+            value=" " />
+        <replace
+            file="${resultingIndex}"
+            token="@type@"
+            value="Patches" />
+    </target>
+    <target
+        name="checkIfTested">
+        <echo
+            level="debug"
+            message="isBuildTested: ${isBuildTested}" />
+        <condition
+            property="doTests">
+            <equals
+                arg1="${isBuildTested}"
+                arg2="true"
+                trim="true"
+                casesensitive="false" />
+        </condition>
+    </target>
+    <target
+        name="checkIfCompileLogs">
+        <condition
+            property="doCompileLogs">
+            <available
+                file="${outputDirectory}" />
+        </condition>
+    </target>
+    <target
+        name="writeData">
+		<!--  Insert Build Date  -->
+        <replace
+            file="${resultingIndex}"
+            token="@date@"
+            value="${TODAY}" />
+
+		<!--  Insert Build Name  -->
+        <replace
+            file="${resultingIndex}"
+            token="@build@"
+            value="${buildLabel}" />
+        <replace
+            file="${resultingIndex}"
+            token="@buildBranch@"
+            value="${buildBranch}" />
+
+		<!--  Insert PreRequsites  -->
+        <replace
+            file="${resultingIndex}"
+            token="@eclipseFile@"
+            value="${eclipse.file.linux-gtk-x86}" />
+        <replace
+            file="${resultingIndex}"
+            token="@eclipseURL@"
+            value="${eclipse.url}/${eclipse.file.linux-gtk-x86}" />
+        <replace
+            file="${resultingIndex}"
+            token="@eclipseBuildURL@"
+            value="${eclipse.url}" />
+        <replace
+            file="${resultingIndex}"
+            token="@eclipsefilelinux@"
+            value="${eclipse.file.linux-gtk-x86}" />
+        <replace
+            file="${resultingIndex}"
+            token="@eclipsefilewindows@"
+            value="${eclipse.file.win32-win32-x86}" />
+        <replace
+            file="${resultingIndex}"
+            token="@eclipsefilemacos@"
+            value="${eclipse.file.macosx-carbon-ppc}" />
+        <replace
+            file="${resultingIndex}"
+            token="@eclipseBuildHome@"
+            value="${eclipse.build.home}" />
+        <replace
+            file="${resultingIndex}"
+            token="@eclipse.mirror.prefixuri@"
+            value="${eclipse.mirror.prefixuri}" />
+        <replace
+            file="${resultingIndex}"
+            token="@eclipse.fspath.prefix@"
+            value="${eclipse.fspath.prefix}" />
+        <replace
+            file="${resultingIndex}"
+            token="@testURL@"
+            value="${eclipseTestFramework.url}/${eclipseTestFramework.file}" />
+        <replace
+            file="${resultingIndex}"
+            token="@testFile@"
+            value="${eclipseTestFramework.file}" />
+        <replace
+            file="${resultingIndex}"
+            token="@emfFile@"
+            value="${emf.file}" />
+        <replace
+            file="${resultingIndex}"
+            token="@emfURL@"
+            value="${emf.url}/${emf.file}" />
+        <replace
+            file="${resultingIndex}"
+            token="@emfBuildHome@"
+            value="${emf.build.home}" />
+        <replace
+            file="${resultingIndex}"
+            token="@emf.mirror.prefixuri@"
+            value="${emf.mirror.prefixuri}" />
+        <replace
+            file="${resultingIndex}"
+            token="@wstFile@"
+            value="${wst.file}" />
+        <replace
+            file="${resultingIndex}"
+            token="@wstURL@"
+            value="${wst.url}/${wst.file}" />
+        <replace
+            file="${resultingIndex}"
+            token="@wstBuildHome@"
+            value="${wst.build.home}" />
+        <replace
+            file="${resultingIndex}"
+            token="@wst.mirror.prefixuri@"
+            value="${wst.mirror.prefixuri}" />
+        <replace
+            file="${resultingIndex}"
+            token="@gefFile@"
+            value="${gef.file}" />
+        <replace
+            file="${resultingIndex}"
+            token="@gefURL@"
+            value="${gef.url}/${gef.file}" />
+        <replace
+            file="${resultingIndex}"
+            token="@gefBuildHome@"
+            value="${gef.build.home}" />
+        <replace
+            file="${resultingIndex}"
+            token="@gef.mirror.prefixuri@"
+            value="${gef.mirror.prefixuri}" />
+        <replace
+            file="${resultingIndex}"
+            token="@eclipserelengFile@"
+            value="${eclipsereleng.file}" />
+        <replace
+            file="${resultingIndex}"
+            token="@eclipserelengURL@"
+            value="${eclipsereleng.url}/${eclipsereleng.file}" />
+        <replace
+            file="${resultingIndex}"
+            token="@orbitthirdpartyzipFile@"
+            value="${orbitthirdpartyzip.file}" />
+        <replace
+            file="${resultingIndex}"
+            token="@orbitthirdpartyzipURL@"
+            value="${orbitthirdpartyzip.url}/${orbitthirdpartyzip.file}" />
+        <replace
+            file="${resultingIndex}"
+            token="@orbitthirdpartyzipBuildHome@"
+            value="${orbitthirdpartyzip.build.home}" />
+        <replace
+            file="${resultingIndex}"
+            token="@orbitthirdpartyzip.mirror.prefixuri@"
+            value="${orbitthirdpartyzip.mirror.prefixuri}" />
+
+
+		<!-- no longer used. Post 1.5.5 -->
+        <replace
+            file="${resultingIndex}"
+            token="@jemFile@"
+            value="${jem.file}" />
+        <replace
+            file="${resultingIndex}"
+            token="@jemURL@"
+            value="${jem.url}/${jem.file}" />
+        <replace
+            file="${resultingIndex}"
+            token="@jemBuildHome@"
+            value="${jem.build.home}" />
+        <replace
+            file="${resultingIndex}"
+            token="@jem.mirror.prefixuri@"
+            value="${jem.mirror.prefixuri}" />
+		<!-- 
+            these token/s should not exist in maintenance stream, but 
+            do no harm done, so in the interests of keeping builder 
+            streams in sync, we'll leave them here as place hold
+        -->
+        <replace
+            file="${resultingIndex}"
+            token="@dtpFile@"
+            value="${dtp.file}" />
+        <replace
+            file="${resultingIndex}"
+            token="@dtpURL@"
+            value="${dtp.url}/${dtp.file}" />
+        <replace
+            file="${resultingIndex}"
+            token="@dtpBuildHome@"
+            value="${dtp.build.home}" />
+        <replace
+            file="${resultingIndex}"
+            token="@dtp.mirror.prefixuri@"
+            value="${dtp.mirror.prefixuri}" />
+    </target>
+</project>
\ No newline at end of file
diff --git a/releng.wtpbuilder/buildtemplates/distribution/template.site/staticDropFiles/buildNotes.php b/releng.wtpbuilder/buildtemplates/distribution/template.site/staticDropFiles/buildNotes.php
new file mode 100644
index 0000000..e843ecf
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/distribution/template.site/staticDropFiles/buildNotes.php
@@ -0,0 +1,63 @@
+<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 != "..") {
+        //print_r($anEntry);
+        //echo "<br />";
+
+        $subject = $anEntry;
+        $pattern = '/^buildnotes_(.*)/i';
+        preg_match($pattern, $subject, $matches);
+        $subject = $matches[1];
+        //print_r($subject);
+        //echo "<br />";
+        $pattern = '/^(.*)\.html$/';
+        preg_match($pattern, $subject, $matches);
+        //print_r($matches);
+        //echo "<br />";
+
+        $component = $matches[1];
+
+        $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/buildtemplates/distribution/template.site/staticDropFiles/consoleLogs.php b/releng.wtpbuilder/buildtemplates/distribution/template.site/staticDropFiles/consoleLogs.php
new file mode 100644
index 0000000..7dd5f42
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/distribution/template.site/staticDropFiles/consoleLogs.php
@@ -0,0 +1,94 @@
+<html>
+<head>
+<?php
+$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
+$rootDir = "testResults/consolelogs";
+$hasNotes = false;
+$aDirectory = dir($rootDir);
+$index = 0;
+$dirindex = 0;
+while ($anEntry = $aDirectory->read()) {
+    if ($anEntry != "." && $anEntry != "..") {
+        if (is_file("$rootDir/$anEntry")) {
+            $entries[$index] = $anEntry;
+            $index++;
+        } else if (is_dir("$rootDir/$anEntry")) {
+            $direntries[$dirindex] = $anEntry;
+            $dirindex++;
+        }
+    }
+}
+$aDirectory->close();
+
+
+sort($entries);
+sort($direntries);
+
+for ($i = 0; $i < $dirindex; $i++) {
+    $anEntry = $direntries[$i];
+    $line = "<td><a href=\"testResults/consolelogs/$anEntry/logIndex.php\">$anEntry</a></td>";
+    echo "<tr>";
+    echo "$line";
+    echo "</tr>";
+}
+for ($i = 0; $i < $index; $i++) {
+    $anEntry = $entries[$i];
+    $logsize = filesize("testResults/consolelogs/$anEntry");
+
+
+    $level = 0;
+    if ($logsize > 20000) {
+        $level = 2;
+    }
+    else if ($logsize > 2000) {
+        $level = 1;
+    }
+
+    if ($level == 0) {
+        $line = "<td><a href=\"testResults/consolelogs/$anEntry\">$anEntry</a>  ($logsize bytes)</td>";
+    }
+    else if ($level == 1) {
+        $line = "<td><em><a href=\"testResults/consolelogs/$anEntry\">$anEntry</a>  ($logsize bytes)</em></td>";
+    } else if ($level == 2) {
+        $line = "<td><strong><a href=\"testResults/consolelogs/$anEntry\">$anEntry</a>  ($logsize bytes)</strong></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/buildtemplates/distribution/template.site/staticDropFiles/logIndex.php b/releng.wtpbuilder/buildtemplates/distribution/template.site/staticDropFiles/logIndex.php
new file mode 100644
index 0000000..0b36334
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/distribution/template.site/staticDropFiles/logIndex.php
@@ -0,0 +1,84 @@
+<html>
+<head>
+<?php
+
+function endsWith( $str, $sub ) {
+
+   return ( substr( $str, strlen( $str ) - strlen( $sub ) ) === $sub );
+}
+
+        $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;
+        $aDirectory = dir(".");
+        $index = 0;
+        while ($anEntry = $aDirectory->read()) {
+                if ($anEntry != "." && $anEntry != ".." && !endsWith(__FILE__, $anEntry)) {
+                        $entries[$index] = $anEntry;
+                        $index++;
+                }
+        }
+        aDirectory.closedir();
+
+
+        sort($entries);
+
+        for ($i = 0; $i < $index; $i++) {
+                $anEntry = $entries[$i];
+                $logsize = filesize("$anEntry");
+
+
+                $level = 0;
+                if ($logsize > 20000) {
+                        $level = 2;
+                }
+                else if ($logsize > 2000) {
+                        $level = 1;
+                }
+
+                if ($level == 0) {
+                        $line = "<td><a href=\"$anEntry\">$anEntry</a>  ($logsize bytes)</td>";
+                }
+                else if ($level == 1) {
+                        $line = "<td><em><a href=\"$anEntry\">$anEntry</a>  ($logsize bytes)</em></td>";
+                } else if ($level == 2) {
+                        $line = "<td><strong><a href=\"$anEntry\">$anEntry</a>  ($logsize bytes)</strong></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/buildtemplates/distribution/template.site/staticDropFiles/miscUtil.php b/releng.wtpbuilder/buildtemplates/distribution/template.site/staticDropFiles/miscUtil.php
new file mode 100644
index 0000000..c83bdf6
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/distribution/template.site/staticDropFiles/miscUtil.php
@@ -0,0 +1,214 @@
+<?php
+
+// todo: unsure if can handle filenames that are URLs?
+// handy constant to compute file size in megabytes
+
+function fileSizeInMegs($filename) {
+	$onemeg=1024*1024;
+	$zipfilesize=filesize($filename);
+	$zipfilesize=round($zipfilesize/$onemeg, 0);
+	return $zipfilesize;
+}
+
+function fileSizeForDisplay($filename) {
+	$onekilo=1024;
+	$onemeg=$onekilo * $onekilo;
+	$criteria = 10 * $onemeg;
+	$scaleChar = "M";
+	$zipfilesize=filesize($filename);
+	if ($zipfilesize > $criteria) {
+		$zipfilesize=round($zipfilesize/$onemeg, 0);
+		$scaleChar = "M";
+	}
+	else {
+		$zipfilesize=round($zipfilesize/$onekilo, 0);
+		$scaleChar = "K";
+	}
+	$result =  "(" . $zipfilesize . $scaleChar . ")";
+	return $result;
+}
+
+
+function displayFileLine($downloadprefix, $filename, $zipfilesize, $fileShortDescription) {
+	echo "<td align=\"right\" valign=\"top\" width=\"30%\">";
+	echo "<a href=\"$downloadprefix$filename\">" . $fileShortDescription . "</a>";
+	echo "</td><td align=\"right\" valign=\"top\" width=\"3%\">";
+	echo $zipfilesize;
+	echo "</td>";
+	echo "<td align=\"right\" valign=\"top\" width=\"2%\">";
+	echo "[<a href=\"checksum/$filename.md5\">md5</a>]";
+	echo "</td>";
+}
+
+function resourceExist($url, $mirrorPrefixuri, $prereqfilename, $eclipseFSpathPrefix)
+{
+	$result = false;
+
+	$allowURLopen = ini_get('allow_url_fopen');
+
+	if ($allowURLopen && stream_last_modified($url)) {
+		$result = true;
+	}
+	else {
+		// TODO: for now, we'll do a raw check on the whole file name, since enable_url_open
+		// is off. better would be to check if we are on build.eclipse.org or download.eclipse.org?
+    $wholePath = trim($eclipseFSpathPrefix) . "/" . trim($mirrorPrefixuri) . "/" . trim($prereqfilename);
+    if (file_exists($wholePath)) {
+    	$result = true;
+    }
+	}
+	return $result;
+}
+
+function stream_last_modified($url)
+{
+	if (function_exists('version_compare') && version_compare(phpversion(), '4.3.0') > 0)
+	{
+		if (!($fp = @fopen($url, 'r')))
+		return NULL;
+
+		$meta = stream_get_meta_data($fp);
+		for ($j = 0; isset($meta['wrapper_data'][$j]); $j++)
+		{
+			if (strstr(strtolower($meta['wrapper_data'][$j]), 'last-modified'))
+			{
+				$modtime = substr($meta['wrapper_data'][$j], 15);
+				break;
+			}
+		}
+		fclose($fp);
+	}
+	else
+	{
+		$parts = parse_url($url);
+		$host  = $parts['host'];
+		$path  = $parts['path'];
+
+		if (!($fp = @fsockopen($host, 80)))
+		return NULL;
+
+		$req = "HEAD $path HTTP/1.0\r\nUser-Agent: PHP/".phpversion()."\r\nHost: $host:80\r\nAccept: */*\r\n\r\n";
+		fputs($fp, $req);
+
+		while (!feof($fp))
+		{
+			$str = fgets($fp, 4096);
+			if (strstr(strtolower($str), 'last-modified'))
+			{
+				$modtime = substr($str, 15);
+				break;
+			}
+		}
+		fclose($fp);
+	}
+	return isset($modtime) ? strtotime($modtime) : time();
+}
+
+function isMirrored($uriToCheck) {
+	global $debugScript;
+	global $debugFunctions;
+	$localuri = $uriToCheck;
+
+	$debugMirrorList = false;
+	if ($debugScript) {
+		echo "uriToCheck: " . $localuri . "<br />";
+	}
+
+	$xmlcount = 0;
+
+	/* This method true and accurate method of parsing mirror results
+	 * may be expensive, and would
+	 * likely cause artificially high counts of "downloads".
+	 * Could maybe use if somehow only checked once ever 5 minutes or something.
+
+
+	 // turn off warnings, as sometimes HTML is returned, which causes lots of warnings
+	 $holdLevel = error_reporting(E_ERROR);
+	 $mirrorsxml=simplexml_load_file(rawurlencode($localuri) . urlencode("&format=xml"));
+	 error_reporting($holdLevel);
+
+
+	 if ($mirrorsxml) {
+	 if ($debugFunctions) {
+	 echo "root node: " . $mirrorsxml->getName() . "<br />";
+	 }
+	 if (strcmp($mirrorsxml->getName(), "mirrors") == 0) {
+	 foreach ($mirrorsxml->children() as $mirror) {
+	 if (strcmp($mirror->getName(),"mirror") == 0) {
+	 $xmlcount=$xmlcount+1;
+	 }
+	 if ($debugMirrorList) {
+	 print_r($mirror);
+	 echo "<br />";
+	 }
+	 }
+	 }
+	 if ($debugFunctions) {
+	 echo "Mirror count: " . $xmlcount . "<br />";
+	 }
+	 }
+	 */
+	/*
+	 * Use simple heuristic based on pattern
+	 * in the URI ... if it contains "/downloads/" then assume it's mirrored
+	 */
+	if (strpos($uriToCheck, "webtools/downloads/") > 0) {
+		$xmlcount = 1;
+	}
+	return ($xmlcount > 0);
+
+}
+
+// TODO: replace with Phoenix variables
+function getPlatform () {
+	global $debugScript;
+	global $debugFunctions;
+	// getBrowser is expensive, so cache the data
+	static $browser;
+	$platform = "unknown";
+
+
+	if(ini_get("browscap")) {
+		if(!isset($browser)){
+			$browser = get_browser(null, true);
+		}
+
+		if ($browser) {
+			$rawPlatform = $browser['platform'];
+			if ($debugFunctions) {
+				echo "browser platfrom: " . $rawPlatform . "<br />" ;
+			}
+
+			if ($debugFunctions) {
+				$browserKeys = array_keys($browser);
+				foreach ($browserKeys as $key) {
+					echo $key . ": " . $browser[$key] . "<br />";
+				}
+			}
+		}
+		if (strpos($rawPlatform, "Win") === 0) {
+			$platform="windows";
+		} else if (strpos($rawPlatform, "Linux") === 0) {
+			$platform="linux";
+		} else if (strpos($rawPlatform, "Mac") === 0) {
+			$platform="mac";
+		}
+	}
+	return $platform;
+}
+
+
+function getPrereqReferenceOrName($eclipseMirrorScript, $mirrorPrefixuri, $prerequrl, $prereqfilename, $eclipseFSpathPrefix) {
+	// todo: we really only need "if exists" so could make a bit more efficient
+	// I tried "file_exists" but is didn't seem to work on my test server
+	// For these pre-reqs, we assume if they exist, they are mirrored. This is true
+	// 99% of the time.
+
+	if (resourceExist($prerequrl, $mirrorPrefixuri, $prereqfilename, $eclipseFSpathPrefix)) {
+		$reflink="<a href=\"" . $eclipseMirrorScript . $mirrorPrefixuri . "/" . $prereqfilename . "\">" . $prereqfilename . "</a>";
+	} else {
+		$reflink=$prereqfilename;
+	}
+	return $reflink;
+}
+?>
diff --git a/releng.wtpbuilder/buildtemplates/distribution/template.site/staticDropFiles/report2.php b/releng.wtpbuilder/buildtemplates/distribution/template.site/staticDropFiles/report2.php
new file mode 100644
index 0000000..52d2284
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/distribution/template.site/staticDropFiles/report2.php
@@ -0,0 +1,45 @@
+
+        <?php
+
+function parse_testResults($filename)
+{
+        $junitFailures = 0;
+        if (is_file($filename)) {
+                $handle = @fopen($filename, "r");
+                if ($handle)
+                {
+                        $size = filesize($filename);
+                        $content = fread($handle, $size);
+                        fclose($handle);
+                        $junitStart = strpos($content, "Errors &amp; Failures");
+                        $junitEnd = strpos($content, "</table>", $junitStart);
+                        $junitInfo = substr($content, $junitStart, $junitEnd - $junitStart);
+                        $start = strpos($junitInfo, "<td><b><font color=\"#ff0000\">");
+                        while ($start !== false)
+                        {
+                                $start += 29;
+                                $stop = strpos($junitInfo, "</font></b></td>", $start);
+                                if ($stop !== false)
+                                {
+                                        $result = substr($junitInfo, $start, $stop - $start);
+                                        if (is_numeric($result))
+                                        {
+                                                $junitFailures += $result;
+                                        }
+                                        else if (strcmp($result, "DNF") == 0)
+                                        {
+                                                $junitFailures++;
+                                        }
+                                }
+                                $start = strpos($junitInfo, "<td><b><font color=\"#ff0000\">", $stop);
+                        }
+                        $results = array($junitFailures);
+                        return $results;
+                }
+        }
+}
+
+
+?>
+
+
diff --git a/releng.wtpbuilder/buildtemplates/distribution/template.site/templateFiles/compileResults.php.template b/releng.wtpbuilder/buildtemplates/distribution/template.site/templateFiles/compileResults.php.template
new file mode 100644
index 0000000..f785771
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/distribution/template.site/templateFiles/compileResults.php.template
@@ -0,0 +1,76 @@
+<html>
+<head>
+
+<?php
+        $parts = explode("/", getcwd());
+        $parts2 = explode("-", $parts[count($parts) - 1]);
+        $buildName = $parts2[1];
+
+        echo "<title>Compile Logs: Code Bundles for $buildName</title>";
+?>
+
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
+<style>
+.bold, .bold TD, .bold TH, .bold TR
+{
+font-weight:bold;
+}
+.numeric, .numeric TD
+{
+text-align:right;
+padding-right:2%;
+}
+.normaltable, .normaltable TD, .normaltable TH
+{
+font-family:Bitstream Vera Sans Mono, monospace;
+font-size:0.9em;
+color:Black;
+background-color:White;
+}
+.errorltable, .errortable TD, .errortable TH
+{
+font-family:Bitstream Vera Sans Mono, monospace;
+font-size:0.9em;
+color:Black;
+background-color:Red;
+font-weight:bold;
+}
+.warningtable, .warningtable TD, .warningtable TH
+{
+font-family:Bitstream Vera Sans Mono, monospace;
+font-size:0.9em;
+color:Black;
+background-color:khaki;
+}
+.extraWarningTable, .extraWarningTable TD, .extraWarningTable TH
+{
+font-family:Bitstream Vera Sans Mono, monospace;
+font-size:0.9em;
+color:Black;
+background-color:Yellow;
+}
+</style>
+</head>
+<body>
+
+<?php
+        echo "<h1>Compile Logs: Code Bundles for $buildName</h1>";
+?>
+
+
+<table id=tabledata align = "center" width="75%" border="1">
+  <tr>
+    <td class="bold" align="center">Compile Logs</td>
+    <td class="bold" align="center">Compile Errors</td>
+    <td class="bold" align="center">Compiler Warnings</td>
+    <td class="bold" align="center">Access Violations</td>
+    <td class="bold" align="center">Access Warnings</td>
+  </tr>
+
+  %compilelogs%
+
+</table>
+
+</body>
+</html>
diff --git a/releng.wtpbuilder/buildtemplates/distribution/template.site/templateFiles/index.html.template.php b/releng.wtpbuilder/buildtemplates/distribution/template.site/templateFiles/index.html.template.php
new file mode 100644
index 0000000..93312b1
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/distribution/template.site/templateFiles/index.html.template.php
@@ -0,0 +1,516 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
+<title>WTP Incubator Downloads</title>
+
+
+<?php
+
+$buildBranch="@buildBranch@";
+$build="@build@";
+$type="@type@";
+$builddate="@date@";
+
+$eclipseMirrorPrefixuri="@eclipse.mirror.prefixuri@";
+$eclipseFSpathPrefix="@eclipse.fspath.prefix@";
+
+$eclipsefilelinux="@eclipsefilelinux@";
+$eclipsefilewindows="@eclipsefilewindows@";
+$eclipsefilemacosx="@eclipsefilemacos@";
+
+$eclipseURL="@eclipseURL@";
+$eclipseFile="@eclipseFile@";
+$eclipseBuildURL="@eclipseBuildURL@";
+$eclipseBuildHome="@eclipseBuildHome@";
+$testURL="@testURL@";
+$testFile="@testFile@";
+
+$wstURL="@wstURL@";
+$wstFile="@wstFile@";
+$wstMirrorPrefixuri="@wst.mirror.prefixuri@";
+$wstBuildHome="@wstBuildHome@";
+
+
+$gefURL="@gefURL@";
+$gefFile="@gefFile@";
+$gefMirrorPrefixuri="@gef.mirror.prefixuri@";
+$gefBuildHome="@gefBuildHome@";
+
+$emfURL="@emfURL@";
+$emfFile="@emfFile@";
+$emfMirrorPrefixuri="@emf.mirror.prefixuri@";
+$emfBuildHome="@emfBuildHome@";
+
+$dtpURL="@dtpURL@";
+$dtpFile="@dtpFile@";
+$dtpMirrorPrefixuri="@dtp.mirror.prefixuri@";
+$dtpBuildHome="@dtpBuildHome@";
+
+
+$eclipserelengFile="@eclipserelengFile@";
+$eclipserelengURL="@eclipserelengURL@";
+$orbitthirdpartyzipFile="@orbitthirdpartyzipFile@";
+$orbitthirdpartyzipURL="@orbitthirdpartyzipURL@";
+$orbitthirdpartyzipBuildHome="@orbitthirdpartyzipBuildHome@";
+$orbitthirdpartyzipMirrorPrefixuri="@orbitthirdpartyzip.mirror.prefixuri@";
+
+
+
+
+include("miscUtil.php");
+
+
+
+ini_set("display_errors", "true");
+error_reporting (E_ALL);
+
+
+$debugScript = false;
+$debugFunctions = false;
+
+$defaultMirrorScript="";
+$defaultWTPMirrorPrefix="./";
+
+$eclipseMirrorScript="http://www.eclipse.org/downloads/download.php?file=";
+
+// TODO: improve so this hard coding isn't required.
+// This depends on the declare script changing webtools/committers to webtools/downloads
+// And, the logic is such that if it is not mirrored, this URI is not used at all, just
+// a relative reference only
+$eclipseWTPMirrorPrefix="/webtools/committers/drops/$buildBranch/$build/";
+
+
+$mirrorScript=$defaultMirrorScript;
+$downloadprefix=$defaultWTPMirrorPrefix;
+
+
+$keytestMirrorString=$eclipseMirrorScript . "$eclipseWTPMirrorPrefix/@zipprefix@-sdk-$build.zip";
+if (isMirrored($keytestMirrorString) ) {
+        $mirrorScript=$eclipseMirrorScript;
+        $downloadprefix="${mirrorScript}${eclipseWTPMirrorPrefix}";
+}
+
+if ($debugScript)  {
+        echo "inferred platform: " . getPlatform();
+}
+
+
+// our summary results handling requires php 5 (for simple xml file loading)
+// so, if not php 5, just don't display any summary results
+// This was found to be required, since some mirror our whole site (e.g. IBM)
+// and not all mirrors use PHP 5
+$displayTestSummary=false;
+if (phpversion() >= 5) {
+
+        $displayTestSummary=true;
+        // expecting grandTotalErrors and grandTotalTests
+        $filename = "unitTestsSummary.xml";
+        if (file_exists($filename)) {
+                $prefix = "unitTests_";
+                $unitTestsSummary = simplexml_load_file($filename);
+                foreach ($unitTestsSummary->summaryItem as $summaryItem) {
+                        $name = $summaryItem->name;
+                        $value = $summaryItem->value;
+                        $code= "\$" . $prefix . $name . " = " . $value . ";";
+                        //echo "<br />code: " . $code;
+                        eval($code);
+                }
+        }
+
+        $filename = "compilelogsSummary.xml";
+        $prefix = "code_";
+        $compileSummary = simplexml_load_file($filename);
+        foreach ($compileSummary->summaryItem as $summaryItem) {
+                $name = $summaryItem->name;
+                $value = $summaryItem->value;
+                $code= "\$" . $prefix . $name . " = " . $value . ";";
+                //echo "<br />code: " . $code;
+                eval($code);
+        }
+
+        $filename = "testcompilelogsSummary.xml";
+        $prefix = "test_";
+        $compileSummary = simplexml_load_file($filename);
+        foreach ($compileSummary->summaryItem as $summaryItem) {
+                $name = $summaryItem->name;
+                $value = $summaryItem->value;
+                $code= "\$" . $prefix . $name . " = " . $value . ";";
+                //echo "<br />code: " . $code;
+                eval($code);
+        }
+}
+
+
+?>
+
+
+</head>
+
+<body>
+
+
+<?php
+
+// tiny banner to remind when looking at "local" machine results
+$serverName = $_SERVER["SERVER_NAME"];
+
+if (!stristr($serverName, "eclipse.org") && !stristr($serverName,"you.are.at.eclipsecon.org")) {
+        echo '<center>
+          <p>
+          Reminder: this is <font color="#FF0000">' .
+        $serverName .
+        '</font>
+          See also
+          <a href="http://download.eclipse.org/webtools/downloads" target="_top">the live public Eclipse site</a>.
+          </p>
+          <hr />
+          </center>';
+
+}
+?>
+<table BORDER=0 CELLSPACING=2 CELLPADDING=2 WIDTH="100%">
+        <tr>
+                <td ALIGN=left><font face="'Bitstream Vera',Helvetica,Arial" size="+2"><b><?php echo "$type";?>
+                Build: <?php echo "$build";?></b></font></td>
+           <td align="right" rowspan="3"><a
+  href="http://www.eclipse.org/projects/what-is-incubation.php"><img
+  src="http://www.eclipse.org/images/egg-incubation.png" alt="Incubation"
+  align="middle" border="0"></a></td>
+
+        <tr valign="top">
+                <td><font size="-1"><?php echo "$builddate";?></font></td>
+        </tr>
+        <tr valign="top">
+                <td>
+                <p>The Eclipse Web Tools Platform (WTP) Incubator Project provides
+                tools for development that are just getting started, or are
+                experimental in some fashion.</p>
+                </td>
+        </tr>
+</table>
+
+<!-- ***********  Required Prerequisites **************  -->
+<table border=0 cellspacing=2 cellpadding=2 width="100%">
+        <tr>
+                <td align="left" valign="top" bgcolor="#0080C0"><font
+                        face="'Bitstream Vera',Helvetica,Arial" color="#FFFFFF">Required
+                Prerequisites and Handy Extras</font></td>
+        </tr>
+        <tr>
+                <td>
+                <p>These are the prerequisites to install and run the Web Tools
+                Platform. Also listed are some frequently needed links for
+                committer-required packages when creating new developmnet
+                environmnets, or targets to run against.</p>
+                <p>Note that WTP requires Java 5 or higher (and, for some things,
+                actually requires a JDK rather than only a JRE) even though many other
+                <a href="http://www.eclipse.org/downloads/">Eclipse Projects</a> can
+                run with <a href="http://www.eclipse.org/downloads/moreinfo/jre.php">other
+                JRE levels</a>.</p><p></p>
+                </td>
+        </tr>
+        <tr>
+                <td>
+                <table border=0 cellspacing=1 cellpadding=1 width="90%" align="center">
+                        <tr valign="top">
+                                <td width="10%"></td>
+                                <td width="40%">Eclipse Platform (Platform, JDT)</td>
+                                <?php
+                                //customize page depending on user's browser/platform, if we can detect it
+                                $usersPlatform = getPlatform();
+                                // assume windows by default, since likely most frequent, even for cases where
+                                // platform is "unknown". I've noticed Opera reports 'unknown' :(
+                                $recommendedFile=$eclipsefilewindows;
+                                if (strcmp($usersPlatform,"linux")== 0) {
+                                        $recommendedFile=$eclipsefilelinux;
+                                } else if (strcmp($usersPlatform,"mac") == 0) {
+                                        $recommendedFile=$eclipsefilemacosx;
+                                }
+                                ?>
+                                <td align="right"><?php
+                                echo getPrereqReferenceOrName($eclipseMirrorScript, $eclipseMirrorPrefixuri, $eclipseURL, $recommendedFile, $eclipseFSpathPrefix);
+                                echo " or <a href=\"" . $eclipseBuildURL . "\">appropriate platform</a>";
+                                echo " or <a href=\"" . $eclipseBuildHome . "\">equivalent</a></td>";
+                                ?>
+
+                        </tr>
+
+                        <tr valign="top">
+                                <td width="10%"></td>
+                                <td>Webtools Platform (at least WST)</td>
+                                <td align="right"><?php
+                                // debug
+                                // echo "debug: full path: " . $eclipseFSpathPrefix . "/" . $wstMirrorPrefixuri . "/" . $wstFile;
+                                echo getPrereqReferenceOrName($eclipseMirrorScript, $wstMirrorPrefixuri, $wstURL, $wstFile, $eclipseFSpathPrefix);
+                                echo " or <a href=\"" . $wstBuildHome . "\">equivalent</a></td>";
+                                ?>
+
+                        </tr>
+
+                        <tr valign="top">
+                                <td width="10%"></td>
+                                <td>Eclipse Modeling Framework (EMF, XSD InfoSet)</td>
+                                <td align="right"><?php
+                                echo getPrereqReferenceOrName($eclipseMirrorScript, $emfMirrorPrefixuri, $emfURL, $emfFile, $eclipseFSpathPrefix);
+                                echo " or <a href=\"" . $emfBuildHome . "\">equivalent</a></td>";
+                                ?>
+
+                        </tr>
+
+                        <tr valign="top">
+                                <td width="10%"></td>
+                                <td>Graphical Editing Framework (GEF)</td>
+                                <td align="right"><?php
+                                echo getPrereqReferenceOrName($eclipseMirrorScript, $gefMirrorPrefixuri, $gefURL, $gefFile, $eclipseFSpathPrefix);
+                                echo " or <a href=\"" . $gefBuildHome . "\">equivalent</a></td>";
+                                ?>
+
+                        </tr>
+
+                        <tr valign="middle">
+                                <td width="10%"></td>
+                                <td colspan="2">
+                                <hr />
+                                </td>
+                        </tr>
+
+                        <tr valign="top">
+                                <td width="10%"></td>
+                                <td>Eclipse Test Framework (required only for Automated JUnit tests)</td>
+                                <td align="right"><?php
+                                echo getPrereqReferenceOrName($eclipseMirrorScript, $eclipseMirrorPrefixuri, $testURL, $testFile, $eclipseFSpathPrefix);
+                                echo " or <a href=\"" . $eclipseBuildHome . "\">equivalent</a></td>";
+                                ?>
+
+                        </tr>
+
+                        <tr valign="top">
+                                <td width="10%"></td>
+                                <td>Eclipse releng tool (required only for committers to more easily
+                                "release" code to a build)</td>
+                                <td align="right"><?php
+                                echo getPrereqReferenceOrName($eclipseMirrorScript, $eclipseMirrorPrefixuri, $eclipserelengURL, $eclipserelengFile, $eclipseFSpathPrefix);
+                                echo " or <a href=\"" . $eclipseBuildHome . "\">equivalent</a></td>";
+                                ?>
+
+                        </tr>
+
+                        <tr valign="top">
+                                <td width="10%"></td>
+                                <td>Third Party code from Orbit (currently much more than needed
+                                for WTP, but some committers like having the whole heap in their
+                                target)</td>
+                                <td align="right"><?php
+                                echo getPrereqReferenceOrName($eclipseMirrorScript, $orbitthirdpartyzipMirrorPrefixuri, $orbitthirdpartyzipURL, $orbitthirdpartyzipFile,$eclipseFSpathPrefix);
+                                echo " or <a href=\"" . $orbitthirdpartyzipBuildHome . "\">equivalent</a></td>";
+                                ?>
+
+                        </tr>
+
+                </table>
+                </td>
+        </tr>
+</table>
+
+<!-- ***********  WTP **************  -->
+<table border=0 cellspacing=2 cellpadding=2 width="100%">
+        <tr>
+                <td align=left valign=top colspan="5" bgcolor="#0080C0"><font
+                        face="'Bitstream Vera',Helvetica,Arial" color="#FFFFFF"> Web Tools
+                Incubating Components</font></td>
+        </tr>
+
+        <tr>
+                <td align="left" valign="top" colspan="5">
+                <p>@longdescription@</p>
+                </td>
+        </tr>
+        <tr>
+                <td>
+                <table border=0 cellspacing=2 cellpadding=2 width="90%" align="center">
+
+
+                        <tr>
+                                <td align="left" valign="top" width="10%"><b>Minimal</b></td>
+                                <td align="left" valign="top">
+                                <p>Executable code only.</p>
+                                </td>
+                                <?php
+                                $zipfilename="@zipprefix@-${build}";
+                                $filename=$zipfilename.".zip";
+                                $zipfilesize=fileSizeForDisplay($filename);
+                                $fileShortDescription="@shortname@";
+                                displayFileLine($downloadprefix, $filename, $zipfilesize, $fileShortDescription);
+                                ?>
+                        </tr>
+
+                        <tr>
+                                <td align="left" valign="top" width="10%"><b>SDK</b></td>
+                                <td align="left" valign="top">
+                                <p>Executable code and source code.</p>
+                                </td>
+                                <?php
+                                $zipfilename="@zipprefix@-sdk-${build}";
+                                $filename=$zipfilename.".zip";
+                                $zipfilesize=fileSizeForDisplay($filename);
+                                $fileShortDescription="@shortname@ sdk";
+                                displayFileLine($downloadprefix, $filename, $zipfilesize, $fileShortDescription);
+                                ?>
+                        </tr>
+                        <tr>
+                                <td align="left" valign="top" width="10%"><b>Tests</b></td>
+                                <td align="left" valign="top">
+                                <p>Unit tests.</p>
+                                </td>
+                                <?php
+                                $zipfilename="@zipprefix@-tests-${build}";
+                                $filename=$zipfilename.".zip";
+                                $zipfilesize=fileSizeForDisplay($filename);
+                                $fileShortDescription="@shortname@ tests";
+                                displayFileLine($downloadprefix, $filename, $zipfilesize, $fileShortDescription);
+                                ?>
+                        </tr>
+                </table>
+                </td>
+
+
+        <tr>
+
+</table>
+
+
+
+
+
+
+
+<!-- ***********  Build Status **************  -->
+<table border=0 cellspacing=2 cellpadding=2 width="100%">
+        <tr>
+                <td align=left valign=top bgcolor="#0080C0"><font
+                        face="'Bitstream Vera',Helvetica,Arial" color="#FFFFFF">Status, tests
+                and other interesting details</font></td>
+        </tr>
+        <tr>
+                <td>
+                <table border=0 cellspacing=2 cellpadding=2 width="90%" align="center">
+
+                        <tr>
+                                <td><a href="buildNotes.php">Build notes</a> <br />
+                                <a href="directory.txt">map files</a> <br />
+                                <?php
+
+                                if ($displayTestSummary) {
+
+
+                                        if (isset($unitTests_grandTotalErrors)) {
+                                                $errorColor="green";
+                                                if ($unitTests_grandTotalErrors > 0) {
+                                                        $errorColor="red";
+                                                }
+                                                echo "<a href=\"testResults.php\">Unit test results</a>&nbsp;";
+                                                echo "<img src=\"junit_err.gif\"/><font color=\"" . $errorColor . "\">" . $unitTests_grandTotalErrors . "</font>&nbsp;&nbsp;Total: " . $unitTests_grandTotalTests;
+                                        }
+                                        else {
+                                                echo "<br /><font color=\"orange\">Unit tests are pending</font>&nbsp;&nbsp;<img src=\"pending.gif\"/>";
+                                        }
+
+                                        echo "<br />";
+                                        echo "<a href=\"compileResults.php\">Compile logs: Code Bundles</a>";
+
+                                        echo "&nbsp;&nbsp;($code_totalBundles)&nbsp;&nbsp;";
+                                        echo "<img src=\"compile_err.gif\"/><font color=red>$code_totalErrors</font>&nbsp;";
+                                        echo "<img src=\"compile_warn.gif\"/><font color=orange>$code_totalWarnings</font>&nbsp;";
+                                        echo "<img src=\"access_err.gif\"/><font color=red>$code_totalforbiddenAccessWarningCount</font>&nbsp;";
+                                        echo "<img src=\"access_warn.gif\"/><font color=orange>$code_totaldiscouragedAccessWarningCount</font>&nbsp;";
+
+                                        echo "<br />";
+                                        echo "<a href=\"testCompileResults.php\">Compile logs: Test Bundles</a>";
+
+                                        echo "&nbsp;&nbsp;($test_totalBundles)&nbsp;&nbsp;";
+                                        echo "<img src=\"compile_err.gif\"/><font color=red>$test_totalErrors</font>&nbsp;";
+                                        echo "<img src=\"compile_warn.gif\"/><font color=orange>$test_totalWarnings</font>&nbsp;";
+                                        echo "<img src=\"access_err.gif\"/><font color=red>$test_totalforbiddenAccessWarningCount</font>&nbsp;";
+                                        echo "<img src=\"access_warn.gif\"/><font color=orange>$test_totaldiscouragedAccessWarningCount</font>&nbsp;";
+                                }
+
+                                ?> <br />
+
+                                <?php
+                                if (file_exists("versioningReportName.php")) {
+                                        include "versioningReportName.php";
+                                        $fname="${versionReportFilename}.html";
+                                        if (file_exists($fname)) {
+                                                echo "<br /> <a href='$fname'>Versioning Information</a>";
+                                        }
+}
+?> <?php
+echo "<br />";
+if (file_exists("./apiresults/api-progress.html"))
+{
+        echo "<br /> <a href=\"apiresults/api-progress.html\">API Progress Report</a>";
+}
+if (file_exists("./apiresults/api-info-summary.html"))
+{
+        echo "<br /> <a href=\"apiresults/api-info-summary.html\">APIs Defined by Each Component</a>";
+}
+if (file_exists("./apiresults/api-ref-compatibility.html"))
+{
+        echo "<br /> <a href=\"apiresults/api-ref-compatibility.html\">Adopter Breakage Report</a>";
+}
+if (file_exists("./apiresults/api-violation-summary.html"))
+{
+        echo "<br /> <a href=\"apiresults/api-violation-summary.html\">API Violations</a>";
+}
+if (file_exists("./apiresults/component-api-violation-all.html"))
+{
+        echo "<br /> <a href=\"apiresults/component-api-violation-all.html\">Non-API dependencies</a>";
+}
+if (file_exists("./apiresults/api-tc-summary.html"))
+{
+        echo "<br /> <a href=\"apiresults/api-tc-summary.html\">API Test Coverage</a>";
+}
+if (file_exists("./apiresults/api-javadoc-summary.html"))
+{
+        echo "<br /> <a href=\"apiresults/api-javadoc-summary.html\">API Javadoc Coverage</a>";
+}
+if (file_exists("./apiresults/api-tc-summary.html"))
+{
+        echo "<br /><br /> <a href=\"apiresults/full_test_coverage/api-tc-summary.html\">Test Coverage for All Classes and Methods</a>";
+}
+?> <?php
+if (file_exists("./perfresults/graph/performance.php"))
+{
+        echo "<br />";
+        echo "<br /> <a href=\"perfresults/graph/performance.php\">Performance Results</a>";
+        echo "<br />";
+}
+?></td>
+                        </tr>
+
+
+                </table>
+                </td>
+        </tr>
+</table>
+
+
+
+<!-- footer -->
+<center>
+<hr>
+<p>All downloads are provided under the terms and conditions of the <a
+        href="http://www.eclipse.org/legal/notice.html">Eclipse.org Software
+User Agreement</a> unless otherwise specified.</p>
+
+<p>If you have problems downloading the drops, contact the <font
+        face="'Bitstream Vera',Helvetica,Arial" size="-1"><a
+        href="mailto:webmaster@eclipse.org">webmaster</a></font>.</p>
+
+</center>
+<!-- end footer -->
+
+
+</body>
+</html>
diff --git a/releng.wtpbuilder/buildtemplates/distribution/template.site/templateFiles/siteEnablingFeatures.xml b/releng.wtpbuilder/buildtemplates/distribution/template.site/templateFiles/siteEnablingFeatures.xml
new file mode 100644
index 0000000..e4ace4d
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/distribution/template.site/templateFiles/siteEnablingFeatures.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<site>
+
+    <description>
+        The update site contains the enabling features.
+    </description>
+
+
+
+
+
+
+
+    <category-def
+        name="Enabling Features"
+        label="Enabling Features">
+        <description>
+            This category contains features used by several projects
+            that enable some functionality, but which by themselves are
+            not very interesting.
+        </description>
+    </category-def>
+
+
+
+</site>
diff --git a/releng.wtpbuilder/buildtemplates/distribution/template.site/templateFiles/siteWTP.xml b/releng.wtpbuilder/buildtemplates/distribution/template.site/templateFiles/siteWTP.xml
new file mode 100644
index 0000000..e3a86fa
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/distribution/template.site/templateFiles/siteWTP.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<site
+    pack200="true"
+    mirrorsURL="http://www.eclipse.org/downloads/download.php?file=/webtools/testUpdates/site.xml&amp;format=xml"
+    digestURL="http://download.eclipse.org/webtools/testUpdates/">
+
+    <description
+        url="http://download.eclipse.org/webtools/declaredUpdates/index.html">
+        The update site contains the features of the of Eclipse Web
+        Tools Project (WTP)
+    </description>
+
+    <feature
+        url="features/org.eclipse.wst_@org.eclipse.wst@.jar"
+        id="org.eclipse.wst"
+        version="@org.eclipse.wst@">
+        <category name="Web Tools Platform (WTP)" />
+    </feature>
+
+    <feature
+        url="features/org.eclipse.wst.sdk_@org.eclipse.wst.sdk@.jar"
+        id="org.eclipse.wst.sdk"
+        version="@org.eclipse.wst.sdk@">
+        <category name="Web Tools Platform (WTP)" />
+    </feature>
+
+    <feature
+        url="features/org.eclipse.jst_@org.eclipse.jst@.jar"
+        id="org.eclipse.jst"
+        version="@org.eclipse.jst@">
+        <category name="Web Tools Platform (WTP)" />
+    </feature>
+
+    <feature
+        url="features/org.eclipse.jst.sdk_@org.eclipse.jst.sdk@.jar"
+        id="org.eclipse.jst.sdk"
+        version="@org.eclipse.jst.sdk@">
+        <category name="Web Tools Platform (WTP)" />
+    </feature>
+
+
+
+
+    <feature
+        url="features/org.eclipse.jpt.feature_@org.eclipse.jpt.feature@.jar"
+        id="org.eclipse.jpt.feature"
+        version="@org.eclipse.jpt.feature@">
+        <category name="Web Tools Platform (WTP)" />
+    </feature>
+
+    <feature
+        url="features/org.eclipse.jpt_sdk.feature_@org.eclipse.jpt_sdk.feature@.jar"
+        id="org.eclipse.jpt_sdk.feature"
+        version="@org.eclipse.jpt_sdk.feature@">
+        <category name="Web Tools Platform (WTP)" />
+    </feature>
+
+
+    <category-def
+        name="Web Tools Platform (WTP)"
+        label="Web Tools Platform (WTP)">
+        <description>
+            This category contains the features of the Eclipse Web Tools
+            Project (WTP).
+        </description>
+    </category-def>
+
+
+</site>
diff --git a/releng.wtpbuilder/buildtemplates/distribution/template.site/templateFiles/testCompileResults.php.template b/releng.wtpbuilder/buildtemplates/distribution/template.site/templateFiles/testCompileResults.php.template
new file mode 100644
index 0000000..42d6f65
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/distribution/template.site/templateFiles/testCompileResults.php.template
@@ -0,0 +1,76 @@
+<html>
+<head>
+
+<?php
+        $parts = explode("/", getcwd());
+        $parts2 = explode("-", $parts[count($parts) - 1]);
+        $buildName = $parts2[1];
+
+        echo "<title>Compile Logs: Test Bundles for $buildName</title>";
+?>
+
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
+<style>
+.bold, .bold TD, .bold TH, .bold TR
+{
+font-weight:bold;
+}
+.numeric, .numeric TD
+{
+text-align:right;
+padding-right:2em;
+}
+.normaltable, .normaltable TD, .normaltable TH
+{
+font-family:Bitstream Vera Sans Mono, monospace;
+font-size:0.9em;
+color:Black;
+background-color:White;
+}
+.errorltable, .errortable TD, .errortable TH
+{
+font-family:Bitstream Vera Sans Mono, monospace;
+font-size:0.9em;
+color:Black;
+background-color:Red;
+font-weight:Bold;
+}
+.warningtable, .warningtable TD, .warningtable TH
+{
+font-family:Bitstream Vera Sans Mono, monospace;
+font-size:0.9em;
+color:Black;
+background-color:khaki;
+}
+.extraWarningTable, .extraWarningTable TD, .extraWarningTable TH
+{
+font-family:Bitstream Vera Sans Mono, monospace;
+font-size:0.9em;
+color:Black;
+background-color:Yellow;
+}
+</style>
+</head>
+<body>
+
+<?php
+        echo "<h1>Compile Logs: Test Bundles for $buildName</h1>";
+?>
+
+
+<table id=tabledata align = "center" width="75%" border="1">
+  <tr>
+    <td class="bold" align="center">Compile Logs</td>
+    <td class="bold" align="center">Compile Errors</td>
+    <td class="bold" align="center">Compiler Warnings</td>
+    <td class="bold" align="center">Access Violations</td>
+    <td class="bold" align="center">Access Warnings</td>
+  </tr>
+
+  %compilelogs%
+
+</table>
+
+</body>
+</html>
diff --git a/releng.wtpbuilder/buildtemplates/distribution/template.site/templateFiles/testResults.php.template b/releng.wtpbuilder/buildtemplates/distribution/template.site/templateFiles/testResults.php.template
new file mode 100644
index 0000000..ddad0b7
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/distribution/template.site/templateFiles/testResults.php.template
@@ -0,0 +1,119 @@
+<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">
+
+<style>
+.bold, .bold TD, .bold TH, .bold TR
+{
+font-weight:bold;
+}
+.numeric, .numeric TD
+{
+text-align:right;
+padding-right:2em;
+}
+.normaltable, .normaltable TD, .normaltable TH
+{
+font-family:Bitstream Vera Sans Mono, monospace;
+font-size:0.9em;
+color:Black;
+background-color:White;
+}
+.errorltable, .errortable TD, .errortable TH
+{
+font-family:Bitstream Vera Sans Mono, monospace;
+font-size:0.9em;
+color:Black;
+background-color:Red;
+font-weight:Bold;
+}
+.warningtable, .warningtable TD, .warningtable TH
+{
+font-family:Bitstream Vera Sans Mono, monospace;
+font-size:0.9em;
+color:Black;
+background-color:khaki;
+}
+.extraWarningTable, .extraWarningTable TD, .extraWarningTable TH
+{
+font-family:Bitstream Vera Sans Mono, monospace;
+font-size:0.9em;
+color:Black;
+background-color:Yellow;
+
+}
+</style>
+
+
+</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>
+
+<table id=tableunittestdata align = "center" width="75%" border="1">
+  <tr> 
+    <td class="bold" align="center" width="70%">Test Suite</td>
+    <td class="bold" align="center" width="10%">Errors &amp; Failures</td>
+    <td class="bold" align="center" width="10%">Total Tests</td>
+    <td class="bold" align="center" width="10%">Total Time (s)</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>
+
+
+</body>
+</html>
diff --git a/releng.wtpbuilder/buildtemplates/distribution/template.site/transformReportToHTML.xml b/releng.wtpbuilder/buildtemplates/distribution/template.site/transformReportToHTML.xml
new file mode 100644
index 0000000..f5a70cd
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/distribution/template.site/transformReportToHTML.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project
+    name="xsl-conversion"
+    default="main"
+    basedir=".">
+
+    <target
+        name="main"
+        description="example.bin.xml to produce example.html">
+        <xslt
+            basedir="."
+            destdir="."
+            includes="*.bin.xml"
+            scanincludeddirectories="true"
+            style="compilerXMLOutputToHTML.xsl"
+            force="true" />
+    </target>
+</project>
\ No newline at end of file
diff --git a/releng.wtpbuilder/buildtemplates/distribution/template.tests/build.xml b/releng.wtpbuilder/buildtemplates/distribution/template.tests/build.xml
new file mode 100644
index 0000000..c417b75
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/distribution/template.tests/build.xml
@@ -0,0 +1,326 @@
+<project
+    name="Build specific targets and properties"
+    default="runTest">
+
+	<!-- Note to be cross-platform, "environment variables" are only appropriate for
+        some variables, e.g. ones we set, since properties are case sensitive, even if
+        the environment variables on your operating system are not, e.g. it will
+        be ${env.Path} not ${env.PATH} on Windows -->
+    <property
+        environment="env" />
+    <fail
+        message="testRoot must be set for this task"
+        unless="testRoot" />
+  <!-- required to get proper value of dropinsFolder -->      
+  <property name="keyCfgFile" value="${env.PROJECT_BUILDERS}/${projectname}/${env.RELENG}/maps/build.cfg" />
+  <echo 
+  	level="debug"
+  	message="keyCfgFile: ${keyCfgFile}" />
+  <property file="${keyCfgFile}" />
+        
+
+	<!-- 
+	   Steps to do after the build is done. 
+	 -->
+    <target
+        name="test">
+        <dirname
+            file="${ant.file}"
+            property="currentDirectory" />
+        <ant
+            antfile="${ant.file}"
+            target="runTest"
+            dir="${currentDirectory}" />
+    </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" />
+        <fail
+            message="testRoot must be set for this task"
+            unless="testRoot" />
+        <mkdir
+            dir="${testRoot}" />
+
+		<!-- if results already exist, delete them -->
+        <delete
+            dir="${testRoot}/results"
+            failOnError="false" />
+        <mkdir
+            dir="${testRoot}/results" />
+        <mkdir
+            dir="${testRoot}/results/consolelogs" />
+        <mkdir
+            dir="${testRoot}/results/consolelogs/metadata-logs" />
+        <mkdir
+            dir="${testRoot}/results/consolelogs/configuration-logs" />
+        <copy
+            todir="${testRoot}"
+            overwrite="true">
+            <fileset
+                dir="${test.component.dir}/testScripts" />
+        </copy>
+        <echo
+            message="BASEOS: ${env.BASEOS}   BASEWS: ${env.BASEWS}   BASEARCH: ${env.BASEARCH} " />
+        <ant
+            antfile="${test.component.dir}/testdependency.xml"
+            target="get">
+            <property
+                name="dependency.properties"
+                value="${buildDirectory}/maps/${env.RELENG}/maps/dependencies.properties" />
+            <property
+                name="base.install.dir"
+                value="${testRoot}" />
+        </ant>
+        <antcall
+            target="unzipTests" />
+        <antcall
+            target="runTestEclipse">
+            <param
+                name="testTarget"
+                value="all" />
+        </antcall>
+        <antcall
+            target="postRunTestEclipse">
+            <param
+                name="testTarget"
+                value="all" />
+        </antcall>
+    </target>
+    <target
+        name="unzipTests">
+
+		<!--unzip the builds and junit tests
+            we use 'unzip' here, so we can continue on error, if desired.
+            (such as if zip was not created, due to other failures or options).
+        -->
+        <echo
+            message="installing sdk" />
+        <exec
+            dir="${buildDirectory}/${buildLabel}"
+            executable="unzip"
+            failonerror="true">
+            <arg
+                line="-o -qq  @zipprefix@-sdk-${buildLabel}.zip -d ${testRoot}${dropinsFolder}" />
+        </exec>
+        <echo
+            message="installing tests" />
+        <exec
+            dir="${buildDirectory}/${buildLabel}"
+            executable="unzip"
+            failonerror="true">
+            <arg
+                line="-o -qq @zipprefix@-tests-${buildLabel}.zip -d ${testRoot}${dropinsFolder}" />
+        </exec>
+    </target>
+
+	<!-- time out may need to be set/adjust for api or performance tests?
+        This testTimeLimit is the whole, overall limit on tests. There's a shorter 
+        one for individual suites.
+        
+        some common values, of milliseconds to more recognizable units:
+        7200000: 2 hours
+        3600000: 1 hour
+        1800000: 30 minutes
+        600000: 10 minutes
+    -->
+    <property
+        name="testTimeLimit"
+        value="7200000" />
+    <property
+        name="testFailOnError"
+        value="false" />
+    <target
+        name="runTestEclipse"
+        description="Run our JUnit's within an instance of antRunner">
+        <property
+            name="test-vm"
+            value="${env.JAVA_6_HOME}/bin/java" />
+        <property
+            name="plugin-path"
+            value="${testRoot}${dropinsFolder}/eclipse/plugins" />
+        <property
+            name="vmargs"
+            value="-Xmx512m -Dosgi.ws=${env.BASEWS} -Dosgi.os=${env.BASEOS} -Dosgi.arch=${env.BASEARCH} -Dws=${env.BASEWS} -Dos=${env.BASEOS} -Darch=${env.BASEARCH} -Dnoclean=true -DbuildBranch=${buildBranch} -DbuildType=${buildType} -DbuildId=${buildId} -DtestRoot=${testRoot} -DtestDir=${testRoot} -DbuildDirectory=${buildDirectory} -Dbuild.home=${env.BUILD_HOME} -DeclipseBuilderDirectory=${pde.builder.path} -DbuildLabel=${buildLabel} -Dtest-vm=${test-vm}  -Dperf.buildId=${buildType}${date}-${time}" />
+
+
+		<!-- set path to eclipse folder. If local folder, use '.'; otherwise, use c:\path\to\eclipse or /path/to/eclipse/ -->
+        <property
+            name="eclipse.home"
+            value="${testRoot}" />
+        <echo
+            message="Running junits" />
+
+		<!-- 
+            Remember: using -debug for org.eclipse.ant.core.antRunner 
+            produces ant debug info to be output ... which is a TON of stuff 
+        -->
+        <echo
+            message="eclipse.launcher: ${eclipse.launcher}" />
+        <java
+            taskname="unit-test-masterprocess"
+            fork="true"
+            resultProperty="wtpmasterjunitresult"
+            failonerror="false"
+            timeout="${testTimeLimit}"
+            dir="${testRoot}/eclipse"
+            jvm="${env.JAVA_6_HOME}/bin/java"
+            classname="org.eclipse.equinox.launcher.Main">
+            <classpath>
+                <fileset
+                    dir="${testRoot}/eclipse/plugins">
+                    <include
+                        name="org.eclipse.equinox.launcher_*.jar" />
+                </fileset>
+            </classpath>
+            <jvmarg
+                value="-Xmx512m" />
+            <jvmarg
+                value="-Dosgi.ws=${env.BASEWS}" />
+            <jvmarg
+                value="-Dosgi.os=${env.BASEOS}" />
+            <jvmarg
+                value="-Dosgi.arch=${env.BASEARCH}" />
+            <jvmarg
+                value="-Dws=${env.BASEWS}" />
+            <jvmarg
+                value="-Dos=${env.BASEOS}" />
+            <jvmarg
+                value="-Darch=${env.BASEARCH}" />
+
+            <jvmarg
+                value="-Dnoclean=true" />
+            <jvmarg
+                value="-DbuildBranch=${buildBranch}" />
+            <jvmarg
+                value="-DbuildType=${buildType}" />
+            <jvmarg
+                value="-DbuildId=${buildId}" />
+            <jvmarg
+                value="-Djava.io.tmpdir=${env.RECOMMENDED_TMP_DIR}" />
+            <jvmarg
+                value="-Dprojectname=${projectname}" />
+            <arg
+                value="-nosplash" />
+            <arg
+                value="-consolelog" />
+            <arg
+                value="-data" />
+            <arg
+                value="${testRoot}/overallTestWorkspace" />
+            <arg
+                value="-application" />
+            <arg
+                value="org.eclipse.ant.core.antRunner" />
+            <arg
+                value="-file" />
+            <arg
+                value="${testRoot}/test.xml" />
+            <arg
+                value="-logger" />
+            <arg
+                value="org.apache.tools.ant.DefaultLogger" />
+            <env
+                key="DISPLAY"
+                value="${env.DISPLAY}" />
+            <redirector
+                output="${testRoot}/results/fullOutput.txt"
+                error="${testRoot}/results/fullErrorLog.txt" />
+            <sysproperty
+                key="build.home"
+                value="${env.BUILD_HOME}" />
+            <sysproperty
+                key="buildDirectory"
+                value="${buildDirectory}" />
+            <sysproperty
+                key="buildLabel"
+                value="${buildLabel}" />
+            <sysproperty
+                key="baseLocation"
+                value="${baseLocation}" />
+            <sysproperty
+                key="testRoot"
+                value="${testRoot}" />
+            <sysproperty
+                key="testDir"
+                value="${testRoot}" />
+            <sysproperty
+                key="perf.buildId"
+                value="${buildType}${date}-${time}" />
+            <sysproperty
+                key="eclipseBuilderDirectory"
+                value="${pde.builder.path}" />
+            <sysproperty
+                key="buildLabel"
+                value="${buildLabel}" />
+        </java>
+        <echo
+            message="wtpmasterjunitresult ${wtpmasterjunitresult}" />
+    </target>
+    <target
+        name="postRunTestEclipse">
+        <copy
+            todir="${buildDirectory}/${buildLabel}/testResults/consolelogs/testLogs"
+            overwrite="true"
+            failonerror="false">
+            <fileset
+                dir="${testRoot}/results">
+                <include
+                    name="*output.txt" />
+            </fileset>
+        </copy>
+        <copy
+            todir="${buildDirectory}/${buildLabel}/testResults/consolelogs/testSysErrorLogs"
+            overwrite="true"
+            failonerror="false">
+            <fileset
+                dir="${testRoot}/results">
+                <include
+                    name="*error.txt" />
+            </fileset>
+        </copy>
+        <copy
+            file="${testRoot}/results/fullOutput.txt"
+            toDir="${buildDirectory}/${buildLabel}/testResults/consolelogs/full"
+            overwrite="true"
+            failonerror="false">
+        </copy>
+        <copy
+            file="${testRoot}/results/fullErrorLog.txt"
+            toDir="${buildDirectory}/${buildLabel}/testResults/consolelogs/full"
+            overwrite="true"
+            failonerror="false">
+        </copy>
+        <copy
+            todir="${buildDirectory}/${buildLabel}/testResults/xml"
+            overwrite="true"
+            failonerror="false">
+            <fileset
+                dir="${testRoot}/results/xml">
+                <include
+                    name="*.xml" />
+            </fileset>
+        </copy>
+        <copy
+            todir="${buildDirectory}/${buildLabel}/testResults/html"
+            overwrite="true"
+            failonerror="false">
+            <fileset
+                dir="${testRoot}/results/html">
+                <include
+                    name="*.html" />
+            </fileset>
+        </copy>
+    </target>
+</project>
\ No newline at end of file
diff --git a/releng.wtpbuilder/buildtemplates/distribution/template.tests/templateFiles/index.php b/releng.wtpbuilder/buildtemplates/distribution/template.tests/templateFiles/index.php
new file mode 100644
index 0000000..8d23693
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/distribution/template.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/buildtemplates/distribution/template.tests/testScripts/ComputePluginVersion.jar b/releng.wtpbuilder/buildtemplates/distribution/template.tests/testScripts/ComputePluginVersion.jar
new file mode 100644
index 0000000..ad06a45
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/distribution/template.tests/testScripts/ComputePluginVersion.jar
Binary files differ
diff --git a/releng.wtpbuilder/buildtemplates/distribution/template.tests/testScripts/JUNIT.XSL b/releng.wtpbuilder/buildtemplates/distribution/template.tests/testScripts/JUNIT.XSL
new file mode 100644
index 0000000..f57faaa
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/distribution/template.tests/testScripts/JUNIT.XSL
@@ -0,0 +1,580 @@
+<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/buildtemplates/distribution/template.tests/testScripts/test.xml b/releng.wtpbuilder/buildtemplates/distribution/template.tests/testScripts/test.xml
new file mode 100644
index 0000000..ba1431e
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/distribution/template.tests/testScripts/test.xml
@@ -0,0 +1,184 @@
+<project
+    name="Automated Eclipse Testing"
+    default="all"
+    basedir=".">
+    <property
+        environment="env" />
+  
+  <!-- required to get proper value of dropinsFolder -->      
+  <property name="keyCfgFile" value="${env.PROJECT_BUILDERS}/${projectname}/${env.RELENG}/maps/build.cfg" />
+  <echo
+	    level="debug"
+	    message="keyCfgFile: ${keyCfgFile}" />
+  <property file="${keyCfgFile}" />
+              
+    <echo
+        level="info"
+        message="starting Automated Eclipse Testing" />
+    <echo
+        level="debug"
+        message="basedir: ${basedir}" />
+    <echo
+        level="debug"
+        message="testRoot: ${testRoot}" />
+    <fail
+        message="testRoot must be set"
+        unless="testRoot" />
+
+    <!--properties file containing the build information-->
+    <property
+        file="${buildDirectory}/label.properties" />
+
+    <!--default directory where test-eclipse will be installed-->
+    <property
+        name="install"
+        value="${testRoot}" />
+
+    <!--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="${testRoot}${dropinsFolder}/eclipse/" />
+
+    <!-- The directory that will contain the xml and html results from the tests that are run -->
+    <property
+        name="results"
+        value="${testRoot}/results" />
+    <target
+        name="init">
+        <antcall
+            target="computePluginVersion" />
+        <property
+            file="${testRoot}/test2.properties" />
+    </target>
+    <target
+        name="runtests"
+        description="Runs ant on the test.xml for a specified plugin.">
+        <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="${testRoot}/wtp-junit-tests.xml" />
+        </ant>
+        <copy
+            file="${eclipse-home}/${report}.xml"
+            tofile="${results}/xml/${report}_${platform}.xml"
+            failonerror="false" />
+        <antcall
+            target="genHtml" />
+    </target>
+    <target
+        name="@shortname@-tests"
+        depends="init">
+        <antcall
+            target="runtests">
+            <param
+                name="testPlugin"
+                value="${@testplugin@}" />
+            <param
+                name="report"
+                value="@testplugin@" />
+        </antcall>
+          	
+    </target>
+
+	
+	<!-- releng Tests -->
+  <!--
+    <target
+        name="releng-tests"
+        depends="init"
+        description="Runs the releng tests.">
+        <antcall target="runtests">
+            <param
+                name="testPlugin"
+                value="${org.eclipse.wtp.releng.tests}" />
+            <param
+                name="report"
+                value="org.eclipse.wtp.releng.tests" />
+        </antcall>
+    </target>
+   -->
+    <target
+        name="all"
+        depends="init">
+        <echo
+            level="info"
+            message="Starting Unit Tests" />
+
+      <!--
+        <echo
+            level="info"
+            message="Starting releng tests" />
+        <antcall target="releng-tests" />
+      -->
+        <echo
+            level="info"
+            message="Starting @shortname@ tests" />
+        <antcall
+            target="@shortname@-tests" />
+        <echo
+            level="info"
+            message="Ended Unit Tests" />
+    </target>
+    <target
+        name="genHtml"
+        description="Generates HTML results with provided JUNIT.XSL provided"
+        unless="genHtml.disable">
+        <xslt
+            style="JUNIT.XSL"
+            basedir="${results}/xml"
+            destdir="${results}/html" />
+    </target>
+    <target
+        name="computePluginVersion"
+        depends="test2properties"
+        unless="test2propertiesexists">
+        <java
+            classname="org.eclipse.wtp.releng.test.ComputePluginVersion">
+            <classpath>
+                <pathelement
+                    location="ComputePluginVersion.jar" />
+            </classpath>
+            <arg
+                value="${eclipse-home}/plugins" />
+            <arg
+                value="${testRoot}/test2.properties" />
+            <jvmarg
+                value="-Djava.io.tmpdir=${env.RECOMMENDED_TMP_DIR}" />
+        </java>
+    </target>
+    <target
+        name="test2properties">
+        <condition
+            property="test2propertiesexists">
+            <available
+                file="${testRoot}/test2.properties" />
+        </condition>
+    </target>
+</project>
\ No newline at end of file
diff --git a/releng.wtpbuilder/buildtemplates/distribution/template.tests/testScripts/wtp-junit-tests.xml b/releng.wtpbuilder/buildtemplates/distribution/template.tests/testScripts/wtp-junit-tests.xml
new file mode 100644
index 0000000..5108dad
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/distribution/template.tests/testScripts/wtp-junit-tests.xml
@@ -0,0 +1,317 @@
+<?xml version="1.0"?>
+<project
+    name="JUnit tests"
+    basedir=".">
+    <property
+        environment="env" />
+  <!-- required to get proper value of dropinsFolder -->      
+  <property name="keyCfgFile" value="${env.PROJECT_BUILDERS}/${projectname}/${env.RELENG}/maps/build.cfg" />
+  <echo 
+  	level="debug"
+  	message="keyCfgFile: ${keyCfgFile}" />
+  <property file="${keyCfgFile}" />
+        
+    <target
+        name="init">
+    <!--
+            Parameters:
+            (Mandatory)
+            data-dir                - the workspace directory for Eclipse to write its data
+            plugin-name             - symboic name of the plugin to test
+            testPlugin        - directory name of plugin (with version suffix)
+            classname               - the name of the test class
+            
+            (Optional - overrides defaults set in script)
+            extraVMargs             - allows separate setting of VM args from separate caller.
+            timeout                 - overrides default test timeout value (in milliseconds).
+        -->
+        <property
+            name="junit-report-output"
+            value="${testRoot}/results" />
+        <mkdir
+            dir="${junit-report-output}/raw" />
+
+
+    <!-- if not otherwise set, be sure extraVMargs is at least empty string -->
+        <property
+            name="extraVMargs"
+            value="" />
+
+    <!-- if not otherwise set, use a unique workspace name -->
+        <property
+            name="data-dir"
+            value="${testRoot}/junitworkspaces/workspace-${classname}" />
+        <property
+            name="testRoot"
+            value="${testRoot}" />
+        <property
+            name="timeout"
+            value="1800000" />
+        <property
+            name="junit-report-output"
+            value="${junit-report-output}" />
+        <property
+            name="plugin-path"
+            value="${testRoot}${dropinsFolder}/eclipse/plugins/${testPlugin}" />
+        <property
+            name="formatter"
+            value="org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter" />
+        <property
+            name="test-output"
+            value="${junit-report-output}/raw/${classname}.xml" />
+        <property
+            name="jvm"
+            value="${env.JAVA_6_HOME}/bin/java" />
+        <dirname
+            file="${ant.file}"
+            property="currentDir" />
+        <echo
+            level="debug"
+            message="data-dir: ${data-dir}" />
+        <echo
+            level="debug"
+            message="plugin-name: ${plugin-name}" />
+        <echo
+            level="debug"
+            message="testPlugin: ${testPlugin}" />
+        <echo
+            level="debug"
+            message="classname: ${classname}" />
+        <echo
+            level="debug"
+            message="extraVMargs: ${extraVMargs}" />
+        <echo
+            level="debug"
+            message="timeout: ${timeout}" />
+        <echo
+            level="debug"
+            message="testRoot: ${testRoot}" />
+        <echo
+            level="debug"
+            message="basedir: ${basedir}" />
+        <echo
+            level="debug"
+            message="eclipse-home: ${eclipse-home}" />
+        <echo
+            level="debug"
+            message="plugin-path: ${plugin-path}" />
+        <echo
+            level="debug"
+            message="junit-report-output: ${junit-report-output}" />
+        <echo
+            level="debug"
+            message="test-output: ${test-output}" />
+        <echo
+            level="debug"
+            message="buildDirectory: ${buildDirectory}" />
+        <echo
+            level="debug"
+            message="buildLabel: ${buildLabel}" />
+        <echo
+            level="debug"
+            message="jvm: ${jvm}" />
+    </target>
+    <target
+        name="core-test"
+        depends="init">
+        <echo
+            level="info"
+            message="test-type: core-test" />
+        <ant
+            antfile="${ant.file}"
+            dir="${currentDir}"
+            target="eclipse-test">
+            <property
+                name="application"
+                value="org.eclipse.test.coretestapplication" />
+        </ant>
+    </target>
+    <target
+        name="ui-test"
+        depends="init">
+        <echo
+            level="info"
+            message="test-type: ui-test" />
+        <ant
+            antfile="${ant.file}"
+            dir="${currentDir}"
+            target="eclipse-test">
+            <property
+                name="application"
+                value="org.eclipse.test.uitestapplication" />
+        </ant>
+    </target>
+    <target
+        name="eclipse-test"
+        description="Runs the specified classname as a plug-in test.">
+        <echo
+            level="info"
+            message="Running ${classname}" />
+        <echo
+            level="debug"
+            message="Result file: ${junit-report-output}/${classname}.xml." />
+        <echo
+            level="debug"
+            message="DISPLAY: ${env.DISPLAY}" />
+
+    <!-- If there is not exactly one launcher in the stack, 
+            we'd best fail fast, since we are not expecting that, 
+            and may indicate an installation that would produce unpredictable
+            results -->
+    <!-- requires ant 1.7, and at this point, we're running 1.6 from 
+            eclipse ... 
+            
+            <condition property="expectedNumberOfLaunchers">
+            <resourcecount when="equal" count="1" >
+            <fileset dir="${testRoot}/eclipse/plugins">
+            <include name="org.eclipse.equinox.launcher_*.jar" />
+            </fileset>    
+            </resourcecount>
+            </condition>
+            <fail message="Did not find expected number of launcher jars. Check installation." unless="expectedNumberOfLaunchers" />
+        -->
+        <java
+            taskname="suiteUnitTest"
+            fork="true"
+            resultProperty="suitejunitresult"
+            failonerror="false"
+            timeout="${timeout}"
+            dir="${testRoot}/eclipse"
+            jvm="${jvm}"
+            classname="org.eclipse.equinox.launcher.Main">
+            <classpath>
+                <fileset
+                    dir="${testRoot}/eclipse/plugins">
+                    <include
+                        name="org.eclipse.equinox.launcher_*.jar" />
+                </fileset>
+            </classpath>
+            <jvmarg
+                value="-Xmx512m" />
+            <jvmarg
+                value="-Dosgi.ws=${env.BASEWS}" />
+            <jvmarg
+                value="-Dosgi.os=${env.BASEOS}" />
+            <jvmarg
+                value="-Dosgi.arch=${env.BASEARCH}" />
+            <jvmarg
+                value="-DbuildLabel=${buildLabel}" />
+            <jvmarg
+                value="-DbuildDirectory=${buildDirectory}" />
+            <jvmarg
+                value="-Djava.protocol.handler.pkgs=com.ibm.etools.www.protocol" />
+            <jvmarg
+                value="-DurlLogLocation=${buildDirectory}/outgoinghttplogfromtests.log" />
+            <jvmarg
+                value="-Dwtp.autotest.noninteractive=true" />
+            <jvmarg
+                value="-DPLUGIN_PATH=${plugin-path}" />
+            <jvmarg
+                line="${extraVMargs}" />
+            <jvmarg
+                value="-Djava.io.tmpdir=${env.RECOMMENDED_TMP_DIR}" />
+            <jvmarg
+                value="-Dprojectname=${projectname}" />
+            <arg
+                value="-nosplash" />
+            <arg
+                value="-consolelog" />
+            <arg
+                value="-debug" />
+            <arg
+                value="-data" />
+            <arg
+                value="${data-dir}" />
+            <arg
+                value="-application" />
+            <arg
+                value="${application}" />
+            <arg
+                value="formatter=${formatter},${test-output}" />
+            <arg
+                value="-testPluginName" />
+            <arg
+                value="${plugin-name}" />
+            <arg
+                value="-className" />
+            <arg
+                value="${classname}" />
+            <env
+                key="DISPLAY"
+                value="${env.DISPLAY}" />
+            <redirector
+                output="${junit-report-output}/${classname}.output.txt"
+                error="${junit-report-output}/${classname}.error.txt" />
+        </java>
+        <echo
+            level="info"
+            message="suitejunitresult: ${suitejunitresult}" />
+        <antcall
+            target="summarizeFailure" />
+        <antcall
+            target="collect-results" />
+    </target>
+    <target
+        name="collect-results">
+        <dirname
+            property="output-dir"
+            file="${test-output}" />
+        <basename
+            property="output-file-name"
+            file="${test-output}" />
+        <mkdir
+            dir="${junit-report-output}/xml" />
+        <junitreport
+            todir="${junit-report-output}/xml"
+            tofile="${classname}.xml">
+            <fileset
+                dir="${output-dir}">
+                <include
+                    name="${output-file-name}" />
+            </fileset>
+        </junitreport>
+        <mkdir
+            dir="${junit-report-output}/html" />
+        <xslt
+            style="${testRoot}/JUNIT.XSL"
+            basedir="${junit-report-output}"
+            includes="${classname}.xml"
+            destdir="${junit-report-output}/html" />
+        <copy
+            file="${data-dir}/.metadata/.log"
+            toFile="${testRoot}/results/consolelogs/metadata-logs/${classname}.workspace.log"
+            overwrite="true"
+            failonError="false" />
+
+    <!-- todo: this, especially, should be concat (there could be more than one, in theory) -->
+        <copy
+            file="${testRoot}/eclipse/configuration/*.log"
+            toFile="${testRoot}/results/consolelogs/configuration-logs/${classname}.config.log"
+            overwrite="true"
+            failonError="false" />
+    </target>
+    <target
+        name="collect">
+    <!--  deprecated, each test.xml uses it, and we should remove, eventually -->
+    </target>
+    <target
+        name="summarizeFailure"
+        depends="checkFailure"
+        if="doFailure">
+        <echo
+            append="true"
+            file="${buildDirectory}/junitFailureList.log">${plugin-name}${line.separator}</echo>
+    </target>
+    <target
+        name="checkFailure">
+        <condition
+            property="doFailure">
+            <not>
+                <equals
+                    arg1="${suitejunitresult}"
+                    arg2="0"
+                    trim="true" />
+            </not>
+        </condition>
+    </target>
+</project>
\ No newline at end of file
diff --git a/releng.wtpbuilder/buildtemplates/distribution/template.tests/testdependency.xml b/releng.wtpbuilder/buildtemplates/distribution/template.tests/testdependency.xml
new file mode 100644
index 0000000..39916b9
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/distribution/template.tests/testdependency.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0"?>
+<!-- ====================================================================== 
+    Properties that must be passed to this script:
+    base.install.dir
+    dependencyTargets
+    local.cache.dir
+    dependency.properties
+    
+    ====================================================================== -->
+<project
+    name="test"
+    default="get">
+  <property
+      environment="env" />
+<!-- required to get proper value of dropinsFolder -->      
+<property name="keyCfgFile" value="${env.PROJECT_BUILDERS}/${projectname}/${env.RELENG}/maps/build.cfg" />
+<echo 
+	level="debug"
+	message="keyCfgFile: ${keyCfgFile}" />
+<property file="${keyCfgFile}" />
+    <target name="get">
+        <antcall target="getAndInstallDropins">
+            <param
+                name="groupId"
+                value="emf" />
+        </antcall>
+          <antcall target="getAndInstallDropins">
+              <param
+                  name="groupId"
+                  value="emfxsd" />
+          </antcall>                  
+            <antcall target="getAndInstallDropins">
+            <param
+                name="groupId"
+                value="gef" />
+        </antcall>
+
+
+        <antcall target="getAndInstallBase">
+            <param
+                name="groupId"
+                value="eclipse" />
+        </antcall>
+        <antcall target="getAndInstallDropins">
+            <param
+                name="groupId"
+                value="eclipseTestFramework" />
+        </antcall>
+        <antcall target="getAndInstallDropins">
+            <param
+                name="groupId"
+                value="wst" />
+        </antcall>
+
+    </target>
+
+
+    <target name="getAndInstallBase">
+        <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>
+
+    <target name="getAndInstallDropins">
+        <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}${dropinsFolder}" />
+        </ant>
+    </target>
+
+
+
+
+</project>
+
diff --git a/releng.wtpbuilder/buildtemplates/jaxws.properties b/releng.wtpbuilder/buildtemplates/jaxws.properties
new file mode 100644
index 0000000..3bd1764
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/jaxws.properties
@@ -0,0 +1,32 @@
+
+# These first three properties are mainly for component templates
+
+#  'featurename' assumes group of three features 
+#  a) featurename.feature
+#  b) featurename_sdk.feature
+#  c) featurename_tests.feature
+
+featurename=org.eclipse.jst.ws.cxf 
+
+#  'zipprefix' is prefixed to -[type]-${buildlabel}, 
+#  where type is empty, 'sdk' or 'tests', 
+#  usually of the form [top-level project]-[project]-[component]
+#  for example, wtp-incubator-xmlsecurity
+zipprefix=wtp-incubator-jaxws
+
+#  'relengmapseng' must match the environment variable set in 
+#  commonComputedVariables, such as RELENGXMLSEC
+relengmapsenv=RELENGJAXWS
+
+
+# These next three properties are mainly for distribution template files
+
+# 'shortname' effects all foldernames too, plus some content, in distribution section
+shortname=jaxws
+
+# longdescription appears on the download webpage
+longdescription=The Zip files includes the features and plugins for the WTP Incubator XML VEX Component.
+
+# testplugin is the "main" test plugin, which may "call" the others
+testplugin=org.eclipse.jst.cfx.tests
+
diff --git a/releng.wtpbuilder/buildtemplates/xmlsec.properties b/releng.wtpbuilder/buildtemplates/xmlsec.properties
new file mode 100644
index 0000000..44fc3ce
--- /dev/null
+++ b/releng.wtpbuilder/buildtemplates/xmlsec.properties
@@ -0,0 +1,32 @@
+
+# These first three properties are mainly for component templates
+
+#  'featurename' assumes group of three features 
+#  a) featurename.feature
+#  b) featurename_sdk.feature
+#  c) featurename_tests.feature
+
+featurename=org.eclipse.wst.xml.security 
+
+#  'zipprefix' is prefixed to -[type]-${buildlabel}, 
+#  where type is empty, 'sdk' or 'tests', 
+#  usually of the form [top-level project]-[project]-[component]
+#  for example, wtp-incubator-xmlsecurity
+zipprefix=wtp-incubator-xmlsecurity
+
+#  'relengmapseng' must match the environment variable set in 
+#  commonComputedVariables, such as RELENGXMLSEC
+relengmapsenv=RELENGXMLSEC
+
+
+# These next three properties are mainly for distribution template files
+
+# 'shortname' effects all foldernames too, plus some content, in distribution section
+shortname=xmlsec
+
+# longdescription appears on the download webpage
+longdescription=The Zip files includes the features and plugins for the WTP Incubator XML VEX Component.
+
+# testplugin is the "main" test plugin, which may "call" the others
+testplugin=org.eclipse.wst.xml.security.core.tests
+
