From c6763c0d14760349b6fa160089167676aa1197fe Mon Sep 17 00:00:00 2001
From: david_williams <david_williams>
Date: Sun, 16 Nov 2008 08:47:27 +0000
Subject: [PATCH] prep for update sites

---
 .../features-galileo-wtp.xml                  | 178 +++++++++++++++++-
 .../releng/tools/CreateFeatureUpdateFile.java |  95 +++++++++-
 .../wtp/releng/tools/webtools.build.xml       |  69 +++++++
 .../webtools.build                            |  29 +++
 4 files changed, 367 insertions(+), 4 deletions(-)
 create mode 100644 org.eclipse.wtp.releng.webupdatesite/src/org/eclipse/wtp/releng/tools/webtools.build.xml
 create mode 100644 org.eclipse.wtp.releng.webupdatesite/webtools.build

diff --git a/org.eclipse.wtp.releng.webupdatesite/features-galileo-wtp.xml b/org.eclipse.wtp.releng.webupdatesite/features-galileo-wtp.xml
index 3d6b87cbc..457b70482 100644
--- a/org.eclipse.wtp.releng.webupdatesite/features-galileo-wtp.xml
+++ b/org.eclipse.wtp.releng.webupdatesite/features-galileo-wtp.xml
@@ -15,8 +15,184 @@
         -->
         <property
             name="from.update.site"
-            value="file://D:\builds\freshZips\wtp303\eclipse" />
+            value="file://D:\builds\freshZips\35M3\eclipse" />
         <echo
             message="   pulling update jars from ${from.update.site}" />
