You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-commits@db.apache.org by mb...@apache.org on 2005/05/22 20:40:21 UTC

svn commit: r171355 [31/31] - in /incubator/jdo/trunk/fostore20: ./ src/ src/conf/ src/java/ src/java/org/ src/java/org/apache/ src/java/org/apache/jdo/ src/java/org/apache/jdo/impl/ src/java/org/apache/jdo/impl/fostore/ test/ test/conf/ test/fsuid2/ test/fsuid2/org/ test/fsuid2/org/apache/ test/fsuid2/org/apache/jdo/ test/fsuid2/org/apache/jdo/pc/ test/java/ test/java/org/ test/java/org/apache/ test/java/org/apache/jdo/ test/java/org/apache/jdo/impl/ test/java/org/apache/jdo/impl/fostore/ test/java/org/apache/jdo/pc/ test/java/org/apache/jdo/pc/appid/ test/java/org/apache/jdo/pc/empdept/ test/java/org/apache/jdo/pc/serializable/ test/java/org/apache/jdo/pc/xempdept/ test/java/org/apache/jdo/test/ test/java/org/apache/jdo/test/query/ test/java/org/apache/jdo/test/util/ test/jdo/ test/jdo/org/ test/jdo/org/apache/ test/jdo/org/apache/jdo/ test/jdo/org/apache/jdo/pc/ test/jdo/org/apache/jdo/pc/appid/ test/jdo/org/apache/jdo/pc/empdept/ test/jdo/org/apache/jdo/pc/serializable/ test/jdo/org/apache/jdo/pc/xempdept/

Added: incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/Insurance.jdo
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/Insurance.jdo?rev=171355&view=auto
==============================================================================
--- incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/Insurance.jdo (added)
+++ incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/Insurance.jdo Sun May 22 11:40:13 2005
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE jdo PUBLIC "-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 1.0//EN" "http://java.sun.com/dtd/jdo_1_0.dtd">
+<jdo>
+  <package name="org.apache.jdo.pc.xempdept">
+    <class name="Insurance" 
+           identity-type="datastore">
+      <field name="insid"/>
+      <field name="carrier"/>
+      <field name="employee" persistence-modifier="persistent"/>
+    </class>
+  </package>
+</jdo>

Added: incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/PartTimeEmployee.jdo
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/PartTimeEmployee.jdo?rev=171355&view=auto
==============================================================================
--- incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/PartTimeEmployee.jdo (added)
+++ incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/PartTimeEmployee.jdo Sun May 22 11:40:13 2005
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE jdo PUBLIC "-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 1.0//EN" "http://java.sun.com/dtd/jdo_1_0.dtd">
+<jdo>
+  <package name="org.apache.jdo.pc.xempdept">
+    <class name="PartTimeEmployee" 
+           identity-type="datastore"
+	   persistence-capable-superclass="Employee">
+      <field name="wage"/>
+    </class>
+  </package>
+</jdo>

Added: incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/Person.jdo
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/Person.jdo?rev=171355&view=auto
==============================================================================
--- incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/Person.jdo (added)
+++ incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/Person.jdo Sun May 22 11:40:13 2005
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE jdo PUBLIC "-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 1.0//EN" "http://java.sun.com/dtd/jdo_1_0.dtd">
+<jdo>
+  <package name="org.apache.jdo.pc.xempdept">
+    <class name="Person" 
+           identity-type="datastore">
+      <field name="lastname"/>
+      <field name="firstname"/>
+      <field name="birthdate"/>
+    </class>
+  </package>
+</jdo>

Added: incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/PrimitiveTypes.jdo
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/PrimitiveTypes.jdo?rev=171355&view=auto
==============================================================================
--- incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/PrimitiveTypes.jdo (added)
+++ incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/PrimitiveTypes.jdo Sun May 22 11:40:13 2005
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE jdo PUBLIC "-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 1.0//EN" "http://java.sun.com/dtd/jdo_1_0.dtd">
+<jdo>
+  <package name="org.apache.jdo.pc.xempdept">
+    <class name="PrimitiveTypes" 
+           identity-type="datastore">
+      <field name="id"/>
+      <field name="booleanNotNull"/>
+      <field name="booleanNull"/>
+      <field name="byteNotNull"/>
+      <field name="byteNull"/>
+      <field name="shortNotNull"/>
+      <field name="shortNull"/>
+      <field name="intNotNull"/>
+      <field name="intNull"/>
+      <field name="longNotNull"/>
+      <field name="longNull"/>
+      <field name="floatNotNull"/>
+      <field name="floatNull"/>
+      <field name="doubleNotNull"/>
+      <field name="doubleNull"/>
+      <field name="charNotNull"/>
+      <field name="charNull"/>
+      <field name="dateNull"/>
+      <field name="stringNull"/>
+      <field name="bigDecimal"/>
+      <field name="bigInteger"/>
+      <field name="PrimitiveTypes"/>
+    </class>
+  </package>
+</jdo>

