[jbosstools-commits] JBoss Tools SVN: r22964 - in trunk: build/util and 1 other directory.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Wed Jun 23 13:15:48 EDT 2010


Author: nickboldt
Date: 2010-06-23 13:15:48 -0400 (Wed, 23 Jun 2010)
New Revision: 22964

Added:
   trunk/build/util/component-dependencies-graph.png
   trunk/build/util/genpom.scala
   trunk/build/util/genpom.xml
   trunk/build/util/runstack.sh
   trunk/build/util/runtests.sh
   trunk/build/util/svnignore.sh
Removed:
   trunk/component-dependencies-graph.png
   trunk/genpom.scala
   trunk/genpom.xml
   trunk/runstack.sh
   trunk/runtests.sh
   trunk/svnignore.sh
Log:
moved into build/util/

Copied: trunk/build/util/component-dependencies-graph.png (from rev 22821, trunk/component-dependencies-graph.png)
===================================================================
(Binary files differ)


Property changes on: trunk/build/util/component-dependencies-graph.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Copied: trunk/build/util/genpom.scala (from rev 22821, trunk/genpom.scala)
===================================================================
--- trunk/build/util/genpom.scala	                        (rev 0)
+++ trunk/build/util/genpom.scala	2010-06-23 17:15:48 UTC (rev 22964)
@@ -0,0 +1,281 @@
+import java.io.File
+import scala.io.Source
+import scala.xml.XML
+
+object GenPom {
+
+  case class GVA(groupId : String, artifactId : String, version : String)
+
+  /********** Configuration Start **********/
+  var projectName = "org.jboss.tools"
+  var pathToParentPom = ""
+  var parentPomVersion = "0.0.1-SNAPSHOT"
+  var sourcePomVersion = "0.0.1-SNAPSHOT"
+  /********** Configuration Ends  **********/
+
+  var aggregatorcount = 0
+  var modulecount = 0
+  
+  def main(args: Array[String]) {
+    
+      generateAggregator(new File("."), 
+			 new File(pathToParentPom + "parent-pom.xml"),
+			 GVA(projectName, projectName + ".parent.pom", parentPomVersion),
+			 GVA(projectName, "trunk", sourcePomVersion)
+			 )
+
+    println("Modules: " + modulecount + " Aggregator: " + aggregatorcount)
+  }
+
+  def generateModule(dir : File, parentPom : File, parent : GVA, me : GVA) {
+    modulecount = modulecount + 1
+
+
+	
+    var module =
+    <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+     <modelVersion>4.0.0</modelVersion> 
+      <parent>
+       <relativePath>{parentPom.getPath()}</relativePath> 
+       <groupId>{parent.groupId}</groupId> 
+       <artifactId>{parent.artifactId}</artifactId> 
+       <version>{parent.version}</version> 
+      </parent>
+      <groupId>{me.groupId}</groupId> 
+      <artifactId>{me.artifactId}</artifactId> 
+      <version>{getVersion(dir)}</version> 
+      <packaging>{ if (dir.getParentFile().getAbsolutePath().endsWith("/tests") || dir.getParentFile().getAbsolutePath().endsWith("/tests/.")) 
+	  "eclipse-test-plugin" 
+	else if (dir.getParentFile().getAbsolutePath().endsWith("/features") || dir.getParentFile().getAbsolutePath().endsWith("/features/.")) 
+	  "eclipse-feature"
+	else
+	  "eclipse-plugin"}</packaging>
+	  	{ getTarget(dir) }
+     </project>;
+		
+    val pp = new scala.xml.PrettyPrinter(80,2)
+
+    writePom("Module ", pp.format(module), dir)
+    
+  }
+
+  def getTarget(dir : File) : Object ={
+  	var env = <environment/>;
+	
+	 if (dir.getAbsolutePath().endsWith("gtk.linux.x86")) {
+		env = <environment>
+		<os>linux</os>
+		<ws>gtk</ws>
+		<arch>x86</arch>
+		</environment>;
+	} else if (dir.getAbsolutePath().endsWith("gtk.linux.x86_64")) {
+		env = <environment>
+		<os>linux</os>
+		<ws>gtk</ws>
+		<arch>x86_64</arch>
+		</environment>;
+	} else if (dir.getAbsolutePath().endsWith("carbon.macosx")) {
+		env = <environment>
+		<os>macosx</os>
+		<ws>carbon</ws>
+		<arch>x86</arch>
+		</environment>;
+	} else if (dir.getAbsolutePath().endsWith("cocoa.macosx")) {
+		env = <environment>
+		<os>macosx</os>
+		<ws>cocoa</ws>
+		<arch>x86</arch>
+		</environment>;
+	} else if (dir.getAbsolutePath().endsWith("win32.win32.x86")) {
+		env = <environment>
+		<os>win32</os>
+		<ws>win32</ws>
+		<arch>x86</arch>
+		</environment>;
+	}
+	
+	var target = <build>
+			<plugins>
+			<plugin>
+				<groupId>org.sonatype.tycho</groupId>
+				<artifactId>target-platform-configuration</artifactId>
+				<version>${{tychoVersion}}</version>
+				<configuration>
+					<resolver>p2</resolver>
+					<environments>
+						{ env }
+					</environments>
+				</configuration>
+			</plugin>
+		</plugins>
+		</build>;
+		
+  	if(dir.getAbsolutePath().endsWith("x86_64") 
+  		|| dir.getAbsolutePath().endsWith("x86")
+  		|| dir.getAbsolutePath().endsWith("macosx")) {
+  		return target
+  	}
+	return ""
+  }
+
+  def writePom(n : String, pp : String, dir : File) {
+    val pomxml = new File(dir, "pom.xml")
+
+    val out = new java.io.FileWriter(pomxml)
+    out.write(pp)
+    out.close
+
+  }
+
+  def getVersion(dir : File) : String = {
+    
+    var mf = new File(new File(dir, "META-INF"), "MANIFEST.MF")
+    var featurexml = new File(dir, "feature.xml")
+
+    if(mf.exists()) {
+    val lines = Source.fromFile(mf).getLines
+    for(l <- lines) 
+      if(l.contains("Bundle-Version:")) {
+	return l.substring("Bundle-Version:".length()).trim().replaceAll("\\.qualifier","-SNAPSHOT")
+      }    
+    } else if (featurexml.exists()) {
+      val data = XML.loadFile(featurexml)
+      return (data \ "@version").text.replaceAll("\\.qualifier","-SNAPSHOT")
+    }
+    return dir + " " + featurexml.exists() + " " + mf.exists()
+  }
+
+  def getArtifactId(dir : File) : String = {
+    
+    var mf = new File(new File(dir, "META-INF"), "MANIFEST.MF")
+    var featurexml = new File(dir, "feature.xml")
+
+    if(mf.exists()) {
+    val lines = Source.fromFile(mf).getLines
+    for(l <- lines) 
+      if(l.contains("Bundle-SymbolicName:")) {
+	val x = l.substring("Bundle-SymbolicName:".length()).trim()
+	if(x.indexOf(";")>=0) {
+	   return x.substring(0, x.indexOf(";"))
+	} else  {
+	  return x
+	}
+      }    
+    } else if (featurexml.exists()) {
+      val data = XML.loadFile(featurexml)
+      return (data \ "@id").text
+    }
+    return dir + " " + featurexml.exists() + " " + mf.exists()
+  }
+
+  def dump(dirs : Collection[File], parentPom : File, parent : GVA, me : GVA) {
+    for(f <- dirs) {
+      var aggregate = false  
+      val manifest = new File(new File(f, "META-INF"), "MANIFEST.MF")
+      val plugins = new File(f, "plugins")
+      val tests = new File(f, "tests")
+      val features = new File(f, "features")
+      val featurexml = new File(f, "feature.xml")
+
+      if(manifest.exists() || featurexml.exists()) { 	
+       	  generateModule(f, 
+			 new File("../" +  parentPom.getPath()),
+			 parent, 
+			 GVA(me.groupId, getArtifactId(f), me.version))       
+      }      
+      
+      if(plugins.exists()) {	
+    	  aggregate = true
+    	  generateAggregator(plugins, 
+			   new File("../../" + parentPom.getPath()),
+			   parent,
+			   GVA(me.groupId, f.getName() + ".plugins" , "0.0.1-SNAPSHOT")
+			 )
+      }
+      
+      if(tests.exists()) {
+        aggregate = true
+        generateAggregator(tests, 
+			   new File("../../" + parentPom.getPath()),
+			   parent,
+			   GVA(me.groupId, f.getName() + ".tests", "0.0.1-SNAPSHOT")
+			 )
+      }
+
+      if(features.exists()) {
+    	  aggregate = true
+    	  generateAggregator(features, 
+			   new File("../../" + parentPom.getPath()),
+			   parent,
+			   GVA(me.groupId, f.getName()+".features" , "0.0.1-SNAPSHOT")
+			 )
+      }
+
+      if(aggregate) {
+    	  println("Generate Agg for " + f)
+    	  generateAggregator(f, new File("../" + parentPom.getPath()), parent, GVA(me.groupId, f.getName()+".all", "0.0.1-SNAPSHOT"))
+      }
+    }
+  }
+
+  def isModule(n : File) : Boolean = {
+    def v = (new File(n, "pom.xml").exists() && !n.getName().equals("docs")) ||
+      (!n.getName().contains(".sdk.") && (new File(new File(n, "META-INF"), "MANIFEST.MF").exists()) || (new File(n, "feature.xml").exists())) || (hasDirectory(n, "features") || hasDirectory(n, "tests")	|| hasDirectory(n, "plugins"))
+    return v
+  }
+  
+  def hasDirectory(parent : File, name : String) : Boolean = {
+   
+    val dir = new File(parent, name)
+    return dir.isDirectory() && dir.exists()
+  }
+  
+  def generateAggregator(dir : File, 
+			 parentPom : File, 
+			 parent : GVA,
+			 me : GVA
+		       ) {
+    aggregatorcount = aggregatorcount + 1
+
+    val	 dirs =  dir.listFiles().filter(
+      (n) => n.isDirectory() && !n.getName().startsWith(".") && !n.getName().contains(".sdk.")
+    )
+    
+    val realModules = dirs.filter(
+    		(n) => isModule(n))
+    
+    var modules =
+      <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    <modelVersion>4.0.0</modelVersion> 
+    <parent>
+      <relativePath>{parentPom.getPath()}</relativePath> 
+      <groupId>{parent.groupId}</groupId> 
+      <artifactId>{parent.artifactId}</artifactId> 
+      <version>{parent.version}</version> 
+    </parent>
+      <groupId>{me.groupId}</groupId> 
+      <artifactId>{me.artifactId}</artifactId> 
+      <version>{me.version}</version> 
+    <packaging>pom</packaging> 
+      <modules>
+    {       
+      for(f <- realModules) yield {	    
+	<module>{ f.getName() }</module>			
+      }	
+    }
+    </modules>
+    </project>;
+    
+    val pp = new scala.xml.PrettyPrinter(80,2)
+    writePom("Aggregator ", pp.format(modules),dir)
+    //println(pp.format(modules))
+
+	dump(dirs, parentPom, parent, me)    
+
+
+  }
+  
+}
+
+
+GenPom.main(args)

