<!--

    Copyright (c) 2018, 2020 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,
    or the Eclipse Distribution License v. 1.0 which is available at
    http://www.eclipse.org/org/documents/edl-v10.php.

    SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause

-->

<!--
  Contributors:
      kyuan - initial API and implementation
-->

<!-- This ant project includes the following tasks:
        - jboss-install : recreates server and adds jars (ignore this step)
        - jboss-setup : creates connection pool
        - jboss-reset : removes connection pool
        - jboss-start : starts server
        - jboss-stop : stops server
        - jboss-deploy : deploys ear
        - jboss-undeploy : undeploys ear

        It requires some configuration of the jboss.properties, it should be run through build.xml, not directly.
        To connect to the jboss admin console use http://localhost:8080/jmx-console, this may be useful for debugging deployment failures.
        Sometimes if a test or deployment fails, you server gets screwed up and you need to re-install your domain (ant server.install).
-->
<!--
*   Ant naming conventions:
*   - regardless of the actual OS platform,'/' is the directory separator
*     (Ant will convert as appropriate).
*   - multi-word properties use periods '.'
*     - properties ending in .jar define jarfile names only (no path)
*     - properties ending in .lib are fully qualified jars (path and filename)
*     - properties ending in .dir are directory paths
*     - properties ending in .path are path refid names (classpath fragments)
*   - multi-word targets use hyphens '-'
*     - targets beginning with test- are reserved for high level test targets,
*       and are used in test results parsing
*     - targets typically use the form <action>-<object>-<type> (ie. package-bundle-zip)
*   - multi-word macros use underscores '_'
*   - multi-word macro attributes are concatenated
*     e.g. 'runpathref'
*   - multi-word tasks (taskdef) names are concatenated
*     e.g. 'validateconnection'
*   - OS environment variables are in ALLCAPS and have 'env' as a prefix
*     e.g. ${env.XXX}.
*   - Ant properties are lower case.
-->
<project name="Eclipse Persistence Services JPA JBoss Testing" basedir=".">

    <property name="env" environment="env" value="env"/>
    <!-- Allows a user to overide certain user specific properties. -->
    <property file="${user.home}/jboss.properties"/>
    <property file="./jboss.properties"/>
    <property name="eclipselink.lib" value="../../${eclipselink.jar}"/>

    <!-- Set db name by check db.driver -->
    <condition property="db.name" value="oracle">
        <contains string="${db.driver}" substring="oracle"/>
    </condition>

    <condition property="db.name" value="mysql">
        <contains string="${db.driver}" substring="mysql"/>
    </condition>

    <condition property="db.name" value="mssql">
        <contains string="${db.driver}" substring="sqlserver"/>
    </condition>

    <condition property="db.name" value="db2">
        <contains string="${db.driver}" substring="db2"/>
    </condition>

    <condition property="db.name" value="sybase">
        <contains string="${db.driver}" substring="sybase"/>
    </condition>

    <condition property="is.eap">
        <contains string="${server.version}" substring="eap"/>
    </condition>

    <!-- Here will use default server configuration. -->
    <target name="jboss-install">
        <copy file="${junit.lib}" todir="${jboss.server}/lib"/>
        <copy file="${eclipselink.lib}" todir="${jboss.server}/lib"/>
        <copy file="${jdbc.driver.jar}" todir="${jboss.server}/lib"/>
        <copy file="${jpatest.2.sdo.plugins.dir}/${commonj.sdo.jar}" todir="${jboss.server}/lib" overwrite="true"/>
        <antcall target="copy-eclipselink-persistence-jars-to-domain-lib" inheritRefs="true"/>
    </target>

    <target name="copy-eclipselink-persistence-jars-to-domain-lib" if="is.eap">
        <copy file="${eclipselink.plugins.trunk}/${persistence10.jar}" todir="${jboss.server}/lib" overwrite="true"/>
    </target>

    <!-- This target is to create datasource required for running JPA tests on the JBoss server. -->
    <target name="jboss-setup">
        <copy todir="${jboss.server}/deploy">
            <fileset dir="./resource/jboss/">
                <include name="${db.name}-*.xml"/>
            </fileset>
        </copy>
        <replace file="${jboss.server}/deploy/${db.name}-ds.xml" token="@username@" value="${db.user}"/>
        <replace file="${jboss.server}/deploy/${db.name}-ds.xml" token="@password@" value="${db.pwd}"/>
        <replace file="${jboss.server}/deploy/${db.name}-ds.xml" token="@url@" value="${db.url}"/>
        <replace file="${jboss.server}/deploy/${db.name}-ds.xml" token="@driverclass@" value="${db.driver}"/>
        <replace file="${jboss.server}/deploy/${db.name}-xa-ds.xml" token="@username@" value="${db.user}"/>
        <replace file="${jboss.server}/deploy/${db.name}-xa-ds.xml" token="@password@" value="${db.pwd}"/>
        <replace file="${jboss.server}/deploy/${db.name}-xa-ds.xml" token="@url@" value="${db.url}"/>
        <replace file="${jboss.server}/deploy/${db.name}-xa-ds.xml" token="@driverclass@" value="${db.driver}"/>
    </target>

    <!-- This target is to remove the datasource created by target "jboss-setup" -->
    <target name="jboss-reset">
        <delete dir="${jboss.server}/tmp"/>
        <delete dir="${jboss.server}/work"/>
        <delete dir="${jboss.server}/data"/>
        <delete dir="${jboss.server}/log"/>
        <delete file="${jboss.server}/deploy/${db.name}-ds.xml"/>
    </target>

    <!-- Start the server. -->
    <target name="jboss-start">
        <java classname="org.jboss.Main"
            fork="true"
            failonerror="false" >
            <jvmarg value="-Xms512m"/>
            <jvmarg value="-Xmx960m"/>
            <sysproperty key="http.proxyHost" value="www-proxy.us.oracle.com"/>
            <sysproperty key="http.proxyPort" value="80"/>
            <sysproperty key="eclipselink.logging.level" value="${logging.level}"/>
            <sysproperty key="java.endorsed.dirs" value="${jboss.home}/lib/endorsed"/>
            <classpath>
                <!-- The following 2 jars are for 5.x version -->
                <pathelement location="${jboss.home}/lib/jboss-common-core.jar"/>
                <pathelement location="${jboss.home}/lib/jboss-logging-spi.jar"/>
                <!-- The following 2 jars are only for 6.0 and later version -->
                <pathelement location="${jboss.home}/lib/jboss-logging.jar"/>
                <pathelement location="${jboss.home}/lib/jboss-logmanager.jar"/>
                <pathelement location="${jboss.home}/bin/run.jar"/>
                <pathelement location="${jdbc.driver.jar}"/>
                <pathelement location="${oracle.extensions.depend.dir}/${oracle.xdb.jar}"/>
                <pathelement location="${oracle.extensions.depend.dir}/${oracle.xmlparser.jar}"/>
                <pathelement location="${oracle.extensions.depend.dir}/${oracle.sdoapi.jar}"/>
            </classpath>
        </java>
    </target>

    <!-- Stop the server. -->
    <target name="jboss-stop">
        <java classname="org.jboss.Shutdown"
            fork="true"
            failonerror="false">
            <arg line="-S -u ${server.user} -p ${server.pwd} ${server.url}"/>
            <classpath>
                <fileset dir="${server.lib}" includes="${server.depend}"/>
                <pathelement location="${jboss.home}/bin/shutdown.jar"/>
            </classpath>
        </java>
    </target>

    <!-- Deploy the application ear to the server. -->
    <target name="jboss-deploy">
        <copy todir="${jboss.deploy.dir}">
            <fileset dir="./">
                <include name="${ear.name}"/>
            </fileset>
        </copy>
        <sleep seconds="10"/>
    </target>

    <!-- Undeploy the application ear to the server. -->
    <target name="jboss-undeploy">
        <delete>
            <fileset dir="${jboss.deploy.dir}" includes="*.ear,*.war"/>
        </delete>
    </target>

</project>
