<?xml version="1.0"?>
<!--

  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.

-->


<!--

Notes: If you're running the main target, then there is no need to call clean first.
Each of the main targets for the modules will call clean themselves before proceeding.

-->
<project name="BlazeDS" default="main" basedir=".">

    <property file="${basedir}/env.properties"/>
    <property environment="env"/>

    <!-- properties -->
    <property file="${basedir}/build.properties"/>

    <property name="modules.core.dir" value="${basedir}/core"/>
    <property name="download.dir" value="${basedir}/in"/>
    <property name="lib.dir" value="${basedir}/lib"/>
    <property name="servlet.dir" value="${lib.dir}/javax/servlet/servlet-api/${servlet.version}"/>
    <property name="activemq.dir" value="${lib.dir}/org/apache/activemq"/>
    <property name="activemq.zip.file" value="${basedir}/in/apache-activemq-${activemq.version}-bin.zip"/>
    <property name="codec.dir" value="${lib.dir}/commons-codec/commons-codec/${codec.version}"/>
    <property name="codec.zip.file" value="${basedir}/in/apache-codec-${codec.version}-bin.zip"/>
    <property name="collections.dir" value="${lib.dir}/commons-collections/commons-collections/${collections.version}"/>
    <property name="collections.zip.file" value="${basedir}/in/apache-collections-${collections.version}-bin.zip"/>
    <!-- needed?
     <property name="fileupload.zip.file" value="${basedir}/in/apache-fileupload-1.1.zip"/>
     -->
    <property name="httpclient.dir" value="${lib.dir}/commons-httpclient/commons-httpclient/${httpclient.version}"/>
    <property name="httpclient.zip.file" value="${basedir}/in/apache-httpclient-${httpclient.version}-bin.zip"/>
    <property name="logging.dir" value="${lib.dir}/commons-logging/commons-logging/${logging.version}"/>
    <property name="logging.zip.file" value="${basedir}/in/apache-logging-1.1.1-bin.zip"/>
    <!--
     <property name="hsqldb.zip.file" value="${basedir}/in/hsqldb_1_8_0_10.zip"/>
     <property name="jms.zip.file" value="${basedir}/in/openjms-0.7.6.1.zip"/>
     -->
    <property name="jms.jar" value="geronimo-jms_1.1_spec-1.1.1.jar"/>
    <property name="jms.dir" value="${lib.dir}/org/apache/geronimo/specs/geronimo-jms_1.1_spec/1.1.1"/>
    <property name="log4j.dir" value="${lib.dir}/log4j/log4j/${log4j.version}"/>
    <property name="log4j.zip.file" value="${basedir}/in/logging-log4j-${log4j.version}.zip"/>
    <property name="spring.dir" value="${lib.dir}/org/springframework/spring-core/${spring-version}.RELEASE"/>
    <property name="spring.zip.file" value="${basedir}/in/spring-framework-${spring.version}.RELEASE.zip"/>
    <property name="springsecurity.zip.file" value="${basedir}/in/spring-security-3.0.3.RELEASE.zip"/>
    <!--
     <property name="springflex.jar.file" value="${basedir}/lib/spring/spring-flex-core-1.5.2.RELEASE.jar"/>
     <property name="taglibs.zip.file" value="${basedir}/in/jakarta-taglibs-standard-1.1.2.zip"/>
     <property name="aopalliance.zip.file" value="${basedir}/in/aopalliance.zip"/>
     <property name="backport.zip.file" value="${basedir}/in/backport-util-concurrent.zip"/>
     <property name="cglib.jar.file" value="${basedir}/lib/spring/cglib-nodep-2.1_3.jar"/>
     <property name="jackson.jar.file" value="${basedir}/lib/spring/jackson-core-asl-1.0.0.jar"/>
     <property name="axis.zip.file" value="${basedir}/in/axis.zip"/>
     -->
    <property name="xalan.dir" value="${lib.dir}/xalan/xalan/${xalan.version}.RELEASE"/>
    <property name="xalan.zip.file" value="${basedir}/in/xalan-j_${xalan.version}-bin-2jars.zip"/>
    <property name="catalina4.dir" value="${lib.dir}/tomcat/catalina/${catalina4.version}"/>
    <property name="catalina4.zip.file" value="${basedir}/in/jakarta-tomcat-${catalina4.version}.zip"/>
    <property name="catalina.dir" value="${lib.dir}/org/apache/tomcat/catalina/${catalina.version}"/>
    <property name="catalina7.dir" value="${lib.dir}/org/apache/tomcat/tomcat-catalina/${catalina7.version}"/>

    <property name="dist.dir" value="${basedir}/dist"/>
    <property name="qa.dir" value="${basedir}/qa"/>

    <!--if CruiseControl is used, label is set to SVN revision number-->
    <property name="label" value="dev"/>
    <property name="build.number" value="${label}"/>

    <property name="subproject.target" value="main"/>

    <property name="server.baseurl" value="http://localhost:8400"/>

    <property name="tmp.dir" value="${basedir}/packagetemp/temp"/>
    <property name="local.sdk.dir" value="resources/flex_sdk"/>

    <property name="env.FLEX_HOME" value="${basedir}/../flex-sdk"/>
    <!-- set FLEX_HOME from environment if not already set -->
    <property name="FLEX_HOME" value="${env.FLEX_HOME}"/>
    <property name="ANT_HOME" value="${env.ANT_HOME}"/>

    <condition property="ocx.dir" value="${env.WINDIR}/system32/Macromed/Flash/">
        <isset property="env.WINDIR"/>
    </condition>
    <condition property="ocx.dir" value="${env.WinDir}/system32/Macromed/Flash/">
        <isset property="env.WinDir"/>
    </condition>
    <property name="ocx.dir" value="${env.windir}/system32/Macromed/Flash/"/>

    <condition property="isFlex3" value="true">
        <equals arg1="${sdk.version}" arg2="3"/>
    </condition>


    <condition property="installer.exe" value="${fp9.installer.exe}">
        <equals arg1="${sdk.version}" arg2="3"/>
    </condition>
    <property name="installer.exe" value="${fp11.installer.exe}"/>

    <condition property="installer.plugin.exe" value="${fp9.installer.plugin.exe}">
        <equals arg1="${sdk.version}" arg2="3"/>
    </condition>
    <property name="installer.plugin.exe" value="${fp11.installer.plugin.exe}"/>

    <target name="check-env"
            depends="check-flex-home, load-more-properties, check-playerglobal-home"/>

    <target name="check-flex-home" unless="flexhome.exists"
            description="Check FLEX_HOME for both a directory and a file">

        <echo message="FLEX_HOME is ${env.FLEX_HOME}"/>

        <available file="${env.FLEX_HOME}"
                   type="dir"
                   property="FLEX_HOME.set"/>

        <fail message="The environment variable FLEX_HOME is not set to a directory"
              unless="FLEX_HOME.set"/>

        <property name="flex-sdk-description.xml"
                  value="${env.FLEX_HOME}/flex-sdk-description.xml"/>

        <available file="${flex-sdk-description.xml}"
                   type="file"
                   property="flex-sdk-description.xml.exists"/>

        <fail message="The file ${flex-sdk-description.xml} does not exist"
              unless="flex-sdk-description.xml"/>

    </target>

    <target name="load-more-properties"
            description="load the FLEX_HOME/build.properties to pick up playerglobal.version">
        <property file="${FLEX_HOME}/build.properties"/>
    </target>

    <target name="check-playerglobal-home" unless="playerglobal.swc.exists"
            description="Check PLAYERGLOBAL_HOME for both a directory and a swc file">

        <echo message="PLAYERGLOBAL_HOME is ${env.PLAYERGLOBAL_HOME}"/>
        <echo message="playerglobal.version is ${playerglobal.version}"/>

        <available file="${env.PLAYERGLOBAL_HOME}"
                   type="dir"
                   property="PLAYERGLOBAL_HOME.set"/>

        <fail message="The environment variable PLAYERGLOBAL_HOME is not set to a directory"
              unless="PLAYERGLOBAL_HOME.set"/>

        <property name="playerglobal.swc"
                  value="${env.PLAYERGLOBAL_HOME}/${playerglobal.version}/playerglobal.swc"/>

        <available file="${playerglobal.swc}"
                   type="file"
                   property="playerglobal.swc.exists"/>

        <fail message="The file ${playerglobal.swc} does not exist"
              unless="playerglobal.swc.exists"/>

        <echo message="playerglobal.swc is ${playerglobal.swc}"/>
    </target>

    <target name="thirdparty-downloads" unless="no.thirdparty-downloads"
            description="Downloads all the required thirdparty code.">
        <ant antfile="${basedir}/downloads.xml" dir="${basedir}"/>
    </target>

    <target name="main" depends="check-env,clean,thirdparty-downloads,sdk,common,core,proxy,remoting,opt,createMMSFile"
            description="full build">
        <tstamp>
            <format property="build.datetime" pattern="MM/dd/yyyy hh:mm:ss aa"/>
        </tstamp>
        <echo>ant main target completed on ${build.datetime}</echo>
    </target>

    <target name="help">
        <echo message="run ant -projecthelp to see the available targets"/>
    </target>

    <!-- must be setup before building other targets -->
    <target name="sdk" description="get the sdk and add to the server">
        <!--<ant antfile="${basedir}/sdk/build.xml"/> AJH: needed? -->
    </target>

    <target name="common" description="full build of the common module">
        <ant antfile="${basedir}/common/build.xml" target="${subproject.target}"/>
    </target>

    <target name="core" description="full build of the core module">
        <ant antfile="${basedir}/core/build.xml" target="${subproject.target}"/>
    </target>

    <target name="proxy" description="full build of the proxy module">
        <ant antfile="${basedir}/proxy/build.xml" target="${subproject.target}"/>
    </target>

    <target name="remoting" description="full build of the remoting module">
        <ant antfile="${basedir}/remoting/build.xml" target="${subproject.target}"/>
    </target>

    <target name="opt" description="full build of the opt module">
        <ant antfile="${basedir}/opt/build.xml" target="${subproject.target}"/>
    </target>

    <target name="postbuilds">
        <ant antfile="${basedir}/modules/core/build.xml" target="postbuilds"/>
    </target>

    <target name="createMMSFile"
            description="create mms.cfg in order to enable local shared object access"
            if="isWindows">
        <!-- Sets the default maximum local shared object storage size to unlimited -->
        <echo file="${ocx.dir}/mms.cfg" append="false">LocalStorageLimit=6</echo>
    </target>

    <target name="package" depends="package-clean" description="package task which creates zips">
        <mkdir dir="${dist.dir}"/>

        <!-- package qa apps -->
        <!-- <ant antfile="${qa.dir}/apps/qa-manual/build.xml" target="package"/> -->
        <ant antfile="${qa.dir}/apps/qa-regress/build.xml" target="package"/>

        <ant antfile="${basedir}/apps/samples/build.xml" target="package"/>
        <ant antfile="${basedir}/apps/samples-spring/build.xml" target="package"/>
        <ant antfile="${basedir}/apps/blazeds/build.xml" target="package"/>
        <ant antfile="${basedir}/apps/blazeds-spring/build.xml" target="package"/>
        <ant antfile="${basedir}/apps/ds-console/build.xml" target="package"/>

        <ant antfile="${appserver.dir}/build.xml" target="package"/>

        <antcall target="package-oem"/>

        <copy todir="${dist.dir}/lib">
            <fileset dir="${basedir}/lib">
                <include name="flex-messaging-common.jar"/>
                <include name="flex-messaging-core.jar"/>
            </fileset>
        </copy>

        <antcall target="javadoc"/>

        <!-- add apps to Tomcat -->
        <unzip src="${dist.dir}/blazeds.war" dest="${dist.dir}/tomcat/webapps/blazeds"/>
        <unzip src="${dist.dir}/blazeds-spring.war" dest="${dist.dir}/tomcat/webapps/blazeds-spring"/>
        <unzip src="${dist.dir}/samples.war" dest="${dist.dir}/tomcat/webapps/samples"/>
        <unzip src="${dist.dir}/samples-spring.war" dest="${dist.dir}/tomcat/webapps/samples-spring"/>
        <unzip src="${dist.dir}/ds-console.war" dest="${dist.dir}/tomcat/webapps/ds-console"/>

        <!-- generate turnkey zip -->
        <antcall target="package-turnkey"/>

        <!-- generate binary zip -->
        <zip destfile="${dist.dir}/blazeds-bin-${manifest.Implementation-Version}.${label}.zip"
             comment="${manifest.Implementation-Title} ${manifest.Implementation-Version}.${label}">
            <fileset dir="${dist.dir}" includes="blazeds.war"/>
            <zipfileset dir="${basedir}/collateral" includes="blazeds-bin-readme.htm"
                        fullpath="blazeds-bin-readme.htm"/>
        </zip>

        <!-- generate src zip -->
        <antcall target="package-src"/>

        <!-- generate java amf client zip -->
        <zip destfile="${dist.dir}/blazeds-java-amf.${label}.zip"
             comment="${manifest.Implementation-Title} ${manifest.Implementation-Version}.${label}">
            <fileset dir="${dist.dir}/lib" includes="*"/>
        </zip>

        <!-- geneate md5 checksums for the four zips -->
        <checksum forceOverwrite="yes" format="MD5SUM">
            <fileset dir="${dist.dir}">
                <include name="blazeds-*.zip"/>
            </fileset>
        </checksum>

        <antcall target="package-automation"/>

    </target>


    <target name="package-turnkey">

        <zip destfile="${dist.dir}/blazeds-turnkey-${manifest.Implementation-Version}.${label}.zip"
             comment="${manifest.Implementation-Title} ${manifest.Implementation-Version}.${label}">
            <fileset dir="${dist.dir}"
                     includes="blazeds.war,blazeds-spring.war,samples.war,samples-spring.war,ds-console.war"/>
            <zipfileset dir="${dist.dir}/tomcat" prefix="tomcat" excludes="bin,bin/*,work/"/>
            <zipfileset dir="${dist.dir}/tomcat/bin" prefix="tomcat/bin" filemode="744"/>
            <zipfileset dir="${dist.dir}/docs" prefix="docs"/>

            <zipfileset dir="${basedir}/resources" prefix="resources">
                <exclude name="fds-ajax-bridge/build.xml"/>
                <exclude name="clustering/JGroups-2.9.0.GA.src.zip"/>
                <exclude name="flex_sdk/*.zip"/>
                <exclude name="flex_sdk/*.htm"/>
                <exclude name="flex_sdk/readme.txt"/>
            </zipfileset>

            <zipfileset dir="${basedir}/lib" prefix="resources/clustering" includes="jgroups*"/>
            <zipfileset dir="${basedir}/lib" prefix="resources/lib" includes="flex-messaging*"/>
            <zipfileset dir="${basedir}/collateral" includes="blazeds-turnkey-readme.htm"
                        fullpath="blazeds-turnkey-readme.htm"/>
            <zipfileset dir="${dist.dir}/sampledb" prefix="sampledb" filemode="744"/>
        </zip>
    </target>


    <target name="package-src">

        <zip destfile="${dist.dir}/blazeds-src-${manifest.Implementation-Version}.${label}.zip"
             comment="${manifest.Implementation-Title} ${manifest.Implementation-Version}.${label}">
            <zipfileset dir="${basedir}/collateral" includes="blazeds-src-readme.htm"
                        fullpath="blazeds-src-readme.htm"/>
            <fileset dir="${basedir}">
                <include name="adobe.header"/>
                <include name="build.properties"/>
                <include name="build.xml"/>
                <include name="readme.txt"/>
                <include name="collateral/**/*"/>
                <include name="development/**/*"/>
                <include name="sampledb/**/*"/>
            </fileset>

            <!-- apps folder -->
            <zipfileset dir="${basedir}/apps" prefix="apps">

                <!-- blazeds app -->
                <include name="blazeds/**/*"/>
                <exclude name="blazeds/WEB-INF/lib/"/>
                <exclude name="blazeds/WEB-INF/src/"/>

                <!-- blazeds-spring app -->
                <include name="blazeds-spring/**/*"/>
                <exclude name="blazeds-spring/WEB-INF/lib/"/>
                <exclude name="blazeds-spring/WEB-INF/src/"/>

                <!-- ds-console app -->
                <include name="ds-console/**/*"/>
                <exclude name="ds-console/history/"/>
                <exclude name="ds-console/*.swf"/>
                <exclude name="ds-console/*.html"/>
                <exclude name="ds-console/*.js"/>
                <exclude name="ds-console/WEB-INF/lib/"/>
                <exclude name="ds-console/WEB-INF/classes/"/>

                <!-- samples app -->
                <include name="samples/images/"/>
                <include name="samples/*.htm"/>
                <include name="samples/main.css"/>
                <include name="samples/README.txt"/>
                <include name="samples/build.xml"/>

                <include name="samples/WEB-INF/"/>
                <exclude name="samples/WEB-INF/classes/"/>
                <exclude name="samples/WEB-INF/lib/b*"/>
                <exclude name="samples/WEB-INF/lib/c*"/>
                <exclude name="samples/WEB-INF/lib/f*"/>
                <exclude name="samples/WEB-INF/flex-src/*.zip"/>
                <exclude name="samples/WEB-INF/flex-src/**/datavisualization*.swc"/>

                <!-- samples-spring app -->
                <include name="samples-spring/images/"/>
                <include name="samples-spring/*.htm"/>
                <include name="samples-spring/main.css"/>
                <include name="samples-spring/README.txt"/>
                <include name="samples-spring/build.xml"/>

                <include name="samples-spring/WEB-INF/"/>
                <exclude name="samples-spring/WEB-INF/classes/"/>
                <exclude name="samples-spring/WEB-INF/lib/b*"/>
                <exclude name="samples-spring/WEB-INF/lib/c*"/>
                <exclude name="samples-spring/WEB-INF/lib/f*"/>
                <exclude name="samples-spring/WEB-INF/flex-src/*.zip"/>
                <exclude name="samples-spring/WEB-INF/flex-src/**/datavisualization*.swc"/>

                <!-- team app -->
                <include name="team/**/*"/>
                <exclude name="team/WEB-INF/lib/"/>
                <exclude name="team/WEB-INF/classes/"/>
                <exclude name="team/WEB-INF/flex/jars/"/>
                <exclude name="team/WEB-INF/flex/libs/"/>
                <exclude name="team/WEB-INF/flex/locale/"/>
                <exclude name="team/WEB-INF/flex/*.ser"/>
                <exclude name="team/WEB-INF/flex/flash-unicode-table.xml"/>
                <exclude name="team/WEB-INF/flex/flex-sdk-description.xml"/>
                <exclude name="team/WEB-INF/flex/mxml-manifest.xml"/>

            </zipfileset>

            <!-- qa folder -->
            <zipfileset dir="${basedir}/qa" prefix="qa">
                <!-- qa-manual app -->
                <include name="apps/qa-manual/**/*"/>
                <exclude name="apps/qa-manual/bugs/"/>

                <!-- common excludes for both qa-manual and qa-regress apps -->
                <exclude name="apps/**/WEB-INF/classes/"/>
                <exclude name="apps/**/WEB-INF/lib/"/>
                <exclude name="apps/**/WEB-INF/flex/jars/"/>
                <exclude name="apps/**/WEB-INF/flex/libs/"/>
                <exclude name="apps/**/WEB-INF/flex/locale/"/>
                <exclude name="apps/**/WEB-INF/flex/*.ser"/>
                <exclude name="apps/**/WEB-INF/flex/flash-unicode-table.xml"/>
                <exclude name="apps/**/WEB-INF/flex/flex-sdk-description.xml"/>
                <exclude name="apps/**/WEB-INF/flex/mxml-manifest.xml"/>
                <exclude name="apps/**/WEB-INF/flex/flex-config.xml"/>
                <exclude name="apps/**/WEB-INF/flex/flex-webtier-config.xml"/>
                <exclude name="apps/**/WEB-INF/flex/messaging-config.xml"/>
                <exclude name="apps/**/WEB-INF/flex/proxy-config.xml"/>
                <exclude name="apps/**/WEB-INF/flex/remoting-config.xml"/>
                <exclude name="apps/**/WEB-INF/flex/services-config.xml"/>

                <!-- qa-regress app -->
                <include name="apps/qa-regress/**/*"/>
                <exclude name="apps/qa-regress/features/"/>
                <exclude name="apps/qa-regress/lib/"/>
                <exclude name="apps/qa-regress/testsuites/mxunit/tests/proxyService/webService/bugs/"/>
                <exclude name="apps/qa-regress/testsuites/mxunit/tests/proxyService/webService/noproxy/"/>
                <exclude name="apps/qa-regress/testsuites/mxunit/tests/proxyService/webService/general/array*"/>
                <exclude
                        name="apps/qa-regress/testsuites/mxunit/tests/proxyService/webService/general/attributesScript.mxml"/>
                <exclude
                        name="apps/qa-regress/testsuites/mxunit/tests/proxyService/webService/general/deserializeDocLitArray.mxml"/>
                <exclude
                        name="apps/qa-regress/testsuites/mxunit/tests/proxyService/webService/general/twoDimensionalArrayScript.mxml"/>
                <exclude
                        name="apps/qa-regress/testsuites/mxunit/tests/proxyService/webService/mxWebService/DotNetDocLiteralTests/"/>
                <exclude
                        name="apps/qa-regress/testsuites/mxunit/tests/proxyService/webService/mxWebService/mxWebServiceAmpersandInWSDL.mxml"/>
                <exclude
                        name="apps/qa-regress/testsuites/mxunit/tests/proxyService/webService/mxWebService/mxWebServiceDotDotInWSDL.mxml"/>
                <exclude
                        name="apps/qa-regress/testsuites/mxunit/tests/proxyService/webService/mxWebService/mxWebServiceMethod*.mxml"/>
                <exclude
                        name="apps/qa-regress/testsuites/mxunit/tests/proxyService/webService/mxWebService/mxWebServiceSetEndpointURI.mxml"/>
                <exclude
                        name="apps/qa-regress/testsuites/mxunit/tests/proxyService/webService/mxWebService/mxWebServiceUseProxyFalseFault.mxml"/>
                <exclude
                        name="apps/qa-regress/testsuites/mxunit/tests/proxyService/webService/mxWebService/mxWebServiceUseProxyTrue.mxml"/>

                <exclude name="apps/qa-regress/testsuites/flexunit/src/tests/flexunit/wscl/interop/Query*.*"/>
                <exclude name="apps/qa-regress/testsuites/flexunit/src/tests/flexunit/wscl/interop/*DotNet*"/>
                <exclude
                        name="apps/qa-regress/testsuites/flexunit/src/tests/flexunit/wscl/interop/SOAPBuilderRound2CFCTest.as"/>
                <exclude
                        name="apps/qa-regress/testsuites/flexunit/src/tests/flexunit/wscl/interop/SOAPBuilderRound3Compound1.as"/>
                <exclude
                        name="apps/qa-regress/testsuites/flexunit/src/tests/flexunit/wscl/interop/SOAPBuilderRound3Compound1_WhiteMesaTest.as"/>

                <include name="features/**/*"/>

                <include name="lib/**/*"/>
                <exclude name="lib/tools/"/>
                <exclude name="lib/ms*.jar"/>
                <exclude name="lib/commons-codec-1.3.jar"/>
                <exclude name="lib/commons-httpclient-3.1.jar"/>
                <exclude name="lib/commons-logging.jar"/>
                <exclude name="lib/qa-config.jar"/>
                <exclude name="lib/qa-flexunit.jar"/>
                <exclude name="lib/qa-mxunit.jar"/>
                <exclude name="lib/qa-utils.jar"/>
                <exclude name="lib/browserServer.jar"/>
                <exclude name="lib/xalan.jar"/>

                <include name="resources/config/*"/>
                <include name="resources/frameworks/*"/>
                <include name="resources/webtier/"/>
                <include name="src/**/*"/>
                <include name="build.*"/>
            </zipfileset>


            <!-- frameworks folder -->
            <zipfileset dir="${basedir}/frameworks" prefix="frameworks">
                <include name="**/datavisualization*.swc"/>
                <include name="local-swcs/*"/>
            </zipfileset>

            <!-- lib folder -->
            <zipfileset dir="${basedir}/lib" prefix="lib">
                <include name="hsqldb/*"/>
                <include name="spring/*"/>

                <include name="commons*.*"/>
                <exclude name="commons-logging.jar"/>
                <exclude name="commons-collections.jar"/>

                <include name="j*.*"/>
                <include name="flex-w*.*"/>
                <include name="flex-b*.*"/>
                <include name="xalan*.*"/>
                <include name="backport*.*"/>
                <include name="cfgatewayadapter.jar"/>
                <include name="concurrent.jar"/>
                <include name="oscache.jar"/>
                <include name="servlet.jar"/>
            </zipfileset>

            <!-- modules folder -->
            <zipfileset dir="${basedir}/modules" prefix="modules">
                <include name="**/src/**/*"/>
                <include name="**/lib/*"/>
                <include name="core/test/src/**/*"/>
                <include name="**/AdobeInfo.xml"/>
                <include name="**/build.xml"/>
                <exclude name="rds/"/>
            </zipfileset>

            <!-- servers folder -->
            <zipfileset dir="${basedir}/servers" prefix="servers">
                <exclude name="apache-tomcat-6.0.29/lib/blazeds/"/>
                <exclude name="apache-tomcat-6.0.29/conf/Catalina/localhost/qa-perf.xml"/>
                <exclude name="apache-tomcat-6.0.29/logs/"/>
                <exclude name="apache-tomcat-6.0.29/work/"/>
            </zipfileset>

            <!-- resources folder -->
            <zipfileset dir="${basedir}/resources" prefix="resources">
                <exclude name="security/tomcat/*.jar"/>
                <exclude name="flex_sdk/*.zip"/>
            </zipfileset>

        </zip>
    </target>

    <!--
    ***************************************************************************
        Target - package-automation
    *************************************************************************** -->
    <target name="package-automation" description="Create QA Automation package">
        <zip destfile="${basedir}/dist/qa-automation.zip">
            <zipfileset dir="${qa.dir}/automation"/>
        </zip>
    </target>

    <target name="package-oem" description="Create OEM package">

        <delete dir="${basedir}/packagetemp" failonerror="false" includeEmptyDirs="true"/>
        <mkdir dir="${basedir}/dist"/>

        <!-- Copy sdk zip and other community resources -->
        <copy todir="${basedir}/packagetemp">
            <fileset dir="${basedir}">
                <include name="resources/**/*"/>
                <exclude name="resources/flex_sdk/**/*"/>
            </fileset>
        </copy>

        <!-- Copy community jars -->
        <copy todir="${basedir}/packagetemp/lib">
            <fileset dir="${basedir}/lib">
                <include name="flex-messaging-common.jar"/>
                <include name="flex-messaging-core.jar"/>
                <include name="flex-messaging-proxy.jar"/>
                <include name="flex-messaging-remoting.jar"/>
                <include name="flex-messaging-opt.jar"/>
                <include name="flex-bootstrap.jar"/>
                <include name="flex-bootstrap-jsp.jar"/>
                <include name="flex-webtier.jar"/>
                <include name="flex-webtier-jsp.jar"/>
                <include name="oscache.jar"/>
                <include name="cfgatewayadapter.jar"/>
                <include name="flex-rds-server.jar"/>
            </fileset>
        </copy>

        <copy todir="${basedir}/packagetemp/console_src">
            <fileset dir="${basedir}/apps/ds-console">
                <include name="console/**/*"/>
                <include name="*.mxml"/>
            </fileset>
        </copy>

        <zip destfile="${basedir}/dist/blazeds-oem.zip">
            <fileset dir="${dist.dir}" includes="ds-console.war"/>
            <zipfileset dir="${basedir}/packagetemp"/>
        </zip>
    </target>

    <target name="package-oem-small" depends="package-oem" description="Create Small OEM package">
        <echo message="Creating smaller Flex_SDK. . ."/>
        <mkdir dir="${tmp.dir}"/>
        <unzip src="${basedir}/dist/blazeds-oem.zip" dest="${tmp.dir}"/>
        <mkdir dir="${tmp.dir}/${local.sdk.dir}/expanded"/>
        <unzip src="${basedir}/packagetemp/${local.sdk.dir}/${sdk.zip.file}"
               dest="${tmp.dir}/${local.sdk.dir}/expanded">
            <!--<patternset>
                <include name="ant/lib/flexTasks.jar" />
                <include name="asdoc/**/*"/>
                <include name="bin/*"/>
                <include name="lib/*"/>
                <include name="frameworks/*"/>
                <include name="frameworks/libs/**"/>
                <include name="frameworks/locale/**"/>
                <include name="runtimes/player/**/*"/>
                <include name="templates/**/*"/>
            </patternset>-->
        </unzip>
        <delete includeEmptyDirs="true" quiet="true">
            <fileset dir="${tmp.dir}/${local.sdk.dir}" includes="${sdk.zip.file}"/>
        </delete>
        <zip destfile="${tmp.dir}/${local.sdk.dir}/${sdk.zip.file}">
            <fileset dir="${tmp.dir}/${local.sdk.dir}/expanded" includes="**/**"/>
        </zip>
        <delete dir="${tmp.dir}/${local.sdk.dir}/expanded" failonerror="false"/>
        <zip destfile="${basedir}/dist/blazeds-oem-small.zip">
            <fileset dir="${tmp.dir}" includes="**/**"/>
        </zip>
        <delete dir="${tmp.dir}" failonerror="false"/>
    </target>

    <target name="package-clean">
        <delete failonerror="false" includeEmptyDirs="true">
            <fileset dir="${dist.dir}" includes="**/*"/>
        </delete>
    </target>

    <target name="clean" description="clean">
        <ant antfile="${basedir}/sdk/build.xml" target="clean"/>
        <ant antfile="${basedir}/remoting/build.xml" target="clean"/>
        <ant antfile="${basedir}/proxy/build.xml" target="clean"/>
        <ant antfile="${basedir}/common/build.xml" target="clean"/>
        <ant antfile="${basedir}/core/build.xml" target="clean"/>
        <ant antfile="${basedir}/opt/build.xml" target="clean"/>
        <delete>
            <fileset dir="." includes="TEST-*.xml"/>
        </delete>
    </target>

    <target name="super-clean" depends="thirdparty-clean,clean"
            description="Cleans everything including thirdparty downloads."/>

    <target name="thirdparty-clean" unless="no.thirdparty-clean" description="Removes all thirdparty downloads.">
        <ant antfile="${basedir}/downloads.xml" target="clean" dir="${basedir}"/>
    </target>

    <target name="generated-clean">
        <delete includeEmptyDirs="true" quiet="true">
            <fileset dir="${basedir}/apps" includes="**/generated/*"/>
        </delete>
        <delete includeEmptyDirs="true" quiet="true">
            <fileset dir="${basedir}/apps" includes="**/generated"/>
        </delete>
    </target>

    <target name="unit" description="Runs JUnit tests">
        <ant antfile="${basedir}/modules/core/build.xml" target="unit">
            <property name="feature" value="${feature}"/> <!-- runs subset of unit tests -->
        </ant>
    </target>

    <!-- Don't try to start server if it is already running -->
    <target name="check.server">
        <condition property="server.running">
            <http url="${server.baseurl}"/>
        </condition>
    </target>

    <target name="set.extension" description="set vars per os">
        <osfamily property="os.family"/>
        <switch value="${os.family}">
            <case value="windows">
                <property name="shellext" value="bat"/>
            </case>
            <case value="unix">
                <property name="shellext" value="sh"/>
            </case>
            <case value="mac">
                <property name="shellext" value="sh"/>
            </case>
        </switch>
    </target>

    <target name="startserver" description="Start Tomcat Server" depends="set.extension, check.server"
            unless="server.running">
        <exec spawn="true" executable="${appserver.dir}/bin/catalina.${shellext}"
              dir="${appserver.dir}/bin">
            <arg line="start"/>
        </exec>
    </target>

    <target name="stopserver" description="Stop Tomcat Server"
            depends="set.extension">
        <exec spawn="true" executable="${appserver.dir}/bin/catalina.${shellext}"
              dir="${appserver.dir}/bin">
            <arg line="stop"/>
        </exec>
    </target>

    <target name="waitforAppserverToStart">
        <echo message="Waiting for appserver to start: requesting ${server.baseurl}/qa-regress"/>
        <waitfor maxwait="120" maxwaitunit="second" checkevery="15" timeoutproperty="bTimeout">
            <http url="${server.baseurl}/qa-regress"/>
        </waitfor>
        <switch value="${bTimeout}">
            <case value="true">
                <property name="bAppServerStarted" value="false"/>
            </case>
            <default>
                <property name="bAppServerStarted" value="true"/>
            </default>
        </switch>
        <echo>Flex has started: ${bAppServerStarted} ...continuing</echo>
    </target>

    <target name="checkintests" description="checkintests">

        <!-- run flexunit-->
        <ant antfile="${qa.dir}/apps/qa-regress/testsuites/flexunit/build.xml" target="main">
            <property name="basedir" value="${qa.dir}"/>
            <property name="feature" value="checkintests"/> <!-- runs rpc and messaging -->
            <property name="alwaysshowreport" value="false"/> <!-- will only show report if there are failures -->
        </ant>

        <!-- JUnit tests already start the server, if necessary 
        <antcall target="startserver"/>
        -->
        <!-- run java unit tests -->
        <property name="feature" value="checkintests-all"/>
        <antcall target="unit">
            <param name="feature" value="${feature}"/> <!-- runs subset of unit tests -->
        </antcall>

        <antcall target="stopserver"/>
    </target>

    <target name="parseresults">
        <java classname="utils.TestResultsParser">
            <classpath>
                <pathelement location="${qa.dir}/classes"/>
                <fileset dir="${qa.dir}/lib">
                    <include name="*.jar"/>
                </fileset>
            </classpath>
            <arg line="${qa.dir}/sdk/testsuites/mxunit/reports"/>
        </java>
    </target>

    <target name="ocx"
            description="Update the ActiveX player to the latest.  You must CLOSE YOUR BROWSERS for this to work.">
        <property name="ant-contrib.jar" location="${env.ANT_HOME}/lib/ant-contrib-1.0b2.jar"/>

        <available file="${basedir}/qa/automation/bin/${uninstaller.exe}" property="uninstaller.exists"/>

        <condition property="uninstall.fp" value="true">
            <and>
                <equals arg1="${uninstaller.exists}" arg2="true"/>
                <not>
                    <equals arg1="${skip.uninstall}" arg2="true"/>
                </not>
            </and>
        </condition>
        <antcall target="actual.uninstall.fp"/>

        <echo>Installing the new player.</echo>
        <exec dir="${basedir}/bin" executable="${basedir}/bin/${installer.exe}">
            <arg line="-install"/>
        </exec>
        <echo>Installing the plugin player.</echo>
        <exec dir="${basedir}/bin" executable="${basedir}/bin/${installer.plugin.exe}">
            <arg line="-install"/>
        </exec>
    </target>
    <target name="actual.uninstall.fp" depends="check.uninstall.fp" if="uninstall.fp">
        <echo>Uninstalling the old ActiveX and Plugin players.</echo>
        <exec dir="${basedir}" executable="${basedir}/qa/automation/bin/${uninstaller.exe}">
            <arg line="-uninstall"/>
        </exec>
    </target>
    <target name="check.uninstall.fp" unless="uninstall.fp">
        <echo>Uninstall was skipped.</echo>
        <echo>- skip.uninstall? ${skip.uninstall}</echo>
    </target>

    <target name="javadoc">
        <delete dir="${basedir}/docs" failonerror="false" includeEmptyDirs="true"/>
        <ant antfile="${basedir}/modules/core/build.xml" target="javadoc">
            <property name="build.number" value="${build.number}"/>
        </ant>
        <copy todir="${dist.dir}/docs">
            <fileset dir="${basedir}/docs" includes="javadoc.zip"/>
        </copy>
    </target>

</project>
