<?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

-->

<!DOCTYPE project [
<!ENTITY commonSetup SYSTEM "./../../../config/properties.xml">
<!ENTITY commonBuild SYSTEM "./../../../config/common.xml">
<!ENTITY commonRun SYSTEM "./../../../config/run.xml">
<!ENTITY reporting   SYSTEM "../report.xml">
]>

<project name="implicit-test" default="usage" basedir=".">

    &commonSetup;
    &commonBuild;
    &commonRun;
    &reporting;

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

        <taskdef resource="net/sf/antcontrib/antcontrib.properties">
                <classpath>
                        <pathelement location="${env.APS_HOME}/devtests/cdi/lib/ant-contrib-1.0b3.jar" />
                </classpath>
        </taskdef>

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

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

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

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

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

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

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

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

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

        <target name="implicit">
                <record name="implicit.output" action="start" />
                <ant dir="simple-ejb-cdi" target="${implicit-target}" />
                <ant dir="deployment-option" target="${implicit-target}" />
                <record name="implicit.output" action="stop" />
        </target>

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