You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by bi...@apache.org on 2013/10/21 09:33:22 UTC
git commit: [flex-utilities] [refs/heads/develop] - Added support for
download of osmf.swc 2.0 from sourceforge.net mirrors.
Updated Branches:
refs/heads/develop 1677255f6 -> 386374625
Added support for download of osmf.swc 2.0 from sourceforge.net mirrors.
Project: http://git-wip-us.apache.org/repos/asf/flex-utilities/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-utilities/commit/38637462
Tree: http://git-wip-us.apache.org/repos/asf/flex-utilities/tree/38637462
Diff: http://git-wip-us.apache.org/repos/asf/flex-utilities/diff/38637462
Branch: refs/heads/develop
Commit: 386374625b1343ae92900899bbaea41b78a5acc0
Parents: 1677255
Author: Om <bi...@gmail.com>
Authored: Mon Oct 21 00:32:23 2013 -0700
Committer: Om <bi...@gmail.com>
Committed: Mon Oct 21 00:32:23 2013 -0700
----------------------------------------------------------------------
.../apache/flex/utilities/common/Constants.as | 4 ++
installer/src/InstallApacheFlex.mxml | 60 ++++++++++++++++++--
.../src/installer/sdk-installer-config-3.1.xml | 4 +-
3 files changed, 60 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/38637462/common/src/org/apache/flex/utilities/common/Constants.as
----------------------------------------------------------------------
diff --git a/common/src/org/apache/flex/utilities/common/Constants.as b/common/src/org/apache/flex/utilities/common/Constants.as
index 14a3162..59c38ae 100644
--- a/common/src/org/apache/flex/utilities/common/Constants.as
+++ b/common/src/org/apache/flex/utilities/common/Constants.as
@@ -48,6 +48,10 @@ public class Constants
public static const URL_PREFIX:String = "http://";
public static const FILE_PREFIX:String = "file://";
+ public static const SOURCEFORGE_DL_URL:String = ".dl.sourceforge.net/project/";
+ public static const SOURCEFORGE_DOWNLOAD_URL:String = "http://downloads.sourceforge.net/project/" +
+ "";
+
//--------------------------------------------------------------------------
//
// Class properties
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/38637462/installer/src/InstallApacheFlex.mxml
----------------------------------------------------------------------
diff --git a/installer/src/InstallApacheFlex.mxml b/installer/src/InstallApacheFlex.mxml
index 1589253..7af0aba 100644
--- a/installer/src/InstallApacheFlex.mxml
+++ b/installer/src/InstallApacheFlex.mxml
@@ -55,6 +55,9 @@ variables are not required because the locations of these pieces are known.
import mx.core.IFlexDisplayObject;
import mx.events.FlexEvent;
import mx.managers.PopUpManager;
+ import mx.rpc.events.FaultEvent;
+ import mx.rpc.events.ResultEvent;
+ import mx.rpc.http.HTTPService;
import mx.utils.StringUtil;
import spark.events.IndexChangeEvent;
@@ -194,6 +197,7 @@ variables are not required because the locations of these pieces are known.
private var _fileUnzipErrorFunction:Function;
private var _numOptionalComponents:int = 4;
private var _numOptionalComponentsPermissions:int = 0;
+ private var _useOSMF2:Boolean = true;
private var languageOverride:String;
private var configOverride:String = "";
@@ -459,17 +463,17 @@ variables are not required because the locations of these pieces are known.
SWF_OBJECT_URL = files.(@name == 'swfobject').@path.toString();
//Supporting OSMF 2.0 from 4.11 onwards.
- //if(APACHE_FLEX_BIN_DISTRO_VERSION != "4.11.0")
- //TODO: We are having trouble downloading the osmf.swc v2.0 from the sourceforge mirrors. Disabling this till we sort that out
- if(true)
+ if(APACHE_FLEX_BIN_DISTRO_VERSION == "4.9.1" || APACHE_FLEX_BIN_DISTRO_VERSION == "4.10.0" )
{
OSMF_SWC_FILE = files.(@name == 'OSMF_SWC').@file.toString();
OSMF_SWC_URL = files.(@name == 'OSMF_SWC').@path.toString();
+ _useOSMF2 = false;
}
else
{
OSMF_SWC_FILE = files.(@name == 'OSMF_SWC_2.0').@file.toString();
OSMF_SWC_URL = files.(@name == 'OSMF_SWC_2.0').@path.toString();
+ _useOSMF2 = true;
}
BLAZEDS_FILE = files.(@name == 'BlazeDS').@file.toString();
@@ -1298,7 +1302,45 @@ variables are not required because the locations of these pieces are known.
log(StringUtil.substitute(_viewResourceConstants.INFO_DOWNLOADING_FILE_FROM, [OSMF_SWC_FILE, OSMF_SWC_URL]));
_osmfSWCFile = File.userDirectory.resolvePath(_flexTemp + File.separator + OSMF_SWC_FILE.toLowerCase());
- copyOrDownload(OSMF_SWC_URL, handleOSMFSWCFileDownloaded, null, handleOSMFSWCInstallError);
+ if(_useOSMF2)
+ {
+ downloadOSMF2SWC();
+ }
+ else
+ {
+ copyOrDownload(OSMF_SWC_URL + OSMF_SWC_FILE,handleOSMFSWCFileDownloaded,null,handleOSMFSWCInstallError);
+ }
+ }
+
+ protected function downloadOSMF2SWC():void
+ {
+ var httpService:HTTPService = new HTTPService();
+ httpService.resultFormat = HTTPService.RESULT_FORMAT_TEXT;
+ httpService.url = Constants.SOURCEFORGE_DOWNLOAD_URL + OSMF_SWC_URL + OSMF_SWC_FILE;
+ httpService.addEventListener(ResultEvent.RESULT, getMirrorInfo);
+ httpService.addEventListener(FaultEvent.FAULT, handleOSMFSWCUnzipError);
+ httpService.send();
+ }
+
+ protected function getMirrorInfo(event:ResultEvent):void
+ {
+ var mirror:String = String(event.result);
+ mirror = mirror.substr(mirror.indexOf('use_mirror=') + 'use_mirror='.length, mirror.length);
+ mirror = mirror.substring(0, mirror.indexOf('">'));
+
+ var mirrorURL:String = 'http://' + mirror + Constants.SOURCEFORGE_DL_URL + OSMF_SWC_URL + OSMF_SWC_FILE;
+ var refererURL:String = Constants.SOURCEFORGE_DOWNLOAD_URL + OSMF_SWC_URL + '/download?use_mirror=' + mirror;
+
+ var req:URLRequest = new URLRequest(mirrorURL);
+ req.requestHeaders = [ new URLRequestHeader('Referer', refererURL) ];
+
+ var loader:URLLoader = new URLLoader();
+ loader.dataFormat = URLLoaderDataFormat.BINARY;
+ loader.addEventListener(Event.COMPLETE, handleOSMFSWCFileDownloaded);
+ loader.addEventListener(ErrorEvent.ERROR, handleOSMFSWCInstallError);
+ loader.addEventListener(IOErrorEvent.IO_ERROR, handleOSMFSWCInstallError);
+
+ loader.load(req);
}
protected function handleOSMFSWCFileDownloaded(event:Event):void {
@@ -1331,9 +1373,15 @@ variables are not required because the locations of these pieces are known.
var osmfLibrarySwfFile:File = _flexHomeDir.resolvePath("library.swf");
osmfLibrarySwfFile.moveTo(copyToFile);
var catalogXMLFile:File = _flexHomeDir.resolvePath("catalog.xml");
- catalogXMLFile.deleteFile();
+ if(catalogXMLFile.exists)
+ {
+ catalogXMLFile.deleteFile();
+ }
var manifestXMLFile:File = _flexHomeDir.resolvePath("manifest.xml");
- manifestXMLFile.deleteFile();
+ if(manifestXMLFile.exists)
+ {
+ manifestXMLFile.deleteFile();
+ }
}
catch (e:Error) {
updateActivityStep(_viewResourceConstants.STEP_REQUIRED_INSTALL_OSMF, StepItem.ERROR);
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/38637462/installer/src/installer/sdk-installer-config-3.1.xml
----------------------------------------------------------------------
diff --git a/installer/src/installer/sdk-installer-config-3.1.xml b/installer/src/installer/sdk-installer-config-3.1.xml
index fb43315..c0ff5d4 100644
--- a/installer/src/installer/sdk-installer-config-3.1.xml
+++ b/installer/src/installer/sdk-installer-config-3.1.xml
@@ -107,10 +107,10 @@ limitations under the License.
<!-- For OSMF, we are including the file name along with the url. This is to support the weird url format for OSMF2.0 which forces us to do the same -->
<!-- OSMF 1.x -->
- <file name="OSMF_SWC" path="http://opensource.adobe.com/svn/opensource/flex/sdk/branches/4.y/frameworks/libs/osmf.swc" file="osmf.swc"/>
+ <file name="OSMF_SWC" path="http://opensource.adobe.com/svn/opensource/flex/sdk/branches/4.y/frameworks/libs/" file="osmf.swc"/>
<!-- OSMF 2.0 -->
- <file name="OSMF_SWC_2.0" path="http://switch.dl.sourceforge.net/project/osmf.adobe/OSMF%202.0%20Release%20%28final%20source%2C%20ASDocs%2C%20pdf%20guides%20and%20release%20notes%29/OSMF.swc" file="OSMF.swc"/>
+ <file name="OSMF_SWC_2.0" path="osmf.adobe/OSMF%202.0%20Release%20%28final%20source%2C%20ASDocs%2C%20pdf%20guides%20and%20release%20notes%29/" file="OSMF.swc"/>
</files>
</config>