<!--

    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

-->

   <path id="class.path">
        <fileset dir="${env.S1AS_HOME}/modules">
            <include name="**/*.jar"/>
        </fileset>
        <fileset dir="${env.S1AS_HOME}/modules/endorsed">
            <include name="**/*.jar"/>
        </fileset>
        <fileset dir="${env.APS_HOME}/lib">
            <include name="**/*.jar"/>
        </fileset>

    </path>

   <path id="run.classpath">
        <fileset dir="${dist}">
          <include name="*.jar"/>
        </fileset>
        <fileset dir="${env.S1AS_HOME}/modules">
         <include name="**/*.jar"/>
        </fileset>
        <fileset dir="${env.S1AS_HOME}/modules/endorsed">
          <include name="**/*.jar"/>
        </fileset>
        <fileset dir="${env.APS_HOME}/lib">
          <include name="**/*.jar"/>
        </fileset>
   </path>



  <target name="build-static" depends="clean,generate-stubs,compile-client,package-client"
     description="Executes the targets needed to build a static stub client.">
  </target>

  <target name="prepare-dist"
     description="Creates the dist directory" >
     <echo message="Creating the required directories...." />
     <mkdir dir="${dist}" />
  </target>

  <target name="generate-stubs"
      description="Runs wscompile to generate the client stub classes">
    <antcall target="run-wscompile">
      <param name="param1" value="-gen:client -d ${build.classes.dir} -classpath ${build.classes.dir} ${config.wsdl.file}"/>
    </antcall>
  </target>


 <target name="compile-client" depends="prepare"
      description="Compiles the client-side source code"  >
      <echo message="Compiling the client source code...."/>
    <javac srcdir="${client.src}" destdir="${build}">
        <include name="**/*.java" />
     <classpath refid="jaxrpc.classpath"/>
     <classpath path="${build}" />
    </javac>
  </target>

  <target name="package-client" depends="prepare-dist"
      description="Builds the JAR file that contains the client">
      <echo message="Building the client JAR  file...."/>
      <delete file="${dist}/${client.jar}" />
      <jar jarfile="${dist}/${client.jar}" >
        <fileset dir="${build}" />
      </jar>
  </target>






  <target name="clean" >
      <delete dir="${build}" />
      <delete dir="${env.APS_HOME}/build" />
      <delete dir="${dist}" />
      <delete dir="${assemble}" />
      <delete dir="${assemble.dir}" />
      <delete file="${ear.name}" />
      <delete file="${war.name}" />
      <delete file="${war.file}" />
      <delete file="${client.jar.name}" />
  </target>

  <target name="generate-wsdl"
      description="Runs wscompile to generate the WSDL file and mapping file">
    <antcall target="run-wscompile">
      <param name="param1" value="-define -mapping ${build}/${mapping.file} -keep -d ${build} -nd ${build}  -classpath ${build} ${config.interface.file}"/>
    </antcall>
  </target>

  <target name="run-wscompile"  depends="prepare,set-wscompile"
       description="Runs wscompile">
    <echo message="Running wscompile:"/>
    <echo message="  ${wscompile} ${param1}"/>
    <exec executable="${wscompile}">
       <arg line="${param1}"/>
    </exec>
  </target>

  <target name="set-wscompile" >
     <condition property="wscompile" value="${env.S1AS_HOME}/bin/wscompile.bat">
        <os family="windows"/>
     </condition>
     <condition property="wscompile" value="${env.S1AS_HOME}/bin/wscompile">
        <not>
           <os family="windows"/>
        </not>
     </condition>
  </target>
  <target name="set-asadmin" >
     <condition property="ASADMIN" value="${env.S1AS_HOME}/bin/asadmin.bat">
        <os family="windows"/>
     </condition>
     <condition property="ASADMIN" value="${env.S1AS_HOME}/bin/asadmin">
        <not>
           <os family="windows"/>
        </not>
     </condition>
  </target>




  <target name="prepare" depends="init"
     description="Creates the build directory" >
     <echo message="Creating the required directories...." />
     <mkdir dir="${build}" />
  </target>


  <target name="init" >
    <tstamp/>
    <condition property="stub.file" value="${appname}Client.jar">
        <available file="${appname}Client.jar"/>
    </condition>
    <condition property="deploy.file" value="${assemble.ear}/${ear}">
        <available file="${assemble.ear}/${ear}"/>
    </condition>
    <condition property="deploy.file" value="${assemble.war}/${war.file}">
        <available file="${assemble.war}/${war.file}"/>
    </condition>
    <property name="deploy.file" value="${war.file}"/>

    <condition property="verify.file" value="${assemble.ear}/${ear}">
        <available file="${assemble.ear}/${ear}"/>
    </condition>
    <condition property="verify.file" value="${assemble.war}/${war.file}">
        <available file="${assemble.war}/${war.file}"/>
    </condition>
    <property name="verify.file" value="${war.file}"/>
  </target>



  <path id="db.classpath">
      <fileset dir="${db.root}/lib">
          <include name="*.jar"/>
      </fileset>
  </path>

  <target name="create-db_common"
      depends="init,start-db,delete-db"
      description="Create database tables and populate database." >

      <sql driver="${db.driver}"
          url="${db.url}"
          userid="${db.user}"
          password="${db.password}"
          classpathref="db.classpath"
          delimiter="${db.delimiter}"
          autocommit="false"
          onerror="abort" >
          <transaction src="${sql.script}"/>
      </sql>
  </target>

  <target name="delete-db"
      description="Deletes the database tables." >

      <sql driver="${db.driver}"
          url="${db.url}"
          userid="${db.user}"
          password="${db.password}"
          classpathref="db.classpath"
          delimiter="${db.delimiter}"
          autocommit="false"
          onerror="continue" >
          <transaction src="${delete.sql.script}"/>
      </sql>
  </target>

  <target name="ping-db"
      description="Checks to see if Derby is running." >
      <java classname="org.apache.derby.drda.NetworkServerControl"
          fork="yes"
          resultproperty="db.ping.result">
          <jvmarg line="${db.jvmargs}" />
          <arg line="ping" />
          <classpath refid="db.classpath" />
      </java>
      <condition property="db.running">
          <equals arg1="${db.ping.result}" arg2="0" />
      </condition>
  </target>

  <target name="start-db"
      unless="db.running"
      description="Starts the Derby databse server."
      depends="ping-db">

      <sun-appserv-admin
      explicitcommand="start-database" />
  </target>

  <target name="stop-db"
      description="Stops the Derby database server."
      depends="ping-db"
      if="db.running">
      <sun-appserv-admin
      explicitcommand="stop-database" />
  </target>

  <target name="admin_command_common">
      <echo message="Doing admin task ${admin.command}"/>
      <sun-appserv-admin
      command="${admin.command}"
      user="${admin.user}"
      passwordfile="${admin.password.file}"
      host="${admin.host}"
      port="${admin.port}"
      asinstalldir="${j2ee.home}" />
  </target>

  <target name="create-jdbc-resource_common">
      <antcall target="admin_command_common">
          <param name="admin.command"
          value="create-jdbc-resource
          --connectionpoolid ${conpool.name} ${jdbc.resource.name}" />
      </antcall>
  </target>

  <target name="delete-jdbc-resource_common">
      <antcall target="admin_command_common">
          <param name="admin.command"
          value="delete-jdbc-resource ${jdbc.resource.name}" />
      </antcall>
  </target>

  <target name="deploy-war">
      <antcall target="admin_command_common">
          <param name="admin.command"
          value="deploy ${war.file}" />
      </antcall>
  </target>

  <target name="undeploy-war">
      <antcall target="admin_command_common">
          <param name="admin.command"
          value="undeploy ${example}" />
      </antcall>
  </target>

  <property environment="env" />

  <target name="build-service" depends="compile-service,generate-wsdl"
     description="Executes the targets needed to build the service.">
  </target>

   <target name="compile-service" depends="prepare"
      description="Compiles the server-side source code">
      <echo message="Compiling the server-side source code...."/>
      <javac
         srcdir="src"
         destdir="${build}"
         includes="**/*.java"
         excludes="**/*Client.java">
         <classpath refid="class.path" />
      </javac>
  </target>


  <target name="listprops"
      description="Displays values of some of the properties of this build file">
      <property file="../../common/admin-password.txt" />

      <echo message="Path information" />
      <echo message="j2ee.home = ${j2ee.home}" />
      <echo message="j2ee.tutorial.home = ${j2ee.tutorial.home}" />
      <echo message="env.Path = ${env.Path}" />
      <echo message="env.PATH = ${env.PATH}" />
      <echo message="" />
      <echo message="Classpath information" />
      <echo message="classpath = ${env.CLASSPATH}" />
      <echo message="" />
      <echo message="Admin information" />
      <echo message="admin.password = ${AS_ADMIN_PASSWORD}" />
      <echo message="admin.password.file = ${admin.password.file}" />
      <echo message="admin.host = ${admin.host}" />
      <echo message="admin.user = ${admin.user}" />
      <echo message="admin.port = ${admin.port}" />
      <echo message="https.port = ${https.port}" />
      <echo message="" />
      <echo message="Domain information" />
      <echo message="domain.resources = ${domain.resources}" />
      <echo message="domain.resources.port = ${domain.resources.port}" />
      <echo message="" />
      <echo message="Database information" />
      <echo message="db.root = ${db.root}" />
      <echo message="db.driver = ${db.driver}" />
      <echo message="db.host = ${db.host}" />
      <echo message="db.port = ${db.port}" />
      <echo message="db.sid = ${db.sid}" />
      <echo message="db.url = ${db.url}" />
      <echo message="db.user = ${db.user}" />
      <echo message="db.pwd = ${db.pwd}" />
      <echo message="url.prop = ${url.prop}" />
      <echo message="ds.class = ${ds.class}" />
      <echo message="db.jvmargs = ${db.jvmargs}" />
  </target>
