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

    Copyright (c) 1997, 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 testproperties SYSTEM "./build.properties">
]>

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

    &commonSetup;
    &commonBuild;
    &testproperties;

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

    <target name="clean" depends="init-common">
        <antcall target="clean-common"/>
        <delete>
            <fileset dir="." includes="*.class"/>
        </delete>
        <delete dir="lib"/>
    </target>
       
    <target name="compile" depends="clean">
        <antcall target="compile-common">
            <param name="src" value="servlet"/>
        </antcall>
    </target>

    <target name="build" depends="compile">
        <mkdir dir="lib"/>
        <mkdir dir="${build.classes.dir}/META-INF/resources/folder"/>
        <copy file="resources/abc.txt" todir="${build.classes.dir}/META-INF/resources"/>
        <copy file="resources/def.txt" todir="${build.classes.dir}/META-INF/resources/folder"/>
        <jar destfile="lib/nest.jar" basedir="${build.classes.dir}"
            includes="META-INF/**"/>
        <delete dir="${build.classes.dir}/META-INF/resources"/>

        <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="." classpath="${env.APS_HOME}/lib/reportbuilder.jar"
               includes="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="WebTest">
          <arg value="${http.host}"/>
          <arg value="${http.port}"/>
          <arg value="${contextroot}"/>
          <classpath>
           <pathelement location="${env.APS_HOME}/lib/reportbuilder.jar"/>
           <pathelement location="."/>
         </classpath>
        </java>
    </target>
 
    <target name="undeploy" depends="init-common">
        <antcall target="undeploy-war-common"/>
    </target>   

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