<?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">
<!ENTITY run SYSTEM "./../../../../config/run.xml">
<!ENTITY eeSetup SYSTEM "./../../config/ee-common.xml">
<!ENTITY eeProperties SYSTEM "./../../config/ee-properties.xml">
]>

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

    &commonSetup;
    &commonBuild;
    &run;
    <!--
    &eeSetup;
    &eeProperties;
    -->
    &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">
        <property name="hasWebclient" value="true"/>
        <antcall target="webclient-war-common">
            <param name="hasWebclient" value="yes"/>
            <param name="webclient.war.classes" value="**/*.class"/>
        </antcall>

        <antcall target="ejb-jar-common">
            <param name="ejbjar.classes" value="**/*.class"/>
        </antcall>

        <delete file="${assemble.dir}/${appname}.ear"/>
        <mkdir dir="${assemble.dir}"/>

        <mkdir dir="${build.classes.dir}/META-INF"/>

        <ear earfile="${assemble.dir}/${appname}App.ear"
             appxml="${application.xml}">
             <fileset dir="${assemble.dir}">
                <include name="*.jar"/>
                <include name="*.war"/>
             </fileset>
        </ear>
    </target>

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

      <antcall target="setup"/>
      <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="run-test-1" depends="init-common">
        <antcall target="runwebclient-common">
              <param name="testsuite.id" value="web-to-ejb (ear based)"/>
        </antcall>
    </target>

    <target name="undeploy" depends="init-common">
      <antcall target="execute-sql-common">
        <param name="sql.file" value="sql/drop_pointbase.sql"/>
      </antcall>

      <antcall target="unsetup"/>
      <antcall target="undeploy-common"/>
    </target>

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

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

      <antcall target="deploy-jdbc-common">
        <param name="jdbc.conpool.name" value="jdbc-autocommit-pool"/>
        <param name="jdbc.resource.name" value="jdbc/autocommit"/>
      </antcall>

      <antcall target="asadmin-common">
        <param name="admin.command" value="set"/>
        <param name="operand.props" value="${resources.dottedname.prefix}.jdbc-connection-pool.jdbc-autocommit-pool.steady_pool_size=2"/>
      </antcall>

      <antcall target="asadmin-common">
        <param name="admin.command" value="set"/>
        <param name="operand.props" value="${resources.dottedname.prefix}.jdbc-connection-pool.jdbc-autocommit-pool.max_pool_size=2"/>
      </antcall>


    </target>

    <target name="unsetup">
      <antcall target="delete-jdbc-resource-common">
        <param name="jdbc.resource.name" value="jdbc/autocommit"/>
      </antcall>

      <antcall target="delete-jdbc-connpool-common">
        <param name="jdbc.conpool.name" value="jdbc-autocommit-pool"/>
      </antcall>
    </target>

</project>
