<!--
    Copyright 2005 The Apache Software Foundation

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at
  
       http://www.apache.org/licenses/LICENSE-2.0
  
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->

<!--

The targets in this buildfile all presume that JDO has been built.

Interesting targets include:

test: Run all tests. Run test.run.list against class files.
test.jar: Run all tests. Run test.run.list against jar files.
jar: Don't run any tests, just build the jar files.

Also, you can run any individual test.  Let's say there's a test XXX, then it
will have these targets:

XXX: Runs the test against class files, rebuilding as necessary
XXX.build: Builds the test
XXX.run: Runs the test without rebuilding.

-->

<project name="runtest" default="runtest.list" basedir=".">

<!-- Uncomment this if you want to use jikes
<property name="build.compiler" value="jikes"/>
-->

<!-- JAR files required to run the tests
-->
<property name="builddir" value="${basedir}/../target"/>
<property name="jdoapi" value="${user.home}/.maven/repository/jdo/jars/jdo1-api-1.1.jar"/>
<property name="jdobtree" value="${user.home}/.maven/repository/jdo/jars/jdo-btree-1.1.jar"/>
<property name="jdori" value="${builddir}/classes"/>
<property name="jdoritests" value="${builddir}/test-classes/jdo-ri-tests.jar"/>
<property name="pcclasses" value="${builddir}/test-classes/pcclasses.jar"/>
<property name="testdir" value="${builddir}/database"/>
<property name="fsuidjar" value="${basedir}/fsuid/fsuid2.jar"/>

<!-- external libs -->
<property name="junit" value="${user.home}/.maven/repository/junit/jars/junit-3.8.1.jar"/>
<property name="jta" value="${user.home}/.maven/repository/geronimo-spec/jars/geronimo-spec-jta-1.0.1B-rc2.jar"/>
<property name="antlr" value="${user.home}/.maven/repository/antlr/jars/antlr-2.7.3.jar"/>
<property name="logging" value="${user.home}/.maven/repository/commons-logging/jars/commons-logging-1.0.4.jar"/>
<property name="xmlparser" value=""/>
<!-- jndi implementation jars, needs to be consistent with jndi.properties -->
<property name="jndi" value="${basedir}/fscontext.jar:${basedir}/providerutil.jar"/>

<!-- other properties -->
<property name="testlist" value="${basedir}/conf/tests.list"/>
<property name="ResultPrinterClass" value="org.apache.jdo.test.util.BatchResultPrinter"/>
<property name="policyfile" value="${basedir}/conf/JDO11Policy"/>
<property name="gui" value="false"/>
<property name="cfdbname" value="CFDB"/>

                    <!-- CLASSPATH -->
                    <!-- CLASSPATH -->
                    <!-- CLASSPATH -->

<!-- Jars that we don't build
-->

<!-- Classpath
-->
<property name="extjars" 
          value="${antlr}:${junit}:${jta}:${logging}:${xmlparser}"/>
<property name="classpath" 
          value="${jdoritests}:${pcclasses}:${jdoapi}:${jdori}:${jdobtree}:${extjars}"/>

                    <!-- TEST PROPERTIES -->
                    <!-- TEST PROPERTIES -->
                    <!-- TEST PROPERTIES -->

<!-- Several tests can insert a user-specified number of objects.
     Use this property to specify how many.
-->
<property name="insert" value="--default--"/>

<!-- Indicate the directory and root name of the database.  With the given
     defaults, the database is in `pwd`//FOStoreTestDB.
-->
<property name="dir" value="--default--"/>
<property name="name" value="--default--"/>

<!-- Indicates the name used for loading and saving PMF's with JNDI.  The name here
     given is used to in an InitialContext rooted at the value of dir (above).
-->
<property name="pmfLoadName" value=""/>
<property name="pmfSaveName" value=""/>
<property name="cfPropsFile" value=""/>

<!-- Indicates information for the fostore server when run in client/server
     mode.
