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

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

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

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

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

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

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

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

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

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

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


    <target name="runwstargets">
        <antcall target="ejbws"/>
        <antcall target="servletws"/>
    </target>

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

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

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

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

    ant clean (Cleans all ws tests)
    ant build (builds all ws 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 ejbws (Executes the ejbws tests)
    ant servletws (Executes the servletws tests)
    ant all (Executes all the ws tests)

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

            % ant servletws -Dws-target=clean

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