<?xml version="1.0" ?>
<!--

    Copyright (c) 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

-->

<!--  ======================================================================= -->
<!--  AdminGUI Test build file                                            -->
<!--  ======================================================================= -->
<!DOCTYPE project [
<!ENTITY commonSetup SYSTEM "file:./../../config/properties.xml">
<!ENTITY commonBuild SYSTEM "file:./../../config/common.xml">
]>
<project name="AdminGUITest" default="all" basedir=".">
    &commonSetup;
    &commonBuild;
    <property name="src.dir" value="src" />
    <property environment="env" />
    <!-- Comment this line i.e. only config.properties if you want to run standalone -->
    <property file="./../../config.properties" />
    <property name="jars.dir" value="../../lib" />

    <property name="classes.dir" value="classes" />
    <property name="test.class" value="AdminGUITest" />
    <!-- uncomment this, when you want to run standalone 
    <property file="./build.properties" />
    -->
    <property name="classpath" value="" />

<!-- =================================================================== -->
<!-- Defines the classpath used for compilation and test.                -->
<!-- =================================================================== -->
<path id="base.classpath">
    <fileset dir="${jars.dir}">
        <include name="*.jar"/>
        <!--<include name="${env.S1AS_HOME}/lib/j2ee.jar"/>-->
        <!--<include name="${env.S1AS_HOME}/lib/xercesImpl.jar"/>-->
    </fileset>
    <fileset dir="${env.S1AS_HOME}/lib/">
        <include name="appserv-admin.jar"/>
        <include name="appserv-rt.jar"/>
    </fileset>
    <pathelement location="${classpath}" />
</path>


<!--  ===================================================================  -->
<!--  Compiles the source code                                             -->
<!--  ===================================================================  -->
<target name="compile" depends="init-common">
    <mkdir dir="${build.classes.dir}" />
    <javac srcdir="${src.dir}" destdir="${build.classes.dir}"
           debug="on" deprecation="off" optimize="off">
         <classpath>
             <path refid="base.classpath" />
	 </classpath>
    </javac>
</target>

<target name="setup">
</target>

<target name="deploy">
</target>
<target name="undeploy">
</target>
<target name="unsetup">
</target>
<!--  ===================================================================  -->
<!--  Runs the test code                                                   -->
<!--  ===================================================================  -->
<target name="all" depends="run-test"/>


<target name="run-test" depends="compile, get-version-common, init-common">
<!-- Not needed anymore, JSSE.java is doing this
	<antcall target="get-certdb-to-jks" />
	-->
    <java classname="${test.class}" fork="yes" >
    	 <sysproperty key="ADMIN_HOST" value="${admin.host}" />
    	 <sysproperty key="ADMIN_PORT" value="${admin.port}" />
    	 <sysproperty key="ADMIN_PASSWORD" value="${admin.password}" />
    	 <sysproperty key="ADMIN_USER" value="${admin.user}" />
  	 <!--
       	 <sysproperty key="IS_EE" value="pe" />
    	 <sysproperty key="javax.net.ssl.trustStore" value="./certdb.jks" />
    	 <sysproperty key="javax.net.ssl.trustStorePassword" value="${ssl.password}" />
	 -->
         <classpath>
             <path refid="base.classpath" />
             <pathelement location="${build.classes.dir}" />
             <pathelement location="${classpath}" />
             <pathelement location="${env.APS_HOME}/lib/reporter.jar" />
         </classpath>
    </java>
</target>

<!--  ===================================================================  -->
<!--  Generate truststore for ee                                                   -->
<!--  ===================================================================  -->
<target name="import-cert-jks" >
	<echo message="Installing certificate in ${keystore.file} ..."/>
	<exec executable="${env.JAVA_HOME}/bin/keytool">
        <arg value="-import"/>
        <arg value="-noprompt"/>
        <arg value="-trustcacerts"/>
        <arg value="-keystore"/>
        <arg value="${keystore.file}"/>
        <arg value="-storepass"/>
        <arg value="changeit"/>
        <arg value="-alias"/>
        <arg value="${cert.alias}"/>
        <arg value="-file"/>
        <arg value="${cert.file}"/>
      </exec>
</target>

<!-- Get certificate from NSS db to JKS format -->
<target name="get-certdb-to-jks" if="ee">
	<echo message="Installing certificate in ${ee} ..."/>
      <exec executable="${env.S1AS_HOME}/lib/certutil" output="./certdb.rfc">
        <env key="LD_LIBRARY_PATH" path="${env.S1AS_HOME}/lib"/>
        <arg line="-L -n ${cert.nickname}"/>
        <arg line="-d ${admin.domain.dir}/${admin.domain}/config -a"/>
      </exec>
      <concat>
    	<filelist dir="." files="certdb.rfc"/>
      </concat>
      <antcall target="import-cert-jks">
         <param name="cert.alias" value="${cert.nickname}"/>
         <param name="keystore.file" value="./certdb.jks"/>
         <param name="cert.file" value="./certdb.rfc"/>
      </antcall>
</target>
<!--  ===================================================================  -->
<!--  Cleans up generated stuff                                            -->
<!--  ===================================================================  -->
<target name="clean">
    <delete dir="${classes.dir}" />
</target>

</project>