-->
<property name="host" value=""/>
<property name="port" value=""/>
<property name="backlog" value=""/>
<property name="timeout" value=""/>
<property name="root" value=""/>

<!-- Indicates whether exceptions from the server should be displayed verbosely
     or not.  Note that "status.verbose" is accessed by the fostore 
     implementation itself.  It will *not* cause fostore to print data
     in and of itself, it only provides that when exceptions occur in the
     server, that they are reported along with their stack trace instead of
     just by name. See Reply.java
-->
<property name="status.verbose" value="false"/>

                    <!-- RUNNING TESTS -->
                    <!-- RUNNING TESTS -->
                    <!-- RUNNING TESTS -->

<!-- Run all tests. 
-->

<target name="testrunner">
   <condition property="TestRunnerClass" 
              value="org.apache.jdo.test.util.SwingTestRunner">
       <istrue value="${gui}"/>
   </condition>
   <condition property="TestRunnerClass" 
              value="org.apache.jdo.test.util.JDORITestRunner">
       <isfalse value="${gui}"/>
   </condition>
</target>

<target name="runtest" depends="runtest.list, runtest.security, runtest.multiJVMtests"/>

<!-- Runs all tests from the specified test list
-->
<target name="runtest.list" depends="testrunner">
  <echo message="Run all tests from testlist ${testlist}"/>
  <mkdir dir="${testdir}"/>
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="${TestRunnerClass}">
    <sysproperty key="ResultPrinterClass" value="${ResultPrinterClass}"/>
    <sysproperty key="jdoapi" value="${jdoapi}"/>
    <sysproperty key="jdobtree" value="${jdobtree}"/>
    <sysproperty key="jdori" value="${jdori}"/>
    <sysproperty key="jdoritests" value="${jdoritests}"/>
    <sysproperty key="pcclasses" value="${pcclasses}"/>
    <sysproperty key="testdir" value="${testdir}"/>
    <sysproperty key="fsuidjar" value="${fsuidjar}"/>
    <sysproperty key="junit" value="${junit}"/>
    <sysproperty key="logging" value="${logging}"/>
    <sysproperty key="xmlparser" value="${xmlparser}"/>
    <sysproperty key="testlist" value="${testlist}"/>
    <sysproperty key="dir" value="${testdir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test FOStore's security policy implementation.  This tests that in 
     an environment with a security manager, basic operations can be performed
     including create and read of persistent instances.  The security policy
     contains different permission grants for: jdo.jar, jdori.jar, and the
     test program itself. The query needs RuntimePermission 
     "accessDeclaredMembers" to get metadata about non managed fields
     and ReflectPermission "suppressAccessChecks" to access values of 
     non managed fields in memory. 


     Note, this test sets the sysproperty dir to ${securityDir} to make sure 
     that the fostore database files are located in an extra directory.
     This allows to have cleaner policy definitions in JDO20Policy. The dir 
     sysproperty needs to be in sync with the FilePermissions in JDO20Policy.  
-->

<!-- Runs all tests from the specified test list in batch mode 
     using a security manager.
