<!--

    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>
