<?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=".">
    <property name="FLEX_HOME" location="${basedir}/.."/>
    
    <property file="${FLEX_HOME}/env.properties"/>
    <property environment="env"/>

    <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="local_properties" value="local.properties" />
    <property name="external_properties" value="external.properties" />

    <property file="${mustella.dir}/${local_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" />
    
    <property name="sdk.mustella.dir" value="${mustella.dir}/tests" />

    <property name="root.dir" value="${basedir}/.."/>
    <property name="sdk.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="" />

    <property name="cygwinshell" value="/cygwin/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="" />

    <!-- 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="${mustella.dir}/tests/ExcludeListWin.txt" >
        <and>
            <equals arg1="${target_os_name}" arg2="windows" />
            <not>
                <istrue value="${use_apollo}" />
            </not>
        </and>
    </condition>

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

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

    <condition property="exclude_filename" value="${mustella.dir}/tests/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="player.dir" value="${sdk.dir}/in/player/${player.version}/lnx" />
        <property name="player" value="${player.dir}/flashplayer" />
        <property name="apollo_exe" value="adl" />
        <!-- kind of a guess: -->
        <property name="shell" value="/bin/bash" />
        <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="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>
        <property name="apollo_exe" value="adl" />
        <property name="shell" value="/bin/sh" />
        <property name="unzip" value="/usr/bin/unzip" />
        <property name="auto_exclude_config_value" value="9"/>
        <property name="auto_exclude_bug_id" value="unproven_mac_${fetched_date}"/>
    </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="shell" value="${cygwinshell}" />
        <property file="${HOMEPATH}/mm.cfg"/>
        <echo>trace output file: ${TraceOutputFileEnable} </echo>

        <property name="player" value="${env.FLASHPLAYER_DEBUGGER}" />
        <property name="apollo_exe" value="adl.exe" />

        <echo>apollo_exe: ${apollo_exe}</echo>

        <!-- 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="check-fonts,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="${sdk.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="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="${mustella.dir}/tests/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="${mustella.dir}/tests/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="${mustella.dir}/tests/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>
    </target>

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

    <target name="prepare" unless="already_prepared" depends="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">
            <fileset dir="${sdk.mustella.dir}" casesensitive="false">
                <include name="${previous.generated.testfiles}"/>
                <include name="**/*.sh.*.log"/>
                <include name="**/swfs/**/*.log"/>
                <include name="**/swfs/**/*.lnk.xml"/>
                <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="tests/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="" />

   <condition property="get_results_from_log" value="true" else="false" >
		<not>
			<isset property="${run_mobile_tests}" />
		</not>
    </condition>

    <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="${mustella.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="${mustella.dir}/tests/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="${mustella.dir}/tests" />
    </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="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="${mustella.dir}/tests"  >
            </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>
</project>

