<!--

    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 run SYSTEM "../../../../config/run.xml">
  <!ENTITY props SYSTEM "../../../../config/properties.xml">
]>

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

  <property name="j2ee.home" value="../../.."/>
  <property name="earfile" value="threadpooltest-ra.rar"/>

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

  <target name="all">
    <ant dir="src" inheritAll="false" target="all"/>

    <jar jarfile="threadpooltest-ra.rar" basedir="."
         includes="threadpooltest-ra.jar, META-INF/ra.xml" />
  </target>

  <target name="deploy" depends="init-common">
    <antcall target="asadmin-common">
      <param name="admin.command" value="create-threadpool --maxthreadpoolsize 10"/>
      <param name="operand.props" value="test-thread-pool"/>
    </antcall>
    <antcall target="restart-server-instance-common">
    </antcall>

    <antcall target="asadmin-common">
       <param name="admin.command" value="create-resource-adapter-config  --threadpoolid test-thread-pool"/>
       <param name="operand.props" value="threadpooltest-ra"/>
    </antcall>
    <antcall target="asadmin-common">
      <param name="admin.command" value="deploy"/>
      <param name="operand.props" value="threadpooltest-ra.rar"/>
    </antcall>
  </target>

  <target name="undeploy" depends="init-common">
    <antcall target="asadmin-common">
        <param name="admin.command" value="delete-resource-adapter-config"/>
        <param name="operand.props" value="threadpooltest-ra"/>
     </antcall>
    <antcall target="asadmin-common">
      <param name="admin.command" value="undeploy"/>
      <param name="operand.props" value="threadpooltest-ra"/>
    </antcall>
    <antcall target="asadmin-common">
      <param name="admin.command" value="delete-threadpool"/>
      <param name="operand.props" value="test-thread-pool"/>
    </antcall>
  </target>


  <target name="setup" depends="init-common">
    <antcall target="asadmin-common">
      <param name="admin.command" value="create-admin-object --target ${appserver.instance.name} --restype connector.MyAdminObject --raname threadpooltest-ra --property NumberOfSetupWorks=10:NumberOfActualWorks=5"/>
      <param name="operand.props" value="eis/testAdmin"/>
    </antcall>
  </target>


  <target name="unsetup" depends="init-common">
    <antcall target="asadmin-common">
      <param name="admin.command" value="delete-admin-object"/>
      <param name="operand.props" value="--target ${appserver.instance.name} eis/testAdmin"/>
    </antcall>
  </target>

  <target name="clean">
    <ant dir="src" inheritAll="false" target="clean"/>
  </target>

</project>
