<?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 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="create-vs,build,deploy,setDefaultWebModule,create-listener,run,unsetDefaultWebModule,undeploy,delete-listener,delete-vs"/>

    <target name="clean" depends="init-common">
      <antcall target="clean-common"/>
    </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="setDefaultWebModule" depends="init-common">
        <antcall target="asadmin-common-ignore-fail">
            <param name="admin.command" value="set" />
            <param name="operand.props"
                   value="${appserver.instance.name}.http-service.virtual-server.${new-virtual-server}.default-web-module=${appname}-web"/>
        </antcall>
    </target>

    <target name="create-vs" depends="init-common">
        <!-- any hostname that cannot be matched to an existing virtual servers will be
            dispatched to listener default virtual server -->
        <antcall target="asadmin-common-ignore-fail">
            <param name="admin.command" value="create-virtual-server" />
            <param name="operand.props"
                   value="--hosts foo ${new-virtual-server}"/>
        </antcall>
    </target>

    <target name="delete-vs" depends="init-common">
        <antcall target="asadmin-common-ignore-fail">
            <param name="admin.command" value="delete-virtual-server" />
            <param name="operand.props"
                   value="${new-virtual-server}"/>
        </antcall>
    </target>

    <target name="create-listener" depends="init-common">
        <antcall target="asadmin-common-ignore-fail">
            <param name="admin.command" value="create-http-listener" />
            <param name="operand.props"
                value="--listeneraddress ${http.address} --listenerport ${http.alternate.port} --defaultvs ${new-virtual-server} ${new-http-listener}"/>
        </antcall>
        <sleep seconds="5"/>
    </target>

    <target name="delete-listener" depends="init-common">
        <antcall target="asadmin-common-ignore-fail">
            <param name="admin.command" value="delete-http-listener" />
            <param name="operand.props"
                   value="${new-http-listener}"/>
        </antcall>
    </target>

    <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.alternate.port}"/>
          <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="unsetDefaultWebModule" depends="init-common">
        <antcall target="asadmin-common-ignore-fail">
            <param name="admin.command" value="set" />
            <param name="operand.props"
                   value="${appserver.instance.name}.http-service.virtual-server.${new-virtual-server}.default-web-module="/>
        </antcall>
    </target>

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