+        <ant antfile="updateMirrorProject.xml">
+            <property
+                name="featureId"
+                value="org.eclipse.jpt.eclipselink.feature" />
+            <property
+                name="version"
+                value="2.1.0.v200808210000-318Y9oA55S885E5555" />
+        </ant>
+        <ant antfile="updateMirrorProject.xml">
+            <property
+                name="featureId"
+                value="org.eclipse.jpt.eclipselink_sdk.feature" />
+            <property
+                name="version"
+                value="2.1.0.v200808210000-41-806AbJrL_9VAA8GA9Fg_pB66T" />
+        </ant>
+        <ant antfile="updateMirrorProject.xml">
+            <property
+                name="featureId"
+                value="org.eclipse.jpt.feature" />
+            <property
+                name="version"
+                value="2.1.0.v200808210000-7979AgCYQCD4INIbCCCD" />
+        </ant>
+        <ant antfile="updateMirrorProject.xml">
+            <property
+                name="featureId"
+                value="org.eclipse.jpt_sdk.feature" />
+            <property
+                name="version"
+                value="2.1.0.v200808210000-51-90HBDVlUhYHI9NPSnMOQxDZRD" />
+        </ant>
+        <ant antfile="updateMirrorProject.xml">
+            <property
+                name="featureId"
+                value="org.eclipse.jst.jsf.apache.trinidad.tagsupport.feature" />
+            <property
+                name="version"
+                value="2.1.0.v20081007-1-8Z7w31192118" />
+        </ant>
+        <ant antfile="updateMirrorProject.xml">
+            <property
+                name="featureId"
+                value="org.eclipse.jst.jsf.apache.trinidad.tagsupport_sdk.feature" />
+            <property
+                name="version"
+                value="2.1.0.v20081007-41-7z4AcHz064AA63Bk8x422_322" />
+        </ant>
+        <ant antfile="updateMirrorProject.xml">
+            <property
+                name="featureId"
+                value="org.eclipse.jst.sdk" />
+            <property
+                name="version"
+                value="3.1.0.v200809240350-7Z7B19RfogrHpaZ-OkamyiJqmR5H" />
+        </ant>
+        <ant antfile="updateMirrorProject.xml">
+            <property
+                name="featureId"
+                value="org.eclipse.jst.webpageeditor.feature" />
+            <property
+                name="version"
+                value="2.1.0.v20081008-3209oA55S6H5K" />
+        </ant>
+        <ant antfile="updateMirrorProject.xml">
+            <property
+                name="featureId"
+                value="org.eclipse.jst.webpageeditor_sdk.feature" />
+            <property
+                name="version"
+                value="2.1.0.v20081008-41-8073Bz-E88d8N_N_pB66T7I6L" />
+        </ant>
+        <ant antfile="updateMirrorProject.xml">
+            <property
+                name="featureId"
+                value="org.eclipse.jst.ws.axis2tools.feature" />
+            <property
+                name="version"
+                value="1.0.2.v200810151341-77-E_ECYQCD4FdMjLXVW" />
+        </ant>
+        <ant antfile="updateMirrorProject.xml">
+            <property
+                name="featureId"
+                value="org.eclipse.jst.ws.axis2tools_sdk.feature" />
+            <property
+                name="version"
+                value="1.0.2.v200810151341-2-384B2HKIFcYGJAJfWtNpioDZRD" />
+        </ant>
+        <ant antfile="updateMirrorProject.xml">
+            <property
+                name="featureId"
+                value="org.eclipse.jst" />
+            <property
+                name="version"
+                value="3.1.0.v200809240350-7W7A19LLZt03kh0NQWkYCW04ZKJ8" />
+        </ant>
+        <ant antfile="updateMirrorProject.xml">
+            <property
+                name="featureId"
+                value="org.eclipse.wst.common_sdk.feature" />
+            <property
+                name="version"
+                value="3.1.0.v200810090150-78319xOCLsCaHxwmex-9wtEQqe6i" />
+        </ant>
+        <ant antfile="updateMirrorProject.xml">
+            <property
+                name="featureId"
+                value="org.eclipse.wst.common_ui.feature" />
+            <property
+                name="version"
+                value="3.1.0.v200808191703-7B6EN5E7ZmPQez-hjz0iLy5iRuT5" />
+        </ant>
+        <ant antfile="updateMirrorProject.xml">
+            <property
+                name="featureId"
+                value="org.eclipse.wst.jsdt.feature" />
+            <property
+                name="version"
+                value="1.1.0.v200809251625-6-EFABcMAAwFJGiHkHW" />
+        </ant>
+        <ant antfile="updateMirrorProject.xml">
+            <property
+                name="featureId"
+                value="org.eclipse.wst.jsdt_sdk.feature" />
+            <property
+                name="version"
+                value="1.1.0.v200809251625-21-834HILEoRIF3KRIrK0akCdNBB" />
+        </ant>
+        <ant antfile="updateMirrorProject.xml">
+            <property
+                name="featureId"
+                value="org.eclipse.wst.sdk" />
+            <property
+                name="version"
+                value="3.1.0.v200810090150-7G5-8e-SpLJP_DQhCDz0C-RgQFN6" />
+        </ant>
+        <ant antfile="updateMirrorProject.xml">
+            <property
+                name="featureId"
+                value="org.eclipse.wst.xml_sdk.feature" />
+            <property
+                name="version"
+                value="3.1.0.v200808191955-792-8CUCKqHpDRhhwP-q8Ryan_to" />
+        </ant>
+        <ant antfile="updateMirrorProject.xml">
+            <property
+                name="featureId"
+                value="org.eclipse.wst.xml_ui.feature" />
+            <property
+                name="version"
+                value="3.1.0.v200808191955-7F5ETHCwtlGAz-j2ej3Fz0bqpfCq" />
+        </ant>
+        <ant antfile="updateMirrorProject.xml">
+            <property
+                name="featureId"
+                value="org.eclipse.wst.xsl.feature" />
+            <property
+                name="version"
+                value="1.0.0.v200809171039-7O7U7EEGlDcf5lvrATz-t28" />
+        </ant>
+        <ant antfile="updateMirrorProject.xml">
+            <property
+                name="featureId"
+                value="org.eclipse.wst.xsl_sdk.feature" />
+            <property
+                name="version"
+                value="1.0.0.v200808310406-3--90XBZRKSPyHflGo4GL07H9LwE" />
+        </ant>
+        <ant antfile="updateMirrorProject.xml">
+            <property
+                name="featureId"
+                value="org.eclipse.wst" />
+            <property
+                name="version"
+                value="3.1.0.v200810090150-7G5-8eO3BwQz04Z6Wy5ZAql7tLGW" />
+        </ant>
     </target>
 </project>
