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

    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

-->

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

    <property name="txn-target" value="all"/>

<!-- ======== Targets by execution granularity ========== -->
    <target name="all">
        <antcall target="runtxntests">
            <param name="txn-target" value="all"/>
        </antcall>
    </target>

    <target name="run-test">
        <antcall target="runtxntests">
            <param name="txn-target" value="run-test"/>
        </antcall>
    </target>

    <target name="clean">
        <antcall target="runtxntests">
            <param name="txn-target" value="clean"/>
        </antcall>
    </target>

    <target name="build">
        <antcall target="runtxntests">
            <param name="txn-target" value="build"/>
        </antcall>
    </target>

    <target name="deploy">
        <antcall target="runtxntests">
            <param name="txn-target" value="deploy"/>
        </antcall>
    </target>

    <target name="undeploy">
        <antcall target="runtxntests">
            <param name="txn-target" value="undeploy"/>
        </antcall>
    </target>

    <target name="run">
        <antcall target="runtxntests">
            <param name="txn-target" value="run"/>
        </antcall>
    </target>

    <target name="setup">
        <antcall target="runtxntests">
            <param name="txn-target" value="setup"/>
        </antcall>
    </target>

    <target name="unsetup">
        <antcall target="runtxntests">
            <param name="txn-target" value="unsetup"/>
        </antcall>
    </target>


    <target name="runtxntests">
        <antcall target="txglobal"/>
    </target>

<!-- ======== Targets by technology ========== -->

    <target name="txglobal">
        <record name="txglobal.output" action="start" />
            <ant dir="txglobal" target="${txn-target}"/>
        <record name="txglobal.output" action="stop" />
    </target>

    <target name="usage">
    <echo> Usage:
    ======== Targets by execution granularity =========

    ant clean (Cleans all txn tests)
    ant build (builds all txn tests)
    ant setup (setup all required resources)
    ant deploy (deploy all test apps)
    ant run (Executes all tests)
    ant undeploy (undeploy all test apps)
    ant unsetup (remove all set resources)

    ======== Targets by technology =========

    ant txglobal (Executes the txn txglobal test)
    ant all (Executes all the txn tests)

    ===== Targets by technoloy and execution granularity ======
    Note: Run the command of the following type:

            % ant txglobal -Dtxn-target=clean

    to run the 'clean' target for 'stateless' tests
    </echo>
    </target>
</project>
