<?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="Hello" default="core" basedir=".">


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

    <property name="src-name" value="endpoint/Hello.java"/>
    <property name="client-src-name" value="client/Client.java"/>
    <target name="all" depends="clean, setup, runtest1,undeploy"/>

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

     <target name="compile" depends="init-common">
      <antcall target="compile-common">
        <param name="src" value="endpoint"/>
      </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-client"/>
    </target>


    <target name="assemble-client" depends="init-common">
      <mkdir dir="${build.classes.dir}/webclient/WEB-INF/classes"/>
      <antcall target="wsimport">
        <param name="wsimport.args"
          value="-p client   -keep -d ${build.classes.dir}/webclient/WEB-INF/classes http://${http.host}:${http.port}/wsctx/HelloService?wsdl"/>
      </antcall>
      <javac srcdir="." destdir="${build.classes.dir}/webclient/WEB-INF/classes"
            includes="webclient/**">
         <classpath refid="classpath"/>

      </javac>
      <copy file="client-web.xml" tofile="${build.classes.dir}/webclient/WEB-INF/web.xml"/>
      <copy file="client-sun-web.xml" tofile="${build.classes.dir}/webclient/WEB-INF/sun-web.xml"/>
      <jar destfile="${assemble.dir}/wsclient.war" basedir="${build.classes.dir}/webclient" includes="**"/>
    </target>

     <target name="deploy-client" depends="init-common">
      <property name="client.war" value="${assemble.dir}/wsclient.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="${client.war}"/>
      </exec>
    </target>

    <target name="undeploy-client" 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="wsclient"/>
      </exec>
    </target>
    <target name="runtest1" depends="init-common">
      <mkdir dir="${build.classes.dir}/client"/>
      <javac srcdir="." destdir="${build.classes.dir}/client"
            classpath="${env.APS_HOME}/lib/reporter.jar"
            includes="client/**"/>
      <unjar src="${env.APS_HOME}/lib/reporter.jar" dest="${build.classes.dir}/client"/>
      <java classname="client.TestClient">
        <classpath>
          <pathelement path="${build.classes.dir}/client"/>
        </classpath>
        <arg value="http://${http.host}:${http.port}/wsclient/RequestProcessor"/>
      </java>
    </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="setup" depends="assemble-web, deploy-app, assemble-client,deploy-client"/>


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

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



</project>
