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

    Copyright (c) 2017, 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

-->

    <!ENTITY commonSetup SYSTEM "./../../../../config/properties.xml">
    <!ENTITY commonBuild SYSTEM "./../../../../config/common.xml">
        <!ENTITY testproperties SYSTEM "./build.properties">
        ]>

<project name="mix" default="usage" basedir=".">


    &commonSetup;
    &commonBuild;
    &testproperties;

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

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

    <target name="compile" depends="clean">
        <antcall target="compile-common">
            <param name="src" value="ejb"/>
        </antcall>
        <antcall target="compile-common">
            <param name="src" value="client"/>
        </antcall>
        <antcall target="compile-common">
            <param name="src" value="servlet"/>
        </antcall>
    </target>

    <target name="build" depends="compile">
        <antcall target="build-ear-common">
            <param name="ejbjar.classes"
                    value="**/ejb/*.class"/>
            <param name="appclientjar.classes"
                    value="**/client/*.class"/>
            <param name="war.classes"
                    value="**/servlet/*.class"/>
            <param  name="hasWebclient" value="true"/>
        </antcall>
        <javac
          srcdir="."
          classpath="${env.APS_HOME}/lib/reporter.jar"
          includes="client/WebTest.java" destdir="." />

    </target>

    <target name="deploy" depends="init-common">
        <antcall target="create-jdbc-stuff"/>
        <antcall target="deploy-common"/>
        <antcall target="execute-sql-common">
            <param name="sql.file" value="sql/create_pointbase.sql"/>
        </antcall>
    </target>

    <target name="run" depends="init-common">

        <antcall target="run-test-1"/>

    </target>

    <target name="undeploy" depends="init-common">

        <antcall target="execute-sql-common">
            <param name="sql.file" value="sql/drop_pointbase.sql"/>
        </antcall>
        <antcall target="delete-jdbc-stuff"/>
        <antcall target="undeploy-common"/>
        <delete file="client/WebTest.class"/>
    </target>

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

    <target name="create-jdbc-stuff" depends="init-common">

        <antcall target="deploy-jdbc-common">
            <param name="jdbc.conpool.name" value="${poolname}"/>
            <param name="db.class" value="org.apache.derby.jdbc.ClientDataSource"/>
            <param name="jdbc.resource.type" value="javax.sql.DataSource"/>
            <param name="jdbc.resource.name" value="${resourcename}"/>
        </antcall>

    </target>

    <target name="delete-jdbc-stuff" depends="init-common">
        <antcall target="delete-jdbc-resource-common">
            <param name="jdbc.resource.name" value="${resourcename}"/>
        </antcall>

        <antcall target="delete-jdbc-connpool-common">
            <param name="jdbc.conpool.name" value="${poolname}"/>
        </antcall>
    </target>

    <target name="run-test-1" depends="init-common">

        <antcall target="asadmin-common">
            <param name="admin.command" value="set"/>
            <param name="operand.props"
                   value="resources.jdbc-resource.${resourcename}.enabled=false"/>
        </antcall>
        <java classname="client.WebTest">
            <arg value="${http.host}"/>
            <arg value="${http.port}"/>
            <arg value="${contextroot}"/>
            <arg value="${TEST.FAIL}"/>
            <classpath>
                <pathelement location="${env.APS_HOME}/lib/reporter.jar"/>
                <pathelement location="."/>
            </classpath>
        </java>
        <antcall target="asadmin-common">
            <param name="admin.command" value="set"/>
            <param name="operand.props"
                   value="resources.jdbc-resource.${resourcename}.enabled=true"/>
        </antcall>
        <java classname="client.WebTest">
            <arg value="${http.host}"/>
            <arg value="${http.port}"/>
            <arg value="${contextroot}"/>
            <arg value="${TEST.PASS}"/>
            <classpath>
                <pathelement location="${env.APS_HOME}/lib/reporter.jar"/>
                <pathelement location="."/>
            </classpath>
        </java>
        <antcall target="asadmin-common">
            <param name="admin.command" value="set"/>
            <param name="operand.props"
                    value="servers.server.server.resource-ref.${resourcename}.enabled=false"/>
        </antcall>
        <java classname="client.WebTest">
            <arg value="${http.host}"/>
            <arg value="${http.port}"/>
            <arg value="${contextroot}"/>
            <arg value="${TEST.FAIL}"/>
            <classpath>
                <pathelement location="${env.APS_HOME}/lib/reporter.jar"/>
                <pathelement location="."/>
            </classpath>
        </java>
        <antcall target="asadmin-common">
            <param name="admin.command" value="set"/>
            <param name="operand.props"
                    value="servers.server.server.resource-ref.${resourcename}.enabled=true"/>
        </antcall>
        <java classname="client.WebTest">
            <arg value="${http.host}"/>
            <arg value="${http.port}"/>
            <arg value="${contextroot}"/>
            <arg value="${TEST.PASS}"/>
            <classpath>
                <pathelement location="${env.APS_HOME}/lib/reporter.jar"/>
                <pathelement location="."/>
            </classpath>
        </java>
    </target>

</project>
