Could something like the below be included as part of the Flex installer
code to parse the mirror site ?

*declare the service that'll fetch the url*

<fx:Declarations>
 <!-- Place non-visual elements (e.g., services, value objects) here -->
<fx:String id="flex_repo" >
http://www.apache.org/dyn/closer.cgi/incubator/flex/4.8.0-incubating/apache-flex-sdk-4.8.0-incubating-bin.zip
</fx:String>
 <s:HTTPService id="getMirrorService" resultFormat="text"
   result="getMirrorService_resultHandler(event)"
   fault="getMirrorService_faultHandler(event)" />
</fx:Declarations>

*Fetch the html* from
http://www.apache.org/dyn/closer.cgi/incubator/flex/4.8.0-incubating/apache-flex-sdk-4.8.0-incubating-bin.zip
(or from http://www.apache.org/dyn/closer.cgi/incubator/flex/ )

protected function getMirrorURL():void
{
// logStr +="Get Mirror Site\n";
 getMirrorService.url=flex_repo;
getMirrorService.send();
}

*Parse the html to sniff out the first mirror site*

protected function getMirrorService_resultHandler(event:ResultEvent):void
{
 var resultStr:String=event.result.toString();

//get to the part that says 'we suggest the following mirror site for your
download:'

var i:int=resultStr.indexOf("site for your download:</p>");
//get the next href link after this text
var j:int=resultStr.indexOf("<a href=",i);
var k:int=resultStr.indexOf(">",j);
 var mirror_site:String=resultStr.substring(j+9,k-1);
// if you use the zip file as the url for the fetch_mirror service , split
the link into path and file
 var l:int=mirror_site.lastIndexOf("/");
var fileName:String=mirror_site.substring(l+1,mirror_site.length);
 var filePath:String=mirror_site.substring(0,l+1);

//set the file and path of file node with name=ApacheFlexSDK
 var x:XMLList=configXML.files.file.(attribute("name")=="ApacheFlexSDK");
x.@path=filePath;
 x.@file=fileName;
   /*write config file back if necessary - if used as an external wrapper */
//writeConfigFile();
}


On Fri, Jul 27, 2012 at 12:09 AM, Carol Frampton <cfram...@adobe.com> wrote:

>
>
> On 7/26/12 12 :04PM, "Daniel Shahaf" <d...@daniel.shahaf.name> wrote:
>
> >Try this link: http://www.apache.org/dyn/closer.cgi/incubator/flex/
> >
> >I'm pretty sure there is a query string parameter you can add to make it
> >do a redirect, too, rather than just tell you what the preferred mirror
> >is.
> >
> >Thanks for asking,
> >
> >Daniel
> >
> >Carol Frampton wrote on Thu, Jul 26, 2012 at 08:56:37 -0700:
> >> {sent on behalf of Erik de Bruin <e...@ixsoftware.nl> who is a member
> >>of flex-dev}
> >>
> >> Hi all,
> >>
> >> I'm writing on behalf of the Apache Flex (incubating) community. We're
> >> working on a tool that helps an end-user to download and install our
> >> binaries to the correct location on their system for use in an IDE.
> >>
> >> We would like to do this the proper way, which in our understanding is
> >> by using a dynamically assigned download mirror instead of a
> >> hard-coded link. I've read all of the documentation I could find and
> >> I've come up with the following solution:
> >>
> >> 1. create a wrapper around the generic 'mirrors.cgi', as described in
> >>[1];
> >> 2. create a HTML file containing only the tag: [preferred]. We need
> >> only one mirror URL as this is an automated download process;
> >> 3. place these two in the root of our project site;
> >> 4. call the wrapper CGI as a web service from our application, and use
> >> the result for the domain section of the URL.
> >>
> >> My questions:
> >> - is this a valid solution?
> >> - is there an 'easier' way to get a single dynamic mirror URL?
> >> - what did I miss, what did I forget to ask?
> >>
> >> Thank you very much for your assistance and patience,
> >>
> >> EdB
> >>
> >> [1] http://www.apache.org/dev/release-download-pages.html
> >> </message>
> >>
> >> EdB
> >>
>
>

Reply via email to