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

    Copyright (c) 2021 Contributors to the Eclipse Foundation
    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 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,runfirst,redeploy,runsecond,redeploy2,runthird,undeploy"/>

    <target name="clean" depends="init-common">
      <antcall target="clean-common"/>
      <delete file="WebTest.class" failonerror="false"/>
      <delete file="RepRunConf.txt" failonerror="false"/>
      <delete file="JSESSIONID" failonerror="false"/>
    </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="." classpath="${env.APS_HOME}/lib/reportbuilder.jar"
               includes="WebTest.java"/>

    </target>

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

    <target name="redeploy" depends="init-common">
        <echo message="Redeploying ${assemble.dir}/${appname}-web.war from ${basedir}."
              level="verbose"/>
        <antcall target="asadmin-common-ignore-fail">
            <param name="admin.command" value="redeploy"/>
            <param name="operand.props" value="--name=${appname}-web ${assemble.dir}/${appname}-web.war"/>
        </antcall>
    </target>

    <target name="redeploy2" depends="init-common">
        <echo message="Redeploying with keepState=false ${assemble.dir}/${appname}-web.war from ${basedir}."
              level="verbose"/>
        <antcall target="asadmin-common-ignore-fail">
            <param name="admin.command" value="redeploy"/>
            <param name="operand.props" value="--keepstate=false --name=${appname}-web ${assemble.dir}/${appname}-web.war"/>
        </antcall>
    </target>

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

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

    <target name="runthird" depends="init-common">
        <java classname="WebTest" fork="true">
          <arg value="${http.host}"/>
          <arg value="${http.port}"/>
          <arg value="${contextroot}"/>
          <arg value="third"/>
          <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>
