[jbosstools-commits] JBoss Tools SVN: r43641 - in trunk/build: target-platforms and 3 other directories.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Thu Sep 13 06:34:05 EDT 2012


Author: mickael_istria
Date: 2012-09-13 06:34:05 -0400 (Thu, 13 Sep 2012)
New Revision: 43641

Added:
   trunk/build/target-platforms/
   trunk/build/target-platforms/README.txt
   trunk/build/target-platforms/local/
   trunk/build/target-platforms/local/build.xml
   trunk/build/target-platforms/local/contentXml2artifactVersions.xsl
   trunk/build/target-platforms/local/getArch.sh
   trunk/build/target-platforms/local/multiple2local.xsl
   trunk/build/target-platforms/local/pom.xml
   trunk/build/target-platforms/local/target2p2mirror.xml
   trunk/build/target-platforms/local/target2p2mirrorXml.xsl
   trunk/build/target-platforms/local/target2targetTemplate.xsl
   trunk/build/target-platforms/local/targetUpdateFromRepo.xml
   trunk/build/target-platforms/multiple/
   trunk/build/target-platforms/multiple/multiple.target
   trunk/build/target-platforms/multiple/pom.xml
   trunk/build/target-platforms/pom.xml
   trunk/build/target-platforms/publish.sh
   trunk/build/target-platforms/unified/
   trunk/build/target-platforms/unified/multiple2unified.xsl
   trunk/build/target-platforms/unified/pom.xml
Log:
JBIDE-12565: New TP mechanism

