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

<project name="web-client" default="all" basedir=".">

    &commonSetup;
    &commonBuild;
    &testproperties;
    &jaxwsTools;
    &jbicommon;
    &jbiproperties;
  <target name="all" depends="clean, setup, runtest, undeploy" />

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

  <target name="setup" depends="assemble-web, deploy-app,assemble-client,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, 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="assemble-client" depends="init-common">
    <mkdir dir="${build.classes.dir}/webclient/WEB-INF/classes" />
    <mkdir dir="${assemble.dir}" />
    <echo message="wsimport -keep -d ${build.classes.dir}/webclient/WEB-INF/classes http://${http.host}:${http.port}/calc-web-client/webservice/OneWayService?WSDL"
    />
    <antcall target="wsimport">
      <param name="wsimport.args"
             value="-keep -d ${build.classes.dir}/webclient/WEB-INF/classes http://${http.host}:${http.port}/calc-web-client/webservice/OneWayService?WSDL"
      />
    </antcall>
    <javac srcdir="."
           destdir="${build.classes.dir}/webclient/WEB-INF/classes"
           classpath="${env.APS_HOME}/lib/reporter.jar:${env.S1AS_HOME}/lib/javaee.jar:${env.S1AS_HOME}/modules/webservices-osgi.jar"
           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="assemble-client">
    <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="--host ${admin.host}" />
      <arg line="--port ${admin.port}" />
      <arg line="${client.war}" />
    </exec>
    <antcall target="configure-webservice-management" />
    <antcall target="asadmin-common">
      <param name="admin.command" value="set" />
      <param name="operand.props"
             value="server.applications.web-module.${appname}-web.web-service-endpoint.OneWay.jbi-enabled=true"
      />
    </antcall>
  </target>

  <target name="undeploy-client" depends="init-common">
    <exec executable="${ASADMIN}">
      <arg line="undeploy" />
      <arg line="--user ${admin.user}" />
      <arg line="--host ${admin.host}" />
      <arg line="--port ${admin.port}" />
      <arg line="wsclient" />
    </exec>
    <!--<antcall target="undeploy-jbi-component-su"/>-->
  </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/webclient/RequestProcessor" />
    </java>
  </target>
  <target name="configure-webservice-management" depends="init-common">
    <antcall target="asadmin-common">
      <param name="admin.command" value="configure-webservice-management" />
      <param name="operand.props" value="${appname}-web#OneWay" />
    </antcall>
  </target>

</project>

