<?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 testproperties SYSTEM "./build.properties">
        <!ENTITY common SYSTEM "../../../../config/common.xml">
        <!ENTITY testcommon SYSTEM "../../../../config/properties.xml">

        ]>

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

    &testproperties;
    <!--
    &eeSetup;
    &eeProperties;
    -->
    &common;
    &testcommon;

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

    <target name="clean" depends="init-common">
        <antcall target="clean-common"/>
        <ant dir="rar" target="clean"/>
    </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="." />

        <ant dir="rar" target="build"/>
    </target>

    <target name="deploy" depends="init-common">
        <ant dir="rar" target="build"/>
        <antcall target="deploy-rar-common"/>

        <antcall target="create-connector-connpool-common">
            <param name="ra.name" value="${undeployrar}"/>
            <param name="connection.defname" value="com.sun.connector.blackbox.DataSource"/>
            <param name="connector.conpool.name" value="serializable-test-ccp"/>
        </antcall>
        <antcall target="create-connector-resource-common">
            <param name="connector.conpool.name" value="serializable-test-ccp"/>
            <param name="connector.jndi.name" value="eis/connector-resource"/>
        </antcall>
        <antcall target="asadmin-common">
            <param name="admin.command" value="set"/>
            <param name="operand.props"
                   value="${resources.dottedname.prefix}.connector-connection-pool.serializable-test-ccp.property.User=pbpublic"/>
        </antcall>
        <antcall target="asadmin-common">
            <param name="admin.command" value="set"/>
            <param name="operand.props"
                   value="${resources.dottedname.prefix}.connector-connection-pool.serializable-test-ccp.property.Password=pbpublic"/>
        </antcall>

        <antcall target="asadmin-common">
            <param name="admin.command" value="set"/>
            <param name="operand.props"
                   value="${resources.dottedname.prefix}.connector-connection-pool.serializable-test-ccp.property.booleanWithIsBooleanAccessor=true"/>
        </antcall>

        <antcall target="asadmin-common">
            <param name="admin.command" value="set"/>
            <param name="operand.props"
                   value="${resources.dottedname.prefix}.connector-connection-pool.serializable-test-ccp.property.booleanWithGetBooleanAccessor=true"/>
        </antcall>

        <antcall target="deploy-common"/>
    </target>

    <target name="run" depends="init-common">
        <antcall target="execute-sql-common">
            <param name="sql.file" value="sql/create_pointbase.sql"/>
        </antcall>
        <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-connector-resource-common">
            <param name="connector.jndi.name" value="eis/connector-resource"/>
        </antcall>
        <antcall target="delete-connector-connpool-common">
            <param name="connector.conpool.name" value="serializable-test-ccp"/>
        </antcall>
        <antcall target="undeploy-common"/>
        <antcall target="undeploy-rar-common"/>
    </target>

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

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

          <java classname="client.WebTest">
            <arg value="${http.host}"/>
            <arg value="${http.port}"/>
            <arg value="${contextroot}"/>
            <classpath>
             <pathelement location="${env.APS_HOME}/lib/reporter.jar"/>
             <pathelement location="."/>
           </classpath>
          </java>

      </target>


<!--
    <target name="run-test-1" depends="init-common">
        <antcall target="runclient-common">
            <param name="appclient.application.args" value="1"/>
        </antcall>
    </target>
-->


    <target name="create-sql">
        <antcall target="execute-sql-common">
            <param name="sql.file" value="sql/create_pointbase.sql"/>
        </antcall>
    </target>

    <target name="drop-sql">
        <antcall target="execute-sql-common">
            <param name="sql.file" value="sql/drop_pointbase.sql"/>
        </antcall>
    </target>
</project>
