experimental work in progress
diff --git a/incubator/commonPages/README.txt b/incubator/commonPages/README.txt
new file mode 100644
index 0000000..27fb60f
--- /dev/null
+++ b/incubator/commonPages/README.txt
@@ -0,0 +1,3 @@
+Most of the files in this directory are 
+maintained in webtools cvs's releng.wtptools 
+project, in the downloadsites directory. 
diff --git a/incubator/commonPages/access_err.gif b/incubator/commonPages/access_err.gif
new file mode 100644
index 0000000..4f0748a
--- /dev/null
+++ b/incubator/commonPages/access_err.gif
Binary files differ
diff --git a/incubator/commonPages/access_warn.gif b/incubator/commonPages/access_warn.gif
new file mode 100644
index 0000000..8386e3e
--- /dev/null
+++ b/incubator/commonPages/access_warn.gif
Binary files differ
diff --git a/incubator/commonPages/api_err.gif b/incubator/commonPages/api_err.gif
new file mode 100644
index 0000000..4054878
--- /dev/null
+++ b/incubator/commonPages/api_err.gif
Binary files differ
diff --git a/incubator/commonPages/api_junit.gif b/incubator/commonPages/api_junit.gif
new file mode 100644
index 0000000..c372377
--- /dev/null
+++ b/incubator/commonPages/api_junit.gif
Binary files differ
diff --git a/incubator/commonPages/api_removed.gif b/incubator/commonPages/api_removed.gif
new file mode 100644
index 0000000..2b1d438
--- /dev/null
+++ b/incubator/commonPages/api_removed.gif
Binary files differ
diff --git a/incubator/commonPages/bottomAndFooter.php b/incubator/commonPages/bottomAndFooter.php
new file mode 100644
index 0000000..7e50d75
--- /dev/null
+++ b/incubator/commonPages/bottomAndFooter.php
@@ -0,0 +1,108 @@
+<table border="0" width="100%" cellpadding="2">
+	<tbody>
+		<tr>
+			<td valign="top" width="40%">
+			<table border="0" cellpadding="2">
+				<tbody>
+					<tr>
+						<td width="100%" bgcolor="#0080c0" valign="top"><b><font
+							face="Arial,Helvetica"><font color="#ffffff">Download Related
+						Links</font> </font></b></td>
+					</tr>
+					<tr>
+						<td valign="top">
+
+
+						<p><a
+							href="http://archive.eclipse.org/webtools/downloads/index.php"
+							target="_top">Archived Builds</a> are previously significant
+						builds that are no longer required, but which we keep on a
+						non-mirrored site, for historical and academic use.</p>
+
+						<?php
+						echo $pageFooterEnd;
+						?></td>
+					</tr>
+				</tbody>
+			</table>
+			</td>
+
+			<td />
+			
+			
+			<td width="45%" valign="top">
+			<table border="0" cellpadding="2">
+				<tbody>
+					<tr>
+						<td width="100%" colspan="4" bgcolor="#0080c0" valign="top"><b><font
+							face="Arial,Helvetica"><font color="#ffffff">Metrics Legend</font>
+						</font></b></td>
+					</tr>
+
+					<tr>
+						<td valign="top"><img src="../commonPages/compile_err.gif" width="16"
+							height="16" /></td>
+						<td valign="top" width="50%">compilation errors.</td>
+						<td valign="top"><img src="../commonPages/compile_warn.gif" width="16"
+							height="16" /></td>
+						<td valign="top" width="50%">compilation warnings.</td>
+					</tr>
+					<tr>
+						<td valign="top"><img src="../commonPages/access_err.gif" width="16"
+							height="16" /></td>
+						<td valign="top" width="50%">Access Rule Violations</td>
+						<td valign="top"><img src="../commonPages/access_warn.gif" width="16"
+							height="16" /></td>
+						<td valign="top" width="50%">Access Rule Warnings</td>
+					</tr>
+					<tr>
+						<td valign="top"><img src="../commonPages/junit_err.gif" width="16"
+							height="16" /></td>
+						<td valign="top" width="50%">junit failures.</td>
+						<td valign="top"><img src="../commonPages/pending1.gif" width="16" height="16" /></td>
+						<td valign="top" width="50%">Pending results</td>
+					</tr>
+					<tr>
+						<td valign="top"><img src="../commonPages/api_err.gif" width="16" height="16" /></td>
+						<td valign="top" width="50%">API violations.</td>
+
+						<td valign="top"><img src="../commonPages/api_junit.gif" width="16"
+							height="16" /></td>
+						<td valign="top" width="50%">APIs without junit testcases.</td>
+					</tr>
+					<tr>
+						<td valign="top"><img src="../commonPages/api_removed.gif" width="16"
+							height="16" /></td>
+						<td valign="top" width="50%">removed APIs.</td>
+					</tr>
+					<tr>
+						<td valign="top"><b>(</b>nnn<b>)</b></td>
+						<td valign="top">Number of bundles, jars, and wars, or number of
+						unit tests.</td>
+						<td valign="top"><b>NA</b></td>
+						<td valign="top"><b>N</b>ot <b>A</b>vailable</td>
+					</tr>
+
+
+
+
+				</tbody>
+			</table>
+			</td>
+		</tr>
+	</tbody>
+</table>
+
+
+<!-- footer -->
+<center>
+<hr />
+<p>All downloads are provided under the terms and conditions of the <a
+	href="http://www.eclipse.org/legal/notice.html">Eclipse.org Software
+User Agreement</a> unless otherwise specified.</p>
+
+<p>If you have problems downloading the drops, contact the <font
+	size="-1" face="arial,helvetica,geneva"><a
+	href="mailto:webmaster@eclipse.org">webmaster</a></font>.</p>
+</center>
+<!-- end footer -->
diff --git a/incubator/commonPages/compileLogSumaryXML.php b/incubator/commonPages/compileLogSumaryXML.php
new file mode 100644
index 0000000..900b20f
--- /dev/null
+++ b/incubator/commonPages/compileLogSumaryXML.php
@@ -0,0 +1,71 @@
+
+<?php
+
+$filename = "$innerValue/compilelogsSummary.xml";
+$prefixForVariable = "code_";
+$compileSummary = simplexml_load_file($filename);
+foreach ($compileSummary->summaryItem as $summaryItem) {
+    $name = $summaryItem->name;
+    $value = $summaryItem->value;
+    $code= "\$" . $prefixForVariable . $name . " = " . $value . ";";
+    //echo "<br />code: " . $code;
+    eval($code);
+}
+
+$filename = "$innerValue/testcompilelogsSummary.xml";
+if (file_exists($filename)) {
+    $prefixForVariable = "test_";
+    $compileSummary = simplexml_load_file($filename);
+    foreach ($compileSummary->summaryItem as $summaryItem) {
+        $name = $summaryItem->name;
+        $value = $summaryItem->value;
+        $code= "\$" . $prefixForVariable . $name . " = " . $value . ";";
+        //echo "<br />code: " . $code;
+        eval($code);
+    }
+} else {
+    $test_totalErrors = 0;
+    $test_totalBundles = 0;
+    $test_totalforbiddenAccessWarningCount = 0;
+    $test_totaldiscouragedAccessWarningCount = 0;
+}
+
+$filename = "$innerValue/unitTestsSummary.xml";
+if (file_exists("$filename")) {
+    $prefixForVariable = "unittest_";
+    $unitTestsSummary = simplexml_load_file($filename);
+    foreach ($unitTestsSummary->summaryItem as $summaryItem) {
+        $name = $summaryItem->name;
+        $value = $summaryItem->value;
+        $code= "\$" . $prefixForVariable . $name . " = " . $value . ";";
+        // echo "<br />code: " . $code;
+        eval($code);
+    }
+}
+else {
+    unset($unittest_grandTotalErrors, $unittest_grandTotalTests);
+}
+
+$totalCommpileErrors = $code_totalErrors + $test_totalErrors;
+$totalCompileOtherWarnings = $code_totalWarnings;
+$totalBundles = $code_totalBundles + $test_totalBundles;
+$totalForbidden = $code_totalforbiddenAccessWarningCount + $test_totalforbiddenAccessWarningCount;
+$totalDiscouraged = $code_totaldiscouragedAccessWarningCount + $test_totaldiscouragedAccessWarningCount;
+
+echo "<td width=\"6%\">($totalBundles)</td>";
+echo "<td width=\"6%\"><img src=\"../commonPages/compile_err.gif\" width=\"16\" height=\"16\"/><font color=red>$totalCommpileErrors</font></td>";
+echo "<td width=\"6%\"><img src=\"../commonPages/compile_warn.gif\" width=\"16\" height=\"16\"/><font color=orange>$totalCompileOtherWarnings</font></td>";
+echo "<td width=\"6%\"><img src=\"../commonPages/access_err.gif\" width=\"16\" height=\"16\"/><font color=red>$totalForbidden</font></td>";
+echo "<td width=\"6%\"><img src=\"../commonPages/access_warn.gif\" width=\"16\" height=\"16\"/><font color=orange>$totalDiscouraged</font></td>";
+
+if (isset($unittest_grandTotalErrors)) {
+    echo "<td width=\"6%\"><img src=\"../commonPages/junit_err.gif\" width=\"16\" height=\"16\"/><font color=red>$unittest_grandTotalErrors</font></td>";
+    echo "<td width=\"6%\">($unittest_grandTotalTests)</td>";
+}
+else {
+    echo "<td width=\"6%\"><img src=\"../commonPages/pending.gif\" width=\"16\" height=\"16\"/></td>";
+    echo "<td width=\"6%\"><img src=\"../commonPages/pending.gif\" width=\"16\" height=\"16\"/></td>";
+}
+
+
+?>
\ No newline at end of file
diff --git a/incubator/commonPages/compile_err.gif b/incubator/commonPages/compile_err.gif
new file mode 100644
index 0000000..c2bfdd6
--- /dev/null
+++ b/incubator/commonPages/compile_err.gif
Binary files differ
diff --git a/incubator/commonPages/compile_warn.gif b/incubator/commonPages/compile_warn.gif
new file mode 100644
index 0000000..cf4fdf9
--- /dev/null
+++ b/incubator/commonPages/compile_warn.gif
Binary files differ
diff --git a/incubator/commonPages/computeMainData.php b/incubator/commonPages/computeMainData.php
new file mode 100644
index 0000000..3567329
--- /dev/null
+++ b/incubator/commonPages/computeMainData.php
@@ -0,0 +1,81 @@
+<?php
+
+
+function computeMainData($buildBranches, $debugScript)
+
+{
+
+	global $buckets, $latestFile, $latestTimeStamp, $timeStamps;
+
+	foreach ($buildBranches as $buildBranch ) {
+
+		if (file_exists($buildBranch) && is_dir($buildBranch)) {
+			$aDirectory = dir($buildBranch);
+			$latestTimeStamp[$buildBranch] = array();
+			$latestFile[$buildBranch] = array();
+
+
+			while (false !== ($anEntry = $aDirectory->read())) {
+
+				// Short cut because we know aDirectory only contains other directories.
+				if ($anEntry != "." && $anEntry!="..") {
+
+					// echo "Debug anEntry: $anEntry<br />" ;
+					$aDropDirectoryName = $buildBranch."/".$anEntry;
+
+
+					if (is_dir($aDropDirectoryName) && is_Readable($aDropDirectoryName)) {
+						$aDropDirectory = dir($aDropDirectoryName);
+						//echo "Debug aDropDirectory: $aDropDirectory->path <br />" ;
+
+						$fileCount = 0;
+						while ($aDropEntry = $aDropDirectory->read()) {
+							// echo "Debug aDropEntry: $aDropEntry<br />" ;
+							if ( (stristr($aDropEntry, ".tar.gz")) || (stristr($aDropEntry, ".zip")) )  {
+								// Count the dropfile entry in the directory (so we won't display links, if not all there
+								$fileCount = $fileCount + 1;
+							}
+						}
+
+						$aDropDirectory->close();
+
+					}
+					// Read the count file
+					$countFile = $buildBranch."/".$anEntry."/files.count";
+					$indexFile = $buildBranch."/".$anEntry."/index.html";
+
+
+					if (!file_exists($indexFile)) {
+						$indexFile = $buildBranch."/".$anEntry."/index.php";
+					}
+
+
+					if (file_exists($countFile) && file_exists($indexFile)) {
+						$anArray = file($countFile);
+						// debug
+						//echo "Number according to files.count: ", $anArray[0];
+						//echo "   actual counted files: ", $fileCount;
+
+						// If a match - process the directoryVV -- we simply look that there's more
+						// zip's than we expect, since it frequently breaks where the count is slighly
+						// off, such as when we add, after the fact, an all-in-one zip.
+						if ($anArray[0] <= $fileCount) {
+							// debug
+							//echo "yes, counted equaled expected count<br />";
+
+                            $artifactTimeStamp="";
+							$entryParts = explode("-", $anEntry);
+							if (count($entryParts) == 3) {
+								include 'processDropDirectory.php';
+							}
+
+						}
+					}
+
+				}
+			}
+
+			$aDirectory->close();
+		}}
+}
+?>
diff --git a/incubator/commonPages/displayBuildMachine.php b/incubator/commonPages/displayBuildMachine.php
new file mode 100644
index 0000000..891762f
--- /dev/null
+++ b/incubator/commonPages/displayBuildMachine.php
@@ -0,0 +1,25 @@
+<?
+function displayBuildMachine()
+{
+                include 'parseProperties.php';
+                $properties = parseProperties("buildmachineinfo.properties");
+                $constString = "This build brought to you by ";
+                $varString = "";
+                $buildComputerPropValue = $properties["buildComputer"];
+
+                if (strcmp($buildComputerPropValue, "build") == 0) {
+                  $varString = "a server donated from lomboz.org";
+                }
+                else {
+                if (strcmp($buildComputerPropValue, "utils") == 0) {
+                  $varString = "a server donated from eclipse.org";
+                }
+                else {
+                         $varString = " a non-standard build server: ".$buildComputerPropValue;
+                }
+                }
+                $result = $constString.$varString;
+                return $result;
+}
+
+?>
diff --git a/incubator/commonPages/getFreshFromCVS.sh b/incubator/commonPages/getFreshFromCVS.sh
new file mode 100644
index 0000000..f36d9e9
--- /dev/null
+++ b/incubator/commonPages/getFreshFromCVS.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+# This script file is to help get fresh files from cvs
+
+if [[ !("${1}" == "patches" || "${1}" == "downloads" || "${1}" == "committers") ]] ; then
+   echo ""
+   echo "    Usage: ${0} patches | downloads | committers"
+   echo ""
+else
+
+subdir="${1}"
+
+backupdir="${subdir}TempBackup"
+
+echo "  save backup copies ..."
+mkdir $backupdir
+# Note: do not use recurvise, since that would copy all of 'drops'
+cp ${subdir}/* $backupdir
+
+rm ${subdir}/*
+echo "  checking out head of $subdir from cvs ..."
+cvs -Q -d :pserver:anonymous@dev.eclipse.org:/cvsroot/webtools export -d $subdir -r HEAD releng.wtptools/downloadsites/webtools/$subdir 
+
+echo "  make sure files have proper EOL format ..."
+dos2unix -quiet -keepdate ${subdir}/* > /dev/null 2>/dev/null
+
+fi
diff --git a/incubator/commonPages/handleSummaryResults.php b/incubator/commonPages/handleSummaryResults.php
new file mode 100644
index 0000000..10aa1a1
--- /dev/null
+++ b/incubator/commonPages/handleSummaryResults.php
@@ -0,0 +1,18 @@
+<?php
+// if compilelogsSummary.xml exists, assume the "new way" (summary in xml file).
+// else, assume old way
+//echo "drops/$bValue/$innerValue/compilelogsSummary.xml";
+if (file_exists("$innerValue/compilelogsSummary.xml"))
+{
+    include 'compileLogSumaryXML.php';
+}
+// if compileResults.php exists, assume the "new way" (testResults and compileResult seperated).
+// else, assume old way
+else if (file_exists("$innerValue/compileResults.php"))
+{
+    include 'parse2Handling.php';
+}
+else {
+    include 'parseHandling.php';
+}
+?>
\ No newline at end of file
diff --git a/incubator/commonPages/index.php b/incubator/commonPages/index.php
new file mode 100644
index 0000000..e5d3160
--- /dev/null
+++ b/incubator/commonPages/index.php
@@ -0,0 +1,3 @@
+<?php
+        header("location: downloads/");
+?>
diff --git a/incubator/commonPages/junit_err.gif b/incubator/commonPages/junit_err.gif
new file mode 100644
index 0000000..1b7ff9d
--- /dev/null
+++ b/incubator/commonPages/junit_err.gif
Binary files differ
diff --git a/incubator/commonPages/latestBuilds.php b/incubator/commonPages/latestBuilds.php
new file mode 100644
index 0000000..9f869dc
--- /dev/null
+++ b/incubator/commonPages/latestBuilds.php
@@ -0,0 +1,56 @@
+<?php
+
+$debugLatest=false;
+
+if (!function_exists("computeMainData")) {
+    include 'computeMainData.php';
+}
+
+computeMainData($buildBranches, $debugLatest);
+
+echo "<table border='0' cellpadding='2' width=\"100%\"><tr>";
+echo "<td align=\"center\" bgcolor=\"#0080C0\"><font color=\"#FFFFFF\" face=\"Arial,Helvetica\">";
+echo $mainTableHeader;
+echo "</font></td>";
+echo "</tr></table>";
+
+
+?>
+
+
+<table width="70%" align="center" cellpadding='2'>
+	<tr>
+		<td width="25%"><b>Build Type</b></td>
+		<td width="25%"><b>Build Name</b></td>
+		<td width="15%"><b>Stream</b></td>
+		<td width="40%"><b>Build Date</b></td>
+	</tr>
+
+
+
+	<?php
+	foreach($dropType as $value) {
+	    $prefix=$typeToPrefix[$value];
+
+	    foreach($buildBranches as $bValue) {
+
+	        if (array_key_exists ($bValue, $latestFile) && array_key_exists($prefix, $latestFile[$bValue])) {
+	            $fileName = $latestFile[$bValue][$prefix];
+                //echo "Debug: anEntry (filename) indexing timeStamps: ", $fileName, " <br />";
+	            echo "<tr>";
+	            echo "<td width=\"25%\">$value</td>";
+
+                $buildName=computeBuildName($fileName);
+	            $streamName=computeStreamName($bValue);
+	            if (sizeof($buildName) > 0) {
+	                echo "<td  width=\"25%\"><a href=\"$fileName/\">$buildName</a></td>";
+	                echo "<td width=\"15%\">$streamName</td>";
+	                echo "<td width=\"40%\">$timeStamps[$fileName]</td>";
+	                echo "</tr>";
+	            }
+	        }
+	    }
+	}
+	?>
+
+</table>
diff --git a/incubator/commonPages/parse2Handling.php b/incubator/commonPages/parse2Handling.php
new file mode 100644
index 0000000..fba4219
--- /dev/null
+++ b/incubator/commonPages/parse2Handling.php
@@ -0,0 +1,25 @@
+<?php
+$testResults = parse2_testResults("$innerValue/testResults.php");
+list ($junitFailures) = $testResults;
+
+$compileResults = parse2_compileResults("drops/$bValue/$innerValue/compileResults.php");
+list ($compileErrors, $compileAccessWarnings, $compileOtherWarnings) = $compileResults;
+$testCompileResults = parse2_compileResults("drops/$bValue/$innerValue/testCompileResults.php");
+list ($testCompileErrors, $testCompileAccessWarnings, $testCompileOtherWarnings) = $testCompileResults;
+
+$totalCommpileErrors = $compileErrors + $testCompileErrors;
+// we'll just use code for warnning summaries, for now
+$totalAccessWarnings = $compileAccessWarnings;
+$totalCompileOtherWarnings = $compileOtherWarnings;
+
+echo "<td width=\"6%\"></td>";
+echo "<td width=\"6%\"><img src=\"../commonPages/compile_err.gif\" width=\"16\" height=\"16\"/><font color=red>$totalCommpileErrors</font></td>";
+echo "<td width=\"6%\"><img src=\"../commonPages/compile_warn.gif\" width=\"16\" height=\"16\"/><font color=orange>$totalCompileOtherWarnings</font></td>";
+if ($junitFailures < 0) {
+echo "<td width=\"6%\"><img src=\"../commonPages/pending.gif\" width=\"16\" height=\"16\"/><font color=red></font></td>";
+}
+else {
+echo "<td width=\"6%\"><img src=\"../commonPages/junit_err.gif\" width=\"16\" height=\"16\"/><font color=red>$junitFailures</font></td>";
+}
+
+?>
\ No newline at end of file
diff --git a/incubator/commonPages/parseHandling.php b/incubator/commonPages/parseHandling.php
new file mode 100644
index 0000000..fb2f2d4
--- /dev/null
+++ b/incubator/commonPages/parseHandling.php
@@ -0,0 +1,11 @@
+
+<?php
+$testResults = parse_testResult("$innerValue/testResults.php");
+list ($compileErrors, $compileWarnings, $junitFailures) = $testResults;
+
+echo "<td width=\"6%\"></td>";
+echo "<td width=\"6%\"><img src=\"../commonPages/compile_err.gif\" width=\"16\" height=\"16\"/><font color=red>$compileErrors</font></td>";
+echo "<td width=\"6%\"><img src=\"../commonPages/compile_warn.gif\" width=\"16\" height=\"16\"/><font color=orange>$compileWarnings</font></td>";
+echo "<td width=\"6%\"><img src=\"../commonPages/junit_err.gif\" width=\"16\" height=\"16\"/><font color=red>$junitFailures</font></td>";
+
+?>
\ No newline at end of file
diff --git a/incubator/commonPages/parseProperties.php b/incubator/commonPages/parseProperties.php
new file mode 100644
index 0000000..482882b
--- /dev/null
+++ b/incubator/commonPages/parseProperties.php
@@ -0,0 +1,33 @@
+<?php
+
+
+  function parseProperties($filename)
+  {
+    $properties;
+    $i = 0;
+    $handle = fopen($filename, "r");
+    if ($handle)
+    {
+      $size = filesize($filename);
+      $content = fread($handle, $size);
+      fclose($handle);
+
+      $lineArray = explode("\n",$content);
+
+      while(list(,$line) = each($lineArray)) {
+      $line = trim($line);
+      if (strlen($line) > 0) {
+          //echo $line, "<br />";
+          $propertyPair = explode("=", $line);
+          $propertyPair[0] = trim($propertyPair[0], " \"\'");
+          $propertyPair[1] = trim($propertyPair[1], " \"\'");
+
+          $properties[$propertyPair[0]] = $propertyPair[1];
+          $i++;
+      }
+      }
+      }
+    return $properties;
+  }
+
+?>
diff --git a/incubator/commonPages/pending.gif b/incubator/commonPages/pending.gif
new file mode 100644
index 0000000..66db2a6
--- /dev/null
+++ b/incubator/commonPages/pending.gif
Binary files differ
diff --git a/incubator/commonPages/pending1.gif b/incubator/commonPages/pending1.gif
new file mode 100644
index 0000000..1b2ea6e
--- /dev/null
+++ b/incubator/commonPages/pending1.gif
Binary files differ
diff --git a/incubator/commonPages/processDropDirectory.php b/incubator/commonPages/processDropDirectory.php
new file mode 100644
index 0000000..a6ed2bc
--- /dev/null
+++ b/incubator/commonPages/processDropDirectory.php
@@ -0,0 +1,48 @@
+<?php
+// echo "Debug: yes, counted parts was 3<br />";
+$buildTypePart = $entryParts[0];
+$buckets[$buildBranch][$buildTypePart][] = $aDropDirectoryName;
+// if ($debugScript) {
+//echo "Debug: Started processDropDirectory with following <br />";
+//echo "    buildBranch: $buildBranch <br />"; 
+//echo "    buildTypePart: $buildTypePart <br />";
+//echo "    anEntry: $anEntry <br />";
+// }
+
+$timePart = $entryParts[2];
+$year = substr($timePart, 0, 4);
+$month = substr($timePart, 4, 2);
+$day = substr($timePart, 6, 2);
+$hour = substr($timePart,8,2);
+$minute = substr($timePart,10,2);
+
+$newTimePart = "$year-$month-$day $hour:$minute UTC";
+
+$timeStamp = strtotime($newTimePart);
+
+$timeStamps[$buildBranch."/".$artifactTimeStamp.$anEntry] = gmdate("D, j M Y -- H:i  \(\U\T\C\)", $timeStamp);
+//echo "Debug: anEntry indexing timeStamps: ", $buildBranch."/".$artifactTimeStamp.$anEntry, "<br />";
+// debug
+//  echo "<br />buildBranch:  $buildBranch <br />";
+//  echo "<br />parts[0]:  -$buildTypePart- <br />";
+//  echo "latestTimeStamp[buildBranch]:";
+//  echo $latestTimeStamp[$buildBranch];
+//  echo "latestTimeStamp:";
+//  echo $latestTimeStamp;
+
+if ((sizeof($latestTimeStamp[$buildBranch]) > 0) &&
+(isset($latestTimeStamp[$buildBranch][$buildTypePart])))
+{
+	if ($timeStamp > $latestTimeStamp[$buildBranch][$buildTypePart])
+	{
+		$latestTimeStamp[$buildBranch][$buildTypePart] = $timeStamp;
+		$latestFile[$buildBranch][$buildTypePart] = $aDropDirectoryName;
+	}
+}
+else
+{
+	$latestTimeStamp[$buildBranch][$buildTypePart] = $timeStamp;
+	$latestFile[$buildBranch][$buildTypePart] = $aDropDirectoryName;
+
+}
+?>
\ No newline at end of file
diff --git a/incubator/commonPages/recentHistory.php b/incubator/commonPages/recentHistory.php
new file mode 100644
index 0000000..e3b279d
--- /dev/null
+++ b/incubator/commonPages/recentHistory.php
@@ -0,0 +1,123 @@
+
+
+<?php
+
+$debugRecentHistory=false;
+
+if (!isset($buckets) || !function_exists("computeMainData")) {
+    include 'computeMainData.php';
+    computeMainData($buildBranches, $debugRecentHistory);
+}
+
+?>
+
+<table border="0" cellpadding="2" width="100%">
+  <tr>
+    <td align="center" bgcolor="#999999"><font color="#FFFFFF"
+      face="Arial,Helvetica">
+      <?php 
+        echo "$subsectionHeading"; 
+      ?>
+      </font></td>
+  </tr>
+</table>
+
+<?php
+
+foreach($dropType as $value) {
+    $prefix=$typeToPrefix[$value];
+
+    if ($debugRecentHistory) {
+        echo "dropType value: $value <br />";
+        echo "prefix: $prefix <br />";
+    }
+
+    echo "<table width=\"100%\" cellpadding='2'>
+            <tr bgcolor=\"#999999\">
+            <td align='left' colspan=\"11\">
+            <a name=\"$prefix\">
+            <font color=\"#FFFFFF\" face=\"Arial,Helvetica\">";
+    echo "$value";
+    echo "</font></a></td>";
+    echo "</tr>";
+
+    echo "<tr>
+            <td width=\"13%\">Build Name</td>
+            <td width=\"8%\">Stream</td>
+            <td width=\"20%\">Build Date</td>
+            <td colspan=\"8\"></td>
+          </tr>";
+
+    if ($debugRecentHistory) {
+        echo "buildBranches: <br />";
+        foreach($buildBranches as $tempbuildBranches) {
+            echo "$tempbuildBranches <br />";
+        }
+        echo "buckets: <br />";
+        if (isset($buckets)) {
+            foreach($buckets as $tempbuckets) {
+                foreach($tempbuckets as $tempbucket) {
+                    foreach ($tempbucket as $oneTempBucket) {
+                        echo "onetempBucket: $oneTempBucket <br />";
+                    }
+                }
+            }
+        }
+    }
+
+    foreach($buildBranches as $bValue) {
+        if ($debugRecentHistory) {
+            echo "loop through each buildBranch: $bValue <br />";
+            echo "isset(\$buckets): " . isset($buckets). "<br />";
+        }
+        if (isset($buckets) && array_key_exists($bValue, $buckets) && array_key_exists($prefix, $buckets[$bValue]))
+        //&& $buckets[$bValue] != NULL && array_key_exists($prefix, $buckets[$bValue]))
+        {
+            if ($debugRecentHistory) {
+                echo "in loop<br />";
+            }
+            echo "<tr><td colspan=\"11\"><hr/></td></tr>";
+            $aBranchBucket = $buckets[$bValue][$prefix];
+            if (isset($aBranchBucket)) {
+                rsort($aBranchBucket);
+                if ($debugRecentHistory) {
+                    echo "buckets in this branch: <br />";
+                    foreach($aBranchBucket as $tempBucket) {
+                        echo "$tempBucket <br />";
+                    }
+                }
+
+                foreach($aBranchBucket as $innerValue) {
+                    //if ($debugRecentHistory) {
+                       // echo "Debug recentHistory: innerValue: $innerValue <br />";
+                    //}
+                    $buildName = computeBuildName($innerValue);
+                    $streamName = computeStreamName($bValue);
+                    
+                    echo "<tr>";
+                    echo "<td width=\"13%\"><a href=\"$innerValue/\">$buildName</a></td>";
+                    echo "<td width=\"8%\">$streamName</td>";
+                    echo "<td width=\"20%\">$timeStamps[$innerValue]</td>";
+                    echo "<td></td>";
+                    // our recent summary results handling requires php 5 (for simple xml file loading)
+                    // so, if not php 5, just don't display any summary results
+                    // This was found to be required, since some mirror our whole site (e.g. IBM) and not all their
+                    // mirrors use PHP 5
+                    if (phpversion() >= 5) {
+                        include 'handleSummaryResults.php';
+                    }
+                    echo "</tr>";
+                }
+            }
+        }
+    }
+    echo "</table>";
+
+}
+?>
+
+<table border="0" cellpadding="2" width="100%">
+	<tr>
+		<td bgcolor="#999999"></td>
+	</tr>
+</table>
diff --git a/incubator/commonPages/report.php b/incubator/commonPages/report.php
new file mode 100644
index 0000000..1d011d2
--- /dev/null
+++ b/incubator/commonPages/report.php
@@ -0,0 +1,148 @@
+<?php
+  function count_pattern($directory, $filenameFilter, $pattern)
+  {
+    $count = 0;
+    $dir = dir($directory);
+    while ($anEntry = $dir->read())
+    {
+      if ($anEntry != "." && $anEntry != "..")
+      {
+        $anEntry = $directory."/".$anEntry;
+        if (is_dir($anEntry))
+        {
+          $count += count_pattern($anEntry, $filenameFilter, $pattern);
+        }
+        else
+        {
+          if (stristr($anEntry, $filenameFilter))
+          {
+
+            $handle = @fopen($anEntry, "r");
+            if (FALSE !== $handle) {
+                    $size = filesize($anEntry);
+                    $content = fread($handle, $size);
+                    fclose($handle);
+                    $count += substr_count($content, $pattern);
+            }
+          }
+        }
+      }
+    }
+    return $count;
+  }
+
+  function parse_testResult($filename)
+  {
+    $junitFailures = 0;
+    $compileErrors = 0;
+    $compileWarnings = 0;
+    if (is_file($filename)) {
+    $handle = @fopen($filename, "r");
+    if ($handle)
+    {
+      $size = filesize($filename);
+      $content = fread($handle, $size);
+      fclose($handle);
+      $junitStart = strpos($content, "Errors &amp; Failures");
+      $junitEnd = strpos($content, "</table>", $junitStart);
+      $junitInfo = substr($content, $junitStart, $junitEnd - $junitStart);
+      $start = strpos($junitInfo, "<td><b><font color=\"#ff0000\">");
+      while ($start !== false)
+      {
+        $start += 29;
+        $stop = strpos($junitInfo, "</font></b></td>", $start);
+        if ($stop !== false)
+        {
+          $result = substr($junitInfo, $start, $stop - $start);
+          if (is_numeric($result))
+          {
+            $junitFailures += $result;
+          }
+          else if (strcmp($result, "DNF") == 0)
+          {
+            $junitFailures++;
+          }
+        }
+        $start = strpos($junitInfo, "<td><b><font color=\"#ff0000\">", $stop);
+      }
+      $compileStart = strpos($content, "Compile Logs (Jar Files)");
+      $compileEnd = strpos($content, "</table>", $compileStart);
+      $compileInfo = substr($content, $compileStart, $compileEnd - $compileStart);
+      $rowStart = strpos($compileInfo, "<tr>");
+      while ($rowStart !== false)
+      {
+        $start += 4;
+        $rowStop = strpos($compileInfo, "</tr>", $rowStart);
+        if ($rowStop !== false)
+        {
+          $row = substr($compileInfo, $rowStart, $rowStop - $rowStart);
+          $cellStart = strpos($row, "<td");
+          $gotError = false;
+          $gotWarning = false;
+          while ($cellStart !== false && (!$gotError || !$gotWarning))
+          {
+            // this parsing logic got a bit more complicated in M2_33 basebuild, as the
+            // tag <td align="center"> was used, instead of <td>
+            // $cellStart += 4;
+            $cellStart = strpos($row, ">", $cellStart);
+            $cellStart = $cellStart + 1;
+            $cellStop = strpos($row, "</td>", $cellStart);
+            if ($cellStop !== false)
+            {
+              $cell = substr($row, $cellStart, $cellStop - $cellStart);
+              if (is_numeric($cell))
+              {
+                if (!$gotError)
+                {
+                  $compileErrors += $cell;
+                  $gotError = true;
+                }
+                else if (!$gotWarning)
+                {
+                  $compileWarnings += $cell;
+                  $gotWarning = true;
+                }
+              }
+            }
+            // this parsing logic got a bit more complicated in M2_33 basebuild, as the
+            // tag <td align="center"> was used, instead of <td>
+            $cellStart = strpos($row, "<td", $cellStop);
+          }
+        }
+        $rowStart = strpos($compileInfo, "<tr>", $rowStop);
+      }
+    }
+    }
+    $results = array($compileErrors, $compileWarnings, $junitFailures);
+    return $results;
+  }
+
+  function parse($filename, $key)
+  {
+    if (!is_readable($filename))
+    {
+      return 0;
+    }
+    $value;
+    $handle = @fopen($filename, "r");
+    if (!$handle)
+    {
+      return 0;
+    }
+    $size = filesize($filename);
+    $content = fread($handle, $size);
+    fclose($handle);
+    $start = strpos($content, $key);
+    while ($start !== false)
+    {
+      $start += strlen($key);
+      $stop = strpos($content, "\"", $start);
+      if ($stop !== false)
+      {
+        $value += substr($content, $start, $stop - $start);
+      }
+      $start = strpos($content, $key, $stop);
+    }
+    return $value;
+  }
+?>
diff --git a/incubator/commonPages/report2.php b/incubator/commonPages/report2.php
new file mode 100644
index 0000000..0859c0d
--- /dev/null
+++ b/incubator/commonPages/report2.php
@@ -0,0 +1,127 @@
+
+        <?php
+
+function parse2_testResults($filename)
+{
+	$junitFailures = -1;
+	if (is_file($filename)) {
+		$handle = @fopen($filename, "r");
+		if ($handle)
+		{
+			$junitFailures = 0;
+			$size = filesize($filename);
+			$content = fread($handle, $size);
+			fclose($handle);
+			$junitStart = strpos($content, "Errors &amp; Failures");
+			$junitEnd = strpos($content, "</table>", $junitStart);
+			$junitInfo = substr($content, $junitStart, $junitEnd - $junitStart);
+			$start = strpos($junitInfo, "<td><b><font color=\"#ff0000\">");
+			while ($start !== false)
+			{
+				$start += 29;
+				$stop = strpos($junitInfo, "</font></b></td>", $start);
+				if ($stop !== false)
+				{
+					$result = substr($junitInfo, $start, $stop - $start);
+					if (is_numeric($result))
+					{
+						$junitFailures += $result;
+					}
+					else if (strcmp($result, "DNF") == 0)
+					{
+						$junitFailures++;
+					}
+				}
+				$start = strpos($junitInfo, "<td><b><font color=\"#ff0000\">", $stop);
+			}
+			$results = array($junitFailures);
+			return $results;
+		}
+	}
+}
+
+function parse2_compileResults($filename)
+{
+        $compileErrors = 0;
+        $compileAccessWarnings = 0;
+        $compileOtherWarnings = 0;
+        if (is_file($filename)) {
+                //echo "$filename<br />";
+                $handle = @fopen($filename, "r");
+                if ($handle)
+                {
+                        $size = filesize($filename);
+                        //echo "size: $size<br />";
+                        $content = fread($handle, $size);
+                        fclose($handle);
+
+                        //echo "$content";
+                        $compileStart = strpos($content, "<table id=tabledata");
+                        $compileEnd = strpos($content, "</table", $compileStart);
+                        $compileInfo = substr($content, $compileStart, $compileEnd - $compileStart);
+                        //echo "compileInfo: $compileInfo<br />";
+                        $rowStart = strpos($compileInfo, "<tr>");
+                        $rowStart = strpos($compileInfo, "<tr>");
+                        $start = $rowStart+4;
+                        while ($rowStart !== false)
+                        {
+
+                                $start += 4;
+                                $rowStop = strpos($compileInfo, "</tr>", $rowStart);
+                                //if ($rowStop !== false)
+                                //{
+                                        $row = substr($compileInfo, $rowStart, $rowStop - $rowStart);
+                                        //echo "$row";
+                                        //while ($cellStart !== false)
+                                        //{
+                                                // this parsing logic got a bit more complicated in M5_33 basebuild, as the
+                                                // a whole different structure was used.
+                                                // we'll try to quick fix this, but need our own index task
+                                                $cellStart = strpos($row, "#ERROR");
+                                                $cellStart = strpos($row, ">", $cellStart);
+                                                $cellStart = $cellStart + 1;
+                                                $cellStop = strpos($row, "<", $cellStart);
+                                                if ($cellStop !== false)
+                                                {
+                                                        $cell = substr($row, $cellStart, $cellStop - $cellStart);
+                                                        if (is_numeric($cell))
+                                                        {
+                                                                        $compileErrors += $cell;
+                                                        }
+                                                        $cellStart = strpos($row, "#ACCESSRULES_WARNINGS");
+                                                        $cellStart = strpos($row, ">", $cellStart);
+                                                        $cellStart = $cellStart + 1;
+                                                        $cellStop = strpos($row, "<", $cellStart);
+                                                        $cell = substr($row, $cellStart, $cellStop - $cellStart);
+                                                        if (is_numeric($cell))
+                                                        {
+                                                                        $compileAccessWarnings += $cell;
+                                                        }
+                                                        $cellStart = strpos($row, "#OTHER_WARNINGS");
+                                                        $cellStart = strpos($row, ">", $cellStart);
+                                                        $cellStart = $cellStart + 1;
+                                                        $cellStop = strpos($row, "<", $cellStart);
+                                                        $cell = substr($row, $cellStart, $cellStop - $cellStart);
+                                                        if (is_numeric($cell))
+                                                        {
+                                                                        $compileOtherWarnings += $cell;
+                                                        }
+                                                }
+                                                // look for next row.
+                                                //$cellStart = strpos($row, "<tr", $cellStop);
+                                        //}
+                                //}
+                                $rowStart = strpos($compileInfo, "<tr>", $rowStop);
+                        }
+                }
+        }
+
+        $results = array($compileErrors, $compileAccessWarnings, $compileOtherWarnings);
+        return $results;
+}
+
+
+
+?>
+
+
diff --git a/incubator/commonPages/topAndInit.php b/incubator/commonPages/topAndInit.php
new file mode 100644
index 0000000..21043ba
--- /dev/null
+++ b/incubator/commonPages/topAndInit.php
@@ -0,0 +1,93 @@
+
+
+
+<table border='0' cellpadding='0' width="100%">
+	<tr>
+		<td width="35%"><?php echo $indexTop; ?></td>
+		<td width="35%" align="right"><a
+			href="http://www.eclipse.org/webtools/main.php"><img border="0"
+			src="../commonPages/wtplogonarrow.jpg" height="95" width="207" /></a></td>
+	</tr>
+</table>
+
+<!-- heading end -->
+
+
+<hr />
+<table border='0' cellpadding='2' width="70%" align="center">
+	<tr>
+		<td><?php echo $pageExplanation; ?></td>
+	</tr>
+</table>
+
+<?php
+$contents = substr(file_get_contents('dlconfig.txt'),0,-1);
+$contents = str_replace("\n", "", $contents);
+
+#split the content file by & and fill the arrays
+$elements = explode("&",$contents);
+$t = 0;
+$p = 0;
+for ($c = 0; $c < count($elements); $c++) {
+	$tString = "dropType";
+	$pString = "dropPrefix";
+	if (strstr($elements[$c],$tString)) {
+		$temp = preg_split("/=/",$elements[$c]);
+		$dropType[$t] = trim($temp[1]);
+		$t++;
+	}
+	if (strstr($elements[$c],$pString)) {
+		$temp = preg_split("/=/",$elements[$c]);
+		$dropPrefix[$p] = trim($temp[1]);
+		$p++;
+	}
+}
+
+// debug
+// echo "Debug: droptype count: ", count($dropType), "<br />";
+
+for ($i = 0; $i < count($dropType); $i++) {
+	$dt = $dropType[$i];
+	$dt = trim($dt);
+	$typeToPrefix[$dt] = $dropPrefix[$i];
+
+	//   echo "Debug prefix: ", $dropPrefix[$i], "<br />";
+	//   echo "Debug dropType: ", $dropType[$i], "<br />";
+
+}
+
+
+include 'report.php';
+include 'report2.php';
+$latestTimeStamp=array();
+$latestFile = array();
+$buckets = array();
+$timeStamps = array();
+
+function computeBuildName($longname) {
+	$majorParts = explode("/", $longname);
+	$nParts = sizeof($majorParts);
+	if ($nParts > 1) {
+		$innerValueParts = explode("-", $majorParts[$nParts-1]);
+	}
+	else {
+		$innerValueParts = explode("-", $longname);
+	}
+	return $innerValueParts[1];
+}
+function computeStreamName($longname) {
+	$majorParts = explode("/", $longname);
+	$nParts = sizeof($majorParts);
+	if ($nParts > 1) {
+		// a format such as "drops/R3.0"
+		$name = $majorParts[1];
+		
+	}
+	else {
+		// a format such as "wtp-R3.0-I"
+		$majorParts = explode("-", $longname);
+		$name = $majorParts[1];
+	}
+	return $name;
+}
+?>
diff --git a/incubator/commonPages/wtpDropStyle.css b/incubator/commonPages/wtpDropStyle.css
new file mode 100644
index 0000000..556c62b
--- /dev/null
+++ b/incubator/commonPages/wtpDropStyle.css
@@ -0,0 +1,2 @@
+@CHARSET "ISO-8859-1";
+
diff --git a/incubator/commonPages/wtplogonarrow.jpg b/incubator/commonPages/wtplogonarrow.jpg
new file mode 100644
index 0000000..c433588
--- /dev/null
+++ b/incubator/commonPages/wtplogonarrow.jpg
Binary files differ
diff --git a/incubator/commonPages/wtplogosmall.jpg b/incubator/commonPages/wtplogosmall.jpg
new file mode 100644
index 0000000..71bea77
--- /dev/null
+++ b/incubator/commonPages/wtplogosmall.jpg
Binary files differ
diff --git a/incubator/commonPages/wtpphoenix.xsl b/incubator/commonPages/wtpphoenix.xsl
new file mode 100644
index 0000000..df90d99
--- /dev/null
+++ b/incubator/commonPages/wtpphoenix.xsl
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    version="1.0">
+    <xsl:output omit-xml-declaration="yes" />
+    <xsl:template match="html">
+        <xsl:apply-templates
+            select="body/h1"
+            mode="banner" />
+        <xsl:apply-templates select="body/*" />
+    </xsl:template>
+    <xsl:template
+        match="h1"
+        mode="banner">
+        <table>
+            <tr>
+                <td width="60%">
+                    <h1>
+                        <xsl:value-of select="." />
+                    </h1>
+                    <div class="wtpsubtitle">
+                        <xsl:value-of select="/html/head/title" />
+                    </div>
+                </td>
+                <td>
+                    <img
+                        src="/webtools/images/wtplogosmall.jpg"
+                        alt="WTP Logo"
+                        align="middle"
+                        height="129"
+                        hspace="50"
+                        width="207"
+                        usemap="logomap" />
+                    <map
+                        id="logomap"
+                        name="logomap">
+                        <area
+                            coords="0,0,207,129"
+                            href="/webtools/"
+                            alt="WTP Home" />
+                    </map>
+                </td>
+            </tr>
+        </table>
+    </xsl:template>
+    <xsl:template match="h1" />
+    <xsl:template match="h2">
+        <h2 class="bar">
+            <xsl:value-of select="." />
+        </h2>
+    </xsl:template>
+    <xsl:template match="ul">
+        <ul class="indent">
+            <xsl:apply-templates />
+        </ul>
+    </xsl:template>
+    <xsl:template match="*|@*|text()">
+        <xsl:copy>
+            <xsl:apply-templates select="*|@*|text()" />
+        </xsl:copy>
+    </xsl:template>
+</xsl:stylesheet>
diff --git a/incubator/downloads/buildbranches.php b/incubator/downloads/buildbranches.php
new file mode 100644
index 0000000..b055999
--- /dev/null
+++ b/incubator/downloads/buildbranches.php
@@ -0,0 +1,8 @@
+<?
+$buildBranches = array();
+$buildBranches[0]="drops/R3.0";
+$buildBranches[1]="drops/R2.0";
+$buildBranches[2]="drops/R1.5";
+$buildBranches[3]="drops/R1.0";
+$buildBranches[4]="drops/R0.7";
+?>
diff --git a/incubator/downloads/dlconfig.txt b/incubator/downloads/dlconfig.txt
new file mode 100644
index 0000000..86d9053
--- /dev/null
+++ b/incubator/downloads/dlconfig.txt
@@ -0,0 +1,9 @@
+dropPrefix[]=R&
+dropPrefix[]=M&
+dropPrefix[]=S&
+dropPrefix[]=I&
+
+dropType[]=<b>R</b>eleased&
+dropType[]=<b>M</b>aintenance&
+dropType[]=<b>S</b>table (Milestone)&
+dropType[]=<b>I</b>ntegration&
diff --git a/incubator/downloads/downloadindex.php b/incubator/downloads/downloadindex.php
new file mode 100644
index 0000000..a49cac2
--- /dev/null
+++ b/incubator/downloads/downloadindex.php
@@ -0,0 +1,41 @@
+<?php
+  echo '<?xml version="1.0" encoding="ISO-8859-1" ?>';
+?>  
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Incubator Downloads</title>
+</head>
+<body>
+
+<?php
+ini_set("display_errors", "true");
+error_reporting (E_ALL);
+?>
+
+
+<?php
+include ($App->getProjectCommon()); 
+include 'pagePropertyVariables.php';
+include 'buildbranches.php';
+include '../commonPages/topAndInit.php';
+?>
+        <div id="rightcolumn">
+        <div class="sideitem">
+            <h6>Incubation</h6>
+            <div align="center"><a href="/projects/what-is-incubation.php"><img 
+                align="center" src="/images/egg-incubation.png" 
+                border="0" alt="Incubation" /></a></div>
+        </div>
+        </div>
+<?php        
+include '../commonPages/latestBuilds.php';
+include '../commonPages/recentHistory.php';
+include '../commonPages/bottomAndFooter.php';
+?>
+
+
+
+</body>
+</html>
+
diff --git a/incubator/downloads/index.php b/incubator/downloads/index.php
index fed8098..217a76a 100644
--- a/incubator/downloads/index.php
+++ b/incubator/downloads/index.php
@@ -1,4 +1,4 @@
-<?php                                                                                                                                                                                                                                           require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");   require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");   require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php");  $App    = new App();    $Nav    = new Nav();    $Menu   = new Menu();           include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
+<?php                                                                                                                                                                                                                                           require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");   require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");   require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php");  $App    = new App();    $Nav    = new Nav();    $Menu   = new Menu();              # All on the same line to unclutter the user's desktop'
 
         #*****************************************************************************
         #
@@ -26,28 +26,38 @@
 
         # End: page-specific settings
         #
+	ob_start();
 	
-        # Paste your HTML content between the EOHTML markers!
-        $html = <<<EOHTML
+	include "downloadindex.php";
+	$xmlString = ob_get_clean();
+	$xml = new DOMDocument();
+	$xml->loadXML($xmlString);
+	//echo $xml->saveHTML();
+		//Set the page title
+	$xpath = new DOMXPath($xml);
+	$titleNode = $xpath->query("/html/head/title")->item(0); 
+	// echo "<br />titleNodeValue: " . $titleNode->nodeValue;
+	$pageTitle = ($titleNode != null) ? $titleNode->childNodes->item(0)->nodeValue : "eclipse.org webtools page";
 
-        <div id="midcolumn">
-          <h1>Downloads for WTP Incubator Project Components</h1>
-          <p>None yet ... check back in November or December.</p> 
+	// Load the XSL source
+	$xsl = DOMDocument::load('../commonPages/wtpphoenix.xsl');
 
-          </div>
-        
-        <div id="rightcolumn">
-        <div class="sideitem">
-			<h6>Incubation</h6>
-   			<div align="center"><a href="/projects/what-is-incubation.php"><img 
-        		align="center" src="/images/egg-incubation.png" 
-        		border="0" alt="Incubation" /></a></div>
-		</div>
-		</div>
+	// Configure the transformer
+	$proc = new XSLTProcessor;
+	$proc->importStyleSheet($xsl); // attach the xsl rules
 
+	// work on just the body of the original (not head, etc.)
+	$xmlbody=$xml->getElementsByTagName('body')->item(0); 
+	$maincontent = $proc->transformToXML($xmlbody);
+	$html = <<<EOHTML
+<div id="maincontent">
+	<div id="midcolumn">
+		<p>
+		$maincontent
+		</p>
+	</div>
+</div>
 EOHTML;
-
-
         # Generate the web page
         $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
 ?>
diff --git a/incubator/downloads/pagePropertyVariables.php b/incubator/downloads/pagePropertyVariables.php
new file mode 100644
index 0000000..69bb872
--- /dev/null
+++ b/incubator/downloads/pagePropertyVariables.php
@@ -0,0 +1,32 @@
+<?php
+
+$pageTitle="Eclipse Web Tools Platform (WTP) Downloads";
+$indexTop="<font class='indextop'>
+ Web Tools Platform<br />
+downloads</font><br />
+<font class='indexsub'>Latest downloads from the Web Tools Platform project</font>";
+
+$pageExplanation="
+    <p>This is the starting page for where you can find the latest <a
+      href=\"http://wiki.eclipse.org/index.php/WTP_Build_Types\">declared build</a> produced by the <a
+      href=\"http://www.eclipse.org/webtools/main.php\">Eclipse Web Tools
+    Platform (WTP) Project</a>.</p>
+    <p>Please note that each declared-build page details the pre-reqs for
+    that particular build. The WTP 1.0.x builds go with Eclipse 3.1 based
+    pre-reqs, and the WTP 1.5.x builds go with Eclipse 3.2 based pre-reqs.</p>
+
+    <p>As an alternative to downloading zips from the build pages, our
+    released builds can be <a
+      href=\"http://download.eclipse.org/webtools/updates/\">installed via
+    Update Manager</a>, from an existing installation of Eclipse.</p>
+";
+
+$mainTableHeader="Latest Downloads";
+
+$pageFooterEnd="<p><a href=\"http://build.eclipse.org/webtools/committers/\"
+              target=\"_top\">Continuous builds</a> are also available which are for
+            committers and early testers.</p>"; 
+
+$subsectionHeading="Recent History";
+
+?>
\ No newline at end of file
diff --git a/incubator/downloads/report.php b/incubator/downloads/report.php
new file mode 100644
index 0000000..739efdf
--- /dev/null
+++ b/incubator/downloads/report.php
@@ -0,0 +1,7 @@
+<?
+// some "old" builds expect the report files to be in this directory, so we'll 
+// re-include new one, if anyone does try to use this one. 
+
+include '../commonPages/report.php'
+
+?>
\ No newline at end of file
diff --git a/incubator/downloads/report2.php b/incubator/downloads/report2.php
new file mode 100644
index 0000000..894c783
--- /dev/null
+++ b/incubator/downloads/report2.php
@@ -0,0 +1,7 @@
+<?
+// some "old" builds expect the report files to be in this directory, so we'll 
+// re-include new one, if anyone does try to use this one. 
+
+include '../commonPages/report2.php'
+
+?>
\ No newline at end of file