Added: trunk/build/target-platforms/README.txt
===================================================================
--- trunk/build/target-platforms/README.txt	                        (rev 0)
+++ trunk/build/target-platforms/README.txt	2012-09-13 10:34:05 UTC (rev 43641)
@@ -0,0 +1,70 @@
+== HOWTO: Download the contents of a .target file to a local p2 repo on disk ==
+
+multiple.target must be available locally (after a "mvn install") or on JBoss Nexus before creating a local mirror.
+Simply call "mvn install -P get.local.target -DrepoDir=/path/to/where/you/want/your/repo" from local/ folder.
+repoDir default value is local/REPO
+This will get you a copy of contents of multiple.target (retrieved thanks to target2p2mirror script). and will generate
+a local.target (thanks to multiple2local.xsl) which is a target resolving against your local repo. You can use it locally for performance improvements,
+but you need to perform this steps on each update.
+
+== HOWTO: Publish local p2 repo (generated from .target) to download.jboss.org ==
+
+1. Zip the repo
+
+	cd /tmp/REPO; zip -9r mutiple.target.zip * &
+
+2. Push to qa01
+
+	rsync -aPrz mutiple.target.zip nboldt at qa01:~/ &
+
+3. Ssh to qa01; sudo to hudson; unpack and push contents + zip to download.jboss.org
+
+	sudo su - hudson
+	unzip /home/nboldt/mutiple.target.zip -d /tmp/mutiple.target &
+	rsync -aPrz --delete --rsh=ssh /tmp/mutiple.target/* \
+		tools at filemgmt.jboss.org:/downloads_htdocs/tools/updates/target-platform_3.3.indigo/latest/ &
+	rsync -aPrz --rsh=ssh /home/nboldt/mutiple.target.zip \
+		tools at filemgmt.jboss.org:/downloads_htdocs/tools/updates/target-platform_3.3.indigo/ &
+
+4. Alternatively, see publish.sh for when repo is built in JBoss Hudson.
+
+
+== HOWTO: Publish local p2 repo (generated from .target) to shared location in Hudson for use in builds ==
+
+1. You can reference http://download.jboss.org/jbosstools/updates/target-platform_3.3.indigo/latest/,
+   but a local path reference is faster.
+
+2. So, continuing from previous HOWTO, copy from /tmp/mutiple.target into
+   file:///home/hudson/static_build_env/jbds/target-platform_3.3.indigo/mutiple.target/
+
+	rsync -aPrz --delete /tmp/mutiple.target/* \
+		/home/hudson/static_build_env/jbds/target-platform_3.3.indigo/mutiple.target/ &
+
+3. Alternatively, see publish.sh for when repo is built in JBoss Hudson.
+
+
+== HOWTO: Update an existing .target file from newer versions of IUs in a repo ==
+
+1. Run targetUpdateFromRepo.xml against a given repo folder on disk, eg.
+
+	ant -v -f targetUpdateFromRepo.xml -DtargetFile=mutiple.target -DrepoDir=./REPO
+
+2. Resulting targetFile will be overwritten with updated version values from what was found in the
+   repo's content.xml file.
+
+
+== HOWTO: Generate a local.target file from an existing multiple.target file ==
+
+1. Run targetUpdateFromRepo.xml against a given repo folder on disk, eg.
+
+	ant -f targetUpdateFromRepo.xml -DrepoDir=/path/to/my/REPO local.target
+
+2. Resulting local.target file will be created (or overwritten) with a new local file:// URL for all
+   the listed update sites, pointing at your local repo. It will otherwise be identical to the
+   multiple.target file
+
+
+== HOWTO: Install the contents of a repo into Eclipse (via script) ==
+
+1. See ../installation/README.txt
+


Property changes on: trunk/build/target-platforms/README.txt
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/build/target-platforms/local/build.xml
===================================================================
--- trunk/build/target-platforms/local/build.xml	                        (rev 0)
+++ trunk/build/target-platforms/local/build.xml	2012-09-13 10:34:05 UTC (rev 43641)
@@ -0,0 +1,286 @@
+<project default="build.local.target.platform.repo" name="jbosstools target platform p2.mirror generator - ant script for Hudson">
+	<property name="targetFile" value="multiple.target" />
+
+	<!-- if useLatest = true, omit versions from p2.mirror script to fetch latest version available; 
+		 if useLatest = false, include versions and fetch specific versions requested. -->
+	<property name="useLatest" value="false" />
+
+	<property name="tmpdir" value="${java.io.tmpdir}/target-platform-build" />
+
+	<condition property="WORKINGDIR" value="/home/hudson/static_build_env/jbds/tools/sources" else="${basedir}">
+		<available file="/home/hudson/static_build_env/jbds" type="dir" />
+	</condition>
+	<mkdir dir="${WORKINGDIR}" />
+
+	<condition property="COMMON_TOOLS" value="/home/hudson/static_build_env/jbds/tools" else="${java.io.tmpdir}">
+		<available file="/home/hudson/static_build_env/jbds" type="dir" />
+	</condition>
+	<mkdir dir="${COMMON_TOOLS}" />
+
+	<property name="repoDir" value="${WORKINGDIR}/REPO" />
+
+	<!-- ********************************************************************************** -->
+
+	<target name="help">
+		<echo>This script, if run in its entirety, will:
+			
+	a) download features, plugins, binaries, and metadata from the site(s) specified
+		in a given target platform, and create a local p2 repo
+	b) generate a local.target file, which points at the generated local p2 repo
+
+After running this script, publish this pom and *.target files to your local ~/.m2 repo:
+	mvn clean install -f .../target-platform/pom.xml -P use.local.target
+			
+Then you can then refer to it in downstream builds using:
+		mvn install -P local.target
+
+------------------
+			
+Default target is:
+
+	* build.local.target.platform.repo
+
+Can also attempt to:
+
+	* install.local.target.platform.repo
+
+Thus, default operation is this (if run w/ these options or NO options):
+
+	$ ant -DtargetFile=multiple.target build.local.target.platform.repo
+
+To build an alternate target platform (eg., Juno) for JBT:
+
+	$ ant -DtargetFile=multiple/multiple.target -DrepoDir=${WORKINGDIR}/JBT_REPO/ -Declipse.version=4.2 -Declipse.type=platform -Declipse.URL=http://www.eclipse.org/downloads/download.php?r=1\&amp;file=/eclipse/downloads/drops4/R-4.2-201206081400/
+
+</echo>
+	</target>
+
+
+	<!-- do everything but tests -->
+	<target name="all" depends="install" />
+
+	<!-- to install from the target platform repo, first build the repo, then install using p2.director -->
+	<target name="install" depends="build.local.target.platform.repo, install.local.target.platform.repo" />
+
+	<target name="build.local.target.platform.repo" depends="init, get.arch, get.eclipse, gen.p2mirror.script, run.p2mirror.script, cleanup" />
+
+	<!-- ********************************************************************************** -->
+
+	<target name="init">
+		<available file="${COMMON_TOOLS}/ant-contrib.jar" type="file" property="ant-contrib.jar.exists" />
+		<antcall target="get.ant-contrib" />
+		<taskdef resource="net/sf/antcontrib/antlib.xml">
+			<classpath>
+				<pathelement location="${COMMON_TOOLS}/ant-contrib.jar" />
+			</classpath>
+		</taskdef>
+	</target>
+
+
+	<target name="get.ant-contrib" unless="ant-contrib.jar.exists">
+		<property name="ANTCONTRIB_MIRROR" value="http://sourceforge.net/projects/ant-contrib/files/ant-contrib/ant-contrib-1.0b2/" />
+		<get usetimestamp="true" dest="${COMMON_TOOLS}/ant-contrib-1.0b2-bin.zip" src="${ANTCONTRIB_MIRROR}/ant-contrib-1.0b2-bin.zip/download" />
+		<touch file="${COMMON_TOOLS}/ant-contrib-1.0b2-bin.zip" />
+		<mkdir dir="${java.io.tmpdir}/ant-contrib-1.0b2-bin.zip_" />
+		<unzip src="${COMMON_TOOLS}/ant-contrib-1.0b2-bin.zip" dest="${java.io.tmpdir}/ant-contrib-1.0b2-bin.zip_" overwrite="true" />
+		<copy file="${java.io.tmpdir}/ant-contrib-1.0b2-bin.zip_/ant-contrib/lib/ant-contrib.jar" tofile="${COMMON_TOOLS}/ant-contrib.jar" failonerror="true" />
+		<delete dir="${java.io.tmpdir}/ant-contrib-1.0b2-bin.zip_" includeemptydirs="true" quiet="true" />
+	</target>
+
+	<target name="get.arch">
+		<condition property="ext" value="tar.gz" else="zip">
+			<os family="unix" />
+		</condition>
+		<condition property="os1" value="linux-gtk" else="win32">
+			<os family="unix" />
+		</condition>
+		<condition property="os" value="macosx-cocoa" else="${os1}">
+			<os family="mac" />
+		</condition>
+		<if>
+			<os family="unix" />
+			<then>
+			   <available file="getArch.sh"  property="getArchInSamePath"/>
+				<if>
+					<isset property="getArchInSamePath"/>
+					<then>
+						<property name="getArch" value="getArch.sh"/>
+					</then>
+					<else>
+						<property name="getArch" value="../getArch.sh"/>
+					</else>
+				</if>
+				
+				<!-- Ant thinks that ${os.arch} == i386 for x86_64, so use `uname` instead -->
+				<exec executable="bash" outputproperty="arch">
+					<arg line="${getArch}" />
+				</exec>
+			</then>
+			<else>
+				<condition property="arch" value="x86_64" else="">
+					<os arch="amd64" />
+				</condition>
+			</else>
+		</if>
+	</target>
+
+	<!-- should work on osx-cocoa32, win32, lin32, lin64 -->
+	<target name="get.eclipse">
+		<!-- NOTE: must use same platform (50M) or SDK (103M - 168M) version as feature version on target platform, or will get install/update conflicts -->
+		<!-- don't forget to increment these files when moving up a version:
+		     build.xml, *.target*, publish.sh, target2p2mirror.xml -->
+		<!-- also jbds/trunk/releng/org.jboss.ide.eclipse.releng/requirements/jbds-target-platform/build.properties
+		     also all devstudio-5.0_*.updatesite jobs (4) need to be pointed at the new Target Platform URL
+		-->
+		<!-- http://download.eclipse.org/eclipse/downloads/drops/M20120201-1336/download.php?dropFile=eclipse-platform-M20120201-1336-linux-gtk-x86_64.tar.gz -->
+		<!-- http://mirror.csclub.uwaterloo.ca/eclipse/eclipse/downloads/drops4/R-4.2-201206081400/eclipse-platform-4.2-linux-gtk-x86_64.tar.gz -->
+		<!-- eclipse-platform-3.8M6-linux-gtk-x86_64.tar.gz -->
+		<!-- eclipse-platform-3.7.2-linux-gtk-x86_64.tar.gz -->
+		<!-- <property name="eclipse.version" value="4.2" />
+		<property name="eclipse.type" value="platform" />
+		<property name="eclipse.URL" value="http://www.eclipse.org/downloads/download.php?r=1&amp;file=/eclipse/downloads/drops/R-4.2-201206081400/"/> -->
+		<property name="eclipse.version" value="M20120829-1000" />
+		<property name="eclipse.type" value="platform" />
+		<property name="eclipse.URL" value="http://www.eclipse.org/downloads/download.php?r=1&amp;file=/eclipse/downloads/drops/M20120829-1000/"/>
+
+		<if>
+			<equals arg1="${arch}" arg2="x86" />
+			<then>
+				<property name="eclipse.file" value="eclipse-${eclipse.type}-${eclipse.version}-${os}.${ext}" />
+			</then>
+			<else>
+				<property name="eclipse.file" value="eclipse-${eclipse.type}-${eclipse.version}-${os}-${arch}.${ext}" />
+			</else>
+		</if>
+
+		<if>
+			<not>
+				<available file="${WORKINGDIR}/${eclipse.file}" type="file" />
+			</not>
+			<then>
+				<get src="${eclipse.URL}/${eclipse.file}" dest="${WORKINGDIR}/${eclipse.file}" ignoreerrors="false"/>
+			</then>
+		</if>
+
+		<!-- purge previous eclipse install to avoid conflicts w/ Eclipse feature versions -->
+		<delete dir="${WORKINGDIR}/eclipse-${eclipse.version}" includeemptydirs="true" quiet="true" />
+
+		<untar compression="gzip" dest="${WORKINGDIR}/eclipse-${eclipse.version}" src="${WORKINGDIR}/${eclipse.file}" overwrite="true" />
+
+		<!-- add 70M delta pack, eg. http://download.eclipse.org/eclipse/downloads/drops/M20101006-0936/download.php?dropFile=eclipse-M20101006-0936-delta-pack.zip -->
+		<!-- ONLY need deltapack if using -Dtycho.targetPlatform, which is now depredated
+		<property name="deltapack.file" value="eclipse-${eclipse.version}-delta-pack.zip"/>
+		<if>
+			<not>
+				<available file="${WORKINGDIR}/${deltapack.file}" type="file" />
+			</not>
+			<then>
+				<get src="${eclipse.URL}/${deltapack.file}" dest="${WORKINGDIR}/${deltapack.file}" />
+			</then>
+		</if>
+		<unzip src="${WORKINGDIR}/${deltapack.file}" dest="${WORKINGDIR}" overwrite="true"/>
+		-->
+
+		<!-- make eclipse executable -->
+		<chmod perm="+x" file="${WORKINGDIR}/eclipse-${eclipse.version}/eclipse/eclipse" />
+
+	</target>
+
+	<target name="gen.p2mirror.script" description="use XSLT to generate a p2.mirror script from .target">
+		<ant antfile="target2p2mirror.xml" />
+	</target>
+
+	<!-- /abs/path/to/eclipse -vm /opt/jdk1.6.0/bin/java -nosplash -data /tmp/workspace -consolelog -application 
+			org.eclipse.ant.core.antRunner -f *.target.p2mirror.xml -Ddebug=true -DfollowStrict=true -DrepoDir=/tmp/REPO/ -->
+	<target name="run.p2mirror.script" description="build target update site using p2.mirror">
+		<java classname="org.eclipse.equinox.launcher.Main" fork="true" dir="${basedir}" failonerror="true">
+			<classpath>
+				<fileset dir="${WORKINGDIR}/eclipse-${eclipse.version}/eclipse/plugins" includes="org.eclipse.equinox.launcher_*.jar"/>
+			</classpath>
+			<arg line=" -nosplash -data ${tmpdir}/workspace -consolelog -application org.eclipse.ant.core.antRunner" />
+			<arg line=" -f ${targetFile}.p2mirror.xml -DfollowStrict=true -DrepoDir=${repoDir}" />
+			<arg line=" -Ddebug=true -vmargs -Dosgi.locking=none -XX:MaxPermSize=128m" />
+			<jvmarg value="-XX:MaxPermSize=128m"/>
+		</java>
+	</target>
+
+	<target name="update.target.file" description="optional step: use XSLT to update .target file from contents of local repo">
+<!--		<echo>
+This step - calling targetUpdateFromRepo.xml - is no longer enabled to prevent the .target 
+file from being stripped of duplicate IUs. Instead, generation is a one-way process: 
+
+1. Manually update .target file
+2. Generate .p2mirror.xml file, with useLatest=false
+3. ...
+4. Profit!</echo> -->
+		<ant antfile="targetUpdateFromRepo.xml" />
+	</target>
+
+	<target name="cleanup">
+		<delete dir="${tmpdir}" quiet="true" includeemptydirs="true" />
+	</target>
+
+
+	<target name="install.local.target.platform.repo" depends="init" description="use p2.director to install target platform into local eclipse">
+		<!-- collect features to install -->
+		<var name="install" value="" />
+		<for param="featureJar">
+			<path>
+				<fileset dir="${repoDir}/features" includes="*.jar" />
+			</path>
+			<sequential>
+				<var name="feature.jarfile" unset="true" />
+				<var name="feature.id" unset="true" />
+				<propertyregex property="feature.jarfile" defaultvalue="@{featureJar}" input="@{featureJar}" regexp=".+/features/([^/]+\.jar)" replace="\1" override="true" />
+				<propertyregex property="feature.id" defaultvalue="${feature.jarfile}" input="${feature.jarfile}" regexp="([^_]+)_(\d+\.\d+\.\d+\..+)\.jar" replace="\1" override="true" />
+				<propertyregex property="feature.id" defaultvalue="${feature.id}" input="${feature.id}" regexp="([^_]+)_(\d+\.\d+\.\d+)\.jar" replace="\1" override="true" />
+				<var name="install" value="${install},${feature.id}.feature.group" />
+				<var name="feature.jarfile" unset="true" />
+				<var name="feature.id" unset="true" />
+			</sequential>
+		</for>
+		<!-- trim prefix "," -->
+		<propertyregex property="install" input="${install}" defaultvalue="${install}" regexp=",(.+)" replace="\1" override="true" />
+
+		<!-- do install -->
+		<antcall target="run.director">
+			<param name="p2.director.installIU" value="${install}" />
+			<param name="p2.director.install.path" value="${WORKINGDIR}/eclipse" />
+			<param name="p2.director.input.repo" value="file://${repoDir}/" />
+		</antcall>
+	</target>
+
+	<target name="run.director">
+		<property name="p2.director.extraArgs" value="" />
+		<property name="p2.director.installIU" value="${install}" />
+		<property name="p2.director.install.path" value="${targetDir}" />
+		<property name="p2.director.input.repo" value="jar:file://${sourceZip}!/" />
+		<echo>
+Source Repo(s): ${p2.director.input.repo}
+Install Path: ${p2.director.install.path}
+Feature(s) or Plugin(s) to Install:
+${install}
+ </echo>
+
+		<mkdir dir="${p2.director.install.path}" />
+		<chmod perm="+x" file="${p2.director.install.path}/eclipse" />
+		<exec executable="${p2.director.install.path}/eclipse" failonerror="true" dir="${p2.director.install.path}" timeout="900000" taskname="p2.dir">
+			<arg line=" -application org.eclipse.equinox.p2.director" />
+			<arg line=" -nosplash" />
+			<arg line=" --launcher.suppressErrors" />
+			<arg line=" -consoleLog" />
+			<arg line=" -flavor tooling" />
+			<arg line=" -roaming" />
+			<arg line=" -profile SDKProfile" />
+			<arg line=" -destination ${p2.director.install.path}" />
+			<arg line=" -bundlepool ${p2.director.install.path}" />
+			<arg line=" -installIU ${p2.director.installIU}" />
+			<arg line=" -metadataRepository ${p2.director.input.repo},file://${p2.director.install.path}/p2/org.eclipse.equinox.p2.engine/profileRegistry/SDKProfile.profile" />
+			<arg line=" -artifactRepository ${p2.director.input.repo},file://${p2.director.install.path}" />
+			<arg line=" -profileProperties org.eclipse.update.install.features=true" />
+			<arg line=" -vmargs" />
+			<arg line=" -Declipse.p2.data.area=${p2.director.install.path}/p2" />
+			<arg line=" -Declipse.p2.MD5Check=false" />
+		</exec>
+	</target>
+</project>


Property changes on: trunk/build/target-platforms/local/build.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/build/target-platforms/local/contentXml2artifactVersions.xsl
===================================================================
--- trunk/build/target-platforms/local/contentXml2artifactVersions.xsl	                        (rev 0)
+++ trunk/build/target-platforms/local/contentXml2artifactVersions.xsl	2012-09-13 10:34:05 UTC (rev 43641)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<!-- 
+	This XSLT is used by targetUpdateFromRepo.xml to update the versions on IUs in a .target file
+	CAUTION: do not auto-format this file or line breaks will appear where they should not be!
+-->
+<xsl:output method="text" indent="no" encoding="UTF-8" version="1.0" />
+<xsl:template match="repository">
+<xsl:apply-templates select="//unit" />
+</xsl:template>
+<xsl:template match="/"><xsl:for-each select="//unit">
+<xsl:sort select="@id" order="ascending" case-order="lower-first"/><xsl:sort select="@version" order="descending" case-order="lower-first" data-type="qname"/><xsl:value-of select="@id" />.version=<xsl:value-of select="@version" />
+<xsl:variable name="thisID" select="@id"/>
+<xsl:if test="count(//unit[@id = $thisID]) &gt; 1">
+# Warning: <xsl:value-of select="count(//unit[@id = $thisID])"/> versions found for <xsl:value-of select="@id" />:<xsl:for-each select="//unit[@id = $thisID]"><xsl:sort select="@id" order="ascending" case-order="lower-first"/><xsl:sort select="@version" order="descending" case-order="lower-first" data-type="qname"/>
+# <xsl:value-of select="@id" />.version=<xsl:value-of select="@version" /></xsl:for-each></xsl:if>
+#
+</xsl:for-each></xsl:template>
+</xsl:stylesheet>


Property changes on: trunk/build/target-platforms/local/contentXml2artifactVersions.xsl
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/build/target-platforms/local/getArch.sh
===================================================================
--- trunk/build/target-platforms/local/getArch.sh	                        (rev 0)
+++ trunk/build/target-platforms/local/getArch.sh	2012-09-13 10:34:05 UTC (rev 43641)
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+if uname -m > /dev/null 2>&1; then
+	arch=`uname -m`
+else
+	arch=`uname -p`
+fi
+# Massage arch for Eclipse-uname differences
+case $arch in
+	i[0-9]*86)
+		arch=x86 ;;
+	ia64)
+		arch=ia64 ;;
+	ppc)
+		arch=ppc ;;
+	ppc64)
+		arch=ppc ;;
+	x86_64)
+		arch=x86_64 ;;
+	*)
+	echo "ERROR: Unrecognized architecture:  $arch"
+	exit 1 ;;
+esac
+echo $arch
\ No newline at end of file


Property changes on: trunk/build/target-platforms/local/getArch.sh
___________________________________________________________________
Added: svn:executable
   + *

Added: trunk/build/target-platforms/local/multiple2local.xsl
===================================================================
--- trunk/build/target-platforms/local/multiple2local.xsl	                        (rev 0)
+++ trunk/build/target-platforms/local/multiple2local.xsl	2012-09-13 10:34:05 UTC (rev 43641)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema"
+	version="2.0">
+
+	<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
+	<xsl:param name="destinationUrl"/>
+
+	<xsl:template match="target">
+		<target includeMode="feature" name="e42-wtp34-jbds6">
+			<locations>
+				<location includeAllPlatforms="false" includeMode="planner" type="InstallableUnit" includeSource="true">
+					<repository location="{$destinationUrl}"/>
+					<xsl:apply-templates select="//unit" />
+				</location>
+			</locations>
+			<targetJRE path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+		</target>
+	</xsl:template>
+	
+	<xsl:template match="//unit">
+		<xsl:copy-of select="."/>
+	</xsl:template>
+</xsl:stylesheet>


Property changes on: trunk/build/target-platforms/local/multiple2local.xsl
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/build/target-platforms/local/pom.xml
===================================================================
--- trunk/build/target-platforms/local/pom.xml	                        (rev 0)
+++ trunk/build/target-platforms/local/pom.xml	2012-09-13 10:34:05 UTC (rev 43641)
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.jboss.tools</groupId>
+		<artifactId>target-platforms</artifactId> 
+		<version>4.0.0.Alpha2-SNAPSHOT</version>
+	</parent>
+	<groupId>org.jboss.tools.target-platforms</groupId>
+	<artifactId>local</artifactId>
+	<name>Local (aggragated) target platform</name>
+	<packaging>pom</packaging>
+
+	<properties>
+		<repoDir>${basedir}/REPO</repoDir>
+		<eclipse.type>platform</eclipse.type>
+
+		<!--
+		<eclipse.version>4.2</eclipse.version>
+		<eclipse.URL>http://www.eclipse.org/downloads/download.php?r=1&amp;file=/eclipse/downloads/drops4/R-4.2-201206081400/</eclipse.URL>
+		-->
+		<eclipse.version>M20120829-1000</eclipse.version>
+		<eclipse.URL>http://www.eclipse.org/downloads/download.php?r=1&amp;file=/eclipse/downloads/drops/M20120829-1000/</eclipse.URL>
+		
+		<!-- Temporary before release of Tycho 0.16 -->
+		<!-- JBIDE-12003 -->
+		<tychoVersion>0.16.0-SNAPSHOT</tychoVersion>
+		<tychoExtrasVersion>0.16.0-SNAPSHOT</tychoExtrasVersion>
+	</properties>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-dependency-plugin</artifactId>
+				<version>2.5.1</version>
+				<executions>
+					<execution>
+						<id>get-multiple-target</id>
+						<phase>generate-resources</phase>
+						<goals>
+							<goal>get</goal>
+						</goals>
+						<configuration>
+							<groupId>${project.groupId}</groupId>
+							<artifactId>multiple</artifactId>
+							<version>${project.version}</version>
+							<packaging>target</packaging>
+							<classifier>multiple</classifier>
+							<destination>${project.build.directory}/multiple.target</destination>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.codehaus.mojo</groupId>
+				<artifactId>xml-maven-plugin</artifactId>
+				<version>1.0</version>
+				<executions>
+					<execution>
+						<id>generate-unified.target</id>
+						<phase>generate-resources</phase> <!-- Should be generate-resources -->
+						<goals>
+							<goal>transform</goal>
+						</goals>
+						<configuration>
+							<transformationSets>
+								<transformationSet>
+									<dir>${project.build.directory}</dir>
+									<includes>
+										<include>multiple.target</include>
+									</includes>
+									<stylesheet>multiple2local.xsl</stylesheet>
+									<outputDir>${project.build.directory}/local</outputDir>
+									<outputProperties>
+										<outputPropertie>
+											<name>indent</name>
+											<value>yes</value>
+										</outputPropertie>
+									</outputProperties>
+									<parameters>
+										<parameter>
+											<name>destinationUrl</name>
+											<value>file:/${repoDir}</value>
+										</parameter>
+									</parameters>
+								</transformationSet>
+							</transformationSets>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.eclipse.tycho.extras</groupId>
+				<artifactId>target-platform-validation-plugin</artifactId>
+				<version>${tychoExtrasVersion}</version>
+				<executions>
+					<execution>
+						<phase>verify</phase>
+						<goals>
+ 							<goal>validate-target-platform</goal> 
+						</goals>
+						<configuration>
+							<targetFiles>
+								<param>${project.build.directory}/local/multiple.target</param>
+							</targetFiles>
+							<failOnError>true</failOnError>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.codehaus.mojo</groupId>
+				<artifactId>build-helper-maven-plugin</artifactId>
+				<version>1.3</version>
+				<executions>
+					<execution>
+						<id>attach-artifacts</id>
+						<phase>package</phase>
+						<goals>
+							<goal>attach-artifact</goal>
+						</goals>
+						<configuration>
+							<artifacts>
+								<artifact>
+									<file>${project.build.directory}/local/multiple.target</file>
+									<type>target</type>
+									<classifier>local</classifier>
+								</artifact>
+							</artifacts>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+
+	<profiles>
+		<profile>
+			<id>get.local.target</id>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-antrun-plugin</artifactId>
+						<version>1.6</version>
+						<executions>
+							<execution>
+								<phase>package</phase>
+								<configuration>
+									<tasks>
+										<!-- build the local.target file -->
+										<ant antfile="build.xml">
+											<!-- target File is the reference target file (multiple) -->
+											<property name="targetFile" value="${project.build.directory}/multiple.target" />
+											<property name="eclipse.version" value="${eclipse.version}" />
+											<property name="eclipse.type" value="${eclipse.type}" />
+											<property name="eclipse.URL" value="${eclipse.URL}"/>
+											<property name="repoDir" value="${repoDir}"/>
+											<!-- <property name="repoDir" value="/path/to/where/to/provision/repo"/> -->
+										</ant>
+									</tasks>
+								</configuration>
+								<goals>
+									<goal>run</goal>
+								</goals>
+							</execution>
+						</executions>
+						<dependencies>
+							<dependency>
+								<groupId>commons-net</groupId>
+								<artifactId>commons-net</artifactId>
+								<version>1.4.1</version>
+							</dependency>
+							<dependency>
+								<groupId>org.apache.ant</groupId>
+								<artifactId>ant-commons-net</artifactId>
+								<version>1.7.1</version>
+							</dependency>
+							<dependency>
+								<groupId>org.apache.ant</groupId>
+								<artifactId>ant-trax</artifactId>
+								<version>1.7.1</version>
+							</dependency>
+						</dependencies>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+	</profiles>
+
+</project>


Property changes on: trunk/build/target-platforms/local/pom.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/build/target-platforms/local/target2p2mirror.xml
===================================================================
--- trunk/build/target-platforms/local/target2p2mirror.xml	                        (rev 0)
+++ trunk/build/target-platforms/local/target2p2mirror.xml	2012-09-13 10:34:05 UTC (rev 43641)
@@ -0,0 +1,33 @@
+<project default="custom.build" name="jbosstools target platform p2.mirror generator">
+	<!-- don't forget to increment these files when moving up a version:
+	     build.xml, *.target*, publish.sh, target2p2mirror.xml; also jbds/trunk/releng/org.jboss.ide.eclipse.releng/requirements/jbds-target-platform/build.properties;
+	     also all devstudio-5.0_*.updatesite jobs (4) need to be pointed at the new Target Platform URL -->
+
+	<property name="targetFile" value="e421RC2-wtp341M.target" />
+
+	<!-- if useLatest = true, omit versions from p2.mirror script to fetch latest version available; 
+		 if useLatest = false, include versions and fetch specific versions requested. -->
+	<property name="useLatest" value="false" />
+
+	<target name="custom.build" depends="gen.p2mirror.script" />
+
+	<target name="gen.p2mirror.script" description="use XSLT to generate a p2.mirror script from .target">
+		<echo level="verbose">Generate ${targetFile}.p2mirror.xml from ${targetFile} using useLatest=${useLatest}" />
+</echo>
+		<delete file="${targetFile}.p2mirror.xml" quiet="true" />
+		<xslt style="target2p2mirrorXml.xsl" in="${targetFile}" out="${targetFile}.p2mirror.xml" processor="trax">
+			<param name="useLatest" expression="${useLatest}" />
+		</xslt>
+		<echo>-----------
+
+	Next, be sure to run the resulting p2.mirror script. 
+	You may need to run it a few times for it to complete 
+	successfully (due to network timeouts and invalid mirrors).
+			
+	For instructions on running the script, do this:
+			
+		ant -f ${targetFile}.p2mirror.xml help
+		</echo>
+	</target>
+
+</project>


Property changes on: trunk/build/target-platforms/local/target2p2mirror.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/build/target-platforms/local/target2p2mirrorXml.xsl
===================================================================
--- trunk/build/target-platforms/local/target2p2mirrorXml.xsl	                        (rev 0)
+++ trunk/build/target-platforms/local/target2p2mirrorXml.xsl	2012-09-13 10:34:05 UTC (rev 43641)
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema"
+	version="2.0">
+<!-- 
+	This XSLT is used by target2p2mirror.xml to generate a p2.mirror ant script from a .target file
+-->	
+	<xsl:output method="xml" indent="yes" encoding="UTF-8"
+		version="1.0" />
+
+	<!-- if useLatest = true, omit versions from p2.mirror script to fetch latest version available; 
+		 if useLatest = false, include versions and fetch specific versions requested. -->
+	<xsl:param name="useLatest" select="'false'" as="xs:string"/>
+
+	<xsl:param name="verbose" select="'${verbose}'" as="xs:string"/>
+	<xsl:param name="followStrict" select="'${followStrict}'" as="xs:string"/>
+	<xsl:param name="destination" select="'file://${repoDir}'" as="xs:string"/>
+	
+	<xsl:template match="target">
+		<project name="Download target platform" default="download.target.platform">
+			<target name="help">
+				<echo>
+					Generated with useLatest = <xsl:value-of select="$useLatest"/>
+					
+					---
+					
+					Use followStrict="true" to prevent downloading all
+					requirements not included in the target platform
+					or followStrict="false" to fetch everything
+
+					To run this script:
+
+					/abs/path/to/eclipse -vm /opt/jdk1.6.0/bin/java \
+					-nosplash -data /tmp/workspace -consolelog -application \
+					org.eclipse.ant.core.antRunner -f *.target.p2mirror.xml \
+					-Ddebug=true -DfollowStrict=true -DrepoDir=`pwd`/REPO/
+</echo>
+			</target>
+			<target name="init" unless="repoDir">
+				<fail>Must set -DrepoDir=/abs/path/to/download/artifacts/</fail>
+			</target>
+			<target name="download.target.platform" depends="init"
+				description="Download from target platform definition" if="repoDir">
+				<property name="verbose" value="false" />
+				<property name="followStrict" value="false" />
+				<echo level="info">Download features/plugins into ${repoDir}</echo>
+				<p2.mirror destination="{$destination}" verbose="{$verbose}">
+					<!-- should we add latestVersionOnly="true" to <slicingOptions> ? -->
+					<slicingOptions includeFeatures="true" followStrict="{$followStrict}"/>
+					<source>
+						<xsl:apply-templates select="//repository" />
+					</source>
+					<xsl:apply-templates select="//unit" />
+					<xsl:apply-templates select="//feature" />
+					<xsl:apply-templates select="//plugin" />
+				</p2.mirror>
+			</target>
+		</project>
+	</xsl:template>
+
+	<xsl:template match="//repository">
+		<xsl:variable name="locationUrl" select="./@location" />
+		<repository location="{$locationUrl}" />
+	</xsl:template>
+
+	<xsl:template match="//unit">
+		<xsl:choose>
+			<xsl:when test="$useLatest='true'">
+				<iu id="{@id}" version="" />
+			</xsl:when>
+			<xsl:otherwise>
+				<iu id="{@id}" version="{@version}" />
+			</xsl:otherwise>
+		</xsl:choose>
+	</xsl:template>
+
+	<xsl:template match="//plugin">
+		<iu id="{@id}" version="" />
+	</xsl:template>
+
+	<xsl:template match="//feature">
+		<iu id="{@id}.feature.group" version="" />
+	</xsl:template>
+
+	<!-- ignore anything else -->
+	<xsl:template match="environment|targetJRE|launcherArgs|includeBundles" />
+
+</xsl:stylesheet>


Property changes on: trunk/build/target-platforms/local/target2p2mirrorXml.xsl
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/build/target-platforms/local/target2targetTemplate.xsl
===================================================================
--- trunk/build/target-platforms/local/target2targetTemplate.xsl	                        (rev 0)
+++ trunk/build/target-platforms/local/target2targetTemplate.xsl	2012-09-13 10:34:05 UTC (rev 43641)
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<!-- 
+	This XSLT is used by targetUpdateFromRepo.xml to update the versions on IUs in a .target file
+	CAUTION: do not auto-format this file or line breaks will appear where they should not be!
+-->
+
+<xsl:param name="replacement.URL"/>
+<xsl:param name="replace.versions"/>
+
+<!-- Copy unit nodes and optionally (if we ran contentXml2artifactVersions.xsl transform and have artifactVersions.properties file) templatize their version attributes -->
+<xsl:template match="unit">
+<xsl:choose>
+<xsl:when test="$replace.versions">
+
+<xsl:variable name="prevID"><xsl:value-of select="preceding-sibling::* [1]/@id" /></xsl:variable> <!-- <prevID><xsl:value-of select="$prevID"/></prevID> -->
+<xsl:variable name="thisID"><xsl:value-of select="@id" /></xsl:variable> <!-- <thisID><xsl:value-of select="$thisID"/></thisID> -->
+<xsl:variable name="nextID"><xsl:value-of select="following-sibling::* [1]/@id" /></xsl:variable> <!-- <nextID><xsl:value-of select="$nextID"/></nextID> -->
+
+<!-- if there is more than one node matching <unit id="some.id"/> then DO NOT REPLACE the version -->
+<xsl:choose>
+	<xsl:when test="contains ($thisID, $nextID) or contains ($thisID, $prevID)">
+		<!-- <xsl:comment> Note multiple versions of this IU; cannot update automatically. </xsl:comment> -->
+		<unit id="{@id}" version="{@version}"><xsl:apply-templates/></unit>
+	</xsl:when>
+	<xsl:otherwise>
+		<unit id="{@id}" version="${{{@id}.version}}"><xsl:apply-templates/></unit>
+	</xsl:otherwise>
+</xsl:choose>
+<xsl:apply-templates/>
+</xsl:when>
+<xsl:otherwise>
+<unit id="{@id}" version="{@version}"><xsl:apply-templates/></unit>
+</xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<!-- Copy repository nodes and optionally replace their location attributes (if replacement.URL is set) -->
+<xsl:template match="repository">
+<xsl:choose>
+<xsl:when test="$replacement.URL">
+<repository location="{$replacement.URL}">
+<xsl:apply-templates/>
+</repository>
+</xsl:when>
+<xsl:otherwise>
+<repository location="{@location}">
+<xsl:apply-templates/>
+</repository>
+</xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+
+<!-- Copy everything else unchanged -->
+<xsl:template match="@*|node()">
+<xsl:copy>
+<xsl:apply-templates select="@*|node()"/>
+</xsl:copy>
+</xsl:template>
+
+</xsl:stylesheet>
+


Property changes on: trunk/build/target-platforms/local/target2targetTemplate.xsl
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/build/target-platforms/local/targetUpdateFromRepo.xml
===================================================================
--- trunk/build/target-platforms/local/targetUpdateFromRepo.xml	                        (rev 0)
+++ trunk/build/target-platforms/local/targetUpdateFromRepo.xml	2012-09-13 10:34:05 UTC (rev 43641)
@@ -0,0 +1,165 @@
+<project default="custom.build" name="jbosstools target platform updater">
+
+	<property name="outputDir" value="${basedir}" />
+	<!-- Instead of overwriting, can also create a new .target file in a different outputDir
+		<property name="outputDir" value="${tmpDir}" /> 
+	-->
+
+	<!-- must set these commandline if not using defaults -->
+	<property name="targetFile" value="multiple.target" />
+	<property name="repoDir" value="${outputDir}/REPO/" />
+
+	<!-- create a second .target file which replaces all URLs with a single unified (published) one
+		(eg., for jbosstools target platform site), set these properties too -->
+	<property name="unified.targetFile" value="unified.target" />
+	<property name="unified.URL" value="http://download.jboss.org/jbosstools/updates/target-platform_4.0.juno.SR0a/latest/" />
+	<property name="local.targetFile" value="local.target" />
+	<property name="local.URL" value="file://${repoDir}" />
+
+	<property name="tmpDir" value="${java.io.tmpdir}/targetUpdateFromRepo" />
+
+	<target name="help">
+		<echo>Must set these properties (or use defaults shown):
+			
+	ant -f targetUpdateFromRepo.xml -DrepoDir=${repoDir} \
+		-DtargetFile=${targetFile} \
+		-Dunified.targetFile=${unified.targetFile} \
+		-Dunified.URL=${unified.URL} \
+		-Dlocal.targetFile=${local.targetFile} \
+		-Dlocal.URL=${local.URL}
+
+To simply generate a local.target file from the multiple.target file, use:
+
+	ant -f targetUpdateFromRepo.xml local.target</echo>
+	</target>
+
+	<target name="custom.build" depends="check.content.xml, get.content.xml, copy.content.xml, contentXml2artifactVersions.xsl, multiple.target, unified.target, local.target, cleanup" />
+
+	<target name="check.content.xml" description="if content.jar, unpack to get content.xml">
+		<condition property="content.xml.exists" value="true">
+			<available file="${repoDir}/content.xml" />
+		</condition>
+	</target>
+	<target name="get.content.xml" unless="content.xml.exists">
+		<echo level="verbose">Unzip ${tmpDir}/content.xml</echo>
+		<unzip src="${repoDir}/content.jar" dest="${tmpDir}" />
+	</target>
+	<target name="copy.content.xml" if="content.xml.exists">
+		<echo level="verbose">Copy ${tmpDir}/content.xml</echo>
+		<copy file="${repoDir}/content.xml" todir="${tmpDir}" />
+	</target>
+
+	<target name="contentXml2artifactVersions.xsl">
+		<echo level="verbose">Generate ${tmpDir}/artifactVersions.properties</echo>
+		<xslt style="contentXml2artifactVersions.xsl" in="${tmpDir}/content.xml" out="${tmpDir}/artifactVersions.properties" processor="trax" />
+	</target>
+
+	<target name="target2targetTemplate" description="run target2targetTemplate.xsl to templatize .target file">
+		<property name="outputFile" value="${tmpDir}/${targetFile}.template" />
+		<property name="replacement.URL" value="" />
+		<echo level="verbose">Generate ${outputFile}</echo>
+		<xslt style="target2targetTemplate.xsl" in="${targetFile}" out="${outputFile}" processor="trax">
+			<param name="replacement.URL" expression="${replacement.URL}" />
+			<!-- if replace.versions is set, will update from versions in repo; if not set, will only update URLs, not IU versions -->
+			<param name="replace.versions" expression="1" />
+		</xslt>
+	</target>
+
+	<target name="multiple.target" description="update the multiple.target file based on new content in the local repo">
+		<antcall target="target2targetTemplate" />
+		<antcall target="updateTargetFile" />
+	</target>
+
+	<target name="unified.target" description="update the unified.target file based on new content in the local repo and replace URLs w/ single unified one">
+		<antcall target="target2targetTemplate">
+			<param name="outputFile" value="${tmpDir}/${unified.targetFile}.template" />
+			<param name="replacement.URL" value="${unified.URL}" />
+		</antcall>
+		<antcall target="updateTargetFile">
+			<param name="targetFile" value="${unified.targetFile}" />
+		</antcall>
+	</target>
+
+	<target name="local.target" description="create a local.target file (based on new content in the local repo if available) and replace URLs w/ single local one">
+		<antcall target="target2targetTemplate">
+			<param name="outputFile" value="${tmpDir}/${local.targetFile}.template" />
+			<param name="replacement.URL" value="${local.URL}" />
+		</antcall>
+		<antcall target="updateTargetFile">
+			<param name="targetFile" value="${local.targetFile}" />
+		</antcall>
+	</target>
+
+	<target name="updateTargetFile" description="load generated properties and resolve them in the template to create a new .target file">
+		<property file="${tmpDir}/artifactVersions.properties" />
+		<copy todir="${outputDir}" overwrite="true">
+			<fileset file="${tmpDir}/${targetFile}.template" />
+			<mapper type="merge" to="${targetFile}" />
+			<filterchain>
+				<expandproperties />
+			</filterchain>
+		</copy>
+	</target>
+
+	<target name="cleanup" description="purge temporary dir">
+		<delete dir="${tmpDir}" includeemptydirs="true" quiet="true" />
+	</target>
+
+	<!-- test examples:
+	     	cd ~/32x/build/target-platform
+		ant -f targetUpdateFromRepo.xml test.updateTargetFile -Dtest.pattern=swtbot
+		ant -f targetUpdateFromRepo.xml test.updateTargetFile -Dtest.pattern=js -DtargetFile=jbds.target -DrepoDir=`pwd`/JBDS_REPO/
+	-->
+	<target name="test.updateTargetFile" depends="check.content.xml, get.content.xml, copy.content.xml, contentXml2artifactVersions.xsl">
+		<!-- properties to set commandline: -->
+		<property name="test.pattern" value="swtbot"/>
+		<property name="test.targetFile" value="${targetFile}"/>
+
+		<property name="tmpfile" value="${tmpDir}/test.updateTargetFile.tmp"/>
+		<property name="tmpfile2" value="${tmpDir}/test.updateTargetFile.tmpsed"/>
+		<echo level="info">Load /${test.pattern}/ properties from ${tmpDir}/artifactVersions.properties</echo>
+		<loadfile srcfile="${tmpDir}/artifactVersions.properties" property="artifactVersionsPropertiesContents">
+			<filterchain>
+				<linecontains>
+					<contains value="${test.pattern}" />
+					<!-- <contains value="feature.group" /> -->
+				</linecontains>
+				<striplinecomments><comment value="#"/></striplinecomments>
+			</filterchain>
+		</loadfile>
+		<echo file="${tmpfile}">${artifactVersionsPropertiesContents}</echo>
+
+		<antcall target="target2targetTemplate">
+			<param name="outputFile" value="${tmpDir}/${test.targetFile}.template" />
+			<param name="replacement.URL" value="${unified.URL}" />
+		</antcall>
+		<!-- <echo level="info">Generated ${tmpDir}/${unified.targetFile}.template: </echo>
+	<exec executable="egrep">
+			<arg line="&quot;${test.pattern}&quot; ${tmpDir}/${test.targetFile}.template" />
+		</exec> -->
+
+		<antcall target="updateTargetFile">
+			<param name="targetFile" value="${test.targetFile}" />
+		</antcall>
+		<echo level="info">--
+If loaded version values (in artifactVersions.properties) do not match  
+output below (values from repo), an error has occurred or replace.versions is undefined.
+It is also possible that the complete list of features in the repo is greater than those 
+in the target. If so, clean the repo and regenerate to remove extraneous content.
+--</echo>
+		<!-- $ sed -n -e '/swtbot.*feature.group/ p' unified.target | sed -e 's/\t\t\t<unit id="\|"\/>//g' -->
+		<exec executable="sed" output="${tmpfile2}">
+			<arg line=" -n -e '/${test.pattern}.*feature.group/ p' ${test.targetFile}" />
+		</exec>
+		<exec executable="sed" output="${tmpfile}.2">
+			<arg line=" -e 's/\t\t\t&lt;unit id=&quot;\|&quot;\/&gt;//g' ${tmpfile2} -e 's/&quot; version=&quot;/.version=/g'" />
+		</exec>
+		<exec executable="sort" output="${tmpfile}.sorted"><arg line="${tmpfile}"/></exec>
+		<exec executable="sort" output="${tmpfile}.2.sorted"><arg line="${tmpfile}.2"/></exec>
+		<exec executable="diff" outputproperty="diffout">
+			<arg line="${tmpfile}.sorted ${tmpfile}.2.sorted"/>
+		</exec>
+		<echo>${diffout}</echo>
+		<antcall target="cleanup"/>
+	</target>
+</project>


Property changes on: trunk/build/target-platforms/local/targetUpdateFromRepo.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/build/target-platforms/multiple/multiple.target
===================================================================
--- trunk/build/target-platforms/multiple/multiple.target	                        (rev 0)
+++ trunk/build/target-platforms/multiple/multiple.target	2012-09-13 10:34:05 UTC (rev 43641)
@@ -0,0 +1,368 @@
+<?xml version="1.0" encoding="UTF-8"?><?pde version="3.6"?>
+<target includeMode="feature" name="e42-wtp34-jbds6">
+	<!-- Pro tip: to convert 
+			from org.eclipse.foo_4.6.0.v201005032111-777K4AkF7B77R7c7N77.jar
+		to <unit version="4.6.0.v201005032111-777K4AkF7B77R7c7N77" id="org.eclipse.foo.feature.group"/>
+		using vi, apply this transform:
+		:%s/.\+\/\(org.\+\)_\(\d\+.\+\)\.jar/\t\t\t<unit id="\1.feature.group" version="\2"\/>/g
+	-->
+	<locations>
+		<location includeAllPlatforms="false" includeMode="planner" type="InstallableUnit" includeSource="true">
+			<!-- don't forget to increment these files when moving up a version:
+				build.xml, *.target*, publish.sh, target2p2mirror.xml -->
+			<repository location="http://download.jboss.org/jbosstools/updates/juno/SR0a/"/>
+
+			<!-- for these IUs we need multiple versions -->
+			<unit id="javax.wsdl" version="1.6.2.v201012040545"/>
+			<unit id="javax.wsdl" version="1.5.1.v201012040544"/>
+			<unit id="org.jdom" version="1.1.1.v201101151400"/>
+			<unit id="org.jdom" version="1.0.0.v201005080400"/>
+			<unit id="org.apache.commons.lang" version="2.6.0.v201205030909"/>
+			<unit id="org.apache.commons.lang" version="2.4.0.v201005080502"/>
+			<unit id="org.apache.commons.lang" version="2.1.0.v201005080500"/>
+			<unit id="javax.servlet" version="3.0.0.v201112011016"/>
+			<unit id="javax.servlet" version="2.5.0.v200910301333"/>
+			<unit id="javax.servlet.jsp" version="2.2.0.v201112011158"/>
+			<!-- <unit id="javax.servlet.jsp" version="2.0.0.v201101211617"/> -->
+			<unit id="javax.servlet.jsp" version="2.0.0.v200806031607"/>
+			<unit id="javax.wsdl" version="1.6.2.v201012040545"/>
+			<unit id="javax.wsdl" version="1.5.1.v201012040544"/>
+			<unit id="javax.xml.bind" version="2.2.0.v201105210648"/>
+			<unit id="javax.xml.bind" version="2.1.9.v201005080401"/>
+			<unit id="javax.xml.soap" version="1.3.0.v201105210645"/>
+			<unit id="javax.xml.soap" version="1.2.0.v201005080501"/>
+			<unit id="org.apache.commons.logging" version="1.1.1.v201101211721"/>
+			<unit id="org.apache.commons.logging" version="1.0.4.v201101211617"/>
+			<unit id="org.apache.lucene" version="2.9.1.v201101211721"/>
+			<unit id="org.apache.lucene" version="1.9.1.v201101211617"/>
+			<unit id="org.apache.lucene.core" version="3.5.0.v20120319-2345"/>
+			<unit id="org.apache.lucene.core" version="2.9.1.v201101211721"/>
+			<unit id="org.junit" version="4.10.0.v4_10_0_v20120426-0900"/>
+			<unit id="org.junit" version="3.8.2.v3_8_2_v20100427-1100"/>
+
+			<!-- m2e, m2e-wtp + deps -->
+			<unit id="org.eclipse.m2e.sdk.feature.feature.group" version="1.2.0.20120903-1050"/>
+			<unit id="org.eclipse.m2e.feature.feature.group" version="1.2.0.20120903-1050"/>
+			<unit id="org.eclipse.m2e.wtp.feature.feature.group" version="0.16.0.20120910-0913"/>
+			<unit id="org.sonatype.m2e.mavenarchiver.feature.feature.group" version="0.15.0.201207090125"/>
+			<unit id="ch.qos.logback.classic" version="1.0.0.v20111214-2030"/>
+			<unit id="ch.qos.logback.core" version="1.0.0.v20111214-2030"/>
+			<unit id="ch.qos.logback.slf4j" version="1.0.0.v20120123-1500"/>
+			<unit id="org.slf4j.api" version="1.6.4.v20120130-2120"/>
+			<unit id="com.ning.async-http-client" version="1.6.5.20120903-0645"/>
+			<unit id="org.jboss.netty" version="3.2.5.Final-20120903-0645"/>
+			<unit id="org.eclipse.equinox.p2.discovery.compatibility" version="1.0.101.v20120524-1717"/>
+			<unit id="org.eclipse.equinox.p2.discovery" version="1.0.200.v20120524-1717"/>
+			<unit id="org.eclipse.equinox.p2.ui.discovery" version="1.0.0.v20110808-1657"/>
+
+			<!-- Orbit bundles -->
+			<unit id="javax.activation" version="1.1.0.v201108011116"/>
+			<unit id="org.apache.oro" version="2.0.8.v201005080400"/>
+			<unit id="org.apache.commons.io" version="2.0.1.v201105210651"/>
+			<unit id="org.apache.commons.codec" version="1.3.0.v201101211617"/>
+			<unit id="org.apache.commons.httpclient" version="3.1.0.v201012070820"/>
+			<unit id="org.hamcrest" version="1.1.0.v20090501071000"/>
+			<unit id="org.hamcrest.core" version="1.1.0.v20090501071000"/>
+			<unit id="org.hamcrest.text" version="1.1.0.v20090501071000"/>
+			<unit id="org.hamcrest.library" version="1.1.0.v20090501071000"/>
+			<unit id="org.hamcrest.integration" version="1.1.0.v20090501071000"/>
+
+			<!-- Orbit bundles needed for Eclipse Checkstyle (eclipse-cs) -->
+			<unit id="org.apache.lucene.highlighter" version="3.5.0.v20120319-2345"/>
+			<unit id="org.apache.lucene.memory" version="3.5.0.v20120319-2345"/>
+			<unit id="org.apache.lucene.misc" version="3.5.0.v20120319-2345"/>
+			<unit id="org.apache.lucene.queries" version="3.5.0.v20120319-2345"/>
+			<unit id="org.apache.lucene.snowball" version="2.9.1.v20100421-0704"/>
+			<unit id="org.apache.lucene.spellchecker" version="3.5.0.v20120319-2345"/>
+
+			<!-- EMF, XSD -->
+			<unit id="org.eclipse.emf.workspace.feature.group" version="1.6.0.v20120328-0001-37708s734E377I3B4C2"/>
+			<unit id="org.eclipse.emf.validation.feature.group" version="1.6.0.v20120328-0001-479-9oB56N5BBR6LCA6"/>
+			<unit id="org.eclipse.emf.transaction.feature.group" version="1.6.0.v20120328-0001-377-8s734C3E7D15D6B"/>
+			<unit id="org.eclipse.emf.feature.group" version="2.8.0.v20120820-1017"/>
+			<unit id="org.eclipse.emf.ecore.feature.group" version="2.8.0.v20120820-0912"/>
+			<unit id="org.eclipse.emf.codegen.feature.group" version="2.8.0.v20120820-1017"/>
+			<unit id="org.eclipse.emf.common.feature.group" version="2.8.0.v20120820-0912"/>
+			<unit id="org.eclipse.emf.databinding.feature.group" version="1.2.0.v20120820-1017"/>
+			<unit id="org.eclipse.emf.codegen.ecore.feature.group" version="2.8.0.v20120820-1017"/>
+			<unit id="org.eclipse.emf.ecore.edit.feature.group" version="2.8.0.v20120820-1017"/>
+			<unit id="org.eclipse.emf.ecore.editor.feature.group" version="2.8.0.v20120820-1017"/>
+			<unit id="org.eclipse.emf.ecore.feature.group" version="2.8.0.v20120820-0912"/>
+			<unit id="org.eclipse.emf.edit.feature.group" version="2.8.0.v20120820-1017"/>
+			<unit id="org.eclipse.xsd.edit.feature.group" version="2.7.0.v20120820-1017"/>
+			<unit id="org.eclipse.xsd.ecore.converter.feature.group" version="2.7.0.v20120820-1017"/>
+			<unit id="org.eclipse.xsd.editor.feature.group" version="2.7.0.v20120820-1017"/>
+			<unit id="org.eclipse.xsd.mapping.editor.feature.group" version="2.7.0.v20120820-1017"/>
+			<unit id="org.eclipse.xsd.mapping.feature.group" version="2.7.0.v20120820-1017"/>
+			<unit id="org.eclipse.xsd.feature.group" version="2.8.0.v20120820-1017"/>
+
+			<!-- GEF, Draw2D, Graphiti, Zest -->
+			<unit id="org.eclipse.graphiti.feature.feature.group" version="0.9.1.v20120904-0542"/>
+			<unit id="org.eclipse.draw2d.feature.group" version="3.9.0.201208201742"/>
+			<unit id="org.eclipse.gef.feature.group" version="3.9.0.201208201742"/>
+			<unit id="org.eclipse.zest.feature.group" version="1.5.0.201208201742"/>
+
+			<!-- UML2 -->
+			<unit id="org.eclipse.uml2.feature.group" version="4.0.1.v20120830-1547"/>
+			<unit id="org.eclipse.uml2.doc.feature.group" version="4.0.0.v20120830-1547"/>
+
+			<!-- Platform: CVS, JDT, RCP, PDE, Equinox, Help -->
+			<unit id="com.ibm.icu.base" version="4.4.2.v20110831"/>
+			<!-- cannot include two versions of the same feature as they conflict in terms of inclusion of org.eclipse.update.ui, which is only on the 3.8 site -->
+			<!-- <unit id="org.eclipse.platform.feature.group" version="3.8.0.v20120607-071945-9gF7jI7nG5qByXMVdkhRMWBQlF4PnDCLybDCPQ"/> -->
+			<unit id="org.eclipse.platform.feature.group" version="4.2.1.v20120814-120134-9JF7BHVGFyMveli1tYBaNH0n9od2TiEotuVKQT"/>
+			<unit id="org.eclipse.platform.ide" version="4.2.1.M20120829-1200"/>
+			<unit id="org.eclipse.platform.sdk" version="4.2.1.M20120829-1200"/>
+			<unit id="org.eclipse.sdk.feature.group" version="4.2.1.v20120814-120134-7T7oDODQ-3Hepz0bkC7lg7S31VyjlaC-yrp6sF1oEXJpS"/>
+			<unit id="org.eclipse.sdk.ide" version="4.2.1.M20120829-1200"/>
+			<unit id="org.eclipse.cvs.feature.group" version="1.3.200.v20120525-1249-7B79FJJAkF7BF7UFM5CAJT"/>
+			<unit id="org.eclipse.jdt.feature.group" version="3.8.1.v20120814-104540-8-8nFqpFNOfwKDRUz0yXIcL5d_83"/>
+			<unit id="org.eclipse.equinox.server.core.feature.group" version="1.2.0.v20120522-1841-7K7VFO1F7RZHQZI4Zg8SrmxDF"/>
+			<unit id="org.eclipse.equinox.executable.feature.group" version="3.6.0.v20120522-1813-7P7OG2BFLWUl7UmbVUO9iCm"/>
+			<unit id="org.eclipse.equinox.compendium.sdk.feature.group" version="3.8.0.v20120522-1841-7X7eGb7FPGjtJjv1kjS_NdG"/>
+			<unit id="org.eclipse.equinox.core.sdk.feature.group" version="3.8.0.v20120522-1813-85FAcGbFFoYTldJrULs3a10sDR"/>
+			<unit id="org.eclipse.equinox.p2.discovery.feature.feature.group" version="1.0.100.v20120524-0542-4-Bh9oB58A5N9L28PCQ"/>
+			<unit id="org.eclipse.equinox.p2.user.ui.feature.group" version="2.2.0.v20120524-0542-62DG9JXTlSiz-UbcP0w0KGl9CKNP"/>
+			<unit id="org.eclipse.equinox.p2.sdk.feature.group" version="3.8.0.v20120524-0542-9N89H_oGMMn84Qsz0iIohu4jLeQD"/>
+			<unit id="org.eclipse.equinox.serverside.sdk.feature.group" version="3.8.0.v20120522-1841-9Q7dFszFYGis9uZsz0QodZP4fL8t"/>
+			<unit id="org.eclipse.equinox.sdk.feature.group" version="3.8.0.v20120522-1841-7M7fA78g5_y-g-jtHxcd5k8pAtFO"/>
+			<unit id="org.eclipse.equinox.weaving.sdk.feature.group" version="1.0.200.v20120522-1841-79-FKsEVVFNVFsVk7O6G6"/>
+			<unit id="org.eclipse.equinox.server.jetty.feature.group" version="1.1.0.v20120522-1841-8077C0F8NcJTbL1ab47MJ5"/>
+			<unit id="org.eclipse.equinox.server.p2.feature.group" version="1.2.0.v20120522-1841-7z7_FfoFTy21Yu4Ykq_engx38"/>
+			<unit id="org.eclipse.equinox.server.servletbridge.feature.group" version="1.0.101.v20120522-1841-42F9w9oB58B5KBB2ADHO"/>
+			<unit id="org.eclipse.rcp.feature.group" version="4.2.1.v20120814-120134-7IAPA8BrHQicRz-uqOwIfyKe6z01"/>
+			<unit id="org.eclipse.pde.feature.group" version="3.8.1.v20120814-104528-7c7vFixFFt6Zr5aB7PM0LGWSd"/>
+			<unit id="org.eclipse.help.feature.group" version="1.4.1.v20120726-051048-8R7xFOUFLWUl7MoRL__LBXl27"/>
+			<!-- update.ui is on the 3.8 site, not the 4.2 site -->
+			<unit id="org.eclipse.update.ui" version="3.3.0.v20120523-1742"/>
+			<!-- there are two versions of this IU - 
+				4.2 has ./org.eclipse.update.core_3.2.600.v20120530-1204.jar and 
+				3.8 has ./org.eclipse.update.core_3.2.600.v20120530-120908.jar
+			-->
+			<!-- <unit id="org.eclipse.update.core" version="3.2.600.v20120530-120908"/> -->
+			<unit id="org.eclipse.update.core" version="3.2.600.v20120820-205746"/>
+
+			<!-- DTP -->
+			<unit id="org.eclipse.datatools.modelbase.feature.feature.group" version="1.10.1.v201208161415-7707FCcNBHLCgLUEdUb"/>
+			<unit id="org.eclipse.datatools.connectivity.feature.feature.group" version="1.10.1.v201208161415-7C7h94Et1axpBXkXlTa6YkKdDy4"/>
+			<unit id="org.eclipse.datatools.connectivity.oda.feature.feature.group" version="1.10.1.v201208161415-7H7C7SCcNBHLCfLcEbRW"/>
+			<unit id="org.eclipse.datatools.connectivity.oda.designer.feature.feature.group" version="1.10.1.v201208161415-4127w312312232267"/>
+			<unit id="org.eclipse.datatools.connectivity.oda.designer.core.feature.feature.group" version="1.10.1.v201208161415-7B7C7NCcNBGUBnIZDaUY"/>
+			<unit id="org.eclipse.datatools.enablement.feature.feature.group" version="1.10.1.v201208161415-7J9Q7FBWxeNcZB5LWgyhH7patz0v"/>
+			<unit id="org.eclipse.datatools.enablement.apache.derby.feature.feature.group" version="1.10.1.v201208161415-77798gBmKDQ2MoTULxcy9IIQ"/>
+			<unit id="org.eclipse.datatools.enablement.hsqldb.feature.feature.group" version="1.10.1.v201208161415-67E1AqGBM7KfNUHxJR9IIQ"/>
+			<unit id="org.eclipse.datatools.enablement.ibm.feature.feature.group" version="1.10.1.v201208161415-7F47WFC7sRdqScnobkd4"/>
+			<unit id="org.eclipse.datatools.enablement.jdbc.feature.feature.group" version="1.10.1.v201208161415-4-29oB5895RAE8HHP"/>
+			<unit id="org.eclipse.datatools.enablement.jdt.feature.feature.group" version="1.10.1.v201208161415-2-07w312218332612"/>
+			<unit id="org.eclipse.datatools.enablement.msft.feature.feature.group" version="1.10.1.v201208161415-544AkF7AL7MDMAQ8O"/>
+			<unit id="org.eclipse.datatools.enablement.mysql.feature.feature.group" version="1.10.1.v201208161415-5477AkF7AK7_AMENEA"/>
+			<unit id="org.eclipse.datatools.enablement.oda.feature.feature.group" version="1.10.1.v201208161415-7A7T7CDZRDKHF_HnGjOX"/>
+			<unit id="org.eclipse.datatools.enablement.oda.designer.feature.feature.group" version="1.10.1.v201208161415-3368s7356485C59AB"/>
+			<unit id="org.eclipse.datatools.enablement.oracle.feature.feature.group" version="1.10.1.v201208161415-548fAkF7AL7RBJANAI"/>
+			<unit id="org.eclipse.datatools.enablement.postgresql.feature.feature.group" version="1.10.1.v201208161415-553AkF7AK8PCRBQBP"/>
+			<unit id="org.eclipse.datatools.enablement.sap.feature.feature.group" version="1.10.1.v201208161415-540AkF7AJ7YEJBU7S"/>
+			<unit id="org.eclipse.datatools.enablement.sybase.feature.feature.group" version="1.10.1.v201208161415-7E46F9NiNc1QBgyT6T6"/>
+			<unit id="org.eclipse.datatools.enablement.ingres.feature.feature.group" version="1.10.1.v201208161415-540AkF78Z7UCRAQDB"/>
+			<unit id="org.eclipse.datatools.enablement.sqlite.feature.feature.group" version="1.10.1.v201208161415-542AkF7AJ7SAKAPBF"/>
+			<unit id="org.eclipse.datatools.sqldevtools.feature.feature.group" version="1.10.1.v201208161415-7N8B7JFDsn5iz-Aex68NyGpC_AgL"/>
+			<unit id="org.eclipse.datatools.sqldevtools.results.feature.feature.group" version="1.10.1.v201208161415-57B79AkF7BD7SGC9ZEH"/>
+			<unit id="org.eclipse.datatools.sqldevtools.ddlgen.feature.feature.group" version="1.10.1.v201208161415-7A-78F7RZHQTIyWmM1_s"/>
+			<unit id="org.eclipse.datatools.sqldevtools.ddl.feature.feature.group" version="1.10.1.v201208161415-279078B089G8S_IRUJz-XnN2at"/>
+			<unit id="org.eclipse.datatools.sqldevtools.data.feature.feature.group" version="1.10.1.v201208161415-645BgJ9EDBTHPAhQU"/>
+			<unit id="org.eclipse.datatools.sqldevtools.parsers.feature.feature.group" version="1.10.1.v201208161415-623BgJ9EE9ZJRDZLA"/>
+			<unit id="org.eclipse.datatools.sqldevtools.sqlbuilder.feature.feature.group" version="1.10.1.v201208161415-79-78EVVFNQGpRkHz0Sm"/>
+			<unit id="org.eclipse.datatools.sqldevtools.schemaobjecteditor.feature.feature.group" version="1.10.1.v201208161415-4208375LG5BJ93413"/>
+			<unit id="org.eclipse.datatools.intro.feature.group" version="1.10.1.v201208161415-26-7w312116392911"/>
+			<unit id="org.eclipse.datatools.doc.user.feature.group" version="1.10.1.v201208161415-47C08w95FFAK89FHEC7"/>
+			<unit id="org.eclipse.datatools.common.doc.user.feature.group" version="1.10.1.v201208161415-26-311A16321A3557"/>
+			<unit id="org.eclipse.datatools.connectivity.doc.user.feature.group" version="1.10.1.v201208161415-37D-7733L3D753L7BBF"/>
+			<unit id="org.eclipse.datatools.sqltools.doc.user.feature.group" version="1.10.1.v201208161415-37D-7733L3D753L7BBF"/>
+
+			<!-- RSE, TM -->
+			<unit id="org.eclipse.rse.feature.group" version="3.4.0.201205300905-7L7IFBV83omxZWwIDyHWipb2Sz-f"/>
+			<unit id="org.eclipse.rse.ssh.feature.group" version="3.0.400.201205300905-7A4FEc7F7BF7RJ77g7R"/>
+			<unit id="org.eclipse.rse.terminals.feature.group" version="1.2.0.201205300905-773Eo7H89G8OJ8Db8NB27"/>
+			<unit id="org.eclipse.rse.telnet.feature.group" version="2.3.0.201205300905-775FD3879AE8MH9BZFP4"/>
+			<unit id="org.eclipse.rse.ftp.feature.group" version="3.1.0.201205300905-782FBV8377A6FC79ODI4"/>
+			<unit id="org.eclipse.rse.local.feature.group" version="2.1.400.201205300905-7B4FSg7J9EJ9YO99r9Y"/>
+			<unit id="org.eclipse.rse.useractions.feature.group" version="1.1.400.201205300905-31FBV773573D933L3D"/>
+			<unit id="org.eclipse.tm.terminal.feature.group" version="3.2.0.201205300905-41-312316411A16"/>
+			<unit id="org.eclipse.tm.terminal.view.feature.group" version="2.3.0.201205300905-32-312316411A16"/>
+			<unit id="org.eclipse.tm.terminal.telnet.feature.group" version="2.1.100.201205300905-308Z312316411A16"/>
+			<unit id="org.eclipse.tm.terminal.serial.feature.group" version="2.1.100.201205300905-308Z312316411A16"/>
+			<unit id="org.eclipse.tm.terminal.feature.group" version="3.2.0.201205300905-41-312316411A16"/>
+			<unit id="org.eclipse.tm.terminal.ssh.feature.group" version="2.1.100.201205300905-308Z312316411A16"/>
+
+			<!-- WTP -->
+			<unit id="org.eclipse.jsf.feature.source.feature.group" version="3.4.1.v201208241503-7E7JFBjF9JgLWgMhh4X6Ps"/>
+			<unit id="org.eclipse.jst.jee" version="1.0.500.v201202020745"/>
+			<unit id="org.eclipse.wst.common.frameworks" version="1.2.200.v201203141800"/>
+			<unit id="org.eclipse.wst.common.project.facet.ui" version="1.4.300.v201111030424"/>
+			<unit id="org.eclipse.jst.jee.web" version="1.0.301.v201007070907"/>
+			<unit id="org.eclipse.jst.common.fproj.enablement.jdt.feature.group" version="3.4.0.v201108231500-377DG8s73543J5H6D66"/>
+			<unit id="org.eclipse.jst.ws.axis2tools.feature.feature.group" version="1.1.200.v201103022333-78-FF0DZRDKDDePSKwHj"/>
+			<unit id="org.eclipse.jst.ws.cxf.feature.feature.group" version="1.1.0.v201201312103-7H79FHxFAKlbotH5e9l3vAA6MBG"/>
+			<unit id="org.eclipse.jpt.common.feature.feature.group" version="1.2.1.v201208222210-663AkF7BF7cFFFFB7"/>
+			<unit id="org.eclipse.jpt.common.eclipselink.feature.feature.group" version="1.2.1.v201208222210-3318s73573J777753"/>
+			<unit id="org.eclipse.jpt.jpa.eclipselink.feature.feature.group" version="3.2.1.v201208222210-7M7J78F7RZHQYJAQsS4SVFD7"/>
+			<unit id="org.eclipse.jpt.jpa.feature.feature.group" version="3.2.1.v201208222210-7S7K8gFBBoPapQieUcW_TFD7"/>
+			<unit id="org.eclipse.persistence.jpa.feature.group" version="2.4.0.v20120608-r11652"/>
+			<unit id="org.eclipse.jsf.feature.feature.group" version="3.4.1.v201208241503-7E7JFBjF9JgLWgMhh4X6Ps"/>
+			<unit id="org.eclipse.jst.common.fproj.enablement.jdt.feature.group" version="3.4.0.v201108231500-377DG8s73543J5H6D66"/>
+			<unit id="org.eclipse.jst.enterprise_core.feature.feature.group" version="3.4.0.v201108110300-52FShAkF7BA8O8J9OC8"/>
+			<unit id="org.eclipse.jst.enterprise_ui.feature.feature.group" version="3.4.0.v201107072300-7b7JIM0FSK2WM1PS9Ar7AKUz0TrWn"/>
+			<unit id="org.eclipse.jst.enterprise_userdoc.feature.feature.group" version="3.3.100.v201105122000-62FUGBgJ9EA9aEeHRHc"/>
+			<unit id="org.eclipse.jst.jsf.apache.trinidad.tagsupport.feature.feature.group" version="2.2.201.v201208241503-20A87w312319352614"/>
+			<unit id="org.eclipse.jst.server_adapters.ext.feature.feature.group" version="3.3.101.v20120821_1416-777HFL6CcNBDmBjKOFHIEB"/>
+			<unit id="org.eclipse.jst.server_adapters.feature.feature.group" version="3.2.200.v20120517_1442-20A77w31231628a2553"/>
+			<unit id="org.eclipse.jst.server_core.feature.feature.group" version="3.4.0.v20120503_1042-31FEe8s73554A4Fa2153"/>
+			<unit id="org.eclipse.jst.server_ui.feature.feature.group" version="3.4.0.v20120503_1042-7A77FHr9xFcC2CFLZBCJMHLg7D64"/>
+			<unit id="org.eclipse.jst.server_userdoc.feature.feature.group" version="3.3.100.v20110303-2-Eo7w3121162A3329"/>
+			<unit id="org.eclipse.jst.web_core.feature.feature.group" version="3.4.1.v201208160300-7Q7EGVwFE9LeAJKuz0oawQtyivz-0sSxz003877"/>
+			<unit id="org.eclipse.jst.webpageeditor.feature.feature.group" version="2.3.8.v201208241503-46DI9oB58B5TBH8K5E"/>
+			<unit id="org.eclipse.jst.web_ui.feature.feature.group" version="3.4.1.v201208231800-7F7DFSlC25UrkX4qvgnXz0LZCANyQ0Tu--0sw0wF"/>
+			<unit id="org.eclipse.jst.web_userdoc.feature.feature.group" version="3.4.1.v201208231800-2117w312319373364"/>
+			<unit id="org.eclipse.jst.ws.axis2tools.feature.feature.group" version="1.1.200.v201103022333-78-FF0DZRDKDDePSKwHj"/>
+			<unit id="org.eclipse.jst.ws.cxf.feature.feature.group" version="1.1.0.v201201312103-7H79FHxFAKlbotH5e9l3vAA6MBG"/>
+			<unit id="org.eclipse.jst.ws.jaxws.dom.feature.feature.group" version="1.0.200.v201109042201-5-F8NAkF7BB7U8PEK8K"/>
+			<unit id="org.eclipse.jst.ws.jaxws.feature.feature.group" version="1.2.0.v201204151854-7E7AF70F8NcJS_KqT5TpXq"/>
+			<unit id="org.eclipse.jst.ws.jaxws_userdoc.feature.feature.group" version="1.0.200.v201205012246-3-DF8s73573D795LAF"/>
+			<unit id="org.eclipse.wst.common_core.feature.feature.group" version="3.4.1.v201208162200-7B7EFMTF7RZHOjItPz-R0QS"/>
+			<unit id="org.eclipse.wst.common.fproj.feature.group" version="3.4.0.v201202292300-377F8N8s735555393B7B"/>
+			<unit id="org.eclipse.wst.common_ui.feature.feature.group" version="3.4.1.v201208170300-7C7AFeEEdhOaweJhCnQfykJuQz00S1RT"/>
+			<unit id="org.eclipse.wst.jsdt.feature.feature.group" version="1.4.1.v201208171701-7H7DFg0FC7sReqSyfqesWi"/>
+			<unit id="org.eclipse.wst.server_adapters.feature.feature.group" version="3.2.201.v20120821_1517-51F9xAkF7AL8QDRl8GAT"/>
+			<unit id="org.eclipse.wst.server_core.feature.feature.group" version="3.3.100.v20110810_1722-33Et8s73563B6Ha3113"/>
+			<unit id="org.eclipse.wst.server_ui.feature.feature.group" version="3.3.101.v20120817_1533-7B7AFJQAtMduXxeIc0IpSdC97A9"/>
+			<unit id="org.eclipse.wst.server_userdoc.feature.feature.group" version="3.3.200.v20120830_2320-20Eo7w31231941a3363"/>
+			<unit id="org.eclipse.wst.web_core.feature.feature.group" version="3.4.1.v201208170345-7E7HFSlAJz-mw9qA03HKTuLiq_snjZB2o"/>
+			<unit id="org.eclipse.wst.web_ui.feature.feature.group" version="3.4.1.v201208170345-7O7MFsPEMkBJz0wtb-ccsarPSceUIHO9hKl7gJbS"/>
+			<unit id="org.eclipse.wst.web_userdoc.feature.feature.group" version="3.3.0.v201102200555-31Eo8s734B3E4H7799"/>
+			<unit id="org.eclipse.wst.ws_core.feature.feature.group" version="3.4.0.v201108230503-7L7RFoGFGtGd-xhuy-rRwz-2766"/>
+			<unit id="org.eclipse.wst.ws_ui.feature.feature.group" version="3.4.1.v201208172041-7I7CFkXEtEoXHw684K6n3-z-F3stz0lKFx169q5z"/>
+			<unit id="org.eclipse.wst.ws_userdoc.feature.feature.group" version="3.1.300.v201102200555-44FR79oB5855Q8IBD7G"/>
+			<unit id="org.eclipse.wst.ws_wsdl15.feature.feature.group" version="1.5.301.v201102200555-2407w312123151655"/>
+			<unit id="org.eclipse.wst.xml_core.feature.feature.group" version="3.4.1.v201208170345-7C7OFm5F7RZHQRIsOz-Nz-_n"/>
+			<unit id="org.eclipse.wst.xml_ui.feature.feature.group" version="3.4.1.v201208170345-7H7GFeFDxumUpsw5rgjWnKDrsz0p4ymwiRz011T2"/>
+			<unit id="org.eclipse.wst.xml_userdoc.feature.feature.group" version="3.3.0.v201102071641-50FYwAkF7B77UBZFDBL"/>
+			<unit id="org.eclipse.wst.xml.xpath2.processor.feature.feature.group" version="2.0.100.v201203131922-7A7K0CcNBGPCTJ_FUOb"/>
+			<unit id="org.eclipse.wst.xsl.feature.feature.group" version="1.3.100.v201111021744-7T7ZFUaFIqUoJuvaKoCpQDKaGVPc"/>
+
+			<!-- JBIDE-9549, JBDS-1904 add egit/jgit and mylyn support to TP, including dependent plugins -->
+			<unit id="org.eclipse.jsch.ui" version="1.1.400.v20120522-1148"/>
+			<unit id="org.eclipse.jsch.core" version="1.1.400.v20120522-1148"/>
+			<unit id="com.jcraft.jsch" version="0.1.46.v201205102330"/>
+			<unit id="org.eclipse.jgit.feature.group" version="2.0.0.201206130900-r"/>
+			<unit id="org.eclipse.egit.feature.group" version="2.0.0.201206130900-r"/>
+			<unit id="org.eclipse.egit.mylyn.feature.group" version="2.0.0.201206130900-r"/>
+			<unit id="org.eclipse.mylyn.github.feature.feature.group" version="2.0.0.201206130900-r"/>
+
+			<!-- needed for JBoss Central -->
+			<unit id="com.sun.syndication" version="0.9.0.v200803061811"/>
+			<unit id="org.eclipse.mylyn.commons.core" version="3.8.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.discovery.ui" version="3.8.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.discovery.core" version="3.8.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.commons.ui" version="3.8.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.commons.net" version="3.8.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.commons.screenshots" version="3.8.1.v20120725-0100"/>
+
+			<!-- JBDS-1904, JBIDE-9351, JBIDE-10094 add mylyn and jira to JBT/JBDS TP -->
+			<unit id="org.eclipse.mylyn_feature.feature.group" version="3.8.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.ide_feature.feature.group" version="3.8.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.tasks.ide.feature.group" version="3.8.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.commons.feature.group" version="3.8.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.commons.compatibility.feature.group" version="3.8.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.commons.identity.feature.group" version="1.0.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.commons.notifications.feature.group" version="1.0.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.commons.repositories.feature.group" version="1.0.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.commons.repositories.http.feature.group" version="1.0.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.context_feature.feature.group" version="3.8.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.bugzilla_feature.feature.group" version="3.8.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.discovery.feature.group" version="3.8.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.java_feature.feature.group" version="3.8.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.monitor.feature.group" version="3.8.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.pde_feature.feature.group" version="3.8.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.team_feature.feature.group" version="3.8.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.wikitext_feature.feature.group" version="1.7.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.cvs.feature.group" version="1.0.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.git.feature.group" version="1.0.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.versions.feature.group" version="1.0.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.commons.sdk.feature.group" version="3.8.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.tasks.ui" version="3.8.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.tasks.core" version="3.8.1.v20120725-0100"/>
+			<unit id="org.eclipse.mylyn.tasks.bugs" version="3.8.1.v20120725-0100"/>
+			<unit id="com.atlassian.connector.commons" version="4.0.0.v20120628"/>
+			<unit id="com.atlassian.connector.eclipse.bamboo.core" version="3.0.6.v20120628"/>
+			<unit id="com.atlassian.connector.eclipse.bamboo.ui" version="3.0.6.v20120628"/>
+			<unit id="com.atlassian.connector.eclipse.branding.ui" version="3.0.6.v20120628"/>
+			<unit id="com.atlassian.connector.eclipse.commons.core" version="3.0.6.v20120628"/>
+			<unit id="com.atlassian.connector.eclipse.commons.ui" version="3.0.6.v20120628"/>
+			<unit id="com.atlassian.connector.eclipse.core" version="3.0.6.v20120628"/>
+			<unit id="com.atlassian.connector.eclipse.crucible.core" version="3.0.6.v20120628"/>
+			<unit id="com.atlassian.connector.eclipse.crucible.ui" version="3.0.6.v20120628"/>
+			<unit id="com.atlassian.connector.eclipse.cvs.core" version="3.0.6.v20120628"/>
+			<unit id="com.atlassian.connector.eclipse.cvs.ui" version="3.0.6.v20120628"/>
+			<unit id="com.atlassian.connector.eclipse.directclickthrough.ui" version="3.0.6.v20120628"/>
+			<unit id="com.atlassian.connector.eclipse.fisheye.core" version="3.0.6.v20120628"/>
+			<unit id="com.atlassian.connector.eclipse.fisheye.ui" version="3.0.6.v20120628"/>
+			<unit id="com.atlassian.connector.eclipse.help" version="3.0.6.v20120628"/>
+			<unit id="com.atlassian.connector.eclipse.jira.core" version="3.0.6.v20120628"/>
+			<unit id="com.atlassian.connector.eclipse.jira.ui" version="3.0.6.v20120628"/>
+			<unit id="com.atlassian.connector.eclipse.monitor.core" version="3.0.6.v20120628"/>
+			<unit id="com.atlassian.connector.eclipse.monitor.ui" version="3.0.6.v20120628"/>
+			<unit id="com.atlassian.connector.eclipse.subclipse.core" version="3.0.6.v20120628"/>
+			<unit id="com.atlassian.connector.eclipse.subclipse.ui" version="3.0.6.v20120628"/>
+			<unit id="com.atlassian.connector.eclipse.ui" version="3.0.6.v20120628"/>
+			<!-- dep for com.atlassian.connector.eclipse.directclickthrough.ui -->
+			<unit id="com.thoughtworks.xstream" version="1.3.1.v201111240924"/>
+			<unit id="org.xmlpull" version="1.1.3.4_v201201052148"/>
+			<unit id="org.eclipse.ui" version="3.103.0.v20120705-114351"/>
+			<unit id="org.eclipse.core.runtime" version="3.8.0.v20120521-2346"/>
+			<unit id="org.eclipse.core.resources" version="3.8.1.v20120802-154922"/>
+			<unit id="org.eclipse.ui.ide" version="3.8.1.v20120828-165804"/>
+			<unit id="org.eclipse.ui.workbench.texteditor" version="3.8.0.v20120523-1310"/>
+			<unit id="org.eclipse.jface.text" version="3.8.1.v20120828-155502"/>
+			<unit id="org.eclipse.osgi" version="3.8.1.v20120824-123705"/>
+			<unit id="org.eclipse.core.filesystem" version="1.3.200.v20120522-2012"/>
+			<unit id="org.eclipse.ui.forms" version="3.5.200.v20120705-114351"/>
+			<unit id="org.eclipse.ui.editors" version="3.8.0.v20120523-1540"/>
+			<unit id="org.eclipse.team.core" version="3.6.100.v20120524-0627"/>
+			<unit id="org.eclipse.team.ui" version="3.6.200.v20120522-1148"/>
+			<unit id="org.eclipse.jface" version="3.8.101.v20120817-083647"/>
+			<unit id="org.eclipse.compare" version="3.5.300.v20120522-1148"/>
+			<unit id="org.apache.axis" version="1.4.0.v201005080400"/>
+			<unit id="org.apache.commons.io" version="2.0.1.v201105210651"/>
+			<unit id="org.apache.commons.httpclient" version="3.1.0.v201012070820"/>
+			<unit id="org.apache.commons.codec" version="1.3.0.v201101211617"/>
+			<unit id="org.jdom_jaxen" version="1.0.0.20081203-1100"/>
+			<unit id="org.mortbay.jetty.server" version="6.1.23.v201012071420"/>
+			<unit id="org.mortbay.jetty.util" version="6.1.23.v201012071420"/>
+			<unit id="org.apache.jasper" version="7.0.26.v201205030742"/>
+			<unit id="org.apache.catalina" version="7.0.26.v201205021508"/>
+			<unit id="javax.ejb" version="3.1.1.v201204261316"/>
+			<unit id="javax.transaction" version="1.1.1.v201105210645"/>
+			<unit id="org.joda.time" version="1.6.0.v20081202-0100"/>
+			<unit id="javax.xml.rpc" version="1.1.0.v201005080400"/>
+			<unit id="javax.el" version="2.2.0.v201108011116"/>
+
+			<!-- SWTBot -->
+			<unit id="org.eclipse.swtbot.eclipse.feature.group" version="2.0.5.20111003_1754-3676ac8-dev-e36"/>
+			<unit id="org.eclipse.swtbot.eclipse.gef.feature.group" version="2.0.5.20111003_1754-3676ac8-dev-e36"/>
+			<unit id="org.eclipse.swtbot.ide.feature.group" version="2.0.5.20111003_1754-3676ac8-dev-e36"/>
+			<unit id="org.eclipse.swtbot.eclipse.test.junit4.feature.group" version="2.0.5.20111003_1754-3676ac8-dev-e36"/>
+			<unit id="org.eclipse.swtbot.feature.group" version="2.0.5.20111003_1754-3676ac8-dev-e36"/>
+
+			<!-- BIRT -->
+			<unit id="org.eclipse.birt.osgi.runtime.sdk.feature.group" version="4.2.1.v20120820-793187qD_Cz0RBQLXOVGu3BTF-Oc"/>
+			<unit id="org.eclipse.birt.feature.group" version="4.2.1.v20120820-ChBG8RGYgRQlJ7iVBW4z0tnDWYPt"/>
+			<unit id="org.eclipse.birt.integration.wtp.feature.group" version="4.2.1.v20120904-1129-5107w31231A150223A"/>
+			<unit id="org.eclipse.birt.chart.feature.group" version="4.2.1.v20120820-828i7DFQCnvK_6tK4mbB8"/>
+			<unit id="org.eclipse.birt.chart.integration.wtp.feature.group" version="4.2.1.v20120904-1129-5107w31231A150223A"/>
+
+			<!-- GWT/GPE dependencies (include only those which are EPL or other OSS licensed!) -->
+			<unit id="com.google.gdt.eclipse.suite.e42.feature.feature.group" version="3.1.0.v201208080121-rel-r42"/>
+			<unit id="com.google.gwt.eclipse.sdkbundle.e42.feature.feature.group" version="2.4.0.v201208080121-rel-r42"/>
+		</location>
+	</locations>
+	<targetJRE path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+</target>

Added: trunk/build/target-platforms/multiple/pom.xml
===================================================================
--- trunk/build/target-platforms/multiple/pom.xml	                        (rev 0)
+++ trunk/build/target-platforms/multiple/pom.xml	2012-09-13 10:34:05 UTC (rev 43641)
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.jboss.tools</groupId>
+		<artifactId>target-platforms</artifactId> 
+		<version>4.0.0.Alpha2-SNAPSHOT</version>
+	</parent>
+	<groupId>org.jboss.tools.target-platforms</groupId>
+	<artifactId>multiple</artifactId>
+	<name>Multiple (Composite) target platform</name>
+	<packaging>pom</packaging>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.eclipse.tycho.extras</groupId>
+				<artifactId>target-platform-validation-plugin</artifactId>
+				<version>${tychoExtrasVersion}</version>
+				<executions>
+					<execution>
+						<phase>verify</phase>
+						<goals>
+ 							<goal>validate-target-platform</goal> 
+						</goals>
+						<configuration>
+							<targetFiles>
+								<param>multiple.target</param>
+							</targetFiles>
+							<failOnError>true</failOnError>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.codehaus.mojo</groupId>
+				<artifactId>build-helper-maven-plugin</artifactId>
+				<version>1.3</version>
+				<executions>
+					<execution>
+						<id>attach-artifacts</id>
+						<phase>package</phase>
+						<goals>
+							<goal>attach-artifact</goal>
+						</goals>
+						<configuration>
+							<artifacts>
+								<!-- add more artifacts if want more target platforms -->
+								<artifact>
+									<file>multiple.target</file>
+									<type>target</type>
+									<classifier>multiple</classifier>
+								</artifact>
+							</artifacts>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+
+</project>


Property changes on: trunk/build/target-platforms/multiple/pom.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/build/target-platforms/pom.xml
===================================================================
--- trunk/build/target-platforms/pom.xml	                        (rev 0)
+++ trunk/build/target-platforms/pom.xml	2012-09-13 10:34:05 UTC (rev 43641)
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<!-- <parent> <groupId>org.jboss.tools</groupId> <artifactId>parent</artifactId> 
+		<version>0.0.1-SNAPSHOT</version> </parent> -->
+	<groupId>org.jboss.tools</groupId>
+	<artifactId>target-platforms</artifactId>
+	<version>4.0.0.Alpha2-SNAPSHOT</version>
+	<name>JBoss Tools Target Platforms (Parent)</name>
+	<packaging>pom</packaging>
+
+	<properties>
+		<!-- Temporary before release of Tycho 0.16 -->
+		<!-- JBIDE-12003 -->
+		<tychoVersion>0.16.0-SNAPSHOT</tychoVersion>
+		<tychoExtrasVersion>0.16.0-SNAPSHOT</tychoExtrasVersion>
+	</properties>
+	
+	<modules>
+		<module>multiple</module>
+		<!-- Only build multiple by default, other modules depend on context (CI vs local) -->
+	</modules>
+
+	<distributionManagement>
+		<repository>
+			<id>jboss-releases-repository</id>
+			<name>JBoss Releases Repository</name>
+			<uniqueVersion>false</uniqueVersion>
+			<url>https://repository.jboss.org/nexus/content/repositories/releases/</url>
+			<layout>default</layout>
+		</repository>
+		<snapshotRepository>
+			<id>jboss-snapshots-repository</id>
+			<name>JBoss Snapshot Repository</name>
+			<uniqueVersion>false</uniqueVersion>
+			<url>https://repository.jboss.org/nexus/content/repositories/snapshots/</url>
+			<layout>default</layout>
+		</snapshotRepository>
+	</distributionManagement>
+
+	<pluginRepositories>
+		<pluginRepository>
+			<id>tycho-snapshots</id>
+			<url>https://oss.sonatype.org/content/groups/public/</url>
+		</pluginRepository>
+	</pluginRepositories>
+
+</project>


Property changes on: trunk/build/target-platforms/pom.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/build/target-platforms/publish.sh
===================================================================
--- trunk/build/target-platforms/publish.sh	                        (rev 0)
+++ trunk/build/target-platforms/publish.sh	2012-09-13 10:34:05 UTC (rev 43641)
@@ -0,0 +1,85 @@
+#!/bin/bash
+# Hudson creates a repo in ${repoDir}; copy it into other places for access by downstream jobs and users
+
+# defaults for JBoss Tools
+# don't forget to increment these files when moving up a version:
+# build.xml, *.target*, publish.sh, target2p2mirror.xml; also jbds/trunk/releng/org.jboss.ide.eclipse.releng/requirements/jbds-target-platform/build.properties;
+# also all devstudio-6.0_*.updatesite jobs (4) need to be pointed at the new Target Platform URL
+targetZipFile=e421RC2-wtp341M.target
+repoDir=/home/hudson/static_build_env/jbds/tools/sources/REPO_4.0.juno.SR0a
+destinationPath=/home/hudson/static_build_env/jbds/target-platform_4.0.juno.SR0a
+DESTINATION=tools at filemgmt.jboss.org:/downloads_htdocs/tools/updates/target-platform_4.0.juno.SR0a
+include="*"
+exclude="--exclude '.blobstore'" # exclude the .blobstore
+
+while [ "$#" -gt 0 ]; do
+	case $1 in
+		'-targetFile') targetZipFile="$2"; shift 2;; # old flag name (collision with build.xml's ${targetFile}, which points to a .target file)
+		'-targetZipFile') targetZipFile="$2"; shift 2;;
+		'-repoPath') repoDir="$2"; shift 2;; # old flag name (refactored to match build.xml's ${repoDir})
+		'-repoDir') repoDir="$2"; shift 2;;
+		'-destinationPath') destinationPath="$2"; shift 2;;
+		'-DESTINATION') DESTINATION="$2"; shift 2;;
+		'-include') include="$2"; shift 2;;
+		'-exclude') exclude="$2"; shift 2;;
+
+		'-jbt_4.0.juno.SR0a') 
+		# defaults for JBT (trunk)
+		targetZipFile=e421RC2-wtp341M.target
+		repoDir=/home/hudson/static_build_env/jbds/tools/sources/REPO_4.0.juno.SR0a
+		destinationPath=/home/hudson/static_build_env/jbds/target-platform_4.0.juno.SR0a
+		DESTINATION=tools at filemgmt.jboss.org:/downloads_htdocs/tools/updates/target-platform_4.0.juno.SR0a
+		include="*"
+		exclude="--exclude '.blobstore'" # exclude the .blobstore
+		shift 1;;
+
+		'-jbds_4.0.juno.SR0a') 
+		# defaults for JBDS (trunk)
+		targetZipFile=jbds600-e421RC2-wtp341M.target
+		repoDir=/home/hudson/static_build_env/jbds/tools/sources/JBDS-REPO_4.0.juno.SR0a
+		destinationPath=/home/hudson/static_build_env/jbds/jbds-target-platform_4.0.juno.SR0a
+		DESTINATION=/qa/services/http/binaries/RHDS/updates/jbds-target-platform_4.0.juno.SR0a
+		include=".blobstore *" # include the .blobstore
+		exclude="" 
+		shift 1;;		
+	esac
+done
+
+if [[ -d ${repoDir} ]]; then
+	cd ${repoDir}
+
+	if [[ ! -d ${destinationPath}/${targetZipFile} ]]; then 
+		mkdir -p ${destinationPath}/${targetZipFile}
+	fi
+	du -sh ${repoDir} ${destinationPath}/${targetZipFile}
+
+	# copy/update into central place for reuse by local downstream build jobs
+	date; rsync -arzqc --protocol=28 --delete-after --delete-excluded --rsh=ssh ${exclude} ${include} ${destinationPath}/${targetZipFile}/
+
+	du -sh ${repoDir} ${destinationPath}/${targetZipFile}
+
+	# upload to http://download.jboss.org/jbossotools/updates/target-platform_3.3.indigo/latest/ for public use
+	if [[ ${DESTINATION/:/} == ${DESTINATION} ]]; then # local path, no user at server:/path
+		mkdir -p ${DESTINATION}/
+	else
+		DESTPARENT=${DESTINATION%/*}; NEWFOLDER=${DESTINATION##*/}
+		if [[ $(echo "ls" | sftp ${DESTPARENT} 2>&1 | grep ${NEWFOLDER}) == "" ]]; then
+			# DESTHOST=${DESTINATION%:*}; DESTFOLD=${DESTINATION#*:}; echo "mkdir ${DESTFOLD}" | sftp ${DESTHOST}; # alternate approach
+			echo "mkdir ${NEWFOLDER}" | sftp ${DESTPARENT}
+		fi
+	fi
+	# if the following line fails, make sure that ${DESTINATION} is already created on target server
+	date; rsync -arzqc --protocol=28 --delete-after --delete-excluded --rsh=ssh ${exclude} ${include} ${DESTINATION}/latest/
+
+	targetZip=/tmp/${targetZipFile}.zip
+
+	# create zip, then upload to http://download.jboss.org/jbossotools/updates/target-platform_3.3.indigo/${targetZipFile}.zip for public use
+	zip -q -r9 ${targetZip} ${include}
+	du -sh ${targetZip}
+
+	# generate MD5 sum for zip (file contains only the hash, not the hash + filename)
+	for m in $(md5sum ${targetZip}); do if [[ $m != ${targetZip} ]]; then echo $m > ${targetZip}.MD5; fi; done
+
+	date; rsync -arzq --protocol=28 --rsh=ssh ${targetZip} ${targetZip}.MD5 ${DESTINATION}/ 
+	rm -f ${targetZip} ${targetZip}.MD5
+fi

