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

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