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 & 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 & 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