<?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 commonRun SYSTEM "./../../config/run.xml">
]>

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

    &commonSetup;
    &commonBuild;
    &commonRun;

    <property name="connector-target" value="all"/>
    <property name="stylesheet" value="${env.APS_HOME}/config/j2eeReporter.xsl" />
    <property name="xmlfile" value="${env.APS_HOME}/test_resultsValid.xml" />
    <property name="htmlfile" value="${env.APS_HOME}/test_results.html" />


    <target name="pe-all">
        <antcall target="backup-config-pe"/>
	<echo message="NOTE: The file ${env.APS_HOME}/config.properties is being replaced with ${basedir}/config/pe-config.properties. The file will be reverted to its original state after the completion of these tests."/>
	<copy file="${basedir}/config/pe-config.properties" tofile="${env.APS_HOME}/config.properties" overwrite="true"/>
	<antcall target="create-pe-passwordfile"/>
	<antcall target="all"/>
        <antcall target="restore-config-pe"/>
    </target>
	
    <target name="das-all">
        <antcall target="backup-config-pe"/>
        <echo message="NOTE: The file ${env.APS_HOME}/config.properties is being replaced with ${basedir}/config/das-config.properties. The file will be reverted to its original state after the completion of these tests."/>
	<copy file="${basedir}/config/das-config.properties" tofile="${env.APS_HOME}/config.properties" overwrite="true"/>
	<antcall target="create-ee-passwordfile"/>
	<antcall target="all"/>
        <antcall target="restore-config-pe"/>
    </target>

    <target name="ee-all">
        <antcall target="backup-config-pe"/>
        <antcall target="backup-config-ee"/>
        <echo message="NOTE: The file ${env.APS_HOME}/config.properties is being replaced with ${basedir}/config/das-config.properties. The file will be reverted to its original state after the completion of these tests."/>
	<copy file="${basedir}/config/ee-config.properties" tofile="${env.APS_HOME}/config.properties" overwrite="true"/>
	<copy file="${basedir}/config/ee-config.properties" tofile="${env.APS_HOME}/eeconfig/ee-config.properties" overwrite="true"/>
	<antcall target="create-ee-passwordfile"/>
	<antcall target="ee"/>
	<antcall target="all"/>
        <antcall target="restore-config-pe"/>
        <antcall target="restore-config-ee"/>
    </target>

    <target name="backup-config-pe" depends="replace-password-with-passwordfile">
	<copy file="${env.APS_HOME}/config.properties" tofile="${env.APS_HOME}/config.properties.bak" overwrite="true"/>
    </target>

    <target name="restore-config-pe" depends="undo-replace-password-with-passwordfile">
	<copy file="${env.APS_HOME}/config.properties.bak" tofile="${env.APS_HOME}/config.properties" overwrite="true"/>
    </target>
		
    <target name="backup-config-ee">
	<copy file="${env.APS_HOME}/eeconfig/ee-config.properties" tofile="${env.APS_HOME}/eeconfig/ee-config.properties.bak" overwrite="true"/>
    </target>

    <target name="restore-config-ee">
	<copy file="${env.APS_HOME}/eeconfig/ee-config.properties.bak" tofile="${env.APS_HOME}/eeconfig/ee-config.properties" overwrite="true"/>
    </target>
    
    <target name="create-pe-passwordfile">
	<property file="${env.APS_HOME}/config.properties"/>
	<echo message="AS_ADMIN_PASSWORD=${admin.password}${line.separator}" file="${env.APS_HOME}/devtests/connector/config/password.txt"/>
    </target>

    <target name="create-ee-passwordfile">
	<property file="${env.APS_HOME}/config.properties"/>
	<echo message="AS_ADMIN_PASSWORD=${admin.password}${line.separator}" file="${env.APS_HOME}/devtests/connector/config/password.txt"/>
	<echo message="AS_ADMIN_MASTERPASSWORD=${master.password}${line.separator}" file="${env.APS_HOME}/devtests/connector/config/password.txt" append="true"/>
    </target>
    
    <target name="replace-password-with-passwordfile">
	<replace dir="${env.APS_HOME}/config/">
           <include name="**/*.xml"/>
	   <replacetoken>--password ${admin.password}</replacetoken>
	   <replacevalue>--passwordfile ${env.APS_HOME}/devtests/connector/config/password.txt</replacevalue>
	</replace>
    </target>

    <target name="undo-replace-password-with-passwordfile">
	<replace dir="${env.APS_HOME}/config/">
           <include name="**/*.xml"/>
	   <replacetoken>--passwordfile ${env.APS_HOME}/devtests/connector/config/password.txt</replacetoken>
	   <replacevalue>--password ${admin.password}</replacevalue>
	</replace>
    </target>
	
    <target name="run-test">
        <antcall target="connector">
        <param name="connector-target" value="run-test"/>
        </antcall>
    </target>

    <target name="all">
        <antcall target="connector">
        <param name="connector-target" value="all"/>
        </antcall>
    </target>

    <target name="clean">
        <delete file="${env.APS_HOME}/../v2-tests/appserv-tests/test_results.xml"/>
        <delete file="${env.APS_HOME}/../v2-tests/appserv-tests/test_resultsValid.xml"/>
        <delete file="${env.APS_HOME}/../v2-tests/appserv-tests/test_results.html"/>
        <antcall target="connector">
        <param name="connector-target" value="clean"/>
        </antcall>
    </target>

    <target name="build">
        <antcall target="connector">
        <param name="connector-target" value="build"/>
        </antcall>
    </target>

    <target name="setup">
        <antcall target="connector">
        <param name="connector-target" value="setup"/>
        </antcall>
    </target>

    <target name="deploy">
        <antcall target="connector">
        <param name="connector-target" value="deploy"/>
        </antcall>
    </target>

    <target name="undeploy">
        <antcall target="connector">
        <param name="connector-target" value="undeploy"/>
        </antcall>
    </target>

    <target name="unsetup">
        <antcall target="connector">
        <param name="connector-target" value="unsetup"/>
        </antcall>
    </target>

    <target name="run">
        <antcall target="connector">
        <param name="connector-target" value="run"/>
        </antcall>
    </target>

    <target name="connector">
        <record name="connector.output" action="start" />
		<echo message="@@## connector1.5 ##@@"/>
            <ant dir="connector1.5" target="${connector-target}"/>
		<echo message="@@## embeddedConnector1.5 ##@@"/>
            <ant dir="embeddedConnector1.5" target="${connector-target}"/>
		<echo message="@@## embeddedweb ##@@"/>
            <ant dir="embeddedweb" target="${connector-target}"/>
                <echo message="@@## mq ##@@"/>
            <ant dir="mq" target="${connector-target}"/>
     	        <echo message="@@## nonacc ##@@"/>
            <ant dir="nonacc" target="${connector-target}"/>
