<!--

    Copyright (c) 2002, 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 common SYSTEM "../../../../config/common.xml">
  <!ENTITY testcommon SYSTEM "../../../../config/properties.xml">
  <!ENTITY database SYSTEM "../../config/database.xml">
]>

<project name="connector1.5 MDB" default="all" basedir=".">

  <property name="j2ee.home" value="../../.."/>
  <property name="earfile" value="generic-embedded.ear"/>


  <!-- include common.xml and testcommon.xml -->
  &database;
  &common;
  &testcommon;

  <target name="all" depends="init-common, clean-common">
   <ant dir="src" inheritAll="false" target="all"/>
   <antcall target="build-ear">
        <param name="glassfish-resources-ear.xml" value="META-INF/glassfish-resources.xml"/>
   </antcall>
  </target>

  <target name="build-ear">
  <copy file="../ra/generic-ra.rar" tofile="${assemble.dir}/generic-ra.rar"       failonerror="true"/>

   <antcall target="ear-common">
        <param name="appname" value="generic-embedded"/>
        <param name="application.xml" value="META-INF/application.xml"/>
        <param name="glassfish-resources-ear.xml" value="META-INF/glassfish-resources.xml"/>
   </antcall>

<!--     <delete file="${assemble.dir}/generic-embeddedApp.ear"/>-->

     <mkdir dir="${assemble.dir}"/>
     <mkdir dir="${build.classes.dir}/META-INF"/>
<copy file="${glassfish-resources-ear.xml}" tofile="${build.classes.dir}/META-INF/glassfish-resources.xml" failonerror="true"  filtering="true">
          </copy>
     <ear earfile="${assemble.dir}/generic-embeddedApp.ear"
       appxml="META-INF/application.xml">
       <fileset dir="${assemble.dir}">
            <include name="*.jar"/>
            <include name="*.war"/>
            <include name="META-INF/*.xml"/>
       </fileset>
       <fileset dir="${build.classes.dir}">
            <include name="META-INF/*.xml"/>
       </fileset>

       <fileset dir="../ra">
           <include name="*.rar"/>
       </fileset>
       <fileset dir="${env.APS_HOME}/lib">
           <include name="reporter.jar"/>
       </fileset>
     </ear>

  </target>

  <target name="setupJdbc" depends="init-common">
<!--
      <antcall target="create-jdbc-conpool-connector">
        <param name="db.class" value="com.sun.sql.jdbcx.oracle.OracleDataSource"/>
        <param name="jdbc.conpool.name" value="jdbc-pointbase-pool1"/>
        <param name="jdbc.resource.type" value="javax.sql.XADataSource"/>
      </antcall>
      <antcall target="create-jdbc-resource-common">
        <param name="jdbc.conpool.name" value="jdbc-pointbase-pool1"/>
        <param name="jdbc.resource.name" value="jdbc/XAPointbase"/>
      </antcall>
-->
      <antcall target="execute-sql-connector">
        <param name="sql.file" value="createdb.sql"/>
      </antcall>
   </target>

  <target name="unsetJdbc" depends="init-common">
<!--
      <antcall target="delete-jdbc-resource-common">
        <param name="jdbc.resource.name" value="jdbc/XAPointbase"/>
      </antcall>
     <antcall target="delete-jdbc-connpool-common">
        <param name="jdbc.conpool.name" value="jdbc-pointbase-pool1"/>
      </antcall>
-->
  </target>

  <target name="deploy-ear" depends="init-common">
    <antcall target="deploy-common">
      <param name="appname" value="generic-embedded"/>
    </antcall>
  </target>

  <target name="undeploy" depends="init-common">
    <antcall target="undeploy-common">
      <param name="deployedapp.name" value="generic-embeddedApp"/>
    </antcall>
  </target>

  <target name="clean">
    <antcall target="clean-common"/>
  </target>
</project>
