<?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 commonSetup SYSTEM "file:./../../../../config/properties.xml">
<!ENTITY commonBuild SYSTEM "file:./../../../../config/common.xml">
<!ENTITY commonRun SYSTEM "file:./../../../../config/run.xml">
<!ENTITY jaxwsTools SYSTEM "file:./../jaxwstools.xml">
<!ENTITY testproperties SYSTEM "file:./build.properties">
]>

<project name="asyncservice" default="all" basedir=".">

    &commonSetup;
    &commonBuild;
    &commonRun;
    &testproperties;
    &jaxwsTools;

    <target name="all" depends="clean, setup, runclient, undeploy"/>

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

    <target name="setup" depends="assemble-web, deploy-app, assemble-client"/>

    <target name="compile" depends="init-common">
      <antcall target="compile-common">
        <param name="src" value="endpoint"/>
      </antcall>
    </target>

    <target name="assemble-web" depends="init-common, compile">
      <antcall target="pkg-war">
        <param name="war.classes" value="${build.classes.dir}"/>
        <param name="war.file" value="${assemble.dir}/${appname}-web.war"/>
       </antcall>
    </target>

    <target name="assemble-client" depends="init-common">
      <mkdir dir="${build.classes.dir}/client"/>
      <echo message="wsimporting http://${http.host}:${http.port}/${appname}/webservice/AsyncService?WSDL"/>
<replace file="custom-client.xml" value="${http.host}" token="HTTP_HOST"/>
      <replace file="custom-client.xml" value="${http.port}" token="HTTP_PORT"/>
      <antcall target="wsimport">
          <param name="wsimport.args"
               value="-keep -b custom-client.xml -d ${build.classes.dir}/client http://${http.host}:${http.port}/${appname}/webservice/AsyncService?WSDL"/>
      </antcall>
      <javac srcdir="." destdir="${build.classes.dir}/client"
          classpath="${env.APS_HOME}/lib/reporter.jar:${env.S1AS_HOME}/lib/javaee.jar:${env.S1AS_HOME}/modules/webservices-osgi.jar"
          includes="client/**"
      />
    </target>

    <target name="deploy-app">
      <antcall target="deploy-war-common">
        <param name="contextroot" value="${appname}"/>
      </antcall>
    </target>

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

    <target name="runclient">
      <antcall target="run-client">
        <param name="client-class" value="client.Client"/>
        <param name="other-args" value="async-web-svc-test"/>
      </antcall>


<!--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>
</project>

