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

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

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

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

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

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

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

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

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

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

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


    <target name="runejbtargets">
        <antcall target="subclassing"/>
        <antcall target="bookstore"/>
    </target>

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

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


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

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

    ant clean (Cleans all web tests)
    ant build (builds all web 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 subclassing (Executes the ejb subclassing tests)
    ant all (Executes all the ejb tests)

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

            % ant subclassing -Dweb-target=clean

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