Copied: trunk/build/util/genpom.xml (from rev 22821, trunk/genpom.xml)
===================================================================
--- trunk/build/util/genpom.xml	                        (rev 0)
+++ trunk/build/util/genpom.xml	2010-06-23 17:15:48 UTC (rev 22964)
@@ -0,0 +1,1142 @@
+<project default="run" basedir="." name="jbosstools genpom.xml">
+	<!-- Configuration Start -->
+	<property name="projectName" value="org.jboss.tools" />
+	<property name="pathToParentPom" value="" />
+	<property name="pomVersion" value="0.0.1-SNAPSHOT" />
+	<property name="dirsToExclude"
+	          value="**/*.sdk.*, **/doc*/**, **/releng/**, **/build/**, **/download.jboss.org, **/sampleprojects/**, **/util/**, **/test, **/builders/**, **/contrib, **/releng/**, ."
+	/>
+	<property name="testClassFilesToInclude"
+	          value="**/AllTests.java, **/*AllTests*.java, **/*AllBotTests*.java, **/*TestSuite*.java"
+	/>
+
+	<property name="overwrite.existing.pom.xml" value="false" />
+	<!-- Configuration Ends -->
+
+	<!-- ****************************** Usage Instructions ****************************** -->
+	<target name="help" description="Usage Instructions">
+		<echo>
+To run this script in Eclipse:
+    Run As > Ant Build
+
+To run this script via commandline:
+   cd /path/to/checked/out/source/tree; \
+   ant -f genpom.xml -q 
+
+or, to build a specific module IFF no poms already exist:
+    ant -f genpom.xml -q -DCOMPONENT=xulrunner
+
+or, to build a specific module and overwrite existing pom.xml files:
+    ant -f genpom.xml -q -DCOMPONENT=common -Doverwrite.existing.pom.xml=true
+</echo>
+	</target>
+
+	<target name="get.ant-contrib" unless="ant-contrib.jar.exists">
+		<property name="ANTCONTRIB_MIRROR" value="http://downloads.sourceforge.net/ant-contrib/" />
+		<get usetimestamp="true"
+		     dest="${COMMON_TOOLS}/ant-contrib-1.0b2-bin.zip"
+		     src="${ANTCONTRIB_MIRROR}/ant-contrib-1.0b2-bin.zip"
+		/>
+		<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>
+
+	<!-- override for local build -->
+	<condition property="isInHudson" value="true">
+		<or>
+			<contains string="${user.dir}" substring="hudson" />
+			<contains string="${user.name}" substring="hudson" />
+			<contains string="${user.home}" substring="hudson" />
+		</or>
+	</condition>
+	<target name="local" unless="isInHudson">
+		<property name="WORKINGDIR" value="${basedir}" />
+		<property name="COMMON_TOOLS" value="${java.io.tmpdir}" />
+	</target>
+
+	<target name="init" depends="local">
+		<!-- https://jira.jboss.org/jira/browse/JBQA-3313 Use static, shared space outside workspace, instead of working directly in the workspace -->
+		<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}" />
+		<echo level="info">WORKINGDIR = ${WORKINGDIR}</echo>
+
+		<condition property="COMMON_TOOLS"
+		           value="/home/hudson/static_build_env/jbds/tools"
+		           else="${WORKINGDIR}/../tools"
+		>
+			<available file="/home/hudson/static_build_env/jbds" type="dir" />
+		</condition>
+		<mkdir dir="${COMMON_TOOLS}" />
+		<echo level="info">COMMON_TOOLS = ${COMMON_TOOLS}</echo>
+
+		<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>
+
+		<var name="pathToParentPomInput" value="${pathToParentPom}"/>
+		
+		<!-- = = = = = = = = = = = = = = = = =
+	      macrodef: write out a pom.xml which aggregates subdirs   
+	     = = = = = = = = = = = = = = = = = -->
+		<macrodef name="writeAggregatePom">
+			<attribute name="dir" default="." />
+			<attribute name="parentpom" />
+			<attribute name="artifactId" default="" />
+			<attribute name="artifactVersion" default="" />
+			<sequential>
+				<if>
+					<equals arg1="@{artifactId}" arg2="" />
+					<then>
+						<var name="artifactId" unset="true" />
+						<antcallback target="getArtifactId" return="artifactId">
+							<property name="dir" value="@{dir}" />
+						</antcallback>
+					</then>
+					<else>
+						<var name="artifactId" value="@{artifactId}" />
+					</else>
+				</if>
+				<if>
+					<equals arg1="@{artifactVersion}" arg2="" />
+					<then>
+						<var name="artifactVersion" unset="true" />
+						<antcallback target="getArtifactVersion" return="artifactVersion">
+							<property name="dir" value="@{dir}" />
+						</antcallback>
+					</then>
+					<else>
+						<var name="artifactVersion" value="@{artifactVersion}" />
+					</else>
+				</if>
+				<var name="artifactType" value="pom" />
+				<propertyregex property="activeDir"
+				               input="@{dir}"
+				               defaultvalue="@{dir}"
+				               regexp="${WORKINGDIR}/"
+				               replace=""
+				               casesensitive="true"
+				               override="true"
+				/>
+				<echo level="verbose">   Agg dir: ${activeDir}, artifactType: ${artifactType}, artifactId: ${artifactId}, artifactVersion: ${artifactVersion}, parentpom: @{parentpom}</echo>
+				<if>
+					<and>
+						<available file="@{dir}/pom.xml" type="file" />
+						<not>
+							<istrue value="${overwrite.existing.pom.xml}" />
+						</not>
+					</and>
+					<then>
+						<var name="show.pom.exists.warning" value="${show.pom.exists.warning}1" />
+					</then>
+				</if>
+				<if>
+					<or>
+						<not>
+							<available file="@{dir}/pom.xml" type="file" />
+						</not>
+						<istrue value="${overwrite.existing.pom.xml}" />
+					</or>
+					<then>
+						<echo file="@{dir}/pom.xml">&lt;project
+xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	&lt;modelVersion>4.0.0&lt;/modelVersion>
+	&lt;parent>
+	  &lt;relativePath>@{parentpom}&lt;/relativePath>
+	  &lt;groupId>${projectName}&lt;/groupId>
+	  &lt;artifactId>${projectName}.parent.pom&lt;/artifactId>
+	  &lt;version>${pomVersion}&lt;/version>
+	&lt;/parent>
+	&lt;groupId>${projectName}&lt;/groupId>
+	&lt;artifactId>${artifactId}&lt;/artifactId>
+	&lt;version>${artifactVersion}&lt;/version>
+	&lt;packaging>${artifactType}&lt;/packaging>
+	&lt;modules>
+</echo>
+						<var name="artifactId" unset="true" />
+						<var name="artifactVersion" unset="true" />
+						<for param="subdir" delimiter=", 
+	">
+							<path>
+								<dirset dir="@{dir}" excludes="${dirsToExclude}" includes="*" />
+							</path>
+							<sequential>
+								<basename property="subdirSuffix" file="@{subdir}" />
+								<echo file="@{dir}/pom.xml" append="true">		&lt;module>${subdirSuffix}&lt;/module>
+</echo>
+								<var name="subdirSuffix" unset="true" />
+							</sequential>
+						</for>
+						<echo file="@{dir}/pom.xml" append="true">	&lt;/modules>
+&lt;/project>
+	</echo>
+					</then>
+				</if>
+			</sequential>
+		</macrodef>
+
+		<!-- = = = = = = = = = = = = = = = = =
+	      macrodef: write out a pom.xml for a plugin or feature or test   
+	     = = = = = = = = = = = = = = = = = -->
+		<macrodef name="writeModulePom">
+			<attribute name="dir" default="." />
+			<attribute name="parentpom" />
+			<sequential>
+				<var name="artifactType" unset="true" />
+				<antcallback target="getArtifactType" return="artifactType">
+					<property name="dir" value="@{dir}" />
+				</antcallback>
+				<if>
+					<equals arg1="${artifactType}" arg2="eclipse-update-site" />
+					<then>
+						<var name="artifactId" unset="true" />
+						<basename property="artifactId" file="@{dir}" />
+						<var name="artifactVersion" value="${pomVersion}" />
+					</then>
+					<else>
+						<var name="artifactId" unset="true" />
+						<antcallback target="getArtifactId" return="artifactId">
+							<property name="dir" value="@{dir}" />
+						</antcallback>
+						<var name="artifactVersion" unset="true" />
+						<antcallback target="getArtifactVersion" return="artifactVersion">
+							<property name="dir" value="@{dir}" />
+						</antcallback>
+						<var name="artifactOs" unset="true" />
+						<var name="artifactWs" unset="true" />
+						<var name="artifactArch" unset="true" />
+						<antcallback target="getArtifactOsWsArch" return="artifactOs, artifactWs, artifactArch">
+							<property name="artifactId" value="${artifactId}" />
+						</antcallback>
+					</else>
+				</if>
+				<propertyregex property="activeDir"
+				               input="@{dir}"
+				               defaultvalue="@{dir}"
+				               regexp="${WORKINGDIR}/"
+				               replace=""
+				               casesensitive="true"
+				               override="true"
+				/>
+				<echo level="verbose">   Mod dir: ${activeDir}, artifactType: ${artifactType}, artifactId: ${artifactId}, artifactVersion: ${artifactVersion}, parentpom: @{parentpom}</echo>
+				<if>
+					<and>
+						<available file="@{dir}/pom.xml" type="file" />
+						<not>
+							<istrue value="${overwrite.existing.pom.xml}" />
+						</not>
+					</and>
+					<then>
+						<var name="show.pom.exists.warning" value="${show.pom.exists.warning}1" />
+					</then>
+				</if>
+				<if>
+					<or>
+						<not>
+							<available file="@{dir}/pom.xml" type="file" />
+						</not>
+						<istrue value="${overwrite.existing.pom.xml}" />
+					</or>
+					<then>
+						<echo file="@{dir}/pom.xml">&lt;project
+xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	&lt;modelVersion>4.0.0&lt;/modelVersion> 
+	&lt;parent>
+	  &lt;relativePath>@{parentpom}&lt;/relativePath>
+	  &lt;groupId>${projectName}&lt;/groupId>
+	  &lt;artifactId>${projectName}.parent.pom&lt;/artifactId>
+	  &lt;version>${pomVersion}&lt;/version>
+	&lt;/parent>
+	&lt;groupId>${projectName}&lt;/groupId>
+	&lt;artifactId>${artifactId}&lt;/artifactId> 
+	&lt;version>${artifactVersion}&lt;/version>
+	&lt;packaging>${artifactType}&lt;/packaging>
+</echo>
+						<if>
+							<or>
+								<and>
+									<isset property="artifactOs" />
+									<not>
+										<equals arg1="" arg2="${artifactOs}" />
+									</not>
+								</and>
+								<and>
+									<isset property="artifactWs" />
+									<not>
+										<equals arg1="" arg2="${artifactWs}" />
+									</not>
+								</and>
+								<and>
+									<isset property="artifactArch" />
+									<not>
+										<equals arg1="" arg2="${artifactArch}" />
+									</not>
+								</and>
+							</or>
+							<then>
+								<echo file="@{dir}/pom.xml" append="true">	&lt;build>
+	   &lt;plugins>
+	     &lt;plugin>
+  	       &lt;groupId>org.sonatype.tycho&lt;/groupId>
+  	       &lt;artifactId>target-platform-configuration&lt;/artifactId>
+  	       &lt;version>${tychoVersion}&lt;/version>
+  	       &lt;configuration>
+    	     &lt;resolver>p2&lt;/resolver>
+    	     &lt;environments>
+      	     &lt;environment>
+        	     &lt;os>${artifactOs}&lt;/os>
+        	     &lt;ws>${artifactWs}&lt;/ws>
+        	     &lt;arch>${artifactArch}&lt;/arch>
+      	     &lt;/environment>
+    	     &lt;/environments>
+  	       &lt;/configuration>
+	     &lt;/plugin>
+	   &lt;/plugins>
+	&lt;/build>
+</echo>
+							</then>
+						</if>
+						<echo file="@{dir}/pom.xml" append="true">&lt;/project>
+</echo>
+					</then>
+				</if>
+				<var name="artifactId" unset="true" />
+				<var name="artifactVersion" unset="true" />
+				<var name="artifactType" unset="true" />
+				<var name="artifactOs" unset="true" />
+				<var name="artifactWs" unset="true" />
+				<var name="artifactArch" unset="true" />
+				<var name="modulecountstring" value="${modulecountstring}1" />
+			</sequential>
+		</macrodef>
+
+		<!-- = = = = = = = = = = = = = = = = =
+	      macrodef: generateAggregator          
+	     = = = = = = = = = = = = = = = = = -->
+		<macrodef name="generateAggregator">
+			<attribute name="dir" default="${WORKINGDIR}" />
+			<attribute name="parentPom" default="${pathToParentPom}parent-pom.xml" />
+			<attribute name="artifactId" default="" />
+			<attribute name="artifactVersion" default="" />
+			<sequential>
+				<writeAggregatePom dir="@{dir}"
+				                   parentpom="@{parentpom}"
+				                   artifactId="@{artifactId}"
+				                   artifactVersion="@{artifactVersion}"
+				/>
+
+				<dump dir="@{dir}"
+				      parentpom="@{parentpom}"
+				      artifactId="@{artifactId}"
+				      artifactVersion="@{artifactVersion}"
+				/>
+				<var name="aggregatorcountstring" value="${aggregatorcountstring}1" />
+
+			</sequential>
+		</macrodef>
+
+
+		<!-- = = = = = = = = = = = = = = = = =
+          macrodef: dump          
+         = = = = = = = = = = = = = = = = = -->
+		<macrodef name="dump">
+			<attribute name="dir" />
+			<attribute name="parentpom" />
+			<attribute name="artifactId" default="" />
+			<attribute name="artifactVersion" default="" />
+			<sequential>
+				<if>
+					<equals arg1="${COMPONENT}" arg2="trunk" />
+					<then>
+						<path id="trunkDir">
+							<dirset dir="@{dir}" excludes="${dirsToExclude}" includes="*" />
+						</path>
+					</then>
+					<elseif>
+						<equals arg1="${COMPONENT}" arg2="site" />
+						<then>
+							<dirname property="parent.dir" file="@{dir}" />
+							<path id="trunkDir">
+								<dirset dir="${parent.dir}" includes="site" />
+							</path>
+							<var name="parent.dir" unset="true" />
+							<var name="pathToParentPom" value="${pathToParentPom}site/" />
+						</then>
+					</elseif>
+					<else>
+						<path id="trunkDir">
+							<dirset dir="@{dir}/${pathToParentPom}"
+							        excludes="${dirsToExclude}"
+							        includes="${COMPONENT}/*/*, ${COMPONENT}/plugins, ${COMPONENT}/features, ${COMPONENT}/tests, ${COMPONENT}/site"
+							/>
+						</path>
+					</else>
+				</if>
+				<for param="subdir" delimiter=", 
+	">
+					<path refid="trunkDir" />
+					<sequential>
+						<echo level="debug">@{subdir}</echo>
+						<var name="aggregate" value="false" />
+						<if>
+							<or>
+								<!-- a plugin, feature, or update site dir -->
+								<available file="@{subdir}/META-INF/MANIFEST.MF" type="file" />
+								<available file="@{subdir}/feature.xml" type="file" />
+							</or>
+							<then>
+								<!-- valid place to create a pom -->
+								<writeModulePom dir="@{subdir}" parentpom="../${pathToParentPom}@{parentpom}" />
+							</then>
+							<elseif>
+								<available file="@{subdir}/site.xml" type="file" />
+								<then>
+									<!-- valid place to create a pom -->
+									<echo level="debug">writeModulePom dir="@{subdir}" parentpom="${pathToParentPom}@{parentpom}"</echo>
+									<writeModulePom dir="@{subdir}" parentpom="${pathToParentPom}@{parentpom}" />
+								</then>
+							</elseif>
+							<else>
+								<for list="plugins tests features site" param="type" delimiter=" ">
+									<sequential>
+										<basename property="artifactIdAgg" file="@{subdir}" />
+										<if>
+											<available file="@{subdir}/@{type}" type="dir" />
+											<then>
+												<var name="aggregate" value="true" />
+												<generateAggregator dir="@{subdir}/@{type}"
+												                    parentpom="../../${pathToParentPom}@{parentpom}"
+												                    artifactId="${artifactIdAgg}.@{type}"
+												                    artifactVersion="@{artifactVersion}"
+												/>
+											</then>
+										</if>
+										<var name="artifactIdAgg" unset="true" />
+									</sequential>
+								</for>
+
+								<if>
+									<istrue value="${aggregate}" />
+									<else>
+										<basename property="artifactIdAgg" file="@{subdir}" />
+										<if>
+											<equals arg1="${COMPONENT}" arg2="trunk" />
+											<then>
+												<var name="artifactId" value="${artifactIdAgg}.all" />
+											</then>
+											<else>
+												<var name="artifactId" value="${COMPONENT}.${artifactIdAgg}" />
+											</else>
+										</if>
+										<writeAggregatePom dir="@{subdir}"
+										                   parentpom="../${pathToParentPom}parent-pom.xml"
+										                   artifactId="${artifactId}"
+										                   artifactVersion="@{artifactVersion}"
+										/>
+
+										<echo level="debug">subdir = @{subdir}</echo>
+										<echo level="verbose">Aggregated: ${artifactIdAgg}</echo>
+
+										<var name="artifactIdAgg" unset="true" />
+										<var name="artifactId" unset="true" />
+									</else>
+								</if>
+							</else>
+						</if>
+					</sequential>
+				</for>
+			</sequential>
+		</macrodef>
+
+	</target>
+
+	<target name="run" depends="init">
+		<var name="show.pom.exists.warning" value="" />
+
+		<if>
+			<and>
+				<isset property="COMPONENT" />
+				<not>
+					<equals arg1="${COMPONENT}" arg2="" />
+				</not>
+			</and>
+			<then>
+				<var name="COMPONENTS" unset="true" />
+				<var name="COMPONENTS" value="${COMPONENT}" />
+			</then>
+			<elseif>
+				<not>
+					<isset property="COMPONENTS" />
+				</not>
+				<then>
+					<var name="COMPONENTS" value="trunk" />
+				</then>
+			</elseif>
+		</if>
+		<for param="COMPONENT" list="${COMPONENTS}" delimiter=",; 
+	">
+			<sequential>
+				<var name="COMPONENT" value="@{COMPONENT}" />
+				<echo level="info">COMPONENT = '${COMPONENT}'</echo>
+				<if>
+					<not>
+						<available file="${WORKINGDIR}/${pathToParentPomInput}parent-pom.xml" type="file" />
+					</not>
+					<then>
+						<fail>Error: no parent-pom.xml found in ${WORKINGDIR}/${pathToParentPomInput}</fail>
+					</then>
+				</if>
+
+				<if>
+					<not>
+						<equals arg1="${COMPONENT}" arg2="trunk" />
+					</not>
+					<then>
+						<var name="pathToParentPom" unset="true" />
+						<var name="pathToParentPom" value="../" />
+					</then>
+				</if>
+				<echo level="verbose">COMPONENT = '${COMPONENT}', pathToParentPom = ${pathToParentPom}</echo>
+
+				<!-- if set, compare values in tags file to values found in manifests and report discrepancies -->
+				<!--<property name="tagsFile"
+		     value="/home/nboldt/eclipse/workspace-jboss/devstudio-trunk/releng/org.jboss.ide.eclipse.releng/builders/product/versionTags/jbosstools/3.1.0.GA.tags"
+		/>-->
+
+				<if>
+					<and>
+						<isset property="tagsFile" />
+						<available file="${tagsFile}" type="file" />
+					</and>
+					<then>
+						<property file="${tagsFile}" prefix="tagsFile" />
+					</then>
+				</if>
+
+				<!-- counter variables -->
+				<var name="aggregatorcountstring" value="" />
+				<var name="modulecountstring" value="" />
+
+				<if>
+					<equals arg1="${COMPONENT}" arg2="trunk" />
+					<then>
+						<!-- call generateAggregator for overall -->
+						<generateAggregator dir="${WORKINGDIR}"
+						                    parentpom="${pathToParentPom}parent-pom.xml"
+						                    artifactId="${COMPONENT}"
+						                    artifactVersion="${pomVersion}"
+						/>
+					</then>
+					<else>
+						<!-- call generateAggregator for component -->
+						<generateAggregator dir="${WORKINGDIR}/${COMPONENT}"
+						                    parentpom="${pathToParentPom}parent-pom.xml"
+						                    artifactId="${COMPONENT}"
+						                    artifactVersion="${pomVersion}"
+						/>
+					</else>
+				</if>
+				<!-- summary -->
+				<length string="${modulecountstring}" property="modulecount" />
+				<length string="${aggregatorcountstring}" property="aggregatorcount" />
+				<echo level="info">${WORKINGDIR}/${COMPONENT} :: Modules: ${modulecount},  Aggregations: ${aggregatorcount}</echo>
+				<if>
+					<not>
+						<equals arg1="${show.pom.exists.warning}" arg2="" />
+					</not>
+					<then>
+						<length property="show.pom.exists.warning.count" string="${show.pom.exists.warning}" />
+						<echo level="warning">${show.pom.exists.warning.count} '${COMPONENT}' pom.xml file(s) already exist. To overwrite, use -Doverwrite.existing.pom.xml=true</echo>
+					</then>
+				</if>
+				<var name="show.pom.exists.warning.count" unset="true" />
+				<var name="show.pom.exists.warning" value="" />
+				<var name="modulecount" unset="true" />
+				<var name="aggregatorcount" unset="true" />
+			</sequential>
+		</for>
+	</target>
+
+	<target name="getArtifactType">
+		<property name="dir" value="." />
+		<if>
+			<matches string="${dir}" pattern=".+/features/.+" />
+			<then>
+				<var name="artifactType" value="eclipse-feature" />
+			</then>
+			<elseif>
+				<or>
+					<matches string="${dir}" pattern=".+/site" />
+					<matches string="${dir}" pattern=".+site" />
+				</or>
+				<then>
+					<var name="artifactType" value="eclipse-update-site" />
+				</then>
+			</elseif>
+			<elseif>
+				<and>
+					<not>
+						<matches string="${dir}" pattern=".+/plugins/.+" />
+					</not>
+					<matches string="${dir}" pattern=".+/tests/.+" />
+				</and>
+				<then>
+					<var name="artifactType" value="eclipse-plugin" />
+					<for param="testClassFile" delimiter=", ">
+						<path>
+							<fileset dir="${dir}" includes="${testClassFilesToInclude}" />
+						</path>
+						<sequential>
+							<var name="artifactType" value="eclipse-test-plugin" />
+						</sequential>
+					</for>
+				</then>
+			</elseif>
+			<else>
+				<var name="artifactType" value="eclipse-plugin" />
+			</else>
+		</if>
+	</target>
+
+	<target name="getArtifactVersion">
+		<property name="dir" value="." />
+		<!-- echo>${dir}</echo -->
+		<if>
+			<available file="${dir}/META-INF/MANIFEST.MF" type="file" />
+			<then>
+				<!-- get Bundle-SymbolicName: -->
+				<loadfile srcfile="${dir}/META-INF/MANIFEST.MF" property="artifactVersion">
+					<filterchain>
+						<linecontains>
+							<contains value="Bundle-Version:" />
+						</linecontains>
+					</filterchain>
+				</loadfile>
+				<propertyregex property="artifactVersion"
+				               input="${artifactVersion}"
+				               defaultvalue="${artifactVersion}"
+				               regexp="Bundle-Version:( +)([^\n\r]+)[\n\r]+"
+				               replace="\2"
+				               casesensitive="true"
+				               override="true"
+				/>
+
+				<!-- compare tags file to current manifests -->
+				<antcallback target="checkArtifactVersionAgainstTagFile" return="artifactVersion.from.tag" />
+				<if>
+					<and>
+						<isset property="artifactVersion.from.tag" />
+						<not>
+							<equals arg1="${artifactVersion.from.tag}" arg2="${artifactVersion}" />
+						</not>
+					</and>
+					<then>
+						<loadfile property="manifest.file" srcfile="${dir}/META-INF/MANIFEST.MF">
+							<filterchain>
+								<tokenfilter>
+									<replaceregex pattern="Bundle-Version:( +)${artifactVersion}"
+									              replace="Bundle-Version: ${artifactVersion.from.tag}"
+									              flags=""
+									/>
+								</tokenfilter>
+							</filterchain>
+						</loadfile>
+						<echo message="${manifest.file}" file="${dir}/META-INF/MANIFEST.MF" />
+						<var name="manifest.file" unset="true" />
+					</then>
+					<else>
+						<var name="artifactVersion.from.tag" value="${artifactVersion}" />
+					</else>
+				</if>
+
+				<!-- now, switch to Maven style (s/.qualifier/-SNAPSHOT/) -->
+				<propertyregex property="artifactVersion"
+				               input="${artifactVersion.from.tag}"
+				               defaultvalue="${artifactVersion.from.tag}"
+				               regexp="(.+).qualifier"
+				               replace="\1-SNAPSHOT"
+				               casesensitive="true"
+				               override="true"
+				/>
+				<var name="artifactVersion.from.tag" unset="true" />
+			</then>
+			<elseif>
+				<available file="${dir}/feature.xml" type="file" />
+				<then>
+					<!-- get <feature version=""> -->
+					<xmlproperty file="${dir}/feature.xml" collapseAttributes="true" />
+					<var name="artifactVersion" value="${feature.version}" />
+
+					<!-- compare tags file to current manifests -->
+					<antcallback target="checkArtifactVersionAgainstTagFile" return="artifactVersion.from.tag" />
+					<if>
+						<and>
+							<isset property="artifactVersion.from.tag" />
+							<not>
+								<equals arg1="${artifactVersion.from.tag}" arg2="${artifactVersion}" />
+							</not>
+						</and>
+						<then>
+							<loadfile property="manifest.file" srcfile="${dir}/feature.xml">
+								<filterchain>
+									<tokenfilter>
+										<replaceregex pattern="version=&quot;${artifactVersion}&quot;"
+										              replace="version=&quot;${artifactVersion.from.tag}&quot;"
+										              flags=""
+										/>
+									</tokenfilter>
+								</filterchain>
+							</loadfile>
+							<echo message="${manifest.file}" file="${dir}/feature.xml" />
+							<var name="manifest.file" unset="true" />
+						</then>
+						<else>
+							<var name="artifactVersion.from.tag" value="${artifactVersion}" />
+						</else>
+					</if>
+					<var name="feature.version" unset="true" />
+
+					<!-- now, switch to Maven style (s/.qualifier/-SNAPSHOT/) -->
+					<propertyregex property="artifactVersion"
+					               input="${artifactVersion.from.tag}"
+					               defaultvalue="${artifactVersion.from.tag}"
+					               regexp="(.+).qualifier"
+					               replace="\1-SNAPSHOT"
+					               casesensitive="true"
+					               override="true"
+					/>
+					<var name="artifactVersion.from.tag" unset="true" />
+				</then>
+			</elseif>
+			<else>
+				<echo level="verbose">Warning! artifactVersion not found for ${dir}!</echo>
+				<var name="artifactVersion" value="0.0.0" />
+			</else>
+		</if>
+	</target>
+
+	<target name="checkArtifactVersionAgainstTagFile">
+		<dirname property="this.dir" file="${dir}" />
+		<dirname property="parent.dir.path" file="${this.dir}" />
+		<basename property="parent.dir" file="${parent.dir.path}" />
+		<var name="this.dir" unset="true" />
+		<var name="parent.dir.path" unset="true" />
+		<if>
+			<isset property="tagsFile.${parent.dir}" />
+			<then>
+				<propertycopy from="tagsFile.${parent.dir}" property="artifactVersion.from.tag" />
+				<propertyregex property="artifactVersion.from.tag"
+				               input="${artifactVersion.from.tag}"
+				               defaultvalue="${artifactVersion.from.tag}"
+				               regexp="(.+).GA"
+				               replace="\1.qualifier"
+				               casesensitive="true"
+				               override="true"
+				/>
+			</then>
+		</if>
+		<if>
+			<and>
+				<isset property="tagsFile.${parent.dir}" />
+				<not>
+					<equals arg1="${artifactVersion}" arg2="${artifactVersion.from.tag}" />
+				</not>
+			</and>
+			<then>
+				<basename file="${dir}" property="this.dir" />
+				<echo level="info">For ${this.dir}, got ${artifactVersion}; should be ${artifactVersion.from.tag}</echo>
+			</then>
+			<else>
+				<var name="artifactVersion.from.tag" value="${artifactVersion}" />
+			</else>
+		</if>
+		<var name="parent.dir" unset="true" />
+	</target>
+
+	<!-- supports only the following platforms:
+			org.mozilla.xulrunner.carbon.macosx
+			org.mozilla.xulrunner.cocoa.macosx
+			org.mozilla.xulrunner.gtk.linux.x86
+			org.mozilla.xulrunner.gtk.linux.x86_64
+			org.mozilla.xulrunner.win32.win32.x86
+	-->
+	<target name="getArtifactOsWsArch">
+		<property name="artifactId" value="org.mozilla.xulrunner.cocoa.macosx" />
+		<propertyregex property="artifactOs"
+		               input="${artifactId}"
+		               defaultvalue=""
+		               regexp="(macosx|linux|win32)"
+		               select="\1"
+		               casesensitive="true"
+		               override="true"
+		/>
+		<propertyregex property="artifactWs"
+		               input="${artifactId}"
+		               defaultvalue=""
+		               regexp="(carbon|cocoa|win32|gtk)"
+		               select="\1"
+		               casesensitive="true"
+		               override="true"
+		/>
+		<propertyregex property="artifactArch"
+		               input="${artifactId}"
+		               defaultvalue=""
+		               regexp="\.(x86|x86_64)$"
+		               select="\1"
+		               casesensitive="true"
+		               override="true"
+		/>
+
+	</target>
+
+	<target name="getArtifactId">
+		<property name="dir" value="." />
+		<!-- echo>${dir}</echo -->
+		<if>
+			<available file="${dir}/META-INF/MANIFEST.MF" type="file" />
+			<then>
+				<!-- get Bundle-SymbolicName: -->
+				<loadfile srcfile="${dir}/META-INF/MANIFEST.MF" property="artifactId">
+					<filterchain>
+						<linecontains>
+							<contains value="Bundle-SymbolicName:" />
+						</linecontains>
+					</filterchain>
+				</loadfile>
+				<propertyregex property="artifactId"
+				               input="${artifactId}"
+				               defaultvalue="${artifactId}"
+				               regexp="Bundle-SymbolicName:([\t ]+)([^\n\r\t ]+);(.+)[\n\r\t ]+"
+				               replace="\2"
+				               casesensitive="true"
+				               override="true"
+				/>
+				<propertyregex property="artifactId"
+				               input="${artifactId}"
+				               defaultvalue="${artifactId}"
+				               regexp="Bundle-SymbolicName:([\t ]+)([^\n\r\t ]+)[\n\r\t ]+"
+				               replace="\2"
+				               casesensitive="true"
+				               override="true"
+				/>
+			</then>
+			<elseif>
+				<available file="${dir}/feature.xml" type="file" />
+				<then>
+					<!-- get <feature id=""> -->
+					<xmlproperty file="${dir}/feature.xml" collapseAttributes="true" />
+					<var name="artifactId" value="${feature.id}" />
+					<var name="feature.id" unset="true" />
+				</then>
+			</elseif>
+			<else>
+				<echo level="info">Warning! artifactId not found for ${dir}!</echo>
+				<basename property="artifactId" file="${dir}" />
+			</else>
+		</if>
+	</target>
+
+	<!-- ************************************ TESTS ************************************ -->
+
+	<target name="test.expected.values">
+		<property name="ant.enable.asserts" value="true" />
+
+		<!-- expected values for artifactVersion tests -->
+		<property name="artifactVersion.esb/features/org.jboss.tools.esb.feature" value="1.3.0-SNAPSHOT" />
+		<property name="artifactVersion.as/tests/org.jboss.ide.eclipse.as.archives.integration.test"
+		          value="2.1.0-SNAPSHOT"
+		/>
+		<property name="artifactVersion.esb/plugins/org.jboss.tools.esb.core" value="1.3.0-SNAPSHOT" />
+		<property name="artifactVersion.bpel/plugins/org.eclipse.bpel.apache.ode.deploy.ui" value="0.5.0-SNAPSHOT" />
+		<property name="artifactVersion.bpel/features/org.jboss.tools.bpel.sdk.feature" value="1.0.0-SNAPSHOT" />
+		<property name="artifactVersion.bpel/plugins/org.eclipse.bpel.xpath10" value="0.5.0-SNAPSHOT" />
+		<property name="artifactVersion.vpe/plugins/org.jboss.tools.vpe.ui.palette" value="3.1.0-SNAPSHOT" />
+		<property name="artifactVersion.tests/features/org.jboss.tools.test.feature" value="3.1.0-SNAPSHOT" />
+		<property name="artifactVersion.portlet/features/org.jboss.tools.portlet.test.feature" value="1.1.0-SNAPSHOT" />
+		<property name="artifactVersion.jst/features/org.jboss.tools.jst.feature" value="3.1.0-SNAPSHOT" />
+		<property name="artifactVersion.jst/features/org.jboss.tools.jst.web.tiles.feature" value="3.1.0-SNAPSHOT" />
+		<property name="artifactVersion.drools/plugins/org.jboss.tools.flow.ruleflow" value="1.0.0" />
+
+		<!-- expected values for artifactId tests -->
+		<property name="artifactId.esb/features/org.jboss.tools.esb.feature" value="org.jboss.tools.esb.feature" />
+		<property name="artifactId.as/tests/org.jboss.ide.eclipse.as.archives.integration.test"
+		          value="org.jboss.ide.eclipse.as.archives.integration.test"
+		/>
+		<property name="artifactId.esb/plugins/org.jboss.tools.esb.core" value="org.jboss.tools.esb.core" />
+		<property name="artifactId.bpel/plugins/org.eclipse.bpel.apache.ode.deploy.ui"
+		          value="org.eclipse.bpel.apache.ode.deploy.ui"
+		/>
+		<property name="artifactId.bpel/features/org.jboss.tools.bpel.sdk.feature"
+		          value="org.jboss.tools.bpel.sdk.feature"
+		/>
+		<property name="artifactId.bpel/plugins/org.eclipse.bpel.xpath10" value="org.eclipse.bpel.xpath10" />
+		<property name="artifactId.vpe/plugins/org.jboss.tools.vpe.ui.palette" value="org.jboss.tools.vpe.ui.palette" />
+		<property name="artifactId.tests/features/org.jboss.tools.test.feature" value="org.jboss.tools.test.feature" />
+		<property name="artifactId.portlet/features/org.jboss.tools.portlet.test.feature"
+		          value="org.jboss.tools.portlet.test.feature"
+		/>
+		<property name="artifactId.jst/features/org.jboss.tools.jst.feature" value="org.jboss.tools.jst.feature" />
+		<property name="artifactId.jst/features/org.jboss.tools.jst.web.tiles.feature"
+		          value="org.jboss.tools.jst.web.tiles.feature"
+		/>
+		<property name="artifactId.drools/plugins/org.jboss.tools.flow.ruleflow"
+		          value="org.jboss.tools.flow.ruleflow"
+		/>
+
+		<!-- expected values for artifactType tests -->
+		<property name="artifactType.esb/features/org.jboss.tools.esb.feature" value="eclipse-feature" />
+		<property name="artifactType.as/tests/org.jboss.ide.eclipse.as.archives.integration.test"
+		          value="eclipse-test-plugin"
+		/>
+		<property name="artifactType.flow/tests/org.jboss.tools.flow.common.test" value="eclipse-plugin" />
+		<property name="artifactType.jbpm/tests/org.jboss.tools.flow.jpdl4.test" value="eclipse-plugin" />
+		<property name="artifactType.esb/plugins/org.jboss.tools.esb.core" value="eclipse-plugin" />
+		<property name="artifactType.bpel/plugins/org.eclipse.bpel.apache.ode.deploy.ui" value="eclipse-plugin" />
+		<property name="artifactType.bpel/features/org.jboss.tools.bpel.sdk.feature" value="eclipse-feature" />
+		<property name="artifactType.bpel/plugins/org.eclipse.bpel.xpath10" value="eclipse-plugin" />
+		<property name="artifactType.vpe/plugins/org.jboss.tools.vpe.ui.palette" value="eclipse-plugin" />
+		<property name="artifactType.tests/features/org.jboss.tools.test.feature" value="eclipse-feature" />
+		<property name="artifactType.portlet/features/org.jboss.tools.portlet.test.feature" value="eclipse-feature" />
+		<property name="artifactType.jst/features/org.jboss.tools.jst.feature" value="eclipse-feature" />
+		<property name="artifactType.jst/features/org.jboss.tools.jst.web.tiles.feature" value="eclipse-feature" />
+		<property name="artifactType.drools/plugins/org.jboss.tools.flow.ruleflow" value="eclipse-plugin" />
+
+		<!-- expected values for artifactOsWsArch tests -->
+		<property name="artifactOsWsArch.org.mozilla.xpcom.os" value="" />
+		<property name="artifactOsWsArch.org.mozilla.xpcom.ws" value="" />
+		<property name="artifactOsWsArch.org.mozilla.xpcom.arch" value="" />
+
+		<property name="artifactOsWsArch.org.mozilla.xulrunner.carbon.macosx.os" value="macosx" />
+		<property name="artifactOsWsArch.org.mozilla.xulrunner.carbon.macosx.ws" value="carbon" />
+		<property name="artifactOsWsArch.org.mozilla.xulrunner.carbon.macosx.arch" value="" />
+
+		<property name="artifactOsWsArch.org.mozilla.xulrunner.cocoa.macosx.os" value="macosx" />
+		<property name="artifactOsWsArch.org.mozilla.xulrunner.cocoa.macosx.ws" value="cocoa" />
+		<property name="artifactOsWsArch.org.mozilla.xulrunner.cocoa.macosx.arch" value="" />
+
+		<property name="artifactOsWsArch.org.mozilla.xulrunner.gtk.linux.x86.os" value="linux" />
+		<property name="artifactOsWsArch.org.mozilla.xulrunner.gtk.linux.x86.ws" value="gtk" />
+		<property name="artifactOsWsArch.org.mozilla.xulrunner.gtk.linux.x86.arch" value="x86" />
+
+		<property name="artifactOsWsArch.org.mozilla.xulrunner.gtk.linux.x86_64.os" value="linux" />
+		<property name="artifactOsWsArch.org.mozilla.xulrunner.gtk.linux.x86_64.ws" value="gtk" />
+		<property name="artifactOsWsArch.org.mozilla.xulrunner.gtk.linux.x86_64.arch" value="x86_64" />
+
+		<property name="artifactOsWsArch.org.mozilla.xulrunner.win32.win32.x86.os" value="win32" />
+		<property name="artifactOsWsArch.org.mozilla.xulrunner.win32.win32.x86.ws" value="win32" />
+		<property name="artifactOsWsArch.org.mozilla.xulrunner.win32.win32.x86.arch" value="x86" />
+	</target>
+
+	<target name="test.all" depends="init, test.expected.values">
+
+		<property name="dirs"
+		          value="
+		${WORKINGDIR}/esb/features/org.jboss.tools.esb.feature
+		${WORKINGDIR}/as/tests/org.jboss.ide.eclipse.as.archives.integration.test
+		${WORKINGDIR}/esb/plugins/org.jboss.tools.esb.core
+		${WORKINGDIR}/bpel/plugins/org.eclipse.bpel.apache.ode.deploy.ui
+		${WORKINGDIR}/bpel/features/org.jboss.tools.bpel.sdk.feature	
+		${WORKINGDIR}/bpel/plugins/org.eclipse.bpel.xpath10
+		${WORKINGDIR}/vpe/plugins/org.jboss.tools.vpe.ui.palette
+		${WORKINGDIR}/tests/features/org.jboss.tools.test.feature
+		${WORKINGDIR}/portlet/features/org.jboss.tools.portlet.test.feature
+		${WORKINGDIR}/jst/features/org.jboss.tools.jst.feature
+		${WORKINGDIR}/jst/features/org.jboss.tools.jst.web.tiles.feature
+		${WORKINGDIR}/drools/plugins/org.jboss.tools.flow.ruleflow
+		"
+		/>
+		<antcall target="test.getArtifactVersion" />
+		<antcall target="test.getArtifactId" />
+		<antcall target="test.getArtifactType" />
+		<antcall target="test.getArtifactOsWsArch" />
+	</target>
+
+	<target name="test.getArtifactVersion" depends="init, test.expected.values">
+		<property name="dirs"
+		          value="
+		${WORKINGDIR}/esb/features/org.jboss.tools.esb.feature
+		${WORKINGDIR}/as/tests/org.jboss.ide.eclipse.as.archives.integration.test
+		${WORKINGDIR}/esb/plugins/org.jboss.tools.esb.core
+		${WORKINGDIR}/bpel/plugins/org.eclipse.bpel.apache.ode.deploy.ui
+		${WORKINGDIR}/tests/features/org.jboss.tools.test.feature
+		${WORKINGDIR}/portlet/features/org.jboss.tools.portlet.test.feature
+		${WORKINGDIR}/jst/features/org.jboss.tools.jst.feature
+		${WORKINGDIR}/jst/features/org.jboss.tools.jst.web.tiles.feature
+		"
+		/>
+		<for param="dir" list="${dirs}" delimiter=", 
+			">
+			<sequential>
+				<antcallback target="getArtifactVersion" return="artifactVersion">
+					<property name="dir" value="@{dir}" />
+				</antcallback>
+				<propertyregex property="activeDir"
+				               input="@{dir}"
+				               defaultvalue="@{dir}"
+				               regexp="${WORKINGDIR}/"
+				               replace=""
+				               casesensitive="true"
+				               override="true"
+				/>
+				<propertycopy name="expected.value" from="artifactVersion.${activeDir}" />
+				<assert failonerror="false"
+				        message="For ${activeDir}, artifactVersion = ${artifactVersion}; expected ${expected.value}"
+				>
+					<bool>
+						<equals arg1="${expected.value}" arg2="${artifactVersion}" />
+					</bool>
+				</assert>
+				<var name="expected.value" unset="true" />
+				<var name="artifactVersion" unset="true" />
+			</sequential>
+		</for>
+	</target>
+
+	<target name="test.getArtifactId" depends="init, test.expected.values">
+		<property name="dirs"
+		          value="
+		${WORKINGDIR}/esb/features/org.jboss.tools.esb.feature
+		${WORKINGDIR}/as/tests/org.jboss.ide.eclipse.as.archives.integration.test
+		${WORKINGDIR}/esb/plugins/org.jboss.tools.esb.core
+		"
+		/>
+		<for param="dir" list="${dirs}" delimiter=", 
+			">
+			<sequential>
+				<antcallback target="getArtifactId" return="artifactId">
+					<property name="dir" value="@{dir}" />
+				</antcallback>
+				<propertyregex property="activeDir"
+				               input="@{dir}"
+				               defaultvalue="@{dir}"
+				               regexp="${WORKINGDIR}/"
+				               replace=""
+				               casesensitive="true"
+				               override="true"
+				/>
+				<propertycopy name="expected.value" from="artifactId.${activeDir}" />
+				<assert failonerror="false"
+				        message="For ${activeDir}, artifactId = ${artifactId}; expected ${expected.value}"
+				>
+					<bool>
+						<equals arg1="${expected.value}" arg2="${artifactId}" />
+					</bool>
+				</assert>
+				<var name="expected.value" unset="true" />
+				<var name="artifactId" unset="true" />
+			</sequential>
+		</for>
+	</target>
+
+	<target name="test.getArtifactOsWsArch" depends="init, test.expected.values">
+		<property name="artifactIds"
+		          value="
+			org.mozilla.xpcom
+			org.mozilla.xulrunner.carbon.macosx
+			org.mozilla.xulrunner.cocoa.macosx
+			org.mozilla.xulrunner.gtk.linux.x86
+			org.mozilla.xulrunner.gtk.linux.x86_64
+			org.mozilla.xulrunner.win32.win32.x86
+		"
+		/>
+		<for param="artifactId" list="${artifactIds}" delimiter=", 
+			">
+			<sequential>
+				<echo level="debug">artifactId = @{artifactId}</echo>
+				<antcallback target="getArtifactOsWsArch" return="artifactOs, artifactWs, artifactArch">
+					<property name="artifactId" value="@{artifactId}" />
+				</antcallback>
+				<propertycopy name="expected.value.os" from="artifactOsWsArch.@{artifactId}.os" />
+				<propertycopy name="expected.value.ws" from="artifactOsWsArch.@{artifactId}.ws" />
+				<propertycopy name="expected.value.arch" from="artifactOsWsArch.@{artifactId}.arch" />
+				<assert failonerror="false"
+				        message="For @{artifactId}, artifactOs = ${artifactOs}; expected ${expected.value.os}"
+				>
+					<bool>
+						<equals arg1="${expected.value.os}" arg2="${artifactOs}" />
+					</bool>
+				</assert>
+				<assert failonerror="false"
+				        message="For @{artifactId}, artifactWs = ${artifactWs}; expected ${expected.value.ws}"
+				>
+					<bool>
+						<equals arg1="${expected.value.ws}" arg2="${artifactWs}" />
+					</bool>
+				</assert>
+				<assert failonerror="false"
+				        message="For @{artifactId}, artifactArch = ${artifactArch}; expected ${expected.value.arch}"
+				>
+					<bool>
+						<equals arg1="${expected.value.arch}" arg2="${artifactArch}" />
+					</bool>
+				</assert>
+				<var name="expected.value.os" unset="true" />
+				<var name="expected.value.ws" unset="true" />
+				<var name="expected.value.arch" unset="true" />
+			</sequential>
+		</for>
+
+	</target>
+
+	<target name="test.getArtifactType" depends="init, test.expected.values">
+		<property name="dirs"
+		          value="
+		${WORKINGDIR}/esb/features/org.jboss.tools.esb.feature
+		${WORKINGDIR}/as/tests/org.jboss.ide.eclipse.as.archives.integration.test
+		${WORKINGDIR}/esb/plugins/org.jboss.tools.esb.core
+		${WORKINGDIR}/esb/plugins/org.jboss.tools.esb.core
+		${WORKINGDIR}/bpel/plugins/org.eclipse.bpel.apache.ode.deploy.ui
+		${WORKINGDIR}/bpel/features/org.jboss.tools.bpel.sdk.feature
+		${WORKINGDIR}/bpel/plugins/org.eclipse.bpel.xpath10
+		${WORKINGDIR}/vpe/plugins/org.jboss.tools.vpe.ui.palette
+		${WORKINGDIR}/tests/features/org.jboss.tools.test.feature
+		${WORKINGDIR}/portlet/features/org.jboss.tools.portlet.test.feature
+		${WORKINGDIR}/jst/features/org.jboss.tools.jst.feature
+		${WORKINGDIR}/jst/features/org.jboss.tools.jst.web.tiles.feature
+		${WORKINGDIR}/flow/tests/org.jboss.tools.flow.common.test
+		${WORKINGDIR}/jbpm/tests/org.jboss.tools.flow.jpdl4.test
+		"
+		/>
+		<for param="dir" list="${dirs}" delimiter=", 
+			">
+			<sequential>
+				<antcallback target="getArtifactType" return="artifactType">
+					<property name="dir" value="@{dir}" />
+				</antcallback>
+				<propertyregex property="activeDir"
+				               input="@{dir}"
+				               defaultvalue="@{dir}"
+				               regexp="${WORKINGDIR}/"
+				               replace=""
+				               casesensitive="true"
+				               override="true"
+				/>
+				<propertycopy name="expected.value" from="artifactType.${activeDir}" />
+				<assert failonerror="false"
+				        message="For ${activeDir}, artifactType = ${artifactType}; expected ${expected.value}"
+				>
+					<bool>
+						<equals arg1="${expected.value}" arg2="${artifactType}" />
+					</bool>
+				</assert>
+				<var name="expected.value" unset="true" />
+				<var name="artifactType" unset="true" />
+			</sequential>
+		</for>
+	</target>
+
+</project>

