<?xml version="1.0" encoding="ISO-8859-1"?>
<!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 commonSecurity SYSTEM "file:../common.xml">
<!ENTITY testproperties SYSTEM "file:./build.properties">
]>

<project name="security-multimapping" default="usage" basedir=".">

  &commonSetup;
  &commonBuild;
  &testproperties;
  &commonSecurity;

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

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

  <target name="setup" depends="init-common">
    <antcall target="create-user-common">
      <param name="user" value="webuser"/>
      <param name="password" value="ww"/>
      <param name="groups" value="webusers"/>
    </antcall>
    <antcall target="create-user-common">
      <param name="user" value="bobby"/>
      <param name="password" value="bb"/>
      <param name="groups" value="dummygroup"/>
    </antcall>
  <!--  <antcall target="reconfig-common"/>-->
  </target>

  <target name="unsetup" depends="init-common">
    <antcall target="delete-user-common">
      <param name="user" value="webuser"/>
    </antcall>
    <antcall target="delete-user-common">
      <param name="user" value="bobby"/>
    </antcall>
  </target>

  <target name="compile" depends="clean">
    <antcall target="compile-common">
      <param name="src" value="ejb"/>
      <param name="build.classes.dir" value="${build.classes.dir}/nonweb"/>
    </antcall>
    <antcall target="compile-common">
      <param name="src" value="web"/>
      <param name="build.classes.dir" value="${build.classes.dir}/web"/>
      <!-- overriding classpath to include classes from ejb module-->
      <param name="s1astest.classpath"
             value="${s1astest.classpath}:${build.classes.dir}/nonweb"/>
    </antcall>
    <!-- Am leaving in the commented appclient fragments to add
      an appclient test later. -->
    <!--
        <antcall target="compile-common">
            <param name="src" value="client"/>
            <param name="build.classes.dir" value="${build.classes.dir}/nonweb"/>
        </antcall>
        -->
  </target>

  <target name="build" depends="compile">
    <mkdir dir="${assemble.dir}"/>
    <mkdir dir="${build.classes.dir}/META-INF"/>

    <antcall target="package-ejbjar-common">
      <param name="ejbjar.files" value="${build.classes.dir}/nonweb"/>
      <param name="ejb.jar" value="${assemble.dir}/${appname}-ejb.jar"/>
      <param name="ejbjar.classes" value="com/sun/**/ejb/*.class"/>
      <param name="sun-ejb-jar.xml" value="${sun-ejb-jar.xml}"/>
    </antcall>
    <antcall target="package-war-common">
      <param name="war.classes" value="${build.classes.dir}/web"/>
      <param name="war.file" value="${assemble.dir}/${appname}-web.war"/>
      <param name="sun-web.xml" value="descriptor/sun-web.xml"/>
    </antcall>

    <!--
    <antcall target="package-appclientjar-common">
      <param name="appclientjar.files" value="${build.classes.dir}/nonweb"/>
      <param name="appclient.jar"
             value="${assemble.dir}/${appname}-client.jar"/>
      <param name="appclientjar.classes"
             value="com/sun/**/client/*.class,com/sun/**/ejb/Hello.class"/>
    </antcall>
    -->

    <copy file="${application.xml}" tofile="${build.classes.dir}/META-INF/application.xml" failonerror="false"/>
    <copy file="${sun-application.xml}" tofile="${build.classes.dir}/META-INF/sun-application.xml" failonerror="false"/>
    <jar jarfile="${assemble.dir}/${appname}App.ear">
      <fileset dir="${assemble.dir}">
        <include name="*.jar"/>
        <include name="*.war"/>
      </fileset>
      <fileset dir="${build.classes.dir}">
        <include name="META-INF/application.xml"/>
        <include name="META-INF/sun-application.xml"/>
      </fileset>
      <fileset dir="${env.APS_HOME}/lib" includes="reporter.jar"/>
    </jar>

    <copy file="${sun-application.xml}" tofile="${build.classes.dir}/META-INF/sun-application.xml" failonerror="false"/>
    <jar jarfile="${assemble.dir}/${appname}App.ear">
      <fileset dir="${assemble.dir}">
        <include name="*.jar"/>
        <include name="*.war"/>
      </fileset>
      <fileset dir="${build.classes.dir}">
        <include name="META-INF/sun-application.xml"/>
      </fileset>
    </jar>
  </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"/>
      <arg line="javaee"/>
      <arg line="-password"/>
      <arg line="javaee"/>
      <arg line="${http.host} ${http.port}"/>
    </exec>
    -->
    <antcall target="runweb">
      <param name="servlet" value="web"/>
      <param name="webuser" value="webuser"/>
      <param name="webpassword" value="ww"/>
      <param name="httpMethod" value="GET"/>
      <param name="goldenfile" value="goldenfiles/web.html"/>
      <param name="testcaseid" value="user-auth-webrole"/>
    </antcall>
    <antcall target="runweb">
      <param name="servlet" value="ejb"/>
      <param name="webuser" value="bobby"/>
      <param name="webpassword" value="bb"/>
      <param name="httpMethod" value="GET"/>
      <param name="goldenfile" value="goldenfiles/ejb.html"/>
      <param name="testcaseid" value="user-auth-ejbrole"/>
    </antcall>
  </target>

  <target name="runweb" depends="init-common">
    <taskdef name="webtest" classname="${webtest.classname}"
             classpath="${webtest.classpath}" />
    <webtest request="${httpMethod} /security-multimapping/${servlet} HTTP/1.0"
             debug="9"
             host="${http.host}"
             port="${http.port}"
             authMethod="BASIC"
             userName="${webuser}"
             password="${webpassword}"
             firstTask="true"
             lastTest="true"
             lastCase="true"
             lastTask="true"
             resultFileName="${webtest.report.dir}/security-gtest-results.xml"
             testSession="security-multimapping"
             requestHeaders="Host:${http.host}:${http.port}"
             goldenFile="${env.APS_HOME}/devtests/security/simpleMultiRoleMapping/${goldenfile}"
             testSuiteId="security-multimapping"
             testSuiteName="security-multimapping"
             testSuiteDescription="Security Test"
             testId="security-multimapping"
             testName="security-multimapping"
             testDescription="Testing role mapping: ${testcaseid}"
             testCaseId="${testcaseid}"
             testCaseName="${testcaseid}"
             testCaseDescription="Testing role mapping"
             testStrategy="Testing role mapping"/>
  </target>

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

  <target name="usage">
    <antcall target="usage-common"/>
  </target>
</project>
