<?xml version="1.0" encoding="UTF-8"?>



  <!-- 
       This file is to use Ant to run XSL Transform on on aggrcon files.

       Its use for when a rebuild is needed, and as input, we want to 
       take everyone's previous output, to minimize risk of changes 
       being introduced, that we don't know about. So we leave aggrcon files
       as they were, but change only the repository 'location' attribute.

       As it currently is, it runs from in the workspace, where 
       the 'tools' project is peer of the 'build' project. 
       The new files (for now) are put in the newFiles directory.
       Once confidence is gained, could add some more Ant to copy 
       newFiles over those in build project.
  -->

<project
  default="main"
  basedir=".">

  <target
    name="main"
    depends="init, transformFiles, copyFiles">
    <echo message="Transformed aggrcon files and copied them back to build project" />
  </target>

  <target
    name="copyFiles"
    depends="init, transformFiles">
    <available
      file="${outputDirectory}"
      type="dir"
      property="outputExists" />
    <fail
      unless="outputExists"
      message="ERROR: output directory did not exist: ${outputDirectory}" />

    <copy
      overwrite="true" failonerror="true"
      todir="${inputDirectory}">
      <fileset
        dir="${outputDirectory}"
        includes="*.aggrcon" />
    </copy>

    <delete dir="${outputDirectory}">
</delete>

  </target>
  <target
    name="init"
    unless="initialized">
    <property
      name="inputDirectory"
      value="${basedir}/../../org.eclipse.simrel.build" />
    <property
      name="outputDirectory"
      value="${basedir}/newFiles" />
    <property
      name="initialized"
      value="true" />
  </target>
  <target
    name="transformFiles"
    depends="init">
    <!-- 
        Change the value of this property, or pass in on -D variable, to 
        specify the "common repository" for all contributions to use.
    -->
    <property
      name="newRepository"
      value="http://download.eclipse.org/releases/neon/201609281000/" />

    <echo message="calling the XSLT Ant task" />
    <echo message="  transforming files in ${inputDirectory}" />
    <echo message="  writing them to ${outputDirectory}" />
    <echo message="  newRepository ${newRepository}" />
    <available
      file="${inputDirectory}"
      type="dir"
      property="inputExists" />
    <fail
      unless="inputExists"
      message="ERROR: input directory did not exist: ${inputDirectory}" />
    <xslt
      basedir="${inputDirectory}"
      destdir="${outputDirectory}"
      style="changeAllRepos.xsl"
      includes="*.aggrcon"
      extension=".aggrcon"
      force="true">
      <param
        name="newRepository"
        expression="${newRepository}" />
    </xslt>
  </target>

</project>
