<?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="standalone-loginctxdriver" basedir="." default="usage">

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

    <target name="usage">
        <echo>
                Usage:
                        ant all (Executes standalone login context driver tests)
        </echo>
    </target>

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

    <target name="clean" depends="init-common">
      <antcall target="clean-common"/>
    </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">
        <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="run-standalone-client"/>
    </target>

    <target name="echo" depends="init-common">
        <echo message="as.props = ${as.props}"/>
    </target>

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

    <target name="setup" depends="init-common">
        <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="testy"/>
            <param name="password" value="testy"/>
            <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="testy"/>
            <param name="authrealmname" value="file2"/>
        </antcall>
    </target>

    <target name="run-standalone-client" depends="init-common">
      <echo message="Running standalone client ..."/>

      <java classname="LoginContextDriverTest"
        classpath="${admin.domain.dir}/../lib/appserv-rt.jar:${s1astest.classpath}:${assemble.dir}/${appname}AppClient.jar" fork="true">
        <jvmarg value="-Djava.security.auth.login.config=${admin.domain.dir}/../lib/appclient/appclientlogin.conf"/>
        <jvmarg value="-Dorg.omg.CORBA.ORBInitialHost=${admin.host}"/>
        <jvmarg value="-Dorg.omg.CORBA.ORBInitialPort=${orb.port}"/>

        <jvmarg value="-Dj2eelogin.name=testy"/>
        <jvmarg value="-Dj2eelogin.password=testy"/>
      </java>
    </target>


</project>
