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

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

    <!-- cf config/common.xml -->
    <target name="all" depends="build,deploy,run,undeploy"/>
    <!-- run-test target added to have setup/unsetup commonly -->
    <target name="run-test" depends="build,deploy,run,undeploy"/>

    <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="runclient-local"/> 
         <antcall target="run-standalone-client"/>
    </target>

    <target name="runclient-local" depends="prepare-truststore-common">
      <exec executable="${APPCLIENT}">
        <env key="VMARGS" value=" -Djavax.net.ssl.trustStore=${build.base.dir}/cacerts.jks -Djavax.net.ssl.trustStorePassword=${ssl.password}"/>
        <arg value="-client" />
        <arg value="${assemble.dir}/${appname}AppClient.jar"/>
      </exec>
    </target>
    <target name="undeploy" depends="init-common">
        <antcall target="undeploy-common"/>
    </target>   

  <!-- =============================================== -->
    <!-- Target to run the standalone client without ACC -->
    <!-- =============================================== -->
    <target name="run-standalone-client" depends="prepare-truststore-common">
        <property name="jndi.name" value="SSLconverter"/>
        <property name="provider.url" value="iiop://${admin.host}:${orb.port}"/>
        <property name="ctxfactory"
            value="com.sun.enterprise.naming.SerialInitContextFactory"/>
        <echo message="provider.url used is ${provider.url}"/>
      <java classname="${test.client}"
        classpath="${s1astest.classpath}:${env.S1AS_HOME}/lib/appserv-rt.jar:${assemble.dir}/${appname}AppClient.jar"
        failonerror="true" fork="true">
        <jvmarg value="-Dorg.omg.CORBA.ORBInitialHost=${admin.host}"/>
        <jvmarg value="-Dorg.omg.CORBA.ORBInitialPort=${orb.port}"/>
        <jvmarg value="-Djavax.net.ssl.trustStore=${build.base.dir}/cacerts.jks"/>
        <jvmarg value="-Djavax.net.ssl.trustStorePassword=${ssl.password}"/>
        <arg value="${provider.url}"/>
        <arg value="${ctxfactory}"/>
        <arg value="${jndi.name}"/>
      </java>
    </target>


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