<?xml version="1.0"?>
<!--/*******************************************************************************
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution.
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
* and the Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
*   Ant naming conventions:
*   - regardless of the actual OS platform,'/' is the directory separator
*     (Ant will convert as appropriate).
*   - multi-word properties use periods '.'
*     - properties ending in .jar define jarfile names only (no path)
*     - properties ending in .lib are fully qualified jars (path and filename)
*     - properties ending in .dir are directory paths
*     - properties ending in .path are path refid names (classpath fragments)
*   - multi-word targets use hyphens '-'
*     - targets beginning with test- are reserved for high level test targets,
*       and are used in test results parsing
*     - targets typically use the form <action>-<object>-<type> (ie. package-bundle-zip)
*   - multi-word macros use underscores '_'
*   - multi-word macro attributes are concatinated
*     e.g. 'runpathref'
*   - multi-word tasks (taskdef) names are concatinated
*     e.g. 'validateconnection'
*   - OS environment variables are in ALLCAPS and have 'env' as a prefix
*     e.g. ${env.XXX}.
*   - Ant properties are lower case.
*
* Contributors:
*     egwin    - initial implementation
#******************************************************************************/-->
<project name="eclipselink.archive.releases" default="generate-archives" basedir=".">
    <available file="../updates" type="dir" property="updates.is.local"/>
    <fail message="Not running from 'updates' directory." unless="updates.is.local"/>

    <target name="init" >
        <dirname  property="build.location_temp" file="${ant.file.eclipselink.archive.releases}"/>
        <pathconvert targetos="unix" property="build.location">
            <path>
                <pathelement location="${build.location_temp}"/>
            </path>
        </pathconvert>
        <echo message="build.location = '${build.location}'"/>

        <!-- property name="custom.tasks.lib" value="${build.location}/ant_customizations.jar"/>
        <property name="custom.say.task.class" value="org.eclipse.persistence.buildtools.ant.taskdefs.Say"/>
        <taskdef name="say" classname="${custom.say.task.class}" classpath="${custom.tasks.lib}"/ -->

        <property name="1.1.2" value="1.1.2.v20090612-r4475"/>
        <property name="1.1.3" value="1.1.3.v20091002-r5404"/>
        <property name="1.1.4" value="1.1.4.v20100812-r7860"/>
        <property name="2.0.1" value="2.0.1.v20100213-r6600"/>
        <property name="2.0.2" value="2.0.2.v20100323-r6872"/>
        <property name="2.1.0" value="2.1.0.v20100614-r7608"/>
        <property name="2.1.1" value="2.1.1.v20100817-r8050"/>
        <property name="2.1.2" value="2.1.2.v20101206-r8635"/>
        <property name="2.1.3" value="2.1.3.v20110304-r9073"/>
        <property name="2.2.0" value="2.2.0.v20110202-r8913"/>
        <property name="2.2.1" value="2.2.1.v20110722-r9776"/>
        <property name="2.3.0" value="2.3.0.v20110604-r9504"/>
        <property name="2.3.1" value="2.3.1.v20111018-r10243"/>
        <property name="2.3.2" value="2.3.2.v20111125-r10461"/>
        <property name="2.3.3" value="2.3.3.v20120629-r11760"/>
        <property name="2.4.0" value="2.4.0.v20120608-r11652"/>
        <property name="2.4.1" value="2.4.1.v20121003-ad44345"/>
    </target>

    <target name="archive-p2-child" if="${release}.ready">
        <echo message="Creating archive '${release}.zip' of p2 child '${release}'..."/>
        <delete file="${release}.zip" failonerror="false"/>
        <zip destfile="${release}.zip">
            <zipfileset dir="${release}">
                <include name="**/*"/>
            </zipfileset>
        </zip>
    </target>

    <target name="generate-archives" depends="init">
        <check_release releaseProperty="1.1.2"/>
        <check_release releaseProperty="1.1.3"/>
        <check_release releaseProperty="1.1.4"/>
        <check_release releaseProperty="2.0.1"/>
        <check_release releaseProperty="2.0.2"/>
        <check_release releaseProperty="2.1.0"/>
        <check_release releaseProperty="2.1.1"/>
        <check_release releaseProperty="2.1.2"/>
        <check_release releaseProperty="2.1.3"/>
        <check_release releaseProperty="2.2.0"/>
        <check_release releaseProperty="2.2.1"/>
        <check_release releaseProperty="2.3.0"/>
        <check_release releaseProperty="2.3.1"/>
        <check_release releaseProperty="2.3.2"/>
        <check_release releaseProperty="2.3.3"/>
        <check_release releaseProperty="2.4.0"/>
        <check_release releaseProperty="2.4.1"/>
    </target>

    <macrodef name="check_release">
        <!-- release is the property name of the release -->
        <attribute name="releaseProperty"/>
        <sequential>
            <echo message=" "/>
            <echo message="Checking Release: @{releaseProperty} is '${@{releaseProperty}}'"/>
            <condition property="${@{releaseProperty}}.ready">
                <and>
                    <available file="${build.location}/${@{releaseProperty}}" type="dir"/>
                    <not>
                        <available file="${build.location}/${@{releaseProperty}}.zip"/>
                    </not>
                </and>
            </condition>
            <!-- say message="Calling 'archive-p2-child' for '${@{releaseProperty}}' (Ready)"         if="${@{releaseProperty}}.ready"/>
            <say message="Calling 'archive-p2-child' for '${@{releaseProperty}}' (Not-Ready)" unless="${@{releaseProperty}}.ready"/ -->
            <antcall target="archive-p2-child">
                <param name="release" value="${@{releaseProperty}}"/>
            </antcall>
        </sequential>
    </macrodef>


</project>
