<!--

    Copyright (c) 2010, 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="app-scoped-resources 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">
        <antcall target="enable-monitoring"/>
        <antcall target="init-common"/>
        <antcall target="build"/>
        <antcall target="setup-map"/>
        <antcall target="setup"/>
        <antcall target="runtest"/>
        <antcall target="disable-app"/>
        <antcall target="enable-app"/>
        <antcall target="runtest"/>
        <antcall target="unset-map"/>
        <antcall target="unset"/>
        <antcall target="disable-monitoring"/>
    </target>

    <target name="build" depends="init-common">
        <ant dir="ra" target="all"/>
        <ant dir="app" target="all"/>
    </target>

    <target name="disable-app" depends="init-common">
       <antcall target="asadmin-common">
            <param name="admin.command" value="set"/>
            <param name="operand.props"
                   value="applications.application.app-scoped-resourcesApp.enabled=false"/>
        </antcall>
    </target>

    <target name="enable-monitoring" depends="init-common">
        <antcall target="asadmin-common">
            <param name="admin.command" value="set"/>
            <param name="operand.props"
                   value="server.monitoring-service.module-monitoring-levels.jdbc-connection-pool=HIGH"/>
        </antcall>
        <antcall target="asadmin-common">
            <param name="admin.command" value="set"/>
            <param name="operand.props"
                   value="server.monitoring-service.module-monitoring-levels.connector-connection-pool=HIGH"/>
        </antcall>
    </target>

    <target name="disable-monitoring" depends="init-common">
        <antcall target="asadmin-common">
            <param name="admin.command" value="set"/>
            <param name="operand.props"
                   value="server.monitoring-service.module-monitoring-levels.jdbc-connection-pool=OFF"/>
        </antcall>
        <antcall target="asadmin-common">
            <param name="admin.command" value="set"/>
            <param name="operand.props"
                   value="server.monitoring-service.module-monitoring-levels.connector-connection-pool=OFF"/>
        </antcall>
    </target>

    <target name="enable-app" depends="init-common">
        <antcall target="asadmin-common">
            <param name="admin.command" value="set"/>
            <param name="operand.props"
                   value="applications.application.app-scoped-resourcesApp.enabled=true"/>
        </antcall>
    </target>

    <target name="enable-app-ref" depends="init-common">
        <antcall target="asadmin-common">
            <param name="admin.command" value="set"/>
            <param name="operand.props"
                   value="server.application-ref.app-scoped-resourcesApp.enabled=true"/>
        </antcall>
    </target>

    <target name="disable-app-ref" depends="init-common">
       <antcall target="asadmin-common">
            <param name="admin.command" value="set"/>
            <param name="operand.props"
                   value="server.application-ref.app-scoped-resourcesApp.enabled=false"/>
        </antcall>
    </target>


    <target name="setup">
        <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="guest"/>
            <param name="password" value="guest"/>
            <param name="groups" value="employee"/>
        </antcall>
    </target>

    <target name="deploy">
        <ant dir="ra" inheritAll="false" target="deploy"/>
        <ant dir="app" inheritAll="false" target="deploy-ear"/>
    </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="prasath"/>
        </antcall>
        <antcall target="delete-user-common">
            <param name="user" value="jr158900"/>
        </antcall>

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

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

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

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


    <target name="unset-map">
        <!-- 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>
</project>
