<?xml version="1.0"?>
<!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 "file:./../../../config/properties.xml">
<!ENTITY commonBuild SYSTEM "file:./../../../config/common.xml">
<!ENTITY commonRun SYSTEM "file:./../../../config/run.xml">
<!ENTITY testProperties SYSTEM "./build.properties">
<!ENTITY commonSecurity SYSTEM "file:./../common.xml">
]>


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

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

    <target name="all" depends="build, setup, deploy,run, undeploy, unsetup"/>

    <target name="setup" depends="init-common">
        <!-- create auth realms -->
        <antcall target="create-auth-filerealm">
            <param name="file.realm.name" value="file2"/>
            <param name="keyfile.path" value="${admin.domain.dir}/${admin.domain}/config/keyfile2"/>
        </antcall>
       <!-- <antcall target="reconfig-common"/>-->

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

    <target name="unsetup" depends="init-common">
        <antcall target="delete-user-common">
            <param name="user" value="harpreet"/>
            <param name="authrealmname" value="file2"/>
        </antcall>

        <antcall target="asadmin-common">
            <param name="admin.command" value="delete-auth-realm" />
            <param name="operand.props" value="file2"/>
        </antcall>

     <!--   <antcall target="reconfig-common"/>-->
    </target>

    <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="shopping"/>
        </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">
        <antcall target="runpwd"/>
        <antcall target="runpwdfile"/>
    </target>

    <target name="runpwd" depends="init-common">
      <exec executable="${APPCLIENT}">
        <arg line="-client" />
        <arg line="${assemble.dir}/${appname}AppClient.jar"/>
        <arg line="-textauth" />
        <arg line="-user harpreet" />
        <arg line="-password harpreet" />
      </exec>
    </target>

    <target name="runpwdfile" depends="init-common">
      <exec executable="${APPCLIENT}">
        <arg line="-client" />
        <arg line="${assemble.dir}/${appname}AppClient.jar"/>
        <arg line="-textauth" />
        <arg line="-user harpreet" />
        <arg line="-passwordfile pwdfile" />
      </exec>
    </target>

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