diff --git a/archive/releng.builder/tools/org.eclipse.wtp.releng.tools/plugin.xml b/archive/releng.builder/tools/org.eclipse.wtp.releng.tools/plugin.xml
index d5d29386cbb0b0db24db170bdb70c1873f199314..65d7b9d41512bba4afa29207f871e711388c0db6 100644
--- a/archive/releng.builder/tools/org.eclipse.wtp.releng.tools/plugin.xml
+++ b/archive/releng.builder/tools/org.eclipse.wtp.releng.tools/plugin.xml
@@ -21,6 +21,11 @@
             name="countBuildFiles"
             class="org.eclipse.wtp.releng.tools.FileCounter">
       </antTask>
+       <antTask
+            library="wtpRelengTools.jar"
+            name="customizeAccessRules"
+            class="org.eclipse.wtp.releng.tools.CustomizeAccessRules">
+      </antTask>
  
     </extension>
 
diff --git a/archive/releng.builder/tools/org.eclipse.wtp.releng.tools/src/org/eclipse/wtp/releng/tools/CustomizeAccessRules.java b/archive/releng.builder/tools/org.eclipse.wtp.releng.tools/src/org/eclipse/wtp/releng/tools/CustomizeAccessRules.java
new file mode 100644
index 0000000000000000000000000000000000000000..c82a7ef41f7fa3665f3f9ed75366f695b6e0bdef
--- /dev/null
+++ b/archive/releng.builder/tools/org.eclipse.wtp.releng.tools/src/org/eclipse/wtp/releng/tools/CustomizeAccessRules.java
@@ -0,0 +1,397 @@
+package org.eclipse.wtp.releng.tools;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+
+public class CustomizeAccessRules extends Task {
+
+	private static final String LINE_SEPARATOR_PROPERTY_NAME = "line.separator";
+	private static final String PATH_SEPARATOR_PROPERTY_NAME = "path.separator";
+
+	static class JavaCompilerFilter implements FilenameFilter {
+
+		private static final String JAVA_COMPILER_FILENAME_EXTENSION = "args";
+		private static final String JAVA_COMPILER_FILENAME_PREFIX = "javaCompiler";
+
+		public boolean accept(File dir, String name) {
+			if (name.startsWith(JAVA_COMPILER_FILENAME_PREFIX) && name.endsWith(JAVA_COMPILER_FILENAME_EXTENSION)) {
+				return true;
+			}
+			return false;
+		}
+
+	}
+
+	private String bundleDirectory;
+	private String defaultRules;
+
+
+	private static final String FORBID_CHARACTER = "-";
+	private static final String DISCOURAGED_CHARACTER = "~";
+	private static final String ACCESSIBLE_CHARACTER = "+";
+	private static final String NONACCESSIBLE_RULE_VALUE = "nonaccessible";
+	private static final String DISCOURAGED_RULE_VALUE = "discouraged";
+	private static final String ACCESSIBLE_RULE_VALUE = "accessible";
+	private static final String PATTERN_ATTRIBUTE_NAME = "pattern";
+	private static final String KIND_ATTRIBUTE_NAME = "kind";
+	private static final String ACCESSRULE_ELEMENT_NAME = "accessrule";
+	private static final String ORG_ECLIPSE_PDE_CORE_REQUIRED_PLUGINS = "org.eclipse.pde.core.requiredPlugins";
+	private static final String PATH_ATTRIBUTE_NAME = "path";
+	private static final String CLASSPATHENTRY_ELEMENT_NAME = "classpathentry";
+	private static final String RBRACKET = "]";
+	private static final String LBRACKET = "[";
+	private static final String BACKUP_FILE_EXTENSION = ".bak";
+	private static final String CLASSPATH_FILENAME = ".classpath";
+	private static final String COMMA = ",";
+	private static final String ADAPTER_ACCESS = "#ADAPTER#ACCESS#";
+
+
+	private static String EOL = System.getProperty(LINE_SEPARATOR_PROPERTY_NAME);
+	private static String PATH_SEPERATOR = System.getProperty(PATH_SEPARATOR_PROPERTY_NAME);
+	private static FilenameFilter javaCompilerFilter = new JavaCompilerFilter();
+
+	private static Pattern adapterAccessLinePattern = Pattern.compile(ADAPTER_ACCESS + "(.*)\\[(.*)\\]");
+
+
+	private String computeCustomizedRules(File classpathFile) {
+		// first priority is to use any from classpath file.
+		String results = extractClassPathRules(classpathFile);
+		// if none, see if default rules have been specified in task element
+		if ((results == null) || (results.length() == 0)) {
+			if ((getDefaultRules() != null) && (getDefaultRules().length() > 0)) {
+				results = convertForm(getDefaultRules());
+				if ((results != null) && (results.length() > 0)) {
+					System.out.println("    Info: Using the provided default pattern: " + EOL + "    " + results);
+				}
+				else {
+					System.out.println("    Info: Access Rules not customized" + EOL);
+				}
+			}
+		}
+		return results;
+	}
+
+	private boolean contains(String mainString, String toBeFound) {
+		return (-1 < mainString.indexOf(toBeFound));
+	}
+
+	private String convertForm(String commaSeperatedList) {
+		String result = commaSeperatedList;
+		result = result.replaceAll(COMMA, PATH_SEPERATOR);
+		result = removeSpace(result);
+		return result + PATH_SEPERATOR;
+	}
+
+	private void customizeAccess(File javaCompilerFile, File classpathFile) {
+		try {
+
+			String name = javaCompilerFile.getName();
+			String bakName = name + BACKUP_FILE_EXTENSION;
+			File bakFile = new File(javaCompilerFile.getParentFile(), bakName);
+			// if backup already exists, just keep adding '.bak' until doesn't
+			while (bakFile.exists()) {
+				bakName = bakName + BACKUP_FILE_EXTENSION;
+				bakFile = new File(javaCompilerFile.getParentFile(), bakName);
+			}
+
+			/*
+			 * FYI. Seems like the javaCompiler file is recreated, from one
+			 * compile/generate step to another, so we need to re-process
+			 * (that is, the existence of the .bak file doesn't mean we are
+			 * done).
+			 */
+
+			FileReader fileReader = new FileReader(javaCompilerFile);
+			BufferedReader bufferedReader = new BufferedReader(fileReader);
+
+			File newFile = new File(javaCompilerFile.getParentFile(), "tempnew" + javaCompilerFile.getName());
+			FileWriter newFileWriter = new FileWriter(newFile);
+
+			while (bufferedReader.ready()) {
+				String line = bufferedReader.readLine();
+				Matcher matcher = adapterAccessLinePattern.matcher(line);
+				if (matcher.matches()) {
+					String cp = matcher.group(1);
+					String ar = matcher.group(2);
+
+					String customizedRules = computeCustomizedRules(classpathFile);
+
+					if (contains(ar, customizedRules)) {
+						// simply re-write what we already have
+						newFileWriter.write(ADAPTER_ACCESS + cp + LBRACKET + ar + RBRACKET + EOL);
+					}
+					else {
+						// or, add if not already there
+						newFileWriter.write(ADAPTER_ACCESS + cp + LBRACKET + customizedRules + ar + RBRACKET + EOL);
+					}
+				}
+				else {
+					System.out.println("Debug: Line did not match grammar syntax expectations: " + line);
+					newFileWriter.write(line + EOL);
+				}
+
+			}
+
+			newFileWriter.close();
+			fileReader.close();
+
+			File holdFile = new File(javaCompilerFile.getParentFile(), javaCompilerFile.getName());
+			javaCompilerFile.renameTo(bakFile);
+			newFile.renameTo(holdFile);
+
+		}
+		catch (FileNotFoundException e) {
+			throw new BuildException(e);
+		}
+		catch (IOException e) {
+			System.out.println("Could not read/write javaCompilerFile");
+			e.printStackTrace();
+		}
+
+	}
+
+	public void execute() throws BuildException {
+
+		try {
+			System.out.println("bundleDirectory: " + getBundleDirectory());
+
+			if ((getBundleDirectory() != null) && (getBundleDirectory().length() > 0)) {
+				File directory = new File(getBundleDirectory());
+				if ((directory != null) && directory.exists() && directory.isDirectory()) {
+					processBundlesDirectory(directory);
+				}
+				else {
+					String msg = "the directory does not exist";
+					System.out.println(msg);
+				}
+			}
+		}
+		catch (Exception e) {
+			e.printStackTrace();
+			throw new BuildException(e);
+		}
+
+	}
+
+	private String extractClassPathRules(File classpathFile) {
+		StringBuffer patterns = new StringBuffer();
+		Document aDocument = getDOM(classpathFile);
+		Element element = getElementWithAttribute(aDocument, CLASSPATHENTRY_ELEMENT_NAME, PATH_ATTRIBUTE_NAME, ORG_ECLIPSE_PDE_CORE_REQUIRED_PLUGINS);
+		NodeList nodeList = element.getElementsByTagName(ACCESSRULE_ELEMENT_NAME);
+
+		int length = nodeList.getLength();
+		if (length > 0) {
+			ArrayList accessible = new ArrayList();
+			ArrayList discouraged = new ArrayList();
+			ArrayList forbidden = new ArrayList();
+			for (int i = 0; i < length; i++) {
+				Node node = nodeList.item(i);
+				NamedNodeMap aNamedNodeMap = node.getAttributes();
+				Node kindAttribute = aNamedNodeMap.getNamedItem(KIND_ATTRIBUTE_NAME);
+				String kindValue = kindAttribute.getNodeValue();
+				Node patternAttribute = aNamedNodeMap.getNamedItem(PATTERN_ATTRIBUTE_NAME);
+				String patternValue = patternAttribute.getNodeValue();
+
+				if (ACCESSIBLE_RULE_VALUE.equals(kindValue)) {
+					accessible.add(patternValue);
+				}
+				else if (DISCOURAGED_RULE_VALUE.equals(kindValue)) {
+					discouraged.add(patternValue);
+				}
+				else if (NONACCESSIBLE_RULE_VALUE.equals(kindValue)) {
+					forbidden.add(patternValue);
+				}
+			}
+
+			/*
+			 * we store all the node/attribute values in arrayLists first,
+			 * just to be positive we add them in order or acceessible,
+			 * discouraged, and forbidden. (I'm not positive the
+			 * getElementsByTagName gaurentees the order we want).
+			 */
+			for (int j = 0; j < accessible.size(); j++) {
+				patterns.append(ACCESSIBLE_CHARACTER + (String) accessible.get(j) + PATH_SEPERATOR);
+			}
+			for (int j = 0; j < discouraged.size(); j++) {
+				patterns.append(DISCOURAGED_CHARACTER + (String) discouraged.get(j) + PATH_SEPERATOR);
+			}
+			for (int j = 0; j < forbidden.size(); j++) {
+				patterns.append(FORBID_CHARACTER + (String) forbidden.get(j) + PATH_SEPERATOR);
+			}
+		}
+		String result = patterns.toString();
+		if (result.length() > 0) {
+			System.out.println("    Info: Found pattern in classpath file: " + EOL + "    " + result);
+		}
+		return result;
+	}
+
+	public String getBundleDirectory() {
+		return bundleDirectory;
+	}
+
+	public String getDefaultRules() {
+		return defaultRules;
+	}
+
+	private Document getDOM(File file) {
+
+		Document aDocument = null;
+		BufferedReader reader = null;
+		try {
+			reader = new BufferedReader(new FileReader(file));
+			InputSource inputSource = new InputSource(reader);
+			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+			DocumentBuilder builder = factory.newDocumentBuilder();
+			aDocument = builder.parse(inputSource);
+		}
+		catch (SAXException e) {
+			e.printStackTrace();
+		}
+		catch (IOException e) {
+			e.printStackTrace();
+		}
+		catch (ParserConfigurationException e) {
+			e.printStackTrace();
+		}
+		finally {
+			if (reader != null) {
+				try {
+					reader.close();
+				}
+				catch (IOException e) {
+					// ignore this one
+				}
+			}
+		}
+
+		if (aDocument == null) {
+			String msg = "Error: could not parse xml in classpath file: " + file.getAbsolutePath();
+			throw new BuildException(msg);
+		}
+		return aDocument;
+
+	}
+
+	private Element getElementWithAttribute(Document aDocument, String elementName, String attributeName, String attributeValue) {
+		Element element = null;
+		NodeList nodeList = aDocument.getElementsByTagName(elementName);
+
+		int length = nodeList.getLength();
+		for (int i = 0; i < length; i++) {
+			Node node = nodeList.item(i);
+			NamedNodeMap aNamedNodeMap = node.getAttributes();
+			Node attribute = aNamedNodeMap.getNamedItem(attributeName);
+			if (attribute.getNodeValue().equals(attributeValue)) {
+				element = (Element) node;
+				break;
+			}
+		}
+		return element;
+	}
+
+	private boolean isSuitable(File file) {
+		return (file != null) && file.exists() && file.canRead() && file.canWrite();
+	}
+
+	private void processBundlesDirectory(File bundlesDirectory) {
+
+		if (bundlesDirectory == null) {
+			throw new BuildException("Error: bundlesDirectory can not be null");
+		}
+
+		String[] files = bundlesDirectory.list();
+		if ((files == null) || (files.length == 0)) {
+			throw new BuildException("Error: bundlesDirectory was empty");
+		}
+
+		for (int i = 0; i < files.length; i++) {
+			File file = new File(bundlesDirectory, files[i]);
+			if (file.isFile()) {
+				System.out.println("debug info: top level file ignored: " + file.getName());
+			}
+			else {
+				processDirectory(file);
+			}
+		}
+
+	}
+
+	private void processDirectory(File directory) {
+
+		String[] allFiles = directory.list();
+		if (allFiles == null) {
+			throw new BuildException("Error: bundlesDirectory was empty");
+		}
+
+		File classpathFile = new File(directory, CLASSPATH_FILENAME);
+		File[] javaCompilerFiles = directory.listFiles(javaCompilerFilter);
+
+		File javaCompilerFile = null;
+		if (javaCompilerFiles != null) {
+			for (int j = 0; j < javaCompilerFiles.length; j++) {
+				javaCompilerFile = javaCompilerFiles[j];
+				if (isSuitable(javaCompilerFile) && isSuitable(classpathFile)) {
+					System.out.println("Info: customizing access rules in " + directory.getName());
+					customizeAccess(javaCompilerFile, classpathFile);
+				}
+			}
+		}
+	}
+
+	/**
+	 * Simply space remover (not for natural language)
+	 * 
+	 * @param s
+	 * @return String
+	 */
+	private String removeSpace(String s) {
+		String results = null;
+		StringBuffer sb = new StringBuffer();
+		for (int i = 0; i < s.length(); i++) {
+			char c = s.charAt(i);
+			if (Character.isWhitespace(c)) {
+				// do not copy to buffer
+			}
+			else {
+				// add to buffer
+				sb.append(c);
+			}
+		}
+		if (sb.length() > 0) {
+			results = sb.toString();
+		}
+		return results;
+
+	}
+
+	public void setBundleDirectory(String bundleDirectory) {
+		this.bundleDirectory = bundleDirectory;
+	}
+
+	public void setDefaultRules(String defaultRules) {
+		this.defaultRules = defaultRules;
+	}
+}
diff --git a/archive/releng.builder/tools/org.eclipse.wtp.releng.tools/src/org/eclipse/wtp/releng/tools/ResultsSummaryGenerator.java b/archive/releng.builder/tools/org.eclipse.wtp.releng.tools/src/org/eclipse/wtp/releng/tools/ResultsSummaryGenerator.java
index 4bac6c618c8511377ed95525beae727c1b2eca33..eb52fae4bddca51df4d18c2f38cd0a9466bb77ac 100644
--- a/archive/releng.builder/tools/org.eclipse.wtp.releng.tools/src/org/eclipse/wtp/releng/tools/ResultsSummaryGenerator.java
+++ b/archive/releng.builder/tools/org.eclipse.wtp.releng.tools/src/org/eclipse/wtp/releng/tools/ResultsSummaryGenerator.java
@@ -27,6 +27,7 @@ import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 
 import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Project;
 import org.apache.tools.ant.Task;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -108,7 +109,6 @@ public class ResultsSummaryGenerator extends Task {
 	// <descriptor, ie. OS name>,path to template file, path to output file
 	// public String platformSpecificTemplateList = "";
 
-
 	// Name of the generated index php file.
 	public String testResultsHtmlFileName;
 
@@ -162,14 +162,16 @@ public class ResultsSummaryGenerator extends Task {
 
 	public static void main(String[] args) {
 		ResultsSummaryGenerator test = new ResultsSummaryGenerator();
-		test.setDropTokenList("%sdk%,%tests%,%example%,%rcpruntime%,%rcpsdk%,%icubase%,%runtime%,%platformsdk%,%jdt%,%jdtsdk%,%pde%,%pdesdk%,%cvs%,%cvssdk%,%teamextras%,%swt%,%relengtools%");
+		test
+				.setDropTokenList("%sdk%,%tests%,%example%,%rcpruntime%,%rcpsdk%,%icubase%,%runtime%,%platformsdk%,%jdt%,%jdtsdk%,%pde%,%pdesdk%,%cvs%,%cvssdk%,%teamextras%,%swt%,%relengtools%");
 		test.setPlatformIdentifierToken("%platform%");
 		test.getDropTokensFromList(test.dropTokenList);
 		test.setIsBuildTested(true);
 		test.setXmlDirectoryName("C:\\junk\\testresults\\xml");
 		test.setHtmlDirectoryName("C:\\junk\\testresults");
 		test.setDropDirectoryName("C:\\junk");
-		test.setTestResultsTemplateFileName("C:\\junk\\templateFiles\\testResults.php.template");
+		test
+				.setTestResultsTemplateFileName("C:\\junk\\templateFiles\\testResults.php.template");
 		// test.setPlatformSpecificTemplateList("Windows,C:\\junk\\templateFiles\\platform.php.template,winPlatform.php;Linux,C:\\junk\\templateFiles\\platform.php.template,linPlatform.php;Solaris,C:\\junk\\templateFiles\\platform.php.template,solPlatform.php;AIX,C:\\junk\\templateFiles\\platform.php.template,aixPlatform.php;Macintosh,C:\\junk\\templateFiles\\platform.php.template,macPlatform.php;Source
 		// Build,C:\\junk\\templateFiles\\sourceBuilds.php.template,sourceBuilds.php");
 		test.setTestResultsHtmlFileName("testResults.php");
@@ -188,13 +190,13 @@ public class ResultsSummaryGenerator extends Task {
 		try {
 			getDropTokensFromList(dropTokenList);
 			testResultsTemplateString = readFile(testResultsTemplateFileName);
-			//dropTemplateString = readFile(dropTemplateFileName);
+			// dropTemplateString = readFile(dropTemplateFileName);
 
 			// Specific to the platform build-page
 			/*
 			 * if (platformSpecificTemplateList != "") { String description,
-			 * platformTemplateFile, platformDropFile; // Retrieve the
-			 * different platforms and their info
+			 * platformTemplateFile, platformDropFile; // Retrieve the different
+			 * platforms and their info
 			 * getDifferentPlatformsFromList(platformSpecificTemplateList); //
 			 * Parses the platform info and retrieves the platform name, //
 			 * template file, and drop file for (int i = 0; i <
@@ -223,13 +225,14 @@ public class ResultsSummaryGenerator extends Task {
 			// }
 			// else {
 			// }
-		}
-		catch (Exception e) {
+		} catch (Exception e) {
 			throw new BuildException(e);
 		}
 	}
 
-	private void parseCompileLogs() throws TransformerFactoryConfigurationError, IOException, TransformerException {
+	private void parseCompileLogs()
+			throws TransformerFactoryConfigurationError, IOException,
+			TransformerException {
 		totalErrors = 0;
 		totalAccess = 0;
 		totalWarnings = 0;
@@ -394,15 +397,18 @@ public class ResultsSummaryGenerator extends Task {
 		// System.out.println("totalErrors: " + totalErrors); // ,
 		// log("totalErrors: " + totalErrors, Project.MSG_INFO);
 
-		buffer.append(
-				"<tr CLASS=\"" + rowtype + " " + "bold" + "\">" + EOL + "<td>"
-						+ EOL).append("TOTALS  (" + rowCount + ")").append(
-				"</td><td CLASS=\"numeric\">").append(totalErrors).append(
-				"</td><td CLASS=\"numeric\">").append(totalAccess).append("(")
-				.append(totalforbiddenAccessWarningCount).append("/").append(
-						totaldiscouragedAccessWarningCount).append(")").append(
-						"</td><td CLASS=\"numeric\">").append(totalWarnings)
-				.append("</td>" + EOL + "</tr>" + EOL);
+		buffer.append("<tr CLASS=\"" + rowtype + " " + "bold" + "\">" + EOL)
+		.append("<td>"	+ EOL)
+		.append("TOTALS  (" + rowCount + ")")
+		.append("</td><td CLASS=\"numeric\">")
+		.append(totalErrors)
+		.append("</td><td CLASS=\"numeric\">")
+		.append(totalforbiddenAccessWarningCount)
+		.append("</td><td CLASS=\"numeric\">")
+		.append(totaldiscouragedAccessWarningCount)
+		.append("</td><td CLASS=\"numeric\">")
+		.append(totalWarnings)
+		.append("</td>" + EOL + "</tr>" + EOL);
 
 	}
 
@@ -413,16 +419,13 @@ public class ResultsSummaryGenerator extends Task {
 		int warningCount = countCompileWarnings(fileContents);
 		int forbiddenWarningCount = countForbiddenWarnings(fileContents);
 		int discouragedWarningCount = countDiscouragedWarnings(fileContents);
-		if (errorCount != 0) {
-			// use wildcard in place of version number on directory names
-			String logName = log.substring(getCompileLogsDirectoryName()
-					.length() + 1);
-			StringBuffer stringBuffer = new StringBuffer(logName);
-			stringBuffer.replace(logName.indexOf("_") + 1, logName.indexOf(
-					File.separator, logName.indexOf("_") + 1), "*");
-			logName = new String(stringBuffer);
-
-		}
+		// use wildcard in place of version number on directory names
+		String logName = log
+				.substring(getCompileLogsDirectoryName().length() + 1);
+		StringBuffer stringBuffer = new StringBuffer(logName);
+		stringBuffer.replace(logName.indexOf("_") + 1, logName.indexOf(
+				File.separator, logName.indexOf("_") + 1), "*");
+		logName = new String(stringBuffer);
 		formatCompileErrorRow(log, errorCount, warningCount,
 				forbiddenWarningCount, discouragedWarningCount, buffer);
 	}
@@ -459,12 +462,14 @@ public class ResultsSummaryGenerator extends Task {
 			}
 		}
 
-		if (aDocument == null)
+		if (aDocument == null) {
+			log("could not parse xml in log file: " + log, Project.MSG_ERR);
 			return;
-		// Get summary of problems
+		}
+
+		// Get summary of problems.
+		// By API, nodeList should never be null.
 		NodeList nodeList = aDocument.getElementsByTagName("problem");
-		if (nodeList == null || nodeList.getLength() == 0)
-			return;
 
 		int length = nodeList.getLength();
 		for (int i = 0; i < length; i++) {
@@ -491,17 +496,16 @@ public class ResultsSummaryGenerator extends Task {
 				}
 			}
 		}
-		if (errorCount != 0) {
-			// use wildcard in place of version number on directory names
-			// System.out.println(log + "/n");
-			String logName = log.substring(getCompileLogsDirectoryName()
-					.length() + 1);
-			StringBuffer buffer = new StringBuffer(logName);
-			buffer.replace(logName.indexOf("_") + 1, logName.indexOf(
-					File.separator, logName.indexOf("_") + 1), "*");
-			logName = new String(buffer);
 
-		}
+		// use wildcard in place of version number on directory names
+		// System.out.println(log + "/n");
+		String logName = log
+				.substring(getCompileLogsDirectoryName().length() + 1);
+		StringBuffer buffer = new StringBuffer(logName);
+		buffer.replace(logName.indexOf("_") + 1, logName.indexOf(
+				File.separator, logName.indexOf("_") + 1), "*");
+		logName = new String(buffer);
+
 		formatCompileErrorRow(log.replaceAll(".xml", ".html"), errorCount,
 				warningCount, forbiddenWarningCount, discouragedWarningCount,
 				stringBuffer);
@@ -644,7 +648,6 @@ public class ResultsSummaryGenerator extends Task {
 	private int totaldiscouragedAccessWarningCount;
 	private int totalforbiddenAccessWarningCount;
 
-
 	private void parseUnitTestXml() throws IOException,
 			TransformerFactoryConfigurationError, TransformerException {
 
@@ -746,7 +749,6 @@ public class ResultsSummaryGenerator extends Task {
 
 	}
 
-
 	private void writeTestResultsFile() {
 
 		String outputFileName = dropDirectoryName + File.separator
@@ -871,38 +873,55 @@ public class ResultsSummaryGenerator extends Task {
 		}
 
 		String rowtype = "normaltable";
-		if (errorCount > 0) {
+		if (errorCount > 0 || forbiddenAccessWarningCount > 0) {
 			rowtype = "errortable";
-		} else if (warningCount > 0) {
+		} else if (warningCount > 0 || discouragedAccessWarningCount > 0) {
 			rowtype = "warningtable";
-			if (warningCount > 15) {
+			if (warningCount > 15 || discouragedAccessWarningCount > 0) {
 				rowtype = "extraWarningTable";
 			}
 		}
 
-		buffer.append("<tr CLASS=\"" + rowtype + "\">" + EOL + "<td>" + EOL)
-				.append("<a href=").append("\"").append(
-						getHrefCompileLogsTargetPath()).append(shortName)
-				.append("\" type='text/plain' ").append(">")
-				.append(displayName).append("</a>").append(
-						"</td><td CLASS=\"numeric\">").append("<a href=")
-				.append("\"").append(getHrefCompileLogsTargetPath()).append(
-						shortName).append("#ERRORS").append(
-						"\" type='text/plain' ").append(">").append(errorCount)
-				.append("</a>").append("</td><td CLASS=\"numeric\">").append(
-						"<a href=").append("\"").append(
-						getHrefCompileLogsTargetPath()).append(shortName)
+		buffer.append("<tr CLASS=\"" + rowtype + "\">" + EOL) 
+				.append("<td>" + EOL)
+				.append("<a href=\"").append(getHrefCompileLogsTargetPath()).append(shortName)
+				.append("\" type='text/plain' >")
+				.append(displayName)
+				.append("</a></td>")
+				.append(EOL)
+				
+				.append("<td CLASS=\"numeric\">").append("<a href=\"")
+				.append(getHrefCompileLogsTargetPath()).append(shortName)
+				.append("#ERRORS")
+				.append("\" type='text/plain' >")
+				.append(errorCount)
+				.append("</a></td>")
+				.append(EOL)
+				
+				.append("<td CLASS=\"numeric\">").append("<a href=\"")
+				.append(getHrefCompileLogsTargetPath()).append(shortName)
 				.append("#ACCESSRULES_WARNINGS")
-				.append("\" type='text/plain' ").append(">").append(
-						accessRuleWarningCount).append("</a>").append("(")
-				.append(forbiddenAccessWarningCount).append("/").append(
-						discouragedAccessWarningCount).append(")").append(
-						"</td><td CLASS=\"numeric\">").append("<a href=")
-				.append("\"").append(getHrefCompileLogsTargetPath()).append(
-						shortName).append("#OTHER_WARNINGS").append(
-						"\" type='text/plain' ").append(">").append(
-						warningCount).append("</a>").append(
-						"</td>" + EOL + "</tr>" + EOL);
+				.append("\" type='text/plain' >")
+				.append(forbiddenAccessWarningCount)
+				.append("</a></td>")
+				.append(EOL)
+								
+				.append("<td CLASS=\"numeric\">").append("<a href=\"")
+				.append(getHrefCompileLogsTargetPath()).append(shortName)
+				.append("#ACCESSRULES_WARNINGS")
+				.append("\" type='text/plain' >")
+				.append(discouragedAccessWarningCount)
+				.append("</a></td>")
+				.append(EOL)				
+				
+				
+				.append("<td CLASS=\"numeric\">").append("<a href=\"")
+				.append(getHrefCompileLogsTargetPath()).append(shortName).append("#OTHER_WARNINGS")
+				.append("\" type='text/plain' >")
+				.append(warningCount)
+				.append("</a></td>")
+
+				.append( EOL + "</tr>" + EOL);
 	}
 
 	/**
@@ -1135,8 +1154,6 @@ public class ResultsSummaryGenerator extends Task {
 		this.dropHtmlFileName = dropHtmlFileName;
 	}
 
-
-
 	private void getDropTokensFromList(String list) {
 		StringTokenizer tokenizer = new StringTokenizer(list, ",");
 		dropTokens = new Vector();
diff --git a/archive/releng.builder/tools/org.eclipse.wtp.releng.tools/src/org/eclipse/wtp/releng/tools/TestResultsGenerator.java b/archive/releng.builder/tools/org.eclipse.wtp.releng.tools/src/org/eclipse/wtp/releng/tools/TestResultsGenerator.java
deleted file mode 100644
index fd34228f80ced466fdb0058a69191c52ffcf9fc1..0000000000000000000000000000000000000000
--- a/archive/releng.builder/tools/org.eclipse.wtp.releng.tools/src/org/eclipse/wtp/releng/tools/TestResultsGenerator.java
+++ /dev/null
@@ -1,1125 +0,0 @@
-package org.eclipse.wtp.releng.tools;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Arrays;
-import java.util.StringTokenizer;
-import java.util.Vector;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.apache.tools.ant.Task;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-
-/**
- * @version 1.0
- * @author Dean Roberts
- */
-public class TestResultsGenerator extends Task {
-	private static final String WARNING_SEVERITY = "WARNING";
-	private static final String ERROR_SEVERITY = "ERROR";
-	private static final String ForbiddenReferenceID = "ForbiddenReference";
-	private static final String DiscouragedReferenceID = "DiscouragedReference";
-
-	private static final int DEFAULT_READING_SIZE = 8192;
-
-	static final String elementName = "testsuite";
-	static final String testResultsToken = "%testresults%";
-	static final String compileLogsToken = "%compilelogs%";
-	public Vector dropTokens;
-	public Vector platformSpecs;
-	public Vector differentPlatforms;
-	public String testResultsWithProblems = "\n";
-
-	private DocumentBuilder parser = null;
-	public String testResultsTemplateString = "";
-	public String dropTemplateString = "";
-
-	public Vector platformDescription;
-	public Vector platformTemplateString;
-	public Vector platformDropFileName;
-
-	// Status of tests results (pending, successful, failed), used to specify
-	// the color
-	// of the test Results link on the build pages (standard, green, red),
-	// once failures
-	// are encountered, this is set to failed
-	protected String testResultsStatus = "successful";
-	// assume tests ran. If no html files are found, this is set to false
-	private boolean testsRan = true;
-
-	// Parameters
-	// build runs JUnit automated tests
-	private boolean isBuildTested;
-
-	// buildType, I, N
-	public String buildType;
-
-	// Comma separated list of drop tokens
-	public String dropTokenList;
-
-	// Token in platform.php.template to be replaced by the desired platform
-	// ID
-	public String platformIdentifierToken;
-
-	// Location of the xml files
-	public String xmlDirectoryName;
-
-	// Location of the html files
-	public String htmlDirectoryName;
-
-	// Location of the resulting index.php file.
-	public String dropDirectoryName;
-
-	// Location and name of the template index.php file.
-	public String testResultsTemplateFileName;
-
-	// Platform specific template and output list (colon separated) in the
-	// following format:
-	// <descriptor, ie. OS name>,path to template file, path to output file
-	public String platformSpecificTemplateList = "";
-
-	// Name of the generated index php file.
-	public String testResultsHtmlFileName;
-
-	// Name of the generated drop index php file;
-	public String dropHtmlFileName;
-
-	// Arbitrary path used in the index.php page to href the
-	// generated .html files.
-	public String hrefTestResultsTargetPath;
-
-	// Aritrary path used in the index.php page to reference the compileLogs
-	public String hrefCompileLogsTargetPath;
-
-	// Location of compile logs base directory
-	public String compileLogsDirectoryName;
-
-	// Location and name of test manifest file
-	public String testManifestFileName;
-
-	// Initialize the prefix to a default string
-	private String prefix = "default";
-	private String testShortName = "";
-	private int counter = 0;
-	// The four configurations, add new configurations to test results here +
-	// update
-	// testResults.php.template for changes
-	private String[] testsConfig = { "linux.gtk.x86.xml",
-			"linux.gtk.x86_5.0.xml", "macosx.carbon.ppc.xml",
-			"win32.win32.x86.xml", "win32.win32.x86_5.0.xml" };
-
-	public static void main(String[] args) {
-		TestResultsGenerator test = new TestResultsGenerator();
-		test
-				.setDropTokenList("%sdk%,%tests%,%example%,%rcpruntime%,%rcpsdk%,%icubase%,%runtime%,%platformsdk%,%jdt%,%jdtsdk%,%pde%,%pdesdk%,%cvs%,%cvssdk%,%teamextras%,%swt%,%relengtools%");
-		test.setPlatformIdentifierToken("%platform%");
-		test.getDropTokensFromList(test.dropTokenList);
-		test.setIsBuildTested(true);
-		test.setXmlDirectoryName("C:\\junk\\testresults\\xml");
-		test.setHtmlDirectoryName("C:\\junk\\testresults");
-		test.setDropDirectoryName("C:\\junk");
-		test
-				.setTestResultsTemplateFileName("C:\\junk\\templateFiles\\testResults.php.template");
-		test
-				.setPlatformSpecificTemplateList("Windows,C:\\junk\\templateFiles\\platform.php.template,winPlatform.php;Linux,C:\\junk\\templateFiles\\platform.php.template,linPlatform.php;Solaris,C:\\junk\\templateFiles\\platform.php.template,solPlatform.php;AIX,C:\\junk\\templateFiles\\platform.php.template,aixPlatform.php;Macintosh,C:\\junk\\templateFiles\\platform.php.template,macPlatform.php;Source Build,C:\\junk\\templateFiles\\sourceBuilds.php.template,sourceBuilds.php");
-		test.setTestResultsHtmlFileName("testResults.php");
-		// test.setDropHtmlFileName("index.php");
-		test.setDropHtmlFileName("index.html");
-
-		test.setHrefTestResultsTargetPath("testresults");
-		test.setCompileLogsDirectoryName("C:\\junk\\compilelogs\\plugins");
-		test.setHrefCompileLogsTargetPath("compilelogs");
-		test.setTestManifestFileName("C:\\junk\\testManifest.xml");
-		test.execute();
-	}
-
-	public void execute() {
-
-		platformDescription = new Vector();
-		platformTemplateString = new Vector();
-		platformDropFileName = new Vector();
-		// anErrorTracker.loadFile(testManifestFileName);
-		getDropTokensFromList(dropTokenList);
-		testResultsTemplateString = readFile(testResultsTemplateFileName);
-		// dropTemplateString = readFile(dropTemplateFileName);
-
-		// Specific to the platform build-page
-		if (platformSpecificTemplateList != "") {
-			String description, platformTemplateFile, platformDropFile;
-			// Retrieve the different platforms and their info
-			getDifferentPlatformsFromList(platformSpecificTemplateList);
-			// Parses the platform info and retrieves the platform name,
-			// template file, and drop file
-			for (int i = 0; i < differentPlatforms.size(); i++) {
-				getPlatformSpecsFromList(differentPlatforms.get(i).toString());
-				description = platformSpecs.get(0).toString();
-				platformTemplateFile = platformSpecs.get(1).toString();
-				platformDropFile = platformSpecs.get(2).toString();
-				platformDescription.add(description);
-				platformTemplateString.add(readFile(platformTemplateFile));
-				platformDropFileName.add(platformDropFile);
-
-			}
-
-		}
-
-		System.out.println("Begin: Generating test results index page");
-		System.out.println("Parsing XML files");
-		parseXml();
-		System.out.println("Parsing compile logs");
-		parseCompileLogs();
-		System.out.println("End: Generating test results index page");
-		writeTestResultsFile();
-		// For the platform build-page, write platform files, in addition to
-		// the index file
-		if (platformSpecificTemplateList != "") {
-			writeDropFiles();
-		}
-	}
-
-	public void parseCompileLogs() {
-
-		StringBuffer replaceString = new StringBuffer();
-		processCompileLogsDirectory(compileLogsDirectoryName, replaceString);
-		if (replaceString.length() == 0) {
-			replaceString.append("None");
-		}
-		testResultsTemplateString = replace(testResultsTemplateString,
-				compileLogsToken, String.valueOf(replaceString));
-
-	}
-
-	private void processCompileLogsDirectory(String directoryName,
-			StringBuffer buffer) {
-		File sourceDirectory = new File(directoryName);
-		if (sourceDirectory.isFile()) {
-			if (sourceDirectory.getName().endsWith(".log"))
-				readCompileLog(sourceDirectory.getAbsolutePath(), buffer);
-			if (sourceDirectory.getName().endsWith(".xml"))
-				parseCompileLog(sourceDirectory.getAbsolutePath(), buffer);
-		}
-		if (sourceDirectory.isDirectory()) {
-			File[] logFiles = sourceDirectory.listFiles();
-			Arrays.sort(logFiles);
-			for (int j = 0; j < logFiles.length; j++) {
-				processCompileLogsDirectory(logFiles[j].getAbsolutePath(),
-						buffer);
-			}
-		}
-	}
-
-	private void readCompileLog(String log, StringBuffer buffer) {
-		String fileContents = readFile(log);
-
-		int errorCount = countCompileErrors(fileContents);
-		int warningCount = countCompileWarnings(fileContents);
-		int forbiddenWarningCount = countForbiddenWarnings(fileContents);
-		int discouragedWarningCount = countDiscouragedWarnings(fileContents);
-		if (errorCount != 0) {
-			// use wildcard in place of version number on directory names
-			String logName = log.substring(getCompileLogsDirectoryName()
-					.length() + 1);
-			StringBuffer stringBuffer = new StringBuffer(logName);
-			stringBuffer.replace(logName.indexOf("_") + 1, logName.indexOf(
-					File.separator, logName.indexOf("_") + 1), "*");
-			logName = new String(stringBuffer);
-
-		}
-		formatCompileErrorRow(log, errorCount, warningCount,
-				forbiddenWarningCount, discouragedWarningCount, buffer);
-	}
-
-	private void parseCompileLog(String log, StringBuffer stringBuffer) {
-		int errorCount = 0;
-		int warningCount = 0;
-		int forbiddenWarningCount = 0;
-		int discouragedWarningCount = 0;
-
-		File file = new File(log);
-		Document aDocument = null;
-		BufferedReader reader = null;
-		try {
-			reader = new BufferedReader(new FileReader(file));
-			InputSource inputSource = new InputSource(reader);
-			DocumentBuilderFactory factory = DocumentBuilderFactory
-					.newInstance();
-			DocumentBuilder builder = factory.newDocumentBuilder();
-			aDocument = builder.parse(inputSource);
-		} catch (SAXException e) {
-			e.printStackTrace();
-		} catch (IOException e) {
-			e.printStackTrace();
-		} catch (ParserConfigurationException e) {
-			e.printStackTrace();
-		} finally {
-			if (reader != null) {
-				try {
-					reader.close();
-				} catch (IOException e) {
-					// ignore
-				}
-			}
-		}
-
-		if (aDocument == null)
-			return;
-		// Get summary of problems
-		NodeList nodeList = aDocument.getElementsByTagName("problem");
-		if (nodeList == null || nodeList.getLength() == 0)
-			return;
-
-		int length = nodeList.getLength();
-		for (int i = 0; i < length; i++) {
-			Node problemNode = nodeList.item(i);
-			NamedNodeMap aNamedNodeMap = problemNode.getAttributes();
-			Node severityNode = aNamedNodeMap.getNamedItem("severity");
-			Node idNode = aNamedNodeMap.getNamedItem("id");
-			if (severityNode != null) {
-				String severityNodeValue = severityNode.getNodeValue();
-				if (WARNING_SEVERITY.equals(severityNodeValue)) {
-					// this is a warning
-					// need to check the id
-					String nodeValue = idNode.getNodeValue();
-					if (ForbiddenReferenceID.equals(nodeValue)) {
-						forbiddenWarningCount++;
-					} else if (DiscouragedReferenceID.equals(nodeValue)) {
-						discouragedWarningCount++;
-					} else {
-						warningCount++;
-					}
-				} else if (ERROR_SEVERITY.equals(severityNodeValue)) {
-					// this is an error
-					errorCount++;
-				}
-			}
-		}
-		if (errorCount != 0) {
-			// use wildcard in place of version number on directory names
-			// System.out.println(log + "/n");
-			String logName = log.substring(getCompileLogsDirectoryName()
-					.length() + 1);
-			StringBuffer buffer = new StringBuffer(logName);
-			buffer.replace(logName.indexOf("_") + 1, logName.indexOf(
-					File.separator, logName.indexOf("_") + 1), "*");
-			logName = new String(buffer);
-
-		}
-		formatCompileErrorRow(log.replaceAll(".xml", ".html"), errorCount,
-				warningCount, forbiddenWarningCount, discouragedWarningCount,
-				stringBuffer);
-	}
-
-	public static byte[] getFileByteContent(String fileName) throws IOException {
-		InputStream stream = null;
-		try {
-			File file = new File(fileName);
-			stream = new FileInputStream(file);
-			return getInputStreamAsByteArray(stream, (int) file.length());
-		} finally {
-			if (stream != null) {
-				try {
-					stream.close();
-				} catch (IOException e) {
-					// ignore
-				}
-			}
-		}
-	}
-
-	/**
-	 * Returns the given input stream's contents as a byte array. If a length is
-	 * specified (ie. if length != -1), only length bytes are returned.
-	 * Otherwise all bytes in the stream are returned. Note this doesn't close
-	 * the stream.
-	 * 
-	 * @throws IOException
-	 *             if a problem occured reading the stream.
-	 */
-	public static byte[] getInputStreamAsByteArray(InputStream stream,
-			int length) throws IOException {
-		byte[] contents;
-		if (length == -1) {
-			contents = new byte[0];
-			int contentsLength = 0;
-			int amountRead = -1;
-			do {
-				int amountRequested = Math.max(stream.available(),
-						DEFAULT_READING_SIZE); // read
-				// at
-				// least
-				// 8K
-
-				// resize contents if needed
-				if (contentsLength + amountRequested > contents.length) {
-					System.arraycopy(contents, 0,
-							contents = new byte[contentsLength
-									+ amountRequested], 0, contentsLength);
-				}
-
-				// read as many bytes as possible
-				amountRead = stream.read(contents, contentsLength,
-						amountRequested);
-
-				if (amountRead > 0) {
-					// remember length of contents
-					contentsLength += amountRead;
-				}
-			} while (amountRead != -1);
-
-			// resize contents if necessary
-			if (contentsLength < contents.length) {
-				System.arraycopy(contents, 0,
-						contents = new byte[contentsLength], 0, contentsLength);
-			}
-		} else {
-			contents = new byte[length];
-			int len = 0;
-			int readSize = 0;
-			while ((readSize != -1) && (len != length)) {
-				// See PR 1FMS89U
-				// We record first the read size. In this case len is the
-				// actual read size.
-				len += readSize;
-				readSize = stream.read(contents, len, length - len);
-			}
-		}
-
-		return contents;
-	}
-
-	public String readFile(String fileName) {
-		byte[] aByteArray = null;
-		try {
-			aByteArray = getFileByteContent(fileName);
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-		if (aByteArray == null) {
-			return "";
-		}
-		return new String(aByteArray);
-	}
-
-	private int countCompileErrors(String aString) {
-		return extractNumber(aString, "error");
-	}
-
-	private int countCompileWarnings(String aString) {
-		return extractNumber(aString, "warning");
-	}
-
-	private int countForbiddenWarnings(String aString) {
-		return extractNumber(aString, "Access restriction:");
-	}
-
-	private int countDiscouragedWarnings(String aString) {
-		return extractNumber(aString, "Discouraged access:");
-	}
-
-	private int extractNumber(String aString, String endToken) {
-		int endIndex = aString.lastIndexOf(endToken);
-		if (endIndex == -1) {
-			return 0;
-		}
-
-		int startIndex = endIndex;
-		while (startIndex >= 0 && aString.charAt(startIndex) != '('
-				&& aString.charAt(startIndex) != ',') {
-			startIndex--;
-		}
-
-		String count = aString.substring(startIndex + 1, endIndex).trim();
-		try {
-			return Integer.parseInt(count);
-		} catch (NumberFormatException e) {
-			return 0;
-		}
-
-	}
-
-	private boolean includeAll;
-
-	public void parseXml() {
-
-		File sourceDirectory = new File(xmlDirectoryName);
-
-		if (sourceDirectory.exists()) {
-
-			String replaceString = "";
-
-			File[] xmlFileNames = sourceDirectory.listFiles();
-			Arrays.sort(xmlFileNames);
-
-			for (int i = 0; i < xmlFileNames.length; i++) {
-				if (xmlFileNames[i].getPath().endsWith(".xml")) {
-					String fullName = xmlFileNames[i].getPath();
-					int errorCount = countErrors(fullName);
-					if (errorCount != 0) {
-						String testName = xmlFileNames[i].getName().substring(
-								0, xmlFileNames[i].getName().length() - 4);
-						testResultsWithProblems = testResultsWithProblems
-								.concat("\n" + testName);
-					}
-
-					String tmp = ((platformSpecificTemplateList == "") ? formatRow(
-							xmlFileNames[i].getPath(), errorCount, true)
-							: formatRowReleng(xmlFileNames[i].getPath(),
-									errorCount, true));
-					replaceString = replaceString + tmp;
-
-				}
-			}
-
-			testResultsTemplateString = replace(testResultsTemplateString,
-					testResultsToken, replaceString);
-			testsRan = true;
-
-		} else {
-			testsRan = false;
-			System.out.println("Test results not found in "
-					+ sourceDirectory.getAbsolutePath());
-		}
-
-	}
-
-	private String replace(String source, String original, String replacement) {
-
-		int replaceIndex = source.indexOf(original);
-		if (replaceIndex > -1) {
-			String resultString = source.substring(0, replaceIndex);
-			resultString = resultString + replacement;
-			resultString = resultString
-					+ source.substring(replaceIndex + original.length());
-			return resultString;
-		} else {
-			System.out.println("Could not find token: " + original);
-			return source;
-		}
-
-	}
-
-	protected void writeDropFiles() {
-		// Write all the platform files
-		for (int i = 0; i < platformDescription.size(); i++) {
-			writePlatformFile(platformDescription.get(i).toString(),
-					platformTemplateString.get(i).toString(),
-					platformDropFileName.get(i).toString());
-		}
-	}
-
-	// Writes the platform file (dropFileName) specific to "desiredPlatform"
-	private void writePlatformFile(String desiredPlatform,
-			String templateString, String dropFileName) {
-
-		templateString = replace(templateString, platformIdentifierToken,
-				desiredPlatform);
-		templateString = replace(templateString, "%testsStatus%",
-				testResultsStatus);
-		String outputFileName = dropDirectoryName + File.separator
-				+ dropFileName;
-		writeFile(outputFileName, templateString);
-	}
-
-
-	public void writeTestResultsFile() {
-
-		String outputFileName = dropDirectoryName + File.separator
-				+ testResultsHtmlFileName;
-		writeFile(outputFileName, testResultsTemplateString);
-	}
-
-	private void writeFile(String outputFileName, String contents) {
-		FileOutputStream outputStream = null;
-		try {
-			outputStream = new FileOutputStream(outputFileName);
-			outputStream.write(contents.getBytes());
-		} catch (FileNotFoundException e) {
-			System.out.println("File not found exception writing: "
-					+ outputFileName);
-		} catch (IOException e) {
-			System.out.println("IOException writing: " + outputFileName);
-		} finally {
-			if (outputStream != null) {
-				try {
-					outputStream.close();
-				} catch (IOException e) {
-					// ignore
-				}
-			}
-		}
-	}
-
-	public void setTestResultsHtmlFileName(String aString) {
-		testResultsHtmlFileName = aString;
-	}
-
-	public String getTestResultsHtmlFileName() {
-		return testResultsHtmlFileName;
-	}
-
-	public void setTestResultsTemplateFileName(String aString) {
-		testResultsTemplateFileName = aString;
-	}
-
-	public String getTestResultsTemplateFileName() {
-		return testResultsTemplateFileName;
-	}
-
-	public void setXmlDirectoryName(String aString) {
-		xmlDirectoryName = aString;
-	}
-
-	public String getXmlDirectoryName() {
-		return xmlDirectoryName;
-	}
-
-	public void setHtmlDirectoryName(String aString) {
-		htmlDirectoryName = aString;
-	}
-
-	public String getHtmlDirectoryName() {
-		return htmlDirectoryName;
-	}
-
-	public void setDropDirectoryName(String aString) {
-		dropDirectoryName = aString;
-	}
-
-	public String getDropDirectoryName() {
-		return dropDirectoryName;
-	}
-
-	private void formatCompileErrorRow(String fileName, int errorCount,
-			int warningCount, int forbiddenAccessWarningCount,
-			int discouragedAccessWarningCount, StringBuffer buffer) {
-
-		int accessRuleWarningCount = forbiddenAccessWarningCount
-				+ discouragedAccessWarningCount;
-		if (!includeAll) {
-			if (errorCount == 0 && warningCount == 0
-					&& accessRuleWarningCount == 0) {
-				return;
-			}
-		}
-
-		int i = fileName.indexOf(getHrefCompileLogsTargetPath());
-
-		String shortName = fileName.substring(i
-				+ getHrefCompileLogsTargetPath().length());
-
-		buffer.append("<tr>\n<td>\n").append("<a href=").append("\"").append(
-				getHrefCompileLogsTargetPath()).append(shortName).append("\">")
-				.append(shortName).append("</a>").append(
-						"</td><td align=\"center\">").append("<a href=")
-				.append("\"").append(getHrefCompileLogsTargetPath()).append(
-						shortName).append("#ERRORS").append("\">").append(
-						errorCount).append("</a>").append(
-						"</td><td align=\"center\">").append("<a href=")
-				.append("\"").append(getHrefCompileLogsTargetPath()).append(
-						shortName).append("#ACCESSRULES_WARNINGS")
-				.append("\">").append(accessRuleWarningCount).append("</a>")
-				.append("(").append(forbiddenAccessWarningCount).append("/")
-				.append(discouragedAccessWarningCount).append(")").append(
-						"</td><td align=\"center\">").append("<a href=")
-				.append("\"").append(getHrefCompileLogsTargetPath()).append(
-						shortName).append("#OTHER_WARNINGS").append("\">")
-				.append(warningCount).append("</a>").append("</td>\n</tr>\n");
-	}
-
-	private String formatRow(String fileName, int errorCount, boolean link) {
-
-		// replace .xml with .html
-
-		String aString = "";
-		if (!link) {
-			return "<tr><td>" + fileName + " (missing)" + "</td><td>" + "DNF";
-		}
-
-		if (fileName.endsWith(".xml")) {
-
-			int begin = fileName.lastIndexOf(File.separatorChar);
-			int end = fileName.lastIndexOf(".xml");
-
-			String shortName = fileName.substring(begin + 1, end);
-			String displayName = shortName;
-			if (errorCount != 0)
-				aString = aString + "<tr><td><b>";
-			else
-				aString = aString + "<tr><td>";
-
-			if (errorCount != 0) {
-				displayName = "<font color=\"#ff0000\">" + displayName
-						+ "</font>";
-			}
-			if (errorCount == -1) {
-				aString = aString.concat(displayName);
-			} else {
-				aString = aString + "<a href=" + "\""
-						+ hrefTestResultsTargetPath + "/" + shortName + ".html"
-						+ "\">" + displayName + "</a>";
-			}
-			if (errorCount > 0)
-				aString = aString + "</td><td><b>";
-			else
-				aString = aString + "</td><td>";
-
-			if (errorCount == -1)
-				aString = aString + "<font color=\"#ff0000\">DNF";
-
-			else if (errorCount > 0)
-				aString = aString + "<font color=\"#ff0000\">"
-						+ String.valueOf(errorCount);
-			else
-				aString = aString + String.valueOf(errorCount);
-
-			if (errorCount != 0)
-				aString = aString + "</font></b></td></tr>";
-			else
-				aString = aString + "</td></tr>";
-		}
-
-		return aString;
-
-	}
-
-	// Specific to the RelEng test results page
-	private String formatRowReleng(String fileName, int errorCount, boolean link) {
-
-		// If the file name doesn't end with any of the set test
-		// configurations, do nothing
-		boolean endsWithConfig = false;
-		int card = testsConfig.length;
-		for (int i = 0; i < card; i++) {
-			if (fileName.endsWith(testsConfig[i]))
-				endsWithConfig = true;
-		}
-		if (!endsWithConfig)
-			return "";
-
-		String aString = "";
-		if (!link) {
-			return "<tr><td>" + fileName + "</td><td align=\"center\">"
-					+ "DNF </tr>";
-		}
-
-		if (fileName.endsWith(".xml")) {
-
-			int begin = fileName.lastIndexOf(File.separatorChar);
-
-			// Get org.eclipse. out of the component name
-			String shortName = fileName.substring(begin + 13, fileName
-					.indexOf('_'));
-			String displayName = shortName;
-
-			// If the short name does not start with this prefix
-			if (!shortName.startsWith(prefix)) {
-				// If the prefix is not yet set
-				if (prefix == "default") {
-					// Set the testShortName variable to the current short
-					// name
-					testShortName = shortName;
-					counter = 0;
-					// Set new prefix
-					prefix = shortName.substring(0,
-							shortName.indexOf(".tests") + 6);
-					aString = aString + "<tbody><tr><td><b>" + prefix + ".*"
-							+ "</b><td><td><td><td>";
-					aString = aString + "<tr><td><P>" + shortName;
-
-					// Loop until the matching string postfix(test config.) is
-					// found
-					while (counter < card
-							&& !fileName.endsWith(testsConfig[counter])) {
-						aString = aString + "<td align=\"center\">-</td>";
-						counter++;
-					}
-				} else {
-					// Set new prefix
-					prefix = shortName.substring(0,
-							shortName.indexOf(".tests") + 6);
-
-					// Loop until the matching string postfix(test config.) is
-					// found
-					while (counter < card
-							&& !fileName.endsWith(testsConfig[counter])) {
-						aString = aString + "<td align=\"center\">-</td>";
-						counter++;
-					}
-
-					// In this case, the new prefix should be set with the
-					// short name under it,
-					// since this would mean that the team has more than one
-					// component test
-					if (!shortName.endsWith("tests")) {
-						aString = aString + "<tbody><tr><td><b>" + prefix
-								+ ".*" + "</b><td><td><td><td>";
-						aString = aString + "<tr><td><P>" + shortName;
-					}
-					// The team has only one component test
-					else
-						aString = aString + "<tbody><tr><td><b>" + shortName;
-					testShortName = shortName;
-
-					counter = 0;
-				}
-			}
-			// If the file's short name starts with the current prefix
-			if (shortName.startsWith(prefix)) {
-				// If the new file has a different short name than the current
-				// one
-				if (!shortName.equals(testShortName)) {
-					// Fill the remaining cells with '-'. These files will
-					// later be listed as
-					// missing
-					while (counter < card) {
-						aString = aString + "<td align=\"center\">-</td>";
-						counter++;
-					}
-					counter = 0;
-					// Print the component name
-					aString = aString + "<tr><td><P>" + shortName;
-					// Loop until the matching string postfix(test config.) is
-					// found
-					while (counter < card
-							&& !fileName.endsWith(testsConfig[counter])) {
-						aString = aString + "<td align=\"center\">-</td>";
-						counter++;
-					}
-				} else {
-					// Loop until the matching string postfix(test config.) is
-					// found
-					while (counter < card
-							&& !fileName.endsWith(testsConfig[counter])) {
-						aString = aString + "<td align=\"center\">-</td>";
-						counter++;
-					}
-					// If the previous component has no more test files left
-					if (counter == card) {
-						counter = 0;
-						// Print the new component name
-						aString = aString + "<tr><td><P>" + shortName;
-						// Loop until the matching string postfix(test
-						// config.) is found
-						while (counter < card
-								&& !fileName.endsWith(testsConfig[counter])) {
-							aString = aString + "<td align=\"center\">-</td>";
-							counter++;
-						}
-					}
-				}
-
-				testShortName = shortName;
-
-				if (errorCount != 0)
-					aString = aString + "<td align=\"center\"><b>";
-				else
-					aString = aString + "<td align=\"center\">";
-
-				// Print number of errors
-				if (errorCount != 0) {
-					displayName = "<font color=\"#ff0000\">" + "("
-							+ String.valueOf(errorCount) + ")" + "</font>";
-				} else {
-					displayName = "(0)";
-				}
-
-				// Reference
-				if (errorCount == -1) {
-					aString = aString.concat(displayName);
-				} else {
-					aString = aString
-							+ "<a href="
-							+ "\""
-							+ hrefTestResultsTargetPath
-							+ "/"
-							+ fileName.substring(begin + 1,
-									fileName.length() - 4) + ".html" + "\">"
-							+ displayName + "</a>";
-				}
-
-				if (errorCount == -1)
-					aString = aString + "<font color=\"#ff0000\">DNF";
-
-				if (errorCount != 0)
-					aString = aString + "</font></b></td>";
-				else
-					aString = aString + "</td>";
-				counter++;
-			}
-		}
-
-		return aString;
-	}
-
-	private int countErrors(String fileName) {
-		int errorCount = 0;
-
-		if (new File(fileName).length() == 0)
-			return -1;
-
-		try {
-			DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory
-					.newInstance();
-			parser = docBuilderFactory.newDocumentBuilder();
-
-			Document document = parser.parse(fileName);
-			NodeList elements = document.getElementsByTagName(elementName);
-
-			int elementCount = elements.getLength();
-			if (elementCount == 0)
-				return -1;
-			for (int i = 0; i < elementCount; i++) {
-				Element element = (Element) elements.item(i);
-				NamedNodeMap attributes = element.getAttributes();
-				Node aNode = attributes.getNamedItem("errors");
-				errorCount = errorCount
-						+ Integer.parseInt(aNode.getNodeValue());
-				aNode = attributes.getNamedItem("failures");
-				errorCount = errorCount
-						+ Integer.parseInt(aNode.getNodeValue());
-
-			}
-
-		} catch (IOException e) {
-			System.out.println("IOException: " + fileName);
-			// e.printStackTrace();
-			return 0;
-		} catch (SAXException e) {
-			System.out.println("SAXException: " + fileName);
-			// e.printStackTrace();
-			return 0;
-		} catch (ParserConfigurationException e) {
-			e.printStackTrace();
-		}
-		return errorCount;
-	}
-
-	/**
-	 * Gets the hrefTestResultsTargetPath.
-	 * 
-	 * @return Returns a String
-	 */
-	public String getHrefTestResultsTargetPath() {
-		return hrefTestResultsTargetPath;
-	}
-
-	/**
-	 * Sets the hrefTestResultsTargetPath.
-	 * 
-	 * @param hrefTestResultsTargetPath
-	 *            The hrefTestResultsTargetPath to set
-	 */
-	public void setHrefTestResultsTargetPath(String htmlTargetPath) {
-		this.hrefTestResultsTargetPath = htmlTargetPath;
-	}
-
-	/**
-	 * Gets the compileLogsDirectoryName.
-	 * 
-	 * @return Returns a String
-	 */
-	public String getCompileLogsDirectoryName() {
-		return compileLogsDirectoryName;
-	}
-
-	/**
-	 * Sets the compileLogsDirectoryName.
-	 * 
-	 * @param compileLogsDirectoryName
-	 *            The compileLogsDirectoryName to set
-	 */
-	public void setCompileLogsDirectoryName(String compileLogsDirectoryName) {
-		this.compileLogsDirectoryName = compileLogsDirectoryName;
-	}
-
-	/**
-	 * Gets the hrefCompileLogsTargetPath.
-	 * 
-	 * @return Returns a String
-	 */
-	public String getHrefCompileLogsTargetPath() {
-		return hrefCompileLogsTargetPath;
-	}
-
-	/**
-	 * Sets the hrefCompileLogsTargetPath.
-	 * 
-	 * @param hrefCompileLogsTargetPath
-	 *            The hrefCompileLogsTargetPath to set
-	 */
-	public void setHrefCompileLogsTargetPath(String hrefCompileLogsTargetPath) {
-		this.hrefCompileLogsTargetPath = hrefCompileLogsTargetPath;
-	}
-
-	/**
-	 * Gets the testManifestFileName.
-	 * 
-	 * @return Returns a String
-	 */
-	public String getTestManifestFileName() {
-		return testManifestFileName;
-	}
-
-	/**
-	 * Sets the testManifestFileName.
-	 * 
-	 * @param testManifestFileName
-	 *            The testManifestFileName to set
-	 */
-	public void setTestManifestFileName(String testManifestFileName) {
-		this.testManifestFileName = testManifestFileName;
-	}
-
-	/**
-	 * Gets the dropHtmlFileName.
-	 * 
-	 * @return Returns a String
-	 */
-	public String getDropHtmlFileName() {
-		return dropHtmlFileName;
-	}
-
-	/**
-	 * Sets the dropHtmlFileName.
-	 * 
-	 * @param dropHtmlFileName
-	 *            The dropHtmlFileName to set
-	 */
-	public void setDropHtmlFileName(String dropHtmlFileName) {
-		this.dropHtmlFileName = dropHtmlFileName;
-	}
-
-	protected void getDropTokensFromList(String list) {
-		StringTokenizer tokenizer = new StringTokenizer(list, ",");
-		dropTokens = new Vector();
-
-		while (tokenizer.hasMoreTokens()) {
-			dropTokens.add(tokenizer.nextToken());
-		}
-	}
-
-	protected void getDifferentPlatformsFromList(String list) {
-		StringTokenizer tokenizer = new StringTokenizer(list, ";");
-		differentPlatforms = new Vector();
-
-		while (tokenizer.hasMoreTokens()) {
-			differentPlatforms.add(tokenizer.nextToken());
-		}
-	}
-
-	protected void getPlatformSpecsFromList(String list) {
-		StringTokenizer tokenizer = new StringTokenizer(list, ",");
-		platformSpecs = new Vector();
-
-		while (tokenizer.hasMoreTokens()) {
-			platformSpecs.add(tokenizer.nextToken());
-		}
-	}
-
-	public String getDropTokenList() {
-		return dropTokenList;
-	}
-
-	public void setDropTokenList(String dropTokenList) {
-		this.dropTokenList = dropTokenList;
-	}
-
-	public boolean isBuildTested() {
-		return isBuildTested;
-	}
-
-	public void setIsBuildTested(boolean isBuildTested) {
-		this.isBuildTested = isBuildTested;
-	}
-
-	/**
-	 * @return
-	 */
-	public boolean testsRan() {
-		return testsRan;
-	}
-
-	/**
-	 * @param b
-	 */
-	public void setTestsRan(boolean b) {
-		testsRan = b;
-	}
-
-	/**
-	 * @return
-	 */
-	public Vector getDropTokens() {
-		return dropTokens;
-	}
-
-	/**
-	 * @param vector
-	 */
-	public void setDropTokens(Vector vector) {
-		dropTokens = vector;
-	}
-
-	/**
-	 * @return
-	 */
-	public String getTestResultsWithProblems() {
-		return testResultsWithProblems;
-	}
-
-	/**
-	 * @param string
-	 */
-	public void setTestResultsWithProblems(String string) {
-		testResultsWithProblems = string;
-	}
-
-	public String getBuildType() {
-		return buildType;
-	}
-
-	public void setBuildType(String buildType) {
-		this.buildType = buildType;
-	}
-
-	public String getPlatformSpecificTemplateList() {
-		return platformSpecificTemplateList;
-	}
-
-	public void setPlatformSpecificTemplateList(
-			String platformSpecificTemplateList) {
-		this.platformSpecificTemplateList = platformSpecificTemplateList;
-	}
-
-	public void setPlatformIdentifierToken(String platformIdentifierToken) {
-		this.platformIdentifierToken = platformIdentifierToken;
-	}
-
-	public String getPlatformIdentifierToken() {
-		return platformIdentifierToken;
-	}
-
-	public boolean isIncludeAll() {
-		return includeAll;
-	}
-
-	public void setIncludeAll(boolean includeAll) {
-		this.includeAll = includeAll;
-	}
-
-}
diff --git a/archive/releng.builder/tools/org.eclipse.wtp.releng.tools/src/org/eclipse/wtp/releng/tools/handy.jpage b/archive/releng.builder/tools/org.eclipse.wtp.releng.tools/src/org/eclipse/wtp/releng/tools/handy.jpage
new file mode 100644
index 0000000000000000000000000000000000000000..ff164c5a42d81d6ee048e0cff0da9355bf254505
--- /dev/null
+++ b/archive/releng.builder/tools/org.eclipse.wtp.releng.tools/src/org/eclipse/wtp/releng/tools/handy.jpage
@@ -0,0 +1,17 @@
+System.getProperty("path.separator");
+
+System.getProperty("file.separator");
+
+System.getProperty("line.separator");
+
+void dumpAllProperties() {
+	java.util.Enumeration enumeration = System.getProperties().keys();
+	String key = null;
+	while (enumeration.hasMoreElements()) {
+		key = (String) enumeration.nextElement();
+		System.out.print(key);
+		for (int i = 0; i < (30 - key.length()); i++)
+			System.out.print(" ");
+		System.out.println("->" + System.getProperty(key));
+	}
+}