This commit was manufactured by cvs2svn to create branch
'R1_5_5_patches_patches'.
diff --git a/assembly/features/org.eclipse.wtp.patch.assembly.feature/feature.xml b/assembly/features/org.eclipse.wtp.patch.assembly.feature/feature.xml
index 7c347ef..ddcd92c 100644
--- a/assembly/features/org.eclipse.wtp.patch.assembly.feature/feature.xml
+++ b/assembly/features/org.eclipse.wtp.patch.assembly.feature/feature.xml
@@ -24,6 +24,10 @@
         version="0.0.0" />
 
     <includes
+        id="org.eclipse.wst.ws_ui.feature.patch"
+        version="0.0.0" />
+
+    <includes
         id="org.eclipse.wst.web_core.feature.patch"
         version="0.0.0" />
 
diff --git a/releng.wtpbuilder/.project b/releng.wtpbuilder/.project
index 2d52675..92eabd2 100644
--- a/releng.wtpbuilder/.project
+++ b/releng.wtpbuilder/.project
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-    <name>releng.wtpbuilder R1_5_5_patches</name>
+    <name>releng.wtpbuilder</name>
     <comment></comment>
     <projects></projects>
     <buildSpec>
diff --git a/releng.wtpbuilder/build.properties b/releng.wtpbuilder/build.properties
index 22374e3..4612d01 100644
--- a/releng.wtpbuilder/build.properties
+++ b/releng.wtpbuilder/build.properties
@@ -9,37 +9,12 @@
 # skipUnitTests=yes
 
 #
-# in 3.2 based builds, this version is no longer appended to 
+# in 3.2 based builds, this version is no longer appended to
 # pde builder directory name.
 #eclipse.base.version=3.1.0
 
-eclipse.builder=org.eclipse.releng.basebuilder
-#eclipse.builder.version=M3_34
-eclipse.builder.version=r322_v20070104
-# uncomment if its desired to 'force' fetch of eclipse builder
-# (if not already defined from elsewhere)
-eclipse.builder.fetch=true
-
-
-# WTP specific builder
-#wtpBuildTools.url=http://download.eclipse.org/webtools/wtpBuildTools/drops/R3.0/T-T200706302239-200706302239/updateSite/plugins
-#wtpBuildTools.file=org.eclipse.wtp.releng.tools_1.0.0.v200706302235.jar
-#wtpBuildTools.url=http://download.eclipse.org/webtools/wtpBuildTools/drops/R3.0/T-T20080102233556-20080102233556/updateSite/plugins
-#wtpBuildTools.file=org.eclipse.wtp.releng.tools_1.0.0.v200801022134.jar
-wtpBuildTools.url=http://download.eclipse.org/webtools/wtpBuildTools/drops/R3.0/T-T20080103173003-20080103173003/updateSite/plugins
-wtpBuildTools.file=org.eclipse.wtp.releng.tools_1.0.0.v200801031730.jar
-
-
-
 archivesFormat=*,*,*-antZip
 
-# 	This parameter is specific to the compiler
-# 	being used (JDT Compiler, in our case).
-# 	'showversion' causes the version of JDT Compiler to be 
-# 	printed to the compiler log file. 
-#compilerArg=-showversion -encoding ISO-8859-1 -warn:-discouraged,serial,raw
-compilerArg=-showversion -encoding ISO-8859-1 -warn:-discouraged,serial,raw,typeHiding,unchecked,unusedImport
-
 logExtension=.xml
 # 	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.
@@ -54,37 +29,3 @@
 # 	using the JDT Compiler Adapter to compile.
 javacVerbose=true
 #############################################################
-
-
-# 	Set this to the relative path for the 
-# 	directory to be used for the peformance test.
-# 	It is relative to the build home.
-build.perf.tests=perf-current
-
-# This is the directory in which eclipse driver
-# that will be used to compile the build will
-# be installed into it is relative to the build.current
-base.location=eclipse
-
-
-# 	This is the working directory in which 
-# 	build process will do its job
-# 	It is relative to the build.current
-build.directory=workdir
-
-
-#############################################################
-# Other inline resolved properties
-pde.builder.path=${env.BASE_BUILDERS}/${eclipse.builder.version}/${eclipse.builder}
-
-# Beginning with 33M5, the startup.jar was removed. Currently, in basebuilder, 
-# this launcher is provided without version number. If we ever move to use plain
-# eclipse, we'll need a bit of script find and rename (or set the variable). 
-# to ever "go backwards" this one variable could be ${pde.builder.path}/startup.jar
-#eclipse.launcher=${pde.builder.path}/plugins/org.eclipse.equinox.launcher.jar
-eclipse.launcher=${pde.builder.path}/startup.jar
-
-# in 3.2 based builds, pde's directory no longer has version number
-#pde.build.scripts=${pde.builder.path}/plugins/org.eclipse.pde.build_${eclipse.base.version}/scripts
-pde.build.scripts=${pde.builder.path}/plugins/org.eclipse.pde.build/scripts
-buildDirectory=${env.PROJECT_PROJECTS}/${projectname}/${build.directory}
diff --git a/releng.wtpbuilder/build.xml b/releng.wtpbuilder/build.xml
index e6377ba..2851fcd 100644
--- a/releng.wtpbuilder/build.xml
+++ b/releng.wtpbuilder/build.xml
@@ -19,18 +19,27 @@
     -->
     <property
         file="${env.LOCAL_BUILD_PROPERTIES_DIR}/${ant.project.name}.properties" />
+	
+  <property name="keyCfgFile" value="${env.PROJECT_BUILDERS}/${projectname}/${env.RELENG}/maps/build.cfg" />
+  <echo message="keyCfgFile: ${keyCfgFile}" />
+  <property
+      file="${keyCfgFile}" />
+	
     <property
         file="${ant.project.name}.properties" />
 
     <!-- = = = end standard properties pattern = = = -->
 	
-    <target
+     <fail unless="build.distribution" message="distribution must be specified" />
+	   <echo message="build.distribution: ${build.distribution}" />
+
+	<target
         name="build"
         depends="init"
         if="build_distro_target_exists">
         <property
             name="buildfile"
-            value="${distributionCoreName}.build/build.xml" />
+            value="${wtp.builder.home}/distribution/${build.distribution}.build/build.xml" />
         <echo
             level="info"
             message="buildfile: ${buildfile}" />
@@ -42,19 +51,7 @@
         depends="init"
         if="site_distro_target_exists">
         <ant
-            antfile="${distributionCoreName}.site/build.xml">
-            <property
-                name="wtp.builder.home"
-                value="${wtp.builder.home}" />
-            <property
-                name="buildBranch"
-                value="${buildBranch}" />
-            <property
-                name="build.pack-all-in-one"
-                value="${build.pack-all-in-one}" />
-            <property
-                name="eclipse.launcher"
-                value="${eclipse.launcher}" />
+            antfile="${wtp.builder.home}/distribution/${build.distribution}.site/build.xml">
         </ant>
     </target>
     <target
@@ -62,7 +59,7 @@
         depends="init"
         if="tests_distro_target_exists">
         <ant
-            antfile="${distributionCoreName}.tests/build.xml">
+            antfile="${wtp.builder.home}/distribution/${build.distribution}.tests/build.xml">
             <property
                 name="testRoot"
                 value="${env.PROJECT_TESTS}/${projectname}" />
@@ -79,7 +76,7 @@
         depends="init"
         if="upload_distro_target_exists">
         <ant
-            antfile="${distributionCoreName}.upload/build.xml" />
+            antfile="${wtp.builder.home}/distribution/${build.distribution}.upload/build.xml" />
     </target>
     <target
         name="copyArtifacts"
@@ -163,22 +160,22 @@
         <property
             file="${buildDirectory}/label.properties" />
         <property
-            name="distributionCoreName"
-            value="${wtp.builder.home}/distribution/${build.distribution}" />
+            name="build.distribution"
+            value="${wtp.builder.home}/distribution/${wtp.builder.home}/distribution/${build.distribution}" />
         <available
-            file="${distributionCoreName}.build/build.xml"
+            file="${wtp.builder.home}/distribution/${build.distribution}.build/build.xml"
             type="file"
             property="build_distro_target_exists" />
         <available
-            file="${distributionCoreName}.site/build.xml"
+            file="${wtp.builder.home}/distribution/${build.distribution}.site/build.xml"
             type="file"
             property="site_distro_target_exists" />
         <available
-            file="${distributionCoreName}.tests/build.xml"
+            file="${wtp.builder.home}/distribution/${build.distribution}.tests/build.xml"
             type="file"
             property="tests_distro_target_exists" />
         <available
-            file="${distributionCoreName}.upload/build.xml"
+            file="${wtp.builder.home}/distribution/${build.distribution}.upload/build.xml"
             type="file"
             property="upload_distro_target_exists" />
 
diff --git a/releng.wtpbuilder/components/xsl_tests/customTargets.xml b/releng.wtpbuilder/components/xsl_tests/customTargets.xml
index ed5f212..050c1fe 100644
--- a/releng.wtpbuilder/components/xsl_tests/customTargets.xml
+++ b/releng.wtpbuilder/components/xsl_tests/customTargets.xml
@@ -10,38 +10,39 @@
       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" />
+    <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" />
+    <property
+        file="${env.LOCAL_BUILD_PROPERTIES_DIR}/${ant.project.name}.properties" />
 
   <!-- let this project specify properties, if not already set -->
-  <property file="build.properties" />
-
-
-      <property
-          name="cvsProtocol"
-          value="${env.BUILD_CVS_WRITE_PROTOCOL}" />
-      <property
-          name="cvsUser"
-          value="${env.BUILD_CVS_WRITE_USER}" />
-      <property
-          name="cvsServer"
-          value="${env.BUILD_CVS_SERVER}" />
-      <property
-          name="cvsRoot"
-          value="${env.BUILD_CVS_ROOT}" />    	
+    <property
+        file="build.properties" />
+    <property
+        name="cvsProtocol"
+        value="${env.BUILD_CVS_WRITE_PROTOCOL}" />
+    <property
+        name="cvsUser"
+        value="${env.BUILD_CVS_WRITE_USER}" />
+    <property
+        name="cvsServer"
+        value="${env.BUILD_CVS_SERVER}" />
+    <property
+        name="cvsRoot"
+        value="${env.BUILD_CVS_ROOT}" />    	
     	
     <!-- ===================================================================== -->
     <!-- Run a given ${target} on all elements being built -->
     <!-- Add on <ant> task for each top level element being built. -->
     <!-- ===================================================================== -->
-    <target name="allElements">
+    <target
+        name="allElements">
         <echo
             level="info"
             message="Target:${target} " />
@@ -75,38 +76,26 @@
     <!-- ${assembleScriptName}) but may also add pre and post processing -->
     <!-- Add one target for each root element and each configuration -->
     <!-- ===================================================================== -->
-
-    <target name="assemble.org.eclipse.wst.xsl_tests.feature">
+    <target
+        name="assemble.org.eclipse.wst.xsl_tests.feature">
         <property
             name="archiveName"
-            value="wtp-incubator-tests-${buildLabel}.zip" />
+            value="wtp-incubator-xsl-tests-${buildLabel}.zip" />
         <ant
             antfile="${assembleScriptName}"
             dir="${buildDirectory}" />
     </target>
-
-    <target name="prePackage" />
-
-
-    <target name="postPackage">
+    <target
+        name="prePackage" />
+    <target
+        name="postPackage">
         <property
             name="archiveName"
-            value="wtp-incubator-tests-${buildLabel}.zip" />
-
+            value="wtp-incubator-xsl-tests-${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>
 
     <!-- ===================================================================== -->
@@ -135,8 +124,6 @@
         <property
             name="mapVersionTag"
             value="HEAD" />
-
-
         <echo
             level="info"
             message="${mapCvsRoot} ${mapVersionTag} ">
@@ -159,14 +146,13 @@
             reallyquiet="${env.CVS_REALLY_QUIET}" />
 
     	<!--tag the map files project-->
-        <antcall target="tagMapFiles">
+        <antcall
+            target="tagMapFiles">
             <param
                 name="mapCvsRoot"
                 value="${mapCvsRoot}" />
         </antcall>
-
     </target>
-
     <target
         name="tagMapFiles"
         if="tagMaps">
@@ -182,12 +168,14 @@
     <!-- ===================================================================== -->
     <!-- Steps to do before setup -->
     <!-- ===================================================================== -->
-    <target name="preSetup"></target>
+    <target
+        name="preSetup"></target>
 
     <!-- ===================================================================== -->
     <!-- Steps to do after setup but before starting the build proper -->
     <!-- ===================================================================== -->
-    <target name="postSetup">
+    <target
+        name="postSetup">
         <dirname
             file="${ant.file}"
             property="component.dir" />
@@ -197,7 +185,6 @@
         <echo
             level="debug"
             message="component.dir: ${component.dir}" />
-
         <ant
             antfile="${component.dir}/dependency.xml"
             target="get">
