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


<project name="container-auth" basedir="." default="usage">

   &commonSetup;
   &commonBuild;
   &commonRun;
   &testProperties;
    
    <target name="all" depends="build, run"/>

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

    <target name="compile" depends="clean">
	<mkdir dir="${build.classes.dir}"/>
  	<echo message="Compiling test source files" level="verbose"/>
     <javac srcdir="jauth"
    	destdir="${build.classes.dir}"
    	classpath="${env.S1AS_HOME}/lib/appserv-rt.jar:${s1astest.classpath}"
    	debug="on"
    	failonerror="true"
	/>
    </target>

    <target name="build" depends="compile">
    </target>

   <target name="run" depends="init-common">
	<antcall target="runaccxml"/>
   </target>
	
    <target name="runaccxml" depends="init-common">
<!--TODO uncomment later-->
    	<java classname="AuthConfigTest" fork="yes">
	<classpath>
		<pathelement path="${env.S1AS_HOME}/lib/appserv-rt.jar:${build.classes.dir}"/> 
		<pathelement path="${env.S1AS_HOME}/lib/appserv-admin.jar"/> 
		<pathelement path="${env.S1AS_HOME}/lib/j2ee.jar"/> 
		<pathelement path="${env.S1AS_HOME}/lib/jmac-api.jar"/> 
		<pathelement path="${env.S1AS_HOME}/lib/dtds"/> 
		<pathelement path="${env.S1AS_HOME}/lib/schemas"/> 
		<pathelement path="${env.APS_HOME}/lib/reporter.jar"/>
	</classpath>
	<arg value="xml-parse" /> 
	<sysproperty key="java.security.debug" value="configfile,configxmlparser"/>
	<sysproperty key="sun-acc.xml.url" value="${env.APS_HOME}/devtests/security/container-auth/testConfig/sun-acc.xml"/>
	<!--<jvmarg value="-Xdebug" />
	<jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8008"/>--> 
	</java> 
    </target>
     <target name="usage">
        <antcall target="usage-common"/>
    </target>
</project>
