<!--

    Copyright (c) 2002, 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

-->

<!DOCTYPE project [
        <!ENTITY common SYSTEM "../../../../config/common.xml">
        <!ENTITY testcommon SYSTEM "../../../../config/properties.xml">
        <!ENTITY testproperties SYSTEM "./build.properties">
        ]>

<project name="connector1.6 TEST" default="all" basedir=".">
    <property name="j2ee.home" value="../../.."/>
    <property name="client.class" value="client/Client"/>

    <!-- include common.xml and testcommon.xml -->
    &common;
    &testcommon;
    &testproperties;

    <target name="all" depends="init-common, build, setup, runtest, unset"/>
    <target name="all-with-mappings" depends="init-common, build, setup-map, setup, runtest, unset-map, unset"/>
    <target name="run-dp-test" depends="init-common, build, setup-dp, deploy-dp, runtest, unset-dp, undeploy-dp"/>
    <target name="build" depends="init-common">
        <ant dir="ra" target="all"/>
        <ant dir="app" target="all"/>
    </target>


    <target name="setup">

        <antcall target="setup-security-permission"/>

        <ant dir="app" inheritAll="false" target="setupJdbc"/>

        <ant dir="." inheritAll="false" target="deploy"/>
        <antcall target="create-user-common">
            <param name="user" value="jagadish"/>
            <param name="password" value="prasath"/>
            <param name="groups" value="employee"/>
        </antcall>
        <antcall target="create-user-common">
            <param name="user" value="jr158900"/>
            <param name="password" value="jr158900"/>
            <param name="groups" value="iec"/>
        </antcall>
        <antcall target="create-user-common">
            <param name="user" value="prasath"/>
            <param name="password" value="jagadish"/>
            <param name="groups" value="employee"/>
        </antcall>

        <!--      <antcall target="create-user-common">
            <param name="user" value="j2ee"/>
            <param name="password" value="j2ee"/>
            <param name="groups" value="admin"/>
        </antcall>-->

        <antcall target="create-user-common">
            <param name="user" value="guest"/>
            <param name="password" value="guest"/>
            <param name="groups" value="employee"/>
        </antcall>


    </target>

    <target name="setup-dp">
        <ant dir="app" inheritAll="false" target="setupJdbc"/>
    </target>

    <target name="deploy">
        <ant dir="ra" inheritAll="false" target="deploy"/>
<!--        <ant dir="ra" inheritAll="false" target="testAddAdmin"/>-->
        <ant dir="app" inheritAll="false" target="deploy-ear"/>
        <ant dir="." inheritAll="false" target="restart"/>
    </target>

    <target name="deploy-dp">
<!--        <ant dir="ra" inheritAll="false" target="testAddAdmin"/>-->
        <ant dir="app" inheritAll="false" target="deploy-ear"/>
        <ant dir="." inheritAll="false" target="restart"/>
    </target>


    <target name="runtest" 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="app"/>
            </classpath>
        </java>
    </target>

    <target name="unset">
        <ant dir="app" inheritAll="false" target="unsetJdbc"/>
        <ant dir="." inheritAll="false" target="undeploy"/>
        <antcall target="delete-user-common">
            <param name="user" value="jagadish"/>
        </antcall>
        <!--<antcall target="delete-user-common">
            <param name="user" value="j2ee"/>
        </antcall>-->

        <antcall target="delete-user-common">
            <param name="user" value="prasath"/>
        </antcall>
        <antcall target="delete-user-common">
            <param name="user" value="jr158900"/>
        </antcall>

        <antcall target="delete-user-common">
            <param name="user" value="guest"/>
        </antcall>

        <antcall target="restore-default-security-permission"/>

        <ant dir="." inheritAll="false" target="restart"/>
    </target>

    <target name="unset-dp">
        <ant dir="app" inheritAll="false" target="unsetJdbc"/>
<!--        <ant dir="." inheritAll="false" target="restart"/>-->
    </target>

    <target name="undeploy">
        <ant dir="app" inheritAll="false" target="undeploy"/>