@@ -234,18 +221,20 @@
     <!-- ===================================================================== -->
     <!-- Steps to do before fetching the build elements -->
     <!-- ===================================================================== -->
-    <target name="preFetch"></target>
+    <target
+        name="preFetch"></target>
 
     <!-- ===================================================================== -->
     <!-- Steps to do after fetching the build elements -->
     <!-- ===================================================================== -->
-    <target name="postFetch"></target>
+    <target
+        name="postFetch"></target>
 
     <!-- ===================================================================== -->
     <!-- Steps to do before generating the build scripts. -->
     <!-- ===================================================================== -->
-    <target name="postGenerate">
-
+    <target
+        name="postGenerate">
         <customizeAccessRules
             bundleDirectory="${buildDirectory}/plugins"
             defaultRules="+org/eclipse/wst/**/*, +org/eclipse/jst/**/*" />
@@ -253,64 +242,75 @@
     <!-- ===================================================================== -->
     <!-- Steps to do after generating the build scripts. -->
     <!-- ===================================================================== -->
-    <target name="preGenerate"></target>
+    <target
+        name="preGenerate"></target>
 
 
     <!-- ===================================================================== -->
     <!-- Steps to do before running the build.xmls for the elements being built. -->
     <!-- ===================================================================== -->
-    <target name="preProcess"></target>
+    <target
+        name="preProcess"></target>
 
     <!-- ===================================================================== -->
     <!-- Steps to do after running the build.xmls for the elements being built. -->
     <!-- ===================================================================== -->
-    <target name="postProcess">
-
-        <condition property="logsAvailable">
-            <istrue value="${javacVerbose}" />
+    <target
+        name="postProcess">
+        <condition
+            property="logsAvailable">
+            <istrue
+                value="${javacVerbose}" />
         </condition>
-        <antcall target="gatherLogs" />
-
+        <antcall
+            target="gatherLogs" />
     </target>
 
 
     <!-- ===================================================================== -->
     <!-- Steps to do before running assemble. -->
     <!-- ===================================================================== -->
-    <target name="preAssemble"></target>
+    <target
+        name="preAssemble"></target>
 
     <!-- ===================================================================== -->
     <!-- Steps to do after  running assemble. -->
     <!-- ===================================================================== -->
-    <target name="postAssemble"></target>
+    <target
+        name="postAssemble"></target>
 
     <!-- ===================================================================== -->
     <!-- Steps to do after the build is done. -->
     <!-- ===================================================================== -->
-    <target name="postBuild"></target>
+    <target
+        name="postBuild"></target>
 
 
 
     <!-- ===================================================================== -->
     <!-- Steps to test the build results -->
     <!-- ===================================================================== -->
-    <target name="test"></target>
+    <target
+        name="test"></target>
 
     <!-- ===================================================================== -->
     <!-- Steps to do to publish the build results -->
     <!-- ===================================================================== -->
-    <target name="publish"></target>
+    <target
+        name="publish"></target>
     <!-- ===================================================================== -->
     <!-- Helper targets -->
     <!-- ===================================================================== -->
     <target
         name="gatherLogs"
         if="logsAvailable">
-        <mkdir dir="${buildDirectory}/${buildLabel}/testcompilelogs" />
+        <mkdir
+            dir="${buildDirectory}/${buildLabel}/testcompilelogs" />
         <echo
             level="debug"
             message="logExtension: ${logExtension}" />
-        <antcall target="allElements">
+        <antcall
+            target="allElements">
             <param
                 name="target"
                 value="gatherLogs" />
@@ -323,17 +323,16 @@
             overwrite="true">
             <fileset
                 dir="${buildDirectory}/features/org.eclipse.wst.xsl_tests.feature">
-                <include name="**/*.log.zip" />
+                <include
+                    name="**/*.log.zip" />
             </fileset>
         </unzip>
-
-
     </target>
-
     <target
         name="clean"
         unless="noclean">
-        <antcall target="allElements">
+        <antcall
+            target="allElements">
             <param
                 name="target"
                 value="cleanElement" />
@@ -342,18 +341,19 @@
     <!-- ===================================================================== -->
     <!-- Default target                                                        -->
     <!-- ===================================================================== -->
-    <target name="noDefault">
+    <target
+        name="noDefault">
         <echo
             level="error"
             message="You must specify a target when invoking this file" />
     </target>
-
-    <target name="check.useLocalMaps">
-        <condition property="useLocalMaps">
+    <target
+        name="check.useLocalMaps">
+        <condition
+            property="useLocalMaps">
             <equals
                 arg1="${env.USE_LOCAL_MAPS}"
                 arg2="true" />
         </condition>
     </target>
-
-</project>
+</project>
\ No newline at end of file
diff --git a/releng.wtpbuilder/distribution/dali.site/publish.xml b/releng.wtpbuilder/distribution/dali.site/publish.xml
index 66ce088..5680f63 100644
--- a/releng.wtpbuilder/distribution/dali.site/publish.xml
+++ b/releng.wtpbuilder/distribution/dali.site/publish.xml
@@ -67,7 +67,7 @@
         <antcall target="${buildType}" />
 
         <!--  Insert Build Date  -->
-        <replace
+        <replace 
             file="${result}/${indexFileName}"
             token="@date@"
             value="${TODAY}" />
diff --git a/releng.wtpbuilder/distribution/dali.site/staticDropFiles/FAIL.gif b/releng.wtpbuilder/distribution/dali.site/staticDropFiles/FAIL.gif
new file mode 100644
index 0000000..28bba66
--- /dev/null
+++ b/releng.wtpbuilder/distribution/dali.site/staticDropFiles/FAIL.gif
Binary files differ
diff --git a/releng.wtpbuilder/distribution/dali.site/staticDropFiles/OK.gif b/releng.wtpbuilder/distribution/dali.site/staticDropFiles/OK.gif
new file mode 100644
index 0000000..689e523
--- /dev/null
+++ b/releng.wtpbuilder/distribution/dali.site/staticDropFiles/OK.gif
Binary files differ
diff --git a/releng.wtpbuilder/distribution/dali.site/staticDropFiles/componentxmls.php b/releng.wtpbuilder/distribution/dali.site/staticDropFiles/componentxmls.php
new file mode 100644
index 0000000..73c5443
--- /dev/null
+++ b/releng.wtpbuilder/distribution/dali.site/staticDropFiles/componentxmls.php
@@ -0,0 +1,53 @@
+<html>
+<head>
+<?php
+  function find_component_xml($directory)
+  {
+    $count = 0;
+    $dir = dir($directory);
+    while ($anEntry = $dir->read())
+    {
+      if ($anEntry != "." && $anEntry != "..")
+      {
+        $anEntry = $directory."/".$anEntry;
+        if (stristr($anEntry, '.source') === FALSE)
+        {
+          if (is_dir($anEntry))
+          {
+            find_component_xml($anEntry);
+          }
+          else
+          {
+            echo "<tr><td><a href=\"$anEntry\">";
+            echo substr($anEntry, 22);
+            echo "</a></td>";
+          }
+        }
+      }
+    }
+  }
+?>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
+</head>
+<body>
+
+<p><b><font face="Verdana" size="+3">component.xml</font></b> </p>
+
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">
+	   component.xml files for <?php echo "$buildType $buildName"; ?></font></b></td>
+  </tr>
+</table>
+
+<table border="1" width="100%">
+  <tr>
+    <th>component.xml</th>
+  </tr>
+<?php
+  find_component_xml("apitools/componentxmls");
+?>
+</table>
+</body>
+</html>
diff --git a/releng.wtpbuilder/distribution/dali.site/staticDropFiles/download.php b/releng.wtpbuilder/distribution/dali.site/staticDropFiles/download.php
new file mode 100644
index 0000000..5b867e4
--- /dev/null
+++ b/releng.wtpbuilder/distribution/dali.site/staticDropFiles/download.php
@@ -0,0 +1,54 @@
+<html>
+<head>
+<title>Eclipse Dali Download Click Through</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
+<?php
+	$parts = explode("-", $dropFile);
+	$clickFile = "clickThroughs/";
+	for ($i =0; $i<count($parts); $i++) {
+		if ($i != 2) {
+			$clickFile = $clickFile.$parts[$i];
+		    if ($i < count($parts) - 1) {
+        	    $clickFile = $clickFile."-";
+            }
+ 		}
+	}
+	$clickFile = $clickFile.".txt";
+
+	if (file_exists($clickFile)) {
+		$fileHandle = fopen($clickFile, "r");
+		while (!feof($fileHandle)) {
+			$aLine = fgets($fileHandle, 4096);
+			$result = $result.$aLine;
+		}
+		fclose($fileHandle);
+	} else {
+		echo '<META HTTP-EQUIV="Refresh" CONTENT="0;URL='.$dropFile.'">';
+		echo '<b><font size "+4">Downloading: '.$dropFile.'</font></b>';
+		echo '<BR>';
+		echo '<BR>';
+		echo 'If your download does not begin automatically click <a href="'.$dropFile.'">here</a>.';
+	}
+?>
+</head>
+
+<body bgcolor="#FFFFFF" text="#000000">
+  <?php
+	if (file_exists($clickFile)) {
+	 echo '<p><b><font size="+4">Important Notes<BR>';
+	 echo $dropFile;
+	 echo '</font></b></font></p>
+	<p>It is very important to read the following notes in order to run this version 
+	  of Eclipse. Once you have read the notes you can click on the Download link 
+	  to download the drop.</p>
+	';
+	  echo '<textarea name="textfield" cols="80" rows="20" wrap="PHYSICAL">'.$result;
+	  echo '</textarea>';
+	  echo '<BR>';
+	  echo '<BR>';
+	  echo '<a href="'.$dropFile.'">Download</a>';
+	}
+?>
+</body>
+</html>
diff --git a/releng.wtpbuilder/distribution/dali.site/staticDropFiles/pii.php b/releng.wtpbuilder/distribution/dali.site/staticDropFiles/pii.php
new file mode 100644
index 0000000..e3ed59b
--- /dev/null
+++ b/releng.wtpbuilder/distribution/dali.site/staticDropFiles/pii.php
@@ -0,0 +1,54 @@
+<html>
+<head>
+<?php
+  function write_unused_property($directory)
+  {
+    $count = 0;
+    $dir = dir($directory);
+    while ($anEntry = $dir->read())
+    {
+      if ($anEntry != "." && $anEntry != "..")
+      {
+        $anEntry = $directory."/".$anEntry;
+        if (is_dir($anEntry))
+        {
+          write_unused_property($anEntry);
+        }
+        else
+        {
+          echo "<tr><td><a href=\"$anEntry\">";
+          echo substr($anEntry, 16);
+          echo "</a></td>";
+          $lines = file($anEntry);
+          $count = count($lines);
+          echo "<td>$count</td></tr>";
+        }
+      }
+    }
+  }
+?>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
+</head>
+<body>
+
+<p><b><font face="Verdana" size="+3">Unused property messages</font></b> </p>
+
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">
+	   Unused property messages for <?php echo "$buildType $buildName"; ?></font></b></td>
+  </tr>
+</table>
+
+<table border="1">
+  <tr>
+    <th>Properties file</th>
+    <th>Unused strings</th>
+  </tr>
+<?php
+  write_unused_property("piitools");
+?>
+</table>
+</body>
+</html>
diff --git a/releng.wtpbuilder/distribution/dali.site/templateFiles/buildresult.xml.template b/releng.wtpbuilder/distribution/dali.site/templateFiles/buildresult.xml.template
new file mode 100644
index 0000000..1fdede5
--- /dev/null
+++ b/releng.wtpbuilder/distribution/dali.site/templateFiles/buildresult.xml.template
@@ -0,0 +1,2 @@
+<eclipsebuild buildlabel="@buildlabel@">
+</eclipsebuild>
diff --git a/releng.wtpbuilder/distribution/dali.site/templateFiles/performance.template b/releng.wtpbuilder/distribution/dali.site/templateFiles/performance.template
new file mode 100644
index 0000000..f8abfbc
--- /dev/null
+++ b/releng.wtpbuilder/distribution/dali.site/templateFiles/performance.template
@@ -0,0 +1,62 @@
+<P>
+  <A NAME="unit"></A>
+  * Missing reference data. Build used for comparison specified in ending parenthesis.
+  <BR>green: faster, less memory
+  <BR>red: slower, more memory
+  <BR>x axis: difference between current value and baseline value as percentage
+  <BR>
+</P>
+
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">
+      Detailed performance data grouped by scenario prefix
+    </font></b></td>
+  </tr>
+</table>
+
+<?php
+  $dir = dir(".");
+  while ($anEntry = $dir->read())
+  {
+    if ($anEntry != "global.php" && substr($anEntry, strlen($anEntry) - 4) == ".php")
+    {
+      echo "<a href=\"$anEntry\">$anEntry</a><br>";
+    }
+  }
+?>
+
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td>&nbsp;</td>
+  </tr>
+</table>
+
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">
+      Performance JUnit test results for <?php echo "$buildType $buildName"; ?>
+    </font></b></td>
+  </tr>
+</table>
+
+<font color="#FFFFFF" face="Arial,Helvetica">
+<table border=1" width="100%">
+  <tr>
+    <td width="100%"><b>Tests Performed</b></td>
+  </tr>
+  <?php
+    $xmlDir = dir("../xml");
+    while ($xmlEntry = $xmlDir->read())
+    {
+      if ($xmlEntry != "." && $xmlEntry != "..")
+      {
+        $htmlEntry = substr($xmlEntry, 0, strlen($xmlEntry) - 3) . "html";
+        echo "<tr>";
+        echo "<td><a href=\"../html/$htmlEntry\">$htmlEntry</a></td>";
+        echo "</tr>";
+      }
+    }
+  ?>
+</table>
+</html>
\ No newline at end of file
diff --git a/releng.wtpbuilder/distribution/dali.tests/templateFiles/index.php b/releng.wtpbuilder/distribution/dali.tests/templateFiles/index.php
new file mode 100644
index 0000000..5c2aa4b
--- /dev/null
+++ b/releng.wtpbuilder/distribution/dali.tests/templateFiles/index.php
@@ -0,0 +1,70 @@
+<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;
+        echo "<tr><td><a href=\"$link\">";
+        echo "$anEntry";
+        echo "</a></td>";
+        $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);
+        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/dalitestlog.txt">logs</a> contain the console output captured while 
+running the JUnit automated tests. <br>
+<br>
+
+</body>
+</html>
diff --git a/releng.wtpbuilder/distribution/dali.tests/testScripts/test.xml b/releng.wtpbuilder/distribution/dali.tests/testScripts/test.xml
index c0be7cc..6aa5cd1 100644
--- a/releng.wtpbuilder/distribution/dali.tests/testScripts/test.xml
+++ b/releng.wtpbuilder/distribution/dali.tests/testScripts/test.xml
@@ -24,9 +24,6 @@
         name="eclipse-home"
         value="${install}/eclipse" />
 
