<project
    name="AggregationTasks"
    basedir="."
    default="default">
    <property
        environment="env"/>
    <!--
        This property file name is itself a property, so it can be overridden
        on one machine versus another. We do it this way, instead of just specifying
        -propertyFile on command line, so that the property values can be "nested"
        in other property values and evaluated lazily.
    -->

    <property
        name="aggrPropertyFile"
        value="aggr.properties"/>

    <property
        file="${aggrPropertyFile}"/>

    <!-- 
	unrewriteMapsLine is a variable, but should never have to be chagned for current sim rel 
	We make the strong assumption that, in *.b3aggrcon file, this string occurs only in 
	repository location attributes. If not true, more complex parsing/replacement would be required.
	-->

    <property
        name="commonRepositoryDownloadURLValue"
        value="http://download.eclipse.org"/>

    <target
        name="installAggregatorAndTools"
        depends="init, savePrevious,installAggregator,installRelengTools">

        <echo
            message="Installed fresh Eclipse, Aggregator, and Tools"/>

    </target>

    <target
        name="installAggregator"
        depends="init, savePrevious">
        <property
            name="APP_NAME"
            value="org.eclipse.equinox.p2.director"/>
        <property
            name="OTHER_ARGS_AGG"
            value="-metadataRepository http://download.eclipse.org/modeling/emft/b3/headless-3.7/ -artifactRepository http://download.eclipse.org/modeling/emft/b3/headless-3.7/ -installIU org.eclipse.b3.aggregator.engine.feature.feature.group"/>
        <!-- usually do not need the version, just to "get the latest" from
            buckminster builder site -version 1.0.0.v20090415-1651 -->
        <property
            name="VM_ARGS"
            value="-vmargs -Xmx256m"/>


        <mkdir
            dir="${ECLIPSE_HOME}"/>

        <untar
            compression="gzip"
            overwrite="true"
            src="${FULL_FILENAME}"
            dest="${ECLIPSE_HOME}"/>

        <!-- weird this chmod is required? probably ant bug -->
        <chmod
            file="${ECLIPSE_HOME}/eclipse/eclipse"
            perm="ugo+x"
            verbose="true"/>

        <!-- and now get latest -->
        <exec
            executable="${eclipseExecutable}"
            dir="${basedir}"
            failonerror="true">
            <arg
                line="-data ${eclipseWorkspace} -debug -nosplash --launcher.suppressErrors -vm ${JAVA_EXEC_DIR} -application ${APP_NAME} ${OTHER_ARGS_AGG} ${VM_ARGS}"/>
        </exec>
    </target>
    <target
        name="installTests"
        depends="init, savePreviousTest">
        <property
            name="APP_NAME"
            value="org.eclipse.equinox.p2.director"/>

        <!-- usually do not need the version, just to "get the latest" from
	            buckminster builder site -version 1.0.0.v20090415-1651 -->
        <property
            name="VM_ARGS"
            value="-vmargs -Xmx256m"/>


        <mkdir
            dir="${ECLIPSE_HOME_TEST}"/>

        <untar
            compression="gzip"
            overwrite="true"
            src="${FULL_FILENAME}"
            dest="${ECLIPSE_HOME_TEST}"/>

        <!-- weird this chmod is required? probably ant bug -->
        <chmod
            file="${ECLIPSE_HOME_TEST}/eclipse/eclipse"
            perm="ugo+x"
            verbose="true"/>

        <cvs
            failonerror="true"
            cvsRoot="${CVS_INFO}/cvsroot/callisto"
            package="${RELENG_TESTS}"
            dest="${ECLIPSE_HOME_TEST}/eclipse/dropins"
            command="export"
            tag="HEAD"/>

    </target>
    <target
        name="installRelengTools"
        depends="init">
        <property
            name="APP_NAME"
            value="org.eclipse.equinox.p2.director"/>
        <property
            name="OTHER_ARGS_TOOLS"
            value="-metadataRepository http://download.eclipse.org/webtools/releng/repository/ -artifactRepository http://download.eclipse.org/webtools/releng/repository/ -installIU org.eclipse.wtp.releng.tools.feature.feature.group"/>

        <property
            name="VM_ARGS"
            value="-vmargs -Xmx256m"/>

        <!-- install latest -->
        <exec
            executable="${eclipseExecutable}"
            dir="${basedir}"
            failonerror="true">
            <arg
                line="-data ${eclipseWorkspace} -debug -nosplash --launcher.suppressErrors -vm ${JAVA_EXEC_DIR} -application ${APP_NAME} ${OTHER_ARGS_TOOLS} ${VM_ARGS}"/>
        </exec>
    </target>

    <target
        name="getModel"
        depends="init"
        unless="modelRetrived">
        <echo
            message="  removing all of previous model project ..."/>
        <delete
            dir="${BUILD_MODEL_DIR}"
            failonerror="false"/>
        <cvs
            failonerror="true"
            cvsRoot="${CVS_INFO}/cvsroot/callisto"
            package="${BUILD_MODEL}"
            dest="${BUILD_HOME}"
            command="export"
            tag="HEAD"/>
        <property
            name="modelRetrived"
            value="true"/>
    </target>

    <target
        name="runBothBuilders"
        depends="init,getModel,rewriteRepositoryURL">

        <antcall
            target="runBuckyBuild"/>

        <antcall
            target="runAggregator"/>



    </target>
    <target
        name="runAggregator"
        depends="init,getModel,rewriteRepositoryURL">
        <!--
            If not otherwise set in properties file, use these values. Note
            the build.eclipse.org production machine must override these values for property
            values appropriate for it.
        -->

        <property
            name="AGGREGATOR_APP_ARGS"
            value="-buildModel ${BUILD_MODEL_DIR}/simrel.b3aggr
            -buildRoot ${AGGREGATOR_RESULTS} -mirrorReferences -packedStrategy unpackAsSibling
            -logLevel DEBUG -emailFromName SimRelAggregator
            -logURL ${logURL}"/>

        <!-- Important: on any non-production machines it is important to _not_ use
            eclipse.p2.mirrors=false, so this value should be supplied by calling script's
            properties. Note, we include '-vmargs' here, in case there are not any. Not
            sure if the use of -vmargs _requires_ arguments or not, but probably would.
            note: -Declipse.p2.MD5Check=false may be needed as a workaround for bug [253713]
            (should not actually be required ... but have left note for historical reference)
            note: rememeber that JAVA_6 should not be used for jar processor, see
            for example, bug 244603 and bug 279596. -->
        <property
            name="BUILDER_VM_ARGS"
            value="-vmargs -Xmx384m -Dorg.eclipse.update.jarprocessor.pack200=${JAVA_6_HOME}/jre/bin"/>
        <echo
            message="AGGREGATOR_APP_ARGS: ${AGGREGATOR_APP_ARGS}"/>

        <!-- we will clean the aggregation directory ourselves, as work around for bug 354321   
    		https://bugs.eclipse.org/bugs/show_bug.cgi?id=354321
    		-->
        <echo message="Removing any previous aggregation results, from ${AGGREGATOR_RESULTS}"/>
    	<delete dir="${AGGREGATOR_RESULTS}" failonerror="false" />
        <mkdir dir="${AGGREGATOR_RESULTS}"/>

        <exec
            executable="${eclipseExecutable}"
            dir="${basedir}"
            failonerror="true">
            <arg
                value="-debug"/>
            <arg
                value="-nosplash"/>
            <arg
                line="-data ${eclipseWorkspace}"/>
            <arg
                line="-vm ${JAVA_6_HOME}/jre/bin"/>
            <arg
                value="--launcher.suppressErrors"/>
            <arg
                line="-application org.eclipse.b3.cli.headless"/>
            <arg
                value="aggregate"/>
            <arg
                line="--buildId ${buildTimestamp}"/>
            <arg
                line="${AGGREGATOR_APP_ARGS}"/>
            <arg
                line="${BUILDER_VM_ARGS}"/>
        </exec>
    </target>

    <target
        name="runAggregatorBuildOnly"
        depends="init,getModel,rewriteRepositoryURL">
        <!--
	            If not otherwise set in properties file, use these values. Note
	            the build.eclipse.org production machine must override these values for property
	            values appropriate for it.
	        -->

        <property
            name="AGG_APP_ARGS"
            value="${AGGREGATOR_APP_ARGS_BUILDONLY}"/>

        <!-- Important: on any non-production machines it is important to _not_ use
	            eclipse.p2.mirrors=false, so this value should be supplied by calling script's
	            properties. Note, we include '-vmargs' here, in case there are not any. Not
	            sure if the use of -vmargs _requires_ arguments or not, but probably would.
	            note: -Declipse.p2.MD5Check=false may be needed as a workaround for bug [253713]
	            (should not actually be required ... but have left note for historical reference)
	            note: rememeber that JAVA_6 should not be used for jar processor, see
	            for example, bug 244603 and bug 279596. -->
        <property
            name="BUILDER_VM_ARGS"
            value="-vmargs -Xmx384m -Dorg.eclipse.update.jarprocessor.pack200=${JAVA_6_HOME}/jre/bin"/>
        <echo
            message="AGG_APP_ARGS: ${AGG_APP_ARGS}"/>
        <exec
            executable="${eclipseExecutable}"
            dir="${basedir}"
            failonerror="true">
            <arg
                value="-debug"/>
            <arg
                value="-nosplash"/>
            <arg
                line="-data ${eclipseWorkspace}"/>
            <arg
                line="-vm ${JAVA_6_HOME}/jre/bin"/>
            <arg
                value="--launcher.suppressErrors"/>
            <arg
                line="-application org.eclipse.b3.cli.headless"/>
            <arg
                value="aggregate"/>
            <arg
                line="--buildId ${buildTimestamp}"/>
            <arg
                line="${AGG_APP_ARGS}"/>
            <arg
                line="${BUILDER_VM_ARGS}"/>
        </exec>
    </target>

    <target
        name="runAggregatorVerifyOnly"
        depends="init,getModel,rewriteRepositoryURL">
        <!--
                If not otherwise set in properties file, use these values. Note
                the build.eclipse.org production machine must override these values for property
                values appropriate for it.
            -->

        <property
            name="AGG_APP_ARGS"
            value="${AGGREGATOR_APP_ARGS_VERIFYONLY}"/>

        <!-- Important: on any non-production machines it is important to _not_ use
                eclipse.p2.mirrors=false, so this value should be supplied by calling script's
                properties. Note, we include '-vmargs' here, in case there are not any. Not
                sure if the use of -vmargs _requires_ arguments or not, but probably would.
                note: -Declipse.p2.MD5Check=false may be needed as a workaround for bug [253713]
                (should not actually be required ... but have left note for historical reference)
                note: rememeber that JAVA_6 should not be used for jar processor, see
                for example, bug 244603 and bug 279596. -->
        <property
            name="BUILDER_VM_ARGS"
            value="-vmargs -Xmx384m -Dorg.eclipse.update.jarprocessor.pack200=${JAVA_6_HOME}/jre/bin"/>
        <echo
            message="AGG_APP_ARGS: ${AGG_APP_ARGS}"/>

        <exec
            executable="${eclipseExecutable}"
            dir="${basedir}"
            failonerror="true">
            <arg
                value="-debug"/>
            <arg
                value="-nosplash"/>
            <arg
                line="-data ${eclipseWorkspace}"/>
            <arg
                line="-vm ${JAVA_6_HOME}/jre/bin"/>
            <arg
                value="--launcher.suppressErrors"/>
            <arg
                line="-application org.eclipse.b3.cli.headless"/>
            <arg
                value="aggregate"/>
            <arg
                line="--buildId ${buildTimestamp}"/>
            <arg
                line="${AGG_APP_ARGS}"/>
            <arg
                line="${BUILDER_VM_ARGS}"/>
        </exec>
    </target>


    <target
        name="runHybrid"
        depends="init,getModel,rewriteRepositoryURL">
        <!--
	            If not otherwise set in properties file, use these values. Note
	            the build.eclipse.org production machine must override these values for property
	            values appropriate for it.
	        -->

        <property
            name="HYBRID_APP_ARGS"
            value="--buildModel ${BUILD_MODEL_DIR}/simrel.b3aggr
	            --buildRoot ${HYBRID_RESULTS} --mirrorReferences --packedStrategy unpackAsSibling
	            --mavenResult --logLevel DEBUG --emailFromName SimRelAggregator
	            --logURL ${logURL}"/>

        <!-- Important: on any non-production machines it is important to _not_ use
	            eclipse.p2.mirrors=false, so this value should be supplied by calling script's
	            properties. Note, we include '-vmargs' here, in case there are not any. Not
	            sure if the use of -vmargs _requires_ arguments or not, but probably would.
	            note: -Declipse.p2.MD5Check=false may be needed as a workaround for bug [253713]
	            (should not actually be required ... but have left note for historical reference)
	            note: rememeber that JAVA_6 should not be used for jar processor, see
	            for example, bug 244603 and bug 279596. -->
        <property
            name="BUILDER_VM_ARGS"
            value="-vmargs -Xmx384m -Dorg.eclipse.update.jarprocessor.pack200=${JAVA_6_HOME}/jre/bin"/>

        <exec
            executable="${eclipseExecutable}"
            dir="${basedir}"
            failonerror="true">
            <arg
                value="-debug"/>
            <arg
                value="-nosplash"/>
            <arg
                line="-data ${eclipseWorkspace}"/>
            <arg
                line="-vm ${JAVA_6_HOME}/jre/bin"/>
            <arg
                value="--launcher.suppressErrors"/>
            <arg
                line="-application org.eclipse.b3.cli.headless"/>
            <arg
                value="aggregate"/>
            <arg
                line="--buildId ${buildTimestamp}"/>
            <arg
                line="${HYBRID_APP_ARGS}"/>
            <arg
                line="${BUILDER_VM_ARGS}"/>
        </exec>
    </target>

    <target
        name="init"
        depends="getBuildTimestamp, getJobName, getBuildWorkarea"
        unless="isInitialized">

        <property
            name="CVS_INFO"
            value=":pserver:anonymous@dev.eclipse.org:"/>

        <echo
            message="CVS_INFO: ${CVS_INFO}"/>

        <!-- often, especially for Huson slaves, it is easiest to set hostForURL "manually" in properties or 
    	on command line, e.g. -DhostForURL=hudson ... but, if not defined yet, we'll fallback to reasonable guess -->
        <property
            name="hostForURL"
            value="${HOSTNAME}"/>

        <condition
            property="logURL"
            value="${LOG_URL}"
            else="${hostForURL}">
            <isset
                property="LOG_URL"/>
        </condition>
        <property
            name="eclipseWorkspace"
            value="${buildWorkarea}/eclipseworkingspace"/>

        <!-- if the eclipse workspace exists, remove it, to make sure we are starting "fresh". Eclipse will create it. Be sure some "archive artifacts" job saves it away, if desired. -->
        <delete
            dir="${eclipseWorkspace}"
            quiet="true"/>

        <property
            name="eclipseExecutable"
            value="${ECLIPSE_EXE}"/>

        <available
            file="${ECLIPSE_HOME}/eclipse"
            type="dir"
            property="eclipseExists"/>

        <available
            file="${ECLIPSE_HOME_TEST}/eclipse"
            type="dir"
            property="eclipseTestExists"/>

        <echo
            message="aggrPropertyFile: ${aggrPropertyFile}"/>
        <echo
            message="buildId: ${buildTimestamp}"/>
        <echo
            message="user.dir: ${user.dir}"/>
        <echo
            message="user.home: ${user.home}"/>
        <echo
            message="Eclipse WORKSPACE: ${eclipseWorkspace}"/>
        <echo
            message="PATH: ${env.PATH}"/>
        <echo
            message="JAVA_HOME: ${JAVA_HOME}"/>
        <echo
            message="hostForURL: ${hostForURL}"/>
        <echo
            message="JOB_NAME: ${env.JOB_NAME}"/>
        <echo
            message="BUILD_NUMBER: ${env.BUILD_NUMBER}"/>
        <echo
            message="logURL: ${logURL}"/>
        <echo
            message="ECLIPSE_EXE:  ${ECLIPSE_EXE}"/>

        <echo
            message="BUILDER_VM_ARGS: ${BUILDER_VM_ARGS}"/>
        <echoproperties/>
        <!-- quick fail, if set up wrong -->
        <fail
            unless="BUILD_HOME"
            message="BUILD_HOME must be set before running this script"/>

        <!--
            no need to initialize twice
        -->
        <property
            name="isInitialized"
            value="true"/>

    </target>
    <target
        name="getBuildTimestamp"
        depends="getHudsonTimestamp"
        unless="buildTimestamp">
        <tstamp>
            <format
                property="buildTimestamp"
                pattern="yyyy-MM-dd_HH-mm-ss"
                timezone="UTC_TIME"/>
        </tstamp>
        <echo
            message="Using ant computed timestamp"/>
    </target>
    <target
        name="getHudsonTimestamp"
        depends="getCCTimestamp"
        unless="buildTimestamp"
        if="env.BUILD_ID">
        <property
            name="buildTimestamp"
            value="${env.BUILD_ID}"/>
        <echo
            message="Using timestamp from Hudson Build ID"/>
    </target>
    <target
        name="getCCTimestamp"
        unless="buildTimestamp"
        if="cctimestamp">
        <property
            name="buildTimestamp"
            value="${cctimestamp}"/>
        <echo
            message="Using timestamp from CC time stamp"/>
    </target>
    <target
        name="getJobName"
        depends="getHudsonJobName"
        unless="jobName">
        <property
            name="jobName"
            value="localbuild"/>
        <echo
            message="Using default jobName: localbuild"/>
    </target>
    <target
        name="getHudsonJobName"
        depends="getCCJobName"
        unless="jobName"
        if="env.JOB_NAME">
        <property
            name="jobName"
            value="${env.JOB_NAME}"/>
        <echo
            message="Using jobName from Hudson Buider: ${jobName}"/>
    </target>
    <target
        name="getCCJobName"
        unless="jobName"
        if="projectname">
        <property
            name="jobName"
            value="${projectname}"/>
        <echo
            message="Using jobName from CC Builder: ${jobName}"/>
    </target>
    <target
        name="getBuildWorkarea"
        depends="getJobName, getHudsonBuildWorkarea"
        unless="buildWorkarea">
        <property
            name="buildWorkarea"
            value="${basedir}"/>
        <echo
            message="Using default buildWorkarea: ${buildWorkarea}"/>
    </target>
    <target
        name="getHudsonBuildWorkarea"
        depends="getCCBuildWorkarea"
        unless="buildWorkarea"
        if="env.HUDSON_HOME">
        <property
            name="buildWorkarea"
            value="${env.WORKSPACE}"/>
        <echo message="Using buildWorkarea from Hudson Builder: ${buildWorkarea}"/>
    </target>
    <target
        name="getCCBuildWorkarea"
        unless="buildWorkarea"
        if="env.PROJECT_PROJECTS">
        <property
            name="buildWorkarea"
            value="${env.PROJECT_PROJECTS}/${jobName}/${buildTimestamp}"/>
        <echo
            message="Using buildWorkarea from CC Builder: ${buildWorkarea}"/>
    </target>

    <target
        name="savePrevious"
        depends="init"
        if="eclipseExists"
        unless="previousSaved">
        <!-- remember, old ones have to be maually cleaned up, from time to time -->
        <move
            verbose="true"
            todir="${ECLIPSE_HOME}/eclipse${buildTimestamp}">
            <fileset
                dir="${ECLIPSE_HOME}/eclipse"/>
        </move>

        <property
            name="previousSaved"
            value="true"/>

    </target>

    <target
        name="savePreviousTest"
        depends="init"
        if="eclipseTestExists">
        <!-- remember, old ones have to be maually cleaned up, from time to time -->
        <fail unless="buildTimestamp"/>

        <move todir="${ECLIPSE_HOME_TEST}/eclipse${buildTimestamp}">
            <fileset dir="${ECLIPSE_HOME_TEST}/eclipse"/>
        </move>

    </target>

    <!-- Only rewrite, if a value has been provided -->
    <target
        name="rewriteRepositoryURL"
        if="rewriteRepositoryURLValue">
        <replace
            dir="${BUILD_MODEL_DIR}"
            token="${commonRepositoryDownloadURLValue}"
            value="${rewriteRepositoryURLValue}">
            <include name="*.b3aggrcon"/>
            <!--   <exclude name="ep.b3aggrcon"/> -->
           <!-- <exclude name="equinox.b3aggrcon"/> -->
        </replace>
        <echo message="Rewrote repository location URLs ..."/>
        <echo message="        From: ${commonRepositoryDownloadURLValue}"/>
        <echo message="          To: ${rewriteRepositoryURLValue}"/>
        <!--  <echo message="   Excluding: ep.b3aggrcon"/> -->
        <!-- <echo message="   Excluding: ep.b3aggrcon, equinox.b3aggrcon"/> -->

    </target>

    <target
        name="default">
        <echo
            message="There is no default target for this build file"/>
    </target>
</project>