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

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

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

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

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

    <target name="setup" depends="deploy-wsdls, 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 -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="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">
      <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="undeploy" depends="init-common">
        <antcall target="undeploy-war-common"/>
        <antcall target="undeploy-wsdls"/>
    </target>

    <target name="runtest">
      <antcall target="run-client">
        <param name="client-class" value="client.Client"/>
        <param name="other-args" value="war-service-pointing-to-external-wsdl"/>
      </antcall>
    </target>

    <target name="deploy-wsdls" depends="init-common">
      <property name="wsdl.war" value="${assemble.dir}/wsdl.war"/>
      <mkdir dir="${assemble.dir}"/>
      <war destfile="${wsdl.war}" webxml="host-web.xml">
        <fileset dir="." includes="*.wsdl, *.xsd"/>
      </war>
      <echo message="Deploying ${wsdl.war} from ${basedir}." level="verbose"/>
      <exec executable="${ASADMIN}">
        <arg line="deploy"/>
        <arg line="--user ${admin.user}"/>
        <arg line="--passwordfile ${admin.password.file}"/>
        <arg line="--host ${admin.host}"/>
        <arg line="--port ${admin.port}"/>
        <arg line="${wsdl.war}"/>
      </exec>
    </target>

    <target name="undeploy-wsdls" depends="init-common">
      <exec executable="${ASADMIN}">
        <arg line="undeploy"/>
        <arg line="--user ${admin.user}"/>
        <arg line="--passwordfile ${admin.password.file}"/>
        <arg line="--host ${admin.host}"/>
        <arg line="--port ${admin.port}"/>
        <arg line="wsdl"/>
      </exec>
    </target>

</project>

