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 \
"(a)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 \ "(a)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="(a){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="(a){dir}/pom.xml" type="file" />
+ </not>
+ <istrue value="${overwrite.existing.pom.xml}" />
+ </or>
+ <then>
+ <echo file="(a){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">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <relativePath>@{parentpom}</relativePath>
+ <groupId>${projectName}</groupId>
+ <artifactId>${projectName}.parent.pom</artifactId>
+ <version>${pomVersion}</version>
+ </parent>
+ <groupId>${projectName}</groupId>
+ <artifactId>${artifactId}</artifactId>
+ <version>${artifactVersion}</version>
+ <packaging>${artifactType}</packaging>
+ <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="(a){dir}/pom.xml"
append="true"> <module>${subdirSuffix}</module>
+</echo>
+ <var name="subdirSuffix" unset="true" />
+ </sequential>
+ </for>
+ <echo file="(a){dir}/pom.xml"
append="true"> </modules>
+</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="(a){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="(a){dir}/pom.xml" type="file" />
+ </not>
+ <istrue value="${overwrite.existing.pom.xml}" />
+ </or>
+ <then>
+ <echo file="(a){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">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <relativePath>@{parentpom}</relativePath>
+ <groupId>${projectName}</groupId>
+ <artifactId>${projectName}.parent.pom</artifactId>
+ <version>${pomVersion}</version>
+ </parent>
+ <groupId>${projectName}</groupId>
+ <artifactId>${artifactId}</artifactId>
+ <version>${artifactVersion}</version>
+ <packaging>${artifactType}</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="(a){dir}/pom.xml"
append="true"> <build>
+ <plugins>
+ <plugin>
+ <groupId>org.sonatype.tycho</groupId>
+ <artifactId>target-platform-configuration</artifactId>
+ <version>${tychoVersion}</version>
+ <configuration>
+ <resolver>p2</resolver>
+ <environments>
+ <environment>
+ <os>${artifactOs}</os>
+ <ws>${artifactWs}</ws>
+ <arch>${artifactArch}</arch>
+ </environment>
+ </environments>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</echo>
+ </then>
+ </if>
+ <echo file="(a){dir}/pom.xml"
append="true"></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="(a){subdir}/META-INF/MANIFEST.MF"
type="file" />
+ <available file="(a){subdir}/feature.xml" type="file" />
+ </or>
+ <then>
+ <!-- valid place to create a pom -->
+ <writeModulePom dir="@{subdir}"
parentpom="../${pathToParentPom}@{parentpom}" />
+ </then>
+ <elseif>
+ <available file="(a){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="${artifactVersion}""
+
replace="version="${artifactVersion.from.tag}""
+ 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.(a){artifactId}.os" />
+ <propertycopy name="expected.value.ws"
from="artifactOsWsArch.(a){artifactId}.ws" />
+ <propertycopy name="expected.value.arch"
from="artifactOsWsArch.(a){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 \
"(a)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 \ "(a)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="(a){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="(a){dir}/pom.xml" type="file" />
- </not>
- <istrue value="${overwrite.existing.pom.xml}" />
- </or>
- <then>
- <echo file="(a){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">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <relativePath>@{parentpom}</relativePath>
- <groupId>${projectName}</groupId>
- <artifactId>${projectName}.parent.pom</artifactId>
- <version>${pomVersion}</version>
- </parent>
- <groupId>${projectName}</groupId>
- <artifactId>${artifactId}</artifactId>
- <version>${artifactVersion}</version>
- <packaging>${artifactType}</packaging>
- <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="(a){dir}/pom.xml"
append="true"> <module>${subdirSuffix}</module>
-</echo>
- <var name="subdirSuffix" unset="true" />
- </sequential>
- </for>
- <echo file="(a){dir}/pom.xml"
append="true"> </modules>
-</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="(a){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="(a){dir}/pom.xml" type="file" />
- </not>
- <istrue value="${overwrite.existing.pom.xml}" />
- </or>
- <then>
- <echo file="(a){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">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <relativePath>@{parentpom}</relativePath>
- <groupId>${projectName}</groupId>
- <artifactId>${projectName}.parent.pom</artifactId>
- <version>${pomVersion}</version>
- </parent>
- <groupId>${projectName}</groupId>
- <artifactId>${artifactId}</artifactId>
- <version>${artifactVersion}</version>
- <packaging>${artifactType}</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="(a){dir}/pom.xml"
append="true"> <build>
- <plugins>
- <plugin>
- <groupId>org.sonatype.tycho</groupId>
- <artifactId>target-platform-configuration</artifactId>
- <version>${tychoVersion}</version>
- <configuration>
- <resolver>p2</resolver>
- <environments>
- <environment>
- <os>${artifactOs}</os>
- <ws>${artifactWs}</ws>
- <arch>${artifactArch}</arch>
- </environment>
- </environments>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</echo>
- </then>
- </if>
- <echo file="(a){dir}/pom.xml"
append="true"></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="(a){subdir}/META-INF/MANIFEST.MF"
type="file" />
- <available file="(a){subdir}/feature.xml" type="file" />
- </or>
- <then>
- <!-- valid place to create a pom -->
- <writeModulePom dir="@{subdir}"
parentpom="../${pathToParentPom}@{parentpom}" />
- </then>
- <elseif>
- <available file="(a){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="${artifactVersion}""
-
replace="version="${artifactVersion.from.tag}""
- 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.(a){artifactId}.os" />
- <propertycopy name="expected.value.ws"
from="artifactOsWsArch.(a){artifactId}.ws" />
- <propertycopy name="expected.value.arch"
from="artifactOsWsArch.(a){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 ""
-