blob: b3d302c0acaf6662d905bf21457f736fe77c09a2 [file] [log] [blame]
jlanuti6f30d402007-04-18 19:54:42 +00001<html>
2<head>
3<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css">
4<title>Eclipse Web Tools Platform (WTP) Downloads - for Committers and
5Early Testers</title>
6</head>
7<body>
8
9<!-- heading start -->
10<?php
11
12// tiny banner to remind when looking at "local" machine results
13$serverName = $_SERVER["SERVER_NAME"];
14
15if (!stristr($serverName, "eclipse.org") && !stristr($serverName,"you.are.at.eclipsecon.org")) {
16 echo '<center><p>Reminder: this is <font color="#FF0000">', $serverName,'</font> See also <a href="http://download.eclipse.org/webtools/downloads" target="_top">Live public eclipse site</a>.</center><hr />';
17}
18
19if (function_exists("date_default_timezone_set")) {
20 date_default_timezone_set("UTC");
21 //echo "<p>default timezone: ";
22 //echo date_default_timezone_get();
23 //echo "</p>";
24}
25
26?>
27
28
29<?php
30//ini_set("display_errors", "true");
31//error_reporting (E_ALL);
32?>
33
34<?php
35$QString = $_SERVER['QUERY_STRING'];
36$C = strcmp($QString, "test");
37?>
38
39
40<table border=0 cellpadding=0 width="100%">
41<tr>
42<td width="35%"><font class=indextop> Web Tools Platform<br>
43committer downloads</font><br>
44<font class=indexsub>Latest early trial downloads from the Web Tools Platform project</font></td>
45<td width="35%" align="right"><a href="http://www.eclipse.org/webtools/main.html"><img border="0"src="wtplogonarrow.jpg" height="95" width="207"></a></td>
46</tr>
47</table>
48
49<!-- heading end -->
50
51
52<hr />
53<table border=0 cellpadding=2 width="70%" align="center">
54 <tr>
55 <td>
56 <p>This is the starting page for where you can find the latest <a
57 href="http://wiki.eclipse.org/index.php/WTP_Build_Types">continuous build</a> produced by the <a
58 href="http://www.eclipse.org/webtools/main.html">Eclipse Web Tools
59 Platform (WTP) Project</a>. Please note that each build page details
60 the pre-reqs for that particular build.</p>
61
62 <p>If you got here to this continuous-build site by accident or casual
63 browsing, please be aware that <a
64 href="http://download.eclipse.org/webtools/downloads/" target="_top">
65 declared builds</a> are available!</p>
66 </td>
67 </tr>
68</table>
69
70<?php
71$contents = substr(file_get_contents('dlconfig.txt'),0,-1);
72$contents = str_replace("\n", "", $contents);
73
74#split the content file by & and fill the arrays
75$elements = explode("&",$contents);
76$t = 0;
77$p = 0;
78for ($c = 0; $c < count($elements); $c++) {
79 $tString = "dropType";
80 $pString = "dropPrefix";
81 if (strstr($elements[$c],$tString)) {
82 $temp = preg_split("/=/",$elements[$c]);
83 $dropType[$t] = trim($temp[1]);
84 $t++;
85 }
86 if (strstr($elements[$c],$pString)) {
87 $temp = preg_split("/=/",$elements[$c]);
88 $dropPrefix[$p] = trim($temp[1]);
89 $p++;
90 }
91}
92
93// debug
94// echo "Debug: droptype count: ", count($dropType), "<br />";
95
96for ($i = 0; $i < count($dropType); $i++) {
97 $dt = $dropType[$i];
98 $dt = trim($dt);
99 $typeToPrefix[$dt] = $dropPrefix[$i];
100
101 // echo "Debug prefix: ", $dropPrefix[$i], "<br />";
102 // echo "Debug dropType: ", $dropType[$i], "<br />";
103
104}
105
106$buildBranches = array();
107$buildBranches[0]="R2.0";
108$buildBranches[1]="R1.5";
109$buildBranches[2]="R1.0";
110$buildBranches[3]="R0.7";
111include 'report.php';
112include 'report2.php';
113
114$latestTimeStamp=array();
115$latestFile = array();
116
117echo "<table border=0 cellpadding=2 width=\"100%\"><tr>";
118echo "<td align=\"center\" bgcolor=\"#0080C0\"><b><font color=\"#FFFFFF\" face=\"Arial,Helvetica\">";
119echo "Latest Downloads (In progress, towards a declared build)";
120echo "</td></font></b>";
121echo "</tr></table>";
122
123
124
125foreach ($buildBranches as $buildBranch ) {
126
127 $aBranchDirectoryName = "drops/".$buildBranch;
128 if (file_exists($aBranchDirectoryName) && is_dir($aBranchDirectoryName)) {
129 $aDirectory = dir($aBranchDirectoryName);
130 $latestTimeStamp[$buildBranch] = array();
131 $latestFile[$buildBranch] = array();
132
133
134 while (false !== ($anEntry = $aDirectory->read())) {
135
136 // Short cut because we know aDirectory only contains other directories.
137 if ($anEntry != "." && $anEntry!="..") {
138 // echo "Debug anEntry: $anEntry<br />" ;
139 $aDropDirectoryName = "drops/".$buildBranch."/".$anEntry;
140
141
142 if (is_dir($aDropDirectoryName) && is_Readable($aDropDirectoryName)) {
143 $aDropDirectory = dir($aDropDirectoryName);
144 //echo "Debug aDropDirectory: $aDropDirectory->path <br />" ;
145
146 $fileCount = 0;
147 while ($aDropEntry = $aDropDirectory->read()) {
148 // echo "Debug aDropEntry: $aDropEntry<br />" ;
149 if ( (stristr($aDropEntry, ".tar.gz")) || (stristr($aDropEntry, ".zip")) ) {
150 // Count the dropfile entry in the directory (so we won't display links, if not all there
151 $fileCount = $fileCount + 1;
152 }
153 }
154
155 $aDropDirectory->close();
156
157 }
158 // Read the count file
159 $countFile = "drops/".$buildBranch."/".$anEntry."/files.count";
160 $indexFile = "drops/".$buildBranch."/".$anEntry."/index.html";
161
162
163 if (!file_exists($indexFile)) {
164 $indexFile = "drops/".$buildBranch."/".$anEntry."/index.php";
165 }
166
167
168 if (file_exists($countFile) && file_exists($indexFile)) {
169 $anArray = file($countFile);
170 // debug
171 //echo "Number according to files.count: ", $anArray[0];
172 //echo " actual counted files: ", $fileCount;
173
174 // If a match - process the directoryVV -- we simply look that there's more
175 // zip's than we expect, since it frequently breaks where the count is slighly
176 // off, such as when we add, after the fact, an all-in-one zip.
177 if ($anArray[0] <= $fileCount) {
178 // debug
179 //echo "yes, counted equaled expected count<br>";
180
181 $entryParts = explode("-", $anEntry);
182 if (count($entryParts) == 3) {
183 // debug
184 //echo "yes, counted parts was 3<br>";
185 $buildTypePart = $entryParts[0];
186 $buckets[$buildBranch][$buildTypePart][] = $anEntry;
187
188 $timePart = $entryParts[2];
189 $year = substr($timePart, 0, 4);
190 $month = substr($timePart, 4, 2);
191 $day = substr($timePart, 6, 2);
192 $hour = substr($timePart,8,2);
193 $minute = substr($timePart,10,2);
194
195 $newTimePart = "$year-$month-$day $hour:$minute UTC";
196
197 $timeStamp = strtotime($newTimePart);
198
199 $timeStamps[$anEntry] = gmdate("D, j M Y -- H:i \(\U\T\C\)", $timeStamp);
200
201 // debug
202 // echo "<br />buildBranch: $buildBranch <br />";
203 // echo "<br />parts[0]: -$buildTypePart- <br />";
204 // echo "latestTimeStamp[buildBranch]:";
205 // echo $latestTimeStamp[$buildBranch];
206 // echo "latestTimeStamp:";
207 // echo $latestTimeStamp;
208
209 if ((sizeof($latestTimeStamp[$buildBranch]) > 0) &&
210 (isset($latestTimeStamp[$buildBranch][$buildTypePart])))
211 {
212 if ($timeStamp > $latestTimeStamp[$buildBranch][$buildTypePart])
213 {
214 $latestTimeStamp[$buildBranch][$buildTypePart] = $timeStamp;
215 $latestFile[$buildBranch][$buildTypePart] = $anEntry;
216 }
217 }
218 else
219 {
220 $latestTimeStamp[$buildBranch][$buildTypePart] = $timeStamp;
221 $latestFile[$buildBranch][$buildTypePart] = $anEntry;
222
223 }
224 }
225
226 }
227 }
228
229 }
230 }
231
232 $aDirectory->close();
233 }}
234
235?>
236
237
238<table width="70%" align="center" cellpadding=2>
239<tr>
240<td width="25%"><b>Build Type</b></td>
241<td width="25%"><b>Build Name</b></td>
242<td width="15%"><b>Stream</b></td>
243<td width="40%"><b>Build Date</b></td>
244</tr>
245
246
247
248<?php
249foreach($dropType as $value) {
250 $prefix=$typeToPrefix[$value];
251
252 foreach($buildBranches as $bValue) {
253
254 if (array_key_exists($prefix, $latestFile[$bValue])) {
255 $fileName = $latestFile[$bValue][$prefix];
256 echo "<tr>";
257 echo "<td width=\"25%\">$value</td>";
258
259
260 $fileNameParts = explode("-", $fileName);
261
262 if (sizeof($fileNameParts) > 1) {
263 // Uncomment the line below if we need click through licenses.
264 // echo "<td><a href=license.php?license=drops/$bValue/$fileName>$parts[1]</a></td>";
265
266 // Comment the line below if we need click through licenses.
267 echo "<td width=\"25%\"><a href=\"drops/$bValue/$fileName/\">$fileNameParts[1]</a></td>";
268 echo "<td width=\"15%\">$bValue</td>";
269 echo "<td width=\"40%\">$timeStamps[$fileName]</td>";
270 echo "</tr>";
271 }
272 }
273 }
274}
275?>
276
277<table border="0" cellpadding="2" width="100%">
278<tr>
279<td bgcolor="#0080C0">
280&nbsp;
281</td>
282</tr></table>
283
284
285</table>
286
287<table border="0" cellpadding="2" width="100%">
288 <tr>
289 <td align="center" bgcolor="#999999"><b><font color="#FFFFFF" face="Arial,Helvetica">Recent History</b></font></td>
290 </tr>
291</table>
292
293<?php
294foreach($dropType as $value) {
295 $prefix=$typeToPrefix[$value];
296
297
298 echo "
299 <table width=\"100%\" cellpadding=2>
300 <tr bgcolor=\"#999999\">
301 <td align=left><b><a name=\"$value\"><font color=\"#FFFFFF\" face=\"Arial,Helvetica\">";
302 echo "$value";
303 echo "</font></a></b></td>";
304 echo "</tr>";
305
306 echo "<tr>
307 <td align=left>
308 <table width=\"100%\" cellpadding=2>
309 <tr>
310 <td width=\"13%\"><b>Build Name</b></td>
311 <td width=\"8%\"><b>Stream</b></td>
312 <td width=\"20%\"><b>Build Date</b></td>
313 <td></td>
314 </tr>";
315
316 foreach($buildBranches as $bValue) {
317 if (array_key_exists($bValue, $buckets) && $buckets[$bValue] != NULL
318 && array_key_exists($prefix, $buckets[$bValue])) {
319 echo "<tr><td colspan=\"11\"/><hr/></tr>";
320 $aBucket = $buckets[$bValue][$prefix];
321 if (isset($aBucket)) {
322 rsort($aBucket);
323
324 $i = 0;
325 $ts = array();
326 $ts2iv = array();
327 foreach($aBucket as $iv) {
328 $ivParts = explode("-", $iv);
329 $ts[$i] = $ivParts[2];
330 $ts2iv[$ts[$i]] = $iv;
331 $i++;
332 }
333
334 rsort($ts);
335 $i = 0;
336 $aBucket = array();
337 foreach($ts as $tsvalue) {
338 $aBucket[$i] = $ts2iv[$tsvalue];
339 $i++;
340 }
341
342 foreach($aBucket as $innerValue) {
343
344 $innerValueParts = explode("-", $innerValue);
345 echo "<tr>";
346
347 // Uncomment the line below if we need click through licenses.
348 // echo "<td><a href=\"license.php?license=drops/$bValue/$innerValue\">$innerValueParts[1]</a></td>";
349
350 // Comment the line below if we need click through licenses.
351 echo "<td width=\"13%\"><a href=\"drops/$bValue/$innerValue/\">$innerValueParts[1]</a></td>";
352 echo "<td width=\"8%\">$bValue</td>";
353 echo "<td width=\"20%\">$timeStamps[$innerValue]</td>";
354 echo "<td></td>";
355
356 // if compilelogsSummary.xml exists, assume the "new way" (summary in xml file).
357 // else, assume old way
358 //echo "drops/$bValue/$innerValue/compilelogsSummary.xml";
359 if (file_exists("drops/$bValue/$innerValue/compilelogsSummary.xml"))
360 {
361 $filename = "drops/$bValue/$innerValue/compilelogsSummary.xml";
362 $prefix = "code_";
363 $compileSummary = simplexml_load_file($filename);
364 foreach ($compileSummary->summaryItem as $summaryItem) {
365 $name = $summaryItem->name;
366 $value = $summaryItem->value;
367 $code= "\$" . $prefix . $name . " = " . $value . ";";
368 //echo "<br />code: " . $code;
369 eval($code);
370 }
371 //echo "drops/$bValue/$innerValue/testcompilelogsSummary.xml";
372 $filename = "drops/$bValue/$innerValue/testcompilelogsSummary.xml";
373 $prefix = "test_";
374 $compileSummary = simplexml_load_file($filename);
375 foreach ($compileSummary->summaryItem as $summaryItem) {
376 $name = $summaryItem->name;
377 $value = $summaryItem->value;
378 $code= "\$" . $prefix . $name . " = " . $value . ";";
379 //echo "<br />code: " . $code;
380 eval($code);
381 }
382
383 if (file_exists("drops/$bValue/$innerValue/unitTestsSummary.xml")) {
384 $filename = "drops/$bValue/$innerValue/unitTestsSummary.xml";
385 $prefix = "unittest_";
386 $unitTestsSummary = simplexml_load_file($filename);
387 foreach ($unitTestsSummary->summaryItem as $summaryItem) {
388 $name = $summaryItem->name;
389 $value = $summaryItem->value;
390 $code= "\$" . $prefix . $name . " = " . $value . ";";
391 // echo "<br />code: " . $code;
392 eval($code);
393 }
394 }
395 else {
396 unset($unittest_grandTotalErrors, $unittest_grandTotalTests);
397 }
398
399 $totalCommpileErrors = $code_totalErrors + $test_totalErrors;
400 $totalCompileOtherWarnings = $code_totalWarnings;
401 $totalBundles = $code_totalBundles + $test_totalBundles;
402 $totalForbidden = $code_totalforbiddenAccessWarningCount + $test_totalforbiddenAccessWarningCount;
403 $totalDiscouraged = $code_totaldiscouragedAccessWarningCount + $test_totaldiscouragedAccessWarningCount;
404
405 echo "<td width=\"6%\">($totalBundles)</td>";
406 echo "<td width=\"6%\"><img src=\"compile_err.gif\" width=\"16\" height=\"16\"/><font color=red>$totalCommpileErrors</font></td>";
407 echo "<td width=\"6%\"><img src=\"compile_warn.gif\" width=\"16\" height=\"16\"/><font color=orange>$totalCompileOtherWarnings</font></td>";
408 echo "<td width=\"6%\"><img src=\"access_err.gif\" width=\"16\" height=\"16\"/><font color=red>$totalForbidden</font></td>";
409 echo "<td width=\"6%\"><img src=\"access_warn.gif\" width=\"16\" height=\"16\"/><font color=orange>$totalDiscouraged</font></td>";
410
411 if (isset($unittest_grandTotalErrors)) {
412 echo "<td width=\"6%\"><img src=\"junit_err.gif\" width=\"16\" height=\"16\"/><font color=red>$unittest_grandTotalErrors</font></td>";
413 echo "<td width=\"6%\">($unittest_grandTotalTests)</td>";
414 }
415 else {
416 echo "<td width=\"6%\"><img src=\"pending.gif\" width=\"16\" height=\"16\"/></td>";
417 echo "<td width=\"6%\"><img src=\"pending.gif\" width=\"16\" height=\"16\"/></td>";
418 }
419 echo "</tr>";
420 }
421 // if compileResults.php exists, assume the "new way" (testResults and compileResult seperated).
422 // else, assume old way
423 else if (file_exists("drops/$bValue/$innerValue/compileResults.php"))
424 {
425 $testResults = parse2_testResults("drops/$bValue/$innerValue/testResults.php");
426 list ($junitFailures) = $testResults;
427
428 $compileResults = parse2_compileResults("drops/$bValue/$innerValue/compileResults.php");
429 list ($compileErrors, $compileAccessWarnings, $compileOtherWarnings) = $compileResults;
430 $testCompileResults = parse2_compileResults("drops/$bValue/$innerValue/testCompileResults.php");
431 list ($testCompileErrors, $testCompileAccessWarnings, $testCompileOtherWarnings) = $testCompileResults;
432
433 $totalCommpileErrors = $compileErrors + $testCompileErrors;
434 // we'll just use code for warnning summaries, for now
435 $totalAccessWarnings = $compileAccessWarnings;
436 $totalCompileOtherWarnings = $compileOtherWarnings;
437
438 echo "<td width=\"6%\">&nbsp;</td>";
439 echo "<td width=\"6%\"><img src=\"compile_err.gif\" width=\"16\" height=\"16\"/><font color=red>$totalCommpileErrors</font></td>";
440 echo "<td width=\"6%\"><img src=\"compile_warn.gif\" width=\"16\" height=\"16\"/><font color=orange>$totalCompileOtherWarnings</font></td>";
441 if ($junitFailures < 0) {
442 echo "<td width=\"6%\"><img src=\"pending.gif\" width=\"16\" height=\"16\"/><font color=red>&nbsp;</font></td>";
443 }
444 else {
445 echo "<td width=\"6%\"><img src=\"junit_err.gif\" width=\"16\" height=\"16\"/><font color=red>$junitFailures</font></td>";
446 }
447
448 echo "</tr>";
449
450 }
451 else {
452 $testResults = parse_testResult("drops/$bValue/$innerValue/testResults.php");
453 list ($compileErrors, $compileWarnings, $junitFailures) = $testResults;
454
455 echo "<td width=\"6%\">&nbsp;</td>";
456 echo "<td width=\"6%\"><img src=\"compile_err.gif\" width=\"16\" height=\"16\"/><font color=red>$compileErrors</font></td>";
457 echo "<td width=\"6%\"><img src=\"compile_warn.gif\" width=\"16\" height=\"16\"/><font color=orange>$compileWarnings</font></td>";
458 echo "<td width=\"6%\"><img src=\"junit_err.gif\" width=\"16\" height=\"16\"/><font color=red>$junitFailures</font></td>";
459
460 echo "</tr>";
461 }
462 }
463 }}}
464 echo "</table></table>";
465}
466?>
467
468<table border="0" cellpadding="2" width="100%">
469 <tr>
470 <td bgcolor="#999999">&nbsp;</td>
471 </tr>
472</table>
473
474
475<table border="0" width="100%" cellpadding="2">
476 <tbody>
477 <tr>
478 <td valign="top" width="40%">
479
480
481 <table border="0" cellpadding="2">
482 <tbody>
483 <tr>
484 <td width="100%" bgcolor="#0080c0" valign="top"><b><font
485 face="Arial,Helvetica"><font color="#ffffff">Download Related
486 Links</font> </font></b></td>
487 </tr>
488 <tr>
489 <td valign="top">
490
491
492 <p><a
493 href="http://archive.eclipse.org/webtools/downloads/index.php"
494 target="_top">Archived Builds</a> are previously significant
495 builds that are no longer required, but which we keep on a
496 non-mirrored site, for historical and academic use.</p>
497
498 <p><a href="http://download.eclipse.org/webtools/downloads/"
499 target="_top">Declared builds</a> are available which are for
500 end-users and adopters.</p>
501 </td>
502 </tr>
503 </tbody>
504 </table>
505
506 </td>
507
508 <td />
509
510
511 <td width="45%" valign="top">
512 <table border="0" cellpadding="2">
513 <tbody>
514 <tr>
515 <td width="100%" colspan="4" bgcolor="#0080c0" valign="top"><b><font
516 face="Arial,Helvetica"><font color="#ffffff">Metrics Legend</font>
517 </font></b></td>
518 </tr>
519
520 <tr>
521 <td valign="top"><img src="compile_err.gif" width="16" height="16" /></td>
522 <td valign="top" width="50%">compilation errors.</td>
523 <td valign="top"><img src="compile_warn.gif" width="16" height="16" /></td>
524 <td valign="top" width="50%">compilation warnings.</td>
525 </tr>
526 <tr>
527 <td valign="top"><img src="access_err.gif" width="16" height="16" /></td>
528 <td valign="top" width="50%">Access Rule Violations</td>
529 <td valign="top"><img src="access_warn.gif" width="16" height="16" /></td>
530 <td valign="top" width="50%">Access Rule Warnings</td>
531 </tr>
532 <tr>
533 <td valign="top"><img src="junit_err.gif" width="16" height="16" /></td>
534 <td valign="top" width="50%">junit failures.</td>
535 <td valign="top"><img src="pending1.gif" width="16" height="16" /></td>
536 <td valign="top" width="50%">Pending results</td>
537 </tr>
538 <tr>
539 <td valign="top"><img src="api_err.gif" width="16" height="16" /></td>
540 <td valign="top" width="50%">API violations.</td>
541
542 <td valign="top"><img src="api_junit.gif" width="16" height="16" /></td>
543 <td valign="top" width="50%">APIs without junit testcases.</td>
544 </tr>
545 <tr>
546 <td valign="top"><img src="api_removed.gif" width="16" height="16" /></td>
547 <td valign="top" width="50%">removed APIs.</td>
548 </tr>
549 <tr>
550 <td valign="top"><b>(</b>nnn<b>)</b></td>
551 <td valign="top">Number of bundles, jars, and wars, or number of
552 unit tests.</td>
553
554 <td valign="top"><b>NA</b></td>
555 <td valign="top"><b>N</b>ot <b>A</b>vailable</td>
556 </tr>
557 </tbody>
558 </table>
559 </td>
560 </tr>
561 </tbody>
562</table>
563
564<!-- footer -->
565<center>
566<hr />
567<p>All downloads are provided under the terms and conditions of the <a
568 href="http://www.eclipse.org/legal/notice.html">Eclipse.org Software
569User Agreement</a> unless otherwise specified.</p>
570
571<p>If you have problems downloading the drops, contact the <font
572 size="-1" face="arial,helvetica,geneva"><a
573 href="mailto:webmaster@eclipse.org">webmaster</a></font>.</p>
574</center>
575<!-- end footer -->
576
577</body>
578</html>
579<?php
580if (isset($old_error_handler) && sizeof($old_error_handler)) {
581 set_error_handler($old_error_handler);
582}
583?>