\ No newline at end of file
diff --git a/org.eclipse.wtp.releng.webupdatesite/src/org/eclipse/wtp/releng/tools/CreateFeatureUpdateFile.java b/org.eclipse.wtp.releng.webupdatesite/src/org/eclipse/wtp/releng/tools/CreateFeatureUpdateFile.java
index 21503b407..cc37d9d48 100644
--- a/org.eclipse.wtp.releng.webupdatesite/src/org/eclipse/wtp/releng/tools/CreateFeatureUpdateFile.java
+++ b/org.eclipse.wtp.releng.webupdatesite/src/org/eclipse/wtp/releng/tools/CreateFeatureUpdateFile.java
@@ -1,9 +1,23 @@
 package org.eclipse.wtp.releng.tools;
 
 import java.io.File;
+import java.io.FileOutputStream;
 import java.io.FileWriter;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.Writer;
+import java.util.Dictionary;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.xml.parsers.DocumentBuilder;
+
+import org.eclipse.callisto.tools.utils.CommonXML;
+import org.w3c.dom.Document;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
 
 
 public class CreateFeatureUpdateFile {
@@ -16,7 +30,7 @@ public class CreateFeatureUpdateFile {
 	private String featuresDirectoryLocation;
 	private FullJarNameParser fullJarNameParser = new FullJarNameParser();
 
-	private String[] featuresOfInterest = new String[]{"org.eclipse.wst", "org.eclipse.jst", "org.eclipse.jpt.feature", "org.eclipse.jpt.eclipselink.feature", "org.eclipse.wst.xml_ui.feature", "org.eclipse.wst.jsdt.feature", "org.eclipse.wst.common_ui.feature", "org.eclipse.jst.webpageeditor.feature", "org.eclipse.jst.jsf.apache.trinidad.tagsupport.feature", "org.eclipse.jst.ws.axis2tools.feature", "org.eclipse.wst.xsl.feature", "org.eclipse.wst.sdk", "org.eclipse.jst.sdk", "org.eclipse.jpt_sdk.feature", "org.eclipse.jpt.eclipselink_sdk.feature", "org.eclipse.wst.xml_sdk.feature", "org.eclipse.wst.jsdt_sdk.feature", "org.eclipse.wst.common_sdk.feature", "org.eclipse.jst.webpageeditor_sdk.feature", "org.eclipse.jst.jsf.apache.trinidad.tagsupport_sdk.feature", "org.eclipse.jst.ws.axis2tools_sdk.feature","org.eclipse.wst.xsl_sdk.feature",};
+	private String[] featuresOfInterest = new String[]{"org.eclipse.wst", "org.eclipse.jst", "org.eclipse.jpt.feature", "org.eclipse.jpt.eclipselink.feature", "org.eclipse.wst.xml_ui.feature", "org.eclipse.wst.jsdt.feature", "org.eclipse.wst.common_ui.feature", "org.eclipse.jst.webpageeditor.feature", "org.eclipse.jst.jsf.apache.trinidad.tagsupport.feature", "org.eclipse.jst.ws.axis2tools.feature", "org.eclipse.wst.xsl.feature", "org.eclipse.wst.sdk", "org.eclipse.jst.sdk", "org.eclipse.jpt_sdk.feature", "org.eclipse.jpt.eclipselink_sdk.feature", "org.eclipse.wst.xml_sdk.feature", "org.eclipse.wst.jsdt_sdk.feature", "org.eclipse.wst.common_sdk.feature", "org.eclipse.jst.webpageeditor_sdk.feature", "org.eclipse.jst.jsf.apache.trinidad.tagsupport_sdk.feature", "org.eclipse.jst.ws.axis2tools_sdk.feature", "org.eclipse.wst.xsl_sdk.feature",};
 
 	private String[] shortListOfInterest = new String[]{"org.eclipse.wst", "org.eclipse.jst", "org.eclipse.jpt.feature", "org.eclipse.jpt.eclipselink.feature", "org.eclipse.wst.xml_ui.feature", "org.eclipse.wst.jsdt.feature", "org.eclipse.wst.common_ui.feature", "org.eclipse.jst.webpageeditor.feature", "org.eclipse.jst.jsf.apache.trinidad.tagsupport.feature", "org.eclipse.jst.ws.axis2tools.feature",};
 
@@ -59,10 +73,10 @@ public class CreateFeatureUpdateFile {
 					doList(featuresDirectories, featuresOfInterest, filename);
 					System.out.println();
 
-					String scfilename = "wtp.sc";
+					String scfilename = "webtools.build";
 					System.out.println("Creating short List for Galileo site");
 					System.out.println("   filename: " + scfilename);
-					doList2(featuresDirectories, shortListOfInterest, scfilename);
+					doListForGalileo(featuresDirectories, shortListOfInterest, scfilename);
 				}
 				else if ("Ganymede".equals(stream)) {
 					String filename = "features-ganymede-wtp.xml";
@@ -172,4 +186,79 @@ public class CreateFeatureUpdateFile {
 		}
 
 	}
+
+	private void doListForGalileo(String[] featureDirectories, String[] featureOfFocus, String filename) throws IOException {
+
+		String galeleoTemplateFile = "webtools.build.xml";
+		FileOutputStream outfile = null;
+		Document templateDom = getTemplateDOM(galeleoTemplateFile);
+
+		try {
+
+			Document newDOM = substitureLatestVersions(featureDirectories, featureOfFocus, templateDom);
+
+			outfile = new FileOutputStream(filename);
+			CommonXML.serialize(newDOM, outfile);
+
+			System.out.println("\tOutput to: " + filename); //$NON-NLS-1$
+			
+		}
+		finally {
+			if (outfile != null) {
+				outfile.close();
+			}
+		}
+
+	}
+
+	private Document substitureLatestVersions(String[] featureDirectories, String[] featureOfFocus, Document startingDOM) throws IOException {
+
+		Map currentFeatureVersions = new HashMap<String, String>();
+		for (int i = 0; i < featureDirectories.length; i++) {
+			String directoryName = featureDirectories[i];
+			fullJarNameParser.parse(directoryName);
+			String projectName = fullJarNameParser.getProjectString();
+			String versionString = fullJarNameParser.getVersionString();
+			currentFeatureVersions.put(projectName, versionString);
+		}
+
+		NodeList features = startingDOM.getElementsByTagName("features");
+
+		for (int i = 0; i < features.getLength(); i++) {
+			Node featureElement = features.item(i);
+
+			NamedNodeMap attributes = featureElement.getAttributes();
+			Node featureNameNode = attributes.getNamedItem("id");
+			String featureName = featureNameNode.getNodeValue();
+			System.out.println(featureName);
+			String currentVersion = (String) currentFeatureVersions.get(featureName);
+			System.out.println(currentVersion);
+			Node versionNode = attributes.getNamedItem("version");
+			versionNode.setNodeValue(currentVersion);
+		}
+		return startingDOM;
+	}
+
+	private Document getTemplateDOM(String templateFileName) throws IOException {
+
+
+
+		InputStream templateFile = this.getClass().getResourceAsStream(templateFileName);
+
+		DocumentBuilder documentBuilder = CommonXML.getDocumentBuilder();
+		Document templateDom = null;
+		try {
+			templateDom = documentBuilder.parse(templateFile);
+		}
+		catch (SAXException e) {
+			e.printStackTrace();
+		}
+		finally {
+			if (templateFile != null) {
+				templateFile.close();
+			}
+		}
+		return templateDom;
+
+	}
 }
diff --git a/org.eclipse.wtp.releng.webupdatesite/src/org/eclipse/wtp/releng/tools/webtools.build.xml b/org.eclipse.wtp.releng.webupdatesite/src/org/eclipse/wtp/releng/tools/webtools.build.xml
new file mode 100644
index 000000000..67a056be8
--- /dev/null
+++ b/org.eclipse.wtp.releng.webupdatesite/src/org/eclipse/wtp/releng/tools/webtools.build.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="ASCII"?>
+<build:Contribution
+    xmi:version="2.0"
+    xmlns:xmi="http://www.omg.org/XMI"
+    xmlns:build="http://www.eclipse.org/amalgam/2008/build"
+    label="WebTools">
+    <contacts
+        name="David Williams"
+        email="david_williams@us.ibm.com"/>
+    <features
+        id="org.eclipse.wst"
+        version="3.1.0.v200810090150-7G5-8eM6Jutz04Z5Wy0Up-Ab9ctX"
+        repo="//@repositories.0">
+        <category
+            href="galileo.build#//@categories.2"/>
+    </features>
+    <features
+        id="org.eclipse.jst"
+        version="3.1.0.v200809240350-7W7A19LJbz0z0Vkh0LVVhMlfjfLN"
+        repo="//@repositories.0">
+        <category
+            href="galileo.build#//@categories.2"/>
+    </features>
+    <features
+        id="org.eclipse.jpt.feature"
+        version="2.0.101.v200809030200-793DuCYQCD4D2DUEKHL"
+        repo="//@repositories.0">
+        <category
+            href="galileo.build#//@categories.2"/>
+    </features>
+    <features
+        id="org.eclipse.jst.ws.axis2tools.feature"
+        version="1.0.1.v200807092124-77-E_BCYQCD4CyNjOPRU"
+        repo="//@repositories.0">
+        <category
+            href="galileo.build#//@categories.2"/>
+    </features>
+    <features
+        id="org.eclipse.jpt.eclipselink.feature"
+        version="2.0.0.v200806090000-3--8s733I3D683333"
+        repo="//@repositories.0">
+        <category
+            href="galileo.build#//@categories.2"/>
+    </features>
+    <features
+        id="org.eclipse.jst.webpageeditor.feature"
+        version="2.0.1.v20080811-32-9oA55S5M5J"
+        repo="//@repositories.0">
+        <category
+            href="galileo.build#//@categories.2"/>
+    </features>
+    <features
+        id="org.eclipse.jst.jsf.apache.trinidad.tagsupport.feature"
+        version="2.0.1.v200808071446-1-8Y7w311919182557"
+        repo="//@repositories.0">
+        <category
+            href="galileo.build#//@categories.2"/>
+    </features>
+    <features
+        id="org.eclipse.wst.jsdt.feature"
+        version="1.0.2.v200809102023-6-7SBcMAAwAyIPHRNV"
+        repo="//@repositories.0">
+        <category
+            href="galileo.build#//@categories.2"/>
+    </features>
+    <repositories
+        location="http://download.eclipse.org/webtools/tempTestUpdates/"
+        label="WebTools temporary updates"/>
+</build:Contribution>
\ No newline at end of file
diff --git a/org.eclipse.wtp.releng.webupdatesite/webtools.build b/org.eclipse.wtp.releng.webupdatesite/webtools.build
new file mode 100644
index 000000000..48ed3e1c6
--- /dev/null
+++ b/org.eclipse.wtp.releng.webupdatesite/webtools.build
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<build:Contribution xmlns:build="http://www.eclipse.org/amalgam/2008/build" xmlns:xmi="http://www.omg.org/XMI" label="WebTools" xmi:version="2.0">
+    <contacts email="david_williams@us.ibm.com" name="David Williams"/>
+    <features id="org.eclipse.wst" repo="//@repositories.0" version="3.1.0.v200810090150-7G5-8eO3BwQz04Z6Wy5ZAql7tLGW">
+        <category href="galileo.build#//@categories.2"/>
+    </features>
+    <features id="org.eclipse.jst" repo="//@repositories.0" version="3.1.0.v200809240350-7W7A19LLZt03kh0NQWkYCW04ZKJ8">
+        <category href="galileo.build#//@categories.2"/>
+    </features>
+    <features id="org.eclipse.jpt.feature" repo="//@repositories.0" version="2.1.0.v200808210000-7979AgCYQCD4INIbCCCD">
+        <category href="galileo.build#//@categories.2"/>
+    </features>
+    <features id="org.eclipse.jst.ws.axis2tools.feature" repo="//@repositories.0" version="1.0.2.v200810151341-77-E_ECYQCD4FdMjLXVW">
+        <category href="galileo.build#//@categories.2"/>
+    </features>
+    <features id="org.eclipse.jpt.eclipselink.feature" repo="//@repositories.0" version="2.1.0.v200808210000-318Y9oA55S885E5555">
+        <category href="galileo.build#//@categories.2"/>
+    </features>
+    <features id="org.eclipse.jst.webpageeditor.feature" repo="//@repositories.0" version="2.1.0.v20081008-3209oA55S6H5K">
+        <category href="galileo.build#//@categories.2"/>
+    </features>
+    <features id="org.eclipse.jst.jsf.apache.trinidad.tagsupport.feature" repo="//@repositories.0" version="2.1.0.v20081007-1-8Z7w31192118">
+        <category href="galileo.build#//@categories.2"/>
+    </features>
+    <features id="org.eclipse.wst.jsdt.feature" repo="//@repositories.0" version="1.1.0.v200809251625-6-EFABcMAAwFJGiHkHW">
+        <category href="galileo.build#//@categories.2"/>
+    </features>
+    <repositories label="WebTools temporary updates" location="http://download.eclipse.org/webtools/milestones/"/>
+</build:Contribution>
-- 
GitLab