<?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" />
    <delete file="${jbi-component-su-dir}/assembly/${appname}-web.war" />
  </target>

  <target name="setup"
          depends="assemble-web, deploy-jbi-component-su,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">
    <echo message="classes dir = ${build.classes.dir}" />
    <echo message="assemble.dir = ${assemble.dir}/${appname}-web.war" />
    <antcall target="pkg-war">
      <param name="war.classes" value="${build.classes.dir}" />
      <param name="war.file" value="${assemble.dir}/${appname}-web.war" />
    </antcall>
    <!-- Add META-INF/jbi.xml to .war file -->
    <mkdir dir="${build.classes.dir}/tmp/META-INF" />
    <echo message="created dir = ${build.classes.dir}/tmp/META-INF" />
    <copy file="${jbi-component-su-dir}/su/META-INF/jbi.xml"
          tofile="${build.classes.dir}/tmp/META-INF/jbi.xml"
    />
    <jar jarfile="${assemble.dir}/${appname}-web.war" update="true">
      <fileset dir="${build.classes.dir}/tmp">
        <include name="META-INF/jbi.xml" />
      </fileset>
    </jar>
    <!-- Copy the JavaEE app to the service assembly -->
    <copy file="${assemble.dir}/${appname}-web.war" todir="${jbi-component-su-dir}/assembly" />
  </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-web/webservice/EndpointMappingService?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-web/webservice/EndpointMappingService?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"
           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>
  </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-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#EndpointMapping" />
    </antcall>
  </target>

</project>