-    <!-- The path to libary.xml -->
-    <!--property name="library-file" value="${eclipse-home}/plugins/${org.eclipse.test}/library.xml" /-->
-
     <!-- The directory that will contain the xml and html results from the tests that are run -->
     <property
         name="results"
diff --git a/releng.wtpbuilder/distribution/incubator.site/build.xml b/releng.wtpbuilder/distribution/incubator.site/build.xml
index b6169c7..a4fd72d 100644
--- a/releng.wtpbuilder/distribution/incubator.site/build.xml
+++ b/releng.wtpbuilder/distribution/incubator.site/build.xml
@@ -74,21 +74,6 @@
             file="${wtp.builder.home}/distribution/wtp.site/templateFiles/${indexTemplateFilename}"
             tofile="${buildDirectory}/${indexFileName}" />
 
-        <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/patches.site/templateFiles/${indexTemplateFilename}"
-            tofile="${buildDirectory}/${indexFileName}" />
-
-
         <condition
             property="isBuildTested"
             value="true">
diff --git a/releng.wtpbuilder/distribution/incubator.site/publish.xml b/releng.wtpbuilder/distribution/incubator.site/publish.xml
index 8d35af7..701c1e6 100644
--- a/releng.wtpbuilder/distribution/incubator.site/publish.xml
+++ b/releng.wtpbuilder/distribution/incubator.site/publish.xml
@@ -13,10 +13,6 @@
     <property environment="env" />
 
     <property
-        name="component"
-        value="patches" />
-
-    <property
         name="resultDir"
         value="${buildDirectory}/${buildLabel}" />
     <!--name of generated index page-->
@@ -26,7 +22,7 @@
 
     <property
         name="templateDir"
-        value="${wtp.builder.home}/distribution/${component}.site" />
+        value="${wtp.builder.home}/distribution/${build.distribution}.site" />
     <property
         name="resultingIndex"
         value="${resultDir}/${indexFileName}" />
@@ -46,7 +42,7 @@
     <target name="default">
         <copy
             overwrite="true"
-            file="${wtp.builder.home}/distribution/${component}.site/templateFiles/${indexTemplateFilename}"
+            file="${wtp.builder.home}/distribution/${build.distribution}.site/templateFiles/${indexTemplateFilename}"
             tofile="${resultingIndex}" />
         <antcall target="countFiles" />
         <antcall target="generateCompileIndex" />
@@ -76,8 +72,8 @@
             
             
         -->
-        <property
-            file="${buildDirectory}/maps/releng/maps/dependencies.properties" />
+    	<property
+    	            file="${buildDirectory}/maps/${env.RELENG}/maps/dependencies.properties" />
 
         <!-- create tables of test plugin compiles first -->
         <summarizeResults
@@ -133,13 +129,6 @@
 
         <antcall target="writeData" />
 
-        <mkdir dir="${resultDir}/whatisfixed" />
-        <echo
-            file="${resultDir}/whatisfixed/buglog.html"
-            append="true">
-            what is fixed list is not available yet!
-        </echo>
-
         <!--  Update timestamp on file to permit overwrite through Ant copy task  -->
         <touch file="${resultingIndex}" />
     </target>
@@ -165,7 +154,7 @@
             
         -->
         <property
-            file="${buildDirectory}/maps/releng/maps/dependencies.properties" />
+            file="${buildDirectory}/maps/${env.RELENG}/maps/dependencies.properties" />
 
         <!-- create table of test plugin compiles first -->
         <!-- set isBuildTested to true for the "compile only" results -->
@@ -192,13 +181,6 @@
 
         <antcall target="writeData" />
 
-        <mkdir dir="${resultDir}/whatisfixed" />
-        <echo
-            file="${resultDir}/whatisfixed/buglog.html"
-            append="true">
-            what is fixed list is not available yet!
-        </echo>
-
         <!--  Update timestamp on file to permit overwrite through Ant copy task  -->
         <touch file="${resultingIndex}" />
     </target>
@@ -242,7 +224,7 @@
 
         <!-- get our authored, tokenized site.xml file -->
         <copy
-            file="${wtp.builder.home}/distribution/${component}.site/templateFiles/siteWTP.xml"
+            file="${wtp.builder.home}/distribution/${build.distribution}.site/templateFiles/siteWTP.xml"
             tofile="${buildDirectory}/${buildLabel}/updateSite/site.xml"
             overwrite="true"
             failonerror="true" />
@@ -435,6 +417,11 @@
             token="@eclipse.mirror.prefixuri@"
             value="${eclipse.mirror.prefixuri}" />
 
+    	<replace
+          file="${resultingIndex}"
+          token="@eclipse.fspath.prefix@"
+          value="${eclipse.fspath.prefix}" />
+    	
         <replace
             file="${resultingIndex}"
             token="@testURL@"
@@ -461,7 +448,22 @@
             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}"
diff --git a/releng.wtpbuilder/distribution/incubator.site/staticDropFiles/miscUtil.php b/releng.wtpbuilder/distribution/incubator.site/staticDropFiles/miscUtil.php
index 9e47298..c83bdf6 100644
--- a/releng.wtpbuilder/distribution/incubator.site/staticDropFiles/miscUtil.php
+++ b/releng.wtpbuilder/distribution/incubator.site/staticDropFiles/miscUtil.php
@@ -4,159 +4,211 @@
 // handy constant to compute file size in megabytes
 
 function fileSizeInMegs($filename) {
-    $onemeg=1024*1024;
-    $zipfilesize=filesize($filename);
-    $zipfilesize=round($zipfilesize/$onemeg, 0);
-    return $zipfilesize;
+	$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;
+	$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=\"10%\">";
-    echo "<a href=\"$downloadprefix$filename\">" . $fileShortDescription . "</a>";
-    echo "</td><td align=\"right\" valign=\"top\" width=\"5%\">";
-    echo $zipfilesize;
-    echo "</td>";
-    echo "<td align=\"right\" valign=\"top\" width=\"5%\">";
-    echo "[<a href=\"checksum/$filename.md5\">md5</a>]";
-    echo "</td>";
+	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;
+	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'];
+		$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;
+		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);
+		$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();
+		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;
+	global $debugScript;
+	global $debugFunctions;
+	$localuri = $uriToCheck;
 
-    $debugMirrorList = false;
-    if ($debugScript) {
-        echo "uriToCheck: " . $localuri . "<br />";
-    }
-    // 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);
+	$debugMirrorList = false;
+	if ($debugScript) {
+		echo "uriToCheck: " . $localuri . "<br />";
+	}
 
-    $xmlcount = 0;
-    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 />";
-        }
-    }
-    return ($xmlcount > 0);
+	$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;
-    $browser = get_browser(null, true);
-    $rawPlatform = $browser['platform'];
-    if ($debugFunctions) {
-        echo "browser platfrom: " . $rawPlatform . "<br />" ;
-    }
+	global $debugScript;
+	global $debugFunctions;
+	// getBrowser is expensive, so cache the data
+	static $browser;
+	$platform = "unknown";
 
-    if ($debugFunctions) {
-        $browserKeys = array_keys($browser);
-        foreach ($browserKeys as $key) {
-            echo $key . ": " . $browser[$key] . "<br />";
-        }
-    }
-    $platform = "unknown";
-    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;
+
+	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($prerequrl, $prereqname) {
-    // 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
-    if (stream_last_modified($prerequrl)) {
-        $reflink="<a href=\"" . $prerequrl . "\">" . $prereqname . "</a>";
-    } else {
-        $reflink=$prereqname;
-    }
-    return $reflink;
+
+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/distribution/incubator.site/templateFiles/index.html.template.php b/releng.wtpbuilder/distribution/incubator.site/templateFiles/index.html.template.php
index 197587f..d92f8fc 100644
--- a/releng.wtpbuilder/distribution/incubator.site/templateFiles/index.html.template.php
+++ b/releng.wtpbuilder/distribution/incubator.site/templateFiles/index.html.template.php
@@ -2,7 +2,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 
-<title>WTP Downloads</title>
+<title>WTP Incubator Downloads</title>
 
 
 <?php
@@ -13,6 +13,8 @@
 $builddate="@date@";
 
 $eclipseMirrorPrefixuri="@eclipse.mirror.prefixuri@";
+$eclipseFSpathPrefix="@eclipse.fspath.prefix@";
+
 $eclipsefilelinux="@eclipsefilelinux@";
 $eclipsefilewindows="@eclipsefilewindows@";
 $eclipsefilemacosx="@eclipsefilemacos@";
@@ -24,6 +26,11 @@
 $testURL="@testURL@";
 $testFile="@testFile@";
 
+$wstURL="@wstURL@";
+$wstFile="@wstFile@";
+$wstMirrorPrefixuri="@wst.mirror.prefixuri@";
+$wstBuildHome="@wstBuildHome@";
+
 
 $gefURL="@gefURL@";
 $gefFile="@gefFile@";
@@ -55,8 +62,8 @@
 
 
 
-//ini_set("display_errors", "true");
-//error_reporting (E_ALL);
+ini_set("display_errors", "true");
+error_reporting (E_ALL);
 
 
 $debugScript = false;
@@ -78,14 +85,14 @@
 $downloadprefix=$defaultWTPMirrorPrefix;
 
 
-$keytestMirrorString=$eclipseMirrorScript . "$eclipseWTPMirrorPrefix/wtp-sdk-$build.zip";
+$keytestMirrorString=$eclipseMirrorScript . "$eclipseWTPMirrorPrefix/wtp-incubator-xsl_sdk-$build.zip";
 if (isMirrored($keytestMirrorString) ) {
-    $mirrorScript=$eclipseMirrorScript;
-    $downloadprefix="${mirrorScript}${eclipseWTPMirrorPrefix}";
+	$mirrorScript=$eclipseMirrorScript;
+	$downloadprefix="${mirrorScript}${eclipseWTPMirrorPrefix}";
 }
 
 if ($debugScript)  {
-    echo "inferred platform: " . getPlatform();
+	echo "inferred platform: " . getPlatform();
 }
 
 
@@ -96,42 +103,42 @@
 $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);
-        }
-    }
+	$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 = "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);
-    }
+	$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);
+	}
 }
 
 
@@ -148,11 +155,11 @@
 $serverName = $_SERVER["SERVER_NAME"];
 
 if (!stristr($serverName, "eclipse.org") && !stristr($serverName,"you.are.at.eclipsecon.org")) {
-    echo '<center>
+	echo '<center>
           <p>
           Reminder: this is <font color="#FF0000">' . 
-    $serverName .
-    '</font>
+	$serverName .
+	'</font>
           See also 
           <a href="http://download.eclipse.org/webtools/downloads" target="_top">the live public Eclipse site</a>.
           </p>
@@ -212,23 +219,35 @@
 				// platform is "unknown". I've noticed Opera reports 'unknown' :(
 				$recommendedFile=$eclipsefilewindows;
 				if (strcmp($usersPlatform,"linux")== 0) {
-				    $recommendedFile=$eclipsefilelinux;
+					$recommendedFile=$eclipsefilelinux;
 				} else if (strcmp($usersPlatform,"mac") == 0) {
-				    $recommendedFile=$eclipsefilemacosx;
+					$recommendedFile=$eclipsefilemacosx;
 				}
 				?>
 				<td align="right" width="35%"><?php
-				echo getPrereqReferenceOrName($eclipseMirrorScript, $eclipseMirrorPrefixuri, $eclipseURL, $recommendedFile);
+				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, SDO)</td>
 				<td align="right"><?php
