<?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 "../../config/properties.xml">
<!ENTITY commonBuild SYSTEM "../../config/common.xml">
<!ENTITY commonRun SYSTEM "../../config/run.xml">
<!ENTITY reporting   SYSTEM "report.xml">
<!ENTITY emma SYSTEM "../../config/emma.xml">
]>

<project name="hk2" default="usage" basedir=".">

    &commonSetup;
    &commonBuild;
    &commonRun;
    &reporting;
    &emma;

    <patternset id="emma.instrument.jar.files"/>

    <target name="all">

    <antcall target="setup"/>
    <antcall target="test-all"/>
    <antcall target="unsetup"/>
        <antcall target="report"/>
    </target>

    <target name="setup">

    <antcall target="start-database"/>
        <ant target="startDomain"/>
        <ant target="clean-result"/>

    </target>

    <target name="clean-result">

        <delete>
           <fileset dir="${env.APS_HOME}" includes="test_results*"/>
        </delete>
        <delete>
           <fileset dir="." includes="*.output"/>
        </delete>
        <record name="hk2.output" action="start" />

    </target>

    <target name="test-all">
        <ant dir="ejb" target="all"/>

    </target>

    <target name="unsetup">
        <echo message="Stopping app server instance"/>
        <ant target="stopDomain"/>

    <antcall target="stop-database"/>

        <record name="hk2.output" action="stop" />

    </target>

    <target name="start-database" depends="init-common">
        <echo message="Starting database --dbport ${db.port}"/>
    <!-- spawn is added to prevent a hang on Windows -->
    <exec spawn="true" executable="${ASADMIN}" failonerror="false">
          <arg line="start-database --dbport ${db.port}"/>
    </exec>
    </target>

    <target name="stop-database" depends="init-common">
        <echo message="Stopping database --dbport ${db.port}"/>
    <exec executable="${ASADMIN}" failonerror="false">
          <arg line="stop-database  --dbport ${db.port}"/>
    </exec>
    </target>

    <target name="report-result" depends="init-common">
        <antcall target="dev-report"/>
    </target>

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

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

    <target name="usage">
    <echo>
        Usage:
            ant all (Executes all the ejb tests)
            ant orb_integration (Executes all ejb-related orb integration tests

            ant allowedmethods (Executes the ejb allowedmethods tests)
            ant bmp (Executes the ejb bmp tests)
            ant ejbc (Executes the ejb ejbc tests)
            ant jms (Executes the ejb jms tests)
            ant mdb (Executes the ejb mdb tests)
            ant stubs (Executes the ejb stubs tests)
            ant timer (Executes the ejb timer tests)
            ant txprop (Executes the ejb txprop tests)
            ant sfsb (Executes the ejb sfsb tests)
            ant stress (Executes the ejb stress tests)
            ant ejb30 (Executes the ejb30 tests)
            ant ejb31 (Executes the ejb31 tests)
    </echo>
    </target>
</project>
