<!--/*******************************************************************************
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution.
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
* and the Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
*   Ant naming conventions:
*   - regardless of the actual OS platform,'/' is the directory separator
*     (Ant will convert as appropriate).
*   - multi-word properties use periods '.'
*   - multi-word targets use hyphens '-'
*   - 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.
*
* Contributors:
*     ??? - initial implementation
#******************************************************************************/-->

<!-- This ant project includes the following tasks:
        - netweaver-setup    : packs an application containing eclipselink.jar and other required libraries and deploys it to the server
        - netweaver-reset    : undeploys the application containing eclipselink.jar
        - netweaver-deploy   : adds NetWeaver specific resources and deploys ear
        - netweaver-undeploy : undeploys ear
-->

<project name="Eclipse Persistence Services JPA NetWeaver Testing" basedir=".">

    <!-- Allows a user to overide certain user specific properties. -->
    <property file="${user.home}/netweaver.properties"/>
    <property file="${jpatest.basedir}/netweaver.properties"/>

    <property name="cpath" value="${netweaver.deployment.ant.dir}/tc~je~dc_ant.jar:
                                  ${netweaver.clientlib.dir}/sap.com~tc~exception~impl.jar:
                                  ${netweaver.clientlib.dir}/sap.com~tc~je~clientlib~impl.jar:
                                  ${netweaver.clientlib.dir}/sap.com~tc~logging~java~impl.jar:
                                  ${netweaver.deployment.dir}/lib/sap.com~tc~je~deployment14~impl.jar"/>

    <taskdef name="sapdeploy" classname="com.sap.engine.services.dc.ant.deploy.SAPDeploy" classpath="${cpath}"/>
    <taskdef name="sapundeploy" classname="com.sap.engine.services.dc.ant.undeploy.SAPUndeploy" classpath="${cpath}"/>

    <condition property="netweaver.deployment.script.suffix" value="csh" else="${suffix}">
        <and>
            <isset property="is.unix"/>
            <available file="${netweaver.deployment.dir}/scripts/make_SDA.csh"/>
        </and>
    </condition>
        <echo message="suffix=${suffix}"/>

    <macrodef name="make_sda">
        <attribute name="source" />
        <attribute name="target" />
        <sequential>
            <exec executable="${netweaver.deployment.dir}/scripts/make_SDA.${netweaver.deployment.script.suffix}" dir="${netweaver.deployment.dir}/scripts" failonerror="true">
                <arg value="@{source}"/>
                <arg value="-d"/>
                <arg value="@{target}"/>
            </exec>
        </sequential>
    </macrodef>



    <target name="netweaver-install">
       <echo message="*** build target netweaver-install - nothing done ***"/>
    </target>


    <target name="netweaver-start">
       <echo message="*** build target netweaver-start - nothing done ***"/>
    </target>


    <target name="netweaver-setup">
        <mkdir dir="${jpatest.basedir}/${build.dir}"/>
        <dirname property="basedir" file="${jpatest.basedir}"/>

        <!-- pack EAR file containing eclipselink.jar and other required libraries and convert it to SDA -->
        <zip destfile="${jpatest.basedir}/${build.dir}/${netweaver.eclipselink.app}.ear">
            <fileset dir="${eclipselink.home}" includes="eclipselink.jar"/>
            <fileset file="${junit.lib}"/>
        </zip>
        <make_sda source="${basedir}/${build.dir}/${netweaver.eclipselink.app}.ear" target="${basedir}/${build.dir}/${netweaver.eclipselink.app}.sda" />

        <!-- pack EAR file containing the test datasource and convert it to SDA -->
        <copy overwrite="true" todir="${jpatest.basedir}/resource/${server.name}/setup/META-INF">
            <fileset dir="${jpatest.basedir}/resource/${server.name}/templates/setup/META-INF" includes="*.*"/>
        </copy>
        <replace file="${jpatest.basedir}/resource/${server.name}/setup/META-INF/data-sources.xml" token='%%data-source-name%%' value="${netweaver.datasource.name}"/>
        <replace file="${jpatest.basedir}/resource/${server.name}/setup/META-INF/data-sources.xml" token='%%driver-name%%' value="${netweaver.datasource.driver.deployname}"/>
        <replace file="${jpatest.basedir}/resource/${server.name}/setup/META-INF/data-sources.xml" token='%%driver-class-name%%' value="${netweaver.datasource.driver.class}"/>
        <replace file="${jpatest.basedir}/resource/${server.name}/setup/META-INF/data-sources.xml" token='%%url%%' value="${netweaver.datasource.url}"/>
        <replace file="${jpatest.basedir}/resource/${server.name}/setup/META-INF/data-sources.xml" token='%%user-name%%' value="${netweaver.datasource.user}"/>
        <replace file="${jpatest.basedir}/resource/${server.name}/setup/META-INF/data-sources.xml" token='%%password%%' value="${netweaver.datasource.password}"/>
        <zip destfile="${jpatest.basedir}/${build.dir}/${netweaver.datasource.app}.ear">
            <fileset dir="${jpatest.basedir}/resource/${server.name}/setup"/>
        </zip>
        <make_sda source="${basedir}/${build.dir}/${netweaver.datasource.app}.ear" target="${basedir}/${build.dir}/${netweaver.datasource.app}.sda" />

        <!-- deploy the SDA -->
        <sapdeploy versionrule="all">
            <saperrorhandling erroraction="prerequisites" errorstrategy="stop"/>
            <saperrorhandling erroraction="deploy" errorstrategy="stop"/>
            <fileset dir="${build.dir}" includes="${netweaver.eclipselink.app}.sda,${netweaver.datasource.app}.sda"/>
            <sapj2eeengine serverhost="${netweaver.host}" serverport="${netweaver.port}" username="${server.user}" userpassword="${server.pwd}"/>
        </sapdeploy>
    </target>


    <target name="netweaver-reset">
        <!-- undeploy the application containing eclipselink.jar -->
        <copy overwrite="true" todir="${jpatest.basedir}/resource/${server.name}">
            <fileset dir="${jpatest.basedir}/resource/${server.name}/templates/" includes="undeploy_eclipselink.txt"/>
        </copy>
        <replace file="${jpatest.basedir}/resource/${server.name}/undeploy_eclipselink.txt" token='%%eclipselink_app%%' value="${netweaver.eclipselink.app}"/>
        <replace file="${jpatest.basedir}/resource/${server.name}/undeploy_eclipselink.txt" token='%%datasource_app%%' value="${netweaver.datasource.app}"/>
        <sapundeploy undeploystrategy="IfDependingStop">
            <saperrorhandling erroraction="prerequisites" errorstrategy="stop"/>
            <saperrorhandling erroraction="undeploy" errorstrategy="stop"/>
            <sapundeploylist listfilepath="${jpatest.basedir}/resource/${server.name}/undeploy_eclipselink.txt"/>
            <sapj2eeengine serverhost="${netweaver.host}" serverport="${netweaver.port}" username="${server.user}" userpassword="${server.pwd}"/>
        </sapundeploy>
    </target>


    <target name="netweaver-stop">
       <echo message="*** build target netweaver-stop - nothing done ***"/>
    </target>


    <!-- add NetWeaver specific resources to the test application ear and deploy it to the server -->
    <target name="netweaver-deploy">
        <!-- add NetWeaver specific resources to the application EAR and convert it to SDA -->
        <copy overwrite="true" todir="${jpatest.basedir}/resource/${server.name}/META-INF">
            <fileset dir="${jpatest.basedir}/resource/${server.name}/templates/META-INF" includes="*.*"/>
        </copy>
        <replace dir="${jpatest.basedir}/resource/${server.name}/META-INF" token='%%eclipselinklib%%' value="${netweaver.eclipselink.app}"/>
        <replace dir="${jpatest.basedir}/resource/${server.name}/META-INF" token='%%datasourcename%%' value="${netweaver.datasource.name}"/>
        <ear destfile="${basedir}/${ear.name}" update="true">
            <fileset dir="${jpatest.basedir}/resource/${server.name}" includes="META-INF/*.*"/>
        </ear>
        <dirname property="basedir" file="${jpatest.basedir}"/>
        <echo message="ear.name=${ear.name}"/>
        <echo message="application.name=${application.name}"/>
        <make_sda source="${basedir}/${ear.name}" target="${basedir}/${build.dir}/${application.name}.sda"/>

        <!-- deploy the SDA -->
        <sapdeploy versionrule="all">
            <saperrorhandling erroraction="prerequisites" errorstrategy="stop"/>
            <saperrorhandling erroraction="deploy" errorstrategy="stop"/>
            <fileset dir="${build.dir}" includes ="${application.name}.sda"/>
            <sapj2eeengine serverhost="${netweaver.host}" serverport="${netweaver.port}" username="${server.user}" userpassword="${server.pwd}"/>
        </sapdeploy>
    </target>


    <!-- undeploy the test application from the server -->
    <target name="netweaver-undeploy">
        <sapundeploy undeploystrategy="IfDependingStop">
            <saperrorhandling erroraction="prerequisites" errorstrategy="stop"/>
            <saperrorhandling erroraction="undeploy" errorstrategy="stop"/>
            <sapundeploylist listfilepath="${jpatest.basedir}/resource/${server.name}/undeploy.txt"/>
            <sapj2eeengine serverhost="${netweaver.host}" serverport="${netweaver.port}" username="${server.user}" userpassword="${server.pwd}"/>
        </sapundeploy>
    </target>

</project>
