<?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="javaee-comp-test" default="usage" basedir=".">

    <property name="javaee-comp-target" value="all"/>

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

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

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

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

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

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

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

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

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

    <target name="javaee-comp">
        <record name="javaee-comp.output" action="start" />
            <ant dir="javaee-component-resource-typesafe-injection" target="${javaee-comp-target}"/>
            <ant dir="jpa-resource-injection" target="${javaee-comp-target}"/>
            <ant dir="jpa-resource-injection-non-serializable" target="${javaee-comp-target}"/>
            <ant dir="jpa-resource-injection-passivating-scope" target="${javaee-comp-target}"/>
            <ant dir="jpa-resource-injection-with-singleton-ejb-producer" target="${javaee-comp-target}"/>
            <ant dir="no-interface-ejb" target="${javaee-comp-target}"/>
            <ant dir="jms-resource-producer-field" target="${javaee-comp-target}"/>
<!-- TODO: Investigate
            <ant dir="jms-resource-producer-field-in-library-jar" target="${javaee-comp-target}"/>
-->
            <ant dir="em-resource-injection" target="${javaee-comp-target}"/>
            <ant dir="em-injection-no-interface-ejb" target="${javaee-comp-target}"/>
            <ant dir="em-resource-injection-with-resource-declaration-in-another-jar" target="${javaee-comp-target}"/>
            <ant dir="slsb-injection-into-sessionscoped" target="${javaee-comp-target}"/>
        <record name="javaee-comp.output" action="stop" />
    </target>

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