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

    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

-->

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

<project name="webservice" default="usage" basedir=".">

    &commonSetup;
    &commonBuild;
    &reporting;

    <target name="all">
        <delete file="${env.APS_HOME}/test_results.html"/>
        <delete file="${env.APS_HOME}/test_resultsValid.xml"/>
        <delete file="${env.APS_HOME}/test_results.xml"/>
        <delete dir="${env.APS_HOME}/build/module"/>
        <record name="webservice.output" action="start" />
        <delete dir="${env.APS_HOME}/build/module"/>
        <ant dir="jaxrpc-hello-ejb" target="all"/>
        <delete dir="${env.APS_HOME}/build/module"/>
        <ant dir="jaxrpc-hello-web" target="all"/>
<!--        <ant dir="googleserver" target="all"/>--> <!-- 3 tests -->
        <ant dir="xsdany" target="all"/> <!-- 1 test -->
        <ant dir="filter_urlhandling" target="all"/> <!-- 1 test -->
    <!--    <ant dir="security" target="all"/>-->         <!-- 9 test -->
<!--        <ant dir="simplefault" target="all"/>
        <ant dir="handler" target="all"/>
        <ant dir="webstub_properties" target="all"/>
        <ant dir="servlethandler" target="all"/>-->
        <ant dir="annotations" target="all"/>
        <ant dir="ejb_annotations" target="all"/>
        <ant dir="mapping/j2w/signature" target="all"/> <!-- 2 tests -->
        <ant dir="google" target="all"/> <!-- 1 test -->
        <ant dir="gf_dd/endpoint_address_uri" target="all"/> <!-- 1 test -->
        <record name="webservice.output" action="stop" />
        <antcall target="report"/>
        <antcall target="dev-report"/>
    </target>

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

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

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

    <target name="signature">
        <record name="signature.output" action="start" />
            <ant dir="mapping/j2w/signature" target="all"/>
        <record name="signature.output" action="stop" />
        <antcall target="report"/>
    </target>

    <target name="clean">
        <delete>
            <fileset dir="${basedir}"
                     includes="**.output, count.txt"/>
        </delete>
        <ant dir="google" target="clean"/>
        <ant dir="xsdany" target="clean"/>
        <ant dir="mapping/j2w/signature" target="clean"/>
        <ant dir="webstub_properties" target="clean"/>
        <ant dir="filter_urlhandling" target="clean"/>
     </target>

    <target name="usage">
        <echo>
                Usage:
                        ant all (Executes all the webservice tests)

                        ant google (Executes the google tests)
                        ant xsdany (Executes the xsdany tests)
        </echo>
    </target>

</project>