Copied: trunk/build/util/runstack.sh (from rev 22821, trunk/runstack.sh)
===================================================================
--- trunk/build/util/runstack.sh	                        (rev 0)
+++ trunk/build/util/runstack.sh	2010-06-23 17:15:48 UTC (rev 22964)
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+#root of svn tree
+workingdir=~/workspace36/jbosstools-modular_build
+
+#use commandline args as list of components to build
+if [[ $# -lt 1 ]]; then
+	echo "Usage: $0 component1 component2 ..."
+	echo "Eg. $0 tests common jmx archives as"
+	echo "Eg. $0 jst jsf vpe struts seam -Dmaven.test.skip"
+	exit 1
+fi
+
+flags=""
+components=""
+while [ "$#" -gt 0 ]; do
+        case $1 in
+                '-'*) flags="$flags $1"; shift 1;;
+                *) components="$components $1"; shift 1;;
+        esac
+done
+
+# run builds w/o running tests
+for d in $components; do 
+	# build features, plugins, and tests, but do not RUN tests
+	#cd $workingdir; ./runtests.sh ${d}/ clean install -Dmaven.test.skip
+
+	# build features, plugins, and tests, then run ALL tests (don't stop after first failed test)
+	cd $workingdir; ./runtests.sh ${d}/ clean install --fail-at-end $flags
+done
+
+# collect compilation results and failures
+for d in $components; do 
+	cd $workingdir; echo "==== $d ===="
+	egrep -v "org\.|com\." $d/buildlog.latest.txt | egrep "SUCCESS"
+	egrep "FAILURE|SKIPPED" $d/buildlog.latest.txt
+	egrep -A1 "Cannot complete the request|depends on|satisfy dependency|Missing requirement|requires '.+'" $d/buildlog.latest.txt
+	echo ""
+done
+


