<!--

    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">
]>

<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 -->
  &common;
  &testcommon;

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

  <target name="build-ear">
    <echo message="Building EAR" />
    <delete file="${assemble.dir}/generic-embeddedApp.ear" />
    <mkdir dir="${assemble.dir}" />
    <mkdir dir="${build.classes.dir}/META-INF" />
    <ear earfile="${assemble.dir}/generic-embeddedApp.ear" appxml="META-INF/application.xml">
      <fileset dir="${assemble.dir}">
        <include name="*.jar" />
        <include name="*.war" />
      </fileset>
      <fileset dir="../ra">
        <include name="generic-ra.rar" />
      </fileset>
      <fileset dir="${env.APS_HOME}/lib">
        <include name="reporter.jar" />
      </fileset>
    </ear>

  </target>

  <target name="setupJdbc" depends="init-common">

    <antcall target="deploy-jdbc-common">
      <param name="jdbc.conpool.name" value="jdbc-pointbase-pool1" />
      <param name="db.class" value="org.apache.derby.jdbc.ClientXADataSource" />
      <param name="jdbc.resource.type" value="javax.sql.XADataSource" />
      <param name="jdbc.resource.name" value="jdbc/XAPointbase" />
    </antcall>

    <antcall target="execute-sql-common">
      <param name="sql.file" value="createdb.sql" />
    </antcall>

  </target>

  <target name="unsetJdbc" depends="init-common">
    <antcall target="execute-sql-common">
      <param name="sql.file" value="dropdb.sql" />
    </antcall>

    <antcall target="undeploy-jdbc-common">
      <param name="jdbc.resource.name" value="jdbc/XAPointbase" />
      <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="deploy-rar" depends="init-common">
    <antcall target="deploy-rar-common">
      <param name="rarfile" value="${bundles.dir}/connectors-ra-redeploy-rars.rar" />
    </antcall>
  </target>


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

  <target name="run-war" depends="init-common">
    <antcall target="runwebclient-common">
      <param name="testsuite.id"
             value="defaultConnectorResource-standalone-rar (stand-alone war based)"
      />
    </antcall>
  </target>


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


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

  <target name="undeploy-rar" depends="init-common">
    <antcall target="undeploy-rar-common">
      <param name="undeployrar" value="connectors-ra-redeploy-rars" />
    </antcall>
  </target>


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