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

    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

-->

<!DOCTYPE project [
<!ENTITY commonBuild SYSTEM "file:./../annotations-common.xml">
]>

<project name="Hello" default="core" basedir=".">


    &commonBuild;
    <property name="src-name" value="endpoint/WebServiceEJB.java"/>
  <property name="client-src-name" value="client/Client.java"/>

  <target name="all" depends="clean, deploy, private-run, private-undeploy, report"/>


  <target name="private-undeploy">
    <antcall target="autoundeploy-file">
      <param name="filename" value="EjbClient.jar"/>
    </antcall>
    <antcall target="autoundeploy-file">
      <param name="filename" value="WebServiceEJB.jar"/>
    </antcall>
  </target>


  <target name="private-run">
    <antcall target="clean"/>
    <echo message="wsimporting http://${http.host}:${http.port}/WebServiceEJBService/WebServiceEJB?WSDL" />
    <replace file="custom-client.xml" value="${http.host}" token="HTTP_HOST" />
    <replace file="custom-client.xml" value="${http.port}" token="HTTP_PORT" />
    <exec executable="${env.S1AS_HOME}/bin/wsimport">
      <arg line="-keep -b custom-client.xml -d ${env.APS_HOME}/build/module/classes http://${http.host}:${http.port}/WebServiceEJBService/WebServiceEJB?WSDL" />
    </exec>
    <javac srcdir="." destdir="${env.APS_HOME}/build/module/classes" includes="ejb/HelloEJB.java">
      <classpath refid="classpath"/>
    </javac>
    <jar destfile="${env.S1AS_HOME}/domains/domain1/autodeploy/EjbClient.jar"
            basedir="${env.APS_HOME}/build/module/classes"
            includes="ejb/**,endpoint/**"/>
    <waitfor maxwait="100" maxwaitunit="second">
      <or>
        <available file="${env.S1AS_HOME}/domains/domain1/autodeploy/EjbClient.jar_deployed"/>
        <available file="${env.S1AS_HOME}/domains/domain1/autodeploy/EjbClient.jar_deployFailed"/>
      </or>
    </waitfor>
    <condition property="deploy_succeeded">
      <available file="${env.S1AS_HOME}/domains/domain1/autodeploy/EjbClient.jar_deployed"/>
    </condition>
    <condition property="deploy_failed">
      <available file="${env.S1AS_HOME}/domains/domain1/autodeploy/EjbClient.jar_deployFailed"/>
    </condition>
    <fail if="deploy_failed" message="Deployment failed"/>
    <basename file="${client-src-name}" property="client" suffix=".java"/>
    <dirname file="${client-src-name}" property="client-directory"/>
    <basename file="${client-directory}" property="client-pkg-name"/>
    <property name="client-class-name" value="${client-pkg-name}/${client}.class"/>
    <antcall target="compile-client"/>
    <echo message="Running appclient with ${client-pkg-name}.${client}"/>
    <unjar src="${env.APS_HOME}/lib/reporter.jar" dest="${env.APS_HOME}/build/module/classes"/>
    <exec executable="${env.S1AS_HOME}/bin/appclient" dir="${env.APS_HOME}/build/module/classes">
      <arg value="-Dorg.omg.CORBA.ORBInitialPort=${orb.port}"/>
      <arg value="${client-pkg-name}.${client}"/>
    </exec>

    <!--restore the tokens back in file-->
    <replace file="custom-client.xml" token="${http.host}" value="HTTP_HOST"/>
    <replace file="custom-client.xml" token="${http.port}" value="HTTP_PORT"/>
  </target>

  <target name="report-success">
    <echo message="Test PASSED"/>
  </target>

  <target name="report-failure">
    <echo message="Test FAILED"/>
  </target>

</project>
