<!--

    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="simplemdb.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="ear-common">
        <param name="appname" value="simplemdb"/>
        <param name="application.xml" value="META-INF/application.xml"/>
        <param name="glassfish-resources-ear.xml" value="src/META-INF/glassfish-resources.xml"/>
   </antcall>
  </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="simplemdb"/>
    </antcall>
  </target>

  <target name="undeploy" depends="init-common">
    <antcall target="undeploy-common">
      <param name="appname" value="simplemdb"/>
    </antcall>
  </target>

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