Property changes on: trunk/build/util/runstack.sh
___________________________________________________________________
Name: svn:executable
   + *

Copied: trunk/build/util/runtests.sh (from rev 22821, trunk/runtests.sh)
===================================================================
--- trunk/build/util/runtests.sh	                        (rev 0)
+++ trunk/build/util/runtests.sh	2010-06-23 17:15:48 UTC (rev 22964)
@@ -0,0 +1,89 @@
+#!/bin/bash
+
+# set corect path to mvn on your machine:
+mvn3=/opt/maven3/bin/mvn
+
+if [[ $# -lt 1 ]]; then
+	# some useful flags:
+	# -pl   - list of projects to build
+	# -o    - offline mode (don't search remote repos)
+	# -Dmaven.test.skip - compile but do not run tests
+        # --fail-at-end     - fail build after ALL tests have run, not at first failure
+	echo "Usage: $0 workingdir flags targets"
+	echo "Eg: $0 as/ -Dmaven.test.skip clean install"
+	echo "Eg: $0 bpel/tests/ -o --fail-at-end install"
+	exit 1;
+fi
+
+#echo "[runtests] $0 started on: `date +%H\:%M\:%S`";
+
+# environment variables
+PATH=.:/bin:/usr/bin:/usr/bin/X11:/usr/local/bin:/usr/X11R6/bin:`pwd`/../linux;export PATH
+
+#export USERNAME=`whoami`
+#echo "[runtests] Run as $USERNAME";
+#echo "[runtests] With PATH = $PATH";
+
+# fix for org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
+# fix for Failed to invoke suite():org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
+export CVS_RSH=ssh
+#ulimit -c unlimited; # set corefile size to unlimited; not allowed on build.eclipse
+
+#echo "[runtests] Set JAVA_HIGH_ZIPFDS=500 & LANG=C";
+#export JAVA_HIGH_ZIPFDS=500
+#export LANG=C
+
+usedPorts=""; maxPort=40
+for port in $(ps aux | egrep '[Xvnc|Xvfb]\ :' | egrep " :[0-9]+" | sed "s/\(\^\|.\+\)\(Xvfb\|Xvnc\) :\([0-9]\+\)\(.\+\|$\)/\3/g" | sort); do
+        if [[ $(echo $port | egrep "^:[0-9]+$") ]]; then
+                usedPorts=$usedPorts" "${port:1};
+                thisPort=${port:1}; (( thisPort -= 0 ));
+                if [[ $maxPort -lt $thisPort ]]; then maxPort=$thisPort; fi
+                #echo "[$usedPorts], $thisPort, $maxPort"
+        fi
+done
+(( xport = maxPort + 1 ));
+#echo "Existing DISPLAY ports include: $usedPorts."
+#echo "Use DISPLAY port :$xport"
+
+xCmd=""
+xvncExists=$(which Xvnc); xvncExists=${xvncExists##*no Xvnc *}
+if [ $xvncExists ]; then 
+	xCmd="Xvnc :${xport} -geometry 1024x768 -depth 24 -ac"
+else
+	xvfbExists=$(which Xvfb); xvfbExists=${xvfbExists##*no Xvfb *}
+		if [ $xvfbExists ]; then
+  			xCmd="Xvfb :${xport} -screen 0 1024x768x24 -ac"
+	else
+		echo "[runtests] WARNING! This script requires Xvfb or Xvnc. "
+		echo "[runtests] Without some way to run tests in a different display port, UI tests will run in front of you and you may accidentally interact with them."
+	fi
+fi
+
+if [[ $xCmd ]]; then 
+	#echo "[runtests] Using X server: '${xCmd}'"
+	${xCmd} &
+	export DISPLAY=localhost:${xport}.0
+	xhost +
+else
+	echo "[runtests] Warning! UI tests will run in the current UI display port (usually :0). Please avoid accidentally interacting with them."
+fi	
+
+
+# run tests
+echo "[runtests] [`date +%H\:%M\:%S`] Launching Tycho..."
+dir=$1; shift;
+
+cd $dir; $mvn3 2>&1 $* | tee buildlog.latest.txt
+
+echo "[runtests] [`date +%H\:%M\:%S`] Test run completed. "
+
+# xwd -silent -display :${xport} -root -out /tmp/snap.xwd; # save a snapshot
+
+############################# END RUN TESTS #############################
+
+# drop X server process threads used by tests
+if [[ -r /tmp/.X${xport}-lock ]]; then kill `cat /tmp/.X${xport}-lock`; fi
+if [[ -f /tmp/.X${xport}-lock ]]; then rm -fr /tmp/.X${xport}-lock; fi
+
+#echo "[runtests] ${0##*/} done: `date +%H\:%M\:%S`"


Property changes on: trunk/build/util/runtests.sh
___________________________________________________________________
Name: svn:executable
   + *

Copied: trunk/build/util/svnignore.sh (from rev 22821, trunk/svnignore.sh)
===================================================================
--- trunk/build/util/svnignore.sh	                        (rev 0)
+++ trunk/build/util/svnignore.sh	2010-06-23 17:15:48 UTC (rev 22964)
@@ -0,0 +1,35 @@
+#!/bin/bash
+tmpfile=/tmp/svn.ignore.txt
+echo "target
+buildlog.latest.txt
+bin
+build
+*.class
+" > $tmpfile
+
+dir="."; if [[ $1 ]]; then dir=$1; fi
+
+for p in com org net; do
+	for f in $(find $dir -mindepth 2 -type d -name "${p}.*" | sort); do 
+		pushd $f 2>&1 >/dev/null
+		echo $f
+		svn up --accept 'theirs-full'
+		svn propset svn:ignore --file $tmpfile .
+		popd 2>&1 >/dev/null
+		echo ""
+	done
+done
+rm -fr $tmpfile
+svn diff $dir
+
+echo ""
+echo "==================================================================="
+echo ""
+echo "Pending changes:"
+svn stat $dir
+
+echo ""
+echo "To commit changes, type:
+  cd $dir; svn ci -m \"svn:ignore\""
+echo ""
+


Property changes on: trunk/build/util/svnignore.sh
___________________________________________________________________
Name: svn:executable
   + *

Deleted: trunk/component-dependencies-graph.png
===================================================================
(Binary files differ)

Deleted: trunk/genpom.scala
===================================================================
--- trunk/genpom.scala	2010-06-23 17:14:05 UTC (rev 22963)
+++ trunk/genpom.scala	2010-06-23 17:15:48 UTC (rev 22964)
@@ -1,281 +0,0 @@
-import java.io.File
-import scala.io.Source
-import scala.xml.XML
-
-object GenPom {
-
-  case class GVA(groupId : String, artifactId : String, version : String)
-
-  /********** Configuration Start **********/
-  var projectName = "org.jboss.tools"
-  var pathToParentPom = ""
-  var parentPomVersion = "0.0.1-SNAPSHOT"
-  var sourcePomVersion = "0.0.1-SNAPSHOT"
-  /********** Configuration Ends  **********/
-
-  var aggregatorcount = 0
-  var modulecount = 0
-  
-  def main(args: Array[String]) {
-    
-      generateAggregator(new File("."), 
-			 new File(pathToParentPom + "parent-pom.xml"),
-			 GVA(projectName, projectName + ".parent.pom", parentPomVersion),
-			 GVA(projectName, "trunk", sourcePomVersion)
-			 )
-
-    println("Modules: " + modulecount + " Aggregator: " + aggregatorcount)
-  }
-
-  def generateModule(dir : File, parentPom : File, parent : GVA, me : GVA) {
-    modulecount = modulecount + 1
-
-
-	
-    var module =
-    <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-     <modelVersion>4.0.0</modelVersion> 
-      <parent>
-       <relativePath>{parentPom.getPath()}</relativePath> 
-       <groupId>{parent.groupId}</groupId> 
-       <artifactId>{parent.artifactId}</artifactId> 
-       <version>{parent.version}</version> 
-      </parent>
-      <groupId>{me.groupId}</groupId> 
-      <artifactId>{me.artifactId}</artifactId> 
-      <version>{getVersion(dir)}</version> 
-      <packaging>{ if (dir.getParentFile().getAbsolutePath().endsWith("/tests") || dir.getParentFile().getAbsolutePath().endsWith("/tests/.")) 
-	  "eclipse-test-plugin" 
-	else if (dir.getParentFile().getAbsolutePath().endsWith("/features") || dir.getParentFile().getAbsolutePath().endsWith("/features/.")) 
-	  "eclipse-feature"
-	else
-	  "eclipse-plugin"}</packaging>
-	  	{ getTarget(dir) }
-     </project>;
-		
-    val pp = new scala.xml.PrettyPrinter(80,2)
-
-    writePom("Module ", pp.format(module), dir)
-    
-  }
-
-  def getTarget(dir : File) : Object ={
-  	var env = <environment/>;
-	
-	 if (dir.getAbsolutePath().endsWith("gtk.linux.x86")) {
-		env = <environment>
-		<os>linux</os>
-		<ws>gtk</ws>
-		<arch>x86</arch>
-		</environment>;
-	} else if (dir.getAbsolutePath().endsWith("gtk.linux.x86_64")) {
-		env = <environment>
-		<os>linux</os>
-		<ws>gtk</ws>
-		<arch>x86_64</arch>
-		</environment>;
-	} else if (dir.getAbsolutePath().endsWith("carbon.macosx")) {
-		env = <environment>
-		<os>macosx</os>
-		<ws>carbon</ws>
-		<arch>x86</arch>
-		</environment>;
-	} else if (dir.getAbsolutePath().endsWith("cocoa.macosx")) {
-		env = <environment>
-		<os>macosx</os>
-		<ws>cocoa</ws>
-		<arch>x86</arch>
-		</environment>;
-	} else if (dir.getAbsolutePath().endsWith("win32.win32.x86")) {
-		env = <environment>
-		<os>win32</os>
-		<ws>win32</ws>
-		<arch>x86</arch>
-		</environment>;
-	}
-	
-	var target = <build>
-			<plugins>
-			<plugin>
-				<groupId>org.sonatype.tycho</groupId>
-				<artifactId>target-platform-configuration</artifactId>
-				<version>${{tychoVersion}}</version>
-				<configuration>
-					<resolver>p2</resolver>
-					<environments>
-						{ env }
-					</environments>
-				</configuration>
-			</plugin>
-		</plugins>
-		</build>;
-		
-  	if(dir.getAbsolutePath().endsWith("x86_64") 
-  		|| dir.getAbsolutePath().endsWith("x86")
-  		|| dir.getAbsolutePath().endsWith("macosx")) {
-  		return target
-  	}
-	return ""
-  }
-
-  def writePom(n : String, pp : String, dir : File) {
-    val pomxml = new File(dir, "pom.xml")
-
-    val out = new java.io.FileWriter(pomxml)
-    out.write(pp)
-    out.close
-
-  }
-
-  def getVersion(dir : File) : String = {
-    
-    var mf = new File(new File(dir, "META-INF"), "MANIFEST.MF")
-    var featurexml = new File(dir, "feature.xml")
-
-    if(mf.exists()) {
-    val lines = Source.fromFile(mf).getLines
-    for(l <- lines) 
-      if(l.contains("Bundle-Version:")) {
-	return l.substring("Bundle-Version:".length()).trim().replaceAll("\\.qualifier","-SNAPSHOT")
-      }    
-    } else if (featurexml.exists()) {
-      val data = XML.loadFile(featurexml)
-      return (data \ "@version").text.replaceAll("\\.qualifier","-SNAPSHOT")
-    }
-    return dir + " " + featurexml.exists() + " " + mf.exists()
-  }
-
-  def getArtifactId(dir : File) : String = {
-    
-    var mf = new File(new File(dir, "META-INF"), "MANIFEST.MF")
-    var featurexml = new File(dir, "feature.xml")
-
-    if(mf.exists()) {
-    val lines = Source.fromFile(mf).getLines
-    for(l <- lines) 
-      if(l.contains("Bundle-SymbolicName:")) {
-	val x = l.substring("Bundle-SymbolicName:".length()).trim()
-	if(x.indexOf(";")>=0) {
-	   return x.substring(0, x.indexOf(";"))
-	} else  {
-	  return x
-	}
-      }    
-    } else if (featurexml.exists()) {
-      val data = XML.loadFile(featurexml)
-      return (data \ "@id").text
-    }
-    return dir + " " + featurexml.exists() + " " + mf.exists()
-  }
-
-  def dump(dirs : Collection[File], parentPom : File, parent : GVA, me : GVA) {
-    for(f <- dirs) {
-      var aggregate = false  
-      val manifest = new File(new File(f, "META-INF"), "MANIFEST.MF")
-      val plugins = new File(f, "plugins")
-      val tests = new File(f, "tests")
-      val features = new File(f, "features")
-      val featurexml = new File(f, "feature.xml")
-
-      if(manifest.exists() || featurexml.exists()) { 	
-       	  generateModule(f, 
-			 new File("../" +  parentPom.getPath()),
-			 parent, 
-			 GVA(me.groupId, getArtifactId(f), me.version))       
-      }      
-      
-      if(plugins.exists()) {	
-    	  aggregate = true
-    	  generateAggregator(plugins, 
-			   new File("../../" + parentPom.getPath()),
-			   parent,
-			   GVA(me.groupId, f.getName() + ".plugins" , "0.0.1-SNAPSHOT")
-			 )
-      }
-      
-      if(tests.exists()) {
-        aggregate = true
-        generateAggregator(tests, 
-			   new File("../../" + parentPom.getPath()),
-			   parent,
-			   GVA(me.groupId, f.getName() + ".tests", "0.0.1-SNAPSHOT")
-			 )
-      }
-
-      if(features.exists()) {
-    	  aggregate = true
-    	  generateAggregator(features, 
-			   new File("../../" + parentPom.getPath()),
-			   parent,
-			   GVA(me.groupId, f.getName()+".features" , "0.0.1-SNAPSHOT")
-			 )
-      }
-
-      if(aggregate) {
-    	  println("Generate Agg for " + f)
-    	  generateAggregator(f, new File("../" + parentPom.getPath()), parent, GVA(me.groupId, f.getName()+".all", "0.0.1-SNAPSHOT"))
-      }
-    }
-  }
-
-  def isModule(n : File) : Boolean = {
-    def v = (new File(n, "pom.xml").exists() && !n.getName().equals("docs")) ||
-      (!n.getName().contains(".sdk.") && (new File(new File(n, "META-INF"), "MANIFEST.MF").exists()) || (new File(n, "feature.xml").exists())) || (hasDirectory(n, "features") || hasDirectory(n, "tests")	|| hasDirectory(n, "plugins"))
-    return v
-  }
-  
-  def hasDirectory(parent : File, name : String) : Boolean = {
-   
-    val dir = new File(parent, name)
-    return dir.isDirectory() && dir.exists()
-  }
-  
-  def generateAggregator(dir : File, 
-			 parentPom : File, 
-			 parent : GVA,
-			 me : GVA
-		       ) {
-    aggregatorcount = aggregatorcount + 1
-
-    val	 dirs =  dir.listFiles().filter(
-      (n) => n.isDirectory() && !n.getName().startsWith(".") && !n.getName().contains(".sdk.")
-    )
-    
-    val realModules = dirs.filter(
-    		(n) => isModule(n))
-    
-    var modules =
-      <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-    <modelVersion>4.0.0</modelVersion> 
-    <parent>
-      <relativePath>{parentPom.getPath()}</relativePath> 
-      <groupId>{parent.groupId}</groupId> 
-      <artifactId>{parent.artifactId}</artifactId> 
-      <version>{parent.version}</version> 
-    </parent>
-      <groupId>{me.groupId}</groupId> 
-      <artifactId>{me.artifactId}</artifactId> 
-      <version>{me.version}</version> 
-    <packaging>pom</packaging> 
-      <modules>
-    {       
-      for(f <- realModules) yield {	    
-	<module>{ f.getName() }</module>			
-      }	
-    }
-    </modules>
-    </project>;
-    
-    val pp = new scala.xml.PrettyPrinter(80,2)
-    writePom("Aggregator ", pp.format(modules),dir)
-    //println(pp.format(modules))
-
-	dump(dirs, parentPom, parent, me)    
-
-
-  }
-  
-}
-
-
-GenPom.main(args)

Deleted: trunk/genpom.xml
===================================================================
--- trunk/genpom.xml	2010-06-23 17:14:05 UTC (rev 22963)
+++ trunk/genpom.xml	2010-06-23 17:15:48 UTC (rev 22964)
@@ -1,1142 +0,0 @@
-<project default="run" basedir="." name="jbosstools genpom.xml">
-	<!-- Configuration Start -->
-	<property name="projectName" value="org.jboss.tools" />
-	<property name="pathToParentPom" value="" />
-	<property name="pomVersion" value="0.0.1-SNAPSHOT" />
-	<property name="dirsToExclude"
-	          value="**/*.sdk.*, **/doc*/**, **/releng/**, **/build/**, **/download.jboss.org, **/sampleprojects/**, **/util/**, **/test, **/builders/**, **/contrib, **/releng/**, ."
-	/>
-	<property name="testClassFilesToInclude"
-	          value="**/AllTests.java, **/*AllTests*.java, **/*AllBotTests*.java, **/*TestSuite*.java"
-	/>
-
-	<property name="overwrite.existing.pom.xml" value="false" />
-	<!-- Configuration Ends -->
-
-	<!-- ****************************** Usage Instructions ****************************** -->
-	<target name="help" description="Usage Instructions">
-		<echo>
-To run this script in Eclipse:
-    Run As > Ant Build
-
-To run this script via commandline:
-   cd /path/to/checked/out/source/tree; \
-   ant -f genpom.xml -q 
-
-or, to build a specific module IFF no poms already exist:
-    ant -f genpom.xml -q -DCOMPONENT=xulrunner
-
-or, to build a specific module and overwrite existing pom.xml files:
-    ant -f genpom.xml -q -DCOMPONENT=common -Doverwrite.existing.pom.xml=true
-</echo>
-	</target>
-
-	<target name="get.ant-contrib" unless="ant-contrib.jar.exists">
-		<property name="ANTCONTRIB_MIRROR" value="http://downloads.sourceforge.net/ant-contrib/" />
-		<get usetimestamp="true"
-		     dest="${COMMON_TOOLS}/ant-contrib-1.0b2-bin.zip"
-		     src="${ANTCONTRIB_MIRROR}/ant-contrib-1.0b2-bin.zip"
-		/>
-		<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>
-
-	<!-- override for local build -->
-	<condition property="isInHudson" value="true">
-		<or>
-			<contains string="${user.dir}" substring="hudson" />
-			<contains string="${user.name}" substring="hudson" />
-			<contains string="${user.home}" substring="hudson" />
-		</or>
-	</condition>
-	<target name="local" unless="isInHudson">
-		<property name="WORKINGDIR" value="${basedir}" />
-		<property name="COMMON_TOOLS" value="${java.io.tmpdir}" />
-	</target>
-
-	<target name="init" depends="local">
-		<!-- https://jira.jboss.org/jira/browse/JBQA-3313 Use static, shared space outside workspace, instead of working directly in the workspace -->
-		<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}" />
-		<echo level="info">WORKINGDIR = ${WORKINGDIR}</echo>
-
-		<condition property="COMMON_TOOLS"
-		           value="/home/hudson/static_build_env/jbds/tools"
-		           else="${WORKINGDIR}/../tools"
-		>
-			<available file="/home/hudson/static_build_env/jbds" type="dir" />
-		</condition>
-		<mkdir dir="${COMMON_TOOLS}" />
-		<echo level="info">COMMON_TOOLS = ${COMMON_TOOLS}</echo>
-
-		<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>
-
-		<var name="pathToParentPomInput" value="${pathToParentPom}"/>
-		
-		<!-- = = = = = = = = = = = = = = = = =
-	      macrodef: write out a pom.xml which aggregates subdirs   
-	     = = = = = = = = = = = = = = = = = -->
-		<macrodef name="writeAggregatePom">
-			<attribute name="dir" default="." />
-			<attribute name="parentpom" />
-			<attribute name="artifactId" default="" />
-			<attribute name="artifactVersion" default="" />
-			<sequential>
-				<if>
-					<equals arg1="@{artifactId}" arg2="" />
-					<then>
-						<var name="artifactId" unset="true" />
-						<antcallback target="getArtifactId" return="artifactId">
-							<property name="dir" value="@{dir}" />
-						</antcallback>
-					</then>
-					<else>
-						<var name="artifactId" value="@{artifactId}" />
-					</else>
-				</if>
-				<if>
-					<equals arg1="@{artifactVersion}" arg2="" />
-					<then>
-						<var name="artifactVersion" unset="true" />
-						<antcallback target="getArtifactVersion" return="artifactVersion">
-							<property name="dir" value="@{dir}" />
-						</antcallback>
-					</then>
-					<else>
-						<var name="artifactVersion" value="@{artifactVersion}" />
-					</else>
-				</if>
-				<var name="artifactType" value="pom" />
-				<propertyregex property="activeDir"
-				               input="@{dir}"
-				               defaultvalue="@{dir}"
-				               regexp="${WORKINGDIR}/"
-				               replace=""
-				               casesensitive="true"
-				               override="true"
-				/>
-				<echo level="verbose">   Agg dir: ${activeDir}, artifactType: ${artifactType}, artifactId: ${artifactId}, artifactVersion: ${artifactVersion}, parentpom: @{parentpom}</echo>
-				<if>
-					<and>
-						<available file="@{dir}/pom.xml" type="file" />
-						<not>
-							<istrue value="${overwrite.existing.pom.xml}" />
-						</not>
-					</and>
-					<then>
-						<var name="show.pom.exists.warning" value="${show.pom.exists.warning}1" />
-					</then>
-				</if>
-				<if>
-					<or>
-						<not>
-							<available file="@{dir}/pom.xml" type="file" />
-						</not>
-						<istrue value="${overwrite.existing.pom.xml}" />
-					</or>
-					<then>
-						<echo file="@{dir}/pom.xml">&lt;project
-xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-	&lt;modelVersion>4.0.0&lt;/modelVersion>
-	&lt;parent>
-	  &lt;relativePath>@{parentpom}&lt;/relativePath>
-	  &lt;groupId>${projectName}&lt;/groupId>
-	  &lt;artifactId>${projectName}.parent.pom&lt;/artifactId>
-	  &lt;version>${pomVersion}&lt;/version>
-	&lt;/parent>
-	&lt;groupId>${projectName}&lt;/groupId>
-	&lt;artifactId>${artifactId}&lt;/artifactId>
-	&lt;version>${artifactVersion}&lt;/version>
-	&lt;packaging>${artifactType}&lt;/packaging>
-	&lt;modules>
-</echo>
-						<var name="artifactId" unset="true" />
-						<var name="artifactVersion" unset="true" />
-						<for param="subdir" delimiter=", 
-	">
-							<path>
-								<dirset dir="@{dir}" excludes="${dirsToExclude}" includes="*" />
-							</path>
-							<sequential>
-								<basename property="subdirSuffix" file="@{subdir}" />
-								<echo file="@{dir}/pom.xml" append="true">		&lt;module>${subdirSuffix}&lt;/module>
-</echo>
-								<var name="subdirSuffix" unset="true" />
-							</sequential>
-						</for>
-						<echo file="@{dir}/pom.xml" append="true">	&lt;/modules>
-&lt;/project>
-	</echo>
-					</then>
-				</if>
-			</sequential>
-		</macrodef>
-
-		<!-- = = = = = = = = = = = = = = = = =
-	      macrodef: write out a pom.xml for a plugin or feature or test   
-	     = = = = = = = = = = = = = = = = = -->
-		<macrodef name="writeModulePom">
-			<attribute name="dir" default="." />
-			<attribute name="parentpom" />
-			<sequential>
-				<var name="artifactType" unset="true" />
-				<antcallback target="getArtifactType" return="artifactType">
-					<property name="dir" value="@{dir}" />
-				</antcallback>
-				<if>
-					<equals arg1="${artifactType}" arg2="eclipse-update-site" />
-					<then>
-						<var name="artifactId" unset="true" />
-						<basename property="artifactId" file="@{dir}" />
-						<var name="artifactVersion" value="${pomVersion}" />
-					</then>
-					<else>
-						<var name="artifactId" unset="true" />
-						<antcallback target="getArtifactId" return="artifactId">
-							<property name="dir" value="@{dir}" />
-						</antcallback>
-						<var name="artifactVersion" unset="true" />
-						<antcallback target="getArtifactVersion" return="artifactVersion">
-							<property name="dir" value="@{dir}" />
-						</antcallback>
-						<var name="artifactOs" unset="true" />
-						<var name="artifactWs" unset="true" />
-						<var name="artifactArch" unset="true" />
-						<antcallback target="getArtifactOsWsArch" return="artifactOs, artifactWs, artifactArch">
-							<property name="artifactId" value="${artifactId}" />
-						</antcallback>
-					</else>
-				</if>
-				<propertyregex property="activeDir"
-				               input="@{dir}"
-				               defaultvalue="@{dir}"
-				               regexp="${WORKINGDIR}/"
-				               replace=""
-				               casesensitive="true"
-				               override="true"
-				/>
-				<echo level="verbose">   Mod dir: ${activeDir}, artifactType: ${artifactType}, artifactId: ${artifactId}, artifactVersion: ${artifactVersion}, parentpom: @{parentpom}</echo>
-				<if>
-					<and>
-						<available file="@{dir}/pom.xml" type="file" />
-						<not>
-							<istrue value="${overwrite.existing.pom.xml}" />
-						</not>
-					</and>
-					<then>
-						<var name="show.pom.exists.warning" value="${show.pom.exists.warning}1" />
-					</then>
-				</if>
-				<if>
-					<or>
-						<not>
-							<available file="@{dir}/pom.xml" type="file" />
-						</not>
-						<istrue value="${overwrite.existing.pom.xml}" />
-					</or>
-					<then>
-						<echo file="@{dir}/pom.xml">&lt;project
-xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-	&lt;modelVersion>4.0.0&lt;/modelVersion> 
-	&lt;parent>
-	  &lt;relativePath>@{parentpom}&lt;/relativePath>
-	  &lt;groupId>${projectName}&lt;/groupId>
-	  &lt;artifactId>${projectName}.parent.pom&lt;/artifactId>
-	  &lt;version>${pomVersion}&lt;/version>
-	&lt;/parent>
-	&lt;groupId>${projectName}&lt;/groupId>
-	&lt;artifactId>${artifactId}&lt;/artifactId> 
-	&lt;version>${artifactVersion}&lt;/version>
-	&lt;packaging>${artifactType}&lt;/packaging>
-</echo>
-						<if>
-							<or>
-								<and>
-									<isset property="artifactOs" />
-									<not>
-										<equals arg1="" arg2="${artifactOs}" />
-									</not>
-								</and>
-								<and>
-									<isset property="artifactWs" />
-									<not>
-										<equals arg1="" arg2="${artifactWs}" />
-									</not>
-								</and>
-								<and>
-									<isset property="artifactArch" />
-									<not>
-										<equals arg1="" arg2="${artifactArch}" />
-									</not>
-								</and>
-							</or>
-							<then>
-								<echo file="@{dir}/pom.xml" append="true">	&lt;build>
-	   &lt;plugins>
-	     &lt;plugin>
-  	       &lt;groupId>org.sonatype.tycho&lt;/groupId>
-  	       &lt;artifactId>target-platform-configuration&lt;/artifactId>
-  	       &lt;version>${tychoVersion}&lt;/version>
-  	       &lt;configuration>
-    	     &lt;resolver>p2&lt;/resolver>
-    	     &lt;environments>
-      	     &lt;environment>
-        	     &lt;os>${artifactOs}&lt;/os>
-        	     &lt;ws>${artifactWs}&lt;/ws>
-        	     &lt;arch>${artifactArch}&lt;/arch>
-      	     &lt;/environment>
-    	     &lt;/environments>
-  	       &lt;/configuration>
-	     &lt;/plugin>
-	   &lt;/plugins>
-	&lt;/build>
-</echo>
-							</then>
-						</if>
-						<echo file="@{dir}/pom.xml" append="true">&lt;/project>
-</echo>
-					</then>
-				</if>
-				<var name="artifactId" unset="true" />
-				<var name="artifactVersion" unset="true" />
-				<var name="artifactType" unset="true" />
-				<var name="artifactOs" unset="true" />
-				<var name="artifactWs" unset="true" />
-				<var name="artifactArch" unset="true" />
-				<var name="modulecountstring" value="${modulecountstring}1" />
-			</sequential>
-		</macrodef>
-
-		<!-- = = = = = = = = = = = = = = = = =
-	      macrodef: generateAggregator          
-	     = = = = = = = = = = = = = = = = = -->
-		<macrodef name="generateAggregator">
-			<attribute name="dir" default="${WORKINGDIR}" />
-			<attribute name="parentPom" default="${pathToParentPom}parent-pom.xml" />
-			<attribute name="artifactId" default="" />
-			<attribute name="artifactVersion" default="" />
-			<sequential>
-				<writeAggregatePom dir="@{dir}"
-				                   parentpom="@{parentpom}"
-				                   artifactId="@{artifactId}"
-				                   artifactVersion="@{artifactVersion}"
-				/>
-
-				<dump dir="@{dir}"
-				      parentpom="@{parentpom}"
-				      artifactId="@{artifactId}"
-				      artifactVersion="@{artifactVersion}"
-				/>
-				<var name="aggregatorcountstring" value="${aggregatorcountstring}1" />
-
-			</sequential>
-		</macrodef>
-
-
-		<!-- = = = = = = = = = = = = = = = = =
-          macrodef: dump          
-         = = = = = = = = = = = = = = = = = -->
-		<macrodef name="dump">
-			<attribute name="dir" />
-			<attribute name="parentpom" />
-			<attribute name="artifactId" default="" />
-			<attribute name="artifactVersion" default="" />
-			<sequential>
-				<if>
-					<equals arg1="${COMPONENT}" arg2="trunk" />
-					<then>
-						<path id="trunkDir">
-							<dirset dir="@{dir}" excludes="${dirsToExclude}" includes="*" />
-						</path>
-					</then>
-					<elseif>
-						<equals arg1="${COMPONENT}" arg2="site" />
-						<then>
-							<dirname property="parent.dir" file="@{dir}" />
-							<path id="trunkDir">
-								<dirset dir="${parent.dir}" includes="site" />
-							</path>
-							<var name="parent.dir" unset="true" />
-							<var name="pathToParentPom" value="${pathToParentPom}site/" />
-						</then>
-					</elseif>
-					<else>
-						<path id="trunkDir">
-							<dirset dir="@{dir}/${pathToParentPom}"
-							        excludes="${dirsToExclude}"
-							        includes="${COMPONENT}/*/*, ${COMPONENT}/plugins, ${COMPONENT}/features, ${COMPONENT}/tests, ${COMPONENT}/site"
-							/>
-						</path>
-					</else>
-				</if>
-				<for param="subdir" delimiter=", 
-	">
-					<path refid="trunkDir" />
-					<sequential>
-						<echo level="debug">@{subdir}</echo>
-						<var name="aggregate" value="false" />
-						<if>
-							<or>
-								<!-- a plugin, feature, or update site dir -->
-								<available file="@{subdir}/META-INF/MANIFEST.MF" type="file" />
-								<available file="@{subdir}/feature.xml" type="file" />
-							</or>
-							<then>
-								<!-- valid place to create a pom -->
-								<writeModulePom dir="@{subdir}" parentpom="../${pathToParentPom}@{parentpom}" />
-							</then>
-							<elseif>
-								<available file="@{subdir}/site.xml" type="file" />
-								<then>
-									<!-- valid place to create a pom -->
-									<echo level="debug">writeModulePom dir="@{subdir}" parentpom="${pathToParentPom}@{parentpom}"</echo>
-									<writeModulePom dir="@{subdir}" parentpom="${pathToParentPom}@{parentpom}" />
-								</then>
-							</elseif>
-							<else>
-								<for list="plugins tests features site" param="type" delimiter=" ">
-									<sequential>
-										<basename property="artifactIdAgg" file="@{subdir}" />
-										<if>
-											<available file="@{subdir}/@{type}" type="dir" />
-											<then>
-												<var name="aggregate" value="true" />
-												<generateAggregator dir="@{subdir}/@{type}"
-												                    parentpom="../../${pathToParentPom}@{parentpom}"
-												                    artifactId="${artifactIdAgg}.@{type}"
-												                    artifactVersion="@{artifactVersion}"
-												/>
-											</then>
-										</if>
-										<var name="artifactIdAgg" unset="true" />
-									</sequential>
-								</for>
-
-								<if>
-									<istrue value="${aggregate}" />
-									<else>
-										<basename property="artifactIdAgg" file="@{subdir}" />
-										<if>
-											<equals arg1="${COMPONENT}" arg2="trunk" />
-											<then>
-												<var name="artifactId" value="${artifactIdAgg}.all" />
-											</then>
-											<else>
-												<var name="artifactId" value="${COMPONENT}.${artifactIdAgg}" />
-											</else>
-										</if>
-										<writeAggregatePom dir="@{subdir}"
-										                   parentpom="../${pathToParentPom}parent-pom.xml"
-										                   artifactId="${artifactId}"
-										                   artifactVersion="@{artifactVersion}"
-										/>
-
-										<echo level="debug">subdir = @{subdir}</echo>
-										<echo level="verbose">Aggregated: ${artifactIdAgg}</echo>
-
-										<var name="artifactIdAgg" unset="true" />
-										<var name="artifactId" unset="true" />
-									</else>
-								</if>
-							</else>
-						</if>
-					</sequential>
-				</for>
-			</sequential>
-		</macrodef>
-
-	</target>
-
-	<target name="run" depends="init">
-		<var name="show.pom.exists.warning" value="" />
-
-		<if>
-			<and>
-				<isset property="COMPONENT" />
-				<not>
-					<equals arg1="${COMPONENT}" arg2="" />
-				</not>
-			</and>
-			<then>
-				<var name="COMPONENTS" unset="true" />
-				<var name="COMPONENTS" value="${COMPONENT}" />
-			</then>
-			<elseif>
-				<not>
-					<isset property="COMPONENTS" />
-				</not>
-				<then>
-					<var name="COMPONENTS" value="trunk" />
-				</then>
-			</elseif>
-		</if>
-		<for param="COMPONENT" list="${COMPONENTS}" delimiter=",; 
-	">
-			<sequential>
-				<var name="COMPONENT" value="@{COMPONENT}" />
-				<echo level="info">COMPONENT = '${COMPONENT}'</echo>
-				<if>
-					<not>
-						<available file="${WORKINGDIR}/${pathToParentPomInput}parent-pom.xml" type="file" />
-					</not>
-					<then>
-						<fail>Error: no parent-pom.xml found in ${WORKINGDIR}/${pathToParentPomInput}</fail>
-					</then>
-				</if>
-
-				<if>
-					<not>
-						<equals arg1="${COMPONENT}" arg2="trunk" />
-					</not>
-					<then>
-						<var name="pathToParentPom" unset="true" />
-						<var name="pathToParentPom" value="../" />
-					</then>
-				</if>
-				<echo level="verbose">COMPONENT = '${COMPONENT}', pathToParentPom = ${pathToParentPom}</echo>
-
-				<!-- if set, compare values in tags file to values found in manifests and report discrepancies -->
-				<!--<property name="tagsFile"
-		     value="/home/nboldt/eclipse/workspace-jboss/devstudio-trunk/releng/org.jboss.ide.eclipse.releng/builders/product/versionTags/jbosstools/3.1.0.GA.tags"
-		/>-->
-
-				<if>
-					<and>
-						<isset property="tagsFile" />
-						<available file="${tagsFile}" type="file" />
-					</and>
-					<then>
-						<property file="${tagsFile}" prefix="tagsFile" />
-					</then>
-				</if>
-
-				<!-- counter variables -->
-				<var name="aggregatorcountstring" value="" />
-				<var name="modulecountstring" value="" />
-
-				<if>
-					<equals arg1="${COMPONENT}" arg2="trunk" />
-					<then>
-						<!-- call generateAggregator for overall -->
-						<generateAggregator dir="${WORKINGDIR}"
-						                    parentpom="${pathToParentPom}parent-pom.xml"
-						                    artifactId="${COMPONENT}"
-						                    artifactVersion="${pomVersion}"
-						/>
-					</then>
-					<else>
-						<!-- call generateAggregator for component -->
-						<generateAggregator dir="${WORKINGDIR}/${COMPONENT}"
-						                    parentpom="${pathToParentPom}parent-pom.xml"
-						                    artifactId="${COMPONENT}"
-						                    artifactVersion="${pomVersion}"
-						/>
-					</else>
-				</if>
-				<!-- summary -->
-				<length string="${modulecountstring}" property="modulecount" />
-				<length string="${aggregatorcountstring}" property="aggregatorcount" />
-				<echo level="info">${WORKINGDIR}/${COMPONENT} :: Modules: ${modulecount},  Aggregations: ${aggregatorcount}</echo>
-				<if>
-					<not>
-						<equals arg1="${show.pom.exists.warning}" arg2="" />
-					</not>
-					<then>
-						<length property="show.pom.exists.warning.count" string="${show.pom.exists.warning}" />
-						<echo level="warning">${show.pom.exists.warning.count} '${COMPONENT}' pom.xml file(s) already exist. To overwrite, use -Doverwrite.existing.pom.xml=true</echo>
-					</then>
-				</if>
-				<var name="show.pom.exists.warning.count" unset="true" />
-				<var name="show.pom.exists.warning" value="" />
-				<var name="modulecount" unset="true" />
-				<var name="aggregatorcount" unset="true" />
-			</sequential>
-		</for>
-	</target>
-
-	<target name="getArtifactType">
-		<property name="dir" value="." />
-		<if>
-			<matches string="${dir}" pattern=".+/features/.+" />
-			<then>
-				<var name="artifactType" value="eclipse-feature" />
-			</then>
-			<elseif>
-				<or>
-					<matches string="${dir}" pattern=".+/site" />
-					<matches string="${dir}" pattern=".+site" />
-				</or>
-				<then>
-					<var name="artifactType" value="eclipse-update-site" />
-				</then>
-			</elseif>
-			<elseif>
-				<and>
-					<not>
-						<matches string="${dir}" pattern=".+/plugins/.+" />
-					</not>
-					<matches string="${dir}" pattern=".+/tests/.+" />
-				</and>
-				<then>
-					<var name="artifactType" value="eclipse-plugin" />
-					<for param="testClassFile" delimiter=", ">
-						<path>
-							<fileset dir="${dir}" includes="${testClassFilesToInclude}" />
-						</path>
-						<sequential>
-							<var name="artifactType" value="eclipse-test-plugin" />
-						</sequential>
-					</for>
-				</then>
-			</elseif>
-			<else>
-				<var name="artifactType" value="eclipse-plugin" />
-			</else>
-		</if>
-	</target>
-
-	<target name="getArtifactVersion">
-		<property name="dir" value="." />
-		<!-- echo>${dir}</echo -->
-		<if>
-			<available file="${dir}/META-INF/MANIFEST.MF" type="file" />
-			<then>
-				<!-- get Bundle-SymbolicName: -->
-				<loadfile srcfile="${dir}/META-INF/MANIFEST.MF" property="artifactVersion">
-					<filterchain>
-						<linecontains>
-							<contains value="Bundle-Version:" />
-						</linecontains>
-					</filterchain>
-				</loadfile>
-				<propertyregex property="artifactVersion"
-				               input="${artifactVersion}"
-				               defaultvalue="${artifactVersion}"
-				               regexp="Bundle-Version:( +)([^\n\r]+)[\n\r]+"
-				               replace="\2"
-				               casesensitive="true"
-				               override="true"
-				/>
-
-				<!-- compare tags file to current manifests -->
-				<antcallback target="checkArtifactVersionAgainstTagFile" return="artifactVersion.from.tag" />
-				<if>
-					<and>
-						<isset property="artifactVersion.from.tag" />
-						<not>
-							<equals arg1="${artifactVersion.from.tag}" arg2="${artifactVersion}" />
-						</not>
-					</and>
-					<then>
-						<loadfile property="manifest.file" srcfile="${dir}/META-INF/MANIFEST.MF">
-							<filterchain>
-								<tokenfilter>
-									<replaceregex pattern="Bundle-Version:( +)${artifactVersion}"
-									              replace="Bundle-Version: ${artifactVersion.from.tag}"
-									              flags=""
-									/>
-								</tokenfilter>
-							</filterchain>
-						</loadfile>
-						<echo message="${manifest.file}" file="${dir}/META-INF/MANIFEST.MF" />
-						<var name="manifest.file" unset="true" />
-					</then>
-					<else>
-						<var name="artifactVersion.from.tag" value="${artifactVersion}" />
-					</else>
-				</if>
-
-				<!-- now, switch to Maven style (s/.qualifier/-SNAPSHOT/) -->
-				<propertyregex property="artifactVersion"
-				               input="${artifactVersion.from.tag}"
-				               defaultvalue="${artifactVersion.from.tag}"
-				               regexp="(.+).qualifier"
-				               replace="\1-SNAPSHOT"
-				               casesensitive="true"
-				               override="true"
-				/>
-				<var name="artifactVersion.from.tag" unset="true" />
-			</then>
-			<elseif>
-				<available file="${dir}/feature.xml" type="file" />
-				<then>
-					<!-- get <feature version=""> -->
-					<xmlproperty file="${dir}/feature.xml" collapseAttributes="true" />
-					<var name="artifactVersion" value="${feature.version}" />
-
-					<!-- compare tags file to current manifests -->
-					<antcallback target="checkArtifactVersionAgainstTagFile" return="artifactVersion.from.tag" />
-					<if>
-						<and>
-							<isset property="artifactVersion.from.tag" />
-							<not>
-								<equals arg1="${artifactVersion.from.tag}" arg2="${artifactVersion}" />
-							</not>
-						</and>
-						<then>
-							<loadfile property="manifest.file" srcfile="${dir}/feature.xml">
-								<filterchain>
-									<tokenfilter>
-										<replaceregex pattern="version=&quot;${artifactVersion}&quot;"
-										              replace="version=&quot;${artifactVersion.from.tag}&quot;"
-										              flags=""
-										/>
-									</tokenfilter>
-								</filterchain>
-							</loadfile>
-							<echo message="${manifest.file}" file="${dir}/feature.xml" />
-							<var name="manifest.file" unset="true" />
-						</then>
-						<else>
-							<var name="artifactVersion.from.tag" value="${artifactVersion}" />
-						</else>
-					</if>
-					<var name="feature.version" unset="true" />
-
-					<!-- now, switch to Maven style (s/.qualifier/-SNAPSHOT/) -->
-					<propertyregex property="artifactVersion"
-					               input="${artifactVersion.from.tag}"
-					               defaultvalue="${artifactVersion.from.tag}"
-					               regexp="(.+).qualifier"
-					               replace="\1-SNAPSHOT"
-					               casesensitive="true"
-					               override="true"
-					/>
-					<var name="artifactVersion.from.tag" unset="true" />
-				</then>
-			</elseif>
-			<else>
-				<echo level="verbose">Warning! artifactVersion not found for ${dir}!</echo>
-				<var name="artifactVersion" value="0.0.0" />
-			</else>
-		</if>
-	</target>
-
-	<target name="checkArtifactVersionAgainstTagFile">
-		<dirname property="this.dir" file="${dir}" />
-		<dirname property="parent.dir.path" file="${this.dir}" />
-		<basename property="parent.dir" file="${parent.dir.path}" />
-		<var name="this.dir" unset="true" />
-		<var name="parent.dir.path" unset="true" />
-		<if>
-			<isset property="tagsFile.${parent.dir}" />
-			<then>
-				<propertycopy from="tagsFile.${parent.dir}" property="artifactVersion.from.tag" />
-				<propertyregex property="artifactVersion.from.tag"
-				               input="${artifactVersion.from.tag}"
-				               defaultvalue="${artifactVersion.from.tag}"
-				               regexp="(.+).GA"
-				               replace="\1.qualifier"
-				               casesensitive="true"
-				               override="true"
-				/>
-			</then>
-		</if>
-		<if>
-			<and>
-				<isset property="tagsFile.${parent.dir}" />
-				<not>
-					<equals arg1="${artifactVersion}" arg2="${artifactVersion.from.tag}" />
-				</not>
-			</and>
-			<then>
-				<basename file="${dir}" property="this.dir" />
-				<echo level="info">For ${this.dir}, got ${artifactVersion}; should be ${artifactVersion.from.tag}</echo>
-			</then>
-			<else>
-				<var name="artifactVersion.from.tag" value="${artifactVersion}" />
-			</else>
-		</if>
-		<var name="parent.dir" unset="true" />
-	</target>
-
-	<!-- supports only the following platforms:
-			org.mozilla.xulrunner.carbon.macosx
-			org.mozilla.xulrunner.cocoa.macosx
-			org.mozilla.xulrunner.gtk.linux.x86
-			org.mozilla.xulrunner.gtk.linux.x86_64
-			org.mozilla.xulrunner.win32.win32.x86
-	-->
-	<target name="getArtifactOsWsArch">
-		<property name="artifactId" value="org.mozilla.xulrunner.cocoa.macosx" />
-		<propertyregex property="artifactOs"
-		               input="${artifactId}"
-		               defaultvalue=""
-		               regexp="(macosx|linux|win32)"
-		               select="\1"
-		               casesensitive="true"
-		               override="true"
-		/>
-		<propertyregex property="artifactWs"
-		               input="${artifactId}"
-		               defaultvalue=""
-		               regexp="(carbon|cocoa|win32|gtk)"
-		               select="\1"
-		               casesensitive="true"
-		               override="true"
-		/>
-		<propertyregex property="artifactArch"
-		               input="${artifactId}"
-		               defaultvalue=""
-		               regexp="\.(x86|x86_64)$"
-		               select="\1"
-		               casesensitive="true"
-		               override="true"
-		/>
-
-	</target>
-
-	<target name="getArtifactId">
-		<property name="dir" value="." />
-		<!-- echo>${dir}</echo -->
-		<if>
-			<available file="${dir}/META-INF/MANIFEST.MF" type="file" />
-			<then>
-				<!-- get Bundle-SymbolicName: -->
-				<loadfile srcfile="${dir}/META-INF/MANIFEST.MF" property="artifactId">
-					<filterchain>
-						<linecontains>
-							<contains value="Bundle-SymbolicName:" />
-						</linecontains>
-					</filterchain>
-				</loadfile>
-				<propertyregex property="artifactId"
-				               input="${artifactId}"
-				               defaultvalue="${artifactId}"
-				               regexp="Bundle-SymbolicName:([\t ]+)([^\n\r\t ]+);(.+)[\n\r\t ]+"
-				               replace="\2"
-				               casesensitive="true"
-				               override="true"
-				/>
-				<propertyregex property="artifactId"
-				               input="${artifactId}"
-				               defaultvalue="${artifactId}"
-				               regexp="Bundle-SymbolicName:([\t ]+)([^\n\r\t ]+)[\n\r\t ]+"
-				               replace="\2"
-				               casesensitive="true"
-				               override="true"
-				/>
-			</then>
-			<elseif>
-				<available file="${dir}/feature.xml" type="file" />
-				<then>
-					<!-- get <feature id=""> -->
-					<xmlproperty file="${dir}/feature.xml" collapseAttributes="true" />
-					<var name="artifactId" value="${feature.id}" />
-					<var name="feature.id" unset="true" />
-				</then>
-			</elseif>
-			<else>
-				<echo level="info">Warning! artifactId not found for ${dir}!</echo>
-				<basename property="artifactId" file="${dir}" />
-			</else>
-		</if>
-	</target>
-
-	<!-- ************************************ TESTS ************************************ -->
-
-	<target name="test.expected.values">
-		<property name="ant.enable.asserts" value="true" />
-
-		<!-- expected values for artifactVersion tests -->
-		<property name="artifactVersion.esb/features/org.jboss.tools.esb.feature" value="1.3.0-SNAPSHOT" />
-		<property name="artifactVersion.as/tests/org.jboss.ide.eclipse.as.archives.integration.test"
-		          value="2.1.0-SNAPSHOT"
-		/>
-		<property name="artifactVersion.esb/plugins/org.jboss.tools.esb.core" value="1.3.0-SNAPSHOT" />
-		<property name="artifactVersion.bpel/plugins/org.eclipse.bpel.apache.ode.deploy.ui" value="0.5.0-SNAPSHOT" />
-		<property name="artifactVersion.bpel/features/org.jboss.tools.bpel.sdk.feature" value="1.0.0-SNAPSHOT" />
-		<property name="artifactVersion.bpel/plugins/org.eclipse.bpel.xpath10" value="0.5.0-SNAPSHOT" />
-		<property name="artifactVersion.vpe/plugins/org.jboss.tools.vpe.ui.palette" value="3.1.0-SNAPSHOT" />
-		<property name="artifactVersion.tests/features/org.jboss.tools.test.feature" value="3.1.0-SNAPSHOT" />
-		<property name="artifactVersion.portlet/features/org.jboss.tools.portlet.test.feature" value="1.1.0-SNAPSHOT" />
-		<property name="artifactVersion.jst/features/org.jboss.tools.jst.feature" value="3.1.0-SNAPSHOT" />
-		<property name="artifactVersion.jst/features/org.jboss.tools.jst.web.tiles.feature" value="3.1.0-SNAPSHOT" />
-		<property name="artifactVersion.drools/plugins/org.jboss.tools.flow.ruleflow" value="1.0.0" />
-
-		<!-- expected values for artifactId tests -->
-		<property name="artifactId.esb/features/org.jboss.tools.esb.feature" value="org.jboss.tools.esb.feature" />
-		<property name="artifactId.as/tests/org.jboss.ide.eclipse.as.archives.integration.test"
-		          value="org.jboss.ide.eclipse.as.archives.integration.test"
-		/>
-		<property name="artifactId.esb/plugins/org.jboss.tools.esb.core" value="org.jboss.tools.esb.core" />
-		<property name="artifactId.bpel/plugins/org.eclipse.bpel.apache.ode.deploy.ui"
-		          value="org.eclipse.bpel.apache.ode.deploy.ui"
-		/>
-		<property name="artifactId.bpel/features/org.jboss.tools.bpel.sdk.feature"
-		          value="org.jboss.tools.bpel.sdk.feature"
-		/>
-		<property name="artifactId.bpel/plugins/org.eclipse.bpel.xpath10" value="org.eclipse.bpel.xpath10" />
-		<property name="artifactId.vpe/plugins/org.jboss.tools.vpe.ui.palette" value="org.jboss.tools.vpe.ui.palette" />
-		<property name="artifactId.tests/features/org.jboss.tools.test.feature" value="org.jboss.tools.test.feature" />
-		<property name="artifactId.portlet/features/org.jboss.tools.portlet.test.feature"
-		          value="org.jboss.tools.portlet.test.feature"
-		/>
-		<property name="artifactId.jst/features/org.jboss.tools.jst.feature" value="org.jboss.tools.jst.feature" />
-		<property name="artifactId.jst/features/org.jboss.tools.jst.web.tiles.feature"
-		          value="org.jboss.tools.jst.web.tiles.feature"
-		/>
-		<property name="artifactId.drools/plugins/org.jboss.tools.flow.ruleflow"
-		          value="org.jboss.tools.flow.ruleflow"
-		/>
-
-		<!-- expected values for artifactType tests -->
-		<property name="artifactType.esb/features/org.jboss.tools.esb.feature" value="eclipse-feature" />
-		<property name="artifactType.as/tests/org.jboss.ide.eclipse.as.archives.integration.test"
-		          value="eclipse-test-plugin"
-		/>
-		<property name="artifactType.flow/tests/org.jboss.tools.flow.common.test" value="eclipse-plugin" />
-		<property name="artifactType.jbpm/tests/org.jboss.tools.flow.jpdl4.test" value="eclipse-plugin" />
-		<property name="artifactType.esb/plugins/org.jboss.tools.esb.core" value="eclipse-plugin" />
-		<property name="artifactType.bpel/plugins/org.eclipse.bpel.apache.ode.deploy.ui" value="eclipse-plugin" />
-		<property name="artifactType.bpel/features/org.jboss.tools.bpel.sdk.feature" value="eclipse-feature" />
-		<property name="artifactType.bpel/plugins/org.eclipse.bpel.xpath10" value="eclipse-plugin" />
-		<property name="artifactType.vpe/plugins/org.jboss.tools.vpe.ui.palette" value="eclipse-plugin" />
-		<property name="artifactType.tests/features/org.jboss.tools.test.feature" value="eclipse-feature" />
-		<property name="artifactType.portlet/features/org.jboss.tools.portlet.test.feature" value="eclipse-feature" />
-		<property name="artifactType.jst/features/org.jboss.tools.jst.feature" value="eclipse-feature" />
-		<property name="artifactType.jst/features/org.jboss.tools.jst.web.tiles.feature" value="eclipse-feature" />
-		<property name="artifactType.drools/plugins/org.jboss.tools.flow.ruleflow" value="eclipse-plugin" />
-
-		<!-- expected values for artifactOsWsArch tests -->
-		<property name="artifactOsWsArch.org.mozilla.xpcom.os" value="" />
-		<property name="artifactOsWsArch.org.mozilla.xpcom.ws" value="" />
-		<property name="artifactOsWsArch.org.mozilla.xpcom.arch" value="" />
-
-		<property name="artifactOsWsArch.org.mozilla.xulrunner.carbon.macosx.os" value="macosx" />
-		<property name="artifactOsWsArch.org.mozilla.xulrunner.carbon.macosx.ws" value="carbon" />
-		<property name="artifactOsWsArch.org.mozilla.xulrunner.carbon.macosx.arch" value="" />
-
-		<property name="artifactOsWsArch.org.mozilla.xulrunner.cocoa.macosx.os" value="macosx" />
-		<property name="artifactOsWsArch.org.mozilla.xulrunner.cocoa.macosx.ws" value="cocoa" />
-		<property name="artifactOsWsArch.org.mozilla.xulrunner.cocoa.macosx.arch" value="" />
-
-		<property name="artifactOsWsArch.org.mozilla.xulrunner.gtk.linux.x86.os" value="linux" />
-		<property name="artifactOsWsArch.org.mozilla.xulrunner.gtk.linux.x86.ws" value="gtk" />
-		<property name="artifactOsWsArch.org.mozilla.xulrunner.gtk.linux.x86.arch" value="x86" />
-
-		<property name="artifactOsWsArch.org.mozilla.xulrunner.gtk.linux.x86_64.os" value="linux" />
-		<property name="artifactOsWsArch.org.mozilla.xulrunner.gtk.linux.x86_64.ws" value="gtk" />
-		<property name="artifactOsWsArch.org.mozilla.xulrunner.gtk.linux.x86_64.arch" value="x86_64" />
-
-		<property name="artifactOsWsArch.org.mozilla.xulrunner.win32.win32.x86.os" value="win32" />
-		<property name="artifactOsWsArch.org.mozilla.xulrunner.win32.win32.x86.ws" value="win32" />
-		<property name="artifactOsWsArch.org.mozilla.xulrunner.win32.win32.x86.arch" value="x86" />
-	</target>
-
-	<target name="test.all" depends="init, test.expected.values">
-
-		<property name="dirs"
-		          value="
-		${WORKINGDIR}/esb/features/org.jboss.tools.esb.feature
-		${WORKINGDIR}/as/tests/org.jboss.ide.eclipse.as.archives.integration.test
-		${WORKINGDIR}/esb/plugins/org.jboss.tools.esb.core
-		${WORKINGDIR}/bpel/plugins/org.eclipse.bpel.apache.ode.deploy.ui
-		${WORKINGDIR}/bpel/features/org.jboss.tools.bpel.sdk.feature	
-		${WORKINGDIR}/bpel/plugins/org.eclipse.bpel.xpath10
-		${WORKINGDIR}/vpe/plugins/org.jboss.tools.vpe.ui.palette
-		${WORKINGDIR}/tests/features/org.jboss.tools.test.feature
-		${WORKINGDIR}/portlet/features/org.jboss.tools.portlet.test.feature
-		${WORKINGDIR}/jst/features/org.jboss.tools.jst.feature
-		${WORKINGDIR}/jst/features/org.jboss.tools.jst.web.tiles.feature
-		${WORKINGDIR}/drools/plugins/org.jboss.tools.flow.ruleflow
-		"
-		/>
-		<antcall target="test.getArtifactVersion" />
-		<antcall target="test.getArtifactId" />
-		<antcall target="test.getArtifactType" />
-		<antcall target="test.getArtifactOsWsArch" />
-	</target>
-
-	<target name="test.getArtifactVersion" depends="init, test.expected.values">
-		<property name="dirs"
-		          value="
-		${WORKINGDIR}/esb/features/org.jboss.tools.esb.feature
-		${WORKINGDIR}/as/tests/org.jboss.ide.eclipse.as.archives.integration.test
-		${WORKINGDIR}/esb/plugins/org.jboss.tools.esb.core
-		${WORKINGDIR}/bpel/plugins/org.eclipse.bpel.apache.ode.deploy.ui
-		${WORKINGDIR}/tests/features/org.jboss.tools.test.feature
-		${WORKINGDIR}/portlet/features/org.jboss.tools.portlet.test.feature
-		${WORKINGDIR}/jst/features/org.jboss.tools.jst.feature
-		${WORKINGDIR}/jst/features/org.jboss.tools.jst.web.tiles.feature
-		"
-		/>
-		<for param="dir" list="${dirs}" delimiter=", 
-			">
-			<sequential>
-				<antcallback target="getArtifactVersion" return="artifactVersion">
-					<property name="dir" value="@{dir}" />
-				</antcallback>
-				<propertyregex property="activeDir"
-				               input="@{dir}"
-				               defaultvalue="@{dir}"
-				               regexp="${WORKINGDIR}/"
-				               replace=""
-				               casesensitive="true"
-				               override="true"
-				/>
-				<propertycopy name="expected.value" from="artifactVersion.${activeDir}" />
-				<assert failonerror="false"
-				        message="For ${activeDir}, artifactVersion = ${artifactVersion}; expected ${expected.value}"
-				>
-					<bool>
-						<equals arg1="${expected.value}" arg2="${artifactVersion}" />
-					</bool>
-				</assert>
-				<var name="expected.value" unset="true" />
-				<var name="artifactVersion" unset="true" />
-			</sequential>
-		</for>
-	</target>
-
-	<target name="test.getArtifactId" depends="init, test.expected.values">
-		<property name="dirs"
-		          value="
-		${WORKINGDIR}/esb/features/org.jboss.tools.esb.feature
-		${WORKINGDIR}/as/tests/org.jboss.ide.eclipse.as.archives.integration.test
-		${WORKINGDIR}/esb/plugins/org.jboss.tools.esb.core
-		"
-		/>
-		<for param="dir" list="${dirs}" delimiter=", 
-			">
-			<sequential>
-				<antcallback target="getArtifactId" return="artifactId">
-					<property name="dir" value="@{dir}" />
-				</antcallback>
-				<propertyregex property="activeDir"
-				               input="@{dir}"
-				               defaultvalue="@{dir}"
-				               regexp="${WORKINGDIR}/"
-				               replace=""
-				               casesensitive="true"
-				               override="true"
-				/>
-				<propertycopy name="expected.value" from="artifactId.${activeDir}" />
-				<assert failonerror="false"
-				        message="For ${activeDir}, artifactId = ${artifactId}; expected ${expected.value}"
-				>
-					<bool>
-						<equals arg1="${expected.value}" arg2="${artifactId}" />
-					</bool>
-				</assert>
-				<var name="expected.value" unset="true" />
-				<var name="artifactId" unset="true" />
-			</sequential>
-		</for>
-	</target>
-
-	<target name="test.getArtifactOsWsArch" depends="init, test.expected.values">
-		<property name="artifactIds"
-		          value="
-			org.mozilla.xpcom
-			org.mozilla.xulrunner.carbon.macosx
-			org.mozilla.xulrunner.cocoa.macosx
-			org.mozilla.xulrunner.gtk.linux.x86
-			org.mozilla.xulrunner.gtk.linux.x86_64
-			org.mozilla.xulrunner.win32.win32.x86
-		"
-		/>
-		<for param="artifactId" list="${artifactIds}" delimiter=", 
-			">
-			<sequential>
-				<echo level="debug">artifactId = @{artifactId}</echo>
-				<antcallback target="getArtifactOsWsArch" return="artifactOs, artifactWs, artifactArch">
-					<property name="artifactId" value="@{artifactId}" />
-				</antcallback>
-				<propertycopy name="expected.value.os" from="artifactOsWsArch.@{artifactId}.os" />
-				<propertycopy name="expected.value.ws" from="artifactOsWsArch.@{artifactId}.ws" />
-				<propertycopy name="expected.value.arch" from="artifactOsWsArch.@{artifactId}.arch" />
-				<assert failonerror="false"
-				        message="For @{artifactId}, artifactOs = ${artifactOs}; expected ${expected.value.os}"
-				>
-					<bool>
-						<equals arg1="${expected.value.os}" arg2="${artifactOs}" />
-					</bool>
-				</assert>
-				<assert failonerror="false"
-				        message="For @{artifactId}, artifactWs = ${artifactWs}; expected ${expected.value.ws}"
-				>
-					<bool>
-						<equals arg1="${expected.value.ws}" arg2="${artifactWs}" />
-					</bool>
-				</assert>
-				<assert failonerror="false"
-				        message="For @{artifactId}, artifactArch = ${artifactArch}; expected ${expected.value.arch}"
-				>
-					<bool>
-						<equals arg1="${expected.value.arch}" arg2="${artifactArch}" />
-					</bool>
-				</assert>
-				<var name="expected.value.os" unset="true" />
-				<var name="expected.value.ws" unset="true" />
-				<var name="expected.value.arch" unset="true" />
-			</sequential>
-		</for>
-
-	</target>
-
-	<target name="test.getArtifactType" depends="init, test.expected.values">
-		<property name="dirs"
-		          value="
-		${WORKINGDIR}/esb/features/org.jboss.tools.esb.feature
-		${WORKINGDIR}/as/tests/org.jboss.ide.eclipse.as.archives.integration.test
-		${WORKINGDIR}/esb/plugins/org.jboss.tools.esb.core
-		${WORKINGDIR}/esb/plugins/org.jboss.tools.esb.core
-		${WORKINGDIR}/bpel/plugins/org.eclipse.bpel.apache.ode.deploy.ui
-		${WORKINGDIR}/bpel/features/org.jboss.tools.bpel.sdk.feature
-		${WORKINGDIR}/bpel/plugins/org.eclipse.bpel.xpath10
-		${WORKINGDIR}/vpe/plugins/org.jboss.tools.vpe.ui.palette
-		${WORKINGDIR}/tests/features/org.jboss.tools.test.feature
-		${WORKINGDIR}/portlet/features/org.jboss.tools.portlet.test.feature
-		${WORKINGDIR}/jst/features/org.jboss.tools.jst.feature
-		${WORKINGDIR}/jst/features/org.jboss.tools.jst.web.tiles.feature
-		${WORKINGDIR}/flow/tests/org.jboss.tools.flow.common.test
-		${WORKINGDIR}/jbpm/tests/org.jboss.tools.flow.jpdl4.test
-		"
-		/>
-		<for param="dir" list="${dirs}" delimiter=", 
-			">
-			<sequential>
-				<antcallback target="getArtifactType" return="artifactType">
-					<property name="dir" value="@{dir}" />
-				</antcallback>
-				<propertyregex property="activeDir"
-				               input="@{dir}"
-				               defaultvalue="@{dir}"
-				               regexp="${WORKINGDIR}/"
-				               replace=""
-				               casesensitive="true"
-				               override="true"
-				/>
-				<propertycopy name="expected.value" from="artifactType.${activeDir}" />
-				<assert failonerror="false"
-				        message="For ${activeDir}, artifactType = ${artifactType}; expected ${expected.value}"
-				>
-					<bool>
-						<equals arg1="${expected.value}" arg2="${artifactType}" />
-					</bool>
-				</assert>
-				<var name="expected.value" unset="true" />
-				<var name="artifactType" unset="true" />
-			</sequential>
-		</for>
-	</target>
-
-</project>

Deleted: trunk/runstack.sh
===================================================================
--- trunk/runstack.sh	2010-06-23 17:14:05 UTC (rev 22963)
+++ trunk/runstack.sh	2010-06-23 17:15:48 UTC (rev 22964)
@@ -1,40 +0,0 @@
-#!/bin/bash
-
-#root of svn tree
-workingdir=~/workspace36/jbosstools-modular_build
-
-#use commandline args as list of components to build
-if [[ $# -lt 1 ]]; then
-	echo "Usage: $0 component1 component2 ..."
-	echo "Eg. $0 tests common jmx archives as"
-	echo "Eg. $0 jst jsf vpe struts seam -Dmaven.test.skip"
-	exit 1
-fi
-
-flags=""
-components=""
-while [ "$#" -gt 0 ]; do
-        case $1 in
-                '-'*) flags="$flags $1"; shift 1;;
-                *) components="$components $1"; shift 1;;
-        esac
-done
-
-# run builds w/o running tests
-for d in $components; do 
-	# build features, plugins, and tests, but do not RUN tests
-	#cd $workingdir; ./runtests.sh ${d}/ clean install -Dmaven.test.skip
-
-	# build features, plugins, and tests, then run ALL tests (don't stop after first failed test)
-	cd $workingdir; ./runtests.sh ${d}/ clean install --fail-at-end $flags
-done
-
-# collect compilation results and failures
-for d in $components; do 
-	cd $workingdir; echo "==== $d ===="
-	egrep -v "org\.|com\." $d/buildlog.latest.txt | egrep "SUCCESS"
-	egrep "FAILURE|SKIPPED" $d/buildlog.latest.txt
-	egrep -A1 "Cannot complete the request|depends on|satisfy dependency|Missing requirement|requires '.+'" $d/buildlog.latest.txt
-	echo ""
-done
-

Deleted: trunk/runtests.sh
===================================================================
--- trunk/runtests.sh	2010-06-23 17:14:05 UTC (rev 22963)
+++ trunk/runtests.sh	2010-06-23 17:15:48 UTC (rev 22964)
@@ -1,89 +0,0 @@
-#!/bin/bash
-
-# set corect path to mvn on your machine:
-mvn3=/opt/maven3/bin/mvn
-
-if [[ $# -lt 1 ]]; then
-	# some useful flags:
-	# -pl   - list of projects to build
-	# -o    - offline mode (don't search remote repos)
-	# -Dmaven.test.skip - compile but do not run tests
-        # --fail-at-end     - fail build after ALL tests have run, not at first failure
-	echo "Usage: $0 workingdir flags targets"
-	echo "Eg: $0 as/ -Dmaven.test.skip clean install"
-	echo "Eg: $0 bpel/tests/ -o --fail-at-end install"
-	exit 1;
-fi
-
-#echo "[runtests] $0 started on: `date +%H\:%M\:%S`";
-
-# environment variables
-PATH=.:/bin:/usr/bin:/usr/bin/X11:/usr/local/bin:/usr/X11R6/bin:`pwd`/../linux;export PATH
-
-#export USERNAME=`whoami`
-#echo "[runtests] Run as $USERNAME";
-#echo "[runtests] With PATH = $PATH";
-
-# fix for org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
-# fix for Failed to invoke suite():org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
-export CVS_RSH=ssh
-#ulimit -c unlimited; # set corefile size to unlimited; not allowed on build.eclipse
-
-#echo "[runtests] Set JAVA_HIGH_ZIPFDS=500 & LANG=C";
-#export JAVA_HIGH_ZIPFDS=500
-#export LANG=C
-
-usedPorts=""; maxPort=40
-for port in $(ps aux | egrep '[Xvnc|Xvfb]\ :' | egrep " :[0-9]+" | sed "s/\(\^\|.\+\)\(Xvfb\|Xvnc\) :\([0-9]\+\)\(.\+\|$\)/\3/g" | sort); do
-        if [[ $(echo $port | egrep "^:[0-9]+$") ]]; then
-                usedPorts=$usedPorts" "${port:1};
-                thisPort=${port:1}; (( thisPort -= 0 ));
-                if [[ $maxPort -lt $thisPort ]]; then maxPort=$thisPort; fi
-                #echo "[$usedPorts], $thisPort, $maxPort"
-        fi
-done
-(( xport = maxPort + 1 ));
-#echo "Existing DISPLAY ports include: $usedPorts."
-#echo "Use DISPLAY port :$xport"
-
-xCmd=""
-xvncExists=$(which Xvnc); xvncExists=${xvncExists##*no Xvnc *}
-if [ $xvncExists ]; then 
-	xCmd="Xvnc :${xport} -geometry 1024x768 -depth 24 -ac"
-else
-	xvfbExists=$(which Xvfb); xvfbExists=${xvfbExists##*no Xvfb *}
-		if [ $xvfbExists ]; then
-  			xCmd="Xvfb :${xport} -screen 0 1024x768x24 -ac"
-	else
-		echo "[runtests] WARNING! This script requires Xvfb or Xvnc. "
-		echo "[runtests] Without some way to run tests in a different display port, UI tests will run in front of you and you may accidentally interact with them."
-	fi
-fi
-
-if [[ $xCmd ]]; then 
-	#echo "[runtests] Using X server: '${xCmd}'"
-	${xCmd} &
-	export DISPLAY=localhost:${xport}.0
-	xhost +
-else
-	echo "[runtests] Warning! UI tests will run in the current UI display port (usually :0). Please avoid accidentally interacting with them."
-fi	
-
-
-# run tests
-echo "[runtests] [`date +%H\:%M\:%S`] Launching Tycho..."
-dir=$1; shift;
-
-cd $dir; $mvn3 2>&1 $* | tee buildlog.latest.txt
-
-echo "[runtests] [`date +%H\:%M\:%S`] Test run completed. "
-
-# xwd -silent -display :${xport} -root -out /tmp/snap.xwd; # save a snapshot
-
-############################# END RUN TESTS #############################
-
-# drop X server process threads used by tests
-if [[ -r /tmp/.X${xport}-lock ]]; then kill `cat /tmp/.X${xport}-lock`; fi
-if [[ -f /tmp/.X${xport}-lock ]]; then rm -fr /tmp/.X${xport}-lock; fi
-
-#echo "[runtests] ${0##*/} done: `date +%H\:%M\:%S`"

Deleted: trunk/svnignore.sh
===================================================================
--- trunk/svnignore.sh	2010-06-23 17:14:05 UTC (rev 22963)
+++ trunk/svnignore.sh	2010-06-23 17:15:48 UTC (rev 22964)
@@ -1,35 +0,0 @@
-#!/bin/bash
-tmpfile=/tmp/svn.ignore.txt
-echo "target
-buildlog.latest.txt
-bin
-build
-*.class
-" > $tmpfile
-
-dir="."; if [[ $1 ]]; then dir=$1; fi
-
-for p in com org net; do
-	for f in $(find $dir -mindepth 2 -type d -name "${p}.*" | sort); do 
-		pushd $f 2>&1 >/dev/null
-		echo $f
-		svn up --accept 'theirs-full'
-		svn propset svn:ignore --file $tmpfile .
-		popd 2>&1 >/dev/null
-		echo ""
-	done
-done
-rm -fr $tmpfile
-svn diff $dir
-
-echo ""
-echo "==================================================================="
-echo ""
-echo "Pending changes:"
-svn stat $dir
-
-echo ""
-echo "To commit changes, type:
-  cd $dir; svn ci -m \"svn:ignore\""
-echo ""
-



More information about the jbosstools-commits mailing list