Added: incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/Project.jdo
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/Project.jdo?rev=171355&view=auto
==============================================================================
--- incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/Project.jdo (added)
+++ incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/Project.jdo Sun May 22 11:40:13 2005
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE jdo PUBLIC "-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 1.0//EN" "http://java.sun.com/dtd/jdo_1_0.dtd">
+<jdo>
+  <package name="org.apache.jdo.pc.xempdept">
+    <class name="Project" 
+           identity-type="datastore">
+      <field name="projid"/>
+      <field name="name"/>
+      <field name="budget"/>
+      <field name="reviewers">
+        <collection element-type="Employee"/>
+      </field>
+      <field name="employees">
+        <collection element-type="Employee"/>
+      </field>
+    </class>
+  </package>
+</jdo>

Added: incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/xempdept.jdoproperties
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/xempdept.jdoproperties?rev=171355&view=auto
==============================================================================
--- incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/xempdept.jdoproperties (added)
+++ incubator/jdo/trunk/fostore20/test/jdo/org/apache/jdo/pc/xempdept/xempdept.jdoproperties Sun May 22 11:40:13 2005
@@ -0,0 +1,99 @@
+# Classnames can have the following attributes: 
+#          jdo:{persistent|transient} 
+#          super: <classname> 
+#          oid: <classname> 
+#          access: {public|protected|package|private} 
+# Fieldnames can have the following attributes: 
+#          type:<type> 
+#          access: {public|protected|package|private} 
+#          jdo:{persistent|transactional|transient} 
+#          annotation:{key|dfg|mediated} 
+
+org.apache.jdo.pc.xempdept.Company=jdo:persistent
+org.apache.jdo.pc.xempdept.Company#name=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Company#founded=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Company#address=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Company#departments=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.xempdept.Department=jdo:persistent
+org.apache.jdo.pc.xempdept.Department#deptid=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Department#name=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Department#company=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Department#employees=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.xempdept.Person=jdo:persistent
+org.apache.jdo.pc.xempdept.Person#firstname=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Person#lastname=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Person#birthdate=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.xempdept.Employee=jdo:persistent,super:org.apache.jdo.pc.xempdept.Person
+org.apache.jdo.pc.xempdept.Employee#empid=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Employee#hiredate=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Employee#weeklyhours=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Employee#discriminator=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Employee#reviewedProjects=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Employee#projects=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Employee#insurance=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Employee#department=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Employee#manager=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Employee#team=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Employee#mentor=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Employee#protege=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Employee#hradvisor=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Employee#hradvisees=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.xempdept.FullTimeEmployee=jdo:persistent,super:org.apache.jdo.pc.xempdept.Employee
+org.apache.jdo.pc.xempdept.FullTimeEmployee#salary=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.xempdept.PartTimeEmployee=jdo:persistent,super:org.apache.jdo.pc.xempdept.Employee
+org.apache.jdo.pc.xempdept.PartTimeEmployee#wage=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.xempdept.Insurance=jdo:persistent
+org.apache.jdo.pc.xempdept.Insurance#insid=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Insurance#carrier=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Insurance#employee=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.xempdept.Project=jdo:persistent
+org.apache.jdo.pc.xempdept.Project#projid=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Project#name=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Project#budget=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Project#reviewers=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.Project#employees=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.xempdept.PrimitiveTypes=jdo:persistent
+org.apache.jdo.pc.xempdept.PrimitiveTypes#id=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.PrimitiveTypes#booleanNotNull=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.PrimitiveTypes#booleanNull=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.PrimitiveTypes#byteNotNull=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.PrimitiveTypes#byteNull=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.PrimitiveTypes#shortNotNull=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.PrimitiveTypes#shortNull=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.PrimitiveTypes#intNotNull=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.PrimitiveTypes#intNull=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.PrimitiveTypes#longNotNull=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.PrimitiveTypes#longNull=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.PrimitiveTypes#floatNotNull=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.PrimitiveTypes#floatNull=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.PrimitiveTypes#doubleNotNull=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.PrimitiveTypes#doubleNull=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.PrimitiveTypes#charNotNull=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.PrimitiveTypes#charNull=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.PrimitiveTypes#dateNull=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.PrimitiveTypes#stringNull=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.PrimitiveTypes#bigDecimal=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.PrimitiveTypes#bigInteger=jdo:persistent,annotation:mediated
+org.apache.jdo.pc.xempdept.PrimitiveTypes#PrimitiveTypes=jdo:persistent,annotation:mediated
+
+org.apache.jdo.pc.xempdept.Company$Oid=jdo:transient
+org.apache.jdo.pc.xempdept.Company$Oid#name=jdo:transient
+org.apache.jdo.pc.xempdept.Company$Oid#founded=jdo:transient
+org.apache.jdo.pc.xempdept.Department$Oid=jdo:transient
+org.apache.jdo.pc.xempdept.Department$Oid#deptid=jdo:transient
+org.apache.jdo.pc.xempdept.Employee$Oid=jdo:transient
+org.apache.jdo.pc.xempdept.Employee$Oid#empid=jdo:transient
+org.apache.jdo.pc.xempdept.Project$Oid=jdo:transient
+org.apache.jdo.pc.xempdept.Project$Oid#projid=jdo:transient
+org.apache.jdo.pc.xempdept.Insurance$Oid=jdo:transient
+org.apache.jdo.pc.xempdept.Insurance$Oid#insid=jdo:transient
+org.apache.jdo.pc.xempdept.PrimitiveTypes$Oid=jdo:transient
+org.apache.jdo.pc.xempdept.PrimitiveTypes$Oid#id=jdo:transient

