<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE project [
<!--

    Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<!ENTITY commonSetup SYSTEM "file:./config/properties.xml">
<!ENTITY commonBuild SYSTEM "file:./config/common.xml">
<!ENTITY commonEEBuild SYSTEM "file:./config/ee-common.xml">
<!ENTITY reporting SYSTEM "file:./config/report.xml">
<!ENTITY run SYSTEM "file:./config/run.xml">
<!ENTITY mail SYSTEM "file:./config/mail.xml">
]>

<project name="appserv-tests" default="usage" basedir=".">

    &commonSetup;
    &commonBuild;
    &commonEEBuild;
    &reporting;
    &run;
    &mail;

    <target name="all"> 
        <antcall target="sqetests"/>
    </target>

    <target name="all-ee" depends="clean">
    <record name="runtest.output" action="start"/>
        <ant dir="sqetests" target="run-eesqe-target"/>
        <antcall target="report"/>
        <antcall target="mail"/>
    <record name="runtest.output" action="stop"/>
    </target>

    <target name="all-pe" depends="clean">
    <record name="runtest.output" action="start"/>
        <antcall target="startDerby"/>
        <antcall target="startDomain"/>
        <antcall target="sqetests"/>
        <antcall target="stopDerby"/>
        <antcall target="stopDomain"/>
        <antcall target="create-report"/>
        <antcall target="mail"/>
        <antcall target="report-java"/>
    <record name="runtest.output" action="stop"/>
    </target>

    <target name="only-ee" depends="ee-init, ee">
    <record name="appserv-tests.log" action="start"/>
        <antcall target="rename_results"/>
        <record name="runtest.output" action="start"/>
            <echo message="value of ee: ${ee}"/>
            <ant dir="sqetests" target="run-eesqe-target"/>
            <antcall target="stopee"/>
            <antcall target="stopDerby"/>
	    <antcall target="create-report"/>
	    <antcall target="mail"/>
            <antcall target="report-java"/>
        <record name="runtest.output" action="stop"/>
    <record name="appserv-tests.log" action="stop"/>
    </target>

    <!-- clean -->
    <target name="clean">
        <delete failonerror="false">
            <fileset dir="${env.APS_HOME}" excludes="PE_*"
                     includes="count.txt *.output test_results*"/>
        </delete>
    </target>

    <!-- clobber -->
    <target name="clobber-tests" depends="init-common">
        <delete dir="${build.classes.dir}"/>
        <delete failonerror="false">
            <fileset dir="${env.APS_HOME}"
                     includes="*count.txt *.output *test_results*"/>
        </delete>
    </target>

    <!-- ee-init -->
    <target name="ee-init">
        <antcall target="startDerby"/>
        <antcall target="eeunsetup"/>
        <echo message="eeunsetup done..."/>
        <echo message="Spawning eesetup.."/>
        <antcall target="eesetup"/>
        <echo message="eesetup done..."/>
    </target>

<target name="show-list">
    <echo>
         ============ Expected Outputs ==============
         Executing ejb/stateless/converter [Total :1]
         Executing ejb/mdb/simple [Total :1]
         Executing ejb/bmp/enroller [Total :1]
         Executing ejb/cmp/roster [Total :3]
         Executing ejb/ejb30/hello/session [Total :1]
         Executing corba [Total :1]
         Executing connector/cci [Total :1]
         Executing jndi/url  [Total :1]
         Executing transaction/txglobal [Total :1]
         Executing security/integration [Total :1]
         Executing web/subclassing [Total :3]
         ===========================================
        </echo>
        
    </target>

    <target name="sqetests">
        <record name="sqetests.output" action="start" />
            <ant dir="sqetests" target="all"/>
        <record name="sqetests.output" action="stop" />
    </target>

    <target name="setupMQ" depends="setup-mq-common" />

    <target name="usage">
	<echo>
		Usage:
			ant sqetests (Executes all sqetests tests)
			ant all (Executes all sqetests)
            ant show-list (Lists all test suites)
	</echo>
    </target>
</project>
