<?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" />
    <delete file="${basedir}/RepRunConf.txt" />
    <delete dir="${basedir}/common:endpoint" />
  </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="common: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>

    <!-- Add the WSDL -->
    <mkdir dir="${build.classes.dir}/tmp/WEB-INF/wsdl" />
    <copy file="${basedir}/wsdl/CalculatorService_schema1.xsd"
          todir="${build.classes.dir}/tmp/WEB-INF/wsdl"
    />
    <copy file="${basedir}/wsdl/CalculatorService.wsdl"
          todir="${build.classes.dir}/tmp/WEB-INF/wsdl"
    />
    <jar jarfile="${assemble.dir}/${appname}-web.war" update="true">
      <fileset dir="${build.classes.dir}/tmp">
        <include name="WEB-INF/wsdl/CalculatorService_schema1.xsd" />
        <include name="WEB-INF/wsdl/CalculatorService.wsdl" />
      </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}/rpc-literal-bundled-wsdl/webservice/CalculatorService?WSDL"
    />
    <antcall target="wsimport">
      <param name="wsimport.args"
             value="-keep -d ${build.classes.dir}/webclient/WEB-INF/classes http://${http.host}:${http.port}/rpc-literal-bundled-wsdl/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"
           includes="common/**,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="common/**,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>