<!--	    Commented out the defaultConnectorResource test because we  cannot 
add a non-XA Resource [a database connection in this case] to a global JTS transaction containing
a XA resource, [a JMS resource in this case]. This test was passing due to a 
JTS bug, that allowed a non-XA resource enlistment after a XA-Resource enlistment in 
a global transaction!
	    <ant dir="defaultConnectorResource" target="${connector-target}"/>
-->
            <!-- running web2connector twice -->
		<echo message="@@## web2connector ##@@"/>
	    <ant dir="web2connector" target="${connector-target}" />
		<echo message="@@## web2connector (second time) ##@@"/>
            <ant dir="web2connector" target="${connector-target}" />
        <!-- this test is disabled because of dependency on point base database jar which is not available -->
		<!--echo message="@@## redeployRar ##@@"/>
            <ant dir="redeployRar" target="${connector-target}" /-->
		<echo message="@@## nonstringmcfproperties ##@@"/>
            <ant dir="nonstringmcfproperties" target="${connector-target}" />
		<echo message="@@## nonstringraproperties ##@@"/>
            <ant dir="nonstringraproperties" target="${connector-target}" />
		<echo message="@@## txlevelswitch ##@@"/>
            <ant dir="txlevelswitch" target="${connector-target}" />
		<echo message="@@## threadpool ##@@"/>
            <ant dir="threadpool" target="${connector-target}" />
        <record name="connector.output" action="stop" />
    </target>

    <target name="usage">
	<echo> Usage:
		ant connector1.5 (Executes the connector1.5 tests)
		ant embdeddedWeb (Executes embeddedWeb tests)
		ant mq (Executes the mq tests)
		ant nonacc (Executes the nonacc test)
		ant all (Executes all the connector tests)
		ant clean (cleans all the connector tests)
		ant build (builds all the connector tests)
		ant setup (sets up all resources for connector tests)
		ant deploy (deploys all the connector apps)
		ant run (Executes all the connector tests)
		ant undeploy (undeploys all the  connector apps)
		ant unsetup (unsets all resources for connector tests)
	</echo>
    </target>

    <target name="oracle">
      <property name="oracle" value="true"/>
    </target>

    <target name="report">
      <exec executable="sh">
        <arg value="./resultCount.sh"/>
      </exec>
        <antcall target="transfer"/>
    </target>

    <target name="transfer">
        <xslt style="${stylesheet}"
              in="${xmlfile}" out="${htmlfile}"
              basedir="." destdir="." />
    </target>
</project>
