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

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

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


    <path id="classpath">
        <fileset dir="${env.S1AS_HOME}/modules">
                      <include name="*.jar"/>
        </fileset>
        <fileset dir="${env.APS_HOME}/lib">
                      <include name="*.jar"/>
        </fileset>
    </path>

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

    <target name="clean" depends="init-common">
      <antcall target="clean-common"/>
      <delete dir="${env.S1AS_HOME}/build/localwsdl"/>
    </target>

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

    <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="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}/wsejbclient/RequestProcessor"/>
      </java>
    </target>


     <target name="assemble-client" depends="init-common">
      <mkdir dir="${build.classes.dir}/webclient/WEB-INF/classes"/>
      <echo message="${build.classes.dir}/webclient/WEB-INF/classes"/>
         <antcall target="wsimport">
        <param name="wsimport.args"
          value="-p ejbclient -keep -d ${build.classes.dir}/webclient/WEB-INF/classes http://${http.host}:${http.port}/HelloEjbService/Hello?WSDL"/>
      </antcall>
      <antcall target="wsimport">
        <param name="wsimport.args"
          value="-p webclient -keep -d ${build.classes.dir}/webclient/WEB-INF/classes http://${http.host}:${http.port}/${appname}/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"/>
      <jar destfile="${assemble.dir}/wsejbclient.war" basedir="${build.classes.dir}/webclient" includes="**"/>
    </target>


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


</project>

