You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2014/06/07 16:17:33 UTC
[1/2] git commit: [flex-sdk] [refs/heads/develop] - FLEX-34131 allow
resource fetch attempts in frame 1
Repository: flex-sdk
Updated Branches:
refs/heads/develop 8ab074753 -> 6b0e18296
FLEX-34131 allow resource fetch attempts in frame 1
Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/c0f0e66d
Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/c0f0e66d
Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/c0f0e66d
Branch: refs/heads/develop
Commit: c0f0e66d5eb52f48fc972f01d8a552fee1361b28
Parents: 8ab0747
Author: Alex Harui <ah...@apache.org>
Authored: Mon May 19 20:38:41 2014 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Sat Jun 7 07:17:23 2014 -0700
----------------------------------------------------------------------
.../framework/src/mx/resources/ResourceManagerImpl.as | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/c0f0e66d/frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as b/frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as
index b4bf97b..3e9c6fa 100644
--- a/frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as
+++ b/frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as
@@ -131,6 +131,7 @@ public class ResourceManagerImpl extends EventDispatcher implements IResourceMan
if (SystemManagerGlobals.topLevelSystemManagers[0].currentFrame == 1)
{
ignoreMissingBundles = true;
+ inFrame1 = true;
SystemManagerGlobals.topLevelSystemManagers[0].
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
@@ -140,7 +141,8 @@ public class ResourceManagerImpl extends EventDispatcher implements IResourceMan
// Falcon injects this property and it is always false
// We ignore missing bundles because Falcon doesn't
// generate fallback bundles like MXMLC;
- ignoreMissingBundles = info && info.hasOwnProperty("isMXMLC");
+ if (!inFrame1)
+ ignoreMissingBundles = info && info.hasOwnProperty("isMXMLC");
if (info)
processInfo(info, false);
@@ -158,6 +160,13 @@ public class ResourceManagerImpl extends EventDispatcher implements IResourceMan
//
//--------------------------------------------------------------------------
+ /**
+ * @private
+ *
+ * Whether or ignoreMissingBundles was set in frame 1
+ */
+ private var inFrame1:Boolean = false;
+
/**
* @private
*
@@ -1171,6 +1180,7 @@ public class ResourceManagerImpl extends EventDispatcher implements IResourceMan
{
if (SystemManagerGlobals.topLevelSystemManagers[0].currentFrame == 2)
{
+ inFrame1 = false;
SystemManagerGlobals.topLevelSystemManagers[0].
removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
[2/2] git commit: [flex-sdk] [refs/heads/develop] - add caching,
checksums and timetamps to sdk install
Posted by ah...@apache.org.
add caching, checksums and timetamps to sdk install
Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/6b0e1829
Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/6b0e1829
Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/6b0e1829
Branch: refs/heads/develop
Commit: 6b0e18296388c782d8a0d5d58a2796fa2c5f64d1
Parents: c0f0e66
Author: Alex Harui <ah...@apache.org>
Authored: Sat Jun 7 07:14:24 2014 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Sat Jun 7 07:17:24 2014 -0700
----------------------------------------------------------------------
installer.properties/en_US.properties | 1 +
installer.xml | 307 +++++++++++++++++++++++++----
2 files changed, 268 insertions(+), 40 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/6b0e1829/installer.properties/en_US.properties
----------------------------------------------------------------------
diff --git a/installer.properties/en_US.properties b/installer.properties/en_US.properties
index 60a6bad..3075c72 100644
--- a/installer.properties/en_US.properties
+++ b/installer.properties/en_US.properties
@@ -122,3 +122,4 @@ INFO_INSTALLING_PLAYERGLOBAL_SWC=Installing Adobe Flash Player playerglobal.swc
INFO_INSTALLING_CONFIG_FILES=Installing frameworks configuration files configured for use with an IDE
INFO_DOWNLOADING_FILE_FROM=Downloading {0} from: {1}
INFO_DOWNLOADED=Download complete
+INFO_VALIDATING_FILE=Validating download:
http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/6b0e1829/installer.xml
----------------------------------------------------------------------
diff --git a/installer.xml b/installer.xml
index 32bfa7a..97c18de 100644
--- a/installer.xml
+++ b/installer.xml
@@ -22,6 +22,13 @@
<property name="FLEX_HOME" location="${basedir}"/>
+ <!-- this script supports the usingDownloadCache property and
+ downloadCacheFolder property to cache downloads in the
+ folder specified by downloadCacheFolder. This can make
+ a huge difference in future runs although there is some
+ risk around caching bad downloads and/or needing to
+ clean up the cache -->
+
<!-- Required for OSX 10.6 / Snow Leopard Performance. -->
<!-- Java 7 on Mac requires OSX 10.7.3 or higher and is 64-bit only -->
<!-- local.d32 is set/used in build.properties so this needs to be done first. -->
@@ -43,8 +50,41 @@
<property file="${FLEX_HOME}/installer.properties/en_US.properties"/>
<property name="download.dir" value="${FLEX_HOME}/in"/>
- <property name="xml.properties" value="http://flex.apache.org/installer/sdk-installer-config-4.0.xml" />
-
+ <property name="swfobject.url.server" value="http://swfobject.googlecode.com" />
+ <property name="swfobject.url.folder" value="files" />
+ <property name="swfobject.url.file" value="swfobject_2_2.zip" />
+ <property name="swfobject.url.md5" value="dec4b83b3e73f3f0011a075cd5385b9c" />
+
+ <property name="osmf.url.server" value="http://downloads.sourceforge.net" />
+ <property name="osmf.url.folder" value="project/osmf.adobe/OSMF%202.0%20Release%20%28final%20source%2C%20ASDocs%2C%20pdf%20guides%20and%20release%20notes%29" />
+ <property name="osmf.url.file" value="OSMF.swc" />
+ <property name="osmf.url.md5" value="6385228692ab982630e47422403f6890" />
+
+ <property name="afe.url.server" value="http://opensource.adobe.com" />
+ <property name="afe.url.folder" value="svn/opensource/flex/sdk/branches/4.y/lib" />
+ <property name="afe.url.file" value="afe.jar" />
+ <property name="afe.url.md5" value="d1469e163c4fd4c1ef8be82dd6d0f1ee" />
+
+ <property name="agl.url.server" value="http://opensource.adobe.com" />
+ <property name="agl.url.folder" value="svn/opensource/flex/sdk/branches/4.y/lib" />
+ <property name="agl.url.file" value="aglj40.jar" />
+ <property name="agl.url.md5" value="b9b6b825787489796d9b6bf607a64824" />
+
+ <property name="fontkit.url.server" value="http://opensource.adobe.com" />
+ <property name="fontkit.url.folder" value="svn/opensource/flex/sdk/branches/4.y/lib" />
+ <property name="fontkit.url.file" value="flex-fontkit.jar" />
+ <property name="fontkit.url.md5" value="2abb9f580fa40ad6ef80864f94b6e938" />
+
+ <property name="rideau.url.server" value="http://opensource.adobe.com" />
+ <property name="rideau.url.folder" value="svn/opensource/flex/sdk/branches/4.y/lib" />
+ <property name="rideau.url.file" value="rideau.jar" />
+ <property name="rideau.url.md5" value="3b3329c1b3de665dc116121b772c5369" />
+
+ <property name="blazeds.url.server" value="http://opensource.adobe.com" />
+ <property name="blazeds.url.folder" value="svn/opensource/flex/sdk/branches/4.y/lib" />
+ <property name="blazeds.url.file" value="flex-messaging-common.jar" />
+ <property name="blazeds.url.md5" value="f64cdca3ddfe3068b70197ddb914bb5d" />
+
<condition property="platform" value="mac">
<os family="mac" />
</condition>
@@ -97,8 +137,18 @@
</and>
</condition>
+ <target name="get-md5-data" depends="get-air-md5-data,get-flash-md5-data">
+ </target>
+ <target name="get-air-md5-data" if="air-has-md5">
+ <property name="air.sdk.url.md5" refid="${air.sdk.url.md5.ref}" />
+ </target>
+ <target name="get-flash-md5-data" if="flash-has-md5">
+ <property name="flash.sdk.url.md5" refid="${flash.sdk.url.md5.ref}" />
+ </target>
+
<target name="get-data">
- <property name="do-not-cache-next-get" value="true" />
+ <tstamp />
+ <property name="xml.properties" value="http://flex.apache.org/installer/sdk-installer-config-4.0.xml?ts=${DSTAMP}" />
<get src="${xml.properties}" dest="${basedir}/sdk-installer-config-4.0.xml" />
<xmlproperty file="${basedir}/sdk-installer-config-4.0.xml" semanticAttributes="true" collapseAttributes="true"/>
<xmlproperty file="${basedir}/flex-sdk-description.xml" semanticAttributes="true" collapseAttributes="true"/>
@@ -122,14 +172,26 @@
<equals arg1="${air.version}" arg2="${air.sdk.version}" />
</not>
</condition>
- <property name="air.sdk.url.path.ref" value="air.sdk.path.${platform}.${air.sdk.version}" />
- <property name="air.sdk.url.path" refid="${air.sdk.url.path.ref}" />
+ <property name="air.sdk.url.server.ref" value="air.sdk.server.${platform}.${air.sdk.version}" />
+ <property name="air.sdk.url.server" refid="${air.sdk.url.server.ref}" />
+ <property name="air.sdk.url.folder.ref" value="air.sdk.folder.${platform}.${air.sdk.version}" />
+ <property name="air.sdk.url.folder" refid="${air.sdk.url.folder.ref}" />
<property name="air.sdk.url.file.ref" value="air.sdk.file.${platform}.${air.sdk.version}" />
<property name="air.sdk.url.file" refid="${air.sdk.url.file.ref}" />
- <property name="flash.sdk.url.path.ref" value="flash.sdk.path.${flash.sdk.version}" />
- <property name="flash.sdk.url.path" refid="${flash.sdk.url.path.ref}" />
+ <property name="air.sdk.url.md5.ref" value="air.sdk.md5.${platform}.${air.sdk.version}" />
+ <condition property="air-has-md5">
+ <isreference refid="${air.sdk.url.md5.ref}" />
+ </condition>
+ <property name="flash.sdk.url.server.ref" value="flash.sdk.server.${flash.sdk.version}" />
+ <property name="flash.sdk.url.server" refid="${flash.sdk.url.server.ref}" />
+ <property name="flash.sdk.url.folder.ref" value="flash.sdk.folder.${flash.sdk.version}" />
+ <property name="flash.sdk.url.folder" refid="${flash.sdk.url.folder.ref}" />
<property name="flash.sdk.url.file.ref" value="flash.sdk.file.${flash.sdk.version}" />
<property name="flash.sdk.url.file" refid="${flash.sdk.url.file.ref}" />
+ <property name="flash.sdk.url.md5.ref" value="flash.sdk.md5.${flash.sdk.version}" />
+ <condition property="flash-has-md5">
+ <isreference refid="${flash.sdk.url.md5.ref}" />
+ </condition>
<property name="flash.sdk.swfversion.ref" value="flash.sdk.swfversion.${flash.sdk.version}" />
<property name="flash.sdk.swfversion" refid="${flash.sdk.swfversion.ref}" />
<property name="flash.sdk.default.swfversion.ref" value="flash.sdk.swfversion.${playerglobal.version}" />
@@ -141,7 +203,7 @@
</condition>
</target>
- <target name="install" depends="get-data,check-binary,ask-licenses,get-third-party-files,fixup-config-files" description="Converts binary package to IDE compatible folder">
+ <target name="install" depends="get-data,get-md5-data,check-binary,ask-licenses,get-third-party-files,fixup-config-files" description="Converts binary package to IDE compatible folder">
<delete dir="${download.dir}" />
<echo>${install.complete.echo}</echo>
</target>
@@ -276,10 +338,22 @@
</target>
<target name="air-get" depends="air-get-check" unless="air.downloaded">
- <echo>${AIRDownloadEcho} ${air.sdk.url.path}/${air.sdk.url.file}</echo>
- <get src="${air.sdk.url.path}/${air.sdk.url.file}"
- dest="${download.dir}/${air.sdk.url.file}"
- verbose="false"/>
+ <echo>${AIRDownloadEcho} ${air.sdk.url.server}/${air.sdk.url.folder}/${air.sdk.url.file}</echo>
+ <antcall target="download_air" >
+ <param name="srcDomain" value="${air.sdk.url.server}" />
+ <param name="srcFolder" value="${air.sdk.url.folder}" />
+ <param name="srcFile" value="${air.sdk.url.file}" />
+ <param name="dest" value="${download.dir}/${air.sdk.url.file}" />
+ <param name="failmessage" value="AIR SDK download failed" />
+ </antcall>
+ <antcall target="download_air_with_md5" >
+ <param name="srcDomain" value="${air.sdk.url.server}" />
+ <param name="srcFolder" value="${air.sdk.url.folder}" />
+ <param name="srcFile" value="${air.sdk.url.file}" />
+ <param name="dest" value="${download.dir}/${air.sdk.url.file}" />
+ <param name="failmessage" value="AIR SDK download failed" />
+ <param name="md5" value="${air.sdk.url.md5}" />
+ </antcall>
</target>
<target name="air-setup-win" if="isWindows">
@@ -466,10 +540,24 @@
<mkdir dir="${download.dir}"/>
<mkdir dir="${FLEX_HOME}/frameworks/libs/player/${flash.sdk.version}"/>
- <echo>${INFO_INSTALLING_PLAYERGLOBAL_SWC} ${flash.sdk.url.path}/${flash.sdk.url.file}</echo>
- <get src="${flash.sdk.url.path}/${flash.sdk.url.file}"
- dest="${FLEX_HOME}/frameworks/libs/player/${flash.sdk.version}/playerglobal.swc"
- verbose="false"/>
+ <echo>${INFO_INSTALLING_PLAYERGLOBAL_SWC} ${flash.sdk.url.server}/${flash.sdk.url.folder}/${flash.sdk.url.file}</echo>
+ <antcall target="download_flash" >
+ <param name="srcDomain" value="${flash.sdk.url.server}" />
+ <param name="srcFolder" value="${flash.sdk.url.folder}" />
+ <param name="srcFile" value="${flash.sdk.url.file}" />
+ <param name="dest" value="${FLEX_HOME}/frameworks/libs/player/${flash.sdk.version}/playerglobal.swc" />
+ <param name="message" value="${INFO_INSTALLING_PLAYERGLOBAL_SWC} ${flash.sdk.url.server}/${flash.sdk.url.folder}/${flash.sdk.url.file}" />
+ <param name="failmessage" value="Flash SDK download failed" />
+ </antcall>
+ <antcall target="download_flash_with_md5" >
+ <param name="srcDomain" value="${flash.sdk.url.server}" />
+ <param name="srcFolder" value="${flash.sdk.url.folder}" />
+ <param name="srcFile" value="${flash.sdk.url.file}" />
+ <param name="dest" value="${FLEX_HOME}/frameworks/libs/player/${flash.sdk.version}/playerglobal.swc" />
+ <param name="message" value="${INFO_INSTALLING_PLAYERGLOBAL_SWC} ${flash.sdk.url.server}/${flash.sdk.url.folder}/${flash.sdk.url.file}" />
+ <param name="failmessage" value="Flash SDK download failed" />
+ <param name="md5" value="${flash.sdk.url.md5}" />
+ </antcall>
</target>
<!-- swfobject.js (Version 2.2) -->
@@ -489,10 +577,15 @@
<echo>${swfobject.echo}</echo>
<mkdir dir="${download.dir}"/>
- <get src="http://swfobject.googlecode.com/files/swfobject_2_2.zip"
- dest="${download.dir}/swfobject_2_2.zip"
- verbose="false"/>
-
+ <antcall target="download_using_get" >
+ <param name="srcDomain" value="${swfobject.url.server}" />
+ <param name="srcFolder" value="${swfobject.url.folder}" />
+ <param name="srcFile" value="${swfobject.url.file}" />
+ <param name="dest" value="${download.dir}/swfobject_2_2.zip" />
+ <param name="failmessage" value="SWFObject download failed" />
+ <param name="md5" value="${swfobject.url.md5}" />
+ </antcall>
+
<echo>${INFO_DOWNLOADED}</echo>
<unzip src="${download.dir}/swfobject_2_2.zip" dest="${FLEX_HOME}/templates">
<patternset>
@@ -521,10 +614,15 @@
<echo>${osmf.echo}</echo>
<mkdir dir="${basedir}/frameworks/libs/"/>
- <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"
- dest="${basedir}/frameworks/libs/osmf.swc"
- verbose="false"/>
-
+ <antcall target="download_using_get" >
+ <param name="srcDomain" value="${osmf.url.server}" />
+ <param name="srcFolder" value="${osmf.url.folder}" />
+ <param name="srcFile" value="${osmf.url.file}" />
+ <param name="dest" value="${basedir}/frameworks/libs/osmf.swc" />
+ <param name="failmessage" value="OSMF download failed" />
+ <param name="md5" value="${osmf.url.md5}" />
+ </antcall>
+
<unzip src="${basedir}/frameworks/libs/osmf.swc" dest="${download.dir}">
<patternset>
<include name="library.swf"/>
@@ -557,9 +655,14 @@
<echo>${afe.echo}</echo>
<mkdir dir="${basedir}/lib/external/optional"/>
- <get src="http://opensource.adobe.com/svn/opensource/flex/sdk/branches/4.y/lib/afe.jar"
- dest="${basedir}/lib/external/optional/afe.jar"
- verbose="false"/>
+ <antcall target="download_using_get" >
+ <param name="srcDomain" value="${afe.url.server}" />
+ <param name="srcFolder" value="${afe.url.folder}" />
+ <param name="srcFile" value="${afe.url.file}" />
+ <param name="dest" value="${basedir}/lib/external/optional/afe.jar" />
+ <param name="failmessage" value="afe.jar download failed" />
+ <param name="md5" value="${afe.url.md5}" />
+ </antcall>
<echo file="${basedir}/agl.properties">agl.echo=${INFO_DOWNLOADING_FILE_FROM}</echo>
<replace file="${basedir}/agl.properties" token="{0}" value="aglj40.jar" />
@@ -568,9 +671,14 @@
<delete file="${basedir}/agl.properties" />
<echo>${agl.echo}</echo>
- <get src="http://opensource.adobe.com/svn/opensource/flex/sdk/branches/4.y/lib/aglj40.jar"
- dest="${basedir}/lib/external/optional/aglj40.jar"
- verbose="false"/>
+ <antcall target="download_using_get" >
+ <param name="srcDomain" value="${agl.url.server}" />
+ <param name="srcFolder" value="${agl.url.folder}" />
+ <param name="srcFile" value="${agl.url.file}" />
+ <param name="dest" value="${basedir}/lib/external/optional/aglj40.jar" />
+ <param name="failmessage" value="aglj40.jar download failed" />
+ <param name="md5" value="${agl.url.md5}" />
+ </antcall>
<echo file="${basedir}/fontkit.properties">fontkit.echo=${INFO_DOWNLOADING_FILE_FROM}</echo>
<replace file="${basedir}/fontkit.properties" token="{0}" value="flex-fontkit.jar" />
@@ -579,10 +687,14 @@
<delete file="${basedir}/fontkit.properties" />
<echo>${fontkit.echo}</echo>
- <get src="http://opensource.adobe.com/svn/opensource/flex/sdk/branches/4.y/lib/flex-fontkit.jar"
- dest="${basedir}/lib/external/optional/flex-fontkit.jar"
- verbose="false"/>
-
+ <antcall target="download_using_get" >
+ <param name="srcDomain" value="${fontkit.url.server}" />
+ <param name="srcFolder" value="${fontkit.url.folder}" />
+ <param name="srcFile" value="${fontkit.url.file}" />
+ <param name="dest" value="${basedir}/lib/external/optional/flex-fontkit.jar" />
+ <param name="failmessage" value="flex-fontkit.jar download failed" />
+ <param name="md5" value="${fontkit.url.md5}" />
+ </antcall>
<echo file="${basedir}/rideau.properties">rideau.echo=${INFO_DOWNLOADING_FILE_FROM}</echo>
<replace file="${basedir}/rideau.properties" token="{0}" value="rideau.jar" />
@@ -591,9 +703,14 @@
<delete file="${basedir}/rideau.properties" />
<echo>${rideau.echo}</echo>
- <get src="http://opensource.adobe.com/svn/opensource/flex/sdk/branches/4.y/lib/rideau.jar"
- dest="${basedir}/lib/external/optional/rideau.jar"
- verbose="false"/>
+ <antcall target="download_using_get" >
+ <param name="srcDomain" value="${rideau.url.server}" />
+ <param name="srcFolder" value="${rideau.url.folder}" />
+ <param name="srcFile" value="${rideau.url.file}" />
+ <param name="dest" value="${basedir}/lib/external/optional/rideau.jar" />
+ <param name="failmessage" value="rideau.jar download failed" />
+ <param name="md5" value="${rideau.url.md5}" />
+ </antcall>
<!-- fontkit expects swfutils in the same folder -->
<copy file="${basedir}/lib/swfutils.jar" tofile="${basedir}/lib/external/optional/swfutils.jar" />
@@ -616,9 +733,14 @@
<echo>${blaze.echo}</echo>
<mkdir dir="${basedir}/lib/external/optional"/>
- <get src="http://opensource.adobe.com/svn/opensource/flex/sdk/branches/4.y/lib/flex-messaging-common.jar"
- dest="${basedir}/lib/external/optional/flex-messaging-common.jar"
- verbose="false"/>
+ <antcall target="download_using_get" >
+ <param name="srcDomain" value="${blazeds.url.server}" />
+ <param name="srcFolder" value="${blazeds.url.folder}" />
+ <param name="srcFile" value="${blazeds.url.file}" />
+ <param name="dest" value="${basedir}/lib/external/optional/flex-messaging-common.jar" />
+ <param name="failmessage" value="flex-messaging-common.jar download failed" />
+ <param name="md5" value="${blazeds.url.md5}" />
+ </antcall>
</target>
@@ -686,4 +808,109 @@
</replace>
</target>
+ <target name="download_air" unless="air-has-md5">
+ <antcall target="download_using_get" />
+ </target>
+ <target name="download_air_with_md5" if="air-has-md5">
+ <antcall target="download_using_get" />
+ </target>
+ <target name="download_flash" unless="flash-has-md5">
+ <antcall target="download_using_get" />
+ </target>
+ <target name="download_flash_with_md5" if="flash-has-md5">
+ <antcall target="download_using_get" />
+ </target>
+
+ <!--
+ Download a file and optionally verify the checksum.
+ If the checksum fails, this script fails. This
+ target uses the cache, if desired.
+
+ Params are:
+ srcDomain
+ srcFolder
+ srcFile
+ dest
+ [md5]
+ [srcMD5Domain]
+ -->
+ <target name="download_using_get" depends="check-cache"
+ description="Downloads file, and optionally verifies checksum.">
+
+ <antcall target="get-if-not-cached">
+ </antcall>
+ <antcall target="copy-if-cached">
+ </antcall>
+ </target>
+
+ <target name="get-if-not-cached" unless="found-in-cache">
+ <antcall target="get-with-no-params" />
+ <antcall target="get-with-params" />
+ <antcall target="get-local" />
+ <antcall target="check-sum" />
+ <condition property="skipCache">
+ <not>
+ <isset property="usingDownloadCache" />
+ </not>
+ </condition>
+ <antcall target="put-in-cache" />
+ </target>
+
+ <target name="check-params" >
+ <condition property="has-params">
+ <and>
+ <contains string="${srcDomain}/${srcFolder}/${srcFile}" substring="?" />
+ <not>
+ <contains string="${srcDomain}/${srcFolder}/${srcFile}" substring="file://" />
+ </not>
+ </and>
+ </condition>
+ <condition property="is-local">
+ <contains string="${srcDomain}/${srcFolder}/${srcFile}" substring="file://" />
+ </condition>
+ <condition property="not-local-no-params">
+ <and>
+ <not>
+ <contains string="${srcDomain}/${srcFolder}/${srcFile}" substring="file://" />
+ </not>
+ <not>
+ <contains string="${srcDomain}/${srcFolder}/${srcFile}" substring="?" />
+ </not>
+ </and>
+ </condition>
+ </target>
+
+ <target name="get-local" depends="check-params" if="is-local" >
+ <get src="${srcDomain}/${srcFolder}/${srcFile}" dest="${dest}"/>
+ </target>
+ <target name="get-with-no-params" depends="check-params" if="not-local-no-params" >
+ <get src="${srcDomain}/${srcFolder}/${srcFile}?ts=${DSTAMP}" dest="${dest}"/>
+ </target>
+ <target name="get-with-params" depends="check-params" if="has-params" >
+ <get src="${srcDomain}/${srcFolder}/${srcFile}&ts=${DSTAMP}" dest="${dest}"/>
+ </target>
+
+ <target name="copy-if-cached" if="found-in-cache">
+ <copy file="${downloadCacheFolder}/${srcFolder}/${srcFile}" tofile="${dest}" overwrite="true" />
+ </target>
+
+ <target name="check-cache" if="usingDownloadCache">
+ <available file="${downloadCacheFolder}/${srcFolder}/${srcFile}" property="found-in-cache" />
+ </target>
+
+ <target name="put-in-cache" unless="skipCache">
+ <copy tofile="${downloadCacheFolder}/${srcFolder}/${srcFile}" file="${dest}" />
+ </target>
+
+ <target name="check-sum" if="md5"
+ description="Verifies MD5 checksum, and fails if checksum doesn't match">
+
+ <echo>${INFO_VALIDATING_FILE} ${dest}</echo>
+ <checksum file="${dest}" algorithm="MD5" verifyproperty="we.failed" property="${md5}" />
+ <fail message="${failmessage}">
+ <condition>
+ <equals arg1="${we.failed}" arg2="false" />
+ </condition>
+ </fail>
+ </target>
</project>