<?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 run SYSTEM "./../../../../config/run.xml">
<!ENTITY testproperties SYSTEM "./build.properties">
]>

<project name="webcontainer_unittest" default="all" basedir=".">

    &commonSetup;
    &commonBuild;
    &testproperties;
    &run;

    <target name="all" depends="build,deploy,run,undeploy" />

        <target name="clean" depends="init-common">
                <antcall target="clean-common" />
                <delete>
                        <fileset dir="." includes="*.class" />
                        <fileset dir="client/test/client" includes="*.class" />
                </delete>
        </target>

        <target name="compile" depends="clean">
                <antcall target="compile-common">
                        <param name="src" value="servlet" />
                </antcall>
        </target>

        <target name="build" depends="compile">
                <property name="hasWebclient" value="yes" />
                <antcall target="webclient-war-common">
                        <param name="hasWebclient" value="yes" />
                        <param name="webclient.war.classes" value="**/*.class" />
                </antcall>

                <javac srcdir="client" classpath="${env.APS_HOME}/lib/reportbuilder.jar" includes="test/client/WebTest.java" />

        </target>

        <target name="build-publish-war" depends="build, publish-war-common" />

        <target name="deploy" depends="init-common">
                <antcall target="deploy-war-common" />
        </target>

        <target name="run" depends="init-common">
                <java classname="test.client.WebTest" fork="true">
                        <arg value="${http.host}" />
                        <arg value="${http.port}" />
                        <arg value="${contextroot}" />
                        <classpath>
                                <pathelement location="${env.APS_HOME}/lib/reportbuilder.jar" />
                                <pathelement location="client" />
                        </classpath>
                </java>
        </target>

        <target name="undeploy" depends="init-common">
                <antcall target="undeploy-war-common" />
        </target>

        <target name="usage">
                <antcall target="usage-common" />
        </target>
</project>