-->
<target name="runtest.security" depends="testrunner">
  <echo message="Run all tests from testlist ${testlist}"/>
  <echo message="Using a security manager and the policies from ${policyfile}"/>
  <mkdir dir="${testdir}"/>
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="${TestRunnerClass}">
    <jvmarg value="-Djava.security.manager"/>
    <sysproperty key="java.security.policy" value="${policyfile}"/>
    <sysproperty key="ResultPrinterClass" value="${ResultPrinterClass}"/>
    <sysproperty key="jdoapi" value="${jdoapi}"/>
    <sysproperty key="jdobtree" value="${jdobtree}"/>
    <sysproperty key="jdori" value="${jdori}"/>
    <sysproperty key="jdoritests" value="${jdoritests}"/>
    <sysproperty key="pcclasses" value="${pcclasses}"/>
    <sysproperty key="testdir" value="${testdir}"/>
    <sysproperty key="fsuidjar" value="${fsuidjar}"/>
    <sysproperty key="junit" value="${junit}"/>
    <sysproperty key="logging" value="${logging}"/>
    <sysproperty key="xmlparser" value="${xmlparser}"/>
    <sysproperty key="testlist" value="${testlist}"/>
    <sysproperty key="dir" value="${testdir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Runs tests that cannot be run from a test list 
     (e.g. they require starting a sequence of test programs 
      where each test programs needs to run in its own JVM.
-->
<target name="runtest.multiJVMtests">
  <echo message="Start FetchInserted test"/>
  <antcall target="FetchInserted"/>
  <echo message="Start JNDI test"/>
  <antcall target="JNDI"/>
  <echo message="Start JNDICF test"/>
  <antcall target="JNDICF"/>
  <echo message="Start GetObjectById2 test"/>
  <antcall target="GetObjectById2"/>
  <echo message="Start NonExistent test"/>
  <antcall target="NonExistent"/>
  <echo message="Start EmpDeptAppIdExt test"/>
  <antcall target="EmpDeptAppIdExt"/>
  <echo message="Start Enhancer test"/>
  <antcall target="Enhancer"/>
  <echo message="Start Generator test"/>
  <antcall target="Generator"/>
</target>

                    <!-- INDIVIDUAL TESTS -->
                    <!-- INDIVIDUAL TESTS -->
                    <!-- INDIVIDUAL TESTS -->
<!--

Conventions:

(1) Test naming conventions
* The files with main() in them have the prefix "Test_".
* Files to be enhanced have names that begin with "PC".

(2) Test targets:
* Each target is specified as XXX.
* There is a block comment briefly describing the test immediately before each
  XXX target.
* Each XXX target depends on XXX.build followed by XXX.run.
* The .build and .run targets are given in that order.
* A .run target never depends on nor antcall's any other targets that require
  anything to be built (though it may do so to split the running of the test
  into separate pieces).
* If a .run target requires that a property have a certain value, which is
  user modifyable, that property is indicated before the .run target; this
  property is documented with a comment immediately before it.
* Two blank lines separate each test from those next to it in the file.

-->

<!-- Test the JDO model
-->
<target name="JDOModel">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_JDOModel"/>
</target>

<!-- Test FOStore Transcribers
-->
<target name="Transcriber">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.impl.fostore.Test_Transcriber"/>
</target>


<!-- Test FOStore's Serial UID
-->
<target name="FSUID">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.impl.fostore.Test_FSUID"/>
</target>


<!-- Test the Life Cycle of JDO Instances
-->
<target name="LifeCycle">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_LifeCycle"/>
</target>

<!-- Test the Life Cycle of JDO Instances with RetainValues set to false
-->
<target name="LifeCycle_RetF">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_LifeCycle_RetF"/>
</target>

<!-- Test the Life Cycle of JDO Instances in Optimistic transaction
-->
<target name="LifeCycle_Opt">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_LifeCycle_Opt"/>
</target>

<!-- Test the Life Cycle of JDO Instances with RetainValues set to false in Opt mode
-->
<target name="LifeCycle_RetFOpt">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_LifeCycle_RetFOpt"/>
</target>

<!-- Test the PM.makeXXXAll and PM.deletePersistentAll methods for failed objects
-->
<target name="NegAll">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_NegAll"/>
</target>

<!-- Test the configuration of PMF by properties
-->
<target name="PMFProperties">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_PMFProperties">
    <sysproperty key="pmfLoadName" value="${pmfLoadName}"/>
    <sysproperty key="pmfSaveName" value="${pmfSaveName}"/>
    <sysproperty key="cfPropsFile" value="${cfPropsFile}"/>
  </java>
</target>

<!-- Test FOStore's class activation, for datastore identity
-->
<target name="ActivateClass">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_ActivateClass">
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>


<!-- Test FOStore insert
-->
<target name="Insert">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_Insert">
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="pmfLoadName" value="${pmfLoadName}"/>
    <sysproperty key="pmfSaveName" value="${pmfSaveName}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<target name="Insert.silent.run">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_Insert">
    <arg value="-silent"/> 
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="pmfLoadName" value="${pmfLoadName}"/>
    <sysproperty key="pmfSaveName" value="${pmfSaveName}"/>
    <sysproperty key="cfPropsFile" value="${cfPropsFile}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
    <sysproperty key="class" value="${class}"/>
  </java>
</target>

<!-- Test FOStore insert with many instances
-->
<target name="Many">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_Many" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="pmfLoadName" value="${pmfLoadName}"/>
    <sysproperty key="pmfSaveName" value="${pmfSaveName}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<target name="Many.security">
  <mkdir dir="${securityDir}"/>
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_Many" >
    <jvmarg value="-Djava.security.manager"/>
    <sysproperty key="java.security.policy" value="JDO20Policy"/>
    <sysproperty key="dir" value="${securityDir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test FOStore rollback of flushed new instances
-->
<target name="RollbackFlushedNew">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_RollbackFlushedNew" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="pmfLoadName" value="${pmfLoadName}"/>
    <sysproperty key="pmfSaveName" value="${pmfSaveName}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>


<!-- Test that FOStore can insert and fetch instances.
     Note that there are two separate tests!
     Fetch2 inserts twice as many objects ast Fetch.
-->
<target name="Fetch">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_Fetch" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>


<!-- 
-->
<target name="Fetch2">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_Fetch2" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
 </java>
</target>


<!-- Test that FOStore can fetch an instance inserted in by separted JVM
     Note: Before running this test, run some other test that puts instances
     into the database (e.g. Insert).
-->
<target name="FetchInserted">
  <antcall target="Insert.silent.run"/> 
  <antcall target="doFetchInserted.run">
    <param name="shouldExist" value="true"/>
  </antcall> 
</target>

<target name="doFetchInserted.run">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_FetchInserted" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="pmfLoadName" value="${pmfLoadName}"/>
    <sysproperty key="pmfSaveName" value="${pmfSaveName}"/>
    <sysproperty key="cfPropsFile" value="${cfPropsFile}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
    <sysproperty key="class" value="${class}"/>
    <sysproperty key="shouldExist" value="${shouldExist}"/>
  </java>
</target>


<!-- Test that FOStore can get an object by its OID
     Note that there are two separate tests!
     GetObjectById2 does *not* extend AbstractTest; see it's javadoc.
-->
<target name="GetObjectById">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_GetObjectById" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>


<target name="GetObjectById2">
  <antcall target="Insert.silent.run"/>
  <antcall target="doGetObjectById2.run"/>
</target>

<target name="doGetObjectById2.run">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_GetObjectById2" >
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>


<!-- Test that FOStore can serially make a number of instances persistent
-->
<!-- Number of PM's to use serially for insertion -->
<property name="serialInsert" value="50"/>
<target name="SerialPMs">
  <java fork="yes" dir="${testdir}" classpath="${classpath}" 
        classname="org.apache.jdo.test.Test_SerialPMs" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${serialInsert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>


<!-- Test that FOStore can make a number of instances persistent in parallel
-->
<target name="ParallelPMs">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_ParallelPMs" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="share" value="${share}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>


<!-- Test that FOStore can use optimistic transactions
-->
<target name="Optimistic">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_Optimistic" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>


<!-- Test that FOStore works correctly when asked to fetch an instance by oid
     which is known to *not* exist in the database
-->
<target name="NonExistent">
  <antcall target="Insert.silent.run"/>
  <antcall target="Delete.silent.run"/>
  <antcall target="doFetchInserted.run">
    <param name="shoudExists" value="false"/>
  </antcall>
</target>


<!-- Test that FOStore can delete instances.
-->
<!-- Class of instances to delete for extent -->
<property name="class" value="org.apache.jdo.pc.PCPoint"/>
<target name="Delete">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_Delete" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="class" value="${class}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<target name="Delete.silent.run">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_Delete" >
    <arg value="-silent"/> 
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="class" value="${class}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>


<!-- Test that FOStore can insert large objects
-->
<!-- Size of object to insert -->
<property name="size" value="1000000"/>
<target name="LargeObj">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_LargeObj" >
    <arg value="${size}"/>
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>


<!-- Test that FOStoe can store all the JDO-required primitives
-->
<target name="Primitives">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_Primitives" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>


<!-- Test that FOStore can handle all the JDO-required, and FOStore-supported,
     kinds of collections.
-->
<target name="Collections">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_Collections">
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>


<!-- Test that FOStore correctly handles SCO instances.
-->
<target name="SCO">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_SCO" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>


<!-- Test that FOStore can handle arrays of primitives.
-->
<target name="Arrays">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_Arrays" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>


<!-- Test that FOStore can handle arrays of references to PC instances
-->
<target name="RefArrays">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_RefArrays" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>


<!-- Test that FOStore can handle objects containing references to other where
     the type of the reference in the referring class is an interface type.
-->
<target name="Interfaces">
  <java fork="yes" dir="${testdir}" classpath="${classpath}" 
        classname="org.apache.jdo.test.Test_Interfaces" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>


<!-- Test that FOStore can handle a PC object which has references to other PC
     objects.
-->
<target name="Rect">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_Rect" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>


<!-- Test that FOStore can handle an instance which contains a collection of
     references to PC's.
-->
<target name="Stroke">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_Stroke" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>


<!-- Test that FOStore can handle PC instances which are mutually
     referential.  In this case, the cycle's instances are of 2 different
     types.
-->
<target name="Cycle">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_Cycle" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>


<!-- Test that FOStore can get the extent of instances of a type.
-->
<!-- Class of instances whose extent we get -->
<property name="class" value="org.apache.jdo.pc.PCPoint"/>

<!-- If true, get subclass instances too -->
<property name="subclasses" value="false"/>

<!-- See GetExtentRequest.java -->
<property name="maxInstances" value="100"/>
<target name="Extent">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_Extent" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
    <sysproperty key="class" value="${class}"/>
    <sysproperty key="subclasses" value="${subclasses}"/>
    <sysproperty key="maxInstances" value="${maxInstances}"/>
  </java>
</target>

<!-- Test that FOStore can handle the standard Employee/Department example.
-->
<target name="EmpDept">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_EmpDept" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that FOStore can handle the reachabilty algorithm
-->
<target name="Reachability">
  <java fork="yes" dir="${testdir}" classpath="${classpath}" 
    classname="org.apache.jdo.test.Test_Reachability" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that FOStore can navigate from an instance to its fields.
-->
<target name="Navigate">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_Navigate" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>


<!-- Test that FOStore can correctly update instances with different values.
-->
<target name="Update">
  <!-- Change the values of those PCPoint instances' coordinates. -->
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_Update" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="optimistic" value="${optimistic}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that FOStore can rollback a transaction.
-->
<target name="Rollback">
  <!-- Rollback to update/delete of those PCPoint instances'. -->
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_Rollback" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that FOStore can serialize an instance and read it back
-->
<target name="Serialize">
  <!-- Serialize into a stream and read back a PCPoint instance'. -->
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_Serialize" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that FOStore can serialize an instance with inheritance.
-->
<target name="SerializeInher">
  <!-- Serialize into a stream and read back a PCFullTimeEmployee1 instance'. -->
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_SerializeInher" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that FOStore can serialize 
-->
<target name="SerializeComplex">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_SerializeComplex" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that FOStore can do nontransactional read/write
-->
<target name="NonTxAccess">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_NonTxAccess" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>


<!-- Test that FOStore can rollback and restore values.
-->
<target name="Insert2">
  <!-- Create a new database with some PCPoint instances/ -->
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_Insert2" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="false"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that FOStore can rollback and restore values.
-->
<target name="HollowUpdate">
  <!-- Create a new database with some PCPoint instances/ -->
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_HollowUpdate" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="false"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>


<!-- Test that RI can correctly handle getObjectId and getTransactionalObjectId
-->
<target name="ObjectId">
  <!-- Create a new database with some PCPoint instances/ -->
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_ObjectId" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="false"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that FOStore correctly handles String OIDs.
-->
<target name="StringOID">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_StringOID" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>


<!-- Test that FOStore correctly handles inheritance between classes.
-->
<target name="Inheritance">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_Inheritance" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>



<!-- Test that FOStore's serial UID mechanism allows for storing multiple
     classes with the exact same class name but different persistent
     structure.
-->
<target name="FSUID2">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_FSUID2" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
    <sysproperty key="jarfile" value="${jarfile}"/>
  </java>
</target>


<!-- BugId 4510817
-->
<target name="4510817">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_4510817" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>


<!-- BugId 4515265
-->
<target name="4515265">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_4515265" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>


<!-- Test that FOStore can be used in managed environment with a container
-->
<target name="Container">
  <java fork="yes" dir="${testdir}" classpath="${classpath};${jta}"
        classname="org.apache.jdo.test.Test_Container">
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
  </java>
</target>

<!-- Test JDOQL queries
-->
<target name="Query">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_Query">
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="name" value="FOStoreQueryDB"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that FOStore correctly handles rollback of instances with SCO fields.
-->
<target name="SCORollback">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_SCORollback" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="false"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that FOStore correctly handles SCO ArrayList instances in 
     optimistic transaction.
-->
<target name="SCOArrayListOptimistic">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_SCOArrayListOptimistic" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="false"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that FOStore correctly handles SCO ArrayList instances.
-->
<target name="SCOArrayList">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_SCOArrayList" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="false"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that FOStore correctly handles SCO Date instances.
-->
<target name="SCODate">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_SCODate" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="false"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that FOStore correctly handles SCO HashMap instances.
-->
<target name="SCOHashMap">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_SCOHashMap" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="false"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that FOStore correctly handles SCO HashSet instances.
-->
<target name="SCOHashSet">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_SCOHashSet" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="false"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that FOStore correctly handles SCO Hashtable instances.
-->
<target name="SCOHashtable">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_SCOHashtable" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="false"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that FOStore correctly handles SCO LinkedList instances.
-->
<target name="SCOLinkedList">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_SCOLinkedList" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="false"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that FOStore correctly handles SCO SqlDate instances.
-->
<target name="SCOSqlDate">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_SCOSqlDate" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="false"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that FOStore correctly handles SCO TreeMap instances.
-->
<target name="SCOTreeMap">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_SCOTreeMap" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="false"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that FOStore correctly handles SCO TreeSet instances.
-->
<target name="SCOTreeSet">
  <java fork="yes" dir="${testdir}" classpath="${classpath}" 
        classname="org.apache.jdo.test.Test_SCOTreeSet" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="false"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that FOStore correctly handles SCO Vector instances.
-->
<target name="SCOVector">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_SCOVector" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="false"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test WeakValueHashMap
-->
<target name="WeakValueHashMap">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_WeakValueHashMap"/>
</target>

<!-- Test WeakHashSet
-->
<target name="WeakHashSet">
  <java fork="yes" dir="${testdir}" classpath="${classpath}" 
        classname="org.apache.jdo.test.Test_WeakHashSet"/>
</target>

<!-- Test that FOStore correctly handles simple App Identity operations
-->
<target name="AppId">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_AppId" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="false"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that FOStore correctly handles duplicate instances with App Identity.
-->
<target name="DupAppId">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_DupAppId" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="false"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that FOStore can detect null key values in a PC 
     object with application identity.
-->
<target name="KeyFieldNull">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_KeyFieldNull" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that FOStore can handle a PC object which has references to other PC
     objects with application identity.
-->
<target name="RectAppId">
  <java fork="yes" dir="${testdir}" classpath="${classpath}" 
        classname="org.apache.jdo.test.Test_RectAppId" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that FOStore can handle a PC object which inherits from another PC
     objects with application identity.
-->
<target name="EmpDeptAppId">
  <java fork="yes" dir="${testdir}" classpath="${classpath}" 
        classname="org.apache.jdo.test.Test_EmpDeptAppId">
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that FOStore can handle a PC object which inherits from another PC
     objects with application identity with 2 different PMF instances.
-->
<target name="EmpDeptAppIdExt" 
    depends="EmpDeptAppId.insert, EmpDeptAppId.update, EmpDeptAppId.remove"/>

<target name="EmpDeptAppId.insert">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_EmpDeptAppIdInsert" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<target name="EmpDeptAppId.update">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_EmpDeptAppIdUpdate" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="true"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<target name="EmpDeptAppId.remove">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_EmpDeptAppIdDelete" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="true"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that enhancer can correctly provide access to a field in a base
     class via an instance of a derived class.
-->
<target name="PCDerived">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_PCDerived"/>
</target>

<!-- Test FOStore close PMF
-->
<target name="ClosePMF">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_ClosePMF" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="pmfLoadName" value="${pmfLoadName}"/>
    <sysproperty key="pmfSaveName" value="${pmfSaveName}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!-- Test that we can save and load PMF's via JNDI.  Relies on other tests.
-->

<target name="JNDI">
  <antcall target="Insert.silent.run"/>
  <antcall target="doFetchInserted.run">
    <param name="pmfSaveName" value="testJNDI"/>
    <param name="shouldExist" value="true"/>
    <param name="classpath" value="${classpath}:${jndi}"/>
  </antcall>
  <antcall target="doFetchInserted.run">
    <param name="pmfLoadName" value="testJNDI"/>
    <param name="shouldExist" value="true"/>
    <param name="classpath" value="${classpath}:${jndi}"/>
  </antcall>
</target>

<target name="JNDICF">
  <antcall target="Insert.silent.run">
    <param name="name" value="${cfdbname}"/>
  </antcall>
  <copy file="${basedir}/conf/CF.properties.sav" tofile="${testdir}/CF.properties" overwrite="true"/>
  <echo file="${testdir}/CF.properties" append="true">org.apache.jdo.FOStoreConnectionFactory.option.URL=file:${cfdbname}</echo>
  <antcall target="doFetchInserted.run">
    <param name="cfPropsFile" value="CF.properties"/>
    <param name="shouldExist" value="true"/>
  </antcall>
</target>

<!-- Generator tests 
-->

<target name="Generator">
  <ant dir="enhancer/sempdept" antfile="build.xml" target="all_gen" inheritAll="false">
    <property name="jdo" value="${jdoapi}"/>
    <property name="jdo-enhancer" value="${jdori}"/>
    <property name="xerces" value="${xmlparser}"/>
    <property name="verbose" value="${verbose}"/>
  </ant>
</target>

<!-- Enhancer tests 
-->

<target name="Enhancer">
  <ant dir="enhancer/sempdept" antfile="build.xml" target="compile" inheritAll="false">
    <property name="jdo" value="${jdoapi}"/>
    <property name="jdo-enhancer" value="${jdori}"/>
    <property name="xerces" value="${xmlparser}"/>
    <property name="verbose" value="${verbose}"/>
  </ant>
  <ant dir="enhancer/sempdept" antfile="build.xml" target="all_enh" inheritAll="false">
    <property name="jdo" value="${jdoapi}"/>
    <property name="jdo-enhancer" value="${jdori}"/>
    <property name="xerces" value="${xmlparser}"/>
    <property name="verbose" value="${verbose}"/>
  </ant>
</target>

<!-- Tests that a Set/Map containing PC instances which have
     a user-supplied hashCode() referencing persistent fields works.
-->

<target name="UserHashCode">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_UserHashCode" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!--
-->
<target name="OptimisticNullNotNull">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_OptimisticNullNotNull" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="insert" value="${insert}"/>
    <sysproperty key="max" value="${max}"/>
    <sysproperty key="verify" value="${verify}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="existing" value="${existing}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

<!--
-->
<target name="Freezer">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_Freezer"/>
</target>

<!--
-->
<target name="ClassRegistration">
  <java fork="yes" dir="${testdir}" classpath="${jdoritests};${junit}"
        classname="org.apache.jdo.test.Test_ClassRegistration" >
    <sysproperty key="jdoapi" value="${jdoapi}"/>
    <sysproperty key="pcclasses" value="${pcclasses}"/>
  </java>
</target>

<!--
-->
<target name="EmpDeptSerialization">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.test.Test_EmpDeptSerialization" >
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
  </java>
</target>

                    <!-- UTILITIES/PROGRAMS -->
                    <!-- UTILITIES/PROGRAMS -->
                    <!-- UTILITIES/PROGRAMS -->

<!-- Run FOStore as a server.  Above tests can then be run, specifying a port
     and/or host, and can communicate with the running server.
-->
<target name="Server">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.impl.fostore.Main" >
    <sysproperty key="port" value="${port}"/>
    <sysproperty key="backlog" value="${backlog}"/>
    <sysproperty key="timeout" value="${timeout}"/>
    <sysproperty key="root" value="${root}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
  </java>
</target>


<!-- Get information from a FOStore database
-->
<!-- Kind of information to be retrieved. -->
<property name="option" value="dbInfo"/>

<!-- Comma separated list of names of classes for which information is to be
     retrieved (not used with all kinds of information requests). -->
<property name="class" value="org.apache.jdo.pc.PCPoint"/>

<!-- If true, prints out only the database name, not entire path -->
<property name="shortname" value="false"/>

<target name="Dumper" depends="Dumper.run"/>

<target name="Dumper.run">
  <java fork="yes" dir="${testdir}" classpath="${classpath}"
        classname="org.apache.jdo.impl.fostore.Dumper" >
    <sysproperty key="port" value="${port}"/>
    <sysproperty key="backlog" value="${backlog}"/>
    <sysproperty key="timeout" value="${timeout}"/>
    <sysproperty key="root" value="${root}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="dumpOption" value="${option}"/>
    <sysproperty key="classNames" value="${class}"/>
    <sysproperty key="dbinfo.shortname" value="${shortname}"/>
  </java>
</target>

<!-- Dump an extent
-->
<!-- Class of instances whose extent we get -->
<property name="class" value="org.apache.jdo.pc.PCPoint"/>

<!-- If true, get subclass instances too -->
<property name="subclasses" value="false"/>

<target name="DumpExtent">
  <java fork="yes" dir="${testdir}" classname="org.apache.jdo.test.util.DumpExtent" classpath="${classpath}">
    <sysproperty key="dir" value="${dir}"/>
    <sysproperty key="name" value="${name}"/>
    <sysproperty key="status.verbose" value="${status.verbose}"/>
    <sysproperty key="host" value="${host}"/>
    <sysproperty key="port" value="${port}"/>
    <sysproperty key="class" value="${class}"/>
    <sysproperty key="subclasses" value="${subclasses}"/>
  </java>
</target>

                    <!-- TEMP -->
                    <!-- TEMP -->
                    <!-- TEMP -->

<target name="dump">
   <echo message="testlist=${testlist}"/>
   <echo message="jdoapi=${jdoapi}"/>
   <echo message="jdobtree=${jdobtree}"/>
   <echo message="builddir=${builddir}"/>
   <echo message="junit=${junit}"/>
   <echo message="pcclasses=${pcclasses}"/>
   <echo message="jarfile=${jarfile}"/>
</target>

</project>
