<?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="user-with-at-symbol" basedir="." default="usage">

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

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

    <target name="setup" depends="init-common">
        <property environment="env"/>
        <echo message="file=${env.S1AS_HOME}/domains/domain1/config/keyfile2" file="temp.txt"/>
        <replace file="temp.txt" token=":" value="\:"/>
        <replace file="temp.txt" token="\" value="\\"/>
        <loadproperties srcFile="temp.txt"/>
        <echo message="${file}"/>
        <delete file="temp.txt"/>

        <antcall target="asadmin-common">
            <param name="admin.command" value="create-auth-realm" />
            <param name="operand.props" value="--classname com.sun.enterprise.security.auth.realm.file.FileRealm --property file=${file}:jaas-context=fileRealm file2"/>
        </antcall>
      <!--  <antcall target="reconfig-common"/>-->

        <echo message="Creating user with an @ symbol: harpreet@foobar.com"/>
        <antcall target="create-user-common">
            <param name="user" value="harpreet@foobar.com"/>
            <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@foobar.com"/>
            <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">
      <exec executable="${APPCLIENT}">
        <arg line="-client" />
        <arg line="${assemble.dir}/${appname}AppClient.jar"/>
        <arg line="-textauth" />
        <arg line="-user harpreet@foobar.com" />
        <arg line="-password harpreet" />
      </exec>
    </target>

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