-				echo getPrereqReferenceOrName($eclipseMirrorScript, $emfMirrorPrefixuri, $emfURL, $emfFile);
+				echo getPrereqReferenceOrName($eclipseMirrorScript, $emfMirrorPrefixuri, $emfURL, $emfFile, $eclipseFSpathPrefix);
 				echo " or <a href=\"" . $emfBuildHome . "\">equivalent</a></td>";
 				?>
 			
@@ -238,7 +257,7 @@
 				<td width="10%"></td>
 				<td>Graphical Editing Framework (GEF)</td>
 				<td align="right"><?php
-				echo getPrereqReferenceOrName($eclipseMirrorScript, $gefMirrorPrefixuri, $gefURL, $gefFile);
+				echo getPrereqReferenceOrName($eclipseMirrorScript, $gefMirrorPrefixuri, $gefURL, $gefFile, $eclipseFSpathPrefix);
 				echo " or <a href=\"" . $gefBuildHome . "\">equivalent</a></td>";
 				?>
 			
@@ -248,7 +267,7 @@
 				<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);
+				echo getPrereqReferenceOrName($eclipseMirrorScript, $eclipseMirrorPrefixuri, $testURL, $testFile, $eclipseFSpathPrefix);
 				echo " or <a href=\"" . $eclipseBuildHome . "\">equivalent</a></td>";
 				?>
 			
@@ -256,14 +275,24 @@
 
 			<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>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);
+				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 Parthy 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>
@@ -275,12 +304,13 @@
 	<tr>
 		<td align=left valign=top colspan="5" bgcolor="#0080C0"><font
 			face="'Bitstream Vera',Helvetica,Arial" color="#FFFFFF"> Web Tools
-		Platform Patches for WTP 1.5.5</font></td>
+		Incubating Components</font></td>
 	</tr>
 
 	<tr>
 		<td align="left" valign="top" colspan="5">
-		<p>The Zip files contain patches</p>
+		<p>The Zip files includes the features and plugins for the WTP
+		Incubator XSL Component.</p>
 		</td>
 	</tr>
 	<tr>
@@ -289,17 +319,42 @@
 
 
 			<tr>
-				<td align="left" valign="top" width="10%"><b>Patch</b></td>
+				<td align="left" valign="top" width="10%"><b>Minimal</b></td>
 				<td align="left" valign="top">
-				<p>Remember, care is needed in using patches from this page. These
-				patches are specific to particular use-cases or adopters and not
-				well tested for general cases.</p>
+				<p>Executable code only.</p>
 				</td>
 				<?php
-				$zipfilename="wtp-@build@";
+				$zipfilename="wtp-incubator-xsl-${build}";
 				$filename=$zipfilename.".zip";
 				$zipfilesize=fileSizeForDisplay($filename);
-				$fileShortDescription="@build@";
+				$fileShortDescription="xsl";
+				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="wtp-incubator-xsl_sdk-${build}";
+				$filename=$zipfilename.".zip";
+				$zipfilesize=fileSizeForDisplay($filename);
+				$fileShortDescription="xsl 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="wtp-incubator-xsl-tests-${build}";
+				$filename=$zipfilename.".zip";
+				$zipfilesize=fileSizeForDisplay($filename);
+				$fileShortDescription="xsl tests";
 				displayFileLine($downloadprefix, $filename, $zipfilesize, $fileShortDescription);
 				?>
 			</tr>
@@ -336,87 +391,87 @@
 				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\"/>";
-				    }
+					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 "<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 "&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 "<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;";
+					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>";
-				    }
+					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>";
+	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>";
+	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>";
+	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>";
+	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>";
+	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>";
+	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>";
+	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>";
+	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 />";
+	echo "<br />";
+	echo "<br /> <a href=\"perfresults/graph/performance.php\">Performance Results</a>";
+	echo "<br />";
 }
 ?></td>
 			</tr>
diff --git a/releng.wtpbuilder/distribution/incubator.tests/build.xml b/releng.wtpbuilder/distribution/incubator.tests/build.xml
index f25d422..f968563 100644
--- a/releng.wtpbuilder/distribution/incubator.tests/build.xml
+++ b/releng.wtpbuilder/distribution/incubator.tests/build.xml
@@ -2,20 +2,21 @@
     name="Build specific targets and properties"
     default="runTest">
 
-    <!-- Note to be cross-platform, "environment variables" are only appropriate for
+	<!-- 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" />
-
+    <property
+        environment="env" />
     <fail
         message="testRoot must be set for this task"
         unless="testRoot" />
 
-    <!-- ===================================================================== -->
-    <!-- Steps to do after the build is done. -->
-    <!-- ===================================================================== -->
-    <target name="test">
+	<!-- ===================================================================== -->
+	<!-- Steps to do after the build is done. -->
+	<!-- ===================================================================== -->
+    <target
+        name="test">
         <dirname
             file="${ant.file}"
             property="currentDirectory" />
@@ -25,42 +26,47 @@
             dir="${currentDirectory}" />
     </target>
 
-    <!-- ===================================================================== -->
-    <!-- Steps to do to test the build results -->
-    <!-- ===================================================================== -->
-    <target name="runTest">
-
+	<!-- ===================================================================== -->
+	<!-- 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" />
-
+        <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}" />
+        <mkdir
+            dir="${testRoot}" />
 
-        <!-- if results already exist, delete them -->
+		<!-- 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" />
-
+        <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"></fileset>
+            <fileset
+                dir="${test.component.dir}/testScripts">
+            </fileset>
         </copy>
-
         <echo
             message="BASEOS: ${env.BASEOS}   BASEWS: ${env.BASEWS}   BASEARCH: ${env.BASEARCH} " />
-
         <ant
             antfile="${test.component.dir}/testdependency.xml"
             target="get">
@@ -71,44 +77,49 @@
                 name="base.install.dir"
                 value="${testRoot}" />
         </ant>
-
-        <antcall target="unzipTests" />
-
-        <antcall target="runTestEclipse">
+        <antcall
+            target="unzipTests" />
+        <antcall
+            target="runTestEclipse">
             <param
                 name="testTarget"
                 value="all" />
         </antcall>
-        <antcall target="postRunTestEclipse">
+        <antcall
+            target="postRunTestEclipse">
             <param
                 name="testTarget"
                 value="all" />
         </antcall>
     </target>
+    <target
+        name="unzipTests">
 
-    <target name="unzipTests">
-
-        <!--unzip the builds and junit tests
-            we use 'unzip' here, so we can continue on error
+		<!--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 xsl sdk" />
         <exec
             dir="${buildDirectory}/${buildLabel}"
             executable="unzip"
-            failonerror="false">
-            <arg line="-o -qq wtp-${buildLabel}.zip -d ${testRoot}" />
-        </exec>
-        <exec
-            dir="${buildDirectory}/${buildLabel}"
-            executable="unzip"
-            failonerror="false">
+            failonerror="true">
             <arg
-                line="-o -qq wtp-incubator-tests-${buildLabel}.zip -d ${testRoot}" />
+                line="-o -qq  wtp-incubator-xsl_sdk-${buildLabel}.zip -d ${testRoot}" />
         </exec>
-
+        <echo
+            message="installing xsl tests" />
+        <exec
+            dir="${buildDirectory}/${buildLabel}"
+            executable="unzip"
+            failonerror="true">
+            <arg
+                line="-o -qq wtp-incubator-xsl-tests-${buildLabel}.zip -d ${testRoot}" />
+        </exec>
     </target>
 
-    <!-- time out may need to be set/adjust for api or performance tests?
+	<!-- 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.
         
@@ -118,19 +129,15 @@
         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_5_HOME}/bin/java" />
@@ -142,34 +149,37 @@
             value="-Xms256m -Xmx512m -Dosgi.ws=${env.BASEWS} -Dosgi.os=${env.BASEOS} -Dosgi.arch=${env.BASEARCH} -Dws=${env.BASEWS} -Dos=${env.BASEOS} -Darch=${env.BASEARCH} -Dosgi.clean=true -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/ -->
+		<!-- 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" />
 
-        <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}" />
+        <echo
+            message="eclipse.launcher: ${eclipse.launcher}" />
         <java
-            jar="${eclipse.launcher}"
             taskname="unit-test-masterprocess"
             fork="true"
             resultProperty="wtpmasterjunitresult"
             failonerror="false"
             timeout="${testTimeLimit}"
             dir="${testRoot}/eclipse"
-            jvm="${env.JAVA_5_HOME}/bin/java">
+            jvm="${env.JAVA_5_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="-Xms256m" />
             <jvmarg value="-Xmx512m" />
 
-            <jvmarg
-                value="-Declipse.launcher=${testRoot}/eclipse/startup.jar" />
-
             <jvmarg value="-Dosgi.ws=${env.BASEWS}" />
             <jvmarg value="-Dosgi.os=${env.BASEOS}" />
             <jvmarg value="-Dosgi.arch=${env.BASEARCH}" />
@@ -177,10 +187,8 @@
             <jvmarg value="-Dos=${env.BASEOS}" />
             <jvmarg value="-Darch=${env.BASEARCH}" />
 
-            <jvmarg value="-Dosgi.debug='false'" />
-
             <jvmarg value="-Dosgi.clean=true" />
-
+            <jvmarg value="-Dnoclean=true" />
             <jvmarg value="-DbuildBranch=${buildBranch}" />
             <jvmarg value="-DbuildType=${buildType}" />
             <jvmarg value="-DbuildId=${buildId}" />
@@ -230,26 +238,29 @@
                 key="buildLabel"
                 value="${buildLabel}" />
         </java>
-
-        <echo message="wtpmasterjunitresult ${wtpmasterjunitresult}" />
+        <echo
+            message="wtpmasterjunitresult ${wtpmasterjunitresult}" />
     </target>
-
-
-    <target name="postRunTestEclipse">
+    <target
+        name="postRunTestEclipse">
         <copy
             todir="${buildDirectory}/${buildLabel}/testResults/consolelogs/testLogs"
             overwrite="true"
             failonerror="false">
-            <fileset dir="${testRoot}/results">
-                <include name="*output.txt" />
+            <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
+                dir="${testRoot}/results">
+                <include
+                    name="*error.txt" />
             </fileset>
         </copy>
         <copy
@@ -264,24 +275,25 @@
             overwrite="true"
             failonerror="false">
         </copy>
-
         <copy
             todir="${buildDirectory}/${buildLabel}/testResults/xml"
             overwrite="true"
             failonerror="false">
-            <fileset dir="${testRoot}/results/xml">
-                <include name="*.xml" />
+            <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
+                dir="${testRoot}/results/html">
+                <include
+                    name="*.html" />
             </fileset>
         </copy>
     </target>
-
-
-</project>
+</project>
\ No newline at end of file
diff --git a/releng.wtpbuilder/distribution/incubator.tests/testScripts/test.xml b/releng.wtpbuilder/distribution/incubator.tests/testScripts/test.xml
index 2ea3d02..b20c7f8 100644
--- a/releng.wtpbuilder/distribution/incubator.tests/testScripts/test.xml
+++ b/releng.wtpbuilder/distribution/incubator.tests/testScripts/test.xml
@@ -6,11 +6,12 @@
     <echo
         level="info"
         message="starting Automated Eclipse Testing" />
+		
     <echo
-        level="debug"
+        level="info"
         message="basedir: ${basedir}" />
     <echo
-        level="debug"
+        level="info"
         message="testRoot: ${testRoot}" />
 
     <fail
@@ -50,20 +51,6 @@
         name="setup"
         if="clean"
         description="Reinstall the test Eclipse installation if specified by user">
-        <delete dir="${install}" />
-        <mkdir dir="${install}" />
-        <exec
-            dir="."
-            executable="unzip">
-            <arg line="-o -qq ../downloads/*.zip -d ${install}" />
-        </exec>
-
-        <exec
-            dir="."
-            executable="unzip">
-            <arg
-                line="-o -qq  wtp-wst-tests-feature*.zip -d ${install}" />
-        </exec>
 
     </target>
 
@@ -71,7 +58,7 @@
         name="runtests"
         depends="setup"
         description="Runs ant on the test.xml for a specified plugin.">
-    	<available
+        <available
             file="${eclipse-home}/plugins/${testPlugin}/test.xml"
             property="test.xml.exists" />
         <antcall target="runtests2" />
@@ -103,21 +90,22 @@
         <antcall target="genHtml" />
     </target>
 
-    
+
     <target
         name="xsl-tests"
         depends="init">
         <antcall target="runtests">
             <param
                 name="testPlugin"
-                value="${org.eclipse.wst.xsl.launching.tests}" />
+                value="${org.eclipse.wst.xsl.tests}" />
             <param
                 name="report"
