<?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="cmp" default="usage" basedir=".">

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

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

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

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

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

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

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

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

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

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

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


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

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

