<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE project [
<!--

    Copyright (c) 2017, 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

-->

<!ENTITY commonSetup SYSTEM "../../../../config/properties.xml">
<!ENTITY commonBuild SYSTEM "../../../../config/common.xml">
<!ENTITY reporting   SYSTEM "../../report.xml">
]>

<project name="remote" default="usage" basedir=".">
    &commonSetup;
    &commonBuild;
    &reporting;

    <target name="all">
        <antcall target="remote"/>
        <antcall target="localandremote"/>
    </target>

    <target name="remote">
        <record name="remote.output" action="start" />
            <ant dir="remote" target="all"/>
        <record name="remote.output" action="stop" />
    </target>

    <target name="localandremote">
        <record name="localandremote.output" action="start" />
            <ant dir="localandremote" target="all"/>
        <record name="localandremote.output" action="stop" />
    </target>

    <target name="usage">
        <echo>
                Usage:
                        ant all (Executes all the ejb-ejb31-asynchronous tests)
        </echo>
    </target>
</project>