-                value="org.eclipse.wst.xsl.launching.tests" />
+                value="org.eclipse.wst.xsl.tests" />
         </antcall>
     </target>
 
-    <!-- releng Tests -->
+	
+	<!-- releng Tests -->
   <!--
     <target
         name="releng-tests"
@@ -133,7 +121,7 @@
         </antcall>
     </target>
    -->
-	
+
     <target
         name="all"
         depends="init">
@@ -151,12 +139,12 @@
 
         <echo
             level="info"
-            message="Starting wst-server-tests" />
+            message="Starting xsl-tests" />
         <antcall target="xsl-tests" />
 
         <echo
             level="info"
-            message="Ended WTP Unit Tests" />
+            message="Ended Unit Tests" />
 
     </target>
 
diff --git a/releng.wtpbuilder/distribution/incubator.tests/testScripts/wtp-junit-tests.xml b/releng.wtpbuilder/distribution/incubator.tests/testScripts/wtp-junit-tests.xml
index c4801c9..c2b00f0 100644
--- a/releng.wtpbuilder/distribution/incubator.tests/testScripts/wtp-junit-tests.xml
+++ b/releng.wtpbuilder/distribution/incubator.tests/testScripts/wtp-junit-tests.xml
@@ -179,17 +179,20 @@
             </condition>
             <fail message="Did not find expected number of launcher jars. Check installation." unless="expectedNumberOfLaunchers" />
         -->
-        <echo message="eclipse.launcher: ${eclipse.launcher}" />
         <java
-            jar="${eclipse.launcher}"
             taskname="suiteUnitTest"
             fork="true"
             resultProperty="suitejunitresult"
             failonerror="false"
             timeout="${timeout}"
             dir="${testRoot}/eclipse"
-            jvm="${env.JAVA_5_HOME}/bin/java">
-
+            jvm="${env.JAVA_5_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="-Xms256m" />
             <jvmarg value="-Xmx1024m" />
diff --git a/releng.wtpbuilder/distribution/patches.site/publish.xml b/releng.wtpbuilder/distribution/patches.site/publish.xml
index 8d35af7..5441e5e 100644
--- a/releng.wtpbuilder/distribution/patches.site/publish.xml
+++ b/releng.wtpbuilder/distribution/patches.site/publish.xml
@@ -13,10 +13,6 @@
     <property environment="env" />
 
     <property
-        name="component"
-        value="patches" />
-
-    <property
         name="resultDir"
         value="${buildDirectory}/${buildLabel}" />
     <!--name of generated index page-->
@@ -26,7 +22,7 @@
 
     <property
         name="templateDir"
-        value="${wtp.builder.home}/distribution/${component}.site" />
+        value="${wtp.builder.home}/distribution/${build.distribution}.site" />
     <property
         name="resultingIndex"
         value="${resultDir}/${indexFileName}" />
@@ -46,7 +42,7 @@
     <target name="default">
         <copy
             overwrite="true"
-            file="${wtp.builder.home}/distribution/${component}.site/templateFiles/${indexTemplateFilename}"
+            file="${wtp.builder.home}/distribution/${build.distribution}.site/templateFiles/${indexTemplateFilename}"
             tofile="${resultingIndex}" />
         <antcall target="countFiles" />
         <antcall target="generateCompileIndex" />
@@ -76,8 +72,8 @@
             
             
         -->
-        <property
-            file="${buildDirectory}/maps/releng/maps/dependencies.properties" />
+    	<property
+    	            file="${buildDirectory}/maps/${env.RELENG}/maps/dependencies.properties" />
 
         <!-- create tables of test plugin compiles first -->
         <summarizeResults
@@ -133,13 +129,6 @@
 
         <antcall target="writeData" />
 
-        <mkdir dir="${resultDir}/whatisfixed" />
-        <echo
-            file="${resultDir}/whatisfixed/buglog.html"
-            append="true">
-            what is fixed list is not available yet!
-        </echo>
-
         <!--  Update timestamp on file to permit overwrite through Ant copy task  -->
         <touch file="${resultingIndex}" />
     </target>
@@ -165,7 +154,7 @@
             
         -->
         <property
-            file="${buildDirectory}/maps/releng/maps/dependencies.properties" />
+            file="${buildDirectory}/maps/${env.RELENG}/maps/dependencies.properties" />
 
         <!-- create table of test plugin compiles first -->
         <!-- set isBuildTested to true for the "compile only" results -->
@@ -192,13 +181,6 @@
 
         <antcall target="writeData" />
 
-        <mkdir dir="${resultDir}/whatisfixed" />
-        <echo
-            file="${resultDir}/whatisfixed/buglog.html"
-            append="true">
-            what is fixed list is not available yet!
-        </echo>
-
         <!--  Update timestamp on file to permit overwrite through Ant copy task  -->
         <touch file="${resultingIndex}" />
     </target>
@@ -242,7 +224,7 @@
 
         <!-- get our authored, tokenized site.xml file -->
         <copy
-            file="${wtp.builder.home}/distribution/${component}.site/templateFiles/siteWTP.xml"
+            file="${wtp.builder.home}/distribution/${build.distribution}.site/templateFiles/siteWTP.xml"
             tofile="${buildDirectory}/${buildLabel}/updateSite/site.xml"
             overwrite="true"
             failonerror="true" />
@@ -437,6 +419,11 @@
 
         <replace
             file="${resultingIndex}"
+          token="@eclipse.fspath.prefix@"
+          value="${eclipse.fspath.prefix}" />
+    	
+        <replace
+            file="${resultingIndex}"
             token="@testURL@"
             value="${eclipseTestFramework.url}/${eclipseTestFramework.file}" />
         <replace
@@ -461,6 +448,22 @@
             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
diff --git a/releng.wtpbuilder/distribution/patches.site/staticDropFiles/miscUtil.php b/releng.wtpbuilder/distribution/patches.site/staticDropFiles/miscUtil.php
index 9e47298..91bbb8f 100644
--- a/releng.wtpbuilder/distribution/patches.site/staticDropFiles/miscUtil.php
+++ b/releng.wtpbuilder/distribution/patches.site/staticDropFiles/miscUtil.php
@@ -4,159 +4,215 @@
 // handy constant to compute file size in megabytes
 
 function fileSizeInMegs($filename) {
-    $onemeg=1024*1024;
-    $zipfilesize=filesize($filename);
-    $zipfilesize=round($zipfilesize/$onemeg, 0);
-    return $zipfilesize;
+	$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;
+	$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=\"10%\">";
-    echo "<a href=\"$downloadprefix$filename\">" . $fileShortDescription . "</a>";
-    echo "</td><td align=\"right\" valign=\"top\" width=\"5%\">";
-    echo $zipfilesize;
-    echo "</td>";
-    echo "<td align=\"right\" valign=\"top\" width=\"5%\">";
-    echo "[<a href=\"checksum/$filename.md5\">md5</a>]";
-    echo "</td>";
+	echo "<td align=\"right\" valign=\"top\" width=\"10%\">";
+	echo "<a href=\"$downloadprefix$filename\">" . $fileShortDescription . "</a>";
+	echo "</td><td align=\"right\" valign=\"top\" width=\"5%\">";
+	echo $zipfilesize;
+	echo "</td>";
+	echo "<td align=\"right\" valign=\"top\" width=\"5%\">";
+	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;
+    } else {
+    	$wholePath = "/home/data/httpd/archive.eclipse.org/" . 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;
+	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'];
+		$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;
+		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);
+		$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();
+		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;
+	global $debugScript;
+	global $debugFunctions;
+	$localuri = $uriToCheck;
 
-    $debugMirrorList = false;
-    if ($debugScript) {
-        echo "uriToCheck: " . $localuri . "<br />";
-    }
-    // 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);
+	$debugMirrorList = false;
+	if ($debugScript) {
+		echo "uriToCheck: " . $localuri . "<br />";
+	}
 
-    $xmlcount = 0;
-    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 />";
-        }
-    }
-    return ($xmlcount > 0);
+	$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;
-    $browser = get_browser(null, true);
-    $rawPlatform = $browser['platform'];
-    if ($debugFunctions) {
-        echo "browser platfrom: " . $rawPlatform . "<br />" ;
-    }
+	global $debugScript;
+	global $debugFunctions;
+	// getBrowser is expensive, so cache the data
+	static $browser;
+	$platform = "unknown";
 
-    if ($debugFunctions) {
-        $browserKeys = array_keys($browser);
-        foreach ($browserKeys as $key) {
-            echo $key . ": " . $browser[$key] . "<br />";
-        }
-    }
-    $platform = "unknown";
-    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;
+
+	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($prerequrl, $prereqname) {
-    // 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
-    if (stream_last_modified($prerequrl)) {
-        $reflink="<a href=\"" . $prerequrl . "\">" . $prereqname . "</a>";
-    } else {
-        $reflink=$prereqname;
-    }
-    return $reflink;
+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/distribution/patches.site/templateFiles/index.html.template.php b/releng.wtpbuilder/distribution/patches.site/templateFiles/index.html.template.php
index 197587f..adf9ba1 100644
--- a/releng.wtpbuilder/distribution/patches.site/templateFiles/index.html.template.php
+++ b/releng.wtpbuilder/distribution/patches.site/templateFiles/index.html.template.php
@@ -13,6 +13,8 @@
 $builddate="@date@";
 
 $eclipseMirrorPrefixuri="@eclipse.mirror.prefixuri@";
+$eclipseFSpathPrefix="@eclipse.fspath.prefix@";
+
 $eclipsefilelinux="@eclipsefilelinux@";
 $eclipsefilewindows="@eclipsefilewindows@";
 $eclipsefilemacosx="@eclipsefilemacos@";
@@ -24,6 +26,11 @@
 $testURL="@testURL@";
 $testFile="@testFile@";
 
+$wstURL="@wstURL@";
+$wstFile="@wstFile@";
+$wstMirrorPrefixuri="@wst.mirror.prefixuri@";
+$wstBuildHome="@wstBuildHome@";
+
 
 $gefURL="@gefURL@";
 $gefFile="@gefFile@";
@@ -218,7 +225,7 @@
 				}
 				?>
 				<td align="right" width="35%"><?php
-				echo getPrereqReferenceOrName($eclipseMirrorScript, $eclipseMirrorPrefixuri, $eclipseURL, $recommendedFile);
+				echo getPrereqReferenceOrName($eclipseMirrorScript, $eclipseMirrorPrefixuri, $eclipseURL, $recommendedFile, $eclipseFSpathPrefix);
 				echo " or <a href=\"" . $eclipseBuildURL . "\">appropriate platform</a>";
 				echo " or <a href=\"" . $eclipseBuildHome . "\">equivalent</a></td>";
 				?>
@@ -228,7 +235,7 @@
 				<td width="10%"></td>
 				<td>Eclipse Modeling Framework (EMF, XSD InfoSet, SDO)</td>
 				<td align="right"><?php
-				echo getPrereqReferenceOrName($eclipseMirrorScript, $emfMirrorPrefixuri, $emfURL, $emfFile);
+				echo getPrereqReferenceOrName($eclipseMirrorScript, $emfMirrorPrefixuri, $emfURL, $emfFile, $eclipseFSpathPrefix);
 				echo " or <a href=\"" . $emfBuildHome . "\">equivalent</a></td>";
 				?>
 			
@@ -238,7 +245,7 @@
 				<td width="10%"></td>
 				<td>Graphical Editing Framework (GEF)</td>
 				<td align="right"><?php
-				echo getPrereqReferenceOrName($eclipseMirrorScript, $gefMirrorPrefixuri, $gefURL, $gefFile);
+				echo getPrereqReferenceOrName($eclipseMirrorScript, $gefMirrorPrefixuri, $gefURL, $gefFile, $eclipseFSpathPrefix);
 				echo " or <a href=\"" . $gefBuildHome . "\">equivalent</a></td>";
 				?>
 			
@@ -248,7 +255,7 @@
 				<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);
+				echo getPrereqReferenceOrName($eclipseMirrorScript, $eclipseMirrorPrefixuri, $testURL, $testFile, $eclipseFSpathPrefix);
 				echo " or <a href=\"" . $eclipseBuildHome . "\">equivalent</a></td>";
 				?>
 			
@@ -256,9 +263,10 @@
 
 			<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>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);
+				echo getPrereqReferenceOrName($eclipseMirrorScript, $eclipseMirrorPrefixuri, $eclipserelengURL, $eclipserelengFile, $eclipseFSpathPrefix);
 				echo " or <a href=\"" . $eclipseBuildHome . "\">equivalent</a></td>";
 				?>
 			
diff --git a/releng.wtpbuilder/distribution/patches.tests/testScripts/test.xml b/releng.wtpbuilder/distribution/patches.tests/testScripts/test.xml
index f94f1de..dc1a7be 100644
--- a/releng.wtpbuilder/distribution/patches.tests/testScripts/test.xml
+++ b/releng.wtpbuilder/distribution/patches.tests/testScripts/test.xml
@@ -38,9 +38,6 @@
         name="eclipse-home"
         value="${testRoot}/eclipse" />
 