Added: trunk/build/target-platforms/unified/multiple2unified.xsl
===================================================================
--- trunk/build/target-platforms/unified/multiple2unified.xsl	                        (rev 0)
+++ trunk/build/target-platforms/unified/multiple2unified.xsl	2012-09-13 10:34:05 UTC (rev 43641)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema"
+	version="2.0">
+
+	<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
+	<xsl:param name="destinationUrl"/>
+
+	<xsl:template match="target">
+		<target includeMode="feature" name="e42-wtp34-jbds6">
+			<locations>
+				<location includeAllPlatforms="false" includeMode="planner" type="InstallableUnit" includeSource="true">
+					<repository location="{$destinationUrl}"/>
+					<xsl:apply-templates select="//unit" />
+				</location>
+			</locations>
+			<targetJRE path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+		</target>
+	</xsl:template>
+	
+	<xsl:template match="//unit">
+		<xsl:copy-of select="."/>
+	</xsl:template>
+</xsl:stylesheet>


Property changes on: trunk/build/target-platforms/unified/multiple2unified.xsl
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/build/target-platforms/unified/pom.xml
===================================================================
--- trunk/build/target-platforms/unified/pom.xml	                        (rev 0)
+++ trunk/build/target-platforms/unified/pom.xml	2012-09-13 10:34:05 UTC (rev 43641)
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.jboss.tools</groupId>
+		<artifactId>target-platforms</artifactId> 
+		<version>4.0.0.Alpha2-SNAPSHOT</version>
+	</parent>
+	<groupId>org.jboss.tools.target-platforms</groupId>
+	<artifactId>unified</artifactId>
+	<name>Unified (Aggregated) target platform</name>
+	<packaging>pom</packaging>
+
+	<properties>
+		<unified.URL>http://download.jboss.org/jbosstools/updates/target-platform_4.0.juno.SR0/latest/</unified.URL>
+	</properties>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-dependency-plugin</artifactId>
+				<version>2.5.1</version>
+				<executions>
+					<execution>
+						<id>get-multiple-target</id>
+						<phase>generate-resources</phase>
+						<goals>
+							<goal>get</goal>
+						</goals>
+						<configuration>
+							<groupId>${project.groupId}</groupId>
+							<artifactId>multiple</artifactId>
+							<version>${project.version}</version>
+							<packaging>target</packaging>
+							<classifier>multiple</classifier>
+							<destination>${project.build.directory}/multiple.target</destination>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.codehaus.mojo</groupId>
+				<artifactId>xml-maven-plugin</artifactId>
+				<version>1.0</version>
+				<executions>
+					<execution>
+						<id>generate-unified.target</id>
+						<phase>generate-resources</phase> <!-- Should be generate-resources -->
+						<goals>
+							<goal>transform</goal>
+						</goals>
+						<configuration>
+							<transformationSets>
+								<transformationSet>
+									<dir>${project.build.directory}</dir>
+									<includes>
+										<include>multiple.target</include>
+									</includes>
+									<stylesheet>multiple2unified.xsl</stylesheet>
+									<outputDir>${project.build.directory}/outputTarget</outputDir>
+									<outputProperties>
+										<outputPropertie>
+											<name>indent</name>
+											<value>yes</value>
+										</outputPropertie>
+									</outputProperties>
+									<parameters>
+										<parameter>
+											<name>destinationUrl</name>
+											<value>${unified.URL}</value>
+										</parameter>
+									</parameters>
+								</transformationSet>
+							</transformationSets>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.eclipse.tycho.extras</groupId>
+				<artifactId>target-platform-validation-plugin</artifactId>
+				<version>${tychoExtrasVersion}</version>
+				<executions>
+					<execution>
+						<phase>verify</phase>
+						<goals>
+ 							<goal>validate-target-platform</goal> 
+						</goals>
+						<configuration>
+							<targetFiles>
+								<param>${project.build.directory}/outputTarget/multiple.target</param>
+							</targetFiles>
+							<failOnError>true</failOnError>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.codehaus.mojo</groupId>
+				<artifactId>build-helper-maven-plugin</artifactId>
+				<version>1.3</version>
+				<executions>
+					<execution>
+						<id>attach-artifacts</id>
+						<phase>package</phase>
+						<goals>
+							<goal>attach-artifact</goal>
+						</goals>
+						<configuration>
+							<artifacts>
+								<artifact>
+									<file>${project.build.directory}/outputTarget/mutliple.target</file>
+									<type>target</type>
+									<classifier>unified</classifier>
+								</artifact>
+							</artifacts>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+</project>


Property changes on: trunk/build/target-platforms/unified/pom.xml
___________________________________________________________________
Added: svn:mime-type
   + text/plain



More information about the jbosstools-commits mailing list