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

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

    <target name="all" depends="clean, setup, runtest, undeploy"/>
    <path id="class.path">
        <fileset dir="${env.S1AS_HOME}/modules">
            <include name="**/*.jar"/>
        </fileset>
        <fileset dir="${env.APS_HOME}/lib">
            <include name="**/*.jar"/>
        </fileset>

    </path>


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

    <target name="setup" depends="assemble-web, assemble-client, deploy-app, deploy-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">
      <mkdir dir="${build.classes.dir}"/>
      <antcall target="wsimport">
        <param name="wsimport.args"
          value="-wsdllocation WEB-INF/wsdl/SubtractNumbers.wsdl -b custom-server.xml -keep -d ${build.classes.dir} ${env.APS_HOME}/devtests/webservice/annotations/svchandler-3/SubtractNumbers.wsdl"/>
      </antcall>
      <antcall target="compile"/>
      <copy file="endpoint/myhandler.xml" todir="${build.classes.dir}/endpoint"/>
      <antcall target="pkg-war">
        <param name="handler.name" value="myhandler.xml"/>
        <param name="wsdlfile.location" value="${env.APS_HOME}/devtests/webservice/annotations/svchandler-3"/>
        <param name="wsdlfile.name" value="SubtractNumbers.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">
      <mkdir dir="${build.classes.dir}/webclient/WEB-INF/classes"/>
      <antcall target="wsimport">
        <param name="wsimport.args"
          value="-b custom-client.xml -keep -d ${build.classes.dir}/webclient/WEB-INF/classes ${env.APS_HOME}/devtests/webservice/annotations/svchandler-3/SubtractNumbers.wsdl"/>
      </antcall>

      <replace file="webclient/Client.java" value="${http.host}" token="HTTP_HOST"/>
      <replace file="webclient/Client.java" value="${http.port}" token="HTTP_PORT"/>
      <javac srcdir="." destdir="${build.classes.dir}/webclient/WEB-INF/classes"
            classpathref="class.path"
            includes="webclient/**"/>
      <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="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="runtest" 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>


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

