aboutsummaryrefslogtreecommitdiff
path: root/basebuilder-3.6.2/org.eclipse.releng.basebuilder/builderTemplate/tests/tools/TestVersionTracker.java
diff options
context:
space:
mode:
Diffstat (limited to 'basebuilder-3.6.2/org.eclipse.releng.basebuilder/builderTemplate/tests/tools/TestVersionTracker.java')
-rw-r--r--basebuilder-3.6.2/org.eclipse.releng.basebuilder/builderTemplate/tests/tools/TestVersionTracker.java113
1 files changed, 113 insertions, 0 deletions
diff --git a/basebuilder-3.6.2/org.eclipse.releng.basebuilder/builderTemplate/tests/tools/TestVersionTracker.java b/basebuilder-3.6.2/org.eclipse.releng.basebuilder/builderTemplate/tests/tools/TestVersionTracker.java
new file mode 100644
index 0000000..9401f34
--- /dev/null
+++ b/basebuilder-3.6.2/org.eclipse.releng.basebuilder/builderTemplate/tests/tools/TestVersionTracker.java
@@ -0,0 +1,113 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/**
+ * This class finds the version of a feature, plugin, or fragment in a given
+ * build source tree.
+ */
+
+import org.xml.sax.Attributes;
+import org.xml.sax.helpers.DefaultHandler;
+import org.apache.xerces.parsers.SAXParser;
+import org.xml.sax.SAXException;
+import java.io.*;
+import java.util.Hashtable;
+import java.util.Enumeration;
+
+public class TestVersionTracker extends DefaultHandler {
+
+ private String installDirectory;
+ private Hashtable elements;
+ private SAXParser parser;
+ private String xmlFile;
+
+ //test
+ public static void main(String[] args) {
+ TestVersionTracker Tracker =
+ new TestVersionTracker(args[1]);
+ Tracker.parse(args[0]);
+ Tracker.writeProperties(args[2], true);
+ }
+
+ public TestVersionTracker(String install, Hashtable elements) {
+ // Create a Xerces SAX Parser
+ parser = new SAXParser();
+
+ // Set Content Handler
+ parser.setContentHandler (this);
+
+ // directory containing the source for a given build
+ installDirectory = install;
+
+ // instantiate hashtable that will hold directory names with versions for elements
+ this.elements = elements;
+ }
+
+ public TestVersionTracker(String install) {
+ this(install, new Hashtable());
+ }
+
+ public void parse(String xmlFile){
+ this.xmlFile = xmlFile;
+ // Parse the Document
+ try {
+ parser.parse(this.xmlFile);
+ } catch (SAXException e) {
+ System.err.println (e);
+ } catch (IOException e) {
+ System.err.println (e);
+
+ }
+ }
+
+ // Start Element Event Handler
+ public void startElement(
+ String uri,
+ String local,
+ String qName,
+ Attributes atts) {
+
+ String element = atts.getValue("id");
+ String version = atts.getValue("version");
+
+ if (local.equals("plugin") || local.equals("fragment")) {
+ elements.put(element,element+"_"+version);
+ } else if (local.equals("feature"))
+ elements.put(element+"-feature",element+"_"+version);
+ else if (local.equals("includes")) {
+ File thisFile = new File(xmlFile);
+ String includeFile = thisFile.getParentFile().getParent() + '/' + element+"_"+version + "/feature.xml";
+ TestVersionTracker recurseTracker = new TestVersionTracker(installDirectory, elements);
+ recurseTracker.parse(includeFile);
+ }
+ }
+
+ public void writeProperties(String propertiesFile,boolean append){
+ try{
+
+ PrintWriter writer = new PrintWriter(new FileWriter(propertiesFile,append));
+
+ Enumeration keys = elements.keys();
+
+ while (keys.hasMoreElements()){
+ Object key = keys.nextElement();
+ writer.println(key.toString()+"="+elements.get(key).toString());
+ writer.flush();
+ }
+ writer.close();
+
+ } catch (IOException e){
+ System.out.println("Unable to write to file "+propertiesFile);
+ }
+
+
+ }
+
+}