<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE project [
<!--

    Copyright (c) 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

-->

<!ENTITY commonSetup SYSTEM "file:./../../../config/properties.xml">
<!ENTITY commonBuild SYSTEM "file:./../../../config/common.xml">
<!ENTITY testproperties SYSTEM "file:./build.properties">
]>

<project name="SbMdbApp" default="usage" basedir=".">

    &commonSetup;
    &commonBuild;
    &testproperties;

    <target name="all" 
    depends="clean, build, setup, deploy, run, undeploy, unsetup"/>

    <target name="run-test" 
    depends="clean, build, deploy, run, undeploy"/>

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

    <target name="setup"/>
    <target name="unsetup"/>
 
    <target name="compile" depends="init-common,clean-common, generate-artifacts">
        <antcall target="compile-common">
            <param name="src" value="client"/>
        </antcall>
        <antcall target="compile-common">
            <param name="src" value="web"/>
        </antcall>
    </target>

    <target name="generate-artifacts">
        <antcall target="import-wsdl">
            <param name="mapping.file"
            value="${client-mapping.xml}"/>
            <param name="config-wsdl.file"
            value="config/config-client.xml"/>
        </antcall>
        <antcall target="import-wsdl">
            <param name="mapping.file"
            value="${web-mapping.xml}"/>
            <param name="config-wsdl.file"
            value="config/config-web.xml"/>
        </antcall>
    </target>
    <target name="ws-package-appclientjar-common">
        <mkdir dir="${assemble.dir}"/>
        <delete file="${appclient.jar}" failonerror="false"/>
        <mkdir dir="${build.classes.dir}/META-INF"/>
        <copy file="${application-client.xml}"
                tofile="${build.classes.dir}/META-INF/application-client.xml"/>
        <copy file="${sun-application-client.xml}"
                tofile="${build.classes.dir}/META-INF/sun-application-client.xml"/>
        <copy file="${wsdl-file}"
                tofile="${build.classes.dir}/META-INF/${wsdl-file}"/>
        <jar jarfile="${appclient.jar}" basedir="${appclientjar.files}"
                update="true" includes="${appclientjar.classes}"
                manifest="./client/MANIFEST.MF">

                <fileset dir="${build.classes.dir}" includes="${client-mapping.xml}"/>
                <metainf dir="${build.classes.dir}/META-INF">
                        <include name="application-client.xml"/>
                        <include name="sun-application-client.xml"/>
                        <include name="${wsdl-file}"/>
                </metainf>
        </jar>
        <delete dir="${build.classes.dir}/META-INF" failonerror="false"/>
    </target>
    <target name="ws-package-war-common">
        <echo message="my build classes dir is:${build.classes.dir}"/>
        <delete file="${war.file}"/>
        <mkdir dir="${build.classes.dir}/tmp"/>
        <mkdir dir="${build.classes.dir}/tmp/WEB-INF"/>
        <mkdir dir="${build.classes.dir}/tmp/WEB-INF/classes"/>
        <copy file="${sun-web.xml}"
           tofile="${build.classes.dir}/tmp/WEB-INF/sun-web.xml" failonerror="false"/>
        <copy file="${webservices.xml}"
           tofile="${build.classes.dir}/tmp/WEB-INF/webservices.xml"
           failonerror="false"/>
        <copy file="${mappingfile.location}/${mappingfile.name}"
           tofile="${build.classes.dir}/tmp/${mappingfile.name}"
           failonerror="false"/>
        <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"/>
        <copy todir="${build.classes.dir}/tmp/WEB-INF/classes">
           <fileset dir="${build.classes.dir}">
               <include name="${war.classes}"/>
           </fileset>
        </copy>
        <echo message="Creating war file ${war.file}"/>
        <jar jarfile="${war.file}" update="true">
           <fileset dir="${build.classes.dir}/tmp" casesensitive="yes">
               <include name="**/*class*"/>
           </fileset>
           <fileset dir="${basedir}/web" casesensitive="yes">
               <include name="**/*.html"/>
               <include name="**/*.jsp"/>
               <include name="**/*.gif"/>
               <include name="**/*.do"/>
               <exclude name="**/*.java,**/*.xml,**/*.properties"/>
           </fileset>
           <fileset dir="${build.classes.dir}/tmp/" casesensitive="true">
               <include name="WEB-INF/web.xml"/>
               <include name="WEB-INF/sun-web.xml"/>
               <include name="WEB-INF/webservices.xml"/>
               <include name="WEB-INF/wsdl/${wsdlfile.name}"/>
               <include name="${mappingfile.name}"/>
           </fileset>
        </jar>
        <echo message="created war file ${war.file}"/>
        <delete dir="${build.classes.dir}/tmp/WEB-INF" failonerror="false"/>
        <echo message="my webclient war classes are:${webclient.war.classes}"/>
     </target>

    <target name="build" depends="init-common,compile">
	<antcall target="ws-package-appclientjar-common">
            <param name="appclientjar.classes" 
              value="com/sun/s1peqe/webservices/servlet/taxcal/client/*.class" />
            <param name="appclientjar.files"
              value="${build.classes.dir}"/>
            <param name="appclient.jar"
              value="${assemble.dir}/${appname}-client.jar"/>
	</antcall>
	<!--antcall target="ws-war-common"-->
	<antcall target="ws-package-war-common">
            <param name="war.file" value="${assemble.dir}/${appname}-web.war"/>
            <param name="war.classes" 
              value="com/sun/s1peqe/webservices/servlet/taxcal/*.class" />
            <param name="mappingfile.name" 
              value="${web-mapping.xml}" />
            <param name="mappingfile.location" 
              value="${build.classes.dir}"/>
            <param name="webservices.xml" 
              value="${web-webservices.xml}" />
	</antcall>
        <antcall target="ear-common"/>
    </target> 

    <target name="deploy"
            depends="init-common, reconfig-common">
        <antcall target="deploy-common"/>
    </target>
  
    <target name="run" depends="init-common">
        <property name="statetax-endpoint-url" 
            value="http://${http.host}:${http.port}/TaxCalWSServlet/statetaxservlet"/>
        <property name="fedtax-endpoint-url" 
            value="http://${http.host}:${http.port}/TaxCalWSServlet/fedtaxservlet"/>

        <antcall target="runclient-common">
            <param name="appclient.application.args"
            value="${statetax-endpoint-url} ${fedtax-endpoint-url}"/>
        </antcall>
    </target>
 
    <target name="undeploy" depends="init-common">
        <antcall target="undeploy-common"/>
    </target>   

    <target name="usage">
        <antcall target="usage-common"/>
    </target>

  <!-- 
  ======================================================= 
  User Defined specific targets
  =======================================================
  -->
</project>
