<?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>
