<?xml version="1.0" encoding="UTF-8"?>
<!--

    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}/jsr208-integration-web-client/webservice/CalculatorServicei?WSDL"
    />
    <antcall target="wsimport">
      <param name="wsimport.args"
             value="-keep -d ${build.classes.dir}/webclient/WEB-INF/classes http://${http.host}:${http.port}/jsr208-integration-web-client/webservice/CalculatorService?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="deploy-jbi-component-su" />
  </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#Calculator" />
    </antcall>
  </target>

</project>

