<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE project [
<!--

    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

-->

<!ENTITY commonSetup SYSTEM "file:./../../../config/properties.xml">
<!ENTITY commonBuild SYSTEM "file:./../../../config/common.xml">
<!ENTITY testproperties SYSTEM "file:./build.properties">
]>
<project name="jaxrApp" default="usage" basedir=".">

    &commonSetup;
    &commonBuild;
    &testproperties;

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

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

    <target name="compile" depends="clean">
        <antcall target="compile-common">
            <param name="src" value="jaxr"/>
        </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="setup" depends="init-common">
        <antcall target="deploy-rar"/>
    </target>

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

    <target name="deploy-rar" depends="init-common">
        <antcall target="deploy-rar-common">
            <param name="rarfile" value="${rarfile}"/>
        </antcall>
    </target>

    <target name="undeploy-rar" depends="init-common">
        <antcall target="undeploy-rar-common">
            <param name="undeployrar" value="${rarname}"/>
        </antcall>
    </target>

    <target name="deploy" depends="init-common">
<exec executable="${ASADMIN}" failonerror="false">
    <arg line="deploy"/>
    <arg line="--user ${admin.user}"/>
    <arg line="--password ${admin.password}"/>
    <arg line="--host ${admin.host}"/>
    <arg line="--port ${admin.port}"/>
    <arg line="--target ${appserver.instance.name}"/>
    <arg line="--type ${apptype}"/>
    <arg line="--generatermistubs=true"/>
    <arg line="--retrieve ${assemble.dir}"/>
<!-- deployed.app defaults to ${assemble.dir}/${appname}App.ear defined in properties.xml-->
    <arg line="${assemble.dir}/jaxrraApp.ear"/>
  </exec>
  <echo message="Deployment on target server ${appserver.instance.name}
successful"/>
   </target>

<!-- <antcall target="deploy-common">
         <param name="generate.stubs" value="true"/>
    </antcall>
    </target>
    -->
    <target name="run" depends="init-common">
   <!--     <antcall target="runclient-common"/> -->
        <antcall target="run-standalone-client"/>
    </target>

    <!-- =============================================== -->
    <!-- Target to run the standalone client without ACC -->
    <!-- =============================================== -->
    <target name="run-standalone-client" depends="init-common">
           <property name="jndi.name" value="jaxrra"/>
        <property name="provider.url" value="iiop://${admin.host}:${orb.port}"/>
<!--
        <property name="ctxfactory"
            value="com.sun.enterprise.naming.SerialInitContextFactory"/>
-->
      <property name="ctxfactory"
                value="org.glassfish.jndi.cosnaming.CNCtxFactory"/>
      <echo message="provider.url used is ${provider.url}"/>
      <java classname="${test.client}"
        classpath="${s1astest.classpath}:${assemble.dir}/${appname}AppClient.jar"
        failonerror="true" fork="true">
        <arg value="${provider.url}"/>
        <arg value="${ctxfactory}"/>
        <arg value="${jndi.name}"/>
        <jvmarg value="-Djavax.rmi.CORBA.UtilClass=com.sun.corba.ee.impl.javax.rmi.CORBA.Util"/>
        <jvmarg value="-Dorg.omg.CORBA.ORBClass=com.sun.corba.ee.impl.orb.ORBImpl"/>
        <jvmarg value="-Dorg.omg.CORBA.ORBSingletonClass=com.sun.corba.ee.impl.orb.ORBSingleton"/>
      </java>
    </target>

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

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