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

    Copyright (c) 2010, 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="transactions-test" default="usage" basedir=".">

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

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

    <target name="all">
        <antcall target="transactions">
            <param name="transactions-target" value="all"/>
        </antcall>
    </target>

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

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

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

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

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

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

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

    <target name="transactions">
        <record name="transactions.output" action="start" />
        <ant dir="transaction-scoped" target="${transactions-target}"/>
        <record name="transactions.output" action="stop" />
    </target>

    <target name="usage">
        <echo> Usage:
            ant all (Executes all the transactions tests)
            ant clean (cleans all the transactions tests)
            ant build (builds all the transactions tests)
            ant setup (sets up all resources for transactions tests)
            ant deploy (deploys all the transactions apps)
            ant run (Executes all the transactions tests)
            ant undeploy (undeploys all the transactions apps)
            ant unsetup (unsets all resources for transactions tests)
        </echo>
    </target>
</project>
