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

    Copyright (c) 2010, 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="transactions_transaction-scoped_devtest" default="all" basedir=".">

    &commonSetup;
    &commonBuild;
    &testproperties;
    &run;

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

    <target name="clean" depends="init-common">
        <antcall target="clean-common"/>
        <delete>
            <fileset dir="." includes="*.class"/>
            <fileset dir="client/test/client" includes="*.class"/>
        </delete>
    </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="client"
               classpath="${env.APS_HOME}/lib/reportbuilder.jar"
               includes="test/client/WebTest.java"
               debug="true"/>

    </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="test.client.WebTest" fork="true">
            <arg value="${http.host}"/>
            <arg value="${http.port}"/>
            <arg value="${contextroot}"/>
            <classpath>
                <pathelement location="${env.APS_HOME}/lib/reporter.jar"/>
                <pathelement location="client"/>
            </classpath>
            <!--<jvmarg value="-Xdebug"/>-->
            <!--<jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"/>-->
        </java>
    </target>

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

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