<?xml version="1.0"?>
<!DOCTYPE project [
<!--

    Copyright (c) 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 "file:./../../../../config/properties.xml">
<!ENTITY commonBuild SYSTEM "file:./../../../../config/common.xml">
<!ENTITY commonRun SYSTEM "file:./../../../../config/run.xml">
<!ENTITY testProperties SYSTEM "./build.properties">
]>


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

   &commonSetup;
   &commonBuild;
   &commonRun;
   &testProperties;

    <target name="all" depends="build, setup, deploy,run, undeploy, unsetup"/>
    <!-- assumes that create-users has been called before -->
    <!-- run-test target added to have a separate setup/unsetup commonly -->
    <target name="run-test" depends="build, deploy,run, undeploy"/>

    <target name="clean" depends="init-common">
        <delete dir="${build.classes.dir}"/>
        <delete dir="${assemble.dir}"/>
    </target>

    <target name="compile" depends="clean">
        <antcall target="compile-common">
            <param name="src" value="ejb"/>
        </antcall>
        <antcall target="compile-common">
            <param name="src" value="client"/>
        </antcall>
    </target>

    <target name="build" depends="compile">
<!--    <property name="ejbjar.classes" value="**/*Home*.class,**/*Bean*.class,**/*Data*.class,*.dbschema"/>
-->
        <antcall target="build-ear-common"/>
    </target>

    <target name="deploy" depends="init-common">
        <antcall target="deploy-common"/>
    </target>


    <target name="run" depends="init-common">
      <exec executable="${APPCLIENT}">
        <arg value="-client" />
        <arg value="${assemble.dir}/${appname}AppClient.jar"/>
        <arg value="-xml"/>
        <arg value="${admin.domain.dir}/${admin.domain}/config/glassfish-acc.xml"/>
        <arg value="-textauth"/>
        <arg value="-user"/>
        <arg value="j2ee"/>
        <arg value="-password"/>
        <arg value="j2ee"/>
      </exec>
    </target>

    <target name="undeploy" depends="init-common">
        <antcall target="undeploy-common"/>
    </target>

    <target name="usage">
        <antcall target="usage-common"/>
    </target>
    <!-- setup target for the entire testsuite configuration -->
    <target name="setup">
      <antcall target="create-user"/>
    </target>

    <!-- unsetup target for the entire testsuite configuration -->
    <target name="unsetup">
      <antcall target="delete-user"/>
    </target>

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

    <target name="delete-user">
      <!-- remove test users, just cleanup. -->
      <antcall target="delete-user-common">
        <param name="user" value="j2ee"/>
      </antcall>
    </target>
</project>
