<?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">
        ]>

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

    &commonSetup;
    &commonBuild;
    &run;
    <property name="module" value="web"/>
    <property name="appname" value="${module}-thread-timeout"/>
    <property name="assemble" value="${build.classes.dir}/archive"/>
    <property name="application.xml" value="descriptor/application.xml"/>
    <property name="sun-application.xml" value="descriptor/sun-application.xml"/>
    <property name="apptype" value="web"/>
    <property name="web.xml" value="web/WEB-INF/web.xml"/>
    <property name="sun-web.xml" value="descriptor/sun-web.xml"/>
    <property name="contextroot" value="/web-thread-timeout"/>

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

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

    <target name="setup" depends="init-common">
        <antcall target="asadmin-common-ignore-fail">
            <param name="admin.command" value="set"/>
            <param name="operand.props"
                   value="configs.config.server-config.network-config.protocols.protocol.http-listener-1.http.request-timeout-seconds=5"/>
        </antcall>
    </target>

    <target name="teardown" depends="init-common">
        <antcall target="asadmin-common-ignore-fail">
            <param name="admin.command" value="set"/>
            <param name="operand.props"
                   value="configs.config.server-config.network-config.protocols.protocol.http-listener-1.http.request-timeout-seconds="/>
        </antcall>
    </target>

    <target name="compile" depends="clean">
        <antcall target="compile-common">
            <param name="src" value="src"/>
        </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="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">
        <echo>Testing timeout settings</echo>
        <java classname="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="."/>
            </classpath>
        </java>
        <antcall target="stopDomain"/>
        <sleep seconds="15" />
        <antcall target="startDomainDebug"/>
        <sleep seconds="15" />
        <echo>Testing disabled timeout settings under a debug vm</echo>
        <java classname="WebTest" fork="true">
            <arg value="${http.host}"/>
            <arg value="${http.port}"/>
            <arg value="${contextroot}"/>
            <arg value="notimeout"/>
            <classpath>
                <pathelement location="${env.APS_HOME}/lib/reportbuilder.jar"/>
                <pathelement location="."/>
            </classpath>
        </java>
        <antcall target="restart-server-instance-common"/>
    </target>

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

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

    <target name="startDomainDebug" depends="startDomainDebugUnix, startDomainDebugWindows"/>

    <target name="startDomainDebugUnix" depends="init-common" if="isUnix">
        <echo>ASADMIN ======= ${ASADMIN}</echo>
        <exec executable="${ASADMIN}" failonerror="true">
            <arg line="start-domain --debug"/>
        </exec>
        <echo message="run.xml:doing wait for ${http.host}:${http.port}..."/>
        <waitfor>
            <http url="http://${http.host}:${http.port}"/>
        </waitfor>
        <echo message="run.xml:DONE doing wait for ${http.host}:${http.port}..."/>
    </target>

    <target name="startDomainDebugWindows" depends="init-common" if="isWindows">
        <exec executable="${ASADMIN}" spawn="true">
            <arg line="start-domain --debug"/>
        </exec>
        <waitfor>
            <http url="http://${http.host}:${http.port}"/>
        </waitfor>
    </target>

</project>