-    <!-- The path to libary.xml -->
-    <!--property name="library-file" value="${eclipse-home}/plugins/${org.eclipse.test}/library.xml" /-->
-
     <!-- The directory that will contain the xml and html results from the tests that are run -->
     <property
         name="results"
diff --git a/releng.wtpbuilder/distribution/wtp.api/api.properties b/releng.wtpbuilder/distribution/wtp.api/api.properties
new file mode 100644
index 0000000..249921e
--- /dev/null
+++ b/releng.wtpbuilder/distribution/wtp.api/api.properties
@@ -0,0 +1,21 @@
+#######################################################################################
+# TPTP
+# Eclipse TPTP Dependency
+# TPTP will be used for API scanning
+# groupID : tptp
+tptp.url  = http://archive.eclipse.org/tptp/4.0.0/TPTP-4.0.0-200507181519
+tptp.releng.url  = http://download.eclipse.org/webtools/downloads/drivers
+tptp.file.linux-gtk-x86= tptpdc.linux_ia32-TPTP-4.0.0-200507181519.zip
+tptp.file.linux-gtk-ppc= tptpdc.linux_ppc64-TPTP-4.0.0-200507181519.zip
+tptp.file.win32-win32-x86 = tptpdc.win_ia32-TPTP-4.0.0-200507181519.zip
+tptp.name = TPTP DC v4.0
+tptp.description = TPTP DC v4.0
+
+piagent.url  = http://archive.eclipse.org/tptp/4.0.0/TPTP-4.0.0-200507181519
+piagent.releng.url  = http://download.eclipse.org/webtools/downloads/drivers
+piagent.file.linux-gtk-x86= tptpdc.linux_ia32-TPTP-4.0.0-200507181519.zip
+piagent.file.linux-gtk-ppc= tptpdc.linux_ppc64-TPTP-4.0.0-200507181519.zip
+piagent.file.win32-win32-x86 = tptpdc.win_ia32-TPTP-4.0.0-200507181519.zip
+piagent.name = TPTP DC v4.0
+piagent.description = TPTP DC v4.0
+#######################################################################################
diff --git a/releng.wtpbuilder/distribution/wtp.api/testScripts/piagent_options.txt b/releng.wtpbuilder/distribution/wtp.api/testScripts/piagent_options.txt
new file mode 100644
index 0000000..6db935d
--- /dev/null
+++ b/releng.wtpbuilder/distribution/wtp.api/testScripts/piagent_options.txt
@@ -0,0 +1,14 @@
+MONITOR_MODE=none
+FILTERS=false
+TRACK_GC_EVENT_TYPES=none
+* ID_STYLE=static
+OPTIONS=false
+TIMESTAMPS=false
+OBJ_ALLOC_IS_ARRAY=false
+STACK_INFORMATION=normal
+* BOUNDARY_DEPTH=0
+TICKET=false
+TRACE_MODE=noObjectCorrelation
+TRACE_ID_REFS=true
+METHOD_COUNTS=true
+METHOD_COUNTS_ONLY=true
diff --git a/releng.wtpbuilder/distribution/wtp.perf/derby.plugin.xml.template b/releng.wtpbuilder/distribution/wtp.perf/derby.plugin.xml.template
new file mode 100644
index 0000000..215b957
--- /dev/null
+++ b/releng.wtpbuilder/distribution/wtp.perf/derby.plugin.xml.template
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin
+   id="org.apache.derby"
+   name="org.apache.derby"
+   version="1.0.0"
+   provider-name="">
+   <runtime>
+      <library name="derby.jar">
+         <export name="*"/>
+      </library>
+      <library name="derbynet.jar">
+         <export name="*"/>
+      </library>
+      <library name="derbytools.jar">
+         <export name="*"/>
+      </library>
+   </runtime>
+</plugin>
diff --git a/releng.wtpbuilder/distribution/wtp.perf/performance.php b/releng.wtpbuilder/distribution/wtp.perf/performance.php
new file mode 100644
index 0000000..ce65d0d
--- /dev/null
+++ b/releng.wtpbuilder/distribution/wtp.perf/performance.php
@@ -0,0 +1,80 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body>
+
+<?php include("global.php"); ?>
+
+<table>
+  <tr>
+    <td>&nbsp;</td>
+  </tr>
+</table>
+
+<TABLE BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%"> 
+  <TR>
+    <TD ALIGN=LEFT VALIGN=TOP COLSPAN="3" BGCOLOR="#0080C0"><B><FONT COLOR="#FFFFFF" FACE="Arial,Helvetica">Detailed performance data for</FONT></B></TD>
+  </TR>
+</TABLE>
+
+<?php
+$aDir = dir(".");
+while ($anEntry = $aDir->read())
+{
+  $len = strlen("org.eclipse.php");
+  if (strlen($anEntry) > $len)
+  {
+    if (substr($anEntry, 0, 12) == "org.eclipse.")
+    {
+      echo "<a href=\"$anEntry\">$anEntry</a><br>";
+    }
+  }
+}
+?>
+
+<table>
+  <tr>
+    <td>&nbsp;</td>
+  </tr>
+</table>
+
+<TABLE BORDER=0 CELLSPACING=5 CELLPADDING=2 WIDTH="100%"> 
+  <TR>
+    <TD ALIGN=LEFT VALIGN=TOP COLSPAN="3" BGCOLOR="#0080C0"><B><FONT COLOR="#FFFFFF" FACE="Arial,Helvetica">Performance Unit Test Results for</FONT></B></TD>
+  </TR>
+</TABLE>
+
+<TABLE BORDER=1 CELLSPACING=5 CELLPADDING=2 WIDTH="100%">
+  <TH>Tests Performed</TH>
+  <TH>Testcases</TH>
+  <TH>Errors and Failures</TH>
+  <?php
+    $aDir = dir("../xml");
+    while ($anEntry = $aDir->read())
+    {
+      if ($anEntry != "." && $anEntry != "..")
+      {
+        echo "<tr>";
+        $html = substr($anEntry, 0, strlen($anEntry) - 3) . "html";
+        echo "<td><a href=\"../html/$html\">$html</a></td>";
+        $file = "../xml/" . $anEntry;
+        $filehandle = fopen($file, "r");
+        $filecontent = fread($filehandle, filesize($file));
+        $tc = substr_count($filecontent, "<testcase");
+        echo "<td>$tc</td>";
+        $error = substr_count($filecontent, "<error");
+        $failure = substr_count($filecontent, "<failure");
+        $total = $error + $failure;
+        echo "<td>$total</td>";
+        echo "</tr>";
+      }
+    }
+  ?>
+</TABLE>
+
+</body>
+
+</html>
\ No newline at end of file
diff --git a/releng.wtpbuilder/distribution/wtp.site/publish.xml b/releng.wtpbuilder/distribution/wtp.site/publish.xml
index 4df95e9..357a20a 100644
--- a/releng.wtpbuilder/distribution/wtp.site/publish.xml
+++ b/releng.wtpbuilder/distribution/wtp.site/publish.xml
@@ -22,7 +22,7 @@
 
     <property
         name="templateDir"
-        value="${wtp.builder.home}/distribution/wtp.site" />
+        value="${wtp.builder.home}/distribution/${build.distribution}.site" />
     <property
         name="resultingIndex"
         value="${resultDir}/${indexFileName}" />
@@ -42,7 +42,7 @@
     <target name="default">
         <copy
             overwrite="true"
-            file="${wtp.builder.home}/distribution/wtp.site/templateFiles/${indexTemplateFilename}"
+            file="${wtp.builder.home}/distribution/${build.distribution}.site/templateFiles/${indexTemplateFilename}"
             tofile="${resultingIndex}" />
         <antcall target="countFiles" />
         <antcall target="generateCompileIndex" />
@@ -181,13 +181,6 @@
 
         <antcall target="writeData" />
 
-        <mkdir dir="${resultDir}/whatisfixed" />
-        <echo
-            file="${resultDir}/whatisfixed/buglog.html"
-            append="true">
-            what is fixed list is not available yet!
-        </echo>
-
         <!--  Update timestamp on file to permit overwrite through Ant copy task  -->
         <touch file="${resultingIndex}" />
     </target>
@@ -207,6 +200,9 @@
             <fileset
                 dir="${buildDirectory}/plugins"
                 includes="**/buildnotes_*.html" />
+            <fileset
+                dir="${buildDirectory}/features"
+                includes="**/buildnotes_*.html" />
         </copy>
 
 
@@ -228,7 +224,7 @@
 
         <!-- get our authored, tokenized site.xml file -->
         <copy
-            file="${wtp.builder.home}/distribution/wtp.site/templateFiles/siteWTP.xml"
+            file="${wtp.builder.home}/distribution/${build.distribution}.site/templateFiles/siteWTP.xml"
             tofile="${buildDirectory}/${buildLabel}/updateSite/site.xml"
             overwrite="true"
             failonerror="true" />
@@ -342,6 +338,16 @@
             value="Test" />
     </target>
 
+    <target name="P">
+        <replace
+            file="${resultingIndex}"
+            token="%wtpandprereqs%"
+            value=" " />
+        <replace
+            file="${resultingIndex}"
+            token="@type@"
+            value="Patches" />
+    </target>
 
     <target name="checkIfTested">
         <echo
@@ -413,6 +419,11 @@
 
         <replace
             file="${resultingIndex}"
+          token="@eclipse.fspath.prefix@"
+          value="${eclipse.fspath.prefix}" />
+    	
+        <replace
+            file="${resultingIndex}"
             token="@testURL@"
             value="${eclipseTestFramework.url}/${eclipseTestFramework.file}" />
         <replace
@@ -437,6 +448,22 @@
             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