<!--        <ant dir="ra" inheritAll="false" target="testDelAdmin"/>-->
        <ant dir="ra" inheritAll="false" target="undeploy"/>
    </target>

    <target name="undeploy-dp">
        <ant dir="app" inheritAll="false" target="undeploy"/>
<!--        <ant dir="ra" inheritAll="false" target="testDelAdmin"/>-->
    </target>

    <target name="restart" depends="init-common">
        <echo message="Not required to restart"/>
    </target>

    <target name="clean">
        <ant dir="ra" inheritAll="false" target="clean"/>
        <ant dir="app" inheritAll="false" target="clean"/>
    </target>

    <target name="setup-map">

        <!-- hack, RAR uses the jvm option to determine the mode of security-work-context-->
        <antcall target="set-jvm-options"/>

    </target>


    <target name="unset-map">

        <!-- hack, RAR uses the jvm option to determine the mode of security-work-context-->
        <antcall target="unset-jvm-options"/>

    </target>


    <target name="set-jvm-options">
        <antcall target="create-jvm-options">
            <param name="option" value="-Dgeneric-ra-principals-map=eis-jagadish=jagadish,eis-prasath=prasath"/>
        </antcall>
        <antcall target="create-jvm-options">
            <param name="option" value="-Dgeneric-ra-groups-map=eis-group=iec"/>
        </antcall>
<!--        <antcall target="restart-server"/>-->

    </target>


    <target name="unset-jvm-options">
        <antcall target="delete-jvm-options">
            <param name="option" value="-Dgeneric-ra-principals-map=eis-jagadish=jagadish,eis-prasath=prasath"/>
        </antcall>
        <antcall target="delete-jvm-options">
            <param name="option" value="-Dgeneric-ra-groups-map=eis-group=iec"/>
        </antcall>
<!--        <antcall target="restart-server"/>-->
    </target>


    <target name="create-connector-work-security-groups-map-common" depends="init-common">
        <exec executable="${ASADMIN}" failonerror="false">
            <arg line="create-connector-work-security-map"/>
            <arg line="${as.props}"/>
            <arg line="--raname ${raname}"/>
            <arg line="${groupsmap}"/>
            <arg line="${map.name}"/>
        </exec>
    </target>

    <target name="create-connector-work-security-principals-map-common" depends="init-common">
        <exec executable="${ASADMIN}" failonerror="false">
            <arg line="create-connector-work-security-map"/>
            <arg line="${as.props}"/>
            <arg line="--raname ${raname}"/>
            <arg line="${principalsmap}"/>
            <arg line="${map.name}"/>
        </exec>
    </target>


    <target name="delete-connector-work-security-map-common" depends="init-common">
        <exec executable="${ASADMIN}" failonerror="false">
            <arg line="delete-connector-work-security-map"/>
            <arg line="${as.props}"/>
            <arg line="--raname ${raname}"/>
            <arg line="${map.name}"/>
        </exec>
    </target>


    <target name="setup-security-permission">
        <antcall target="stop-server"/>
        <echo message="taking backup of server.policy file"/>
        <copy description="backup server.policy file" file="${admin.domain.dir}/${admin.domain}/config/server.policy"
              tofile="${admin.domain.dir}/${admin.domain}/config/server.policy.bkp"/>
        <concat destfile="${admin.domain.dir}/${admin.domain}/config/server.policy" append="true">
            <filelist dir="." files="server.policy"/>
        </concat>
        <echo message="updated server.policy file with necessary security permissions"/>
        <antcall target="start-server"/>
    </target>

    <target name="restore-default-security-permission">
        <antcall target="stop-server"/>
        <move description="restore server.policy file"
              file="${admin.domain.dir}/${admin.domain}/config/server.policy.bkp"
              tofile="${admin.domain.dir}/${admin.domain}/config/server.policy"/>
        <echo message="restored original server.policy file"/>
        <antcall target="start-server"/>
    </target>

</project>
