<?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 file="${FLEX_HOME}/local.properties"/>

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

    <property name="lib.dir" value="${FLEX_HOME}/lib"/>
    <!-- See note in modules/download.xml about this property. -->
    <property name="lib.opt.dir" value="${FLEX_HOME}/lib/external/optional"/>

    <property name="adobe.flex.dir" value="adobe_flex_sdk_4.6"/>
    <property name="adobe.flex.zip.file" value="flex_sdk_4.6.0.23201B.zip"/>
    <property name="pixelbender.url" value="http://www.apache.org/dyn/mirrors/mirrors.cgi" />
    <property name="pixelbender.folder" value="flex/pixelbender/1.0/binaries" />
    <property name="pixelbender.bin.zip" value="apache-flex-sdk-pixel-bender-1.0.0-bin.zip" />
    
    <property name="adobe.flex.license" value="
        ${line.separator}
        ${line.separator}Adobe Flex SDK License Agreement:
        ${line.separator}
        ${line.separator}All files contained in this Adobe Flex SDK download are subject to and governed by the
        ${line.separator}Adobe Flex SDK License Agreement specified here: 
        ${line.separator}    http://www.adobe.com/products/eulas/pdfs/adobe_flex_software_development_kit-combined-20110916_0930.pdf, 
        ${line.separator}By downloading, modifying, distributing, using and/or accessing any files in this Adobe Flex SDK, 
        ${line.separator}you agree to the terms and conditions of the applicable end user license agreement.
        ${line.separator}
        ${line.separator}In addition to the Adobe license terms, you also agree to be bound by the third-party terms specified here: 
        ${line.separator}    http://www.adobe.com/products/eula/third_party/. 
        ${line.separator}Adobe recommends that you review these third-party terms.
        ${line.separator}" />
        
    <!-- 
       To clean these you must call thirdparty-clean or super-clean to clean everything.  
       clean does not remove these since they don't change often and the downloads take time.
    -->
    <target name="main" 
        depends="pixelbender-download,swfobject-download,swfobject-fabridge-download,osmf-download,optional-downloads"
        description="Copies third-party and upstream software into place for build">
        <echo message="Use thirdparty-clean or super-clean to remove these."/> 
    </target>
    
    <target name="optional-downloads" 
        depends="blazeds-jar, font-jars, clean-adobe-flex-sdk" 
        description="Downloads, after prompt for each, the optional thirdparty JARs"/>

    <target name="clean" depends="pixelbender-clean,swfobject-clean,swfobject-fabridge-clean,clean-adobe-flex-sdk"
        description="Cleans thirdparty downloaded files.">
        <delete failonerror="false">
            <fileset dir="${basedir}/libs">
                <include name="osmf.swc"/>
            </fileset>
        </delete>
        <delete includeEmptyDirs="true" failonerror="false">
            <fileset dir="${download.dir}">
                <include name="${adobe.flex.zip.file}"/>
                <include name="OSMF*/**"/>
                <include name="osmf*/**"/>
                <include name="swfobject*/**"/>
            </fileset>
        </delete>
        <delete dir="${lib.opt.dir}" failonerror="false"/>
     </target>

	<!--
        MPL 1.1 Licesense Notification
        See http://www.apache.org/legal/3party.html#labeling-reciprocity
        Section "Category B: Reciprocal Licenses"
    -->
    <target name="echo-mpl1.1-license">       
        <input
            message="Mozilla Public License Version 1.1:
                ${line.separator}
                ${line.separator}The contents of the file(s) are subject to the Mozilla Public License Version 1.1.
                ${line.separator}You may not use the file(s) except in compliance with the License. 
                ${line.separator}You may obtain a copy of the License here:
                ${line.separator}    http://www.mozilla.org/MPL/. 
                ${line.separator}By downloading, modifying, distributing, using and/or accessing the file(s), 
                ${line.separator}you agree to the terms and conditions of the applicable license agreement.
                ${line.separator}
                ${line.separator}I have read the MPL1.1 license information above?"
            validargs="y"
            defaultvalue="y"/>
    </target>
           
	<!--
        osmf.swc (Version 1.0)
        The swc at the top-level has lots of trace statements in it.  Use the one in the source zip.
    -->
    <target name="osmf-check" description="Checks if the Open Source Media Framework has been downloaded.">
        <available file="${basedir}/libs/osmf.swc" property="osmf.swc.present"/>
    </target>
   
    <!-- 
        Notify before downloading file with MPL1.1 license.
    -->
    <target name="ask-osmf" unless="build.noprompt">
        <echo message="The Open Source Media Framework (OSMF) used by the video components"/>
        <echo message="is licensed under the Mozilla Public License Version 1.1."/>
        <antcall target="echo-mpl1.1-license"/>
        <property name="do.osmf.install" value="set" />
    </target>
    
    <target name="osmf-download" depends="osmf-check" unless="osmf.swc.present">
        <antcall target="ask-osmf"/>     
        <available file="${download.dir}/osmf.swc" type="file" property="osmf.swc.exists"/>
        <antcall target="download-osmf-swc" />
    	<copy file="${download.dir}/osmf.swc" todir="${basedir}/libs" />
    </target>

    <target name="download-osmf-swc" unless="osmf.swc.exists">
        <mkdir dir="${download.dir}"/>
        <!-- get src="http://sourceforge.net/projects/osmf.adobe/files/OSMF%202.0%20Release%20%28final%20source%2C%20ASDocs%2C%20pdf%20guides%20and%20release%20notes%29/OSMF.swc/download" 
            dest="${download.dir}/osmf.swc" 
            verbose="false"/ -->
        <get src="http://downloads.sourceforge.net/project/osmf.adobe/OSMF%202.0%20Release%20%28final%20source%2C%20ASDocs%2C%20pdf%20guides%20and%20release%20notes%29/OSMF.swc?r=&amp;ts=1381906346&amp;use_mirror=optimate" 
            dest="${download.dir}/osmf.swc" 
            verbose="false"/>
    </target>
    
    <!-- pixelbender files (Version 1.0) -->
    <!-- Because this requires a network connection it downloads only if it doesn't already exist. -->
    <target name="pixelbender-check" description="Checks if PixelBender files have been downloaded.">
        <available file="${basedir}/projects/spark/src/spark/effects/CrossFade.pbj" property="pixelbender.pbj.present"/>
    </target>
    
    <target name="pixelbender-download" depends="pixelbender-check" unless="pixelbender.pbj.present"
        description="Downloads PixelBender from flex distribution server">
        
        <mkdir dir="${download.dir}"/>
        <antcall target="get_from_mirror" >
            <param name="server" value="${pixelbender.url}" />
            <param name="folder" value="${pixelbender.folder}" />
            <param name="file" value="${pixelbender.bin.zip}" />
            <param name="dest" value="${download.dir}/${pixelbender.bin.zip}" />
        </antcall>
        
        <unzip src="${download.dir}/${pixelbender.bin.zip}" dest="${FLEX_HOME}">
            <patternset>
                <include name="**/*.pbj"/>
            </patternset>
        </unzip>
    </target>

    <target name="pixelbender-clean" description="Deletes pbj files.">
        <ant dir="${FLEX_HOME}/frameworks/projects/framework" target="pixelbender-clean" />
        <ant dir="${FLEX_HOME}/frameworks/projects/spark" target="pixelbender-clean" />
    </target>
        
    <!-- swfobject.js (Version 2.2) -->
    <!-- Because this requires a network connection it downloads SWFObject only if it doesn't already exist. -->
    <target name="swfobject-check" description="Checks if SWFObject has been downloaded.">
        <available file="${basedir}/../templates/swfobject/swfobject.js" property="swfobject.js.present"/>
    </target>

    <target name="swfobject-download" depends="swfobject-check" unless="swfobject.js.present"
        description="Copies SWFObject from code.google.com">
        
        <mkdir dir="${download.dir}"/>
        <get src="http://swfobject.googlecode.com/files/swfobject_2_2.zip" 
            dest="${download.dir}/swfobject_2_2.zip" 
            verbose="false"/>
        
        <unzip src="${download.dir}/swfobject_2_2.zip" dest="${FLEX_HOME}/templates">
            <patternset>
                <include name="swfobject/expressInstall.swf"/>
                <include name="swfobject/swfobject.js"/>
            </patternset>
        </unzip>
    </target>

    <target name="swfobject-clean" description="Deletes templates swfobject code.">
        <delete failonerror="false">
            <fileset dir="${FLEX_HOME}/templates/swfobject">
                <include name="**/**"/>
                <exclude name="history/*"/>
                <exclude name="index.template.html"/>
            </fileset>
        </delete>
    </target>
    
    <!-- the copy of swfobject.js that is in javascript/fabridge -->
    <target name="swfobject-fabridge-download" depends="swfobject-download" 
        description="Copies swfobject.js from code.google.com to fabridge">
        <mkdir dir="${basedir}/javascript/FABridge/samples/fabridge/swfobject"/>
        <copy file="${FLEX_HOME}/templates/swfobject/swfobject.js" 
            todir="${basedir}/javascript/FABridge/samples/fabridge/swfobject" />
    </target>

    <target name="swfobject-fabridge-clean" description="Deletes swobject.js from fabridge">
        <delete failonerror="false" includeemptydirs="true">
            <fileset dir="${basedir}/javascript/FABridge/samples/fabridge/swfobject">
                <include name="swfobject.js"/>
            </fileset>
        </delete>
    </target>

    <!--
        flex-messaging-common.jar - BlazeDS interface for -service compiler option.
    -->

    <target name="blazeds-jar" depends="get-blazeds-jar"
            description="Downloads and copies flex-messaging-common.jar to the optional lib directory."/>

    <target name="get-blazeds-jar">
        <available file="${download.dir}/flex-messaging-common.jar" type="file"
                   property="apache.flex.blazeds.exists"/>

        <antcall target="get-apache-flex-blazeds"/>

        <copy file="${download.dir}/flex-messaging-common.jar"
              todir="${lib.dir}" verbose="true"/>
    </target>

    <!--============================================================================= -->
	<!--      Optional Jars.  Licenses are not compatible with Apache v2 license.     -->
	<!--============================================================================= -->
	
	<!--
        Embedded Font Support
        This does not get installed if build.noprompt is set.
    -->
    
    <target name="font-jars-check" unless="font.donot.ask"
        description="Checks if font jars are in the optional lib directory.">        
        <condition  property="font.donot.ask">
            <and>
                <available file="${lib.opt.dir}/flex-fontkit.jar"/>
                <available file="${lib.opt.dir}/afe.jar"/>
                <available file="${lib.opt.dir}/aglj40.jar"/>
                <available file="${lib.opt.dir}/rideau.jar"/>
            </and>
        </condition>
        <condition property="font.donot.ask">
            <isset property="build.noprompt"/>
        </condition>
    </target>
    
    <target name="font-jars" depends="font-jars-check,get-font-jars" 
        description="Downloads and copies font jars to the optional lib directory."/>

    <!-- Prompt before downloading.  -->
    <target name="ask-font" unless="font.donot.ask"
        description="Prompt the user before downloading BlaseDS">
        
        <property name="font.prompt.text" 
            value="Apache Flex can optionally integrate with Adobe's embedded font support.
            ${line.separator}This feature requires a few font jars from the Adobe Flex SDK.
            ${line.separator}The Adobe SDK license agreement for Adobe Flex 4.6 applies to these jars.
            ${line.separator}This license is not compatible with the Apache v2 license.
            ${adobe.flex.license}
            ${line.separator}Do you want to install these jars from the Adobe Flex SDK?"/>
        <input
            message="${font.prompt.text}"
            validargs="y,n"
            defaultvalue="n"
            addproperty="input.font.download"/>
        <condition property="do.font.install">
            <equals arg1="y" arg2="${input.font.download}"/>
        </condition>
        <!-- Only ask once per ant run.  -->
        <property name="font.donot.ask" value="set"/>
    </target>
    
    <target name="get-font-jars" depends="ask-font" if="do.font.install">
        
        <available file="${download.dir}/${adobe.flex.dir}" type="dir"
            property="adobe.flex.sdk.exists"/>
        
        <antcall target="get-adobe-flex-sdk"/>
        
        <copy todir="${lib.opt.dir}" verbose="true">
            <fileset dir="${download.dir}/${adobe.flex.dir}/lib">
                <include name="afe.jar" />
                <include name="aglj40.jar" />
                <include name="flex-fontkit.jar" />
                <include name="rideau.jar" />
            </fileset>
        </copy>
        
        <copy file="${download.dir}/${adobe.flex.dir}/license-adobesdk.htm" 
            tofile="${lib.opt.dir}/flex-fontkit-LICENSE.htm" verbose="true"/>
        <copy file="${download.dir}/${adobe.flex.dir}/license-adobesdk.htm" 
            tofile="${lib.opt.dir}/afe-LICENSE.htm" verbose="true"/>
        <copy file="${download.dir}/${adobe.flex.dir}/license-adobesdk.htm" 
            tofile="${lib.opt.dir}/aglj40-LICENSE.htm" verbose="true"/>
        <copy file="${download.dir}/${adobe.flex.dir}/license-adobesdk.htm" 
            tofile="${lib.opt.dir}/rideau.jar-LICENSE.htm" verbose="true"/>
    </target>
        	
    <target name="get-adobe-flex-sdk" unless="adobe.flex.sdk.exists"
        description="Downloads the Adobe Flex 4.6 SDK">
        
        <available file="${download.dir}/${adobe.flex.zip.file}" type="file"
            property="adobe.flex.sdk.download.exists"/>
        
        <antcall target="download-adobe-flex-sdk" />
        
        <unzip src="${download.dir}/${adobe.flex.zip.file}" 
            dest="${download.dir}/${adobe.flex.dir}">
            <patternset>
                <include name="license-adobesdk.htm"/>
                <include name="lib/flex-messaging-common.jar"/>
                <include name="lib/afe.jar" />
                <include name="lib/aglj40.jar" />
                <include name="lib/flex-fontkit.jar" />
                <include name="lib/rideau.jar" />
            </patternset>
        </unzip>
    </target>
    
    <target name="download-adobe-flex-sdk" unless="adobe.flex.sdk.download.exists" >
        <mkdir dir="${download.dir}"/>        
        <get src="http://fpdownload.adobe.com/pub/flex/sdk/builds/flex4.6/${adobe.flex.zip.file}" 
            dest="${download.dir}/${adobe.flex.zip.file}"/>
    </target>
    
    <target name="clean-adobe-flex-sdk">
        <delete dir="${download.dir}/${adobe.flex.dir}"/>
    </target>

    <target name="get-apache-flex-blazeds" unless="apache.flex.blazeds.exists"
            description="Downloads the Apache Flex BlazeDS libraries">
        <mkdir dir="${download.dir}"/>
        <get src="https://builds.apache.org/view/E-G/view/Flex/job/flex-blazeds/lastSuccessfulBuild/artifact/modules/common/target/flex-messaging-common.jar"
             dest="${download.dir}/flex-messaging-common.jar" />
    </target>
    
    <target name="get_from_mirror">
        <condition property="usingmirror" value="true">
            <contains string="${server}" substring="mirrors.cgi" />
        </condition>
        <antcall target="download_using_mirror">
            <param name="server" value="${server}" />
            <param name="folder" value="${folder}" />
            <param name="file" value="${file}" />
            <param name="dest" value="${dest}" />
        </antcall>
        <antcall target="download_using_get">
            <param name="server" value="${server}" />
            <param name="folder" value="${folder}" />
            <param name="file" value="${file}" />
            <param name="dest" value="${dest}" />
        </antcall>
    </target>
    
    <target name="download_using_mirror" if="usingmirror">
        <get src="${server}/${folder}/${file}?asjson=true" verbose="true" dest="${basedir}/mirror.json" />
        <replace file="${basedir}/mirror.json">
            <replacefilter token="&quot;"
            value="" />
            <replacefilter token=": "
            value="=" />
        </replace>
        <property file="${basedir}/mirror.json" />
        <delete file="${basedir}/mirror.json" />
        <echo>Using mirror: ${preferred}</echo>
        <get src="${preferred}${folder}/${file}" dest="${dest}" />
    </target>
    
    <target name="download_using_get" unless="usingmirror">
        <get src="${server}/${folder}/${file}" dest="${dest}" />
    </target>

</project>