diff --git a/releng.wtpbuilder/distribution/wtp.site/staticDropFiles/FAIL.gif b/releng.wtpbuilder/distribution/wtp.site/staticDropFiles/FAIL.gif
new file mode 100644
index 0000000..28bba66
--- /dev/null
+++ b/releng.wtpbuilder/distribution/wtp.site/staticDropFiles/FAIL.gif
Binary files differ
diff --git a/releng.wtpbuilder/distribution/wtp.site/staticDropFiles/OK.gif b/releng.wtpbuilder/distribution/wtp.site/staticDropFiles/OK.gif
new file mode 100644
index 0000000..689e523
--- /dev/null
+++ b/releng.wtpbuilder/distribution/wtp.site/staticDropFiles/OK.gif
Binary files differ
diff --git a/releng.wtpbuilder/distribution/wtp.site/staticDropFiles/componentxmls.php b/releng.wtpbuilder/distribution/wtp.site/staticDropFiles/componentxmls.php
new file mode 100644
index 0000000..73c5443
--- /dev/null
+++ b/releng.wtpbuilder/distribution/wtp.site/staticDropFiles/componentxmls.php
@@ -0,0 +1,53 @@
+<html>
+<head>
+<?php
+  function find_component_xml($directory)
+  {
+    $count = 0;
+    $dir = dir($directory);
+    while ($anEntry = $dir->read())
+    {
+      if ($anEntry != "." && $anEntry != "..")
+      {
+        $anEntry = $directory."/".$anEntry;
+        if (stristr($anEntry, '.source') === FALSE)
+        {
+          if (is_dir($anEntry))
+          {
+            find_component_xml($anEntry);
+          }
+          else
+          {
+            echo "<tr><td><a href=\"$anEntry\">";
+            echo substr($anEntry, 22);
+            echo "</a></td>";
+          }
+        }
+      }
+    }
+  }
+?>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
+</head>
+<body>
+
+<p><b><font face="Verdana" size="+3">component.xml</font></b> </p>
+
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">
+	   component.xml files for <?php echo "$buildType $buildName"; ?></font></b></td>
+  </tr>
+</table>
+
+<table border="1" width="100%">
+  <tr>
+    <th>component.xml</th>
+  </tr>
+<?php
+  find_component_xml("apitools/componentxmls");
+?>
+</table>
+</body>
+</html>
diff --git a/releng.wtpbuilder/distribution/wtp.site/staticDropFiles/download.php b/releng.wtpbuilder/distribution/wtp.site/staticDropFiles/download.php
new file mode 100644
index 0000000..cfeab0a
--- /dev/null
+++ b/releng.wtpbuilder/distribution/wtp.site/staticDropFiles/download.php
@@ -0,0 +1,54 @@
+<html>
+<head>
+<title>Eclipse WTP Download Click Through</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
+<?php
+	$parts = explode("-", $dropFile);
+	$clickFile = "clickThroughs/";
+	for ($i =0; $i<count($parts); $i++) {
+		if ($i != 2) {
+			$clickFile = $clickFile.$parts[$i];
+		    if ($i < count($parts) - 1) {
+        	    $clickFile = $clickFile."-";
+            }
+ 		}
+	}
+	$clickFile = $clickFile.".txt";
+
+	if (file_exists($clickFile)) {
+		$fileHandle = fopen($clickFile, "r");
+		while (!feof($fileHandle)) {
+			$aLine = fgets($fileHandle, 4096);
+			$result = $result.$aLine;
+		}
+		fclose($fileHandle);
+	} else {
+		echo '<META HTTP-EQUIV="Refresh" CONTENT="0;URL='.$dropFile.'">';
+		echo '<b><font size "+4">Downloading: '.$dropFile.'</font></b>';
+		echo '<BR>';
+		echo '<BR>';
+		echo 'If your download does not begin automatically click <a href="'.$dropFile.'">here</a>.';
+	}
+?>
+</head>
+
+<body bgcolor="#FFFFFF" text="#000000">
+  <?php
+	if (file_exists($clickFile)) {
+	 echo '<p><b><font size="+4">Important Notes<BR>';
+	 echo $dropFile;
+	 echo '</font></b></font></p>
+	<p>It is very important to read the following notes in order to run this version 
+	  of Eclipse. Once you have read the notes you can click on the Download link 
+	  to download the drop.</p>
+	';
+	  echo '<textarea name="textfield" cols="80" rows="20" wrap="PHYSICAL">'.$result;
+	  echo '</textarea>';
+	  echo '<BR>';
+	  echo '<BR>';
+	  echo '<a href="'.$dropFile.'">Download</a>';
+	}
+?>
+</body>
+</html>
diff --git a/releng.wtpbuilder/distribution/wtp.site/staticDropFiles/miscUtil.php b/releng.wtpbuilder/distribution/wtp.site/staticDropFiles/miscUtil.php
index 11f4948..24d7263 100644
--- a/releng.wtpbuilder/distribution/wtp.site/staticDropFiles/miscUtil.php
+++ b/releng.wtpbuilder/distribution/wtp.site/staticDropFiles/miscUtil.php
@@ -4,181 +4,210 @@
 // handy constant to compute file size in megabytes
 
 function fileSizeInMegs($filename) {
-    $onemeg=1024*1024;
-    $zipfilesize=filesize($filename);
-    $zipfilesize=round($zipfilesize/$onemeg, 0);
-    return $zipfilesize;
+	$onemeg=1024*1024;
+	$zipfilesize=filesize($filename);
+	$zipfilesize=round($zipfilesize/$onemeg, 0);
+	return $zipfilesize;
 }
 
 function fileSizeForDisplay($filename) {
-    $onekilo=1024;
-    $onemeg=$onekilo * $onekilo;
-    $criteria = 3 * $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;
+	$onekilo=1024;
+	$onemeg=$onekilo * $onekilo;
+	$criteria = 3 * $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>";
+	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;
+	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'];
+		$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;
+		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);
+		$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();
+		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;
+	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);
+	$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.
 
 
-    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);
+	 // 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;
-    $browser = get_browser(null, true);
-    if ($browser) {
-    $rawPlatform = $browser['platform'];
-    if ($debugFunctions) {
-        echo "browser platfrom: " . $rawPlatform . "<br />" ;
-    }
+	global $debugScript;
+	global $debugFunctions;
+	// getBrowser is expensive, so cache the data
+	static $browser;
+	$platform = "unknown";
 
-    if ($debugFunctions) {
-        $browserKeys = array_keys($browser);
-        foreach ($browserKeys as $key) {
-            echo $key . ": " . $browser[$key] . "<br />";
-        }
-    }
-    }
-    $platform = "unknown";
-    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;
+
+	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.
 
-function getPrereqReferenceOrName($eclipseMirrorScript, $mirrorPrefixuri, $prerequrl, $prereqfilename) {
-    // 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 (stream_last_modified($prerequrl)) {
-        $reflink="<a href=\"" . $eclipseMirrorScript . $mirrorPrefixuri . "/" . $prereqfilename . "\">" . $prereqfilename . "</a>";
-    } else {
-        $reflink=$prereqfilename;
-    }
-    return $reflink;
+	if (resourceExist($prerequrl, $mirrorPrefixuri, $prereqfilename, $eclipseFSpathPrefix)) {
+		$reflink="<a href=\"" . $eclipseMirrorScript . $mirrorPrefixuri . "/" . $prereqfilename . "\">" . $prereqfilename . "</a>";
+	} else {
+		$reflink=$prereqfilename;
+	}
+	return $reflink;
 }
 ?>
diff --git a/releng.wtpbuilder/distribution/wtp.site/staticDropFiles/pii.php b/releng.wtpbuilder/distribution/wtp.site/staticDropFiles/pii.php
new file mode 100644
index 0000000..e3ed59b
--- /dev/null
+++ b/releng.wtpbuilder/distribution/wtp.site/staticDropFiles/pii.php
@@ -0,0 +1,54 @@
+<html>
+<head>
+<?php
+  function write_unused_property($directory)
+  {
+    $count = 0;
+    $dir = dir($directory);
+    while ($anEntry = $dir->read())
+    {
+      if ($anEntry != "." && $anEntry != "..")
+      {
+        $anEntry = $directory."/".$anEntry;
+        if (is_dir($anEntry))
+        {
+          write_unused_property($anEntry);
+        }
+        else
+        {
+          echo "<tr><td><a href=\"$anEntry\">";
+          echo substr($anEntry, 16);
+          echo "</a></td>";
+          $lines = file($anEntry);
+          $count = count($lines);
+          echo "<td>$count</td></tr>";
+        }
+      }
+    }
+  }
+?>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
+</head>
+<body>
+
+<p><b><font face="Verdana" size="+3">Unused property messages</font></b> </p>
+
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">
+	   Unused property messages for <?php echo "$buildType $buildName"; ?></font></b></td>
+  </tr>
+</table>
+
+<table border="1">
+  <tr>
+    <th>Properties file</th>
+    <th>Unused strings</th>
+  </tr>
+<?php
+  write_unused_property("piitools");
+?>
+</table>
+</body>
+</html>
diff --git a/releng.wtpbuilder/distribution/wtp.site/templateFiles/index.html.template.php b/releng.wtpbuilder/distribution/wtp.site/templateFiles/index.html.template.php
index 4fb6a11..1353253 100644
--- a/releng.wtpbuilder/distribution/wtp.site/templateFiles/index.html.template.php
+++ b/releng.wtpbuilder/distribution/wtp.site/templateFiles/index.html.template.php
@@ -13,6 +13,8 @@
 $builddate="@date@";
 
 $eclipseMirrorPrefixuri="@eclipse.mirror.prefixuri@";
+$eclipseFSpathPrefix="@eclipse.fspath.prefix@";
+
 $eclipsefilelinux="@eclipsefilelinux@";
 $eclipsefilewindows="@eclipsefilewindows@";
 $eclipsefilemacosx="@eclipsefilemacos@";
@@ -24,6 +26,11 @@
 $testURL="@testURL@";
 $testFile="@testFile@";
 
+$wstURL="@wstURL@";
+$wstFile="@wstFile@";
+$wstMirrorPrefixuri="@wst.mirror.prefixuri@";
+$wstBuildHome="@wstBuildHome@";
+
 
 $gefURL="@gefURL@";
 $gefFile="@gefFile@";
@@ -218,7 +225,7 @@
 				}
 				?>
 				<td align="right" width="35%"><?php
-				echo getPrereqReferenceOrName($eclipseMirrorScript, $eclipseMirrorPrefixuri, $eclipseURL, $recommendedFile);
+				echo getPrereqReferenceOrName($eclipseMirrorScript, $eclipseMirrorPrefixuri, $eclipseURL, $recommendedFile, $eclipseFSpathPrefix);
 				echo " or <a href=\"" . $eclipseBuildURL . "\">appropriate platform</a>";
 				echo " or <a href=\"" . $eclipseBuildHome . "\">equivalent</a></td>";
 				?>
@@ -228,7 +235,7 @@
 				<td width="10%"></td>
 				<td>Eclipse Modeling Framework (EMF, XSD InfoSet, SDO)</td>
 				<td align="right"><?php
-				echo getPrereqReferenceOrName($eclipseMirrorScript, $emfMirrorPrefixuri, $emfURL, $emfFile);
+				echo getPrereqReferenceOrName($eclipseMirrorScript, $emfMirrorPrefixuri, $emfURL, $emfFile, $eclipseFSpathPrefix);
 				echo " or <a href=\"" . $emfBuildHome . "\">equivalent</a></td>";
 				?>
 			
@@ -238,7 +245,7 @@
 				<td width="10%"></td>
 				<td>Graphical Editing Framework (GEF)</td>
 				<td align="right"><?php
-				echo getPrereqReferenceOrName($eclipseMirrorScript, $gefMirrorPrefixuri, $gefURL, $gefFile);
+				echo getPrereqReferenceOrName($eclipseMirrorScript, $gefMirrorPrefixuri, $gefURL, $gefFile, $eclipseFSpathPrefix);
 				echo " or <a href=\"" . $gefBuildHome . "\">equivalent</a></td>";
 				?>
 			
@@ -249,7 +256,7 @@
 				<td>Data Tools Platform (DTP) (required only for EJB or JPT
 				development)</td>
 				<td align="right"><?php
-				echo getPrereqReferenceOrName($eclipseMirrorScript, $dtpMirrorPrefixuri, $dtpURL, $dtpFile);
+				echo getPrereqReferenceOrName($eclipseMirrorScript, $dtpMirrorPrefixuri, $dtpURL, $dtpFile, $eclipseFSpathPrefix);
 				echo " or <a href=\"" . $dtpBuildHome . "\">equivalent</a></td>";
 				?>
 			
@@ -259,7 +266,7 @@
 				<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);
+				echo getPrereqReferenceOrName($eclipseMirrorScript, $eclipseMirrorPrefixuri, $testURL, $testFile, $eclipseFSpathPrefix);
 				echo " or <a href=\"" . $eclipseBuildHome . "\">equivalent</a></td>";
 				?>
 			
@@ -267,9 +274,10 @@
 
 			<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>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);
+				echo getPrereqReferenceOrName($eclipseMirrorScript, $eclipseMirrorPrefixuri, $eclipserelengURL, $eclipserelengFile, $eclipseFSpathPrefix);
 				echo " or <a href=\"" . $eclipseBuildHome . "\">equivalent</a></td>";
 				?>
 			
@@ -279,7 +287,7 @@
 				<td width="10%"></td>
 				<td>Third Parthy 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);
+				echo getPrereqReferenceOrName($eclipseMirrorScript, $orbitthirdpartyzipMirrorPrefixuri, $orbitthirdpartyzipURL, $orbitthirdpartyzipFile,$eclipseFSpathPrefix);
 				echo " or <a href=\"" . $orbitthirdpartyzipBuildHome . "\">equivalent</a></td>";
 				?>
 			
@@ -324,12 +332,9 @@
 				$zipfilesize=fileSizeForDisplay($filename);
 				$fileShortDescription="wtp";
 				displayFileLine($downloadprefix, $filename, $zipfilesize, $fileShortDescription);
-
-
 				?>
 			</tr>
 
-			<tr>
 			
 			
 			<tr>
