<?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="pkgedwarservice" default="all" basedir=".">

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

    <target name="all" depends="clean, setup, runclient, restart-test, 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="run-wsgen">
      <antcall target="wsgen">
        <param name="wsgen.args"
               value="-wsdl -servicename {http://example.com/Hello}HelloService -portname {http://example.com/Hello}MyPort -cp ${build.classes.dir} -keep -d ${build.classes.dir} endpoint.Hello"/>
      </antcall>
    </target>

    <target name="assemble-web" depends="init-common, compile, run-wsgen">
      <antcall target="pkg-war">
        <param name="schemafile.location" value="${build.classes.dir}"/>
        <param name="schemafile.name" value="HelloService_schema1.xsd"/>
        <param name="wsdlfile.location" value="${build.classes.dir}"/>
        <param name="wsdlfile.name" value="HelloService.wsdl"/>
        <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">
<replace file="client/Client.java" value="${http.host}" token="HTTP_HOST"/>
      <replace file="client/Client.java" value="${http.port}" token="HTTP_PORT"/>
      <antcall target="compile-client">
        <param name="test-wsdl-uri" value="${appname}/webservice/HelloService?WSDL"/>
        <param name="client-src" value="client"/>
      </antcall>
    </target>

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

    <target name="restart-test">
      <antcall target="restart-server-instance-common"/>
      <antcall target="runclient"/>
    </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="war-with-packaged-wsdl-and-schema"/>
      </antcall>

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

