<?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 jaxwsTools SYSTEM "./../jaxwstools.xml">
<!ENTITY testproperties SYSTEM "./build.properties">
]>

<project name="webserviceref-cobundle" default="all" basedir=".">

    &commonSetup;
    &commonBuild;
    &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, runtest,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" />

    <target name="compile" depends="init-common">
        <mkdir dir="${build.classes.dir}"/>
              <echo message="common.xml: Compiling test source files" level="verbose"/>

        <javac srcdir="${basedir}" includes="webclient/**, endpoint/**"
        destdir="${build.classes.dir}"
        classpath="${s1astest.classpath}"
        debug="on"
        failonerror="true">
        </javac>
    </target>

    <target name="assemble-web" depends="init-common">
      <mkdir dir="${build.classes.dir}"/>
      <antcall target="wsimport">
        <param name="wsimport.args"
          value="  -p service -keep -d ${build.classes.dir} ${basedir}/SubtractNumbers.wsdl"/>
      </antcall>
      <antcall target="compile"/>
      <antcall target="pkg-bundle"/>
    </target>

    <target name="pkg-bundle">
        <property name="wsdlfile.location" value="${basedir}"/>
        <property name="wsdlfile.name" value="SubtractNumbers.wsdl"/>
        <property name="war.classes" value="${build.classes.dir}"/>
        <property name="war.file" value="${assemble.dir}/${appname}-web.war"/>

        <mkdir dir="${assemble.dir}"/>
      <echo message="my build classes dir is:${build.classes.dir}" level="verbose"/>  <mkdir dir="${build.classes.dir}/tmp"/>
      <mkdir dir="${build.classes.dir}/tmp/WEB-INF"/>
      <mkdir dir="${build.classes.dir}/tmp/WEB-INF/classes"/>
      <mkdir dir="${build.classes.dir}/tmp/WEB-INF/wsdl"/>

      <copy file="${wsdlfile.location}/${wsdlfile.name}"
            tofile="${build.classes.dir}/tmp/WEB-INF/wsdl/${wsdlfile.name}"
            failonerror="false"/>
      <copy file="${web.xml}"
          tofile="${build.classes.dir}/tmp/WEB-INF/web.xml" failonerror="false"/>
      <copy todir="${build.classes.dir}/tmp/WEB-INF/classes">
          <fileset dir="${war.classes}">
              <include name="**/*.class"/>
          </fileset>
      </copy>

      <echo message="Creating war file ${war.file}" level="verbose"/>
      <jar jarfile="${war.file}" basedir="${build.classes.dir}/tmp" update="true">
        <!--<fileset dir="${build.classes.dir}/tmp" casesensitive="yes">-->
          <!--<include name="**/*class*"/>-->
        <!--</fileset>-->
        <!--<fileset dir="${build.classes.dir}/tmp/WEB-INF" casesensitive="true">-->
         <!--</fileset>-->
      </jar>

      <echo message="created war file ${war.file}" level="verbose"/>
      <delete dir="${build.classes.dir}/tmp/WEB-INF" failonerror="false"/>
      <echo message="my webclient war classes are:${webclient.war.classes}"
          level="verbose"/>
    </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"/>
    </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}/webserviceref-cobundle/RequestProcessor"/>
      </java>
    </target>
</project>