diff --git a/releng.wtpbuilder/distribution/wtp.site/templateFiles/performance.template b/releng.wtpbuilder/distribution/wtp.site/templateFiles/performance.template
new file mode 100644
index 0000000..f8abfbc
--- /dev/null
+++ b/releng.wtpbuilder/distribution/wtp.site/templateFiles/performance.template
@@ -0,0 +1,62 @@
+<P>
+  <A NAME="unit"></A>
+  * Missing reference data. Build used for comparison specified in ending parenthesis.
+  <BR>green: faster, less memory
+  <BR>red: slower, more memory
+  <BR>x axis: difference between current value and baseline value as percentage
+  <BR>
+</P>
+
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">
+      Detailed performance data grouped by scenario prefix
+    </font></b></td>
+  </tr>
+</table>
+
+<?php
+  $dir = dir(".");
+  while ($anEntry = $dir->read())
+  {
+    if ($anEntry != "global.php" && substr($anEntry, strlen($anEntry) - 4) == ".php")
+    {
+      echo "<a href=\"$anEntry\">$anEntry</a><br>";
+    }
+  }
+?>
+
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td>&nbsp;</td>
+  </tr>
+</table>
+
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">
+      Performance JUnit test results for <?php echo "$buildType $buildName"; ?>
+    </font></b></td>
+  </tr>
+</table>
+
+<font color="#FFFFFF" face="Arial,Helvetica">
+<table border=1" width="100%">
+  <tr>
+    <td width="100%"><b>Tests Performed</b></td>
+  </tr>
+  <?php
+    $xmlDir = dir("../xml");
+    while ($xmlEntry = $xmlDir->read())
+    {
+      if ($xmlEntry != "." && $xmlEntry != "..")
+      {
+        $htmlEntry = substr($xmlEntry, 0, strlen($xmlEntry) - 3) . "html";
+        echo "<tr>";
+        echo "<td><a href=\"../html/$htmlEntry\">$htmlEntry</a></td>";
+        echo "</tr>";
+      }
+    }
+  ?>
+</table>
+</html>
\ No newline at end of file
diff --git a/releng.wtpbuilder/distribution/wtp.tests/templateFiles/index.php b/releng.wtpbuilder/distribution/wtp.tests/templateFiles/index.php
new file mode 100644
index 0000000..8d23693
--- /dev/null
+++ b/releng.wtpbuilder/distribution/wtp.tests/templateFiles/index.php
@@ -0,0 +1,80 @@
+<html>
+<head>
+
+<?php
+    $parts = explode("/", realpath(".."));
+    $label = $parts[count($parts) - 1];
+?>
+
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
+</head>
+<body>
+<p><b><font face="Verdana" size="+3">Test Results</font></b> </p>
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica">Unit 
+      Test Results for <?php echo "$label"; ?> </font></b></td>
+  </tr>
+</table>
+<p></p><table border="0">
+</table>
+
+<table width="77%" border="1">
+  <tr> 
+    <td width="81%"><b>Tests Performed</b></td>
+    <td width="19%"><b>Errors &amp; Failures</b></td>
+  </tr>
+
+  <?
+    $dir = dir("html");
+    while ($anEntry = $dir->read())
+    {
+      if ($anEntry != "." && $anEntry != "..")
+      {
+        $link = "html/".$anEntry;
+        $xml = "xml/".substr($anEntry, 0, strlen($anEntry)-4)."xml";
+        $count = 0;
+        $fileHandle = fopen($xml, "r");
+        while (!feof($fileHandle))
+        {
+          $aLine = fgets($fileHandle, 4096); // Length parameter only optional after 4.2.0
+          $count = $count + substr_count($aLine, '<error');
+        }
+        fclose($fileHandle);
+        if ($count > 0)
+        {
+          echo "<tr><td><a href=\"$link\"><b><font color=\"red\">";
+          echo "$anEntry";
+          echo "</font></b></a></td>";
+          echo "<td><b><font color=\"red\">$count</font></b></td></tr>";
+        }
+        else
+        {
+          echo "<tr><td><a href=\"$link\">";
+          echo "$anEntry";
+          echo "</a></td>";
+          echo "<td>$count</td></tr>";
+        }
+      }
+    }
+  ?>
+  
+</table>
+<p></p>
+<br>
+<table border=0 cellspacing=5 cellpadding=2 width="100%" >
+  <tr> 
+    <td align=LEFT valign=TOP colspan="3" bgcolor="#0080C0"><b><font color="#FFFFFF" face="Arial,Helvetica"> 
+      Console output logs 
+      <?php echo "$label"; ?>
+      </font></b></td>
+  </tr>
+</table>
+<br>
+These <a href="consolelogs/wtptestlog.txt">logs</a> contain the console output captured while 
+running the JUnit automated tests. <br>
+<br>
+
+</body>
+</html>
diff --git a/releng.wtpbuilder/distribution/wtp.tests/testScripts/ComputePluginVersion.jar b/releng.wtpbuilder/distribution/wtp.tests/testScripts/ComputePluginVersion.jar
new file mode 100644
index 0000000..ad06a45
--- /dev/null
+++ b/releng.wtpbuilder/distribution/wtp.tests/testScripts/ComputePluginVersion.jar
Binary files differ
diff --git a/releng.wtpbuilder/distribution/wtp.tests/testScripts/test.xml b/releng.wtpbuilder/distribution/wtp.tests/testScripts/test.xml
index 96a4cd4..e958864 100644
--- a/releng.wtpbuilder/distribution/wtp.tests/testScripts/test.xml
+++ b/releng.wtpbuilder/distribution/wtp.tests/testScripts/test.xml
@@ -38,9 +38,6 @@
         name="eclipse-home"
         value="${testRoot}/eclipse" />
 
-    <!-- The path to libary.xml -->
-    <!--property name="library-file" value="${eclipse-home}/plugins/${org.eclipse.test}/library.xml" /-->
-
     <!-- The directory that will contain the xml and html results from the tests that are run -->
     <property
         name="results"
@@ -517,6 +514,14 @@
                 name="report"
                 value="org.eclipse.wst.xsd.validation.tests" />
         </antcall>
+        <antcall target="runtests">
+            <param
+                name="testPlugin"
+                value="${org.eclipse.wst.xsd.core.tests}" />
+            <param
+                name="report"
+                value="org.eclipse.wst.xsd.core.tests" />
+        </antcall>
     </target>
 
     <!-- HTML TESTS -->
@@ -660,13 +665,29 @@
 				value="org.eclipse.jst.jsf.facesconfig.tests" />
     	</antcall>
     	<antcall target="runtests">
-    				<param 
-    					name="testPlugin" 
-    					value="${org.eclipse.jst.jsf.facesconfig.ui.test}" />
-    				<param 
-    					name="report" 
-    					value="org.eclipse.jst.jsf.facesconfig.ui.test" />
-    	    	</antcall>
+			<param 
+				name="testPlugin" 
+				value="${org.eclipse.jst.jsf.facesconfig.ui.test}" />
+			<param 
+				name="report" 
+				value="org.eclipse.jst.jsf.facesconfig.ui.test" />
+    	</antcall>
+    	<antcall target="runtests">
+    		<param 
+    			name="testPlugin" 
+    			value="${org.eclipse.jst.jsf.validation.el.tests}" />
+    		<param 
+    			name="report" 
+    			value="org.eclipse.jst.jsf.validation.el.tests" />
+    	 </antcall>
+    	<antcall target="runtests">
+			<param 
+				name="testPlugin" 
+				value="${org.eclipse.jst.pagedesigner.tests}" />
+			<param 
+				name="report" 
+				value="org.eclipse.jst.pagedesigner.tests" />
+    	</antcall>
 
     </target>
 
diff --git a/releng.wtpbuilder/distribution/wtp.tests/testScripts/testServer.properties b/releng.wtpbuilder/distribution/wtp.tests/testScripts/testServer.properties
index ea24038..ad56274 100644
--- a/releng.wtpbuilder/distribution/wtp.tests/testScripts/testServer.properties
+++ b/releng.wtpbuilder/distribution/wtp.tests/testScripts/testServer.properties
@@ -8,4 +8,7 @@
 
 # SWT
 #swt.lib.path=org.eclipse.swt.motif_3.1.0/os/linux/x86
-swt.lib.path=org.eclipse.swt.win32_3.1.0/os/win32/x86
\ No newline at end of file
+swt.lib.path=org.eclipse.swt.win32_3.1.0/os/win32/x86
+
+#JSF Runrime Library directory
+jsf1.1Dir=myfaces-core-1.1.5/lib
\ No newline at end of file
diff --git a/releng.wtpbuilder/distribution/wtp.tests/testdependency.xml b/releng.wtpbuilder/distribution/wtp.tests/testdependency.xml
index 78fd54d..81f8fef 100644
--- a/releng.wtpbuilder/distribution/wtp.tests/testdependency.xml
+++ b/releng.wtpbuilder/distribution/wtp.tests/testdependency.xml
@@ -58,8 +58,11 @@
                 name="groupId"
                 value="oagis.wsdl" />
         </antcall>
-
-
+    	<antcall target="getAndInstall">
+    	     <param
+    	        name="groupId"
+    	        value="jsf.1_1" />
+    	</antcall>
     </target>
 
 
diff --git a/releng.wtpbuilder/distribution/wtpbuildTools.build/build.xml b/releng.wtpbuilder/distribution/wtpbuildTools.build/build.xml
new file mode 100644
index 0000000..7fcb864
--- /dev/null
+++ b/releng.wtpbuilder/distribution/wtpbuildTools.build/build.xml
@@ -0,0 +1,47 @@
+<project
+    default="build"
+    basedir=".">
+
+
+
+    <target
+        name="build"
+        depends="getBaseBuilder">
+        <dirname
+            file="${ant.file}"
+            property="distribution.wtp.build.dir" />
+        <property file="${wtp.builder.home}/build.properties" />
+        <property
+            name="buildTargets"
+            value="${wtp.builder.home}/scripts/build/runbuild.xml" />
+
+
+        <ant antfile="${buildTargets}">
+            <property
+                name="component"
+                value="wtp-buildTools" />
+        </ant>
+
+
+        <ant antfile="${wtp.builder.home}/scripts/build/label.xml" />
+
+
+    </target>
+
+    <target
+        name="getBaseBuilder"
+        if="eclipse.builder.fetch">
+        <dirname
+            file="${ant.file}"
+            property="wtbuilder.dir" />
+        <property
+            name="buildTargets"
+            value="${wtp.builder.home}/scripts/build/runbuild.xml" />
+        <!-- delete dir="${pde.builder.path}" failonerror="false"/ -->
+        <ant
+            antfile="${buildTargets}"
+            target="getBaseBuilder" />
+    </target>
+
+
+</project>
diff --git a/releng.wtpbuilder/distribution/wtpbuildTools.upload/build.xml b/releng.wtpbuilder/distribution/wtpbuildTools.upload/build.xml
new file mode 100644
index 0000000..42a1395
--- /dev/null
+++ b/releng.wtpbuilder/distribution/wtpbuildTools.upload/build.xml
@@ -0,0 +1,15 @@
+<project
+    default="sync"
+    basedir=".">
+
+
+    <target name="sync">
+
+        <ant antfile="${wtp.builder.home}/scripts/upload/upload.xml">
+            <property
+                name="site-sub-dir"
+                value="wtpBuildTools" />
+        </ant>
+
+    </target>
+</project>
diff --git a/releng.wtpbuilder/scripts/build/runbuild.xml b/releng.wtpbuilder/scripts/build/runbuild.xml
index 66463d8..ab36b40 100644
--- a/releng.wtpbuilder/scripts/build/runbuild.xml
+++ b/releng.wtpbuilder/scripts/build/runbuild.xml
@@ -21,9 +21,18 @@
         file="${env.LOCAL_BUILD_PROPERTIES_DIR}/${ant.project.name}.properties" />
 
     <!-- = = = end standard properties pattern = = = -->
+  <fail unless="env.BUILD_HOME" message="all scripts need a BUILD_HOME" />
 
-    <fail unless="env.BUILD_HOME" />
-    <fail unless="eclipse.builder.version" />
+  <echo
+      level="info"
+      message="buildDirectory: ${buildDirectory}" />
+	
+	<property name="keyCfgFile" value="${env.PROJECT_BUILDERS}/${projectname}/${env.RELENG}/maps/build.cfg" />
+	<echo message="keyCfgFile: ${keyCfgFile}" />
+  <property
+      file="${keyCfgFile}" />
+	  <fail unless="builderVersion" message="Could not get builderVersion. Probably could not checkout build.cfg?" />
+    <fail unless="eclipse.builder.version" message="Could not get eclipse.builder.version. Perhaps an old format build.cfg?" />
 
     <property
         name="basebuilder.path"
@@ -49,14 +58,10 @@
             value="${scripts.build.dir}/../../.." />
 
         <antcall target="runEclipseBuild">
-            <param
-                name="wtp.builder.home"
-                value="${wtp.builder.home}" />
+           
         </antcall>
         <antcall target="runEclipseBuildStamped">
-            <param
-                name="wtp.builder.home"
-                value="${wtp.builder.home}" />
+            
         </antcall>
     </target>
 
@@ -130,7 +135,7 @@
                 value="${env.LOCAL_PREREQS_CACHE}" />
             <property
                 name="baseLocation"
-                value="${env.PROJECT_PROJECTS}/${projectname}/${base.location}" />
+                value="${env.PROJECT_PROJECTS}/${projectname}/eclipse" />
             <property
                 name="buildRoot"
                 value="${env.PROJECT_PROJECTS}/${projectname}" />
@@ -215,7 +220,6 @@
 
     <target name="init">
 
-
         <condition
             property="buildBranch"
             value="R3.0">
diff --git a/tests/org.eclipse.wtp.releng.tests/src/org/eclipse/wtp/releng/tests/BuildTests.java b/tests/org.eclipse.wtp.releng.tests/src/org/eclipse/wtp/releng/tests/BuildTests.java
index b4a5943..ecd91af 100644
--- a/tests/org.eclipse.wtp.releng.tests/src/org/eclipse/wtp/releng/tests/BuildTests.java
+++ b/tests/org.eclipse.wtp.releng.tests/src/org/eclipse/wtp/releng/tests/BuildTests.java
@@ -112,7 +112,7 @@
 	private static final int EXPECTED_NUMBER_OF_TOTAL_PLUGINS = 581;
 	private static final int EXPECTED_NUMBER_OF_WTP_FEATURES = 1;
 	private static final int EXPECTED_NUMBER_OF_WTP_PLUGINS = 2;
-	private static final int EXPECTED_NUMBER_OF_WST_FEATURES = 54;
+	private static final int EXPECTED_NUMBER_OF_WST_FEATURES = 55;
 	private static final int EXPECTED_NUMBER_OF_WST_PLUGINS = 169;
 	private static final int EXPECTED_NUMBER_OF_JST_FEATURES = 33;
 	private static final int EXPECTED_NUMBER_OF_JST_PLUGINS = 97;