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

  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="mustella" default="run" basedir=".">

    <!-- Load the local properties.  Need sdk.dir to load the Flex config env vars.  -->
    <property name="local_properties" value="local.properties" />
    <property file="${basedir}/${local_properties}" />
    <property environment="env"/>

    <condition property="sdk.dir" value="${env.FLEX_HOME}" else="${basedir}/..">
        <isset property="env.FLEX_HOME"/>
    </condition>
        
    <property file="${sdk.dir}/env.properties"/>

	<pathconvert property="mustella.dir" dirsep="/" >
       <path location="${basedir}" />
    </pathconvert>

    <property name="tmp.dir" value="${mustella.dir}/tmp" />

    <property name="feature" value=""/>
    <property file="${basedir}/properties/${feature}.properties" />
    <property name="debug" value="false" />
    <property name="strict" value="true" />
    <property name="coach" value="true" />
    <property name="benchmark" value="true" />
    <property name="portNumber" value="80" />
    
    <!-- AJH shut off excludes for now -->
    <property name="excludes_done" value="true" />
    
    <property name="HOMEPATH" value="${env.HOMEDRIVE}${env.HOMEPATH}" />

    <property name="mustella.swc.dir" value="${mustella.dir}" />
    <property name="mustella.swc.name" value="mustella.swc" />

    <!-- default version file -->
    <property name="build.version.file" value="successfulBuild.properties" />
    <property prefix="on_disk" file="${mustella.dir}/${build.version.file}" />
    <property name="external_properties" value="external.properties" />

    <property file="${mustella.dir}/${external_properties}" />
    <property file="${mustella.dir}/build.properties" />

    <!-- must have a workable default for this prefix. Override in local.properties or on cmd line-->
    <property name="apollo_transform_prefix" value="zzaird_" />
    <property name="apollo_transform_prefix2" value="wwaird_" />

    <property name="apollo_transform_template" value="${mustella.dir}/Assets/AirTransform/WindowedAppTemplate.mxml" />
    <property name="previous.generated.testfiles" value="**/*.swf,**/*.output,**/SWFs/${apollo_transform_prefix}*.mxml,**/swfs/${apollo_transform_prefix}*.mxml,**/SWFs/${apollo_transform_prefix2}*.mxml,**/swfs/${apollo_transform_prefix2}*.mxml" />
    
    <condition property="sdk.mustella.dir" value="${env.MUSTELLA_TEST_DIR}" else="${mustella.dir}/tests">
           <isset property="env.MUSTELLA_TEST_DIR"/>
    </condition>

    <!-- 
        This directory doesn't exist in the source kit so make it although it would be better
        to make sure no targets that the source kit uses expect this directory to exist.
    -->
    <mkdir dir="${sdk.mustella.dir}" />

    <property name="root.dir" value="${basedir}/.."/>
    <property name="frameworks" value="${sdk.dir}/frameworks" />
    <property file="${mustella.dir}/local.properties" />
    <property name="mustellagen.dir" value="${mustella.dir}/gen" />
    <property name="sdk.bin.dir" value="${sdk.dir}/bin" />

    <property name="branch" value="trunk"/>

    <property name="compc.dir" value="${sdk.dir}/bin" />
    <property name="compc" value="" />
    <property name="mxmlc.args" value="-debug -define+=CONFIG::skaha,false -compiler.fonts.managers=flash.fonts.JREFontManager,flash.fonts.AFEFontManager,flash.fonts.BatikFontManager,flash.fonts.CFFFontManager" />
    <property name="asclasspath" value=""/>
    <property name="aschartspath" value="."/>
    <property name="frameworks.dir1" value="${frameworks}" />
    <property name="librarypath" value="${frameworks.dir1}/libs/framework.swc,${frameworks.dir1}/libs/charts.swc,${frameworks.dir1}/libs/rpc.swc"/>
    <!-- this seems to passed to CompileMustellaSwc but unused -->
    <!-- probably the flex-config.xml file used determines which playerglobal.swc is used -->
    <property name="external.librarypath" value="${env.PLAYERGLOBAL_HOME}/${playerglobal.version}/playerglobal.swc"/>
    <property name="rsl" value="" />

    <property name="coach" value="true" />
    <property name="strict" value="true" />
    <property name="exit_on_compile_error" value="" />

	<available file="/cygwin/bin/sh.exe" property="cygwinshell" value="/cygwin/bin/sh.exe"/>
    <available file="/cygwin64/bin/sh.exe" property="cygwinshell" value="/cygwin64/bin/sh.exe"/>
	
    <property name="buildURL" value="true" />

    <property name="classes.dir" value="${mustella.dir}/classes" />
    <property name="debug" value="false" />

    <property name="insert_results" value="" />
    <property name="run_this_script" value="" />

    <!-- the old approach, compile in the excludes, not generally used -->
    <property name="exclude_source_path" value="" />
    <property name="default.excludes.asfile" value="CurrentExcludeList.as" />
    <property name="default.excludes.asfiledir" value="."/>
    <property name="default.excludes.swcclass" value="CurrentExcludeList" />
    <property name="default.excludes.swc" value="CurrentExcludeList.swc" />

    <property name="excludelibrarypath" value="" />

    <property name="fork_compile" value="true" />

    <condition property="browser" value="${env.PROGRAMFILES}/Internet Explorer/iexplore">
        <isset property="env.PROGRAMFILES"/>
    </condition>

    <condition property="browser" value="${env.ProgramFiles}/Internet Explorer/iexplore">
        <isset property="env.ProgramFiles"/>
    </condition>

    <property name="player.timeout" value="45" />

    <!-- SDK jar files -->
    <path id="sdk.lib.classpath">
        <fileset dir="${sdk.dir}/lib">
            <include name="*.jar"/>
        </fileset>
    </path>

    <path id="flex.test.classpath">
        <pathelement location="${classes.dir}"/>
        <fileset dir="${sdk.dir}/lib">
          <include name="*.jar" />
        </fileset>
    </path>

    <property name="require_this_directory_too" value="" />

    <condition property="adl_extras" value="-screensize 640x960:640x960 -profile mobileDevice -XscreenDPI 240" >
        <istrue value="${run_mobile_tests}" />
    </condition>
    
    <!-- host_os_name (formerly real_os_name) is the machine which is compiling. -->
    <condition property="host_os_name" value="mac" >
        <os family="mac" />
    </condition>

    <condition property="short_os_name" value="mac" >
        <os family="mac" />
    </condition>

    <condition property="host_os_name" value="windows" >
        <os family="windows" />
    </condition>

    <condition property="short_os_name" value="win" >
        <os family="windows" />
    </condition>

    <condition property="host_os_name" value="Linux" >
        <os name="Linux" />
    </condition>    

    <!-- Mobile stuff will be changed by handle_mobile_config later if it's a mobile run. -->
    <property name="target_os_name" value="${host_os_name}" />

    <condition property="exclude_filename" value="${sdk.mustella.dir}/ExcludeListWin.txt" >
        <and>
            <equals arg1="${target_os_name}" arg2="windows" />
            <not>
                <istrue value="${use_apollo}" />
            </not>
        </and>
    </condition>

    <condition property="exclude_filename" value="${sdk.mustella.dir}/ExcludeListMac.txt" >
        <and>
            <equals arg1="${target_os_name}" arg2="mac" />
            <not>
                <istrue value="${use_apollo}" />
            </not>
        </and>
    </condition>
    
    <condition property="exclude_filename" value="${sdk.mustella.dir}/ExcludeListMacAIR.txt" >
        <and>
            <equals arg1="${target_os_name}" arg2="mac" />
            <istrue value="${use_apollo}" />
        </and>
    </condition>

    <condition property="exclude_filename" value="${sdk.mustella.dir}/ExcludeListWinAIR.txt" >
        <and>
            <equals arg1="${target_os_name}" arg2="windows" />
            <istrue value="${use_apollo}" />
        </and>
    </condition>

    <condition property="exclude_filename" value="${sdk.mustella.dir}/ExcludeListLinux.txt" >
        <equals arg1="${target_os_name}" arg2="Linux" />
    </condition>

    <!-- Whether a run will spawn its own baseline server.  With multiple runs on a machine, they will collide. -->
    <property name="prevent_baseline_server" value="${prevent_baseline_server}" />
    
    <!-- This does things like setting up mxmlc.  -->
    <target name="get_os" >
        <condition property="is_mac" value="true" >
            <equals arg1="${host_os_name}" arg2="mac" />
        </condition>
        <condition property="is_win" value="true" >
            <or>
                <equals arg1="${host_os_name}" arg2="windows" />
                <equals arg1="${host_os_name}" arg2="win" />
            </or>
        </condition>
        <condition property="is_linux" value="true" >
            <equals arg1="${host_os_name}" arg2="Linux" />
        </condition>
    </target>

    <!-- unzip, needed for installation, varies on windows -->
    <condition property="unzip" value="/cygwin/bin/unzip.exe" >
    <os family="windows" />
    </condition>

    <!-- ... but seems the same on mac & Linux -->
    <property name="unzip" value="/usr/bin/unzip" />

    <condition property="branch_name" value="Mainline" >
    <not>
        <isset property="branch_name" />
    </not>
    </condition>

    <!-- browser_name represents the runtime. -->
    <condition property="browser_name" value="Standalone" >
    <not>
        <istrue value="${use_browser}" />
    </not>
    </condition>

    <!-- the local.properties file has to be there for the subsequent
         loadfile call. Create it if needed -->

    <!-- filtering/standarizing of browser_name here   -->
    <loadfile failonerror="false" srcfile="${mustella.dir}/${local_properties}" property="browser_name" >
        <filterchain>
            <linecontainsregexp>
                <regexp pattern="^browser=.*$"/>
            </linecontainsregexp>
            <tokenfilter>
                <replaceregex pattern=".*/" replace=""  flags="g"/>
                <replaceregex pattern=".exe" replace=""  flags="g"/>
                <replaceregex pattern='\"' replace=""  flags="g"/>
            </tokenfilter>
        </filterchain>
        </loadfile>

    <!-- could be trouble later. We don't default well. -->
    <condition property="browser_name_not_set" value="true" >
        <and>
        <not>
            <isset property="browser_name"/>
        </not>
            <istrue value="${use_browser}" />
        </and>
    </condition>

    <condition property="browser_name" value="iexplore" >
        <and>
            <istrue value="${browser_name_not_set}" />
            <contains string="${browser}" substring="iexplore" casesensitive="false" />
        </and>
    </condition>

    <condition property="excludes_done" value="true" >
        <istrue value="${skip_exclude}" />
    </condition>

    <condition property="config_id" value="1" >
        <and>
            <istrue value="${excludes_done}" />
            <equals arg1="-1" arg2="${current.run.id}" />
        </and>
    </condition>

    <condition property="exclude_ids" value="(1)" >
        <and>
            <istrue value="${excludes_done}" />
            <equals arg1="-1" arg2="${current.run.id}" />
        </and>
    </condition>

    <!-- don't try fetching a config ID if we've decided we don't care about excludes -->
    <condition property="config_id" value="1" >
        <istrue value="${skip_exclude}" />
    </condition>

    <!-- run type values. (stored in db) -->
    <condition property="run_type" value="swfloader" >
        <isset property="shell_swf" />
    </condition>

    <condition property="run_type" value="" >
        <not>
            <isset property="run_type" />
        </not>
    </condition>

    <condition property="vetting" value="" >
        <or>
            <equals arg1="${run_type}" arg2=""/>
            <not>
                <isset property="run_type" />
            </not>
        </or>
    </condition>

    <!-- Only recompile mustella.swc if it doesn't exist or if any of the its .as files have changed. -->
    <uptodate property="compilemustellaswc.notRequired" targetfile="${mustella.dir}/${mustella.swc.name}" >
        <srcfiles dir="${mustella.dir}/as3/src/mustella" includes="**/*.as"/>
    </uptodate>
    
    <condition property="vetting" value="Vetting" >
        <equals arg1="${run_type}" arg2="mini"/>
    </condition>

    <condition property="vetting" value="Tiered" >
        <equals arg1="${run_type}" arg2="tier1"/>
    </condition>

    <condition property="vetting" value="Cyclone" >
        <equals arg1="${run_type}" arg2="cyclone"/>
    </condition>

    <condition property="shell_swf" value="" >
        <not>
            <isset property="${shell_swf}" />
        </not>
    </condition>

    <condition property="shell_swf_prefix" value="file:///" >
        <not>
            <isset property="${shell_swf_prefix}" />
        </not>
    </condition>

    <condition property="version_fetcher" value="${mustella.dir}/versionAIR.swf" >
        <istrue value="${use_apollo}" />
    </condition>

    <property name="version_fetcher" value="${mustella.dir}/version.swf" />

    <condition property="exclude_mixin" value="ExcludeFileLocationApollo" >
        <istrue value="${use_apollo}" />
    </condition>

    <property name="exclude_mixin" value="ExcludeFileLocation" />

    <!-- default location of AIR stuff if apollo_location not explicitly set -->
    <property name="apollo_location" value="${env.AIR_HOME}"/>
    <property name="air.sdk.dir" value="${apollo_location}" />



    <condition property="apollo_specific_excludes" value="${apollo_only_excludes}" >
        <istrue value="${use_apollo}" />
    </condition>

    <target name="getExcludeIds" unless="exclude_ids" description="Fetch exclude ids" >
        <taskdef name="excluder" classname="mustella.GetExcludeIdsTask" classpathref="flex.test.classpath"/>
        <excluder property="exclude_ids" type="${exclude_type}" filename="${exclude_filename}" branch="${branch_name}" os="${target_os_name}" browser="${browser_name}" apollo="${use_apollo}" bbrowser="${use_browser}" untilTime="${db_time}" write="false" excludeIds=""/>
    </target>

    <property name="bug_retry" value="" />
    <target name="getExcludes" unless="excludes_done" description="Fetch exclude values from db" >
        <echo>Write excludes file</echo>
        <mkdir dir="${tmp.dir}/flex" />
        <mkdir dir="${mustella.dir}/classes" />
        <delete file="${mustella.dir}/classes/${default.excludes.swc}" />
        <taskdef name="excluder" classname="mustella.GetExcludeIdsTask" classpathref="flex.test.classpath"/>
        <excluder property="exclude_ids" type="${exclude_type}" filename="${exclude_filename}" branch="${branch_name}" os="${target_os_name}" browser="${browser_name}" apollo="${use_apollo}" bbrowser="${use_browser}" untilTime="${db_time}" write="true" excludeIds="" bugByPass="${bug_retry}"/>
        <chmod perm="777" file="${exclude_filename}" />

        <property name="excludes_done" value="true" />
    </target>

    <property name="player.version" value="11.1"/>

    <!-- shorthand, and something javascript will tolerate: -->
    <property name="pversion" value="${player.version}"/>

    <target name="setup_linux" if="is_linux">
        <echo>doing linux setup</echo>
        <property name="mxmlc.exe" value="mxmlc"/>
        <property name="compc.exe" value="compc" />
        <property name="apollo_exe" value="adl" />
        <!-- kind of a guess: -->
        <property name="shell" value="/bin/bash" />
    	
    	<property name="player" value="${env.FLASHPLAYER_DEBUGGER}" />   
    	
        <!-- these values are sort of magic numbers, corresponding to db entries -->
        <property name="auto_exclude_config_value" value="10"/>
        <property name="auto_exclude_bug_id" value="unproven_linux_${fetched_date}" />
    </target>

    <target name="setup_mac" if="is_mac">
        <echo>doing mac setup</echo>
        <property name="mxmlc.exe" value="mxmlc"/>
        <property name="compc.exe" value="compc" />
        <property name="apollo_exe" value="adl" />
        <property name="unzip" value="/usr/bin/unzip" />
        <property name="shell" value="/bin/sh" />

        <property name="player" value="${env.FLASHPLAYER_DEBUGGER}" />
    	
        <!-- these values are sort of magic numbers, corresponding to db entries -->
        <property name="auto_exclude_config_value" value="9"/>
        <property name="auto_exclude_bug_id" value="unproven_mac_${fetched_date}"/>
        <echo>excl config val ${auto_exclude_config_value}</echo>
    </target>

    <target name="setup_windows" if="is_win">
        <echo>doing windows setup</echo>
        <echo>homepath: ${HOMEPATH} </echo>
        <property name="mxmlc.exe" value="mxmlc.bat"/>
        <property name="compc.exe" value="compc.bat" />
        <property name="apollo_exe" value="adl.exe" />
        <property name="shell" value="${cygwinshell}" />
    	
        <property file="${HOMEPATH}/mm.cfg"/>
        <echo>trace output file: ${TraceOutputFileEnable} </echo>

        <property name="player" value="${env.FLASHPLAYER_DEBUGGER}" />
    	
        <!-- these magic numbers correspond to db entries. Relevant for vetting -->
        <condition property="auto_exclude_config_value" value="1">
            <and>
                <isfalse value="${use_apollo}"/>
                <isfalse value="${use_browser}"/>
            </and>
        </condition>
        <condition property="auto_exclude_config_value" value="2">
            <istrue value="${use_apollo}"/>
        </condition>
        <condition property="auto_exclude_config_value" value="5">
            <istrue value="${use_browser}"/>
        </condition>
        <condition property="auto_exclude_bug_id" value="unproven_${fetched_date}">
            <and>
                <isfalse value="${use_apollo}"/>
                <isfalse value="${use_browser}"/>
            </and>
        </condition>
        <condition property="auto_exclude_bug_id" value="unproven_air_${fetched_date}">
            <istrue value="${use_apollo}"/>
        </condition>
        <condition property="auto_exclude_bug_id" value="unproven_browser_${fetched_date}">
            <istrue value="${use_browser}"/>
        </condition>
        <echo> player is ${player} </echo>
    </target>

    <!-- get the database time, used for time syncing in exclude db queries
         The mustella_auto.sh should have called and set this value; a local
             mini_run would need this, so setup depends on db_time  -->

    <!-- AJH
    <condition property="db_time" value="${env.db_time}">
        <isset property="env.db_time" />
    </condition> -->

    <target name="echo-browser" if="use_browser">
        <echo>use_browser=${use_browser}</echo>
        <echo>browser is ${browser}</echo>
    </target>

    <target name="echo-apollo" if="use_apollo">
        <echo>use_apollo=${use_apollo}</echo>
        <echo>apollo_location is ${apollo_location}</echo>        
    </target>

    <target name="echo-info">
        <!-- Summary Info -->
        <echo message="    JAVA_HOME:               ${env.JAVA_HOME}"/>
        <echo message="    FLASHPLAYER_DEBUGGER:    ${env.FLASHPLAYER_DEBUGGER}"/>
        <echo message="    sdk.dir:                 ${sdk.dir}"/>
    
        <echo message="    mustella exclude file:   ${exclude_filename}"/> 
    </target>
    
    <target name="check-fonts">
        <!-- Check that Adobe's embedded font jars exist and fail if any are missing.  -->
        <condition property="fonts.exist">
        <and>
            <available file="${sdk.dir}/lib/external/optional/afe.jar" />
            <available file="${sdk.dir}/lib/external/optional/aglj40.jar" />
            <available file="${sdk.dir}/lib/external/optional/flex-fontkit.jar" />
            <available file="${sdk.dir}/lib/external/optional/rideau.jar" />
         </and>
        </condition>       
        <fail message="Mustella uses embedded fonts.  Please install Adobe's embedded font support." unless="fonts.exist"/>
    </target>
    
    <target name="setup" depends="echo-info,get_date,get_os,setup_mac,setup_windows,setup_linux,db_time,handle_mobile_config,echo-browser,echo-apollo"  description="--> set platform specific properties">
        <!-- antcall target="db_time">
            <param name="no_quote" value="true" />
            <param name="db_time_vetting_file" value="${tmp.dir}/.db.time.mini" />
        </antcall>
        <property file="${tmp.dir}/.db.time.mini" / -->

        <!-- Browser stuff lives in a particular directory, as does apollo.  And they
            are mutually exclusive.
        -->
        
        <echo>player is ${player} </echo>

        <!-- Exclude apollo tests if not using apollo. -->
        <condition property="apollo_excludes" value="apollo/**/*.mxml" >
            <not>
                <istrue value="${use_apollo}" />
            </not>
        </condition>

        <!-- Exclude browser tests if not using browser. -->
        <condition property="browser_excludes" value="browser/**/*.mxml" >
            <not>
                <istrue value="${use_browser}" />
            </not>
        </condition>

        <!-- Exclude apollo tests if using browser. -->
        <condition property="apollo_excludes" value="apollo/**/*.mxml" >
            <istrue value="${use_browser}" />
        </condition>

        <!-- Exclude mobile tests if not using mobile. -->
        <condition property="mobile_excludes" value="mobile/**/*.mxml" >
            <not>
                <istrue value="${run_mobile_tests}" />
            </not>
        </condition>

        <condition property="query.outfile" value="${mustella.dir}/lastrun.html" >
            <equals arg1="${query.outfile}" arg2=""/>
        </condition>

        <condition property="query.outfile" value="${mustella.dir}/lastrun.html" >
            <not>
                <isset property="query.outfile" />
            </not>
        </condition>

        <condition property="require_this_directory" value="**/*.mxml" >
            <equals arg1="${require_this_directory_too}" arg2="" />
        </condition>

        <!-- AJH 
        <taskdef name="excluder" classname="mustella.GetExcludeIdsTask" classpathref="flex.test.classpath"/> -->

        <!-- get file level excludes -->
        <!-- AJH
        <antcall target="excluder_call" >
            <param name="write" value="false"/>
        </antcall> -->

        <!-- antcall target="excludes_by_file" />
        <loadfile srcFile="${mustella.dir}/tmpexc" property="other.mustella.excludes" >
            <filterchain>
            <linecontains negate="true">
            <contains value="rows affected"/>
            </linecontains>
            <striplinebreaks/>
            <replacestring from="/" to="${file.separator}"/>
            </filterchain>
        </loadfile-->

        <fileset id="sdk.mustella.fileset" dir="${sdk.mustella.dir}"
            includes="${sdk.mustella.includes}"
            excludes="${sdk.mustella.excludes},**/SWFs/Components/*.mxml,**/Baselines/,**/baselines/,**/comps/*.mxml,**/Assets/**/*.swf,**/assets/**/*.swf,${browser_excludes},${apollo_excludes},${other.mustella.excludes},${apollo_specific_excludes},${mobile_excludes}" >
            <filename name="${require_this_directory}" />
        </fileset>

        <fileset id="sdk.mustella.swffileset" dir="${sdk.mustella.dir}"
            includes="${sdk.mustella.swfs}"
            excludes="${sdk.mustella.excludes},**/Assets/**/*.swf,**/assets/**/*.swf"/> 

        <property name="showfiles" refid="sdk.mustella.fileset" />
        <echo>fileset: ${showfiles}</echo>
    </target>

    <!-- exclude_filename is not used, since write = false. -->
    <target name="excluder_call" unless="excludes_done" >
        <excluder property="exclude_ids" type="${exclude_type}" filename="${exclude_filename}" branch="${branch_name}" os="${target_os_name}" browser="${browser_name}" apollo="${use_apollo}" bbrowser="${use_browser}" untilTime="${db_time}" write="false" excludeIds=""/>
    </target>

     <property name="sdk.mustella.shellincludes" value="" />
     <property name="sdk.mustella.shellexcludes" value="" />

     <target name="build_shell_set" description=" create list of shell names">

        <!-- this gets all the .sh equiv files -->
        <pathconvert property="shell_file_mxml_equivs" pathsep="," dirsep="/" >
            <path path="${sdk.mustella.includes}" />
            <filtermapper>
                <replacestring from=".mxml" to=".sh"  />
            </filtermapper>
            <map from="${mustella.dir}/" to="" />
        </pathconvert>
        <echo>shell_file_mxml_equivs is ${shell_file_mxml_equivs}</echo>
        
        <!-- this does likewise for the excluded ones -->
        <pathconvert property="shell_file_mxml_excludes" pathsep="," dirsep="/" >
            <path path="${sdk.mustella.excludes}" />
            <filtermapper>
                <replacestring from=".mxml" to=".sh"  />
            </filtermapper>
            <map from="${mustella.dir}/" to="" />
        </pathconvert>
        
        <!-- build the fileset -->
        <fileset id="mxml_equiv_shells" dir="${sdk.mustella.dir}" includes="${shell_file_mxml_equivs}" excludes="${shell_file_mxml_excludes}">
        </fileset>
        <echo>mxml_equiv_shells is ${mxml_equiv_shells}</echo>
              
        <property name="showx0" refid="mxml_equiv_shells" />
        
        <!-- There mayb be NO shell equiv files, but we need to to check for
            a pre_compile.sh file (in a swfs dir). Loop the .mxml files to check for them.
            Not wildly efficient.  -->
        <pathconvert  dirsep="/" property="tmp111a" refid="sdk.mustella.fileset" />
        
        <pathconvert  dirsep="/" property="tmp111" refid="mxml_equiv_shells" />
        
        <!-- call the custom filter. This looks for sibling swf directories with
        pre_compile.sh files in there. Maybe this was possible with filesets, but
        it seemed unreachable -->
        <taskdef name="getSiblingSwfs" classname="mustella.CousinPreCompile" classpathref="flex.test.classpath"/>
        <getSiblingSwfs files="${tmp111}${path.separator}${tmp111a}" root="${sdk.mustella.dir}" property="tmp.sdk.mustella.scripts2"  />
        <echo>tmp.sdk.mustella.scripts2 is ${tmp.sdk.mustella.scripts2}</echo>

     </target>


     <target name="shells" depends="build_shell_set,chmod_shells" description=" Run user-shell scripts associated with these tests">
        <!-- runs shell scripts in the test directories -->
        <!-- make the set space-delimited -->
    
        <pathconvert pathSep=" " dirsep="/" property="sdk.mustella.scripts2" >
            <path path="${tmp.sdk.mustella.scripts2}" />
        </pathconvert>
        <exec  executable="${shell}" failonerror="${exit_on_compile_error}">
            <arg value="${mustella.dir}/scripts/shellrunner.sh" />
            <env key="MUSTELLA_SCRIPTS2" value="${sdk.mustella.scripts2}" />
            <env key="SDK_DIR" value="${sdk.dir}" />
            <env key="MUSTELLA_DIR" value="${mustella.dir}" />
            <env key="MUSTELLA_TEST_DIR" value="${sdk.mustella.dir}" />
            <env key="USE_APOLLO" value="${use_apollo}" />
            <env key="APOLLO_TRANSFORM" value="${apollo_transform}" />
        </exec>
     </target>

     <target name="chmod_shells" depends="build_shell_set" unless="chmod_shells.notRequired"
            description=" make user-defined shells executatble">
        <echo>changing user shell files to executable </echo>
        <chmod perm="555" maxparallel="50">
            <fileset dir="${mustella.dir}" >
                <include name="**/*.sh" />
            </fileset>
        </chmod>
        <chmod perm="555" maxparallel="50">
            <fileset dir="${mustella.dir}">
                <include name="*.sh" />
            </fileset>
        </chmod>
    </target>

    <target name="setHostName"/>

    <!-- property name="run_type" value="" / -->
    <property name="port" value="" />
    <property name="xmlnsVal" value="" />

    <target name="getConfigId" unless="config_id" >
        <taskdef name="getconfigidtask" classname="mustella.GetConfigIdTask" classpathref="flex.test.classpath"/>
        <getconfigidtask  property="config_id" branch="${branch_name}" browser="${browser_name}" apollo="${use_apollo}" os="${target_os_name}"/>
        <echo message="new config_id: ${config_id}" />
    </target>

    <target name="getActualRunId" unless="current.run.id" > 
        <taskdef name="getrunidtask" classname="mustella.GetRunIdTask" classpathref="flex.test.classpath"/>
        <getrunidtask  host="host" property="current.run.id" build="${build.id}" branch="${branch_name}" type="${run_type}" browserName="${browser_name}" config="${config_id}" swf="${version_fetcher}" player="${player}" time="${db_time}" os="${os}" osVersion="${os_version}" arch="${arch}"/>
        <echo message="yo yo yo new id: ${current.run.id}" />
        <echo file="${sdk.mustella.dir}/runid.properties" append="false">run_id=${current.run.id}</echo>

        <!-- read the file, make sure we match -->

        <get ignoreerrors="true" src="http://localhost:${portNumber}/runid.properties"  dest="${mustella.dir}/junk1.properties" />
        <property file="${mustella.dir}/junk1.properties" prefix="checkid" />

        <condition property="exit_with_msg" value="true" >
            <and>
                <not>
                    <equals arg1="${current.run.id}" arg2="${checkid.run_id}" />
                </not>
                <not>
                    <equals arg1="${run_type}" arg2="mini" />
                </not>
            </and>
        </condition>

        <antcall target="sendConfigFailure" >
        </antcall>

        <antcall target="do_fail" >
            <param name="msg" value="Local web server not configured correctly!" />
        </antcall>
    </target>

    <!-- This will figure out some device stuff. -->
    <condition property="do_handle_mobile_config" value="true" >
        <istrue value="${run_mobile_tests}" />
    </condition>
    
    <target name="handle_mobile_config" depends="get_mobile_data,device_fail" if="do_handle_mobile_config" >
        <condition property="exclude_filename" value="${sdk.mustella.dir}/ExcludeList${os}.txt" >
            <equals arg1="${run_mobile_tests}" arg2="true" />
        </condition>
        
        <echo>os: ${os}</echo>
        <echo>target_os_name: ${target_os_name}</echo>
        <echo>os_version: ${os_version}</echo>
        <echo>device_name: ${device_name}</echo>
        <echo>get_results_from_log: ${get_results_from_log}</echo>
        <echo>step_timeout: ${step_timeout}</echo>
        <echo>run_mobile_tests: ${run_mobile_tests}</echo>
        <echo>use_android_runner: ${use_android_runner}</echo>
        <echo>use_ios_runner: ${use_ios_runner}</echo>
        <echo>use_qnx_runner: ${use_qnx_runner}</echo>
        <echo>exclude_filename: ${exclude_filename}</echo>

        <!-- Look for AIR and Android files. -->
        <available file="${air.sdk.dir}/lib/aot/lib/AIRInterpreter" property="have_air_interpreter" />
        <available file="${air.sdk.dir}/lib/aot/bin/as/arm-apple-darwin9-as" property="have_air_packager" />
        <available file="${air.sdk.dir}/lib/adt.jar" property="have_air_adt_jar" />
        <available file="${runtimeApk}" property="have_air_android_runtime" />
        
        <echo>have_air_interpreter is ${have_air_interpreter}</echo>
        <echo>have_air_packager is ${have_air_packager}</echo>
        <echo>have_air_adt_jar is ${have_air_adt_jar}</echo>
        <echo>have_air_android_runtime is ${have_air_android_runtime}</echo>
        
        <condition property="need_air_android">
            <and>
                <istrue value="${use_android_runner}" />
                <not>
                    <istrue value="${have_air_android_runtime}" />
                </not>
            </and>
        </condition>
        <echo>need_air_android is ${need_air_android}</echo>
        
        <condition property="need_air_ios">
            <and>
                <istrue value="${use_ios_runner}" />
                <or>
                    <not>
                        <istrue value="${have_air_interpreter}" />
                    </not>
                    <not>
                        <istrue value="${have_air_packager}" />
                    </not>
                    <not>
                        <istrue value="${have_air_adt_jar}" />
                    </not>
                </or>
            </and>
        </condition>
        <echo>need_air_ios is ${need_air_ios}</echo>
        
        <condition property="need_to_show_air_ios_fail_message">
            <and>
                <isset property="need_air_ios" />
                <or>
                    <not>
                        <isset property="air.sdk.dir" />
                    </not>
                    <not>
                        <isset property="air.sdk.version" />
                    </not>
                    <not>
                        <isset property="air.sdk.build" />
                    </not>                  
                </or>
            </and>
        </condition>
        <echo>need_to_show_air_ios_fail_message is ${need_to_show_air_ios_fail_message}</echo>
        
        <condition property="need_to_fetch_air_ios">
            <and>
                <isset property="need_air_ios" />
                <isset property="air.sdk.dir" />
                <isset property="air.sdk.build" />
                <isset property="air.sdk.version" />
            </and>
        </condition>
        <echo>need_to_fetch_air_ios is ${need_to_fetch_air_ios}</echo>
        
        <antcall target="show_air_ios_fail_message" />
        <antcall target="show_air_android_fail_message" />
        <antcall target="fetch_air_ios" />
        
        <!-- Look for the QNX SDK if we need to. -->
        <available file="${qnx_sdk_dir}/bin" property="have_qnx_sdk" />
        <condition property="need_qnx_sdk">
            <and>
                <istrue value="${use_qnx_runner}" />

                <not>
                    <istrue value="${have_qnx_sdk}" />
                </not>
            </and>
        </condition>        
        <antcall target="fetch_qnx_sdk" />
    </target>

    <target name="fetch_qnx_sdk" if="need_qnx_sdk">
        <echo>One or more of these is missing:</echo>
        <echo>  ${qnx_sdk_dir}</echo>
        <fail message="A QNX SDK needs to be set correctly in the qnx_sdk_dir variable in local.properties." />
    </target>

    <target name="show_air_android_fail_message" if="need_air_android">
        <echo>Required for Android run: ${runtimeApk}</echo>
        <fail message="runtimeApk needs to be set to an AIR Runtime.apk file in local.properties." />
    </target>

    <target name="show_air_ios_fail_message" if="need_to_show_air_ios_fail_message">
        <echo>One or more of these is missing:</echo>
        <echo>  Required for iOs run: ${air.sdk.dir}/lib/aot/lib/AIRInterpreter</echo>
        <echo>  Required for iOs run: ${air.sdk.dir}/lib/aot/bin/as/arm-apple-darwin9-as</echo>
        <echo>  Required for iOs run: ${air.sdk.dir}/lib/adt.jar</echo>
        <fail message="An AIR SDK for iOS needs to be set in local.properties." />
    </target>

    <target name="fetch_air_ios" if="need_to_fetch_air_ios">
        <!-- Do the fetch from here *only* if air.sdk.version is set in local.properties. -->
        <exec executable="${shell}">
            <arg value="${mustella.dir}/scripts/fetch_air_build.sh" />
            <arg value="${mustella.dir}" />
            <arg value="${air.sdk.dir}" />
            <arg value="${air.sdk.version}" />
            <arg value="${air.sdk.build}" />                        
            <arg value="${realUser}" />
            <arg value="${realPwd}" />
        </exec>
    </target>

    <!-- Get mobile stuff. -->
    <target name="get_mobile_data" if="do_handle_mobile_config">
        <taskdef name="getdevicespecstask" classname="mustella.GetDeviceSpecsTask" classpathref="flex.test.classpath"/>
        <getdevicespecstask androidSdk="${android_sdk}" runId="${run_id}" deviceName="${device_name}" mustellaDir="${mustella.dir}" />      
    </target>

    <!-- Fail if we could not get a version which we needed. -->
    <target name="device_fail" if="get_mobile_data_fail">
        <fail message="Some kind of device-related failure occurred."/>
    </target>

    <!-- not sure about that unless -->
    <target name="getRunId" unless="current.run.id" depends="setbuildID,setHostName,getConfigId,getActualRunId"/>

    <target name="invokeVersion" depends="get_os,setup_mac,setup_windows,setup_linux" description="Fetch the flex version">
        <exec executable="${sdk.dir}/bin/${mxmlc.exe}" output="${mustella.dir}/.flex.version">
            <arg value="-version"  />
        </exec>
    </target>

    <fileset id="sdk.mustella.fileset" dir="${sdk.mustella.dir}"
            includes="${sdk.mustella.includes}"
            excludes="${sdk.mustella.excludes},${other.mustella.excludes}" />

    <target name="clean" depends="cleanswfs" description="--> cleanup old report and actual files">
        <echo message="Deleting old results and files from previous testsuite build."/>
        <delete dir="${mustellagen.dir}" quiet="true"/>
        <!-- get rid of old runid prop file, in case we don't create a new one -->
        <delete verbose="true" file="${sdk.mustella.dir}/runid.properties" failonerror="false" quiet="true" />
        <!-- delete file="${mustella.dir}/mustella.swc" failonerror="false"/ -->
        <delete quiet="true" failonerror="false" includeEmptyDirs="true">
            <fileset dir="${mustella.dir}">
                <include name="test_files.tmp"/>
                <include name="results.txt"/>
                <include name="*.log"/>
            </fileset>
        </delete>
        <delete dir="${tmp.dir}"/>
    </target>

    <condition property="copy_adt_jar" value="true" >
        <istrue value="${run_mobile_tests}" />
    </condition>

    <target name="prepare" unless="already_prepared" depends="check-fonts,handle_adt_jar" description="--> create test suite directories" >
        <echo message="Preparing testsuite."/>
        <mkdir dir="${sdk.dir}/lib"/>
        <mkdir dir="${classes.dir}"/>
        <ant antfile="${mustella.dir}/java/src/build.xml" target="compile-mustella" />
    </target>
    
    <target name="handle_adt_jar" if="copy_adt_jar">
        <copy file="${apollo_location}/lib/adt.jar" tofile="${mustella.dir}/lib/adt.jar" overwrite="true" />        
    </target>

    <target name="cleanswfs" unless="noclean.set" description="--> deletes all swfs and tag files">
        <delete quiet="true" failonerror="false">
            <fileset dir="${sdk.mustella.dir}" casesensitive="false" >
                <include name="${previous.generated.testfiles}"/>
                <include name="**/*.sh.*.log"/>
                <include name="**/swfs/**/*.log"/>
                <include name="**/swfs/**/*l*nkreport*.xml"/>
                <include name="**/*.png.bad.png*"/>
                <include name="**/swfs/**/*.swf"/>
                <include name="**/swfs/**/*.swc"/>
                <!-- all the special case swf files that need to be kept -->
                <exclude name="**/swfs/assets/SwfSymbolSkinStates.swf"/>
                <exclude name="mx/controls/MovieClipSWFLoader/SWFs/assets/quickMovie.swf"/>
                <exclude name="mx/controls/MovieClipSWFLoader/SWFs/assets/test.swf"/>
                <exclude name="mx/controls/MovieClipSWFLoader/SWFs/assets/test3.swf"/>
                <exclude name="components/SWFLoader/SWFs/assets/FlashSWF.swf"/>
                <exclude name="components/ProgressBar/SWFs/assets/flex_skins.swf"/>
                <exclude name="States/CurrentSyntax/Integration/CrossVersion/SWFs/assets/Flex320App1.swf"/>
                <exclude name="States/CurrentSyntax/Integration/CrossVersion/SWFs/assets/Flex330App1.swf"/>
                <exclude name="gumbo/components/Application/SWFs/assets/BasicApplicationFlex34.swf"/>
                <!-- all the special case swc files that need to be kept -->
                <exclude name="gumbo/core/DesignLayer/swfs/assets/FCKAssets.swc"/>
                <exclude name="gumbo/FCK/swfs/assets/*.swc"/>
                <exclude name="mx/controls/MovieClipSWFLoader/SWFs/assets/FlashCS5_MovClip1.swc"/>
                <exclude name="RuntimeLocalization/RTL_SparkSkin/SWFs/Assets/bundles/flex20/enCustomBundle2_Flex20.swc"/>
            </fileset>
        </delete>
        <delete dir="${sdk.mustella.dir}/MarshallPlan/SWFs/assets/MyUtils"/>
    </target>

   <property name="exclude_flag" value="" />
    <property name="cmd_line_scriptName" value="" />
    <property name="cmd_line_testcaseName" value="" />
    <property name="bugId" value="" />
    <property name="hard" value="" />

    <target name="set_exclude_flag" depends="prepare,setup" description="- set exclude flag on testcases">
        <pathconvert pathSep=";" property="sdk.mustella.files" refid="sdk.mustella.fileset"/>
        <java classname="mustella.ExcludeUtil" resultproperty="jreturn">
            <classpath refid="flex.test.classpath"/>
            <sysproperty key="exclude" value="${exclude_flag}" />
            <sysproperty key="bugId" value="${bugId}" />
            <sysproperty key="exclude_id" value="${exclude_id}" />
            <sysproperty key="hard" value="${hard}" /> <!-- added -->
            <arg value="${cmd_line_scriptName}" />
            <arg value="${cmd_line_testcaseName}" />
        </java>

        <condition property="exit_with_msg" value="true" >
              <not>
            <equals arg1="0" arg2="${jreturn}" />
              </not>
        </condition>
        
        <antcall target="do_fail" >
            <param name="msg" value="Unable to exclude test case. Is it in the database?" />
        </antcall>
    </target>

    <target name="do_fail" if="exit_with_msg">
    <fail message="${msg}" />
    </target>

    <target name="re_include_test" depends="prepare,setup" description="- set flag to include testcases again">
        <pathconvert pathSep=";" property="sdk.mustella.files" refid="sdk.mustella.fileset"/>
        <java classname="mustella.ReInclude" >
            <classpath refid="flex.test.classpath"/>
            <arg value="${bugId}" />
        </java>
    </target>

    <property name="skipped_insert_file" value="${mustella.dir}/testcases_notInserted.txt" />
    <property name="send_check_email" value="" />
    <property name="fail_at_testcase_check" value="" />

    <target name="insert_tests" depends="prepare,setup" description="--- insert testcases">
        <pathconvert pathSep=";" property="sdk.mustella.files" refid="sdk.mustella.fileset"/>
        <taskdef name="namesToFile" classname="mustella.WriteFileNames" classpathref="flex.test.classpath"/>
        <namesToFile list="${sdk.mustella.files}" file="${mustella.dir}/test_files.tmp"/>
        <pathconvert pathSep=";" property="sdk.mustella.files" refid="sdk.mustella.fileset"/>
        <delete file="testcases_notInserted.txt" />
        <echo>TESTCASE CHECK and INSERT TO DB</echo>
        <java classname="mustella.InsertTestcase" fork="${fork_compile}" resultproperty="jreturn">
            <classpath refid="flex.test.classpath"/>
            <sysproperty key="skipped_insert_file" value="${skipped_insert_file}" />
            <sysproperty key="debug_insert" value="${debug_insert}" />
            <sysproperty key="fix_it_mode" value="${fix_it_mode}" />
            <sysproperty key="do_move" value="${do_move}" />
            <sysproperty key="old_file" value="${old_file}" />
            <arg path="${mustella.dir}/test_files.tmp"/>
            <!-- arg path="${sdk.mustella.files}"/ -->
        </java>
        <echo message="value of jreturn: ${jreturn}" />
        
        <!--- backwards? shouldn't it be not on the zero? -->
        <condition property="do_send_check" value="true" >
            <and>
                <not>
                    <equals arg1="${jreturn}" arg2="0"/>
                </not>
                    <equals arg1="${send_check_email}" arg2="true"/>
            </and>
        </condition>
        
        <antcall target="sendCheckResults" />
        
        <!-- NOT? -->
        <condition property="exit_with_msg" value="true" >
            <and>
                <equals arg1="${jreturn}" arg2="0"/>
                <equals arg1="${fail_on_testcase_check}" arg2="true"/>
            </and>
        </condition>
        
        <antcall target="do_fail" >
            <param name="msg" value="Testcase check failed." />
        </antcall>
        
        <echo>Return was okay from test case check</echo>        
    </target>

    <target name="sendConfigFailure" if="exit_with_msg">
        <echo file="${mustella.dir}/config.txt">Test Server: Config Failure (web server root) for ${host}</echo>
        <java classname="utils.HtmlNotify">
            <classpath refid="flex.test.classpath"/>
            <arg value="${mustella.dir}/config.txt" />
            <arg value="inner-relay-1.corp.adobe.com"/>
            <arg value="Mustella Config Check Failure - ${branch}" />
            <arg value="mustella tester &lt;bolaughl@adobe.com&gt;"/>
            <arg value="bolaughl@adobe.com" />
        </java>
    </target>

    <property name="socket_mixin" value="" />

    <!-- set this to false to use the swc -->
    <property name="use_mustella_framework_dir" value="true" />
    <property name="mustella_framework_dir" value="${mustella.dir}/as3/src/mustella" />

    <property name="htmlDir" value="" />
    <property name="test_files" value="" />

    <condition property="user_args" value="" >
        <not>
            <isset property="user_args" />
        </not>
    </condition>


    <!-- the default. Mini run will override this. Server runs will not -->
    <property name="result_include" value="-includes=SendFormattedResultsToLog" />
    <property name="exit_include" value="" />

    <property name="build_version" value="${server}" />

    <target name="fast_run_filesets" depends="get_os,setup_mac,setup_windows,setup_linux">

        <fileset id="sdk.mustella.swffileset" dir="${sdk.mustella.dir}"
            includes="${sdk.mustella.swfs}"
            excludes="${sdk.mustella.excludes},**/Assets/**/*.swf,**/assets/**/*.swf" />
    
        <property name="showit0" refid="sdk.mustella.swffileset" />
        <echo>stuff: ${showit0}</echo>
    </target>
    
    <target name="fast_compile_filesets" depends="get_os,setup_mac,setup_windows,setup_linux">

        <property file="${basedir}/properties/mustella1.properties" />
    
        <condition property="apollo_excludes" value="apollo/**/*.mxml" >
            <not>
                <istrue value="${use_apollo}" />
            </not>
        </condition>
    
        <condition property="browser_excludes" value="browser/**/*.mxml" >
            <not>
                <istrue value="${use_browser}" />
            </not>
        </condition>
    
        <condition property="apollo_excludes" value="apollo/**/*.mxml" >
            <istrue value="${use_browser}" />
    
        </condition>
        <fileset id="sdk.mustella.fileset" dir="${sdk.mustella.dir}" 
            includes="${sdk.mustella.includes}" 
            excludes="${sdk.mustella.excludes},**/baselines/,**/Baselines/,**/comps/*.mxml,**/Assets/**/*.swf,**/assets/**/*.swf, ${browser_excludes},${apollo_excludes},${other.mustella.excludes},${apollo_specific_excludes}" >
        </fileset>
        <property name="tmp.showfiles" refid="sdk.mustella.fileset" />
        <echo file="${mustella.dir}/junk1a">${tmp.showfiles}</echo>
        <echo>stuff: ${tmp.showfiles}</echo>
    </target>

    <target name="realCompile" depends="compilemustellaswc" description="- mxmlc call to compile mustella test swfs" if="sdk.mustella.includes">
        <delete quiet="true">
            <fileset dir="${sdk.dir}/frameworks/componentSmoke" includes="*.cache"/>
        </delete>
        <property name="frameworks.dir" value="${sdk.dir}/frameworks" />
        <property name="mxmlc.dir" value="${sdk.dir}/bin" />
        <!-- property name="mxmlc.exe" value="mxmlc.exe" / -->
        <!-- remove? property name="pfchange" value="workspace" / -->
        <pathconvert pathSep=";" property="sdk.mustella.mxmlfiles" refid="sdk.mustella.fileset"/>

        <!-- <echo>stuff we're passing into compile: ${sdk.mustella.mxmlfiles}</echo> -->
    
        <!-- <echo>Shell is currently ${shell}</echo> -->
        <antcall target="shells" />
    
        <!-- write the target files to a file -->
        <taskdef name="namesToFile" classname="mustella.WriteFileNames" classpathref="flex.test.classpath"/>
        <namesToFile list="${sdk.mustella.mxmlfiles}" file="${mustella.dir}/test_files.tmp"/>
    	
        <java classname="mustella.CompileMustellaSwfs" fork="${fork_compile}" resultproperty="jreturn" >
            <classpath refid="flex.test.classpath"/>
            <sysproperty key="mxmlcdir" value="${mxmlc.dir}" />
            <sysproperty key="mxmlcexe" value="${mxmlc.exe}" />
            <sysproperty key="sdk.mustella.dir" value="${sdk.mustella.dir}"/>
            <sysproperty key="sdk.dir" value="${sdk.dir}"/>
            <sysproperty key="mustella_framework_dir" value="${mustella_framework_dir}" />
            <sysproperty key="run_id" value="${current.run.id}" />
            <sysproperty key="frameworks" value="${frameworks.dir}" />
            <sysproperty key="compc" value="${compc}" />
            <sysproperty key="compcexe" value="${compc.exe}" />
            <sysproperty key="strict" value="${strict}"/>
            <sysproperty key="index" value="${index}"/>
            <sysproperty key="compcdir" value="${compc.dir}" />
            <sysproperty key="mxmlc.args" value="${mxmlc.args} -source-path+=${mustella.dir}/Assets "/>
            <sysproperty key="rsl" value="${rsl}" />
            <sysproperty key="build" value="${build}"/>
            <sysproperty key="debug" value="${debug}"/>
            <sysproperty key="exit_on_compile_error" value="${exit_on_compile_error}" />
            <sysproperty key="save_failures" value="${save_failures}" />
            <sysproperty key="use_apollo" value="${use_apollo}" />
            <sysproperty key="apollo_location" value="${apollo_location}" />
            <sysproperty key="excludelibrarypath" value="${excludelibrarypath}"/>
            <sysproperty key="external.librarypath" value="${external.librarypath}"/>
            <sysproperty key="basedir" value="${mustella.dir}"/>
            <sysproperty key="incremental" value="false" />
            <sysproperty key="asclasspath" value="${asclasspath},${aschartspath}"/>
            <sysproperty key="librarypath" value="${librarypath}"/>
            <sysproperty key="coach" value="${coach}"/>
            <sysproperty key="feature" value="${feature}"/>
            <sysproperty key="run_this_script" value="${run_this_script}"/>
            <sysproperty key="socket_mixin" value="${socket_mixin}" />
            <sysproperty key="use_mustella_framework_dir" value="${use_mustella_framework_dir}" />
            <sysproperty key="socket_mixin" value="${socket_mixin}" />
            <sysproperty key="fork_compile" value="${fork_compile}" />
            <sysproperty key="include_list" value="${include_list}" />
            <sysproperty key="mustella.dir" value="${mustella.dir}" />
            <sysproperty key="use_browser" value="${use_browser}" />
            <sysproperty key="htmlDir" value="${htmlDir}" />
            <sysproperty key="skip_exclude" value="${skip_exclude}" />
            <sysproperty key="apollo_transform" value="${apollo_transform}" />
            <sysproperty key="apollo_transform_template" value="${apollo_transform_template}" />
            <sysproperty key="apollo_transform_prefix" value="${apollo_transform_prefix}" />
            <sysproperty key="apollo_transform_prefix2" value="${apollo_transform_prefix2}" />
            <sysproperty key="use_include_file" value="${use_include_file}" />
            <sysproperty key="user_args" value="${user_args}" />
            <sysproperty key="flex_version" value="${flex_version}" />
            <sysproperty key="build_version" value="${build_version}" />
            <sysproperty key="result_include" value="${result_include}" />
            <sysproperty key="exit_include" value="${exit_include}" />
            <sysproperty key="exclude_mixin" value="${exclude_mixin}" />
            <sysproperty key="exclude_source_path" value="${exclude_source_path}" />
            <sysproperty key="mustellaswc" value="${mustella.swc.dir}/${mustella.swc.name}" />
            <sysproperty key="pmd" value="${pmd}" />
            <sysproperty key="distributed" value="${distributed}" />
            <sysproperty key="compile_dir" value="${compile_dir}" />
            <sysproperty key="compile_id" value="${compile_id}" />
            <sysproperty key="hostId" value="${hostId}" />
            <sysproperty key="run_mobile_tests" value="${run_mobile_tests}" />      
            <sysproperty key="device_name" value="${device_name}" />
            <sysproperty key="target_os_name" value="${target_os_name}" />
            <sysproperty key="os_version" value="${os_version}" />
            <sysproperty key="exclude_filename" value="${exclude_filename}" />
            <sysproperty key="adl_extras" value="${adl_extras}" />
            <arg path="${mustella.dir}/test_files.tmp"/>
        </java>
    
        <echo message="compileswfs jreturn is ${jreturn}" />
        <!-- handle the bad return -->
    
        <condition property="always_send" value="true" >
            <and>
                    <equals arg1="${jreturn}" arg2="1"/>
                <not>
                    <equals arg1="${current.run.id}" arg2="-1"/>
                </not>
            </and>
        </condition>
    
        <condition property="exit_with_msg" value="true" >
            <and>
                    <equals arg1="${jreturn}" arg2="1"/>
                    <equals arg1="${exit_on_compile_error}" arg2="true"/>
            </and>
        </condition>
    
        <antcall target="do_fail" >
            <param name="msg" value="SWF compile failed. Exiting" />
        </antcall>    
    </target>

    <!-- this seems to be the same as the compileswfs target -->
    <target name="compileLite" depends="prepare,setup,getRunId,getExcludes,realCompile" description="- compile the mustella tests into swfs">

    <antcall target="continue_always_send" />
    <!-- consider if we want to use mustella as a swc? -->
    </target>

    <target name="continue_always_send" if="always_send" >
        <antcall target="queryOnly" />
        <antcall target="do_sendResults" />
    </target>

    <target name="zip_small"  depends="compileLite,zipLite" description="- compile/package subset of tests">
    </target>

    <target name="zipLite"  description="- package test swfs">

        <!--    this should zip only the result of the compile; so we should call a shell script
                to figure out the diff and only zip that. This, in short, becomes an exec
        -->   

    </target>

    <property name="testpkg" value="testpkg.zip" />

    <target name="zipswfs"  depends="compileLite,ziponly" description="- package test swfs"/>

    <target name="ziponly"  description="- package test swfs">

        <!-- actual location should be build number(directory) with packages in it   -->
        <property file="${mustella.dir}/successfulBuild.properties" />
        <echo>This is the build I'm acting on ${server}</echo>
        <mkdir dir="${tmp.dir}/flex/${server}" />
        <zip destfile="${tmp.dir}/flex/${server}/${testpkg}" >
            <fileset refid="sdk.mustella.swffileset" />
        </zip>
        <copy verbose="true" file="${mustella.dir}/successfulBuild.properties" todir="${tmp.dir}/flex" />
            <copy verbose="true" file="${mustella.dir}/${langZip}" todir="${tmp.dir}/flex/${server}" />
        <copy verbose="true" file="${mustella.dir}/${mainZip}" todir="${tmp.dir}/flex/${server}" />
        <copy verbose="true" file="${db_time_file}" todir="${tmp.dir}/flex/${server}" />
        <copy verbose="true" file="${server_time_file}" todir="${tmp.dir}/flex/${server}" />
    </target>

    <property name="work_table" value="hurricane_work_list" />

    <target name="update_volatiles" >

        <!-- check for a latest full test run -->
        <property prefix="current.win." file="${mustella.dir}/external/win.runid.properties" />
        <property prefix="current.mac." file="${mustella.dir}/external/mac.runid.properties" />
    
        <antcall target="fetch_old_runid">
            <param name="arg.propertyfile" value="${mustella.dir}/external/win.runid.properties.tmp" />
            <param name="arg.os" value="%Windows%" />
        </antcall>
    
        <antcall target="fetch_old_runid">
            <param name="arg.propertyfile" value="${mustella.dir}/external/mac.runid.properties.tmp" />
            <param name="arg.os" value="%Mac%" />
        </antcall>
    
        <property file="${mustella.dir}/external/win.runid.properties.tmp" prefix="win."/>
        <property file="${mustella.dir}/external/mac.runid.properties.tmp" prefix="mac."/>
    
        <echo>compare arg1="${current.win.run_id}" arg2="${win.run_id}"</echo>
        <echo>compare arg1="${current.mac.run_id}" arg2="${mac.run_id}"</echo>
    
        <condition property="update_excludes" value="true" >
            <or>
                <not>
                    <equals arg1="${current.win.run_id}" arg2="${win.run_id}" />
                </not>
                <not>
                    <equals arg1="${current.mac.run_id}" arg2="${mac.run_id}" />
                </not>
            </or>
        </condition>
    
        <!-- call the excludes/failures guy for win -->
        <antcall target="do_excludes_update">
            <param name="arg.excludes_filename" value="${mustella.dir}/external/ExcludeListWin.txt" />
            <param name="arg.failures_filename" value="${mustella.dir}/external/failures.win.out" />
            <param name="arg.runid_filename" value="${mustella.dir}/external/win.runid.properties" />
            <param name="arg.run_id" value="${win.run_id}" />
            <param name="arg.prefix" value="win.db." />
            <param name="arg.target_os_name" value="windows" />
        </antcall>
    
        <!-- call the excludes/failures guy for mac -->
        <antcall target="do_excludes_update">
            <param name="arg.excludes_filename" value="${mustella.dir}/external/ExcludeListMac.txt" />
            <param name="arg.failures_filename" value="${mustella.dir}/external/failures.mac.out" />
            <param name="arg.runid_filename" value="${mustella.dir}/external/mac.runid.properties" />
            <param name="arg.run_id" value="${mac.run_id}" />
            <param name="arg.prefix" value="mac.db." />
            <param name="arg.target_os_name" value="mac" />
        </antcall>
    
        <uptodate property="jar_not_needed" targetfile="${mustella.dir}/external/mustella.jar">
            <srcfiles dir="${mustella.dir}/src/" includes="mustella/*.java,utils/*.java" />
        </uptodate>
    
        <echo>Jar update not needed? ${jar_not_needed}</echo>
    
        <antcall target="do_jar_update" />
    
        <uptodate property="swc_not_needed" targetfile="${mustella.dir}/external/mustella.swc">
            <srcfiles dir="${mustella.dir}/frameworks/mustella/" includes="*.as" />
        </uptodate>
    
        <echo>SWC update not needed? ${swc_not_needed}</echo>
    
        <antcall target="do_swc_update" />
    
        <!-- check in whatever is new -->
        <p4change description="updates for excludes,failures,etc " />
        <echo> p4change: ${p4.change}</echo>
    
        <!-- p4reopen tochange="${p4.change}" view="//depot/flex/qa/sdk/testsuites/mustella/external/..." / -->
        <p4edit change="${p4.change}" view="//depot/flex/qa/sdk/testsuites/mustella/external/..." />
        <p4revert revertOnlyUnchanged="true" change="${p4.change}" />
        <p4submit change="${p4.change}" />
    </target>


    <target name="do_jar_update" unless="jar_not_needed" >
        <delete verbose="true" file="${mustella.dir}/external/mustella.jar" />
        <jar basedir="${mustella.dir}/classes" destfile="${mustella.dir}/external/mustella.jar" includes="mustella/*.class,utils/*.class"/>
    </target>

    <target name="do_swc_update" unless="swc_not_needed" >

        <!-- this call needs some variables set setup, so, say excludes are done to avoid that nested call -->
        <antcall target="makemustellaswc"  >
            <param name="excludes_done" value="true" />
        </antcall>
        <copy overwrite="true" verbose="true" file="${mustella.dir}/${mustella.swc.name}" todir="${mustella.dir}/external" />
    </target>

    <!-- this target can be run after a regular, full test run, to pkg tests, excludes, and a failure list -->
    <target name="zip_tests_only"  depends="makemustellaswc" description="- package tests,jars,excludes, and results">

        <!-- assumption: we have a runid; we need it to get the failures relevant to the current build -->
        <property file="${sdk.mustella.dir}/runid.properties" />
        <property name="current.run.id" value="${run_id}" />
    
        <echo>run id is ${current.run.id} </echo>
    
        <!-- we need a list of the failures from our run -->
        <antcall target="excludeFromRunId" />
    
        <!-- must invoke this with use_mustella_framework_dir=false to get a new mustella.swc built -->
    
        <!-- make the classes into a jar -->
        <jar basedir="${mustella.dir}/classes" destfile="${mustella.dir}/lib/mustella.jar" includes="mustella/*.class,utils/*.class"/>
    
    
        <!-- write a properties file to be used by those running from jars and the mustella.swc and using an
             already fetched set of excludes
        -->
    
        <echo file="${mustella.dir}/${external_properties}" append="false">already_prepared=true</echo>
        <propertyfile file="${mustella.dir}/${external_properties}" >
            <entry key="excludes_done" value="true" />
            <entry key="use_mustella_framework_dir" value="false" />
            <entry key="current.run.id" value="-1" />
        </propertyfile>
        
        <!-- java stuff, properties, and the mustella swc -->
            <fileset id="fwkstuff" dir="${mustella.dir}" >
            <!-- include name="build.xml" / -->
            <include name="lib/mustella.jar" />
            <include name="properties/mustella1.properties" />
            <include name="properties/mustella_tier1.properties" />
        </fileset>
    
        <antcall target="server_time" />
        <copy verbose="true" file="${tmp.dir}/.server.time.vetting" tofile="${mustella.dir}/.server.time" />
    
        <fileset id="testdiritself" dir="${mustella.dir}"  >
            <include name="sdk/testsuites/mustella/**" />
            <exclude name="**/*.log" />
            <exclude name="sdk/testsuites/mustella/build/flex_sdk_?.zip" />
            <exclude name="sdk/testsuites/mustella/flex_sdk_?.zip" />
            <exclude name="sdk/testsuites/mustella/flex_sdk_locales.zip" />
            <exclude name="sdk/testsuites/mustella/local.properties" />
            <exclude name="sdk/testsuites/mustella/chart.license.properties" />
            <exclude name="sdk/testsuites/mustella/build.properties" />
            <exclude name="sdk/testsuites/mustella/aik.xml" />
            <exclude name="sdk/testsuites/mustella/make_incr_zip.sh" />
            <exclude name="**/*.swf" />
            <exclude name="**/testpkg.zip" />
            <exclude name="sdk/testsuites/mustella/build/**" />
        </fileset>
    
        <!-- actual location should be build number(directory) with packages in it   -->
        <property file="${mustella.dir}/successfulBuild.properties" />
        <echo>This is the build I'm acting on ${server}</echo>
        <delete file="${mustella.dir}/${testpkg}" failonerror="false" quiet="false" />
        <zip destfile="${mustella.dir}/${testpkg}" >
            <fileset refid="fwkstuff" />
            <fileset refid="testdiritself" />
        </zip>
        <!-- copy verbose="true" file="${mustella.dir}/successfulBuild.properties" todir="${tmp.dir}/flex" />
            <copy verbose="true" file="${mustella.dir}/${langZip}" todir="${tmp.dir}/flex/${server}" />
        <copy verbose="true" file="${mustella.dir}/${mainZip}" todir="${tmp.dir}/flex/${server}" />
        <copy verbose="true" file="${db_time_file}" todir="${tmp.dir}/flex/${server}" />
        <copy verbose="true" file="${server_time_file}" todir="${tmp.dir}/flex/${server}" / -->
    
    
        <delete file="${mustella.dir}/${external_properties}" />
    </target>

    <target name="sendCompileResults" depends="zipswfs" description="- compile tests into swfs, notify of issues">
    <!-- since the run is effectively complete for this kind of invocation, send failing issues -->
    </target>

    <target name="unzipSwfs" description="Unzip previously compiled test swfs" >
        <unzip src="${mustella.dir}/${testpkg}" dest="${sdk.mustella.dir}" />
    </target>


    <!-- compileswfs is for mini_run or runs that do their own compiles -->
    <!-- AJH <target name="compileswfs" depends="prepare,setup,getRunId,getExcludes,realCompile" description="- compile the mustella tests into swfs" > -->
    <target name="compileswfs" depends="prepare,setup,getRunId,realCompile" description="- compile the mustella tests into swfs" >
    </target>

    <property name="shell_include_file" value="" />
    <property name="browser_prefix" value="http://localhost" />

    <target name="note_finish" >
        <echo>${my_whoami} is done</echo>
    </target>

    <!-- pmd runners call this before calling justrun to create the swf fileset 
            they supply the directories via file?
            we could have pmd_doler do the dir split and write property files (per user) 
    -->

    <target name="pmd_all_swf_set_maker" >
        <property file="${sdk.mustella.dir}/${pmd_runner_file}" />
            <fileset id="sdk.mustella.swffileset" dir="${sdk.mustella.dir}"
                includes="**/*.swf"
                excludes="${sdk.mustella.excludes},**/Assets/**/*.swf,**/assets/**/*.swf" />
    
        <pathconvert pathSep=";" dirSep="/" property="them_swfs" refid="sdk.mustella.swffileset"/>
        <!-- property name="them_swfs" refid="sdk.mustella.swffileset" />
            <echo>swfs: ${them_swfs}</echo -->
    </target>
    
    <!-- a sub runner calls this to build a fileset of the swfs and run them --> 
    <target name="pmd0" >
        <property file="${sdk.mustella.dir}/runid.properties" />
        <property name="current.run.id" value="${run_id}" />
        <echo>pmd0 gets ${current.run.id} from ${sdk.mustella.dir}/runid.properties from value ${run_id}</echo>
    </target>

    <target name="PMD_Runner" depends="pmd0,prepare,setup,justrun,note_finish"/>

    <property name="retry_failures_file" value="${mustella.dir}/tmp_failures.txt" />

    <target name="test_clean_overlapping" >
    <!-- just a test target -->
        <fileset id="sdk.mustella.swffileset" dir="${sdk.mustella.dir}"
                excludes="${sdk.mustella.excludes},**/*.log,**/*.png,**/*.mxml,**/Assets/**/*.swf,**/assets/**/*.swf" 
            includesfile="${retry_failures_file}.tmp" >
        </fileset>
        <property name="showset.swfs" refid="sdk.mustella.swffileset" />
        <echo>${showset.swfs}</echo>
        <java classname="mustella.RetryCleaner" failonerror="true" fork="true" dir="${mustella.dir}">
            <classpath refid="flex.test.classpath"/>
            <sysproperty key="run_id" value="${current.run.id}" />
            <arg value="${showset.swfs}"/>
            <!-- arg path="${sdk.mustella.swffiles}"/ -->
        </java>
    </target>

    <!-- wip call this from retry guy-->
    <target name="clean_overlapping" >
        <property name="showset.swfs" refid="sdk.mustella.swffileset" />
        <java classname="mustella.RetryCleaner" failonerror="true" fork="false">
            <classpath refid="flex.test.classpath"/>
            <sysproperty key="run_id" value="${current.run.id}" />
            <arg value="${showset.swfs}"/>
        </java>
    </target>

    <property name="runner_fork" value="false" />

    <target name="justrun" if="sdk.mustella.includes">
        <property name="frameworks.dir" value="${sdk.dir}/frameworks" />
        <property name="mxmlc.dir" value="${sdk.dir}/bin" />
        <property name="mxmlc.exe" value="mxmlc.exe" />
        <property name="pfchange" value="workspace" />
        <!--- I'm thinking it will be okay because this will be set already -->
        <pathconvert pathSep=";" dirSep="/" property="sdk.mustella.swffiles" refid="sdk.mustella.swffileset"/>
        <!-- echo message="the player ${player}" / -->
        <chmod file="${player}" perm="777"/>
        
        <!-- be safe, clear the cache (in pmd, each user must do this) -->
        <!-- some of these targets won't exist  -->
        <!-- mac -->
        <antcall target="delete_cache">
            <param name="directory" value="/Users/${env.USER}/Library/Caches/Adobe/Flash Player/AssetCache" />
        </antcall>
        <!-- win 7 -->
        <antcall target="delete_cache">
            <param name="directory" value="/Users/${env.USER}/AppData/Roaming/Adobe/Flash Player/AssetCache" />
        </antcall>
        <!-- older win -->
        <antcall target="delete_cache">
            <param name="directory" value="${HOMEPATH}/Application Data/Adobe/Flash Player/AssetCache" />
        </antcall>
    
        <antcall target="call_runners" />
    </target>
    
    <target name="call_runners" depends="android_runner, ios_runner, qnx_runner, desktop_runner">
    </target>
    
    <target name="android_runner" if="${use_android_runner}">
        <echo message="**** Willkommen auf AndroidRunner ****" />
        <java classname="mustella.AndroidRunner" failonerror="true" fork="false">
            <classpath refid="flex.test.classpath"/>
            <classpath refid="sdk.lib.classpath"/>
            <sysproperty key="runtime_apk" value="${runtime_apk}" />
            <sysproperty key="android_sdk" value="${android_sdk}" />
            <sysproperty key="clean_devices" value="${clean_devices}" />
            <sysproperty key="debug" value="true" />
            <sysproperty key="device_name" value="${device_name}" />
            <sysproperty key="get_results_from_log" value="${get_results_from_log}" />
            <sysproperty key="hostId" value="${hostId}" />
            <sysproperty key="htmlDir" value="${htmlDir}" />
            <sysproperty key="insert_results" value="${insert_results}" />
            <sysproperty key="mustella" value="${mustella.dir}"/>
            <sysproperty key="pmd" value="${pmd}" />
            <sysproperty key="port" value="${port}" />
            <sysproperty key="print_passes" value="${print_passes}" />
            <sysproperty key="run_dir" value="${run_dir}" />
            <sysproperty key="run_id" value="${current.run.id}" />
            <sysproperty key="sdk.dir" value="${sdk.dir}"/>
            <sysproperty key="air_sdk_dir" value="${air.sdk.dir}"/>
            <sysproperty key="classes_dir" value="${classes.dir}"/>
            <sysproperty key="shell_swf" value="${shell_swf}" />
            <sysproperty key="shell_swf_prefix" value="${shell_swf_prefix}" />
            <sysproperty key="step_timeout" value="${step_timeout}" />
            <sysproperty key="timeout" value="${player.timeout}"/>
            <sysproperty key="url_suffix" value="${url_suffix}" />
            <sysproperty key="use_apollo" value="${use_apollo}" />
            <sysproperty key="use_browser" value="${use_browser}" />
            <sysproperty key="exclude_file" value="${exclude_filename}" />
            <sysproperty key="keep_air" value="${keep_air}" />
            <sysproperty key="android_ids" value="${android_ids}" />
            <sysproperty key="rerun" value="${rerun_property}" />
            <sysproperty key="runtimeApk" value="${runtimeApk}" />
            <arg path="${sdk.mustella.swffiles}"/>
        </java>
    </target>
    
    <target name="ios_runner" if="${use_ios_runner}" >
        <echo message="**** Willkommen auf IOSRunner ****" />
        <java classname="mustella.IOSRunner" failonerror="true" fork="false">
            <classpath refid="flex.test.classpath"/>
            <sysproperty key="clean_devices" value="${clean_devices}" />
            <sysproperty key="debug" value="false" />
            <sysproperty key="device_name" value="${device_name}" />
            <sysproperty key="hostId" value="${hostId}" />
            <sysproperty key="insert_results" value="${insert_results}" />
            <sysproperty key="mustella" value="${mustella.dir}"/>
            <sysproperty key="print_passes" value="${print_passes}" />
            <sysproperty key="run_dir" value="${run_dir}" />
            <sysproperty key="run_id" value="${current.run.id}" />
            <sysproperty key="step_timeout" value="${step_timeout}" />
            <sysproperty key="timeout" value="${player.timeout}"/>
            <sysproperty key="launch_timeout" value="${launch_timeout}" />
            <sysproperty key="use_apollo" value="${use_apollo}" />
            <sysproperty key="exclude_file" value="${exclude_filename}" />
            <sysproperty key="keep_air" value="${keep_air}" />
            <sysproperty key="sdk.dir" value="${sdk.dir}"/>
            <sysproperty key="air_sdk_dir" value="${air.sdk.dir}"/>
            <sysproperty key="adt_target" value="${adt_target}" />
            <sysproperty key="adt_interpreter" value="${adt_interpreter}" />
            <sysproperty key="concurrent_packagers" value="${concurrent_packagers}" />
            <sysproperty key="rerun" value="${rerun_property}" />
            <arg path="${sdk.mustella.swffiles}"/>
        </java>
    </target>
    
    <target name="qnx_runner" if="${use_qnx_runner}" >
        <echo message="**** Willkommen auf QNXRunner ****" />
        <echo message="Copying QNX Tools..." />
        <copy todir="${sdk.dir}/bin">
          <fileset dir="${qnx_sdk_dir}/bin"/>
        </copy>
        <copy todir="${sdk.dir}/lib">
          <fileset dir="${qnx_sdk_dir}/lib"/>
        </copy>
        <copy todir="${sdk.dir}/samples/icons">
          <fileset dir="${qnx_sdk_dir}/samples/icons"/>
        </copy>
        <echo message="Done." />
        <chmod perm="777" verbose="true" dir="${sdk.dir}/bin" includes="blackberry-*"/>
        <java classname="mustella.QNXRunner" failonerror="true" fork="false">
            <classpath refid="flex.test.classpath"/>
            <sysproperty key="debug" value="true" />
            <sysproperty key="device_name" value="${device_name}" />
            <sysproperty key="hostId" value="${hostId}" />
            <sysproperty key="insert_results" value="${insert_results}" />
            <sysproperty key="mustella" value="${mustella.dir}"/>
            <sysproperty key="print_passes" value="${print_passes}" />
            <sysproperty key="run_dir" value="${run_dir}" />
            <sysproperty key="run_id" value="${current.run.id}" />
            <sysproperty key="step_timeout" value="${step_timeout}" />
            <sysproperty key="timeout" value="${player.timeout}"/>
            <sysproperty key="use_apollo" value="${use_apollo}" />
            <sysproperty key="exclude_file" value="${exclude_filename}" />
            <sysproperty key="keep_air" value="${keep_air}" />
            <sysproperty key="sdk.dir" value="${sdk.dir}"/>
            <sysproperty key="qnx_sdk_dir" value="${qnx_sdk_dir}"/>
            <sysproperty key="use_qnx_native_packager" value="${use_qnx_native_packager}"/>
            <sysproperty key="qnx_air_runtime_dir" value="${qnx_air_runtime_dir}"/>
            <sysproperty key="qnx_launch_script" value="${qnx_launch_script}"/>
            <sysproperty key="qnx_device_ip" value="${qnx_device_ip}"/>
            <sysproperty key="qnx_device_password" value="${qnx_device_password}"/>
            <sysproperty key="qnx_cmdline_user" value="${qnx_cmdline_user}"/>
            <sysproperty key="qnx_cmdline_password" value="${qnx_cmdline_password}"/>
            <arg path="${sdk.mustella.swffiles}"/>
        </java>
    </target>

    <target name="desktop_runner" unless="${use_android_runner}, ${use_ios_runner}, ${use_qnx_runner}" >
        <echo message="**** Willkommen auf Runner ****" />
        <java classname="mustella.Runner" failonerror="true" fork="${runner_fork}">
            <classpath refid="flex.test.classpath"/>
            <!-- enable java remote debugging
            <jvmarg value="-Xdebug"/>
            <jvmarg value="-Xnoagent"/>
            <jvmarg value="-Djava.compiler=NONE"/>
            <jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"/>
            -->
            <sysproperty key="debug" value="true" />
            <sysproperty key="mxmlcdir" value="${mxmlc.dir}" />
            <sysproperty key="mxmlcexe" value="${mxmlc.exe}" />
            <sysproperty key="frameworks" value="${frameworks.dir}" />
            <sysproperty key="player" value="${player}" />
            <sysproperty key="run_id" value="${current.run.id}" />
            <sysproperty key="browser" value="${browser}" />
            <sysproperty key="use_browser" value="${use_browser}" />
            <sysproperty key="print_passes" value="${print_passes}" />
            <sysproperty key="timeout" value="${player.timeout}"/>
            <sysproperty key="mustella" value="${mustella.dir}"/>
            <sysproperty key="sdk.dir" value="${sdk.dir}"/>
            <sysproperty key="insert_results" value="${insert_results}" />
            <sysproperty key="okay_to_exit" value="${okay_to_exit}" />
            <sysproperty key="use_apollo" value="${use_apollo}" />
            <sysproperty key="apollo_location" value="${apollo_location}" />
            <sysproperty key="apollo_exe" value="${apollo_exe}" />
            <sysproperty key="mustella.dir" value="${mustella.dir}" />
            <sysproperty key="port" value="${port}" />
            <sysproperty key="baseline_port" value="${baseline_port}" />
            <sysproperty key="get_results_from_log" value="${get_results_from_log}" />
            <sysproperty key="xmlnsVal" value="${xmlnsVal}" />
            <sysproperty key="keep_air" value="${keep_air}" />
            <sysproperty key="shell_swf" value="${shell_swf}" />
            <sysproperty key="shell_swf_prefix" value="${shell_swf_prefix}" />
            <sysproperty key="browser_prefix" value="${browser_prefix}" />
            <sysproperty key="htmlDir" value="${htmlDir}" />
            <sysproperty key="step_timeout" value="${step_timeout}" />
            <sysproperty key="distributed" value="${distributed}" />
            <sysproperty key="pmd" value="${pmd}" />
            <sysproperty key="run_dir" value="${run_dir}" />
            <sysproperty key="hostId" value="${hostId}" />
            <sysproperty key="url_suffix" value="${url_suffix}" />
            <sysproperty key="coverage_timeout" value="${coverage_timeout}" />
            <sysproperty key="adl_extras" value="${adl_extras}" />
            <sysproperty key="prevent_baseline_server" value="${prevent_baseline_server}" />                
            <arg path="${sdk.mustella.swffiles}"/>
        </java>
    </target>

    <target name="rerun" depends="setrerun,prepare,setup,justrun" />

    <target name="setrerun">
        <property name="rerun_property" value="true" />
    </target>
        
    <target name="dedicatedRun" depends="prepare,setup,getRunId,getExcludes,populateExcludeTable,unzipSwfs,justrun" />

    <target name="run" depends="clean,prepare,setup,compileswfs,getRunId,getExcludes,populateExcludeTable,justrun" description="-->run tests"/>

    <property name="tmp_exclude_script" value="exclude_tmp.sh" />

    <target name="genExcludeScript" >
        <echo message="Hello from gen Excludes Script" />
            <java classname="mustella.GenExcludes">
              <classpath refid="flex.test.classpath"/>
              <sysproperty key="run_id" value="${current.run.id}" />
              <sysproperty key="bug_id" value="${bug_id}" />
              <sysproperty key="exclude_id" value="${exclude_id}" />
              <sysproperty key="outfile" value="${tmp_exclude_script}" />
        </java>
    </target>

    <property name="tmp_error_files" value="${mustella.dir}/.errors_tmp" />

    <target name="excludeFromFile" >
        <echo>exclude from file</echo>
        <echo>from file, bug id ${bug_id}</echo>
        <echo>from file, exclude id ${exclude_id}</echo>
        <echo>from file, the file is ${failures_filename}</echo>
        <java classname="mustella.ExcludeUtil2" fork="true" resultproperty="jreturn">
          <classpath refid="flex.test.classpath"/>
          <sysproperty key="bug_id" value="${bug_id}" />
          <sysproperty key="file_location" value="${mustella.dir}" />
          <sysproperty key="exclude_filename" value="${exclude_filename}" />
          <sysproperty key="exclude_id" value="${exclude_id}" />
          <sysproperty key="include_after" value="${include_version}" />
        </java>
    
    
        <condition property="should_send" value="true" >
          <and>
              <not>
              <equals arg1="${jreturn}" arg2="0"/>
              </not>
              <equals arg1="${auto_exclude}" arg2="true"/>
          </and>
        </condition>
    
        <condition property="exit_with_msg" value="true" >
          <and>
              <not>
              <equals arg1="${jreturn}" arg2="0"/>
              </not>
              <not>
              <equals arg1="${auto_exclude}" arg2="true"/>
              </not>
          </and>
        </condition>
    
        <antcall target="push_email" >
            <param name="file"   value="${mustella.dir}/orphan.failures"/>
            <param name="relay"  value="inner-relay-1.corp.adobe.com"/>
            <param name="subj"   value="Test Checkin: Auto-exclude Failure on Run ${current.run.id}"/>
            <param name="sender" value="mustella tester &lt;bolaughl@adobe.com&gt;"/>
            <param name="recips" value="bolaughl@adobe.com"/>
        </antcall>
    
        <antcall target="do_fail" >
            <param name="msg" value="Exclude from file failed"/>
        </antcall>
    </target>

    <!-- shbe 5 -->
    <property name="test_interval" value="15" />

    <!-- make the mustella swc. Defaulting to putting that in the suites area for the moment -->
    <target name="makemustellaswc" depends="setup">
        <condition property="compilemustellaswc.notRequired">
            <equals arg1="${use_mustella_framework_dir}" arg2="true"/>
        </condition>
        <antcall target="compilemustellaswc" />
    </target>

    <target name="cleanmustellaswc">
        <delete file="${mustella.swc.dir}/${mustella.swc.name}"/>
    </target>
        
    <target name="compilemustellaswc" unless="compilemustellaswc.notRequired" >
        <exec  executable="${compc.dir}/${compc.exe}" >
            <!-- output swc name    -->
            <arg value="-output=${mustella.swc.dir}/${mustella.swc.name}" />
            <!-- include path -->
            <arg value="-source-path=${mustella.dir}/as3/src/mustella" />
            <!-- clear library path -->
            <arg value="-library-path="/>
            <arg value="-external-library-path=${apollo_location}/frameworks/libs/air,${sdk.dir}/frameworks/libs,${sdk.dir}/frameworks/libs/mx" />
            <arg value="ApolloFilePath"/>
            <arg value="Assert"/>
            <arg value="AssertError"/>
            <arg value="AssertEvent"/>
            <arg value="AssertEventPropertyValue"/>
            <arg value="AssertMethodValue"/>
            <arg value="AssertNoEvent"/>
            <arg value="AssertPixelValue"/>
            <arg value="AssertPropertyValue"/>
            <arg value="AssertStyleValue"/>
            <arg value="AssertTitle"/>
            <arg value="AssertType"/>
            <arg value="AssertURL"/>
            <arg value="CheckEmbeddedFonts"/>
            <arg value="ChangeState"/>
            <arg value="CompareBitmap"/>
            <arg value="CreateBitmapReferences"/>
            <arg value="DispatchEvent"/>
            <arg value="DispatchKeyEvent"/>
            <arg value="DispatchMouseClickEvent"/>
            <arg value="DispatchMouseEvent"/>
            <arg value="ExcludeFileLocation"/>
            <arg value="ExcludeFileLocationApollo"/>
            <arg value="ExitWhenDone"/>
            <arg value="IncludeListTextFile" />
            <arg value="IncludeFileLocation" />
            <arg value="Localhost8080" />
            <arg value="MustellaPNGEncoder"/>
            <arg value="Pause"/>
            <arg value="ResetComponent"/>
            <arg value="RunCode"/>
            <arg value="RunCodeEvent"/>
            <arg value="SaveBitmapFailures"/>
            <arg value="ScriptRunner"/>
            <arg value="SendFormattedResultsToLog" />
            <arg value="SendResultsToRunner"/>
            <arg value="SetProperty"/>
            <arg value="SetStyle"/>
            <arg value="SetShowRTE"/>
            <arg value="SetURL"/>
            <arg value="SocketAddress"/>
            <arg value="TestCase"/>
            <arg value="TestOutput"/>
            <arg value="TestResult"/>
            <arg value="TestStep"/>
            <arg value="TypeInfo"/>
            <arg value="UnitTester"/>
            <arg value="VerboseMode"/>
            <arg value="WaitForCondition"/>
            <arg value="WaitForEffectsToEnd"/>
            <arg value="WaitForEvent"/>
            <arg value="WaitForLayoutManager"/>
            <arg value="WaitForSandboxApp"/>
            <arg value="WaitForWindow"/>
        </exec>
    </target>


    <!-- 
        FixMe: if used with Apache the player stuff has to be updated to use 
               FLASHPLAYER_DEBUGGER.
    -->
    <target name="post_install_mac" if="is_mac" >
        <echo message="setting to MAC, got ${host_os_name}" />
        <chmod perm="777" verbose="true" maxparallel="50">
            <dirset dir="${sdk.dir}/in"  >
            </dirset>
        </chmod>
        <chmod perm="777" verbose="true" maxparallel="50" >
            <fileset dir="${sdk.dir}/in" />
        </chmod>
        <condition property="player.name" value="Flash Player Debugger" >
            <and>
            <available file="${sdk.dir}/in/player/${player.version}/mac/Flash Player Debugger.app.zip" />
            <not>
            <equals arg1="player.version" arg2="10" />
            </not>
            </and>
        </condition>
    
        <property name="player.name" value="Flash Player" />
    
        <echo>player name: ${player.name}</echo>
        
        <unzip dest="${mustella.dir}/build/in/player/${player.version}/mac" src="${mustella.dir}/build/in/player/${player.version}/mac/${player.name}.app.zip" />
        <property name="player.dir" value="${sdk.dir}/in/player/${player.version}/mac/${player.name}.app/Contents/MacOS" />
        <property name="player" value="${player.dir}/${player.name}" />
        <!-- for some reason, nothing is executable on the mac, change all that -->
        <chmod file="${player}" perm="777" />
        <chmod file="${sdk.dir}/bin/mxmlc" perm="777" />
        <chmod file="${sdk.dir}/bin/compc" perm="777" />
        <antcall target="chmod_shells" />
        <chmod perm="777" verbose="true" maxparallel="50" >
            <fileset dir="${sdk.dir}/bin" />
        </chmod>
        <chmod perm="777" verbose="true"  >
            <fileset dir="${sdk.dir}/lib" />
        </chmod>
        <chmod perm="777" verbose="true"  >
            <fileset dir="${sdk.dir}/frameworks/libs" />
        </chmod>
        <chmod perm="777" verbose="true"  >
            <fileset dir="${sdk.dir}/frameworks/rsls" />
        </chmod>
        <chmod perm="777" verbose="true"  >
            <fileset dir="${sdk.dir}/frameworks/themes" />
        </chmod>
        <chmod perm="777" verbose="true"  maxparallel="50" >
            <fileset dir="${sdk.dir}/frameworks/locale" />
        </chmod>
        <chmod perm="777" verbose="true" dir="${sdk.dir}/frameworks" includes="*" >
        </chmod>
        <chmod perm="777" verbose="true" maxparallel="50">
            <dirset dir="${sdk.mustella.dir}"  >
            </dirset>
        </chmod>
        <antcall target="delete_cache">
            <param name="directory" value="/Users/${env.USER}/Library/Caches/Adobe/Flash Player/AssetCache" />
        </antcall>
    </target>

    <!-- 
        FixMe: if used with Apache the player stuff has to be updated to use 
               FLASHPLAYER_DEBUGGER. 
    -->
    <target name="post_install_win_2" if="version_in_name" >

        <exec   executable="chmod.exe" dir="/cygwin/bin" > 
            <arg value="777" />
            <arg value="${player.dir}/Install Flash Player ${player.version} Plugin.exe" />
            <arg value="${player.dir}/Install Flash Player ${player.version} ActiveX.exe" />
        </exec>
    
        <exec executable="${player.dir}/Install Flash Player ${player.version} Plugin.exe" >
            <arg value="/s" />
        </exec>
            
        <exec executable="${player.dir}/Install Flash Player ${player.version} ActiveX.exe" >
            <arg value="/s" />
        </exec>
        </target>
    
        <target name="post_install_win_2a" unless="version_in_name" >
        <echo>calling ${player.dir}/InstallPlugin.exe</echo>
        <exec   executable="chmod.exe" dir="/cygwin/bin" > 
            <arg value="777" />
            <arg value="${player.dir}/InstallPlugin.exe" />
            <arg value="${player.dir}/InstallAX.exe" />
        </exec>
        <exec executable="${player.dir}/InstallPlugin.exe" >
            <arg value="-install" />
            <arg value="plugin" />
        </exec>
        <exec executable="${player.dir}/InstallAX.exe" >
            <arg value="-install" />
            <arg value="activex" />
        </exec>
    </target>

    <!-- 
        FixMe: if used with Apache the player stuff has to be updated to use 
               FLASHPLAYER_DEBUGGER. 
    -->
    <target name="post_install_win" if="is_win" >

        <condition property="player.name" value="FlashPlayerDebugger.exe" >
            <and>
            <available file="${sdk.dir}/in/player/${player.version}/win/FlashPlayerDebugger.exe" />
            <not>
            <equals arg1="player.version" arg2="10" />
            </not>
            </and>
        </condition>
    
        <property name="player.name" value="FlashPlayer.exe" />
    
            <property name="player.dir" value="${sdk.dir}/in/player/${player.version}/win" />
            <property name="player" value="${player.dir}/${player.name}" />
    
        <echo>player is ${player}</echo>
    
        <exec   executable="chmod.exe" dir="/cygwin/bin" > 
            <arg value="+x" />
            <arg value="${player}" />
        </exec>
    
        <antcall target="delete_cache">
            <param name="directory" value="${HOMEPATH}/Application Data/Adobe/Flash Player/AssetCache" />
        </antcall>
        <!-- run the installer (for the browsers) -->
        <condition property="version_in_name" value="true" >
            <and>   
                <not>
                    <equals arg1="10.1" arg2="${player.version}" />
                </not>
                <not>
                    <equals arg1="10.2" arg2="${player.version}" />
                </not>
            </and>  
        </condition>
    
        <echo> version in name: ${version_in_name}</echo>
    
        <antcall target="post_install_win_2" />
        <antcall target="post_install_win_2a" />

    </target>

    <!-- 
        FixMe: if used with Apache the player stuff has to be updated to use 
               FLASHPLAYER_DEBUGGER. 
    -->
    <target name="post_install_linux" if="is_linux" >
        <!-- on Linux, this doesn't really finish the installation task -->
        <echo message="setting to linux, got ${host_os_name}" />
        <property name="player.dir" value="${sdk.dir}/in/player/${player.version}/lnx" />
        <property name="player" value="${player.dir}/flashplayer" />
        <!-- untar the player and reset its mode -->
        <untar src="${player.dir}/flashplayer.tar.gz" compression="gzip" dest="${player.dir}" />
        <chmod file="${player.dir}/flashplayer" perm="777" />
        <chmod file="${sdk.dir}/bin/mxmlc" perm="777" />
        <chmod file="${sdk.dir}/bin/compc" perm="777" />
        <chmod file="${mustella.dir}/mini_run.sh" perm="777" />
        <chmod file="${mustella.dir}/shellrunner.sh" perm="777" />
        <antcall target="chmod_shells" />
        <untar src="${player.dir}/install_flash_player_${player.version}_linux.tar.gz" compression="gzip" dest="${player.dir}" />
    </target>

    <target name="fix_rsl_failover_target" description="Edit flex-config.xml file failover targets">
        <exec executable="${shell}" failonerror="false">
            <arg value="${mustella.dir}/scripts/fix_rsls.sh" />
            <arg value="${mustella.dir}" />
        </exec>
    </target>

    <target name="delete_cache" >
        <echo>delete cache: ${directory}</echo>
        <!-- chmod dir="${directory}" perm="777" / -->
        <delete quiet="false" dir="${directory}" verbose="true" failonerror="false"/>
    </target>

    <!-- 
        FixMe: For Apache, if this is needed, all the player.dir and player.name stuff 
            needs to be updated to use FLASHPLAYER_DEBUGGER.
    -->
    <target name="postinstall">
        <echo message="If this target is needed it needs to be updated for Apache"/>
    </target>
    <!--target name="postinstall" depends="get_os,post_install_mac,post_install_win,post_install_linux" description="browser install, etc against the sdk.dir"/-->

    <!-- some settings for a specialized run that grabs the latest aik kit and unzips it over
         a regular installation

    On the mac side, this may fail to find some classes on for ftp. If this happens,
    the probable fixes are to grab these:

    http://jakarta.apache.org/site/downloads/downloads_oro.cgi
    http://commons.apache.org/downloads/download_net.cgi


    -->

    <!-- target name="aik-codex-grab" >

    <property name="viewpath" refid="flex.test.classpath" />
    <echo>path to use: ${viewpath}</echo>

    <ant antfile="${mustella.dir}/aircodex.xml" inheritRefs="true" target="aik-http-fetch"/>

    </target -->

    <property name="aik.filedrop" value="vulcan.corp.adobe.com" />

    <!-- condition property="aik.latest.dir" value="Apollo_1/Connections/apms/mac/apollo/en_US" >
    <os family="mac"/>
    </condition>
        <condition property="aik.latest.dir" value="Apollo_1/Connections/apms/win/apollo/en_US" >
    <os family="windows"/>
    </condition -->

    <condition property="aik.dist.file" value="archive_air_1.5_sdk.tbz2" >
    <os family="mac"/>
    </condition>

    <!-- WIP -->
    <condition property="aik.dist.file" value="archive_air_1.5_sdk.zip" >
    <os family="windows"/>
    </condition>


    <property name="aik.latest.file" value="latest" />

    <property name="USER" value="adobenet\labuser" />
    <property name="PASSWD" value="" />

    <target name="aik-integrate" >
        <ant antfile="${mustella.dir}/aik.xml" target="aik-integrate"/>
    </target>

    <!-- we would override file drop on the command line -->
    <property name="filedrop" value="ftp://P02filusr01/Flex_SDK"/>
    <property name="ftpserver" value="P02filusr01.corp.adobe.com" />


    <!-- make it possible to fetch on the fly, or be told what to fetch from local.properties
    -->
    <target name="install" if="installbuild" description="--> installs flex, either a specific build, or latest approved build" >

        <!-- vestages of the old naming -->
        <condition property="build_branch" value="trunk" >
        <equals arg1="${branch}" arg2="Mainline" />
        </condition>
        <property name="build_branch" value="${branch}" />


        <!-- when installbuild=successful, we grab the build indicated in the 
             successfulBuild.properties file. 
             when installbuild=true  AND server=<some build id>  we will install
             the build indicated by ${server}. 
          -->

        <condition property="fetching.server" value="${server}" >
                <and>
                        <equals arg1="${installbuild}" arg2="true" />
                        <isset property="server" />
                </and>
        </condition>

        <!-- go get successfulBuild.properties -->
        <ftp verbose="true" server="${ftpserver}" userid="${realUser}"  password="${realPwd}" action="get" remotedir="Flex_SDK/${build_branch}" >
            <fileset dir="${mustella.dir}" >
                <include name="successfulBuild.properties"/>
                </fileset>
        </ftp>


        <!-- the filenames should take, even if the server value is already set -->
        <property prefix="fetching." file="${mustella.dir}/${installbuild}Build.properties" />

        <!-- the current fetched version on disk -->
        <property prefix="currently." file="${mustella.dir}/lastflex.properties" />

    <echo>Version to get would be: ${fetching.server}</echo>
        <echo>Version we have is: ${currently.lastbuild}</echo>
    
        <condition property="do_actual_fetch" value="true" >
          <not>
              <equals arg1="${currently.lastbuild}" arg2="${fetching.server}"/>
          </not>
        </condition>
    
    
        <!-- is it ever the case that we want a successful return if the build isn't new? -->
        <condition property="failIfNotNew" value="true">
            <not>
            <isset property="failIfNotNew" />
            </not>
        </condition>
    
    
        <condition property="exit_with_msg" value="true">
            <and>
            <not>
                <equals arg1="${do_actual_fetch}" arg2="true"/>
            </not>
            <isset property="failIfNotNew"/>
            </and>
        </condition>
    
        <echo> have: ${currently.lastbuild}; would fetch:${fetching.server} </echo>
    
    
        <antcall target="do_fail" >
            <param name="msg" value="No new build to fetch, exiting" />
        </antcall>
    
    
        <!-- if directed to get a particular build, or if this is a first download, 
             it's possible mainZip and langZip haven't been set. 
          -->
        <condition property="mainZip" value="${fetching.mainZip}" >
            <isset property="fetching.mainZip" />
        </condition>
    
        <condition property="langZip" value="${fetching.langZip}" >
            <isset property="fetching.langZip" />
        </condition>
    
    
        <!-- if directed to get a particular build, it's possible
             mainZip and langZip haven't been set. 
          -->
    
    
        <property name="mainZip" value="${on_disk.mainZip}" />
        <property name="langZip" value="${on_disk.langZip}" />
    
    
        <antcall target="grab_build" />
    
    </target>


    <target name="grab_build" if="do_actual_fetch" >

        <echo message="installing build ${fetching.server}" />
        <delete file="${mustella.dir}/${mainZip}" quiet="true" />
        <delete file="${mustella.dir}/${langZip}" quiet="true" />
        <delete dir="${mustella.dir}/build" quiet="true"/>
        <mkdir dir="${mustella.dir}/build" />
        <condition property="build_branch" value="trunk" >
            <equals arg1="${branch}" arg2="Mainline" />
        </condition>
        <property name="build_branch" value="${branch}" />

        <ftp verbose="true" server="${ftpserver}" userid="${realUser}"  password="${realPwd}" action="get" remotedir="Flex_SDK/${build_branch}/${fetching.server}" >
            <fileset dir="${mustella.dir}" >
                <include name="${langZip}"/>
            </fileset>
        </ftp>
        <ftp verbose="true" server="${ftpserver}" userid="${realUser}"  password="${realPwd}" action="get" remotedir="Flex_SDK/${build_branch}/${fetching.server}" >
            <fileset dir="${mustella.dir}" >
                <include name="${mainZip}"/>
            </fileset>
        </ftp>
        <echo file="${mustella.dir}/lastflex.properties" append="false">lastbuild=${fetching.server}</echo>

        <!-- unfortunately, ant's unzip doesn't preserve symbolic links. Problematic on the mac, for AIR
        for this case, we use the native unzip -->
        <exec  executable="${unzip}" >
            <arg value="${mustella.dir}/${mainZip}" />
            <arg value="-d" />
            <arg value="${mustella.dir}/build" />
        </exec>
        <exec  executable="${unzip}" >
            <arg value="${mustella.dir}/${langZip}" />
            <arg value="-d" />
            <arg value="${mustella.dir}/build" />
        </exec>

        <antcall target="fetch_utilities" />
    </target>

    <target name="fetch_utilities" unless="skip_utilities_fetch" description="unzip test certs">

        <!-- ${server} is the build id, which corresponds to a directory on the filedrop -->

        <delete file="${mustella.dir}/utilities.zip" quiet="true" />
        <ftp verbose="true" server="${ftpserver}" userid="${realUser}"  password="${realPwd}" action="get" remotedir="Flex_SDK/${build_branch}/${fetching.server}" >
            <fileset dir="${mustella.dir}" >
                <include name="utilities.zip"/>
            </fileset>
        </ftp>

        <exec  executable="${unzip}" >
            <arg value="-o" />
            <arg value="${mustella.dir}/utilities.zip" />
            <arg value="-d" />
            <arg value="${mustella.dir}/build" />
        </exec>
        <!-- the signing cert should go to a neutral location, because vetting and regular runs share it -->
        <copy verbose="true" file="${mustella.dir}/build/frameworks/rsls/rootcert.der" todir="${tmp.dir}/" />

    </target>

    <target name="setbuildID"  >
        <echo message="Target file was: ${mustella.dir}/${build.version.file}" />
        <property file="${mustella.dir}/${build.version.file}" />
        <property name="build.id" value="${server}" />
        <echo message="${build.id}"/>
    </target>

    <target name="populateExcludeTable"  if="db_time" depends="getExcludeIds" >

        <echo>populate exclude, got this for db time: ${db_time}</echo>
        <!-- this won't do anything for local runs where current.run.id = -1 -->
    
        <!--
            <java classname="mustella.CopyExcluded" >
                <classpath refid="flex.test.classpath"/>
                <sysproperty key="run_id" value="${current.run.id}" />
                <sysproperty key="exclude_ids" value="${exclude_ids}" />
                <sysproperty key="untilTime" value="${db_time}" />
        </java>
        -->
    </target>

    <!-- target used in testing: -->
    <target name="queryOnly" depends="getConfigId,getExcludeIds,actualQueryResults"/>

    <target name="distributedReportQuery" depends="getExcludeIds,actualQueryResults,do_sendResults"/>

    <target name="actualQueryResults" unless="new_failures" >

        <taskdef name="queryresultstask" classname="mustella.QueryResultsTask"
          classpathref="flex.test.classpath"/>

        <condition property="query.outfile" value="${mustella.dir}/lastrun.html" >
                <equals arg1="${query.outfile}" arg2=""/>
        </condition>
    
        <!-- some additions for the distributed world: -->
            <property name="distributed" value="${distributed}" />
            <property name="compile_id" value="${compile_id}" />
    
        <queryresultstask  id="${current.run.id}" type="${run_type}" file="${query.outfile}" config="${config_id}" exclude="${exclude_ids}" untilTime="${db_time}" subtitle="${subtitle}" reranCount="${number_reran}" runnerCount="${num_runners}" >
        </queryresultstask>
        
          <echo message="total failures: ${failures}" />
          <echo message="new failures: ${new_failures}" />
          <echo message="new passes: ${new_passes}" />
          <echo message="compile errors: ${compile_errors}" />
    
        <!-- set prop that may lead to auto exclude -->
        <condition property="auto_exclude_and_failures" value="true" >
            <and>
                <not>
                <equals arg1="${failures}" arg2="0" />
                </not>
                <istrue value="${auto_exclude}" />
            </and>
        </condition>

    </target>

    <target name="queryResults" depends="setbuildID,setHostName,getExcludeIds,actualQueryResults"/>

    <property name="include_list" value="" />

    <!-- target for run only (no compile -->
    <target name="sendResultsRunOnly" depends="dedicatedRun,queryResults,do_sendResults" >
        <echo>my run id is ${current.run.id}</echo>
    </target>

    <!-- if we're doing re-run, the milestone end will be wrong -->
    <target name="update_milestones" if="pmd" >
        <java classname="mustella.InsertMilestone" failonerror="false" fork="false">
            <classpath refid="flex.test.classpath"/>
            <sysproperty key="run_id" value="${current.run.id}" />
            <sysproperty key="col" value="run_start" />
            <sysproperty key="time" value="${run_start}" />
        </java>
    
        <!-- call the other one if needed -->
        <antcall target="update_milestones2" />

    </target>

    <target name="update_milestones2" if="skip_retry_failures" >
        <java classname="mustella.InsertMilestone" failonerror="false" fork="false">
            <classpath refid="flex.test.classpath"/>
            <sysproperty key="run_id" value="${current.run.id}" />
            <sysproperty key="col" value="run_end" />
            <sysproperty key="time" value="${run_end}" />
        </java>
    </target>

    <target name="waitPMD" if="pmd" >

        <exec  executable="${shell}" failonerror="true" dir="${mustella.dir}" >
            <arg value="pmd_waiter.sh" />
            <arg value="${num_runners}" />  <!-- this is the number of subRunners to wait for -->
        </exec>
        <echo>finished with the wait PMD</echo>
        <!-- note the end of time -->
        <tstamp>
            <format pattern="yyyy-MM-dd HH:mm:ss" property="run_end" />
        </tstamp>
        <echo>waitPMD ends, time stamp: ${run_end} </echo>
    </target>

    <!-- for poor man's distributed, touch files to let the geniuses know it's time -->
    <target name="dolePMD" depends="pmd_all_swf_set_maker">
        <!-- try parallel, but make sure we sleep to let the server come up -->
        <echo file="${mustella.dir}/actualswfs.tmp">${them_swfs}</echo>
        <!-- note beginning of time -->
        <tstamp>
         <format pattern="yyyy-MM-dd HH:mm:ss" property="run_start"  />
        </tstamp>
    
        <echo>dolePMD begins, timestamp: ${run_start}</echo>
    
        <parallel threadcount="2">
            <java classname="mustella.Doler" failonerror="true" fork="true">
              <classpath refid="flex.test.classpath"/>
            <arg path="${mustella.dir}/actualswfs.tmp" />
            <sysproperty key="run_id" value="${current.run.id}" />
        </java>
            <!-- NYI java classname="mustella.NanoHTTPD" failonerror="true" fork="true">
              <classpath refid="flex.test.classpath"/>
            <sysproperty key="mustella.dir" value="${mustella.dir}" />
        </java -->
            <sequential>        
            <echo>sequential begins</echo>
            <sleep seconds="10" />
            <echo>done with the sleep.</echo>
            <!-- perhaps also do the directory side of things -->
            <echo file="${mustella.dir}/actuals.tmp">${sdk.mustella.swffiles}</echo>
            <echo>issuing: ${shell} ${mustella.dir}/pmd_doler.sh ${num_runners} </echo>
            <exec  executable="${shell}" failonerror="true">
                <arg value="${mustella.dir}/pmd_doler.sh" />
                    <arg value="${num_runners}" /> 
                <arg value="${mustella.dir}" />
            </exec>
            <echo>done with pmd_doler script.</echo>
                
            <echo>Sending shutdown to the web server</echo>
            <!-- NYI get ignoreerrors="true" src="http://localhost/shutdown" dest="${mustella.dir}/tmp1a" / -->
            </sequential>
        <tstamp>
         <format pattern="yyyy-MM-dd HH:mm:ss" property="doler_end"  />
        </tstamp>
        <echo>dolePMD ends, timestamp: ${doler_end}</echo>
    
        </parallel>
    </target>
    
    <target name="test_server" >
        <java classname="mustella.NanoHTTPD" failonerror="true" fork="true">
          <classpath refid="flex.test.classpath"/>
            <sysproperty key="mustella.dir" value="${mustella.dir}" />
        </java>

    </target>
 
    <target name="sendResults" depends="run,queryResults,do_sendResults" if="sdk.mustella.includes"/>

    <target name="autoExcludeFailures" if="auto_exclude_and_failures" >
        <!-- should also check count of failures before being here-->
        <echo>auto excluding! ${auto_exclude}</echo>
        <property name="bug_id" value="${auto_exclude_bug_id}" />
        <property name="exclude_id" value="${auto_exclude_config_value}" />
        <echo>setting exclude_filename, is it? ${exclude_filename}</echo>
        <antcall target="excludeFromRunId" >
            <param name="exclude_filename" value="${mustella.dir}/failures.out" />
        </antcall>
        <antcall target="excludeFromFile">
            <param name="exclude_filename" value="${mustella.dir}/failures.out" />
        </antcall>
    </target>

    <target name="do_sendResults" depends="autoExcludeFailures" if="sdk.mustella.includes">

        <condition property="send_choice" value="true">
            <istrue value="${always_send}" />
        </condition>
    
        <condition property="browser_name2" value="AIR" >
                <istrue value="${use_apollo}" />
        </condition>
    
        <condition property="device_subject" value="${device_name}" >
                <istrue value="${run_mobile_tests}" />
        </condition>
    
        <condition property="device_subject" value="${short_os_name}" >
                <isset property="short_os_name" />
        </condition>
    
    
        <!-- Set it if it wasn't set so we don't end up with, literally, ${device_name} in the subject. -->
        <property name="device_subject" value="" />
    
        <basename file="${browser_name}" property="tmp_browser_name" suffix=".exe" />
    
        <condition property="browser_name2" value="${tmp_browser_name}" >
            <not>
                <equals arg1="${browser_name}" arg2="Standalone" />
            </not>
        </condition>
    
        <!-- if browser_name2 isn't set yet, it must be Standalone -->
        <property name="browser_name2" value="Standalone" />
    
        <echo message="send results logic, vars: new_failures, failures, compile_errors, new passes: ${new_failures}, ${failures}, ${compile_errors}, ${new_passes}" />
    
        <!-- send notification: if there are failures, compile errors, or new passes -->
        <condition property="send_choice" value="true">
            <or>
    
            <not>
                <equals arg1="${new_failures}" arg2="0" /> <!-- this was simply failures -->
            </not>
    
            <not>
                <equals arg1="${compile_errors}" arg2="0" />
            </not>
    
            <not>
                <equals arg1="${new_passes}" arg2="0" />
            </not>
    
            </or>
        </condition>
    
        <!-- set recipients if we might need them -->
        <condition property="actual_recipients" value="${recipients}" >
               <equals arg1="${send_choice}" arg2="true" />
        </condition>
    
        <!-- and, finally, we will send if there's someone who wants a lot of email -->
        <condition property="send_choice" value="true" >
            <isset property="always_recipients" />
        </condition>
    
        <!-- set the subject. Various choices -->
        <condition property="subject" value="FAIL: ${vetting} ${branch_name} ${browser_name2} ${server} ${device_subject} Mustella Results" >
            <and>
            <istrue value="${send_choice}" />
            <not>
                <equals arg1="${failures}" arg2="0" />
            </not>
            </and>
        </condition>
    
        <condition property="subject" value="FAIL: ${vetting} ${branch_name} ${browser_name2} ${server} ${device_subject} Mustella Results" >
            <and>
            <istrue value="${send_choice}" />
            <not>
                <equals arg1="${compile_errors}" arg2="0" />
            </not>
            </and>
        </condition>
    
    
        <condition property="subject" value="PASS: ${vetting} ${branch_name} ${browser_name2} ${server} ${device_subject} Mustella Results" >
            <and>
            <istrue value="${send_choice}" />
            <not>
                <equals arg1="${new_passes}" arg2="0" />
            </not>
            </and>
        </condition>
    
        <!-- finally, if the subject got this far, and is unset, it's gotta be a pass case
             only always_recipients would be interested.
        -->
        <condition property="subject" value="PASS: ${vetting} ${branch_name} ${browser_name2} ${server} ${device_subject} Mustella Results" >
            <not>
                <isset property="subject" />
            </not>
        </condition>
    
        <!-- recipients might have been set on invocation. If not, they get these defaults -->
        <condition property="recipients" value="FlexSDKQA@adobe.com">
            <and>
            <not>
                <isset property="recipients" />
            </not>
            <equals arg1="${run_type}" arg2="mini" />
            </and>
        </condition>
    
        <condition property="recipients" value="FlexSDKQA@adobe.com,FlexSDKDev@adobe.com" >
            <and>
            <not>
                <isset property="recipients" />
            </not>
            <not>
                <equals arg1="${run_type}" arg2="mini" />
            </not>
            </and>
        </condition>
    
        <!-- condition property="always_recipients" value="laupark@adobe.com" >
            <not>
                <isset property="always_recipients" />
            </not>
        </condition -->
    
        <echo>actuals are: ${actual_recipients}</echo>
        <condition property="actual_recipients" value="${always_recipients}" >
            <isset property="always_recipients" />
        </condition>
        <condition property="send_choice" value="true" >
            <isset property="always_recipients" />
        </condition>
        <echo>actuals are: ${actual_recipients}</echo>
    
        <antcall target="push_email" >
            <!-- param name="file"   value="${mustella.dir}/lastrun.html"/ -->
            <param name="file"   value="${query.outfile}"/>
            <param name="relay"  value="inner-relay-1.corp.adobe.com"/>
            <param name="subj"   value="${subject}"/>
            <param name="sender" value="mustella tester &lt;bolaughl@adobe.com&gt;"/>
            <param name="recips" value="${actual_recipients}"/>
        </antcall>
    </target>

    <target name="push_email" if="send_choice">
        <echo>Sending email to: ${recips}</echo>
        <java classname="utils.HtmlNotify">
            <classpath refid="flex.test.classpath"/>
            <arg value="${file}"/>
            <arg value="${relay}"/>
            <arg value="${subj}"/>
            <arg value="${sender}"/>
            <arg value="${recips}"/>
        </java>
    </target>

    <target name="mustella">
        <ant target="compc-call" antfile="${sdk.dir}/build.xml" dir="${sdk.dir}" inheritAll="false">
            <property name="frameworks.dir" value="${sdk.dir}/frameworks" />
            <!--<property file="sdk/testsuites/mustella/flexqa-classes.properties"/>-->
            <property name="compc.output" value="${mustella.dir}/mustella.swc"/>
            <!--<property name="compc.args" value="-namespace http://www.adobe.com/2006/flexqa ${mustella.dir}/flexqa-manifest.xml -source-path ${mustella.dir}"/>-->
            <property name="compc.libs" value="${sdk.dir}/frameworks/libs/framework.swc,${sdk.dir}/frameworks/libs/rpc.swc"/>
            <!-- ,${sdk.dir}/frameworks/charts.swc.,${root.dir}/enterprise/frameworks/rpc.swc -->
            <property name="mxml.manifest" value="${mustella.dir}/flexqa-manifest.xml" />
        </ant>
    </target>

  <!-- The time issue. a "full run" syncs to source code based on a particular time;
       that same time is used to sync to the database of excludes.

       The p4 sync with times uses server local time and the p4 server is in Newton
       The db server is in SF
   -->
    <property name="server_time_vettting_file" value="${tmp.dir}/.server.time.vetting" />
    <property name="server_time_file" value="${tmp.dir}/.server.time" />
    <target name="server_time" unless="server_time">
        <!-- if this is a local run(run id = -1), get the time stamp now. If
        this is a test server run, use the sync'd time which should have previously been created
        server_time is used as a sync point for check in time
        -->
        <tstamp>
            <format pattern="yyyy/MM/dd HH:mm:ss" property="SERVER_TSTAMP" timezone="America/New_York" />
        </tstamp>
        <echo>server_time=${SERVER_TSTAMP}</echo>
        <property name="server_time" value="${SERVER_TSTAMP}" />
        <mkdir dir="${tmp.dir}"/>
        <echo> file="${server_time_vettting_file}"</echo>
        <echo file="${server_time_vettting_file}" append="false">server_time="${SERVER_TSTAMP}"</echo>
        <echo>server_time=${SERVER_TSTAMP}</echo>
        <chmod file="${server_time_vettting_file}" perm="666" />
    </target>

    <property name="db_time_vetting_file" value="${tmp.dir}/.db.time.vetting" />
    <property name="db_time_file" value="${tmp.dir}/.db.time" />
    <target name="db_time" unless="db_time">
        <!-- if this is a local run (run id = -1), get the time stamp now. If
        this is a test server run, use the sync'd time which should have previously been created
        db_time is used as a sync point for excludes
        -->
        <tstamp>
            <format pattern="yyyy/MM/dd HH:mm:ss" property="DB_TIME" />
        </tstamp>
        <mkdir dir="${tmp.dir}"/>
        <echo>db_time=${DB_TIME}</echo>
        <property name="db_time" value="${DB_TIME}" />
        
        <condition property="quoted_value" value="db_time=${DB_TIME}" >
            <equals arg1="${no_quote}" arg2="true" />
        </condition>
        <property name="quoted_value" value="db_time='${DB_TIME}'" />
           
        <echo file="${db_time_vetting_file}" append="false">${quoted_value}</echo>
        <chmod file="${db_time_vetting_file}" perm="666" />
        <property file="${db_time_vetting_file}" />
    </target>
    
    <target name="get_db_time" unless="db_time" >
        <tstamp>
            <format pattern="yyyy-MM-dd HH:mm:ss" property="DB_TIME" />
        </tstamp>
        <property name="fetched_db_time" value="${DB_TIME}" />
        <property name="db_time" value="${DB_TIME}" />
    </target>
        
    <target name="get_server_time" unless="server_time" >
        <tstamp>
            <format pattern="yyyy-MM-dd HH:mm:ss" property="SERVER_TIME" />
        </tstamp>
        <property name="fetched_db_time" value="${SERVER_TIME}" />
        <property name="db_time" value="${SERVER_TIME}" />
    </target>

    <property name="time_file" value="${tmp.dir}/.sync_time" />
    <target name="get_time_to_file" depends="get_db_time,get_server_time" >
    
        <echo>writing ${time_file}</echo>   
        <echo file="${time_file}" append="false">server_time='${SERVER_TIME}'
db_time='${DB_TIME}'</echo>
    
    </target>

    <target name="pversion1" depends="get_os,setup_mac,setup_windows,setup_linux" unless="${run_mobile_tests}" >
        <echo>with ${player} </echo>
            <taskdef name="getplayerversion" classname="mustella.GetPlayerVersionTask" classpathref="flex.test.classpath"/>
        <getplayerversion  property="playerversion" swf="${mustella.dir}/version.swf" player="${player}" />
        
        <echo append="true" file="${mustella.dir}/latest.txt">player_version=${playerversion}</echo>        
    </target>
    
    <target name="get_date"  >
        <tstamp>
            <format pattern="yyyy-MM-dd" property="DATESTAMP"  />
        </tstamp>
        <property name="fetched_date" value="${DATESTAMP}" />
    </target>

    <target name="test_target" >
        <p4change description="test2" />
        <echo>${p4.change}</echo>
    </target>

    <target name="load-task">
        <property name="FLEX_HOME" value="${sdk.dir}" />
        <!-- load the <mxmlc> task; we can't do this at the <project> level -->
        <!-- because targets that run before flexTasks.jar gets built would fail -->
        <taskdef resource="flexTasks.tasks" classpath="${basedir}/../lib/flexTasks.jar"/>
    </target>

    <target name="build-imagediff" depends="load-task" unless="imagediff-built" >
        <property file="${sdk.dir}/build.properties" />
        <!-- compile the basic tests -->
        <mxmlc fork="true"
            file="${basedir}/utilities/ImageDiffAIR/src/ImageDiffAIR.mxml">
            <jvmarg line="${mxmlc.jvm.args}"/>
            <load-config filename="${sdk.dir}/frameworks/air-config.xml"/>
        </mxmlc>
    </target>
    
    <target name="check-imagediff">
        <available file="${basedir}/utilities/ImageDiffAIR/src/ImageDiffAIR.swf" property="imagediff-built" />
    </target>
    
    <target name="imagediff" depends="check-imagediff,build-imagediff" >
        <!-- Paths to the adl. -->
        <condition property="adl" value="${env.AIR_HOME}/bin/adl.exe">
            <os family="windows"/>
        </condition>
        <condition property="adl" value="${env.AIR_HOME}/bin/adl">
            <os family="mac"/>
        </condition>
        <condition property="adl" value="${env.AIR_HOME}/bin/adl">
            <os family="unix"/>
        </condition>
        <exec executable="${adl}" dir="${basedir}/utilities/ImageDiffAIR/src" >
            <arg value="${basedir}/utilities/ImageDiffAIR/src/ImageDiffAIR-app.xml"/>
        </exec>
    </target>
</project>

