<?xml version="1.0"?>
<!--

  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

-->

<project name="downloads" default="main" basedir=".">
	<property name="FLEX_HOME" location=".."/>

	<!-- properties -->
	<property file="${FLEX_HOME}/build.properties"/>

    <property name="lib.dir" value="${FLEX_HOME}/lib"/>
    
    <!-- 
        If you change either lib.ext.dir or lib.opt.dir you need to change
        classpaths in compiler build.xml.
        
        If you change lib.ext.dir you also need to change paths in
        MxmlScanner.getXercesClassLoader() and classpath in xerces-path build.xml.
    --> 
    <property name="lib.ext.dir" value="${lib.dir}/external"/>      
    <property name="lib.opt.dir" value="${lib.ext.dir}/optional"/>

	<property name="download.dir" value="${FLEX_HOME}/in"/>

    <property name="batik.zip.dir" value="batik-1.7"/>
    <property name="batik.dir" value="thirdparty/batik"/>
    <property name="velocity.zip.dir" value="velocity-1.4"/>
    <property name="velocity.dir" value="thirdparty/velocity"/>
    
    <property name="maven.search.url" value="https://search.maven.org/remotecontent?filepath="/>
    <property name="flexToolApi.name" value="flex-tool-api"/>
    <property name="flexToolApi.version" value="1.0.0"/>
    <property name="blazeds.name" value="flex-messaging-common"/>
    <property name="blazeds.version" value="4.7.2"/>

	<!--
	   Notes:
	       For Apache, the JARS must be removed from the repository.
	       Every attempt was made to use the same versions that were used for Flex 4.6 even
	       if those version are far from the most current versions.
	       
	       Flex 4.6 used commons-collections v2.1 but checkintests blew up with either the 
	       2.1 and 2.1.1 jars from http://archive.apache.org/dist/commons/collections/binaries/.
	       
	       Licenses:
	        commons-collections (3.0) - Apache 1.1
	        commons-discovery (0.2) - Apache 1.1
	        commons-logging (1.0.4) - Apache 2.0
	        batik (1.6) - Apache 2.0
	        flex-messaging-common.jar - GNU Lesser General Public License, Version 3 
	                                    which is not an Apache compatible licenses
	        saxon9 (9.1.0.8) - MPLv1
	        xalan (2.6.0) - Apache 2.0
	        xercesImpl and xml-apis (2.9.1.2) - Apache 2.0
	        javacc (5.0) - BSD - http://en.wikipedia.org/wiki/BSD_licenses
	        velocity (1.4) - Apache 2.0
	        
	        OSMF - Mozilla Public License, version 1.1 (MPL)      
	-->
	
    <property name="commons-collections.name" value="commons-collections-3.0"/>
    <property name="commons-discovery.name" value="commons-discovery-0.2"/>	
    <property name="commons-logging.name" value="commons-logging-1.0.4"/>
	
    <property name="saxon9.jar" value="saxonb9-1-0-8.jar"/>
    <property name="saxon9.download.url" value="http://repo1.maven.org/maven2/net/sourceforge/saxon/saxon/9.1.0.8/saxon-9.1.0.8.jar"/>
    <property name="saxon9.notice.dir" value="${FLEX_HOME}/licenseParts/saxon9-NOTICES"/>
    
    <property name="xerces.dir" value="xerces-2_9_1"/>
     
    <!-- 
        Because the downloads requires a network connection and the JARs don't change very often, 
        they are each downloaded only if they don't already exist. 
    -->
    
	<target name="main" depends="batik-jars, commons-jars, javacc-jar, saxon9-jar, velocity-jars, xalan-jar, xerces-jars, flex-tool-api-jar, blazeds-jar"
		description="Downloads all the required thirdparty JARs"/>

    <!--
		Cleanup
	-->
	
    <target name="clean" depends="batik-jars-clean,velocity-jars-clean"
        description="Removes thirdparty downloads.">
        
        <delete includeEmptyDirs="true" failonerror="false">
            <fileset dir="${download.dir}">
                <include name="commons-collections*/**"/>
                <include name="commons-discovery*/**"/>
                <include name="commons-logging*/**"/>
                <include name="javacc*/**"/>
                <include name="saxon*/**"/>
                <include name="xalan*/**"/>
                <include name="xerces*/**"/>
                <include name="Xerces*/**"/>
            </fileset>
        </delete>

        <delete includeEmptyDirs="true" failonerror="false">
            <fileset dir="${lib.ext.dir}">
                <include name="*/**"/>
                <!-- don't delete optional dir since this file doesn't populate it -->
                <exclude name="optional/**"/>
            </fileset>
        </delete>
    </target>
    
    <!--
	    Download thirdparty JARs    
	-->

    <!--
        Download a zip or gz file, extracts the jar file, and optionally copies the jar
        file to a different location and optinally verifies the checksum.  
        If the checksum fails, this script fails.

        Params are:
            srcUrl
            zipFile - a .gz file for untar with gzip, else unzip
            [md5]
            [srcJarPath] - both src and dest required for the copy
            [destJarFile]

        Note: This is purposely coded without <if><else><then> so that a dependency on
        ant-contrib.jar isn't required.        
    -->
    
    <target name="download-zip"
        description="Downloads tar/zip, and optionally verifies checksum and copies extracted jar.">                
        
        <mkdir dir="${download.dir}"/>        

        <available file="${download.dir}/${zipFile}" property="zip.exists"/>
        <antcall target="get-zip"/>

        <condition property="zip.compressed">
            <matches string="${zipFile}" pattern="^*.zip$"/>      
        </condition>
 
        <antcall target="untar-file"/>
        <antcall target="unzip-file"/>
        
        <condition property="destination.known">
            <and>
                <isset property="srcJarPath"/>
                <isset property="destJarFile"/>
            </and>
        </condition> 
        <antcall target="copy-downloaded-jar"/>
     </target>   	
     
    <target name="get-zip" unless="zip.exists" description="Get zip and verify checksum.">
        <get src="${srcUrl}/${zipFile}" dest="${download.dir}/${zipFile}" ignoreerrors="true"/>
        <antcall target="get-from-cache-if-needed" >
            <param name="filename" value="${zipFile}" />
            <param name="destDir" value="${download.dir}" />
        </antcall>
        <antcall target="fail-if-not-found" >
            <param name="filename" value="${zipFile}" />
            <param name="destDir" value="${download.dir}" />
        </antcall>

        <antcall target="check-sum">
            <param name="message" value="Checksum mismatch for ${download.dir}/${zipFile}"/>
        </antcall>
    </target>
    
    <!--
        Download a jar file and optionally verify the checksum.
        If the checksum fails, this script fails.
        
        Params are:
            srcUrl
            srcJarFile
            destJarFile
            [md5]
    -->
    <target name="download-jar" 
        description="Downloads jar, and optionally verifies checksum.">                
     
        <get src="${srcUrl}/${srcJarFile}" dest="${destJarDir}/${destJarFile}" ignoreerrors="true"/>
        <antcall target="get-from-cache-if-needed" >
            <param name="filename" value="${destJarFile}" />
            <param name="destDir" value="${destJarDir}" />
        </antcall>
        <antcall target="fail-if-not-found" >
            <param name="filename" value="${destJarFile}" />
            <param name="destDir" value="${destJarDir}" />
        </antcall>

        <antcall target="check-sum">
            <param name="message" value="Checksum mismatch for ${destJarFile}"/>
        </antcall>
    </target>

    <target name="untar-file" unless="zip.compressed" description="Untars zipFile">
        <untar src="${download.dir}/${zipFile}" dest="${download.dir}" compression="gzip"/> 
    </target>
    
    <target name="unzip-file" if="zip.compressed" description="Unzips zipFile">
        <unzip src="${download.dir}/${zipFile}" dest="${download.dir}"/>    
    </target>
    
    <macrodef name="bundle-clean">
		<attribute name="locale"/>
		<sequential>
			<delete failonerror="false">
				<fileset dir="${FLEX_HOME}/frameworks/locale">
					<include name="@{locale}/framework_rb.swc"/>
					<include name="@{locale}/framework_rb.swc.incr"/>
				</fileset>
			</delete>
		</sequential>
	</macrodef>	

    <target name="check-sum" if="md5"
        description="Verifies MD5 checksum, and fails if checksum doesn't match">
        
        <checksum file="${download.dir}/${zipFile}" algorithm="MD5" property="${md5}" verifyProperty="isMD5ok"/>

        <condition property="we.failed">
            <isfalse value="${isMD5ok}"/>
        </condition>
        
        <antcall target="fail-with-message">
            <param name="message" value="${message}"/>
        </antcall>
    </target>
    
    <target name="copy-downloaded-jar" if="destination.known">
        <mkdir dir="${lib.ext.dir}"/>
        <copy file="${download.dir}/${srcJarPath}" toFile="${destJarFile}" verbose="true"/>
    </target>
    
    <target name="fail-with-message" if="we.failed" 
        description="Conditionally fails with the specified message">                
        <fail message="${message}"/>
    </target>
        
    <!--
        batik - SVG toolkit - need the jars for our forked version
    -->
    
    <target name="batik-jars-check" description="Checks if batik jars exists.">
        <condition property="batik.jars.exists">
            <and>
                <!-- this implies the lib dir and its jars also exist -->
    	        <available file="${basedir}/${batik.dir}/lib/build" type="dir" />
    	        <available file="${lib.ext.dir}/xml-apis-ext.jar"/>
    	    </and>
    	</condition>
    </target>
    
    <target name="batik-jars" depends="batik-jars-check" unless="batik.jars.exists"
        description="Copies the batik jars to the batik build directory.">

        <antcall target="download-zip">
            <param name="srcUrl" value="http://archive.apache.org/dist/xmlgraphics/batik"/>
            <param name="zipFile" value="batik-src-1.7.zip"/>
            <param name="md5" value="c117ca2241907f62a2b3031167ebf917"/>
        </antcall>

        <!-- 
            Make sure any left-over batik 1.6 libraries are removed to avoid compile errors.  
            (super-clean/batik-jars-clean would take also take care of this.)
        -->
     	<delete dir="${basedir}/${batik.dir}/lib/**" failonerror="false"/>

        <copy todir="${basedir}/${batik.dir}/lib" failonerror="true">
            <fileset dir="${download.dir}/${batik.zip.dir}/lib">
                <include name="**/**"/>
            </fileset>            
        </copy>
        
        <!-- Copy the unique runtime jars to the lib directory.  -->
        <!-- Also need xalan, xerces and xml-api jars.  -->
        <copy todir="${lib.ext.dir}" failonerror="true" verbose="true">
            <fileset dir="${download.dir}/${batik.zip.dir}/lib">
                <include name="xml-apis-ext.jar"/>
                <include name="LICENSE.xml-apis-ext*"/>
                <include name="README.xml-apis-ext*"/>
            </fileset>            
        </copy>
        <unzip src="${lib.ext.dir}/xml-apis-ext.jar" dest="${lib.ext.dir}/xml-apis-ext-LICENSES">
            <patternset>
                <include name="license/**" />
            </patternset>
        </unzip>
        <copy toDir="${lib.ext.dir}/xml-apis-ext-LICENSES/" flatten="true">
            <fileset dir="${lib.ext.dir}/xml-apis-ext-LICENSES/license" />
        </copy>
        <delete dir="${lib.ext.dir}/xml-apis-ext-LICENSES/license" />

        <delete dir="${download.dir}/${batik.zip.dir}"/>
    </target>
    
	<target name="batik-jars-clean">
	    <!-- leave the lib directory itself since batik build.xml expects it -->
        <delete includeEmptyDirs="true" failonerror="false">
            <fileset dir="${basedir}/${batik.dir}/lib">
                <include name="**/**"/>
            </fileset>            
        </delete>
        <delete includeEmptyDirs="true" failonerror="fasle">
            <fileset dir="${download.dir}">
                <include name="batik*/**"/>
            </fileset>            
        </delete>
    </target>
    
    <!--
	    commons
	-->
	
	<target name="commons-jars" depends="commons-collections-jar,commons-discovery-jar,commons-logging-jar" />

    <!--
	    commons-collections
	-->
	
    <target name="commons-collections-jar-check" description="Checks if common-collections.jar has been downloaded.">
        <available file="${lib.ext.dir}/commons-collections.jar" property="commons.collections.jar.exists"/>
    </target>
    
    <target name="commons-collections-jar" depends="commons-collections-jar-check" unless="commons.collections.jar.exists" 
        description="Downloads and copies common-collections.jar to the lib directory.">
                
        <antcall target="download-zip">
          <param name="srcUrl" value="http://archive.apache.org/dist/commons/collections/binaries"/>
          <param name="zipFile" value="${commons-collections.name}.tar.gz"/>
          <param name="md5" value="a1df53801d2c73670314958fa0aeec8b"/>
          <param name="srcJarPath" value="${commons-collections.name}/${commons-collections.name}.jar"/>
          <param name="destJarFile" value="${lib.ext.dir}/commons-collections.jar"/>
        </antcall>
        <copy todir="${lib.ext.dir}">
            <fileset dir="${download.dir}/${commons-collections.name}">
                <include name="LICENSE.txt"/>
            </fileset>            
            <globmapper from="*" to="commons-collections-*"/>
        </copy>
        <delete dir="${download.dir}/${commons-collections.name}"/>
    </target>

    <!--
        commons-discovery
    -->
    
    <target name="commons-discovery-jar-check" description="Checks if commons-discovery.jar is in lib directory.">
        <available file="${lib.ext.dir}/commons-discovery.jar" property="commons.discovery.jar.exists"/>
    </target>
    
    <target name="commons-discovery-jar" depends="commons-discovery-jar-check" 
        unless="commons.discovery.jar.exists" 
        description="Copies commons-discovery.jar to the lib directory.">
                
        <antcall target="download-zip">
          <param name="srcUrl" value="http://archive.apache.org/dist/commons/discovery/binaries"/>
          <param name="zipFile" value="${commons-discovery.name}.tar.gz"/>
          <param name="md5" value="2273f5f83a477f4f18fccf3a00e2b48c"/>
          <param name="srcJarPath" value="${commons-discovery.name}/commons-discovery.jar"/>
          <param name="destJarFile" value="${lib.ext.dir}/commons-discovery.jar"/>
        </antcall>
        <copy todir="${lib.ext.dir}">
            <fileset dir="${download.dir}/${commons-discovery.name}">
                <include name="LICENSE"/>
            </fileset>            
            <globmapper from="*" to="commons-discovery-*"/>
        </copy>
        <delete dir="${download.dir}/${commons-discovery.name}"/>
    </target>
	
    <!--
        commons-logging
    -->
    
    <target name="commons-logging-jar-check" description="Checks if commons-logging.jar is in lib directory.">
        <available file="${lib.ext.dir}/commons-logging.jar" property="commons.logging.jar.exists"/>
    </target>
    
    <target name="commons-logging-jar" depends="commons-logging-jar-check" 
    	unless="commons.logging.jar.exists" 
        description="Downloads and copies commons.logging.jar to the lib directory.">

        <antcall target="download-zip">
          <param name="srcUrl" value="http://archive.apache.org/dist/commons/logging/binaries"/>
          <param name="zipFile" value="${commons-logging.name}.tar.gz"/>
          <param name="md5" value="6f80ac1fb5f568feb94dd4fdb6b9f7de"/>
          <param name="srcJarPath" value="${commons-logging.name}/commons-logging.jar"/>
          <param name="destJarFile" value="${lib.ext.dir}/commons-logging.jar"/>
        </antcall>
        <copy todir="${lib.ext.dir}">
            <fileset dir="${download.dir}/${commons-logging.name}">
                <include name="LICENSE.txt"/>
                <include name="NOTICE.txt"/>
            </fileset>            
            <globmapper from="*" to="commons-logging-*"/>
        </copy>
        <delete dir="${download.dir}/${commons-logging.name}"/>
    </target>

	<!--
        javacc - parser for mxmlc compiler
        
        The version used for Flex 4.6 is so old that it is no longer available.
        See "HACK" in Gramer.jj that was made so a newer version of this jar could be used.
    -->
    
    <target name="javacc-jar-check" description="Checks if javacc.jar is in lib directory.">
        <available file="${lib.ext.dir}/javacc.jar" property="javacc.jar.exists"/>
    </target>
    
    <target name="javacc-jar" depends="javacc-jar-check" 
        unless="javacc.jar.exists" 
        description="Downloads and copies javacc.jar to the lib directory.">

        <antcall target="download-jar">
          <param name="srcUrl" value="http://search.maven.org/remotecontent?filepath=net/java/dev/javacc/javacc/5.0"/>
          <param name="srcJarFile" value="javacc-5.0.jar"/>
          <param name="destJarDir" value="${lib.ext.dir}"/>
          <param name="destJarFile" value="javacc-5.0.jar"/>
        </antcall>
        <move file="${lib.ext.dir}/javacc-5.0.jar" tofile="${lib.ext.dir}/javacc.jar" failonerror="false" />
    </target>

	<!--
        saxon9 - for xslt 2.0 transformations in asDoc
    -->
    
    <target name="saxon9-jar-check" description="Checks if saxon9.jar is in lib directory.">
        <available file="${lib.ext.dir}/saxon9.jar" property="saxon9.jar.exists"/>
    </target>
    
    <target name="saxon9-jar" depends="saxon9-jar-check" unless="saxon9.jar.exists" 
        description="Copies sax9.jar to the lib directory.">

        <get src="${saxon9.download.url}" 
            dest="${download.dir}/saxon9.jar" 
            verbose="false" ignoreerrors="true"/>

        <antcall target="get-from-cache-if-needed" >
            <param name="filename" value="saxon9.jar" />
            <param name="destDir" value="${download.dir}" />
        </antcall>
        <antcall target="fail-if-not-found" >
            <param name="filename" value="saxon9.jar" />
            <param name="destDir" value="${download.dir}" />
        </antcall>

        <copy toDir="${lib.ext.dir}/saxon9-NOTICES" verbose="true">
            <fileset dir="${saxon9.notice.dir}" includes="**"/>
        </copy>
        <copy file="${download.dir}/saxon9.jar" toDir="${lib.ext.dir}" verbose="true"/>
        
        <delete dir="${download.dir}/saxon9.jar"/>
    </target>
    	
    <!--
        velocity - templates to generate code for -keep option
    -->
    
    <target name="velocity-zip-check" description="Checks if velocity expanded zip exists.">
    	<condition property="velocity.zip.exists">
            <and>
                <available file="${download.dir}/${velocity.zip.dir}/build/lib/commons-collections.jar"/>
                <available file="${download.dir}/${velocity.zip.dir}/build/lib/oro.jar"/>
            </and>
        </condition>
    </target>

    <target name="velocity-jars-check" description="Checks if velocity build lib exists.">
    	<condition property="velocity.jars.exists">
            <and>
                <available file="${basedir}/${velocity.dir}/build/lib/commons-collections.jar"/>
                <available file="${basedir}/${velocity.dir}/build/lib/oro.jar"/>
            </and>
        </condition>
    </target>
    
	<target name="velocity-jars" depends="velocity-jars-check" unless="velocity.jars.exists" 
        description="Copies the velocity build jars.">
        <antcall target="velocity-download-zip"/>
        <copy todir="${basedir}/${velocity.dir}/build/lib" failonerror="true">
            <fileset dir="${download.dir}/${velocity.zip.dir}/build/lib">
                <include name="**/**"/>
            </fileset>            
        </copy>
        <delete dir="${download.dir}/${velocity.zip.dir}"/>
    </target>
    
    <target name="velocity-download-zip" depends="velocity-zip-check" unless="velocity.zip.exists">
        <antcall target="download-zip">
            <param name="srcUrl" value="http://archive.apache.org/dist/velocity/engine/1.4"/>
        	<param name="zipFile" value="${velocity.zip.dir}.tar.gz"/>
        	<param name="md5" value="f280fee7ddb5eac5b354f6dea39a2f51"/>
        </antcall>
    </target>
    
	<target name="velocity-jars-clean">
        <delete includeEmptyDirs="true" failonerror="false">
            <fileset dir="${basedir}/${velocity.dir}/build/lib">
                <include name="**/**"/>
            </fileset>            
        </delete>
        <delete includeEmptyDirs="true" failonerror="false">
            <fileset dir="${download.dir}">
                <include name="${velocity.zip.dir}*/**"/>
            </fileset>            
        </delete>
    </target>
    	        	    
    <!--
        xalan - Java API for XML Processing
    -->
    			
    <target name="xalan-jar-check" description="Checks if xalan.jar is in lib directory.">
        <available file="${lib.ext.dir}/xalan.jar" property="xalan.jar.exists"/>
    </target>
    
    <target name="xalan-jar" depends="xalan-jar-check" unless="xalan.jar.exists" 
        description="Downloads and copies xalan.jar to the lib directory.">
                
        <antcall target="download-zip">
          <param name="srcUrl" value="http://archive.apache.org/dist/xml/xalan-j/binaries"/>
          <param name="zipFile" value="xalan-j_2_6_0-bin.tar.gz"/>
          <param name="srcJarPath" value="xalan-j_2_6_0/bin/xalan.jar"/>
          <param name="destJarFile" value="${lib.ext.dir}/xalan.jar"/>
        </antcall>
        
        <unzip src="${lib.ext.dir}/xalan.jar" dest="${lib.ext.dir}/xalan-LICENSES">
            <patternset>
                <include name="*LICENSE*" />
                <include name="*README*" />
            </patternset>
        </unzip>

        <copy todir="${lib.ext.dir}">
            <fileset dir="${download.dir}/xalan-j_2_6_0">
                <include name="LICENSE"/>
                <include name="NOTICE"/>
            </fileset>            
            <globmapper from="*" to="xalan-*"/>
        </copy>
        <delete dir="${download.dir}/xalan-j_2_6_0"/>
    </target>

    <!--
        xercesImpl and xmlParserAPIs
    -->
    
    <target name="xerces-jars-check" description="Checks if xercesImpl.jar and and xml-api.jars are in lib directory.">
        <condition property="xercesImpl.jar.exists">
            <and>
                <available file="${lib.ext.dir}/xercesImpl.jar"/>
                <available file="${lib.ext.dir}/xml-apis.jar"/>
            </and>
        </condition>
    </target>
    
    <target name="xerces-jars" depends="xerces-jars-check" unless="xercesImpl.jar.exists" 
        description="Downloads and copies xercesImpl.jar and xml-api.jars to the lib directory.">
          
        <antcall target="download-zip">
          <param name="srcUrl" value="http://archive.apache.org/dist/xerces/j"/>
          <param name="zipFile" value="Xerces-J-bin.2.9.1.zip"/>
          <param name="srcJarPath" value="${xerces.dir}/xercesImpl.jar"/>
          <param name="destJarFile" value="${lib.ext.dir}/xercesImpl.jar"/>
          <param name="md5" value="a0e07ede1c3bd5231fe15eae24032b2e"/>
        </antcall>

        <copy toDir="${lib.ext.dir}" file="${download.dir}/${xerces.dir}/xml-apis.jar" />
        <unzip src="${lib.ext.dir}/xml-apis.jar" dest="${lib.ext.dir}/xml-apis-LICENSES">
            <patternset>
                <include name="license/**" />
            </patternset>
        </unzip>
        <copy toDir="${lib.ext.dir}/xml-apis-LICENSES/" flatten="true">
            <fileset dir="${lib.ext.dir}/xml-apis-LICENSES/license" />
        </copy>
        <delete dir="${lib.ext.dir}/xml-apis-LICENSES/license" />

        <copy todir="${lib.ext.dir}">
            <fileset dir="${download.dir}/${xerces.dir}">
                <include name="*NOTICE*"/>
            </fileset>            
            <globmapper from="*" to="xerces-NOTICES/*"/>
        </copy>
        <copy todir="${lib.ext.dir}">
            <fileset dir="${download.dir}/${xerces.dir}">
                <include name="*LICENSE*"/>
            </fileset>            
            <globmapper from="*" to="xerces-LICENSE/*"/>
        </copy>
        <delete dir="${download.dir}/${xerces.dir}"/>
    </target>

    <!--
        flex-tool-api
    -->

    <target name="flex-tool-api-jar-check" description="Checks if flex-tool-api.jar is in lib directory.">
        <available file="${lib.ext.dir}/flex-tool-api.jar" property="flexToolApi.jar.exists"/>
    </target>

    <target name="flex-tool-api-jar" depends="flex-tool-api-jar-check" unless="flexToolApi.jar.exists"
            description="Downloads and copies flex-tool-api.jar to the lib directory.">

        <get src="${maven.search.url}org/apache/flex/${flexToolApi.name}/${flexToolApi.version}/${flexToolApi.name}-${flexToolApi.version}.jar"
             dest="${download.dir}/flex-tool-api.jar"
             verbose="false" ignoreerrors="true"/>

        <antcall target="get-from-cache-if-needed" >
            <param name="filename" value="flex-tool-api.jar" />
            <param name="destDir" value="${download.dir}" />
        </antcall>
        <antcall target="fail-if-not-found" >
            <param name="filename" value="flex-tool-api.jar" />
            <param name="destDir" value="${download.dir}" />
        </antcall>
        
        <copy file="${download.dir}/flex-tool-api.jar" toDir="${lib.ext.dir}" verbose="true"/>
    </target>

    <!--
        blazeds
    -->

    <target name="blazeds-jar-check" description="Checks if flex-messaging-common.jar is in lib directory.">
        <available file="${lib.ext.dir}/flex-messaging-common.jar" property="blazeds.jar.exists"/>
    </target>

    <target name="blazeds-jar" depends="blazeds-jar-check" unless="blazeds.jar.exists"
            description="Downloads and copies flex-messaging.jar to the lib directory.">

        <get src="${maven.search.url}org/apache/flex/blazeds/${blazeds.name}/${blazeds.version}/${blazeds.name}-${blazeds.version}.jar"
             dest="${download.dir}/flex-messaging-common.jar"
             verbose="false" ignoreerrors="true"/>
             
         <antcall target="get-from-cache-if-needed" >
             <param name="filename" value="flex-messaging-common.jar" />
             <param name="destDir" value="${download.dir}" />
         </antcall>
         <antcall target="fail-if-not-found" >
             <param name="filename" value="flex-messaging-common.jar" />
             <param name="destDir" value="${download.dir}" />
         </antcall>

        <copy file="${download.dir}/flex-messaging-common.jar" toDir="${lib.ext.dir}" verbose="true"/>
    </target>
    
    <target name="fail-if-not-found">
        <fail message="${filename} could not be downloaded or found in cache">
            <condition>
                <not>
                    <available file="${destDir}/${filename}" />
                </not>
            </condition>
        </fail>
    </target>
    
    <target name="double-check-file" >
        <condition property="still-no-file">
            <and>
                <not>
                    <available file="${destDir}/${filename}" />
                </not>
                <isset property="env.FLEX_DOWNLOAD_CACHE" />
            </and>
        </condition>
    </target>
    <target name="get-from-cache-if-needed" depends="double-check-file" if="still-no-file">
        <copy file="${env.FLEX_DOWNLOAD_CACHE}/${filename}" tofile="${destDir}/${filename}" />
    </target>

</project>