Added: incubator/jdo/trunk/fostore20/test/runtest.xml
URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/fostore20/test/runtest.xml?rev=171355&view=auto
==============================================================================
--- incubator/jdo/trunk/fostore20/test/runtest.xml (added)
+++ incubator/jdo/trunk/fostore20/test/runtest.xml Sun May 22 11:40:13 2005
@@ -0,0 +1,1749 @@
+<!--
+    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="jdoapi" value="${user.home}/.maven/repository/apache-jdo/jars/jdo1-api-SNAPSHOT.jar"/>
+<property name="jdobtree" value="${user.home}/.maven/repository/apache-jdo/jars/jdo-btree-SNAPSHOT.jar"/>
+<property name="jdocore" value="${user.home}/.maven/repository/apache-jdo/jars/jdo2-core-20-SNAPSHOT.jar"/>
+<property name="jdoruntime" value="${user.home}/.maven/repository/apache-jdo/jars/jdo2-runtime-20-SNAPSHOT.jar"/>
+<property name="jdoquery" value="${user.home}/.maven/repository/apache-jdo/jars/jdo2-query-20-SNAPSHOT.jar"/>
+<property name="jdofostore" value="${maven.build.dir}/classes"/>
+<property name="jdoenhancer" value="${user.home}/.maven/repository/apache-jdo/jars/jdo2-enhancer-20-SNAPSHOT.jar"/>
+
+<property name="builddir" value="${basedir}/../target"/>
+<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}:${jdocore}:${jdoruntime}:${jdoquery}:${jdofostore}:${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="jdocore" value="${jdocore}"/>
+    <sysproperty key="jdoruntime" value="${jdoruntime}"/>
+    <sysproperty key="jdoquery" value="${jdoquery}"/>
+    <sysproperty key="jdofostore" value="${jdofostore}"/>
+    <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: jdo1-api-SNAPSHOT.jar, jdo2-core-20-SNAPSHOT.jar,
+     jdo2-runtime-20-SNAPSHOT.jar, jdo2-runtime-20-SNAPSHOT.jar, jdo2-query-20-SNAPSHOT, 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="jdocore" value="${jdocore}"/>
+    <sysproperty key="jdoruntime" value="${jdoruntime}"/>
+    <sysproperty key="jdoquery" value="${jdoquery}"/>
+    <sysproperty key="jdofostore" value="${jdofostore}"/>
+    <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"/>
+</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>
+
+<!-- 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>